(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-var-requires no-require-imports
// This line should always be right on top.
// tslint:disable:no-any
__webpack_require__(1);
// Initialize source maps (this must never be moved up nor further down).
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const serviceRegistry_1 = __webpack_require__(73);
const types_1 = __webpack_require__(77);
const api_1 = __webpack_require__(630);
const serviceRegistry_2 = __webpack_require__(631);
const types_2 = __webpack_require__(83);
const types_3 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const serviceRegistry_3 = __webpack_require__(648);
const serviceRegistry_4 = __webpack_require__(654);
const serviceRegistry_5 = __webpack_require__(668);
const serviceRegistry_6 = __webpack_require__(675);
const serviceRegistry_7 = __webpack_require__(722);
// import { ITerminalHelper } from './common/terminal/types'
const types_4 = __webpack_require__(75);
const async_1 = __webpack_require__(150);
const stopWatch_1 = __webpack_require__(165);
// import { Common } from './common/utils/localize'
const serviceRegistry_8 = __webpack_require__(756);
const serviceRegistry_9 = __webpack_require__(759);
const types_5 = __webpack_require__(761);
const contracts_1 = __webpack_require__(90);
const serviceRegistry_10 = __webpack_require__(762);
const container_1 = __webpack_require__(814);
const serviceManager_1 = __webpack_require__(815);
const types_6 = __webpack_require__(95);
const linterCommands_1 = __webpack_require__(816);
const serviceRegistry_11 = __webpack_require__(817);
// import { ILintingEngine } from './linters/types'
const codeActionsProvider_1 = __webpack_require__(836);
const formatProvider_1 = __webpack_require__(837);
const linterProvider_1 = __webpack_require__(844);
const replProvider_1 = __webpack_require__(845);
const serviceRegistry_12 = __webpack_require__(847);
const simpleRefactorProvider_1 = __webpack_require__(850);
const terminalProvider_1 = __webpack_require__(851);
const types_7 = __webpack_require__(849);
const updateSparkLibraryProvider_1 = __webpack_require__(852);
const sourceMapSupport_1 = __webpack_require__(853);
const serviceRegistry_13 = __webpack_require__(854);
const types_8 = __webpack_require__(846);
sourceMapSupport_1.initialize();
const durations = {};
// Do not move this line of code (used to measure extension load times).
const stopWatch = new stopWatch_1.StopWatch();
// import { TEST_OUTPUT_CHANNEL } from './unittests/common/constants'
// import { ITestContextService } from './unittests/common/types'
// import { ITestCodeNavigatorCommandHandler, ITestExplorerCommandHandler } from './unittests/navigation/types'
// import { registerTypes as unitTestsRegisterTypes } from './unittests/serviceRegistry'
durations.codeLoadingTime = stopWatch.elapsedTime;
const activationDeferred = async_1.createDeferred();
let activatedServiceContainer;
async function activate(context) {
    let statusItem = coc_nvim_1.workspace.createStatusBarItem(0, { progress: true });
    statusItem.text = 'loading python extension.';
    statusItem.show();
    try {
        let res = await activateUnsafe(context);
        statusItem.dispose();
        return res;
    }
    catch (ex) {
        statusItem.dispose();
        // handleError(ex)
        throw ex; // re-raise
    }
}
exports.activate = activate;
// tslint:disable-next-line:max-func-body-length
async function activateUnsafe(context) {
    // displayProgress(activationDeferred.promise)
    durations.startActivateTime = stopWatch.elapsedTime;
    const cont = new inversify_1.Container();
    const serviceManager = new serviceManager_1.ServiceManager(cont);
    const serviceContainer = new container_1.ServiceContainer(cont);
    activatedServiceContainer = serviceContainer;
    registerServices(context, serviceManager, serviceContainer);
    await initializeServices(context, serviceManager, serviceContainer);
    const manager = serviceContainer.get(types_1.IExtensionActivationManager);
    context.subscriptions.push(manager);
    const activationPromise = manager.activate();
    serviceManager.get(types_8.ITerminalAutoActivation).register();
    const configuration = serviceManager.get(types_4.IConfigurationService);
    const pythonSettings = configuration.getSettings();
    const standardOutputChannel = serviceContainer.get(types_4.IOutputChannel, constants_1.STANDARD_OUTPUT_CHANNEL);
    simpleRefactorProvider_1.activateSimplePythonRefactorProvider(context, standardOutputChannel, serviceContainer);
    const sortImports = serviceContainer.get(types_7.ISortImportsEditingProvider);
    sortImports.registerCommands();
    serviceManager.get(types_8.ICodeExecutionManager).registerCommands();
    // tslint:disable-next-line:no-suspicious-comment
    // TODO: Move this down to right before durations.endActivateTime is set.
    // sendStartupTelemetry(Promise.all([activationDeferred.promise, activationPromise]), serviceContainer).catch(emptyFn)
    const workspaceService = serviceContainer.get(types_3.IWorkspaceService);
    const interpreterManager = serviceContainer.get(contracts_1.IInterpreterService);
    interpreterManager.refresh(coc_nvim_1.Uri.file(coc_nvim_1.workspace.rootPath))
        // tslint:disable-next-line: no-console
        .catch(ex => console.error('Python Extension: interpreterManager.refresh', ex));
    // const jupyterExtension = extensions.getExtension('donjayamanne.jupyter')
    // const lintingEngine = serviceManager.get<ILintingEngine>(ILintingEngine)
    // lintingEngine.linkJupyterExtension(jupyterExtension).catch(emptyFn)
    context.subscriptions.push(new linterCommands_1.LinterCommands(serviceManager));
    const linterProvider = new linterProvider_1.LinterProvider(context, serviceManager);
    context.subscriptions.push(linterProvider);
    if (pythonSettings && pythonSettings.formatting && pythonSettings.formatting.provider !== 'none') {
        const formatProvider = new formatProvider_1.PythonFormattingEditProvider(context, serviceContainer);
        context.subscriptions.push(coc_nvim_1.languages.registerDocumentFormatProvider(constants_1.PYTHON, formatProvider));
        context.subscriptions.push(coc_nvim_1.languages.registerDocumentRangeFormatProvider(constants_1.PYTHON, formatProvider));
    }
    const deprecationMgr = serviceContainer.get(types_4.IFeatureDeprecationManager);
    deprecationMgr.initialize();
    context.subscriptions.push(deprecationMgr);
    context.subscriptions.push(updateSparkLibraryProvider_1.activateUpdateSparkLibraryProvider());
    context.subscriptions.push(new replProvider_1.ReplProvider(serviceContainer));
    context.subscriptions.push(new terminalProvider_1.TerminalProvider(serviceContainer));
    context.subscriptions.push(coc_nvim_1.languages.registerCodeActionProvider(constants_1.PYTHON, new codeActionsProvider_1.PythonCodeActionProvider(), 'python', [vscode_languageserver_protocol_1.CodeActionKind.SourceOrganizeImports]));
    durations.endActivateTime = stopWatch.elapsedTime;
    activationDeferred.resolve();
    const api = api_1.buildApi(Promise.all([activationDeferred.promise, activationPromise]));
    // In test environment return the DI Container.
    return api;
}
function deactivate() {
    // Make sure to shutdown anybody who needs it.
    if (activatedServiceContainer) {
        const registry = activatedServiceContainer.get(types_4.IAsyncDisposableRegistry);
        if (registry) {
            return registry.dispose();
        }
    }
    return Promise.resolve();
}
exports.deactivate = deactivate;
// tslint:disable-next-line:no-any
// function displayProgress(promise: Promise<any>) {
//
//   const progressOptions: ProgressOptions = { location: ProgressLocation.Window, title: Common.loadingExtension() }
//   window.withProgress(progressOptions, () => promise)
// }
//
function registerServices(context, serviceManager, serviceContainer) {
    serviceManager.addSingletonInstance(types_6.IServiceContainer, serviceContainer);
    serviceManager.addSingletonInstance(types_6.IServiceManager, serviceManager);
    serviceManager.addSingletonInstance(types_4.IDisposableRegistry, context.subscriptions);
    serviceManager.addSingletonInstance(types_4.IMemento, context.globalState, types_4.GLOBAL_MEMENTO);
    serviceManager.addSingletonInstance(types_4.IMemento, context.workspaceState, types_4.WORKSPACE_MEMENTO);
    serviceManager.addSingletonInstance(types_4.IExtensionContext, context);
    const standardOutputChannel = coc_nvim_1.workspace.createOutputChannel('Python');
    // const unitTestOutChannel = window.createOutputChannel('Python Test Log')
    serviceManager.addSingletonInstance(types_4.IOutputChannel, standardOutputChannel, constants_1.STANDARD_OUTPUT_CHANNEL);
    // serviceManager.addSingletonInstance<OutputChannel>(IOutputChannel, unitTestOutChannel, TEST_OUTPUT_CHANNEL)
    serviceRegistry_1.registerTypes(serviceManager);
    serviceRegistry_7.registerTypes(serviceManager);
    serviceRegistry_3.registerTypes(serviceManager);
    serviceRegistry_6.registerTypes(serviceManager);
    serviceRegistry_8.registerTypes(serviceManager);
    serviceRegistry_11.registerTypes(serviceManager);
    serviceRegistry_10.registerTypes(serviceManager);
    serviceRegistry_9.registerTypes(serviceManager);
    serviceRegistry_5.registerTypes(serviceManager);
    serviceRegistry_4.registerTypes(serviceManager);
    serviceRegistry_13.registerTypes(serviceManager);
    // unitTestsRegisterTypes(serviceManager)
    // dataScienceRegisterTypes(serviceManager)
    // debugConfigurationRegisterTypes(serviceManager)
    serviceRegistry_2.registerTypes(serviceManager);
    serviceRegistry_12.registerTypes(serviceManager);
}
async function initializeServices(context, serviceManager, serviceContainer) {
    const selector = serviceContainer.get(types_5.IInterpreterSelector);
    selector.initialize();
    context.subscriptions.push(selector);
    const interpreterManager = serviceContainer.get(contracts_1.IInterpreterService);
    interpreterManager.initialize();
    // const handlers = serviceManager.getAll<IDebugSessionEventHandlers>(IDebugSessionEventHandlers)
    const disposables = serviceManager.get(types_4.IDisposableRegistry);
    // const dispatcher = new DebugSessionEventDispatcher(handlers, DebugService.instance, disposables)
    // dispatcher.registerEventHandlers()
    const cmdManager = serviceContainer.get(types_3.ICommandManager);
    const outputChannel = serviceManager.get(types_4.IOutputChannel, constants_1.STANDARD_OUTPUT_CHANNEL);
    disposables.push(cmdManager.registerCommand(constants_1.Commands.ViewOutput, () => outputChannel.show()));
    // Display progress of interpreter refreshes only after extension has activated.
    serviceContainer.get(contracts_1.InterpreterLocatorProgressHandler).register();
    serviceContainer.get(contracts_1.IInterpreterLocatorProgressService).register();
    serviceContainer.get(types_2.IApplicationDiagnostics).register();
    serviceContainer.get(types_1.ILanguageServerExtension).register();
    // serviceContainer.get<ITestCodeNavigatorCommandHandler>(ITestCodeNavigatorCommandHandler).register()
    // serviceContainer.get<ITestExplorerCommandHandler>(ITestExplorerCommandHandler).register()
    // serviceContainer.get<ITestContextService>(ITestContextService).register()
}
function notifyUser(msg) {
    // tslint:disable-next-line:no-any
    coc_nvim_1.workspace.showMessage(msg, 'error');
}


/***/ }),
/* 1 */
/***/ (function(module, exports) {

/*! *****************************************************************************
Copyright (C) Microsoft. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
var Reflect;
(function (Reflect) {
    // Metadata Proposal
    // https://rbuckton.github.io/reflect-metadata/
    (function (factory) {
        var root = typeof global === "object" ? global :
            typeof self === "object" ? self :
                typeof this === "object" ? this :
                    Function("return this;")();
        var exporter = makeExporter(Reflect);
        if (typeof root.Reflect === "undefined") {
            root.Reflect = Reflect;
        }
        else {
            exporter = makeExporter(root.Reflect, exporter);
        }
        factory(exporter);
        function makeExporter(target, previous) {
            return function (key, value) {
                if (typeof target[key] !== "function") {
                    Object.defineProperty(target, key, { configurable: true, writable: true, value: value });
                }
                if (previous)
                    previous(key, value);
            };
        }
    })(function (exporter) {
        var hasOwn = Object.prototype.hasOwnProperty;
        // feature test for Symbol support
        var supportsSymbol = typeof Symbol === "function";
        var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive";
        var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator";
        var supportsCreate = typeof Object.create === "function"; // feature test for Object.create support
        var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support
        var downLevel = !supportsCreate && !supportsProto;
        var HashMap = {
            // create an object in dictionary mode (a.k.a. "slow" mode in v8)
            create: supportsCreate
                ? function () { return MakeDictionary(Object.create(null)); }
                : supportsProto
                    ? function () { return MakeDictionary({ __proto__: null }); }
                    : function () { return MakeDictionary({}); },
            has: downLevel
                ? function (map, key) { return hasOwn.call(map, key); }
                : function (map, key) { return key in map; },
            get: downLevel
                ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }
                : function (map, key) { return map[key]; },
        };
        // Load global or shim versions of Map, Set, and WeakMap
        var functionPrototype = Object.getPrototypeOf(Function);
        var usePolyfill = typeof process === "object" && process.env && process.env["REFLECT_METADATA_USE_MAP_POLYFILL"] === "true";
        var _Map = !usePolyfill && typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill();
        var _Set = !usePolyfill && typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill();
        var _WeakMap = !usePolyfill && typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill();
        // [[Metadata]] internal slot
        // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots
        var Metadata = new _WeakMap();
        /**
         * Applies a set of decorators to a property of a target object.
         * @param decorators An array of decorators.
         * @param target The target object.
         * @param propertyKey (Optional) The property key to decorate.
         * @param attributes (Optional) The property descriptor for the target key.
         * @remarks Decorators are applied in reverse order.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     Example = Reflect.decorate(decoratorsArray, Example);
         *
         *     // property (on constructor)
         *     Reflect.decorate(decoratorsArray, Example, "staticProperty");
         *
         *     // property (on prototype)
         *     Reflect.decorate(decoratorsArray, Example.prototype, "property");
         *
         *     // method (on constructor)
         *     Object.defineProperty(Example, "staticMethod",
         *         Reflect.decorate(decoratorsArray, Example, "staticMethod",
         *             Object.getOwnPropertyDescriptor(Example, "staticMethod")));
         *
         *     // method (on prototype)
         *     Object.defineProperty(Example.prototype, "method",
         *         Reflect.decorate(decoratorsArray, Example.prototype, "method",
         *             Object.getOwnPropertyDescriptor(Example.prototype, "method")));
         *
         */
        function decorate(decorators, target, propertyKey, attributes) {
            if (!IsUndefined(propertyKey)) {
                if (!IsArray(decorators))
                    throw new TypeError();
                if (!IsObject(target))
                    throw new TypeError();
                if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))
                    throw new TypeError();
                if (IsNull(attributes))
                    attributes = undefined;
                propertyKey = ToPropertyKey(propertyKey);
                return DecorateProperty(decorators, target, propertyKey, attributes);
            }
            else {
                if (!IsArray(decorators))
                    throw new TypeError();
                if (!IsConstructor(target))
                    throw new TypeError();
                return DecorateConstructor(decorators, target);
            }
        }
        exporter("decorate", decorate);
        // 4.1.2 Reflect.metadata(metadataKey, metadataValue)
        // https://rbuckton.github.io/reflect-metadata/#reflect.metadata
        /**
         * A default metadata decorator factory that can be used on a class, class member, or parameter.
         * @param metadataKey The key for the metadata entry.
         * @param metadataValue The value for the metadata entry.
         * @returns A decorator function.
         * @remarks
         * If `metadataKey` is already defined for the target and target key, the
         * metadataValue for that key will be overwritten.
         * @example
         *
         *     // constructor
         *     @Reflect.metadata(key, value)
         *     class Example {
         *     }
         *
         *     // property (on constructor, TypeScript only)
         *     class Example {
         *         @Reflect.metadata(key, value)
         *         static staticProperty;
         *     }
         *
         *     // property (on prototype, TypeScript only)
         *     class Example {
         *         @Reflect.metadata(key, value)
         *         property;
         *     }
         *
         *     // method (on constructor)
         *     class Example {
         *         @Reflect.metadata(key, value)
         *         static staticMethod() { }
         *     }
         *
         *     // method (on prototype)
         *     class Example {
         *         @Reflect.metadata(key, value)
         *         method() { }
         *     }
         *
         */
        function metadata(metadataKey, metadataValue) {
            function decorator(target, propertyKey) {
                if (!IsObject(target))
                    throw new TypeError();
                if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))
                    throw new TypeError();
                OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
            }
            return decorator;
        }
        exporter("metadata", metadata);
        /**
         * Define a unique metadata entry on the target.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param metadataValue A value that contains attached metadata.
         * @param target The target object on which to define metadata.
         * @param propertyKey (Optional) The property key for the target.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     Reflect.defineMetadata("custom:annotation", options, Example);
         *
         *     // property (on constructor)
         *     Reflect.defineMetadata("custom:annotation", options, Example, "staticProperty");
         *
         *     // property (on prototype)
         *     Reflect.defineMetadata("custom:annotation", options, Example.prototype, "property");
         *
         *     // method (on constructor)
         *     Reflect.defineMetadata("custom:annotation", options, Example, "staticMethod");
         *
         *     // method (on prototype)
         *     Reflect.defineMetadata("custom:annotation", options, Example.prototype, "method");
         *
         *     // decorator factory as metadata-producing annotation.
         *     function MyAnnotation(options): Decorator {
         *         return (target, key?) => Reflect.defineMetadata("custom:annotation", options, target, key);
         *     }
         *
         */
        function defineMetadata(metadataKey, metadataValue, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
        }
        exporter("defineMetadata", defineMetadata);
        /**
         * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.hasMetadata("custom:annotation", Example);
         *
         *     // property (on constructor)
         *     result = Reflect.hasMetadata("custom:annotation", Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.hasMetadata("custom:annotation", Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.hasMetadata("custom:annotation", Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.hasMetadata("custom:annotation", Example.prototype, "method");
         *
         */
        function hasMetadata(metadataKey, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryHasMetadata(metadataKey, target, propertyKey);
        }
        exporter("hasMetadata", hasMetadata);
        /**
         * Gets a value indicating whether the target object has the provided metadata key defined.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.hasOwnMetadata("custom:annotation", Example);
         *
         *     // property (on constructor)
         *     result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "method");
         *
         */
        function hasOwnMetadata(metadataKey, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);
        }
        exporter("hasOwnMetadata", hasOwnMetadata);
        /**
         * Gets the metadata value for the provided metadata key on the target object or its prototype chain.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns The metadata value for the metadata key if found; otherwise, `undefined`.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.getMetadata("custom:annotation", Example);
         *
         *     // property (on constructor)
         *     result = Reflect.getMetadata("custom:annotation", Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.getMetadata("custom:annotation", Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.getMetadata("custom:annotation", Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.getMetadata("custom:annotation", Example.prototype, "method");
         *
         */
        function getMetadata(metadataKey, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryGetMetadata(metadataKey, target, propertyKey);
        }
        exporter("getMetadata", getMetadata);
        /**
         * Gets the metadata value for the provided metadata key on the target object.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns The metadata value for the metadata key if found; otherwise, `undefined`.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.getOwnMetadata("custom:annotation", Example);
         *
         *     // property (on constructor)
         *     result = Reflect.getOwnMetadata("custom:annotation", Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.getOwnMetadata("custom:annotation", Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "method");
         *
         */
        function getOwnMetadata(metadataKey, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);
        }
        exporter("getOwnMetadata", getOwnMetadata);
        /**
         * Gets the metadata keys defined on the target object or its prototype chain.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns An array of unique metadata keys.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.getMetadataKeys(Example);
         *
         *     // property (on constructor)
         *     result = Reflect.getMetadataKeys(Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.getMetadataKeys(Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.getMetadataKeys(Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.getMetadataKeys(Example.prototype, "method");
         *
         */
        function getMetadataKeys(target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryMetadataKeys(target, propertyKey);
        }
        exporter("getMetadataKeys", getMetadataKeys);
        /**
         * Gets the unique metadata keys defined on the target object.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns An array of unique metadata keys.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.getOwnMetadataKeys(Example);
         *
         *     // property (on constructor)
         *     result = Reflect.getOwnMetadataKeys(Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.getOwnMetadataKeys(Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.getOwnMetadataKeys(Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.getOwnMetadataKeys(Example.prototype, "method");
         *
         */
        function getOwnMetadataKeys(target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryOwnMetadataKeys(target, propertyKey);
        }
        exporter("getOwnMetadataKeys", getOwnMetadataKeys);
        /**
         * Deletes the metadata entry from the target object with the provided key.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns `true` if the metadata entry was found and deleted; otherwise, false.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.deleteMetadata("custom:annotation", Example);
         *
         *     // property (on constructor)
         *     result = Reflect.deleteMetadata("custom:annotation", Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.deleteMetadata("custom:annotation", Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "method");
         *
         */
        function deleteMetadata(metadataKey, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);
            if (IsUndefined(metadataMap))
                return false;
            if (!metadataMap.delete(metadataKey))
                return false;
            if (metadataMap.size > 0)
                return true;
            var targetMetadata = Metadata.get(target);
            targetMetadata.delete(propertyKey);
            if (targetMetadata.size > 0)
                return true;
            Metadata.delete(target);
            return true;
        }
        exporter("deleteMetadata", deleteMetadata);
        function DecorateConstructor(decorators, target) {
            for (var i = decorators.length - 1; i >= 0; --i) {
                var decorator = decorators[i];
                var decorated = decorator(target);
                if (!IsUndefined(decorated) && !IsNull(decorated)) {
                    if (!IsConstructor(decorated))
                        throw new TypeError();
                    target = decorated;
                }
            }
            return target;
        }
        function DecorateProperty(decorators, target, propertyKey, descriptor) {
            for (var i = decorators.length - 1; i >= 0; --i) {
                var decorator = decorators[i];
                var decorated = decorator(target, propertyKey, descriptor);
                if (!IsUndefined(decorated) && !IsNull(decorated)) {
                    if (!IsObject(decorated))
                        throw new TypeError();
                    descriptor = decorated;
                }
            }
            return descriptor;
        }
        function GetOrCreateMetadataMap(O, P, Create) {
            var targetMetadata = Metadata.get(O);
            if (IsUndefined(targetMetadata)) {
                if (!Create)
                    return undefined;
                targetMetadata = new _Map();
                Metadata.set(O, targetMetadata);
            }
            var metadataMap = targetMetadata.get(P);
            if (IsUndefined(metadataMap)) {
                if (!Create)
                    return undefined;
                metadataMap = new _Map();
                targetMetadata.set(P, metadataMap);
            }
            return metadataMap;
        }
        // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata
        function OrdinaryHasMetadata(MetadataKey, O, P) {
            var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);
            if (hasOwn)
                return true;
            var parent = OrdinaryGetPrototypeOf(O);
            if (!IsNull(parent))
                return OrdinaryHasMetadata(MetadataKey, parent, P);
            return false;
        }
        // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata
        function OrdinaryHasOwnMetadata(MetadataKey, O, P) {
            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);
            if (IsUndefined(metadataMap))
                return false;
            return ToBoolean(metadataMap.has(MetadataKey));
        }
        // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata
        function OrdinaryGetMetadata(MetadataKey, O, P) {
            var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);
            if (hasOwn)
                return OrdinaryGetOwnMetadata(MetadataKey, O, P);
            var parent = OrdinaryGetPrototypeOf(O);
            if (!IsNull(parent))
                return OrdinaryGetMetadata(MetadataKey, parent, P);
            return undefined;
        }
        // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata
        function OrdinaryGetOwnMetadata(MetadataKey, O, P) {
            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);
            if (IsUndefined(metadataMap))
                return undefined;
            return metadataMap.get(MetadataKey);
        }
        // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata
        function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {
            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);
            metadataMap.set(MetadataKey, MetadataValue);
        }
        // 3.1.6.1 OrdinaryMetadataKeys(O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys
        function OrdinaryMetadataKeys(O, P) {
            var ownKeys = OrdinaryOwnMetadataKeys(O, P);
            var parent = OrdinaryGetPrototypeOf(O);
            if (parent === null)
                return ownKeys;
            var parentKeys = OrdinaryMetadataKeys(parent, P);
            if (parentKeys.length <= 0)
                return ownKeys;
            if (ownKeys.length <= 0)
                return parentKeys;
            var set = new _Set();
            var keys = [];
            for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {
                var key = ownKeys_1[_i];
                var hasKey = set.has(key);
                if (!hasKey) {
                    set.add(key);
                    keys.push(key);
                }
            }
            for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {
                var key = parentKeys_1[_a];
                var hasKey = set.has(key);
                if (!hasKey) {
                    set.add(key);
                    keys.push(key);
                }
            }
            return keys;
        }
        // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys
        function OrdinaryOwnMetadataKeys(O, P) {
            var keys = [];
            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);
            if (IsUndefined(metadataMap))
                return keys;
            var keysObj = metadataMap.keys();
            var iterator = GetIterator(keysObj);
            var k = 0;
            while (true) {
                var next = IteratorStep(iterator);
                if (!next) {
                    keys.length = k;
                    return keys;
                }
                var nextValue = IteratorValue(next);
                try {
                    keys[k] = nextValue;
                }
                catch (e) {
                    try {
                        IteratorClose(iterator);
                    }
                    finally {
                        throw e;
                    }
                }
                k++;
            }
        }
        // 6 ECMAScript Data Typ0es and Values
        // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values
        function Type(x) {
            if (x === null)
                return 1 /* Null */;
            switch (typeof x) {
                case "undefined": return 0 /* Undefined */;
                case "boolean": return 2 /* Boolean */;
                case "string": return 3 /* String */;
                case "symbol": return 4 /* Symbol */;
                case "number": return 5 /* Number */;
                case "object": return x === null ? 1 /* Null */ : 6 /* Object */;
                default: return 6 /* Object */;
            }
        }
        // 6.1.1 The Undefined Type
        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type
        function IsUndefined(x) {
            return x === undefined;
        }
        // 6.1.2 The Null Type
        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type
        function IsNull(x) {
            return x === null;
        }
        // 6.1.5 The Symbol Type
        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type
        function IsSymbol(x) {
            return typeof x === "symbol";
        }
        // 6.1.7 The Object Type
        // https://tc39.github.io/ecma262/#sec-object-type
        function IsObject(x) {
            return typeof x === "object" ? x !== null : typeof x === "function";
        }
        // 7.1 Type Conversion
        // https://tc39.github.io/ecma262/#sec-type-conversion
        // 7.1.1 ToPrimitive(input [, PreferredType])
        // https://tc39.github.io/ecma262/#sec-toprimitive
        function ToPrimitive(input, PreferredType) {
            switch (Type(input)) {
                case 0 /* Undefined */: return input;
                case 1 /* Null */: return input;
                case 2 /* Boolean */: return input;
                case 3 /* String */: return input;
                case 4 /* Symbol */: return input;
                case 5 /* Number */: return input;
            }
            var hint = PreferredType === 3 /* String */ ? "string" : PreferredType === 5 /* Number */ ? "number" : "default";
            var exoticToPrim = GetMethod(input, toPrimitiveSymbol);
            if (exoticToPrim !== undefined) {
                var result = exoticToPrim.call(input, hint);
                if (IsObject(result))
                    throw new TypeError();
                return result;
            }
            return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint);
        }
        // 7.1.1.1 OrdinaryToPrimitive(O, hint)
        // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive
        function OrdinaryToPrimitive(O, hint) {
            if (hint === "string") {
                var toString_1 = O.toString;
                if (IsCallable(toString_1)) {
                    var result = toString_1.call(O);
                    if (!IsObject(result))
                        return result;
                }
                var valueOf = O.valueOf;
                if (IsCallable(valueOf)) {
                    var result = valueOf.call(O);
                    if (!IsObject(result))
                        return result;
                }
            }
            else {
                var valueOf = O.valueOf;
                if (IsCallable(valueOf)) {
                    var result = valueOf.call(O);
                    if (!IsObject(result))
                        return result;
                }
                var toString_2 = O.toString;
                if (IsCallable(toString_2)) {
                    var result = toString_2.call(O);
                    if (!IsObject(result))
                        return result;
                }
            }
            throw new TypeError();
        }
        // 7.1.2 ToBoolean(argument)
        // https://tc39.github.io/ecma262/2016/#sec-toboolean
        function ToBoolean(argument) {
            return !!argument;
        }
        // 7.1.12 ToString(argument)
        // https://tc39.github.io/ecma262/#sec-tostring
        function ToString(argument) {
            return "" + argument;
        }
        // 7.1.14 ToPropertyKey(argument)
        // https://tc39.github.io/ecma262/#sec-topropertykey
        function ToPropertyKey(argument) {
            var key = ToPrimitive(argument, 3 /* String */);
            if (IsSymbol(key))
                return key;
            return ToString(key);
        }
        // 7.2 Testing and Comparison Operations
        // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations
        // 7.2.2 IsArray(argument)
        // https://tc39.github.io/ecma262/#sec-isarray
        function IsArray(argument) {
            return Array.isArray
                ? Array.isArray(argument)
                : argument instanceof Object
                    ? argument instanceof Array
                    : Object.prototype.toString.call(argument) === "[object Array]";
        }
        // 7.2.3 IsCallable(argument)
        // https://tc39.github.io/ecma262/#sec-iscallable
        function IsCallable(argument) {
            // NOTE: This is an approximation as we cannot check for [[Call]] internal method.
            return typeof argument === "function";
        }
        // 7.2.4 IsConstructor(argument)
        // https://tc39.github.io/ecma262/#sec-isconstructor
        function IsConstructor(argument) {
            // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.
            return typeof argument === "function";
        }
        // 7.2.7 IsPropertyKey(argument)
        // https://tc39.github.io/ecma262/#sec-ispropertykey
        function IsPropertyKey(argument) {
            switch (Type(argument)) {
                case 3 /* String */: return true;
                case 4 /* Symbol */: return true;
                default: return false;
            }
        }
        // 7.3 Operations on Objects
        // https://tc39.github.io/ecma262/#sec-operations-on-objects
        // 7.3.9 GetMethod(V, P)
        // https://tc39.github.io/ecma262/#sec-getmethod
        function GetMethod(V, P) {
            var func = V[P];
            if (func === undefined || func === null)
                return undefined;
            if (!IsCallable(func))
                throw new TypeError();
            return func;
        }
        // 7.4 Operations on Iterator Objects
        // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects
        function GetIterator(obj) {
            var method = GetMethod(obj, iteratorSymbol);
            if (!IsCallable(method))
                throw new TypeError(); // from Call
            var iterator = method.call(obj);
            if (!IsObject(iterator))
                throw new TypeError();
            return iterator;
        }
        // 7.4.4 IteratorValue(iterResult)
        // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue
        function IteratorValue(iterResult) {
            return iterResult.value;
        }
        // 7.4.5 IteratorStep(iterator)
        // https://tc39.github.io/ecma262/#sec-iteratorstep
        function IteratorStep(iterator) {
            var result = iterator.next();
            return result.done ? false : result;
        }
        // 7.4.6 IteratorClose(iterator, completion)
        // https://tc39.github.io/ecma262/#sec-iteratorclose
        function IteratorClose(iterator) {
            var f = iterator["return"];
            if (f)
                f.call(iterator);
        }
        // 9.1 Ordinary Object Internal Methods and Internal Slots
        // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots
        // 9.1.1.1 OrdinaryGetPrototypeOf(O)
        // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof
        function OrdinaryGetPrototypeOf(O) {
            var proto = Object.getPrototypeOf(O);
            if (typeof O !== "function" || O === functionPrototype)
                return proto;
            // TypeScript doesn't set __proto__ in ES5, as it's non-standard.
            // Try to determine the superclass constructor. Compatible implementations
            // must either set __proto__ on a subclass constructor to the superclass constructor,
            // or ensure each class has a valid `constructor` property on its prototype that
            // points back to the constructor.
            // If this is not the same as Function.[[Prototype]], then this is definately inherited.
            // This is the case when in ES6 or when using __proto__ in a compatible browser.
            if (proto !== functionPrototype)
                return proto;
            // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.
            var prototype = O.prototype;
            var prototypeProto = prototype && Object.getPrototypeOf(prototype);
            if (prototypeProto == null || prototypeProto === Object.prototype)
                return proto;
            // If the constructor was not a function, then we cannot determine the heritage.
            var constructor = prototypeProto.constructor;
            if (typeof constructor !== "function")
                return proto;
            // If we have some kind of self-reference, then we cannot determine the heritage.
            if (constructor === O)
                return proto;
            // we have a pretty good guess at the heritage.
            return constructor;
        }
        // naive Map shim
        function CreateMapPolyfill() {
            var cacheSentinel = {};
            var arraySentinel = [];
            var MapIterator = /** @class */ (function () {
                function MapIterator(keys, values, selector) {
                    this._index = 0;
                    this._keys = keys;
                    this._values = values;
                    this._selector = selector;
                }
                MapIterator.prototype["@@iterator"] = function () { return this; };
                MapIterator.prototype[iteratorSymbol] = function () { return this; };
                MapIterator.prototype.next = function () {
                    var index = this._index;
                    if (index >= 0 && index < this._keys.length) {
                        var result = this._selector(this._keys[index], this._values[index]);
                        if (index + 1 >= this._keys.length) {
                            this._index = -1;
                            this._keys = arraySentinel;
                            this._values = arraySentinel;
                        }
                        else {
                            this._index++;
                        }
                        return { value: result, done: false };
                    }
                    return { value: undefined, done: true };
                };
                MapIterator.prototype.throw = function (error) {
                    if (this._index >= 0) {
                        this._index = -1;
                        this._keys = arraySentinel;
                        this._values = arraySentinel;
                    }
                    throw error;
                };
                MapIterator.prototype.return = function (value) {
                    if (this._index >= 0) {
                        this._index = -1;
                        this._keys = arraySentinel;
                        this._values = arraySentinel;
                    }
                    return { value: value, done: true };
                };
                return MapIterator;
            }());
            return /** @class */ (function () {
                function Map() {
                    this._keys = [];
                    this._values = [];
                    this._cacheKey = cacheSentinel;
                    this._cacheIndex = -2;
                }
                Object.defineProperty(Map.prototype, "size", {
                    get: function () { return this._keys.length; },
                    enumerable: true,
                    configurable: true
                });
                Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };
                Map.prototype.get = function (key) {
                    var index = this._find(key, /*insert*/ false);
                    return index >= 0 ? this._values[index] : undefined;
                };
                Map.prototype.set = function (key, value) {
                    var index = this._find(key, /*insert*/ true);
                    this._values[index] = value;
                    return this;
                };
                Map.prototype.delete = function (key) {
                    var index = this._find(key, /*insert*/ false);
                    if (index >= 0) {
                        var size = this._keys.length;
                        for (var i = index + 1; i < size; i++) {
                            this._keys[i - 1] = this._keys[i];
                            this._values[i - 1] = this._values[i];
                        }
                        this._keys.length--;
                        this._values.length--;
                        if (key === this._cacheKey) {
                            this._cacheKey = cacheSentinel;
                            this._cacheIndex = -2;
                        }
                        return true;
                    }
                    return false;
                };
                Map.prototype.clear = function () {
                    this._keys.length = 0;
                    this._values.length = 0;
                    this._cacheKey = cacheSentinel;
                    this._cacheIndex = -2;
                };
                Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };
                Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };
                Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };
                Map.prototype["@@iterator"] = function () { return this.entries(); };
                Map.prototype[iteratorSymbol] = function () { return this.entries(); };
                Map.prototype._find = function (key, insert) {
                    if (this._cacheKey !== key) {
                        this._cacheIndex = this._keys.indexOf(this._cacheKey = key);
                    }
                    if (this._cacheIndex < 0 && insert) {
                        this._cacheIndex = this._keys.length;
                        this._keys.push(key);
                        this._values.push(undefined);
                    }
                    return this._cacheIndex;
                };
                return Map;
            }());
            function getKey(key, _) {
                return key;
            }
            function getValue(_, value) {
                return value;
            }
            function getEntry(key, value) {
                return [key, value];
            }
        }
        // naive Set shim
        function CreateSetPolyfill() {
            return /** @class */ (function () {
                function Set() {
                    this._map = new _Map();
                }
                Object.defineProperty(Set.prototype, "size", {
                    get: function () { return this._map.size; },
                    enumerable: true,
                    configurable: true
                });
                Set.prototype.has = function (value) { return this._map.has(value); };
                Set.prototype.add = function (value) { return this._map.set(value, value), this; };
                Set.prototype.delete = function (value) { return this._map.delete(value); };
                Set.prototype.clear = function () { this._map.clear(); };
                Set.prototype.keys = function () { return this._map.keys(); };
                Set.prototype.values = function () { return this._map.values(); };
                Set.prototype.entries = function () { return this._map.entries(); };
                Set.prototype["@@iterator"] = function () { return this.keys(); };
                Set.prototype[iteratorSymbol] = function () { return this.keys(); };
                return Set;
            }());
        }
        // naive WeakMap shim
        function CreateWeakMapPolyfill() {
            var UUID_SIZE = 16;
            var keys = HashMap.create();
            var rootKey = CreateUniqueKey();
            return /** @class */ (function () {
                function WeakMap() {
                    this._key = CreateUniqueKey();
                }
                WeakMap.prototype.has = function (target) {
                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);
                    return table !== undefined ? HashMap.has(table, this._key) : false;
                };
                WeakMap.prototype.get = function (target) {
                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);
                    return table !== undefined ? HashMap.get(table, this._key) : undefined;
                };
                WeakMap.prototype.set = function (target, value) {
                    var table = GetOrCreateWeakMapTable(target, /*create*/ true);
                    table[this._key] = value;
                    return this;
                };
                WeakMap.prototype.delete = function (target) {
                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);
                    return table !== undefined ? delete table[this._key] : false;
                };
                WeakMap.prototype.clear = function () {
                    // NOTE: not a real clear, just makes the previous data unreachable
                    this._key = CreateUniqueKey();
                };
                return WeakMap;
            }());
            function CreateUniqueKey() {
                var key;
                do
                    key = "@@WeakMap@@" + CreateUUID();
                while (HashMap.has(keys, key));
                keys[key] = true;
                return key;
            }
            function GetOrCreateWeakMapTable(target, create) {
                if (!hasOwn.call(target, rootKey)) {
                    if (!create)
                        return undefined;
                    Object.defineProperty(target, rootKey, { value: HashMap.create() });
                }
                return target[rootKey];
            }
            function FillRandomBytes(buffer, size) {
                for (var i = 0; i < size; ++i)
                    buffer[i] = Math.random() * 0xff | 0;
                return buffer;
            }
            function GenRandomBytes(size) {
                if (typeof Uint8Array === "function") {
                    if (typeof crypto !== "undefined")
                        return crypto.getRandomValues(new Uint8Array(size));
                    if (typeof msCrypto !== "undefined")
                        return msCrypto.getRandomValues(new Uint8Array(size));
                    return FillRandomBytes(new Uint8Array(size), size);
                }
                return FillRandomBytes(new Array(size), size);
            }
            function CreateUUID() {
                var data = GenRandomBytes(UUID_SIZE);
                // mark as random - RFC 4122 § 4.4
                data[6] = data[6] & 0x4f | 0x40;
                data[8] = data[8] & 0xbf | 0x80;
                var result = "";
                for (var offset = 0; offset < UUID_SIZE; ++offset) {
                    var byte = data[offset];
                    if (offset === 4 || offset === 6 || offset === 8)
                        result += "-";
                    if (byte < 16)
                        result += "0";
                    result += byte.toString(16).toLowerCase();
                }
                return result;
            }
        }
        // uses a heuristic used by v8 and chakra to force an object into dictionary mode.
        function MakeDictionary(obj) {
            obj.__ = undefined;
            delete obj.__;
            return obj;
        }
    });
})(Reflect || (Reflect = {}));


/***/ }),
/* 2 */
/***/ (function(module, exports) {

module.exports = require("coc.nvim");

/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var keys = __webpack_require__(4);
exports.METADATA_KEY = keys;
var container_1 = __webpack_require__(5);
exports.Container = container_1.Container;
var literal_types_1 = __webpack_require__(7);
exports.BindingScopeEnum = literal_types_1.BindingScopeEnum;
exports.BindingTypeEnum = literal_types_1.BindingTypeEnum;
exports.TargetTypeEnum = literal_types_1.TargetTypeEnum;
var container_module_1 = __webpack_require__(35);
exports.AsyncContainerModule = container_module_1.AsyncContainerModule;
exports.ContainerModule = container_module_1.ContainerModule;
var injectable_1 = __webpack_require__(36);
exports.injectable = injectable_1.injectable;
var tagged_1 = __webpack_require__(37);
exports.tagged = tagged_1.tagged;
var named_1 = __webpack_require__(38);
exports.named = named_1.named;
var inject_1 = __webpack_require__(19);
exports.inject = inject_1.inject;
exports.LazyServiceIdentifer = inject_1.LazyServiceIdentifer;
var optional_1 = __webpack_require__(39);
exports.optional = optional_1.optional;
var unmanaged_1 = __webpack_require__(40);
exports.unmanaged = unmanaged_1.unmanaged;
var multi_inject_1 = __webpack_require__(41);
exports.multiInject = multi_inject_1.multiInject;
var target_name_1 = __webpack_require__(42);
exports.targetName = target_name_1.targetName;
var post_construct_1 = __webpack_require__(43);
exports.postConstruct = post_construct_1.postConstruct;
var metadata_reader_1 = __webpack_require__(10);
exports.MetadataReader = metadata_reader_1.MetadataReader;
var id_1 = __webpack_require__(8);
exports.id = id_1.id;
var decorator_utils_1 = __webpack_require__(20);
exports.decorate = decorator_utils_1.decorate;
var constraint_helpers_1 = __webpack_require__(32);
exports.traverseAncerstors = constraint_helpers_1.traverseAncerstors;
exports.taggedConstraint = constraint_helpers_1.taggedConstraint;
exports.namedConstraint = constraint_helpers_1.namedConstraint;
exports.typeConstraint = constraint_helpers_1.typeConstraint;
var serialization_1 = __webpack_require__(14);
exports.getServiceIdentifierAsString = serialization_1.getServiceIdentifierAsString;
var binding_utils_1 = __webpack_require__(44);
exports.multiBindToService = binding_utils_1.multiBindToService;


/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.NAMED_TAG = "named";
exports.NAME_TAG = "name";
exports.UNMANAGED_TAG = "unmanaged";
exports.OPTIONAL_TAG = "optional";
exports.INJECT_TAG = "inject";
exports.MULTI_INJECT_TAG = "multi_inject";
exports.TAGGED = "inversify:tagged";
exports.TAGGED_PROP = "inversify:tagged_props";
exports.PARAM_TYPES = "inversify:paramtypes";
exports.DESIGN_PARAM_TYPES = "design:paramtypes";
exports.POST_CONSTRUCT = "post_construct";


/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    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(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { 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 (_) try {
            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [0, 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 };
    }
};
Object.defineProperty(exports, "__esModule", { value: true });
var binding_1 = __webpack_require__(6);
var ERROR_MSGS = __webpack_require__(9);
var literal_types_1 = __webpack_require__(7);
var METADATA_KEY = __webpack_require__(4);
var metadata_reader_1 = __webpack_require__(10);
var planner_1 = __webpack_require__(11);
var resolver_1 = __webpack_require__(24);
var binding_to_syntax_1 = __webpack_require__(26);
var id_1 = __webpack_require__(8);
var serialization_1 = __webpack_require__(14);
var container_snapshot_1 = __webpack_require__(33);
var lookup_1 = __webpack_require__(34);
var Container = (function () {
    function Container(containerOptions) {
        var options = containerOptions || {};
        if (typeof options !== "object") {
            throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT);
        }
        if (options.defaultScope === undefined) {
            options.defaultScope = literal_types_1.BindingScopeEnum.Transient;
        }
        else if (options.defaultScope !== literal_types_1.BindingScopeEnum.Singleton &&
            options.defaultScope !== literal_types_1.BindingScopeEnum.Transient &&
            options.defaultScope !== literal_types_1.BindingScopeEnum.Request) {
            throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE);
        }
        if (options.autoBindInjectable === undefined) {
            options.autoBindInjectable = false;
        }
        else if (typeof options.autoBindInjectable !== "boolean") {
            throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE);
        }
        if (options.skipBaseClassChecks === undefined) {
            options.skipBaseClassChecks = false;
        }
        else if (typeof options.skipBaseClassChecks !== "boolean") {
            throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK);
        }
        this.options = {
            autoBindInjectable: options.autoBindInjectable,
            defaultScope: options.defaultScope,
            skipBaseClassChecks: options.skipBaseClassChecks
        };
        this.id = id_1.id();
        this._bindingDictionary = new lookup_1.Lookup();
        this._snapshots = [];
        this._middleware = null;
        this.parent = null;
        this._metadataReader = new metadata_reader_1.MetadataReader();
    }
    Container.merge = function (container1, container2) {
        var container = new Container();
        var bindingDictionary = planner_1.getBindingDictionary(container);
        var bindingDictionary1 = planner_1.getBindingDictionary(container1);
        var bindingDictionary2 = planner_1.getBindingDictionary(container2);
        function copyDictionary(origin, destination) {
            origin.traverse(function (key, value) {
                value.forEach(function (binding) {
                    destination.add(binding.serviceIdentifier, binding.clone());
                });
            });
        }
        copyDictionary(bindingDictionary1, bindingDictionary);
        copyDictionary(bindingDictionary2, bindingDictionary);
        return container;
    };
    Container.prototype.load = function () {
        var modules = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            modules[_i] = arguments[_i];
        }
        var getHelpers = this._getContainerModuleHelpersFactory();
        for (var _a = 0, modules_1 = modules; _a < modules_1.length; _a++) {
            var currentModule = modules_1[_a];
            var containerModuleHelpers = getHelpers(currentModule.id);
            currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction);
        }
    };
    Container.prototype.loadAsync = function () {
        var modules = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            modules[_i] = arguments[_i];
        }
        return __awaiter(this, void 0, void 0, function () {
            var getHelpers, _a, modules_2, currentModule, containerModuleHelpers;
            return __generator(this, function (_b) {
                switch (_b.label) {
                    case 0:
                        getHelpers = this._getContainerModuleHelpersFactory();
                        _a = 0, modules_2 = modules;
                        _b.label = 1;
                    case 1:
                        if (!(_a < modules_2.length)) return [3, 4];
                        currentModule = modules_2[_a];
                        containerModuleHelpers = getHelpers(currentModule.id);
                        return [4, currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction)];
                    case 2:
                        _b.sent();
                        _b.label = 3;
                    case 3:
                        _a++;
                        return [3, 1];
                    case 4: return [2];
                }
            });
        });
    };
    Container.prototype.unload = function () {
        var _this = this;
        var modules = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            modules[_i] = arguments[_i];
        }
        var conditionFactory = function (expected) { return function (item) {
            return item.moduleId === expected;
        }; };
        modules.forEach(function (module) {
            var condition = conditionFactory(module.id);
            _this._bindingDictionary.removeByCondition(condition);
        });
    };
    Container.prototype.bind = function (serviceIdentifier) {
        var scope = this.options.defaultScope || literal_types_1.BindingScopeEnum.Transient;
        var binding = new binding_1.Binding(serviceIdentifier, scope);
        this._bindingDictionary.add(serviceIdentifier, binding);
        return new binding_to_syntax_1.BindingToSyntax(binding);
    };
    Container.prototype.rebind = function (serviceIdentifier) {
        this.unbind(serviceIdentifier);
        return this.bind(serviceIdentifier);
    };
    Container.prototype.unbind = function (serviceIdentifier) {
        try {
            this._bindingDictionary.remove(serviceIdentifier);
        }
        catch (e) {
            throw new Error(ERROR_MSGS.CANNOT_UNBIND + " " + serialization_1.getServiceIdentifierAsString(serviceIdentifier));
        }
    };
    Container.prototype.unbindAll = function () {
        this._bindingDictionary = new lookup_1.Lookup();
    };
    Container.prototype.isBound = function (serviceIdentifier) {
        var bound = this._bindingDictionary.hasKey(serviceIdentifier);
        if (!bound && this.parent) {
            bound = this.parent.isBound(serviceIdentifier);
        }
        return bound;
    };
    Container.prototype.isBoundNamed = function (serviceIdentifier, named) {
        return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
    };
    Container.prototype.isBoundTagged = function (serviceIdentifier, key, value) {
        var bound = false;
        if (this._bindingDictionary.hasKey(serviceIdentifier)) {
            var bindings = this._bindingDictionary.get(serviceIdentifier);
            var request_1 = planner_1.createMockRequest(this, serviceIdentifier, key, value);
            bound = bindings.some(function (b) { return b.constraint(request_1); });
        }
        if (!bound && this.parent) {
            bound = this.parent.isBoundTagged(serviceIdentifier, key, value);
        }
        return bound;
    };
    Container.prototype.snapshot = function () {
        this._snapshots.push(container_snapshot_1.ContainerSnapshot.of(this._bindingDictionary.clone(), this._middleware));
    };
    Container.prototype.restore = function () {
        var snapshot = this._snapshots.pop();
        if (snapshot === undefined) {
            throw new Error(ERROR_MSGS.NO_MORE_SNAPSHOTS_AVAILABLE);
        }
        this._bindingDictionary = snapshot.bindings;
        this._middleware = snapshot.middleware;
    };
    Container.prototype.createChild = function (containerOptions) {
        var child = new Container(containerOptions || this.options);
        child.parent = this;
        return child;
    };
    Container.prototype.applyMiddleware = function () {
        var middlewares = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            middlewares[_i] = arguments[_i];
        }
        var initial = (this._middleware) ? this._middleware : this._planAndResolve();
        this._middleware = middlewares.reduce(function (prev, curr) { return curr(prev); }, initial);
    };
    Container.prototype.applyCustomMetadataReader = function (metadataReader) {
        this._metadataReader = metadataReader;
    };
    Container.prototype.get = function (serviceIdentifier) {
        return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);
    };
    Container.prototype.getTagged = function (serviceIdentifier, key, value) {
        return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);
    };
    Container.prototype.getNamed = function (serviceIdentifier, named) {
        return this.getTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
    };
    Container.prototype.getAll = function (serviceIdentifier) {
        return this._get(true, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);
    };
    Container.prototype.getAllTagged = function (serviceIdentifier, key, value) {
        return this._get(false, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);
    };
    Container.prototype.getAllNamed = function (serviceIdentifier, named) {
        return this.getAllTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
    };
    Container.prototype.resolve = function (constructorFunction) {
        var tempContainer = this.createChild();
        tempContainer.bind(constructorFunction).toSelf();
        return tempContainer.get(constructorFunction);
    };
    Container.prototype._getContainerModuleHelpersFactory = function () {
        var _this = this;
        var setModuleId = function (bindingToSyntax, moduleId) {
            bindingToSyntax._binding.moduleId = moduleId;
        };
        var getBindFunction = function (moduleId) {
            return function (serviceIdentifier) {
                var _bind = _this.bind.bind(_this);
                var bindingToSyntax = _bind(serviceIdentifier);
                setModuleId(bindingToSyntax, moduleId);
                return bindingToSyntax;
            };
        };
        var getUnbindFunction = function (moduleId) {
            return function (serviceIdentifier) {
                var _unbind = _this.unbind.bind(_this);
                _unbind(serviceIdentifier);
            };
        };
        var getIsboundFunction = function (moduleId) {
            return function (serviceIdentifier) {
                var _isBound = _this.isBound.bind(_this);
                return _isBound(serviceIdentifier);
            };
        };
        var getRebindFunction = function (moduleId) {
            return function (serviceIdentifier) {
                var _rebind = _this.rebind.bind(_this);
                var bindingToSyntax = _rebind(serviceIdentifier);
                setModuleId(bindingToSyntax, moduleId);
                return bindingToSyntax;
            };
        };
        return function (mId) { return ({
            bindFunction: getBindFunction(mId),
            isboundFunction: getIsboundFunction(mId),
            rebindFunction: getRebindFunction(mId),
            unbindFunction: getUnbindFunction(mId)
        }); };
    };
    Container.prototype._get = function (avoidConstraints, isMultiInject, targetType, serviceIdentifier, key, value) {
        var result = null;
        var defaultArgs = {
            avoidConstraints: avoidConstraints,
            contextInterceptor: function (context) { return context; },
            isMultiInject: isMultiInject,
            key: key,
            serviceIdentifier: serviceIdentifier,
            targetType: targetType,
            value: value
        };
        if (this._middleware) {
            result = this._middleware(defaultArgs);
            if (result === undefined || result === null) {
                throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);
            }
        }
        else {
            result = this._planAndResolve()(defaultArgs);
        }
        return result;
    };
    Container.prototype._planAndResolve = function () {
        var _this = this;
        return function (args) {
            var context = planner_1.plan(_this._metadataReader, _this, args.isMultiInject, args.targetType, args.serviceIdentifier, args.key, args.value, args.avoidConstraints);
            context = args.contextInterceptor(context);
            var result = resolver_1.resolve(context);
            return result;
        };
    };
    return Container;
}());
exports.Container = Container;


/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var literal_types_1 = __webpack_require__(7);
var id_1 = __webpack_require__(8);
var Binding = (function () {
    function Binding(serviceIdentifier, scope) {
        this.id = id_1.id();
        this.activated = false;
        this.serviceIdentifier = serviceIdentifier;
        this.scope = scope;
        this.type = literal_types_1.BindingTypeEnum.Invalid;
        this.constraint = function (request) { return true; };
        this.implementationType = null;
        this.cache = null;
        this.factory = null;
        this.provider = null;
        this.onActivation = null;
        this.dynamicValue = null;
    }
    Binding.prototype.clone = function () {
        var clone = new Binding(this.serviceIdentifier, this.scope);
        clone.activated = false;
        clone.implementationType = this.implementationType;
        clone.dynamicValue = this.dynamicValue;
        clone.scope = this.scope;
        clone.type = this.type;
        clone.factory = this.factory;
        clone.provider = this.provider;
        clone.constraint = this.constraint;
        clone.onActivation = this.onActivation;
        clone.cache = this.cache;
        return clone;
    };
    return Binding;
}());
exports.Binding = Binding;


/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var BindingScopeEnum = {
    Request: "Request",
    Singleton: "Singleton",
    Transient: "Transient"
};
exports.BindingScopeEnum = BindingScopeEnum;
var BindingTypeEnum = {
    ConstantValue: "ConstantValue",
    Constructor: "Constructor",
    DynamicValue: "DynamicValue",
    Factory: "Factory",
    Function: "Function",
    Instance: "Instance",
    Invalid: "Invalid",
    Provider: "Provider"
};
exports.BindingTypeEnum = BindingTypeEnum;
var TargetTypeEnum = {
    ClassProperty: "ClassProperty",
    ConstructorArgument: "ConstructorArgument",
    Variable: "Variable"
};
exports.TargetTypeEnum = TargetTypeEnum;


/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var idCounter = 0;
function id() {
    return idCounter++;
}
exports.id = id;


/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.DUPLICATED_INJECTABLE_DECORATOR = "Cannot apply @injectable decorator multiple times.";
exports.DUPLICATED_METADATA = "Metadata key was used more than once in a parameter:";
exports.NULL_ARGUMENT = "NULL argument";
exports.KEY_NOT_FOUND = "Key Not Found";
exports.AMBIGUOUS_MATCH = "Ambiguous match found for serviceIdentifier:";
exports.CANNOT_UNBIND = "Could not unbind serviceIdentifier:";
exports.NOT_REGISTERED = "No matching bindings found for serviceIdentifier:";
exports.MISSING_INJECTABLE_ANNOTATION = "Missing required @injectable annotation in:";
exports.MISSING_INJECT_ANNOTATION = "Missing required @inject or @multiInject annotation in:";
exports.UNDEFINED_INJECT_ANNOTATION = function (name) {
    return "@inject called with undefined this could mean that the class " + name + " has " +
        "a circular dependency problem. You can use a LazyServiceIdentifer to  " +
        "overcome this limitation.";
};
exports.CIRCULAR_DEPENDENCY = "Circular dependency found:";
exports.NOT_IMPLEMENTED = "Sorry, this feature is not fully implemented yet.";
exports.INVALID_BINDING_TYPE = "Invalid binding type:";
exports.NO_MORE_SNAPSHOTS_AVAILABLE = "No snapshot available to restore.";
exports.INVALID_MIDDLEWARE_RETURN = "Invalid return type in middleware. Middleware must return!";
exports.INVALID_FUNCTION_BINDING = "Value provided to function binding must be a function!";
exports.INVALID_TO_SELF_VALUE = "The toSelf function can only be applied when a constructor is " +
    "used as service identifier";
exports.INVALID_DECORATOR_OPERATION = "The @inject @multiInject @tagged and @named decorators " +
    "must be applied to the parameters of a class constructor or a class property.";
exports.ARGUMENTS_LENGTH_MISMATCH = function () {
    var values = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        values[_i] = arguments[_i];
    }
    return "The number of constructor arguments in the derived class " +
        (values[0] + " must be >= than the number of constructor arguments of its base class.");
};
exports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = "Invalid Container constructor argument. Container options " +
    "must be an object.";
exports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = "Invalid Container option. Default scope must " +
    "be a string ('singleton' or 'transient').";
exports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = "Invalid Container option. Auto bind injectable must " +
    "be a boolean";
exports.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = "Invalid Container option. Skip base check must " +
    "be a boolean";
exports.MULTIPLE_POST_CONSTRUCT_METHODS = "Cannot apply @postConstruct decorator multiple times in the same class";
exports.POST_CONSTRUCT_ERROR = function () {
    var values = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        values[_i] = arguments[_i];
    }
    return "@postConstruct error in class " + values[0] + ": " + values[1];
};
exports.CIRCULAR_DEPENDENCY_IN_FACTORY = function () {
    var values = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        values[_i] = arguments[_i];
    }
    return "It looks like there is a circular dependency " +
        ("in one of the '" + values[0] + "' bindings. Please investigate bindings with") +
        ("service identifier '" + values[1] + "'.");
};
exports.STACK_OVERFLOW = "Maximum call stack size exceeded";


/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var METADATA_KEY = __webpack_require__(4);
var MetadataReader = (function () {
    function MetadataReader() {
    }
    MetadataReader.prototype.getConstructorMetadata = function (constructorFunc) {
        var compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc);
        var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc);
        return {
            compilerGeneratedMetadata: compilerGeneratedMetadata,
            userGeneratedMetadata: userGeneratedMetadata || {}
        };
    };
    MetadataReader.prototype.getPropertiesMetadata = function (constructorFunc) {
        var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || [];
        return userGeneratedMetadata;
    };
    return MetadataReader;
}());
exports.MetadataReader = MetadataReader;


/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var binding_count_1 = __webpack_require__(12);
var ERROR_MSGS = __webpack_require__(9);
var literal_types_1 = __webpack_require__(7);
var METADATA_KEY = __webpack_require__(4);
var exceptions_1 = __webpack_require__(13);
var serialization_1 = __webpack_require__(14);
var context_1 = __webpack_require__(15);
var metadata_1 = __webpack_require__(16);
var plan_1 = __webpack_require__(17);
var reflection_utils_1 = __webpack_require__(18);
var request_1 = __webpack_require__(23);
var target_1 = __webpack_require__(21);
function getBindingDictionary(cntnr) {
    return cntnr._bindingDictionary;
}
exports.getBindingDictionary = getBindingDictionary;
function _createTarget(isMultiInject, targetType, serviceIdentifier, name, key, value) {
    var metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;
    var injectMetadata = new metadata_1.Metadata(metadataKey, serviceIdentifier);
    var target = new target_1.Target(targetType, name, serviceIdentifier, injectMetadata);
    if (key !== undefined) {
        var tagMetadata = new metadata_1.Metadata(key, value);
        target.metadata.push(tagMetadata);
    }
    return target;
}
function _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target) {
    var bindings = getBindings(context.container, target.serviceIdentifier);
    var activeBindings = [];
    if (bindings.length === binding_count_1.BindingCount.NoBindingsAvailable &&
        context.container.options.autoBindInjectable &&
        typeof target.serviceIdentifier === "function" &&
        metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata) {
        context.container.bind(target.serviceIdentifier).toSelf();
        bindings = getBindings(context.container, target.serviceIdentifier);
    }
    if (!avoidConstraints) {
        activeBindings = bindings.filter(function (binding) {
            var request = new request_1.Request(binding.serviceIdentifier, context, parentRequest, binding, target);
            return binding.constraint(request);
        });
    }
    else {
        activeBindings = bindings;
    }
    _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);
    return activeBindings;
}
function _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {
    switch (bindings.length) {
        case binding_count_1.BindingCount.NoBindingsAvailable:
            if (target.isOptional()) {
                return bindings;
            }
            else {
                var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);
                var msg = ERROR_MSGS.NOT_REGISTERED;
                msg += serialization_1.listMetadataForTarget(serviceIdentifierString, target);
                msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);
                throw new Error(msg);
            }
        case binding_count_1.BindingCount.OnlyOneBindingAvailable:
            if (!target.isArray()) {
                return bindings;
            }
        case binding_count_1.BindingCount.MultipleBindingsAvailable:
        default:
            if (!target.isArray()) {
                var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);
                var msg = ERROR_MSGS.AMBIGUOUS_MATCH + " " + serviceIdentifierString;
                msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);
                throw new Error(msg);
            }
            else {
                return bindings;
            }
    }
}
function _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, parentRequest, target) {
    var activeBindings;
    var childRequest;
    if (parentRequest === null) {
        activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, null, target);
        childRequest = new request_1.Request(serviceIdentifier, context, null, activeBindings, target);
        var thePlan = new plan_1.Plan(context, childRequest);
        context.addPlan(thePlan);
    }
    else {
        activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target);
        childRequest = parentRequest.addChildRequest(target.serviceIdentifier, activeBindings, target);
    }
    activeBindings.forEach(function (binding) {
        var subChildRequest = null;
        if (target.isArray()) {
            subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);
        }
        else {
            if (binding.cache) {
                return;
            }
            subChildRequest = childRequest;
        }
        if (binding.type === literal_types_1.BindingTypeEnum.Instance && binding.implementationType !== null) {
            var dependencies = reflection_utils_1.getDependencies(metadataReader, binding.implementationType);
            if (!context.container.options.skipBaseClassChecks) {
                var baseClassDependencyCount = reflection_utils_1.getBaseClassDependencyCount(metadataReader, binding.implementationType);
                if (dependencies.length < baseClassDependencyCount) {
                    var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH(reflection_utils_1.getFunctionName(binding.implementationType));
                    throw new Error(error);
                }
            }
            dependencies.forEach(function (dependency) {
                _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency);
            });
        }
    });
}
function getBindings(container, serviceIdentifier) {
    var bindings = [];
    var bindingDictionary = getBindingDictionary(container);
    if (bindingDictionary.hasKey(serviceIdentifier)) {
        bindings = bindingDictionary.get(serviceIdentifier);
    }
    else if (container.parent !== null) {
        bindings = getBindings(container.parent, serviceIdentifier);
    }
    return bindings;
}
function plan(metadataReader, container, isMultiInject, targetType, serviceIdentifier, key, value, avoidConstraints) {
    if (avoidConstraints === void 0) { avoidConstraints = false; }
    var context = new context_1.Context(container);
    var target = _createTarget(isMultiInject, targetType, serviceIdentifier, "", key, value);
    try {
        _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, null, target);
        return context;
    }
    catch (error) {
        if (exceptions_1.isStackOverflowExeption(error)) {
            if (context.plan) {
                serialization_1.circularDependencyToException(context.plan.rootRequest);
            }
        }
        throw error;
    }
}
exports.plan = plan;
function createMockRequest(container, serviceIdentifier, key, value) {
    var target = new target_1.Target(literal_types_1.TargetTypeEnum.Variable, "", serviceIdentifier, new metadata_1.Metadata(key, value));
    var context = new context_1.Context(container);
    var request = new request_1.Request(serviceIdentifier, context, null, [], target);
    return request;
}
exports.createMockRequest = createMockRequest;


/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var BindingCount = {
    MultipleBindingsAvailable: 2,
    NoBindingsAvailable: 0,
    OnlyOneBindingAvailable: 1
};
exports.BindingCount = BindingCount;


/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ERROR_MSGS = __webpack_require__(9);
function isStackOverflowExeption(error) {
    return (error instanceof RangeError ||
        error.message === ERROR_MSGS.STACK_OVERFLOW);
}
exports.isStackOverflowExeption = isStackOverflowExeption;


/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ERROR_MSGS = __webpack_require__(9);
function getServiceIdentifierAsString(serviceIdentifier) {
    if (typeof serviceIdentifier === "function") {
        var _serviceIdentifier = serviceIdentifier;
        return _serviceIdentifier.name;
    }
    else if (typeof serviceIdentifier === "symbol") {
        return serviceIdentifier.toString();
    }
    else {
        var _serviceIdentifier = serviceIdentifier;
        return _serviceIdentifier;
    }
}
exports.getServiceIdentifierAsString = getServiceIdentifierAsString;
function listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier, getBindings) {
    var registeredBindingsList = "";
    var registeredBindings = getBindings(container, serviceIdentifier);
    if (registeredBindings.length !== 0) {
        registeredBindingsList = "\nRegistered bindings:";
        registeredBindings.forEach(function (binding) {
            var name = "Object";
            if (binding.implementationType !== null) {
                name = getFunctionName(binding.implementationType);
            }
            registeredBindingsList = registeredBindingsList + "\n " + name;
            if (binding.constraint.metaData) {
                registeredBindingsList = registeredBindingsList + " - " + binding.constraint.metaData;
            }
        });
    }
    return registeredBindingsList;
}
exports.listRegisteredBindingsForServiceIdentifier = listRegisteredBindingsForServiceIdentifier;
function alreadyDependencyChain(request, serviceIdentifier) {
    if (request.parentRequest === null) {
        return false;
    }
    else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {
        return true;
    }
    else {
        return alreadyDependencyChain(request.parentRequest, serviceIdentifier);
    }
}
function dependencyChainToString(request) {
    function _createStringArr(req, result) {
        if (result === void 0) { result = []; }
        var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);
        result.push(serviceIdentifier);
        if (req.parentRequest !== null) {
            return _createStringArr(req.parentRequest, result);
        }
        return result;
    }
    var stringArr = _createStringArr(request);
    return stringArr.reverse().join(" --> ");
}
function circularDependencyToException(request) {
    request.childRequests.forEach(function (childRequest) {
        if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {
            var services = dependencyChainToString(childRequest);
            throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + " " + services);
        }
        else {
            circularDependencyToException(childRequest);
        }
    });
}
exports.circularDependencyToException = circularDependencyToException;
function listMetadataForTarget(serviceIdentifierString, target) {
    if (target.isTagged() || target.isNamed()) {
        var m_1 = "";
        var namedTag = target.getNamedTag();
        var otherTags = target.getCustomTags();
        if (namedTag !== null) {
            m_1 += namedTag.toString() + "\n";
        }
        if (otherTags !== null) {
            otherTags.forEach(function (tag) {
                m_1 += tag.toString() + "\n";
            });
        }
        return " " + serviceIdentifierString + "\n " + serviceIdentifierString + " - " + m_1;
    }
    else {
        return " " + serviceIdentifierString;
    }
}
exports.listMetadataForTarget = listMetadataForTarget;
function getFunctionName(v) {
    if (v.name) {
        return v.name;
    }
    else {
        var name_1 = v.toString();
        var match = name_1.match(/^function\s*([^\s(]+)/);
        return match ? match[1] : "Anonymous function: " + name_1;
    }
}
exports.getFunctionName = getFunctionName;


/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var id_1 = __webpack_require__(8);
var Context = (function () {
    function Context(container) {
        this.id = id_1.id();
        this.container = container;
    }
    Context.prototype.addPlan = function (plan) {
        this.plan = plan;
    };
    Context.prototype.setCurrentRequest = function (currentRequest) {
        this.currentRequest = currentRequest;
    };
    return Context;
}());
exports.Context = Context;


/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var METADATA_KEY = __webpack_require__(4);
var Metadata = (function () {
    function Metadata(key, value) {
        this.key = key;
        this.value = value;
    }
    Metadata.prototype.toString = function () {
        if (this.key === METADATA_KEY.NAMED_TAG) {
            return "named: " + this.value.toString() + " ";
        }
        else {
            return "tagged: { key:" + this.key.toString() + ", value: " + this.value + " }";
        }
    };
    return Metadata;
}());
exports.Metadata = Metadata;


/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var Plan = (function () {
    function Plan(parentContext, rootRequest) {
        this.parentContext = parentContext;
        this.rootRequest = rootRequest;
    }
    return Plan;
}());
exports.Plan = Plan;


/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var inject_1 = __webpack_require__(19);
var ERROR_MSGS = __webpack_require__(9);
var literal_types_1 = __webpack_require__(7);
var METADATA_KEY = __webpack_require__(4);
var serialization_1 = __webpack_require__(14);
exports.getFunctionName = serialization_1.getFunctionName;
var target_1 = __webpack_require__(21);
function getDependencies(metadataReader, func) {
    var constructorName = serialization_1.getFunctionName(func);
    var targets = getTargets(metadataReader, constructorName, func, false);
    return targets;
}
exports.getDependencies = getDependencies;
function getTargets(metadataReader, constructorName, func, isBaseClass) {
    var metadata = metadataReader.getConstructorMetadata(func);
    var serviceIdentifiers = metadata.compilerGeneratedMetadata;
    if (serviceIdentifiers === undefined) {
        var msg = ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION + " " + constructorName + ".";
        throw new Error(msg);
    }
    var constructorArgsMetadata = metadata.userGeneratedMetadata;
    var keys = Object.keys(constructorArgsMetadata);
    var hasUserDeclaredUnknownInjections = (func.length === 0 && keys.length > 0);
    var iterations = (hasUserDeclaredUnknownInjections) ? keys.length : func.length;
    var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations);
    var propertyTargets = getClassPropsAsTargets(metadataReader, func);
    var targets = constructorTargets.concat(propertyTargets);
    return targets;
}
function getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) {
    var targetMetadata = constructorArgsMetadata[index.toString()] || [];
    var metadata = formatTargetMetadata(targetMetadata);
    var isManaged = metadata.unmanaged !== true;
    var serviceIdentifier = serviceIdentifiers[index];
    var injectIdentifier = (metadata.inject || metadata.multiInject);
    serviceIdentifier = (injectIdentifier) ? (injectIdentifier) : serviceIdentifier;
    if (serviceIdentifier instanceof inject_1.LazyServiceIdentifer) {
        serviceIdentifier = serviceIdentifier.unwrap();
    }
    if (isManaged) {
        var isObject = serviceIdentifier === Object;
        var isFunction = serviceIdentifier === Function;
        var isUndefined = serviceIdentifier === undefined;
        var isUnknownType = (isObject || isFunction || isUndefined);
        if (!isBaseClass && isUnknownType) {
            var msg = ERROR_MSGS.MISSING_INJECT_ANNOTATION + " argument " + index + " in class " + constructorName + ".";
            throw new Error(msg);
        }
        var target = new target_1.Target(literal_types_1.TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);
        target.metadata = targetMetadata;
        return target;
    }
    return null;
}
function getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations) {
    var targets = [];
    for (var i = 0; i < iterations; i++) {
        var index = i;
        var target = getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata);
        if (target !== null) {
            targets.push(target);
        }
    }
    return targets;
}
function getClassPropsAsTargets(metadataReader, constructorFunc) {
    var classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);
    var targets = [];
    var keys = Object.keys(classPropsMetadata);
    for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
        var key = keys_1[_i];
        var targetMetadata = classPropsMetadata[key];
        var metadata = formatTargetMetadata(classPropsMetadata[key]);
        var targetName = metadata.targetName || key;
        var serviceIdentifier = (metadata.inject || metadata.multiInject);
        var target = new target_1.Target(literal_types_1.TargetTypeEnum.ClassProperty, targetName, serviceIdentifier);
        target.metadata = targetMetadata;
        targets.push(target);
    }
    var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;
    if (baseConstructor !== Object) {
        var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor);
        targets = targets.concat(baseTargets);
    }
    return targets;
}
function getBaseClassDependencyCount(metadataReader, func) {
    var baseConstructor = Object.getPrototypeOf(func.prototype).constructor;
    if (baseConstructor !== Object) {
        var baseConstructorName = serialization_1.getFunctionName(baseConstructor);
        var targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);
        var metadata = targets.map(function (t) {
            return t.metadata.filter(function (m) {
                return m.key === METADATA_KEY.UNMANAGED_TAG;
            });
        });
        var unmanagedCount = [].concat.apply([], metadata).length;
        var dependencyCount = targets.length - unmanagedCount;
        if (dependencyCount > 0) {
            return dependencyCount;
        }
        else {
            return getBaseClassDependencyCount(metadataReader, baseConstructor);
        }
    }
    else {
        return 0;
    }
}
exports.getBaseClassDependencyCount = getBaseClassDependencyCount;
function formatTargetMetadata(targetMetadata) {
    var targetMetadataMap = {};
    targetMetadata.forEach(function (m) {
        targetMetadataMap[m.key.toString()] = m.value;
    });
    return {
        inject: targetMetadataMap[METADATA_KEY.INJECT_TAG],
        multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],
        targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],
        unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]
    };
}


/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var error_msgs_1 = __webpack_require__(9);
var METADATA_KEY = __webpack_require__(4);
var metadata_1 = __webpack_require__(16);
var decorator_utils_1 = __webpack_require__(20);
var LazyServiceIdentifer = (function () {
    function LazyServiceIdentifer(cb) {
        this._cb = cb;
    }
    LazyServiceIdentifer.prototype.unwrap = function () {
        return this._cb();
    };
    return LazyServiceIdentifer;
}());
exports.LazyServiceIdentifer = LazyServiceIdentifer;
function inject(serviceIdentifier) {
    return function (target, targetKey, index) {
        if (serviceIdentifier === undefined) {
            throw new Error(error_msgs_1.UNDEFINED_INJECT_ANNOTATION(target.name));
        }
        var metadata = new metadata_1.Metadata(METADATA_KEY.INJECT_TAG, serviceIdentifier);
        if (typeof index === "number") {
            decorator_utils_1.tagParameter(target, targetKey, index, metadata);
        }
        else {
            decorator_utils_1.tagProperty(target, targetKey, metadata);
        }
    };
}
exports.inject = inject;


/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ERROR_MSGS = __webpack_require__(9);
var METADATA_KEY = __webpack_require__(4);
function tagParameter(annotationTarget, propertyName, parameterIndex, metadata) {
    var metadataKey = METADATA_KEY.TAGGED;
    _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex);
}
exports.tagParameter = tagParameter;
function tagProperty(annotationTarget, propertyName, metadata) {
    var metadataKey = METADATA_KEY.TAGGED_PROP;
    _tagParameterOrProperty(metadataKey, annotationTarget.constructor, propertyName, metadata);
}
exports.tagProperty = tagProperty;
function _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex) {
    var paramsOrPropertiesMetadata = {};
    var isParameterDecorator = (typeof parameterIndex === "number");
    var key = (parameterIndex !== undefined && isParameterDecorator) ? parameterIndex.toString() : propertyName;
    if (isParameterDecorator && propertyName !== undefined) {
        throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);
    }
    if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) {
        paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget);
    }
    var paramOrPropertyMetadata = paramsOrPropertiesMetadata[key];
    if (!Array.isArray(paramOrPropertyMetadata)) {
        paramOrPropertyMetadata = [];
    }
    else {
        for (var _i = 0, paramOrPropertyMetadata_1 = paramOrPropertyMetadata; _i < paramOrPropertyMetadata_1.length; _i++) {
            var m = paramOrPropertyMetadata_1[_i];
            if (m.key === metadata.key) {
                throw new Error(ERROR_MSGS.DUPLICATED_METADATA + " " + m.key.toString());
            }
        }
    }
    paramOrPropertyMetadata.push(metadata);
    paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata;
    Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget);
}
function _decorate(decorators, target) {
    Reflect.decorate(decorators, target);
}
function _param(paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); };
}
function decorate(decorator, target, parameterIndex) {
    if (typeof parameterIndex === "number") {
        _decorate([_param(parameterIndex, decorator)], target);
    }
    else if (typeof parameterIndex === "string") {
        Reflect.decorate([decorator], target, parameterIndex);
    }
    else {
        _decorate([decorator], target);
    }
}
exports.decorate = decorate;


/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var METADATA_KEY = __webpack_require__(4);
var id_1 = __webpack_require__(8);
var metadata_1 = __webpack_require__(16);
var queryable_string_1 = __webpack_require__(22);
var Target = (function () {
    function Target(type, name, serviceIdentifier, namedOrTagged) {
        this.id = id_1.id();
        this.type = type;
        this.serviceIdentifier = serviceIdentifier;
        this.name = new queryable_string_1.QueryableString(name || "");
        this.metadata = new Array();
        var metadataItem = null;
        if (typeof namedOrTagged === "string") {
            metadataItem = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, namedOrTagged);
        }
        else if (namedOrTagged instanceof metadata_1.Metadata) {
            metadataItem = namedOrTagged;
        }
        if (metadataItem !== null) {
            this.metadata.push(metadataItem);
        }
    }
    Target.prototype.hasTag = function (key) {
        for (var _i = 0, _a = this.metadata; _i < _a.length; _i++) {
            var m = _a[_i];
            if (m.key === key) {
                return true;
            }
        }
        return false;
    };
    Target.prototype.isArray = function () {
        return this.hasTag(METADATA_KEY.MULTI_INJECT_TAG);
    };
    Target.prototype.matchesArray = function (name) {
        return this.matchesTag(METADATA_KEY.MULTI_INJECT_TAG)(name);
    };
    Target.prototype.isNamed = function () {
        return this.hasTag(METADATA_KEY.NAMED_TAG);
    };
    Target.prototype.isTagged = function () {
        return this.metadata.some(function (m) {
            return (m.key !== METADATA_KEY.INJECT_TAG) &&
                (m.key !== METADATA_KEY.MULTI_INJECT_TAG) &&
                (m.key !== METADATA_KEY.NAME_TAG) &&
                (m.key !== METADATA_KEY.UNMANAGED_TAG) &&
                (m.key !== METADATA_KEY.NAMED_TAG);
        });
    };
    Target.prototype.isOptional = function () {
        return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);
    };
    Target.prototype.getNamedTag = function () {
        if (this.isNamed()) {
            return this.metadata.filter(function (m) { return m.key === METADATA_KEY.NAMED_TAG; })[0];
        }
        return null;
    };
    Target.prototype.getCustomTags = function () {
        if (this.isTagged()) {
            return this.metadata.filter(function (m) {
                return (m.key !== METADATA_KEY.INJECT_TAG) &&
                    (m.key !== METADATA_KEY.MULTI_INJECT_TAG) &&
                    (m.key !== METADATA_KEY.NAME_TAG) &&
                    (m.key !== METADATA_KEY.UNMANAGED_TAG) &&
                    (m.key !== METADATA_KEY.NAMED_TAG);
            });
        }
        return null;
    };
    Target.prototype.matchesNamedTag = function (name) {
        return this.matchesTag(METADATA_KEY.NAMED_TAG)(name);
    };
    Target.prototype.matchesTag = function (key) {
        var _this = this;
        return function (value) {
            for (var _i = 0, _a = _this.metadata; _i < _a.length; _i++) {
                var m = _a[_i];
                if (m.key === key && m.value === value) {
                    return true;
                }
            }
            return false;
        };
    };
    return Target;
}());
exports.Target = Target;


/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var QueryableString = (function () {
    function QueryableString(str) {
        this.str = str;
    }
    QueryableString.prototype.startsWith = function (searchString) {
        return this.str.indexOf(searchString) === 0;
    };
    QueryableString.prototype.endsWith = function (searchString) {
        var reverseString = "";
        var reverseSearchString = searchString.split("").reverse().join("");
        reverseString = this.str.split("").reverse().join("");
        return this.startsWith.call({ str: reverseString }, reverseSearchString);
    };
    QueryableString.prototype.contains = function (searchString) {
        return (this.str.indexOf(searchString) !== -1);
    };
    QueryableString.prototype.equals = function (compareString) {
        return this.str === compareString;
    };
    QueryableString.prototype.value = function () {
        return this.str;
    };
    return QueryableString;
}());
exports.QueryableString = QueryableString;


/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var id_1 = __webpack_require__(8);
var Request = (function () {
    function Request(serviceIdentifier, parentContext, parentRequest, bindings, target) {
        this.id = id_1.id();
        this.serviceIdentifier = serviceIdentifier;
        this.parentContext = parentContext;
        this.parentRequest = parentRequest;
        this.target = target;
        this.childRequests = [];
        this.bindings = (Array.isArray(bindings) ? bindings : [bindings]);
        this.requestScope = parentRequest === null
            ? new Map()
            : null;
    }
    Request.prototype.addChildRequest = function (serviceIdentifier, bindings, target) {
        var child = new Request(serviceIdentifier, this.parentContext, this, bindings, target);
        this.childRequests.push(child);
        return child;
    };
    return Request;
}());
exports.Request = Request;


/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ERROR_MSGS = __webpack_require__(9);
var literal_types_1 = __webpack_require__(7);
var exceptions_1 = __webpack_require__(13);
var serialization_1 = __webpack_require__(14);
var instantiation_1 = __webpack_require__(25);
var invokeFactory = function (factoryType, serviceIdentifier, fn) {
    try {
        return fn();
    }
    catch (error) {
        if (exceptions_1.isStackOverflowExeption(error)) {
            throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryType, serviceIdentifier.toString()));
        }
        else {
            throw error;
        }
    }
};
var _resolveRequest = function (requestScope) {
    return function (request) {
        request.parentContext.setCurrentRequest(request);
        var bindings = request.bindings;
        var childRequests = request.childRequests;
        var targetIsAnArray = request.target && request.target.isArray();
        var targetParentIsNotAnArray = !request.parentRequest ||
            !request.parentRequest.target ||
            !request.target ||
            !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);
        if (targetIsAnArray && targetParentIsNotAnArray) {
            return childRequests.map(function (childRequest) {
                var _f = _resolveRequest(requestScope);
                return _f(childRequest);
            });
        }
        else {
            var result = null;
            if (request.target.isOptional() && bindings.length === 0) {
                return undefined;
            }
            var binding_1 = bindings[0];
            var isSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Singleton;
            var isRequestSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Request;
            if (isSingleton && binding_1.activated) {
                return binding_1.cache;
            }
            if (isRequestSingleton &&
                requestScope !== null &&
                requestScope.has(binding_1.id)) {
                return requestScope.get(binding_1.id);
            }
            if (binding_1.type === literal_types_1.BindingTypeEnum.ConstantValue) {
                result = binding_1.cache;
            }
            else if (binding_1.type === literal_types_1.BindingTypeEnum.Function) {
                result = binding_1.cache;
            }
            else if (binding_1.type === literal_types_1.BindingTypeEnum.Constructor) {
                result = binding_1.implementationType;
            }
            else if (binding_1.type === literal_types_1.BindingTypeEnum.DynamicValue && binding_1.dynamicValue !== null) {
                result = invokeFactory("toDynamicValue", binding_1.serviceIdentifier, function () { return binding_1.dynamicValue(request.parentContext); });
            }
            else if (binding_1.type === literal_types_1.BindingTypeEnum.Factory && binding_1.factory !== null) {
                result = invokeFactory("toFactory", binding_1.serviceIdentifier, function () { return binding_1.factory(request.parentContext); });
            }
            else if (binding_1.type === literal_types_1.BindingTypeEnum.Provider && binding_1.provider !== null) {
                result = invokeFactory("toProvider", binding_1.serviceIdentifier, function () { return binding_1.provider(request.parentContext); });
            }
            else if (binding_1.type === literal_types_1.BindingTypeEnum.Instance && binding_1.implementationType !== null) {
                result = instantiation_1.resolveInstance(binding_1.implementationType, childRequests, _resolveRequest(requestScope));
            }
            else {
                var serviceIdentifier = serialization_1.getServiceIdentifierAsString(request.serviceIdentifier);
                throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + " " + serviceIdentifier);
            }
            if (typeof binding_1.onActivation === "function") {
                result = binding_1.onActivation(request.parentContext, result);
            }
            if (isSingleton) {
                binding_1.cache = result;
                binding_1.activated = true;
            }
            if (isRequestSingleton &&
                requestScope !== null &&
                !requestScope.has(binding_1.id)) {
                requestScope.set(binding_1.id, result);
            }
            return result;
        }
    };
};
function resolve(context) {
    var _f = _resolveRequest(context.plan.rootRequest.requestScope);
    return _f(context.plan.rootRequest);
}
exports.resolve = resolve;


/***/ }),
/* 25 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var error_msgs_1 = __webpack_require__(9);
var literal_types_1 = __webpack_require__(7);
var METADATA_KEY = __webpack_require__(4);
function _injectProperties(instance, childRequests, resolveRequest) {
    var propertyInjectionsRequests = childRequests.filter(function (childRequest) {
        return (childRequest.target !== null &&
            childRequest.target.type === literal_types_1.TargetTypeEnum.ClassProperty);
    });
    var propertyInjections = propertyInjectionsRequests.map(resolveRequest);
    propertyInjectionsRequests.forEach(function (r, index) {
        var propertyName = "";
        propertyName = r.target.name.value();
        var injection = propertyInjections[index];
        instance[propertyName] = injection;
    });
    return instance;
}
function _createInstance(Func, injections) {
    return new (Func.bind.apply(Func, [void 0].concat(injections)))();
}
function _postConstruct(constr, result) {
    if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) {
        var data = Reflect.getMetadata(METADATA_KEY.POST_CONSTRUCT, constr);
        try {
            result[data.value]();
        }
        catch (e) {
            throw new Error(error_msgs_1.POST_CONSTRUCT_ERROR(constr.name, e.message));
        }
    }
}
function resolveInstance(constr, childRequests, resolveRequest) {
    var result = null;
    if (childRequests.length > 0) {
        var constructorInjectionsRequests = childRequests.filter(function (childRequest) {
            return (childRequest.target !== null && childRequest.target.type === literal_types_1.TargetTypeEnum.ConstructorArgument);
        });
        var constructorInjections = constructorInjectionsRequests.map(resolveRequest);
        result = _createInstance(constr, constructorInjections);
        result = _injectProperties(result, childRequests, resolveRequest);
    }
    else {
        result = new constr();
    }
    _postConstruct(constr, result);
    return result;
}
exports.resolveInstance = resolveInstance;


/***/ }),
/* 26 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ERROR_MSGS = __webpack_require__(9);
var literal_types_1 = __webpack_require__(7);
var binding_in_when_on_syntax_1 = __webpack_require__(27);
var binding_when_on_syntax_1 = __webpack_require__(29);
var BindingToSyntax = (function () {
    function BindingToSyntax(binding) {
        this._binding = binding;
    }
    BindingToSyntax.prototype.to = function (constructor) {
        this._binding.type = literal_types_1.BindingTypeEnum.Instance;
        this._binding.implementationType = constructor;
        return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
    };
    BindingToSyntax.prototype.toSelf = function () {
        if (typeof this._binding.serviceIdentifier !== "function") {
            throw new Error("" + ERROR_MSGS.INVALID_TO_SELF_VALUE);
        }
        var self = this._binding.serviceIdentifier;
        return this.to(self);
    };
    BindingToSyntax.prototype.toConstantValue = function (value) {
        this._binding.type = literal_types_1.BindingTypeEnum.ConstantValue;
        this._binding.cache = value;
        this._binding.dynamicValue = null;
        this._binding.implementationType = null;
        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
    };
    BindingToSyntax.prototype.toDynamicValue = function (func) {
        this._binding.type = literal_types_1.BindingTypeEnum.DynamicValue;
        this._binding.cache = null;
        this._binding.dynamicValue = func;
        this._binding.implementationType = null;
        return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
    };
    BindingToSyntax.prototype.toConstructor = function (constructor) {
        this._binding.type = literal_types_1.BindingTypeEnum.Constructor;
        this._binding.implementationType = constructor;
        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
    };
    BindingToSyntax.prototype.toFactory = function (factory) {
        this._binding.type = literal_types_1.BindingTypeEnum.Factory;
        this._binding.factory = factory;
        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
    };
    BindingToSyntax.prototype.toFunction = function (func) {
        if (typeof func !== "function") {
            throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING);
        }
        var bindingWhenOnSyntax = this.toConstantValue(func);
        this._binding.type = literal_types_1.BindingTypeEnum.Function;
        return bindingWhenOnSyntax;
    };
    BindingToSyntax.prototype.toAutoFactory = function (serviceIdentifier) {
        this._binding.type = literal_types_1.BindingTypeEnum.Factory;
        this._binding.factory = function (context) {
            var autofactory = function () { return context.container.get(serviceIdentifier); };
            return autofactory;
        };
        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
    };
    BindingToSyntax.prototype.toProvider = function (provider) {
        this._binding.type = literal_types_1.BindingTypeEnum.Provider;
        this._binding.provider = provider;
        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
    };
    BindingToSyntax.prototype.toService = function (service) {
        this.toDynamicValue(function (context) { return context.container.get(service); });
    };
    return BindingToSyntax;
}());
exports.BindingToSyntax = BindingToSyntax;


/***/ }),
/* 27 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var binding_in_syntax_1 = __webpack_require__(28);
var binding_on_syntax_1 = __webpack_require__(30);
var binding_when_syntax_1 = __webpack_require__(31);
var BindingInWhenOnSyntax = (function () {
    function BindingInWhenOnSyntax(binding) {
        this._binding = binding;
        this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);
        this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);
        this._bindingInSyntax = new binding_in_syntax_1.BindingInSyntax(binding);
    }
    BindingInWhenOnSyntax.prototype.inRequestScope = function () {
        return this._bindingInSyntax.inRequestScope();
    };
    BindingInWhenOnSyntax.prototype.inSingletonScope = function () {
        return this._bindingInSyntax.inSingletonScope();
    };
    BindingInWhenOnSyntax.prototype.inTransientScope = function () {
        return this._bindingInSyntax.inTransientScope();
    };
    BindingInWhenOnSyntax.prototype.when = function (constraint) {
        return this._bindingWhenSyntax.when(constraint);
    };
    BindingInWhenOnSyntax.prototype.whenTargetNamed = function (name) {
        return this._bindingWhenSyntax.whenTargetNamed(name);
    };
    BindingInWhenOnSyntax.prototype.whenTargetIsDefault = function () {
        return this._bindingWhenSyntax.whenTargetIsDefault();
    };
    BindingInWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {
        return this._bindingWhenSyntax.whenTargetTagged(tag, value);
    };
    BindingInWhenOnSyntax.prototype.whenInjectedInto = function (parent) {
        return this._bindingWhenSyntax.whenInjectedInto(parent);
    };
    BindingInWhenOnSyntax.prototype.whenParentNamed = function (name) {
        return this._bindingWhenSyntax.whenParentNamed(name);
    };
    BindingInWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {
        return this._bindingWhenSyntax.whenParentTagged(tag, value);
    };
    BindingInWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
        return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);
    };
    BindingInWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {
        return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);
    };
    BindingInWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {
        return this._bindingWhenSyntax.whenAnyAncestorNamed(name);
    };
    BindingInWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
        return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);
    };
    BindingInWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {
        return this._bindingWhenSyntax.whenNoAncestorNamed(name);
    };
    BindingInWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
        return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);
    };
    BindingInWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
        return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);
    };
    BindingInWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {
        return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);
    };
    BindingInWhenOnSyntax.prototype.onActivation = function (handler) {
        return this._bindingOnSyntax.onActivation(handler);
    };
    return BindingInWhenOnSyntax;
}());
exports.BindingInWhenOnSyntax = BindingInWhenOnSyntax;


/***/ }),
/* 28 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var literal_types_1 = __webpack_require__(7);
var binding_when_on_syntax_1 = __webpack_require__(29);
var BindingInSyntax = (function () {
    function BindingInSyntax(binding) {
        this._binding = binding;
    }
    BindingInSyntax.prototype.inRequestScope = function () {
        this._binding.scope = literal_types_1.BindingScopeEnum.Request;
        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
    };
    BindingInSyntax.prototype.inSingletonScope = function () {
        this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
    };
    BindingInSyntax.prototype.inTransientScope = function () {
        this._binding.scope = literal_types_1.BindingScopeEnum.Transient;
        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
    };
    return BindingInSyntax;
}());
exports.BindingInSyntax = BindingInSyntax;


/***/ }),
/* 29 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var binding_on_syntax_1 = __webpack_require__(30);
var binding_when_syntax_1 = __webpack_require__(31);
var BindingWhenOnSyntax = (function () {
    function BindingWhenOnSyntax(binding) {
        this._binding = binding;
        this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);
        this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);
    }
    BindingWhenOnSyntax.prototype.when = function (constraint) {
        return this._bindingWhenSyntax.when(constraint);
    };
    BindingWhenOnSyntax.prototype.whenTargetNamed = function (name) {
        return this._bindingWhenSyntax.whenTargetNamed(name);
    };
    BindingWhenOnSyntax.prototype.whenTargetIsDefault = function () {
        return this._bindingWhenSyntax.whenTargetIsDefault();
    };
    BindingWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {
        return this._bindingWhenSyntax.whenTargetTagged(tag, value);
    };
    BindingWhenOnSyntax.prototype.whenInjectedInto = function (parent) {
        return this._bindingWhenSyntax.whenInjectedInto(parent);
    };
    BindingWhenOnSyntax.prototype.whenParentNamed = function (name) {
        return this._bindingWhenSyntax.whenParentNamed(name);
    };
    BindingWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {
        return this._bindingWhenSyntax.whenParentTagged(tag, value);
    };
    BindingWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
        return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);
    };
    BindingWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {
        return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);
    };
    BindingWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {
        return this._bindingWhenSyntax.whenAnyAncestorNamed(name);
    };
    BindingWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
        return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);
    };
    BindingWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {
        return this._bindingWhenSyntax.whenNoAncestorNamed(name);
    };
    BindingWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
        return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);
    };
    BindingWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
        return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);
    };
    BindingWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {
        return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);
    };
    BindingWhenOnSyntax.prototype.onActivation = function (handler) {
        return this._bindingOnSyntax.onActivation(handler);
    };
    return BindingWhenOnSyntax;
}());
exports.BindingWhenOnSyntax = BindingWhenOnSyntax;


/***/ }),
/* 30 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var binding_when_syntax_1 = __webpack_require__(31);
var BindingOnSyntax = (function () {
    function BindingOnSyntax(binding) {
        this._binding = binding;
    }
    BindingOnSyntax.prototype.onActivation = function (handler) {
        this._binding.onActivation = handler;
        return new binding_when_syntax_1.BindingWhenSyntax(this._binding);
    };
    return BindingOnSyntax;
}());
exports.BindingOnSyntax = BindingOnSyntax;


/***/ }),
/* 31 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var binding_on_syntax_1 = __webpack_require__(30);
var constraint_helpers_1 = __webpack_require__(32);
var BindingWhenSyntax = (function () {
    function BindingWhenSyntax(binding) {
        this._binding = binding;
    }
    BindingWhenSyntax.prototype.when = function (constraint) {
        this._binding.constraint = constraint;
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenTargetNamed = function (name) {
        this._binding.constraint = constraint_helpers_1.namedConstraint(name);
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenTargetIsDefault = function () {
        this._binding.constraint = function (request) {
            var targetIsDefault = (request.target !== null) &&
                (!request.target.isNamed()) &&
                (!request.target.isTagged());
            return targetIsDefault;
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {
        this._binding.constraint = constraint_helpers_1.taggedConstraint(tag)(value);
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {
        this._binding.constraint = function (request) {
            return constraint_helpers_1.typeConstraint(parent)(request.parentRequest);
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenParentNamed = function (name) {
        this._binding.constraint = function (request) {
            return constraint_helpers_1.namedConstraint(name)(request.parentRequest);
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {
        this._binding.constraint = function (request) {
            return constraint_helpers_1.taggedConstraint(tag)(value)(request.parentRequest);
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
        this._binding.constraint = function (request) {
            return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {
        this._binding.constraint = function (request) {
            return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {
        this._binding.constraint = function (request) {
            return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {
        this._binding.constraint = function (request) {
            return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
        this._binding.constraint = function (request) {
            return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
        this._binding.constraint = function (request) {
            return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
        this._binding.constraint = function (request) {
            return constraint_helpers_1.traverseAncerstors(request, constraint);
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {
        this._binding.constraint = function (request) {
            return !constraint_helpers_1.traverseAncerstors(request, constraint);
        };
        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
    };
    return BindingWhenSyntax;
}());
exports.BindingWhenSyntax = BindingWhenSyntax;


/***/ }),
/* 32 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var METADATA_KEY = __webpack_require__(4);
var metadata_1 = __webpack_require__(16);
var traverseAncerstors = function (request, constraint) {
    var parent = request.parentRequest;
    if (parent !== null) {
        return constraint(parent) ? true : traverseAncerstors(parent, constraint);
    }
    else {
        return false;
    }
};
exports.traverseAncerstors = traverseAncerstors;
var taggedConstraint = function (key) { return function (value) {
    var constraint = function (request) {
        return request !== null && request.target !== null && request.target.matchesTag(key)(value);
    };
    constraint.metaData = new metadata_1.Metadata(key, value);
    return constraint;
}; };
exports.taggedConstraint = taggedConstraint;
var namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);
exports.namedConstraint = namedConstraint;
var typeConstraint = function (type) { return function (request) {
    var binding = null;
    if (request !== null) {
        binding = request.bindings[0];
        if (typeof type === "string") {
            var serviceIdentifier = binding.serviceIdentifier;
            return serviceIdentifier === type;
        }
        else {
            var constructor = request.bindings[0].implementationType;
            return type === constructor;
        }
    }
    return false;
}; };
exports.typeConstraint = typeConstraint;


/***/ }),
/* 33 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ContainerSnapshot = (function () {
    function ContainerSnapshot() {
    }
    ContainerSnapshot.of = function (bindings, middleware) {
        var snapshot = new ContainerSnapshot();
        snapshot.bindings = bindings;
        snapshot.middleware = middleware;
        return snapshot;
    };
    return ContainerSnapshot;
}());
exports.ContainerSnapshot = ContainerSnapshot;


/***/ }),
/* 34 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ERROR_MSGS = __webpack_require__(9);
var Lookup = (function () {
    function Lookup() {
        this._map = new Map();
    }
    Lookup.prototype.getMap = function () {
        return this._map;
    };
    Lookup.prototype.add = function (serviceIdentifier, value) {
        if (serviceIdentifier === null || serviceIdentifier === undefined) {
            throw new Error(ERROR_MSGS.NULL_ARGUMENT);
        }
        if (value === null || value === undefined) {
            throw new Error(ERROR_MSGS.NULL_ARGUMENT);
        }
        var entry = this._map.get(serviceIdentifier);
        if (entry !== undefined) {
            entry.push(value);
            this._map.set(serviceIdentifier, entry);
        }
        else {
            this._map.set(serviceIdentifier, [value]);
        }
    };
    Lookup.prototype.get = function (serviceIdentifier) {
        if (serviceIdentifier === null || serviceIdentifier === undefined) {
            throw new Error(ERROR_MSGS.NULL_ARGUMENT);
        }
        var entry = this._map.get(serviceIdentifier);
        if (entry !== undefined) {
            return entry;
        }
        else {
            throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
        }
    };
    Lookup.prototype.remove = function (serviceIdentifier) {
        if (serviceIdentifier === null || serviceIdentifier === undefined) {
            throw new Error(ERROR_MSGS.NULL_ARGUMENT);
        }
        if (!this._map.delete(serviceIdentifier)) {
            throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
        }
    };
    Lookup.prototype.removeByCondition = function (condition) {
        var _this = this;
        this._map.forEach(function (entries, key) {
            var updatedEntries = entries.filter(function (entry) { return !condition(entry); });
            if (updatedEntries.length > 0) {
                _this._map.set(key, updatedEntries);
            }
            else {
                _this._map.delete(key);
            }
        });
    };
    Lookup.prototype.hasKey = function (serviceIdentifier) {
        if (serviceIdentifier === null || serviceIdentifier === undefined) {
            throw new Error(ERROR_MSGS.NULL_ARGUMENT);
        }
        return this._map.has(serviceIdentifier);
    };
    Lookup.prototype.clone = function () {
        var copy = new Lookup();
        this._map.forEach(function (value, key) {
            value.forEach(function (b) { return copy.add(key, b.clone()); });
        });
        return copy;
    };
    Lookup.prototype.traverse = function (func) {
        this._map.forEach(function (value, key) {
            func(key, value);
        });
    };
    return Lookup;
}());
exports.Lookup = Lookup;


/***/ }),
/* 35 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var id_1 = __webpack_require__(8);
var ContainerModule = (function () {
    function ContainerModule(registry) {
        this.id = id_1.id();
        this.registry = registry;
    }
    return ContainerModule;
}());
exports.ContainerModule = ContainerModule;
var AsyncContainerModule = (function () {
    function AsyncContainerModule(registry) {
        this.id = id_1.id();
        this.registry = registry;
    }
    return AsyncContainerModule;
}());
exports.AsyncContainerModule = AsyncContainerModule;


/***/ }),
/* 36 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ERRORS_MSGS = __webpack_require__(9);
var METADATA_KEY = __webpack_require__(4);
function injectable() {
    return function (target) {
        if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) {
            throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR);
        }
        var types = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];
        Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types, target);
        return target;
    };
}
exports.injectable = injectable;


/***/ }),
/* 37 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var metadata_1 = __webpack_require__(16);
var decorator_utils_1 = __webpack_require__(20);
function tagged(metadataKey, metadataValue) {
    return function (target, targetKey, index) {
        var metadata = new metadata_1.Metadata(metadataKey, metadataValue);
        if (typeof index === "number") {
            decorator_utils_1.tagParameter(target, targetKey, index, metadata);
        }
        else {
            decorator_utils_1.tagProperty(target, targetKey, metadata);
        }
    };
}
exports.tagged = tagged;


/***/ }),
/* 38 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var METADATA_KEY = __webpack_require__(4);
var metadata_1 = __webpack_require__(16);
var decorator_utils_1 = __webpack_require__(20);
function named(name) {
    return function (target, targetKey, index) {
        var metadata = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, name);
        if (typeof index === "number") {
            decorator_utils_1.tagParameter(target, targetKey, index, metadata);
        }
        else {
            decorator_utils_1.tagProperty(target, targetKey, metadata);
        }
    };
}
exports.named = named;


/***/ }),
/* 39 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var METADATA_KEY = __webpack_require__(4);
var metadata_1 = __webpack_require__(16);
var decorator_utils_1 = __webpack_require__(20);
function optional() {
    return function (target, targetKey, index) {
        var metadata = new metadata_1.Metadata(METADATA_KEY.OPTIONAL_TAG, true);
        if (typeof index === "number") {
            decorator_utils_1.tagParameter(target, targetKey, index, metadata);
        }
        else {
            decorator_utils_1.tagProperty(target, targetKey, metadata);
        }
    };
}
exports.optional = optional;


/***/ }),
/* 40 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var METADATA_KEY = __webpack_require__(4);
var metadata_1 = __webpack_require__(16);
var decorator_utils_1 = __webpack_require__(20);
function unmanaged() {
    return function (target, targetKey, index) {
        var metadata = new metadata_1.Metadata(METADATA_KEY.UNMANAGED_TAG, true);
        decorator_utils_1.tagParameter(target, targetKey, index, metadata);
    };
}
exports.unmanaged = unmanaged;


/***/ }),
/* 41 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var METADATA_KEY = __webpack_require__(4);
var metadata_1 = __webpack_require__(16);
var decorator_utils_1 = __webpack_require__(20);
function multiInject(serviceIdentifier) {
    return function (target, targetKey, index) {
        var metadata = new metadata_1.Metadata(METADATA_KEY.MULTI_INJECT_TAG, serviceIdentifier);
        if (typeof index === "number") {
            decorator_utils_1.tagParameter(target, targetKey, index, metadata);
        }
        else {
            decorator_utils_1.tagProperty(target, targetKey, metadata);
        }
    };
}
exports.multiInject = multiInject;


/***/ }),
/* 42 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var METADATA_KEY = __webpack_require__(4);
var metadata_1 = __webpack_require__(16);
var decorator_utils_1 = __webpack_require__(20);
function targetName(name) {
    return function (target, targetKey, index) {
        var metadata = new metadata_1.Metadata(METADATA_KEY.NAME_TAG, name);
        decorator_utils_1.tagParameter(target, targetKey, index, metadata);
    };
}
exports.targetName = targetName;


/***/ }),
/* 43 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ERRORS_MSGS = __webpack_require__(9);
var METADATA_KEY = __webpack_require__(4);
var metadata_1 = __webpack_require__(16);
function postConstruct() {
    return function (target, propertyKey, descriptor) {
        var metadata = new metadata_1.Metadata(METADATA_KEY.POST_CONSTRUCT, propertyKey);
        if (Reflect.hasOwnMetadata(METADATA_KEY.POST_CONSTRUCT, target.constructor)) {
            throw new Error(ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS);
        }
        Reflect.defineMetadata(METADATA_KEY.POST_CONSTRUCT, metadata, target.constructor);
    };
}
exports.postConstruct = postConstruct;


/***/ }),
/* 44 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.multiBindToService = function (container) {
    return function (service) {
        return function () {
            var types = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                types[_i] = arguments[_i];
            }
            return types.forEach(function (t) { return container.bind(t).toService(service); });
        };
    };
};


/***/ }),
/* 45 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

function __export(m) {
    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
exports.ErrorCodes = vscode_jsonrpc_1.ErrorCodes;
exports.ResponseError = vscode_jsonrpc_1.ResponseError;
exports.CancellationToken = vscode_jsonrpc_1.CancellationToken;
exports.CancellationTokenSource = vscode_jsonrpc_1.CancellationTokenSource;
exports.Disposable = vscode_jsonrpc_1.Disposable;
exports.Event = vscode_jsonrpc_1.Event;
exports.Emitter = vscode_jsonrpc_1.Emitter;
exports.Trace = vscode_jsonrpc_1.Trace;
exports.TraceFormat = vscode_jsonrpc_1.TraceFormat;
exports.SetTraceNotification = vscode_jsonrpc_1.SetTraceNotification;
exports.LogTraceNotification = vscode_jsonrpc_1.LogTraceNotification;
exports.RequestType = vscode_jsonrpc_1.RequestType;
exports.RequestType0 = vscode_jsonrpc_1.RequestType0;
exports.NotificationType = vscode_jsonrpc_1.NotificationType;
exports.NotificationType0 = vscode_jsonrpc_1.NotificationType0;
exports.MessageReader = vscode_jsonrpc_1.MessageReader;
exports.MessageWriter = vscode_jsonrpc_1.MessageWriter;
exports.ConnectionStrategy = vscode_jsonrpc_1.ConnectionStrategy;
exports.StreamMessageReader = vscode_jsonrpc_1.StreamMessageReader;
exports.StreamMessageWriter = vscode_jsonrpc_1.StreamMessageWriter;
exports.IPCMessageReader = vscode_jsonrpc_1.IPCMessageReader;
exports.IPCMessageWriter = vscode_jsonrpc_1.IPCMessageWriter;
exports.createClientPipeTransport = vscode_jsonrpc_1.createClientPipeTransport;
exports.createServerPipeTransport = vscode_jsonrpc_1.createServerPipeTransport;
exports.generateRandomPipeName = vscode_jsonrpc_1.generateRandomPipeName;
exports.createClientSocketTransport = vscode_jsonrpc_1.createClientSocketTransport;
exports.createServerSocketTransport = vscode_jsonrpc_1.createServerSocketTransport;
__export(__webpack_require__(60));
__export(__webpack_require__(61));
const callHierarchy = __webpack_require__(71);
const progress = __webpack_require__(72);
var Proposed;
(function (Proposed) {
    let CallHierarchyRequest;
    (function (CallHierarchyRequest) {
        CallHierarchyRequest.type = callHierarchy.CallHierarchyRequest.type;
    })(CallHierarchyRequest = Proposed.CallHierarchyRequest || (Proposed.CallHierarchyRequest = {}));
    let CallHierarchyDirection;
    (function (CallHierarchyDirection) {
        CallHierarchyDirection.CallsFrom = callHierarchy.CallHierarchyDirection.CallsFrom;
        CallHierarchyDirection.CallsTo = callHierarchy.CallHierarchyDirection.CallsTo;
    })(CallHierarchyDirection = Proposed.CallHierarchyDirection || (Proposed.CallHierarchyDirection = {}));
    let ProgressStartNotification;
    (function (ProgressStartNotification) {
        ProgressStartNotification.type = progress.ProgressStartNotification.type;
    })(ProgressStartNotification = Proposed.ProgressStartNotification || (Proposed.ProgressStartNotification = {}));
    let ProgressReportNotification;
    (function (ProgressReportNotification) {
        ProgressReportNotification.type = progress.ProgressReportNotification.type;
    })(ProgressReportNotification = Proposed.ProgressReportNotification || (Proposed.ProgressReportNotification = {}));
    let ProgressDoneNotification;
    (function (ProgressDoneNotification) {
        ProgressDoneNotification.type = progress.ProgressDoneNotification.type;
    })(ProgressDoneNotification = Proposed.ProgressDoneNotification || (Proposed.ProgressDoneNotification = {}));
    let ProgressCancelNotification;
    (function (ProgressCancelNotification) {
        ProgressCancelNotification.type = progress.ProgressCancelNotification.type;
    })(ProgressCancelNotification = Proposed.ProgressCancelNotification || (Proposed.ProgressCancelNotification = {}));
})(Proposed = exports.Proposed || (exports.Proposed = {}));
function createProtocolConnection(reader, writer, logger, strategy) {
    return vscode_jsonrpc_1.createMessageConnection(reader, writer, logger, strategy);
}
exports.createProtocolConnection = createProtocolConnection;


/***/ }),
/* 46 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */
/// <reference path="./thenable.ts" />

function __export(m) {
    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
const Is = __webpack_require__(47);
const messages_1 = __webpack_require__(48);
exports.RequestType = messages_1.RequestType;
exports.RequestType0 = messages_1.RequestType0;
exports.RequestType1 = messages_1.RequestType1;
exports.RequestType2 = messages_1.RequestType2;
exports.RequestType3 = messages_1.RequestType3;
exports.RequestType4 = messages_1.RequestType4;
exports.RequestType5 = messages_1.RequestType5;
exports.RequestType6 = messages_1.RequestType6;
exports.RequestType7 = messages_1.RequestType7;
exports.RequestType8 = messages_1.RequestType8;
exports.RequestType9 = messages_1.RequestType9;
exports.ResponseError = messages_1.ResponseError;
exports.ErrorCodes = messages_1.ErrorCodes;
exports.NotificationType = messages_1.NotificationType;
exports.NotificationType0 = messages_1.NotificationType0;
exports.NotificationType1 = messages_1.NotificationType1;
exports.NotificationType2 = messages_1.NotificationType2;
exports.NotificationType3 = messages_1.NotificationType3;
exports.NotificationType4 = messages_1.NotificationType4;
exports.NotificationType5 = messages_1.NotificationType5;
exports.NotificationType6 = messages_1.NotificationType6;
exports.NotificationType7 = messages_1.NotificationType7;
exports.NotificationType8 = messages_1.NotificationType8;
exports.NotificationType9 = messages_1.NotificationType9;
const messageReader_1 = __webpack_require__(49);
exports.MessageReader = messageReader_1.MessageReader;
exports.StreamMessageReader = messageReader_1.StreamMessageReader;
exports.IPCMessageReader = messageReader_1.IPCMessageReader;
exports.SocketMessageReader = messageReader_1.SocketMessageReader;
const messageWriter_1 = __webpack_require__(51);
exports.MessageWriter = messageWriter_1.MessageWriter;
exports.StreamMessageWriter = messageWriter_1.StreamMessageWriter;
exports.IPCMessageWriter = messageWriter_1.IPCMessageWriter;
exports.SocketMessageWriter = messageWriter_1.SocketMessageWriter;
const events_1 = __webpack_require__(50);
exports.Disposable = events_1.Disposable;
exports.Event = events_1.Event;
exports.Emitter = events_1.Emitter;
const cancellation_1 = __webpack_require__(52);
exports.CancellationTokenSource = cancellation_1.CancellationTokenSource;
exports.CancellationToken = cancellation_1.CancellationToken;
const linkedMap_1 = __webpack_require__(53);
__export(__webpack_require__(54));
__export(__webpack_require__(59));
var CancelNotification;
(function (CancelNotification) {
    CancelNotification.type = new messages_1.NotificationType('$/cancelRequest');
})(CancelNotification || (CancelNotification = {}));
exports.NullLogger = Object.freeze({
    error: () => { },
    warn: () => { },
    info: () => { },
    log: () => { }
});
var Trace;
(function (Trace) {
    Trace[Trace["Off"] = 0] = "Off";
    Trace[Trace["Messages"] = 1] = "Messages";
    Trace[Trace["Verbose"] = 2] = "Verbose";
})(Trace = exports.Trace || (exports.Trace = {}));
(function (Trace) {
    function fromString(value) {
        value = value.toLowerCase();
        switch (value) {
            case 'off':
                return Trace.Off;
            case 'messages':
                return Trace.Messages;
            case 'verbose':
                return Trace.Verbose;
            default:
                return Trace.Off;
        }
    }
    Trace.fromString = fromString;
    function toString(value) {
        switch (value) {
            case Trace.Off:
                return 'off';
            case Trace.Messages:
                return 'messages';
            case Trace.Verbose:
                return 'verbose';
            default:
                return 'off';
        }
    }
    Trace.toString = toString;
})(Trace = exports.Trace || (exports.Trace = {}));
var TraceFormat;
(function (TraceFormat) {
    TraceFormat["Text"] = "text";
    TraceFormat["JSON"] = "json";
})(TraceFormat = exports.TraceFormat || (exports.TraceFormat = {}));
(function (TraceFormat) {
    function fromString(value) {
        value = value.toLowerCase();
        if (value === 'json') {
            return TraceFormat.JSON;
        }
        else {
            return TraceFormat.Text;
        }
    }
    TraceFormat.fromString = fromString;
})(TraceFormat = exports.TraceFormat || (exports.TraceFormat = {}));
var SetTraceNotification;
(function (SetTraceNotification) {
    SetTraceNotification.type = new messages_1.NotificationType('$/setTraceNotification');
})(SetTraceNotification = exports.SetTraceNotification || (exports.SetTraceNotification = {}));
var LogTraceNotification;
(function (LogTraceNotification) {
    LogTraceNotification.type = new messages_1.NotificationType('$/logTraceNotification');
})(LogTraceNotification = exports.LogTraceNotification || (exports.LogTraceNotification = {}));
var ConnectionErrors;
(function (ConnectionErrors) {
    /**
     * The connection is closed.
     */
    ConnectionErrors[ConnectionErrors["Closed"] = 1] = "Closed";
    /**
     * The connection got disposed.
     */
    ConnectionErrors[ConnectionErrors["Disposed"] = 2] = "Disposed";
    /**
     * The connection is already in listening mode.
     */
    ConnectionErrors[ConnectionErrors["AlreadyListening"] = 3] = "AlreadyListening";
})(ConnectionErrors = exports.ConnectionErrors || (exports.ConnectionErrors = {}));
class ConnectionError extends Error {
    constructor(code, message) {
        super(message);
        this.code = code;
        Object.setPrototypeOf(this, ConnectionError.prototype);
    }
}
exports.ConnectionError = ConnectionError;
var ConnectionStrategy;
(function (ConnectionStrategy) {
    function is(value) {
        let candidate = value;
        return candidate && Is.func(candidate.cancelUndispatched);
    }
    ConnectionStrategy.is = is;
})(ConnectionStrategy = exports.ConnectionStrategy || (exports.ConnectionStrategy = {}));
var ConnectionState;
(function (ConnectionState) {
    ConnectionState[ConnectionState["New"] = 1] = "New";
    ConnectionState[ConnectionState["Listening"] = 2] = "Listening";
    ConnectionState[ConnectionState["Closed"] = 3] = "Closed";
    ConnectionState[ConnectionState["Disposed"] = 4] = "Disposed";
})(ConnectionState || (ConnectionState = {}));
function _createMessageConnection(messageReader, messageWriter, logger, strategy) {
    let sequenceNumber = 0;
    let notificationSquenceNumber = 0;
    let unknownResponseSquenceNumber = 0;
    const version = '2.0';
    let starRequestHandler = undefined;
    let requestHandlers = Object.create(null);
    let starNotificationHandler = undefined;
    let notificationHandlers = Object.create(null);
    let timer;
    let messageQueue = new linkedMap_1.LinkedMap();
    let responsePromises = Object.create(null);
    let requestTokens = Object.create(null);
    let trace = Trace.Off;
    let traceFormat = TraceFormat.Text;
    let tracer;
    let state = ConnectionState.New;
    let errorEmitter = new events_1.Emitter();
    let closeEmitter = new events_1.Emitter();
    let unhandledNotificationEmitter = new events_1.Emitter();
    let disposeEmitter = new events_1.Emitter();
    function createRequestQueueKey(id) {
        return 'req-' + id.toString();
    }
    function createResponseQueueKey(id) {
        if (id === null) {
            return 'res-unknown-' + (++unknownResponseSquenceNumber).toString();
        }
        else {
            return 'res-' + id.toString();
        }
    }
    function createNotificationQueueKey() {
        return 'not-' + (++notificationSquenceNumber).toString();
    }
    function addMessageToQueue(queue, message) {
        if (messages_1.isRequestMessage(message)) {
            queue.set(createRequestQueueKey(message.id), message);
        }
        else if (messages_1.isResponseMessage(message)) {
            queue.set(createResponseQueueKey(message.id), message);
        }
        else {
            queue.set(createNotificationQueueKey(), message);
        }
    }
    function cancelUndispatched(_message) {
        return undefined;
    }
    function isListening() {
        return state === ConnectionState.Listening;
    }
    function isClosed() {
        return state === ConnectionState.Closed;
    }
    function isDisposed() {
        return state === ConnectionState.Disposed;
    }
    function closeHandler() {
        if (state === ConnectionState.New || state === ConnectionState.Listening) {
            state = ConnectionState.Closed;
            closeEmitter.fire(undefined);
        }
        // If the connection is disposed don't sent close events.
    }
    ;
    function readErrorHandler(error) {
        errorEmitter.fire([error, undefined, undefined]);
    }
    function writeErrorHandler(data) {
        errorEmitter.fire(data);
    }
    messageReader.onClose(closeHandler);
    messageReader.onError(readErrorHandler);
    messageWriter.onClose(closeHandler);
    messageWriter.onError(writeErrorHandler);
    function triggerMessageQueue() {
        if (timer || messageQueue.size === 0) {
            return;
        }
        timer = setImmediate(() => {
            timer = undefined;
            processMessageQueue();
        });
    }
    function processMessageQueue() {
        if (messageQueue.size === 0) {
            return;
        }
        let message = messageQueue.shift();
        try {
            if (messages_1.isRequestMessage(message)) {
                handleRequest(message);
            }
            else if (messages_1.isNotificationMessage(message)) {
                handleNotification(message);
            }
            else if (messages_1.isResponseMessage(message)) {
                handleResponse(message);
            }
            else {
                handleInvalidMessage(message);
            }
        }
        finally {
            triggerMessageQueue();
        }
    }
    let callback = (message) => {
        try {
            // We have received a cancellation message. Check if the message is still in the queue
            // and cancel it if allowed to do so.
            if (messages_1.isNotificationMessage(message) && message.method === CancelNotification.type.method) {
                let key = createRequestQueueKey(message.params.id);
                let toCancel = messageQueue.get(key);
                if (messages_1.isRequestMessage(toCancel)) {
                    let response = strategy && strategy.cancelUndispatched ? strategy.cancelUndispatched(toCancel, cancelUndispatched) : cancelUndispatched(toCancel);
                    if (response && (response.error !== void 0 || response.result !== void 0)) {
                        messageQueue.delete(key);
                        response.id = toCancel.id;
                        traceSendingResponse(response, message.method, Date.now());
                        messageWriter.write(response);
                        return;
                    }
                }
            }
            addMessageToQueue(messageQueue, message);
        }
        finally {
            triggerMessageQueue();
        }
    };
    function handleRequest(requestMessage) {
        if (isDisposed()) {
            // we return here silently since we fired an event when the
            // connection got disposed.
            return;
        }
        function reply(resultOrError, method, startTime) {
            let message = {
                jsonrpc: version,
                id: requestMessage.id
            };
            if (resultOrError instanceof messages_1.ResponseError) {
                message.error = resultOrError.toJson();
            }
            else {
                message.result = resultOrError === void 0 ? null : resultOrError;
            }
            traceSendingResponse(message, method, startTime);
            messageWriter.write(message);
        }
        function replyError(error, method, startTime) {
            let message = {
                jsonrpc: version,
                id: requestMessage.id,
                error: error.toJson()
            };
            traceSendingResponse(message, method, startTime);
            messageWriter.write(message);
        }
        function replySuccess(result, method, startTime) {
            // The JSON RPC defines that a response must either have a result or an error
            // So we can't treat undefined as a valid response result.
            if (result === void 0) {
                result = null;
            }
            let message = {
                jsonrpc: version,
                id: requestMessage.id,
                result: result
            };
            traceSendingResponse(message, method, startTime);
            messageWriter.write(message);
        }
        traceReceivedRequest(requestMessage);
        let element = requestHandlers[requestMessage.method];
        let type;
        let requestHandler;
        if (element) {
            type = element.type;
            requestHandler = element.handler;
        }
        let startTime = Date.now();
        if (requestHandler || starRequestHandler) {
            let cancellationSource = new cancellation_1.CancellationTokenSource();
            let tokenKey = String(requestMessage.id);
            requestTokens[tokenKey] = cancellationSource;
            try {
                let handlerResult;
                if (requestMessage.params === void 0 || (type !== void 0 && type.numberOfParams === 0)) {
                    handlerResult = requestHandler
                        ? requestHandler(cancellationSource.token)
                        : starRequestHandler(requestMessage.method, cancellationSource.token);
                }
                else if (Is.array(requestMessage.params) && (type === void 0 || type.numberOfParams > 1)) {
                    handlerResult = requestHandler
                        ? requestHandler(...requestMessage.params, cancellationSource.token)
                        : starRequestHandler(requestMessage.method, ...requestMessage.params, cancellationSource.token);
                }
                else {
                    handlerResult = requestHandler
                        ? requestHandler(requestMessage.params, cancellationSource.token)
                        : starRequestHandler(requestMessage.method, requestMessage.params, cancellationSource.token);
                }
                let promise = handlerResult;
                if (!handlerResult) {
                    delete requestTokens[tokenKey];
                    replySuccess(handlerResult, requestMessage.method, startTime);
                }
                else if (promise.then) {
                    promise.then((resultOrError) => {
                        delete requestTokens[tokenKey];
                        reply(resultOrError, requestMessage.method, startTime);
                    }, error => {
                        delete requestTokens[tokenKey];
                        if (error instanceof messages_1.ResponseError) {
                            replyError(error, requestMessage.method, startTime);
                        }
                        else if (error && Is.string(error.message)) {
                            replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed with message: ${error.message}`), requestMessage.method, startTime);
                        }
                        else {
                            replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed unexpectedly without providing any details.`), requestMessage.method, startTime);
                        }
                    });
                }
                else {
                    delete requestTokens[tokenKey];
                    reply(handlerResult, requestMessage.method, startTime);
                }
            }
            catch (error) {
                delete requestTokens[tokenKey];
                if (error instanceof messages_1.ResponseError) {
                    reply(error, requestMessage.method, startTime);
                }
                else if (error && Is.string(error.message)) {
                    replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed with message: ${error.message}`), requestMessage.method, startTime);
                }
                else {
                    replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed unexpectedly without providing any details.`), requestMessage.method, startTime);
                }
            }
        }
        else {
            replyError(new messages_1.ResponseError(messages_1.ErrorCodes.MethodNotFound, `Unhandled method ${requestMessage.method}`), requestMessage.method, startTime);
        }
    }
    function handleResponse(responseMessage) {
        if (isDisposed()) {
            // See handle request.
            return;
        }
        if (responseMessage.id === null) {
            if (responseMessage.error) {
                logger.error(`Received response message without id: Error is: \n${JSON.stringify(responseMessage.error, undefined, 4)}`);
            }
            else {
                logger.error(`Received response message without id. No further error information provided.`);
            }
        }
        else {
            let key = String(responseMessage.id);
            let responsePromise = responsePromises[key];
            traceReceivedResponse(responseMessage, responsePromise);
            if (responsePromise) {
                delete responsePromises[key];
                try {
                    if (responseMessage.error) {
                        let error = responseMessage.error;
                        responsePromise.reject(new messages_1.ResponseError(error.code, error.message, error.data));
                    }
                    else if (responseMessage.result !== void 0) {
                        responsePromise.resolve(responseMessage.result);
                    }
                    else {
                        throw new Error('Should never happen.');
                    }
                }
                catch (error) {
                    if (error.message) {
                        logger.error(`Response handler '${responsePromise.method}' failed with message: ${error.message}`);
                    }
                    else {
                        logger.error(`Response handler '${responsePromise.method}' failed unexpectedly.`);
                    }
                }
            }
        }
    }
    function handleNotification(message) {
        if (isDisposed()) {
            // See handle request.
            return;
        }
        let type = undefined;
        let notificationHandler;
        if (message.method === CancelNotification.type.method) {
            notificationHandler = (params) => {
                let id = params.id;
                let source = requestTokens[String(id)];
                if (source) {
                    source.cancel();
                }
            };
        }
        else {
            let element = notificationHandlers[message.method];
            if (element) {
                notificationHandler = element.handler;
                type = element.type;
            }
        }
        if (notificationHandler || starNotificationHandler) {
            try {
                traceReceivedNotification(message);
                if (message.params === void 0 || (type !== void 0 && type.numberOfParams === 0)) {
                    notificationHandler ? notificationHandler() : starNotificationHandler(message.method);
                }
                else if (Is.array(message.params) && (type === void 0 || type.numberOfParams > 1)) {
                    notificationHandler ? notificationHandler(...message.params) : starNotificationHandler(message.method, ...message.params);
                }
                else {
                    notificationHandler ? notificationHandler(message.params) : starNotificationHandler(message.method, message.params);
                }
            }
            catch (error) {
                if (error.message) {
                    logger.error(`Notification handler '${message.method}' failed with message: ${error.message}`);
                }
                else {
                    logger.error(`Notification handler '${message.method}' failed unexpectedly.`);
                }
            }
        }
        else {
            unhandledNotificationEmitter.fire(message);
        }
    }
    function handleInvalidMessage(message) {
        if (!message) {
            logger.error('Received empty message.');
            return;
        }
        logger.error(`Received message which is neither a response nor a notification message:\n${JSON.stringify(message, null, 4)}`);
        // Test whether we find an id to reject the promise
        let responseMessage = message;
        if (Is.string(responseMessage.id) || Is.number(responseMessage.id)) {
            let key = String(responseMessage.id);
            let responseHandler = responsePromises[key];
            if (responseHandler) {
                responseHandler.reject(new Error('The received response has neither a result nor an error property.'));
            }
        }
    }
    function traceSendingRequest(message) {
        if (trace === Trace.Off || !tracer) {
            return;
        }
        if (traceFormat === TraceFormat.Text) {
            let data = undefined;
            if (trace === Trace.Verbose && message.params) {
                data = `Params: ${JSON.stringify(message.params, null, 4)}\n\n`;
            }
            tracer.log(`Sending request '${message.method} - (${message.id})'.`, data);
        }
        else {
            logLSPMessage('send-request', message);
        }
    }
    function traceSendingNotification(message) {
        if (trace === Trace.Off || !tracer) {
            return;
        }
        if (traceFormat === TraceFormat.Text) {
            let data = undefined;
            if (trace === Trace.Verbose) {
                if (message.params) {
                    data = `Params: ${JSON.stringify(message.params, null, 4)}\n\n`;
                }
                else {
                    data = 'No parameters provided.\n\n';
                }
            }
            tracer.log(`Sending notification '${message.method}'.`, data);
        }
        else {
            logLSPMessage('send-notification', message);
        }
    }
    function traceSendingResponse(message, method, startTime) {
        if (trace === Trace.Off || !tracer) {
            return;
        }
        if (traceFormat === TraceFormat.Text) {
            let data = undefined;
            if (trace === Trace.Verbose) {
                if (message.error && message.error.data) {
                    data = `Error data: ${JSON.stringify(message.error.data, null, 4)}\n\n`;
                }
                else {
                    if (message.result) {
                        data = `Result: ${JSON.stringify(message.result, null, 4)}\n\n`;
                    }
                    else if (message.error === void 0) {
                        data = 'No result returned.\n\n';
                    }
                }
            }
            tracer.log(`Sending response '${method} - (${message.id})'. Processing request took ${Date.now() - startTime}ms`, data);
        }
        else {
            logLSPMessage('send-response', message);
        }
    }
    function traceReceivedRequest(message) {
        if (trace === Trace.Off || !tracer) {
            return;
        }
        if (traceFormat === TraceFormat.Text) {
            let data = undefined;
            if (trace === Trace.Verbose && message.params) {
                data = `Params: ${JSON.stringify(message.params, null, 4)}\n\n`;
            }
            tracer.log(`Received request '${message.method} - (${message.id})'.`, data);
        }
        else {
            logLSPMessage('receive-request', message);
        }
    }
    function traceReceivedNotification(message) {
        if (trace === Trace.Off || !tracer || message.method === LogTraceNotification.type.method) {
            return;
        }
        if (traceFormat === TraceFormat.Text) {
            let data = undefined;
            if (trace === Trace.Verbose) {
                if (message.params) {
                    data = `Params: ${JSON.stringify(message.params, null, 4)}\n\n`;
                }
                else {
                    data = 'No parameters provided.\n\n';
                }
            }
            tracer.log(`Received notification '${message.method}'.`, data);
        }
        else {
            logLSPMessage('receive-notification', message);
        }
    }
    function traceReceivedResponse(message, responsePromise) {
        if (trace === Trace.Off || !tracer) {
            return;
        }
        if (traceFormat === TraceFormat.Text) {
            let data = undefined;
            if (trace === Trace.Verbose) {
                if (message.error && message.error.data) {
                    data = `Error data: ${JSON.stringify(message.error.data, null, 4)}\n\n`;
                }
                else {
                    if (message.result) {
                        data = `Result: ${JSON.stringify(message.result, null, 4)}\n\n`;
                    }
                    else if (message.error === void 0) {
                        data = 'No result returned.\n\n';
                    }
                }
            }
            if (responsePromise) {
                let error = message.error ? ` Request failed: ${message.error.message} (${message.error.code}).` : '';
                tracer.log(`Received response '${responsePromise.method} - (${message.id})' in ${Date.now() - responsePromise.timerStart}ms.${error}`, data);
            }
            else {
                tracer.log(`Received response ${message.id} without active response promise.`, data);
            }
        }
        else {
            logLSPMessage('receive-response', message);
        }
    }
    function logLSPMessage(type, message) {
        if (!tracer || trace === Trace.Off) {
            return;
        }
        const lspMessage = {
            isLSPMessage: true,
            type,
            message,
            timestamp: Date.now()
        };
        tracer.log(lspMessage);
    }
    function throwIfClosedOrDisposed() {
        if (isClosed()) {
            throw new ConnectionError(ConnectionErrors.Closed, 'Connection is closed.');
        }
        if (isDisposed()) {
            throw new ConnectionError(ConnectionErrors.Disposed, 'Connection is disposed.');
        }
    }
    function throwIfListening() {
        if (isListening()) {
            throw new ConnectionError(ConnectionErrors.AlreadyListening, 'Connection is already listening');
        }
    }
    function throwIfNotListening() {
        if (!isListening()) {
            throw new Error('Call listen() first.');
        }
    }
    function undefinedToNull(param) {
        if (param === void 0) {
            return null;
        }
        else {
            return param;
        }
    }
    function computeMessageParams(type, params) {
        let result;
        let numberOfParams = type.numberOfParams;
        switch (numberOfParams) {
            case 0:
                result = null;
                break;
            case 1:
                result = undefinedToNull(params[0]);
                break;
            default:
                result = [];
                for (let i = 0; i < params.length && i < numberOfParams; i++) {
                    result.push(undefinedToNull(params[i]));
                }
                if (params.length < numberOfParams) {
                    for (let i = params.length; i < numberOfParams; i++) {
                        result.push(null);
                    }
                }
                break;
        }
        return result;
    }
    let connection = {
        sendNotification: (type, ...params) => {
            throwIfClosedOrDisposed();
            let method;
            let messageParams;
            if (Is.string(type)) {
                method = type;
                switch (params.length) {
                    case 0:
                        messageParams = null;
                        break;
                    case 1:
                        messageParams = params[0];
                        break;
                    default:
                        messageParams = params;
                        break;
                }
            }
            else {
                method = type.method;
                messageParams = computeMessageParams(type, params);
            }
            let notificationMessage = {
                jsonrpc: version,
                method: method,
                params: messageParams
            };
            traceSendingNotification(notificationMessage);
            messageWriter.write(notificationMessage);
        },
        onNotification: (type, handler) => {
            throwIfClosedOrDisposed();
            if (Is.func(type)) {
                starNotificationHandler = type;
            }
            else if (handler) {
                if (Is.string(type)) {
                    notificationHandlers[type] = { type: undefined, handler };
                }
                else {
                    notificationHandlers[type.method] = { type, handler };
                }
            }
        },
        sendRequest: (type, ...params) => {
            throwIfClosedOrDisposed();
            throwIfNotListening();
            let method;
            let messageParams;
            let token = undefined;
            if (Is.string(type)) {
                method = type;
                switch (params.length) {
                    case 0:
                        messageParams = null;
                        break;
                    case 1:
                        // The cancellation token is optional so it can also be undefined.
                        if (cancellation_1.CancellationToken.is(params[0])) {
                            messageParams = null;
                            token = params[0];
                        }
                        else {
                            messageParams = undefinedToNull(params[0]);
                        }
                        break;
                    default:
                        const last = params.length - 1;
                        if (cancellation_1.CancellationToken.is(params[last])) {
                            token = params[last];
                            if (params.length === 2) {
                                messageParams = undefinedToNull(params[0]);
                            }
                            else {
                                messageParams = params.slice(0, last).map(value => undefinedToNull(value));
                            }
                        }
                        else {
                            messageParams = params.map(value => undefinedToNull(value));
                        }
                        break;
                }
            }
            else {
                method = type.method;
                messageParams = computeMessageParams(type, params);
                let numberOfParams = type.numberOfParams;
                token = cancellation_1.CancellationToken.is(params[numberOfParams]) ? params[numberOfParams] : undefined;
            }
            let id = sequenceNumber++;
            let result = new Promise((resolve, reject) => {
                let requestMessage = {
                    jsonrpc: version,
                    id: id,
                    method: method,
                    params: messageParams
                };
                let responsePromise = { method: method, timerStart: Date.now(), resolve, reject };
                traceSendingRequest(requestMessage);
                try {
                    messageWriter.write(requestMessage);
                }
                catch (e) {
                    // Writing the message failed. So we need to reject the promise.
                    responsePromise.reject(new messages_1.ResponseError(messages_1.ErrorCodes.MessageWriteError, e.message ? e.message : 'Unknown reason'));
                    responsePromise = null;
                }
                if (responsePromise) {
                    responsePromises[String(id)] = responsePromise;
                }
            });
            if (token) {
                token.onCancellationRequested(() => {
                    connection.sendNotification(CancelNotification.type, { id });
                });
            }
            return result;
        },
        onRequest: (type, handler) => {
            throwIfClosedOrDisposed();
            if (Is.func(type)) {
                starRequestHandler = type;
            }
            else if (handler) {
                if (Is.string(type)) {
                    requestHandlers[type] = { type: undefined, handler };
                }
                else {
                    requestHandlers[type.method] = { type, handler };
                }
            }
        },
        trace: (_value, _tracer, sendNotificationOrTraceOptions) => {
            let _sendNotification = false;
            let _traceFormat = TraceFormat.Text;
            if (sendNotificationOrTraceOptions !== void 0) {
                if (Is.boolean(sendNotificationOrTraceOptions)) {
                    _sendNotification = sendNotificationOrTraceOptions;
                }
                else {
                    _sendNotification = sendNotificationOrTraceOptions.sendNotification || false;
                    _traceFormat = sendNotificationOrTraceOptions.traceFormat || TraceFormat.Text;
                }
            }
            trace = _value;
            traceFormat = _traceFormat;
            if (trace === Trace.Off) {
                tracer = undefined;
            }
            else {
                tracer = _tracer;
            }
            if (_sendNotification && !isClosed() && !isDisposed()) {
                connection.sendNotification(SetTraceNotification.type, { value: Trace.toString(_value) });
            }
        },
        onError: errorEmitter.event,
        onClose: closeEmitter.event,
        onUnhandledNotification: unhandledNotificationEmitter.event,
        onDispose: disposeEmitter.event,
        dispose: () => {
            if (isDisposed()) {
                return;
            }
            state = ConnectionState.Disposed;
            disposeEmitter.fire(undefined);
            let error = new Error('Connection got disposed.');
            Object.keys(responsePromises).forEach((key) => {
                responsePromises[key].reject(error);
            });
            responsePromises = Object.create(null);
            requestTokens = Object.create(null);
            messageQueue = new linkedMap_1.LinkedMap();
            // Test for backwards compatibility
            if (Is.func(messageWriter.dispose)) {
                messageWriter.dispose();
            }
            if (Is.func(messageReader.dispose)) {
                messageReader.dispose();
            }
        },
        listen: () => {
            throwIfClosedOrDisposed();
            throwIfListening();
            state = ConnectionState.Listening;
            messageReader.listen(callback);
        },
        inspect: () => {
            console.log("inspect");
        }
    };
    connection.onNotification(LogTraceNotification.type, (params) => {
        if (trace === Trace.Off || !tracer) {
            return;
        }
        tracer.log(params.message, trace === Trace.Verbose ? params.verbose : undefined);
    });
    return connection;
}
function isMessageReader(value) {
    return value.listen !== void 0 && value.read === void 0;
}
function isMessageWriter(value) {
    return value.write !== void 0 && value.end === void 0;
}
function createMessageConnection(input, output, logger, strategy) {
    if (!logger) {
        logger = exports.NullLogger;
    }
    let reader = isMessageReader(input) ? input : new messageReader_1.StreamMessageReader(input);
    let writer = isMessageWriter(output) ? output : new messageWriter_1.StreamMessageWriter(output);
    return _createMessageConnection(reader, writer, logger, strategy);
}
exports.createMessageConnection = createMessageConnection;


/***/ }),
/* 47 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
function boolean(value) {
    return value === true || value === false;
}
exports.boolean = boolean;
function string(value) {
    return typeof value === 'string' || value instanceof String;
}
exports.string = string;
function number(value) {
    return typeof value === 'number' || value instanceof Number;
}
exports.number = number;
function error(value) {
    return value instanceof Error;
}
exports.error = error;
function func(value) {
    return typeof value === 'function';
}
exports.func = func;
function array(value) {
    return Array.isArray(value);
}
exports.array = array;
function stringArray(value) {
    return array(value) && value.every(elem => string(elem));
}
exports.stringArray = stringArray;


/***/ }),
/* 48 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const is = __webpack_require__(47);
/**
 * Predefined error codes.
 */
var ErrorCodes;
(function (ErrorCodes) {
    // Defined by JSON RPC
    ErrorCodes.ParseError = -32700;
    ErrorCodes.InvalidRequest = -32600;
    ErrorCodes.MethodNotFound = -32601;
    ErrorCodes.InvalidParams = -32602;
    ErrorCodes.InternalError = -32603;
    ErrorCodes.serverErrorStart = -32099;
    ErrorCodes.serverErrorEnd = -32000;
    ErrorCodes.ServerNotInitialized = -32002;
    ErrorCodes.UnknownErrorCode = -32001;
    // Defined by the protocol.
    ErrorCodes.RequestCancelled = -32800;
    ErrorCodes.ContentModified = -32801;
    // Defined by VSCode library.
    ErrorCodes.MessageWriteError = 1;
    ErrorCodes.MessageReadError = 2;
})(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {}));
/**
 * An error object return in a response in case a request
 * has failed.
 */
class ResponseError extends Error {
    constructor(code, message, data) {
        super(message);
        this.code = is.number(code) ? code : ErrorCodes.UnknownErrorCode;
        this.data = data;
        Object.setPrototypeOf(this, ResponseError.prototype);
    }
    toJson() {
        return {
            code: this.code,
            message: this.message,
            data: this.data,
        };
    }
}
exports.ResponseError = ResponseError;
/**
 * An abstract implementation of a MessageType.
 */
class AbstractMessageType {
    constructor(_method, _numberOfParams) {
        this._method = _method;
        this._numberOfParams = _numberOfParams;
    }
    get method() {
        return this._method;
    }
    get numberOfParams() {
        return this._numberOfParams;
    }
}
exports.AbstractMessageType = AbstractMessageType;
/**
 * Classes to type request response pairs
 */
class RequestType0 extends AbstractMessageType {
    constructor(method) {
        super(method, 0);
        this._ = undefined;
    }
}
exports.RequestType0 = RequestType0;
class RequestType extends AbstractMessageType {
    constructor(method) {
        super(method, 1);
        this._ = undefined;
    }
}
exports.RequestType = RequestType;
class RequestType1 extends AbstractMessageType {
    constructor(method) {
        super(method, 1);
        this._ = undefined;
    }
}
exports.RequestType1 = RequestType1;
class RequestType2 extends AbstractMessageType {
    constructor(method) {
        super(method, 2);
        this._ = undefined;
    }
}
exports.RequestType2 = RequestType2;
class RequestType3 extends AbstractMessageType {
    constructor(method) {
        super(method, 3);
        this._ = undefined;
    }
}
exports.RequestType3 = RequestType3;
class RequestType4 extends AbstractMessageType {
    constructor(method) {
        super(method, 4);
        this._ = undefined;
    }
}
exports.RequestType4 = RequestType4;
class RequestType5 extends AbstractMessageType {
    constructor(method) {
        super(method, 5);
        this._ = undefined;
    }
}
exports.RequestType5 = RequestType5;
class RequestType6 extends AbstractMessageType {
    constructor(method) {
        super(method, 6);
        this._ = undefined;
    }
}
exports.RequestType6 = RequestType6;
class RequestType7 extends AbstractMessageType {
    constructor(method) {
        super(method, 7);
        this._ = undefined;
    }
}
exports.RequestType7 = RequestType7;
class RequestType8 extends AbstractMessageType {
    constructor(method) {
        super(method, 8);
        this._ = undefined;
    }
}
exports.RequestType8 = RequestType8;
class RequestType9 extends AbstractMessageType {
    constructor(method) {
        super(method, 9);
        this._ = undefined;
    }
}
exports.RequestType9 = RequestType9;
class NotificationType extends AbstractMessageType {
    constructor(method) {
        super(method, 1);
        this._ = undefined;
    }
}
exports.NotificationType = NotificationType;
class NotificationType0 extends AbstractMessageType {
    constructor(method) {
        super(method, 0);
        this._ = undefined;
    }
}
exports.NotificationType0 = NotificationType0;
class NotificationType1 extends AbstractMessageType {
    constructor(method) {
        super(method, 1);
        this._ = undefined;
    }
}
exports.NotificationType1 = NotificationType1;
class NotificationType2 extends AbstractMessageType {
    constructor(method) {
        super(method, 2);
        this._ = undefined;
    }
}
exports.NotificationType2 = NotificationType2;
class NotificationType3 extends AbstractMessageType {
    constructor(method) {
        super(method, 3);
        this._ = undefined;
    }
}
exports.NotificationType3 = NotificationType3;
class NotificationType4 extends AbstractMessageType {
    constructor(method) {
        super(method, 4);
        this._ = undefined;
    }
}
exports.NotificationType4 = NotificationType4;
class NotificationType5 extends AbstractMessageType {
    constructor(method) {
        super(method, 5);
        this._ = undefined;
    }
}
exports.NotificationType5 = NotificationType5;
class NotificationType6 extends AbstractMessageType {
    constructor(method) {
        super(method, 6);
        this._ = undefined;
    }
}
exports.NotificationType6 = NotificationType6;
class NotificationType7 extends AbstractMessageType {
    constructor(method) {
        super(method, 7);
        this._ = undefined;
    }
}
exports.NotificationType7 = NotificationType7;
class NotificationType8 extends AbstractMessageType {
    constructor(method) {
        super(method, 8);
        this._ = undefined;
    }
}
exports.NotificationType8 = NotificationType8;
class NotificationType9 extends AbstractMessageType {
    constructor(method) {
        super(method, 9);
        this._ = undefined;
    }
}
exports.NotificationType9 = NotificationType9;
/**
 * Tests if the given message is a request message
 */
function isRequestMessage(message) {
    let candidate = message;
    return candidate && is.string(candidate.method) && (is.string(candidate.id) || is.number(candidate.id));
}
exports.isRequestMessage = isRequestMessage;
/**
 * Tests if the given message is a notification message
 */
function isNotificationMessage(message) {
    let candidate = message;
    return candidate && is.string(candidate.method) && message.id === void 0;
}
exports.isNotificationMessage = isNotificationMessage;
/**
 * Tests if the given message is a response message
 */
function isResponseMessage(message) {
    let candidate = message;
    return candidate && (candidate.result !== void 0 || !!candidate.error) && (is.string(candidate.id) || is.number(candidate.id) || candidate.id === null);
}
exports.isResponseMessage = isResponseMessage;


/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const events_1 = __webpack_require__(50);
const Is = __webpack_require__(47);
let DefaultSize = 8192;
let CR = Buffer.from('\r', 'ascii')[0];
let LF = Buffer.from('\n', 'ascii')[0];
let CRLF = '\r\n';
class MessageBuffer {
    constructor(encoding = 'utf8') {
        this.encoding = encoding;
        this.index = 0;
        this.buffer = Buffer.allocUnsafe(DefaultSize);
    }
    append(chunk) {
        var toAppend = chunk;
        if (typeof (chunk) === 'string') {
            var str = chunk;
            var bufferLen = Buffer.byteLength(str, this.encoding);
            toAppend = Buffer.allocUnsafe(bufferLen);
            toAppend.write(str, 0, bufferLen, this.encoding);
        }
        if (this.buffer.length - this.index >= toAppend.length) {
            toAppend.copy(this.buffer, this.index, 0, toAppend.length);
        }
        else {
            var newSize = (Math.ceil((this.index + toAppend.length) / DefaultSize) + 1) * DefaultSize;
            if (this.index === 0) {
                this.buffer = Buffer.allocUnsafe(newSize);
                toAppend.copy(this.buffer, 0, 0, toAppend.length);
            }
            else {
                this.buffer = Buffer.concat([this.buffer.slice(0, this.index), toAppend], newSize);
            }
        }
        this.index += toAppend.length;
    }
    tryReadHeaders() {
        let result = undefined;
        let current = 0;
        while (current + 3 < this.index && (this.buffer[current] !== CR || this.buffer[current + 1] !== LF || this.buffer[current + 2] !== CR || this.buffer[current + 3] !== LF)) {
            current++;
        }
        // No header / body separator found (e.g CRLFCRLF)
        if (current + 3 >= this.index) {
            return result;
        }
        result = Object.create(null);
        let headers = this.buffer.toString('ascii', 0, current).split(CRLF);
        headers.forEach((header) => {
            let index = header.indexOf(':');
            if (index === -1) {
                throw new Error('Message header must separate key and value using :');
            }
            let key = header.substr(0, index);
            let value = header.substr(index + 1).trim();
            result[key] = value;
        });
        let nextStart = current + 4;
        this.buffer = this.buffer.slice(nextStart);
        this.index = this.index - nextStart;
        return result;
    }
    tryReadContent(length) {
        if (this.index < length) {
            return null;
        }
        let result = this.buffer.toString(this.encoding, 0, length);
        let nextStart = length;
        this.buffer.copy(this.buffer, 0, nextStart);
        this.index = this.index - nextStart;
        return result;
    }
    get numberOfBytes() {
        return this.index;
    }
}
var MessageReader;
(function (MessageReader) {
    function is(value) {
        let candidate = value;
        return candidate && Is.func(candidate.listen) && Is.func(candidate.dispose) &&
            Is.func(candidate.onError) && Is.func(candidate.onClose) && Is.func(candidate.onPartialMessage);
    }
    MessageReader.is = is;
})(MessageReader = exports.MessageReader || (exports.MessageReader = {}));
class AbstractMessageReader {
    constructor() {
        this.errorEmitter = new events_1.Emitter();
        this.closeEmitter = new events_1.Emitter();
        this.partialMessageEmitter = new events_1.Emitter();
    }
    dispose() {
        this.errorEmitter.dispose();
        this.closeEmitter.dispose();
    }
    get onError() {
        return this.errorEmitter.event;
    }
    fireError(error) {
        this.errorEmitter.fire(this.asError(error));
    }
    get onClose() {
        return this.closeEmitter.event;
    }
    fireClose() {
        this.closeEmitter.fire(undefined);
    }
    get onPartialMessage() {
        return this.partialMessageEmitter.event;
    }
    firePartialMessage(info) {
        this.partialMessageEmitter.fire(info);
    }
    asError(error) {
        if (error instanceof Error) {
            return error;
        }
        else {
            return new Error(`Reader received error. Reason: ${Is.string(error.message) ? error.message : 'unknown'}`);
        }
    }
}
exports.AbstractMessageReader = AbstractMessageReader;
class StreamMessageReader extends AbstractMessageReader {
    constructor(readable, encoding = 'utf8') {
        super();
        this.readable = readable;
        this.buffer = new MessageBuffer(encoding);
        this._partialMessageTimeout = 10000;
    }
    set partialMessageTimeout(timeout) {
        this._partialMessageTimeout = timeout;
    }
    get partialMessageTimeout() {
        return this._partialMessageTimeout;
    }
    listen(callback) {
        this.nextMessageLength = -1;
        this.messageToken = 0;
        this.partialMessageTimer = undefined;
        this.callback = callback;
        this.readable.on('data', (data) => {
            this.onData(data);
        });
        this.readable.on('error', (error) => this.fireError(error));
        this.readable.on('close', () => this.fireClose());
    }
    onData(data) {
        this.buffer.append(data);
        while (true) {
            if (this.nextMessageLength === -1) {
                let headers = this.buffer.tryReadHeaders();
                if (!headers) {
                    return;
                }
                let contentLength = headers['Content-Length'];
                if (!contentLength) {
                    throw new Error('Header must provide a Content-Length property.');
                }
                let length = parseInt(contentLength);
                if (isNaN(length)) {
                    throw new Error('Content-Length value must be a number.');
                }
                this.nextMessageLength = length;
                // Take the encoding form the header. For compatibility
                // treat both utf-8 and utf8 as node utf8
            }
            var msg = this.buffer.tryReadContent(this.nextMessageLength);
            if (msg === null) {
                /** We haven't received the full message yet. */
                this.setPartialMessageTimer();
                return;
            }
            this.clearPartialMessageTimer();
            this.nextMessageLength = -1;
            this.messageToken++;
            var json = JSON.parse(msg);
            this.callback(json);
        }
    }
    clearPartialMessageTimer() {
        if (this.partialMessageTimer) {
            clearTimeout(this.partialMessageTimer);
            this.partialMessageTimer = undefined;
        }
    }
    setPartialMessageTimer() {
        this.clearPartialMessageTimer();
        if (this._partialMessageTimeout <= 0) {
            return;
        }
        this.partialMessageTimer = setTimeout((token, timeout) => {
            this.partialMessageTimer = undefined;
            if (token === this.messageToken) {
                this.firePartialMessage({ messageToken: token, waitingTime: timeout });
                this.setPartialMessageTimer();
            }
        }, this._partialMessageTimeout, this.messageToken, this._partialMessageTimeout);
    }
}
exports.StreamMessageReader = StreamMessageReader;
class IPCMessageReader extends AbstractMessageReader {
    constructor(process) {
        super();
        this.process = process;
        let eventEmitter = this.process;
        eventEmitter.on('error', (error) => this.fireError(error));
        eventEmitter.on('close', () => this.fireClose());
    }
    listen(callback) {
        this.process.on('message', callback);
    }
}
exports.IPCMessageReader = IPCMessageReader;
class SocketMessageReader extends StreamMessageReader {
    constructor(socket, encoding = 'utf-8') {
        super(socket, encoding);
    }
}
exports.SocketMessageReader = SocketMessageReader;


/***/ }),
/* 50 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
var Disposable;
(function (Disposable) {
    function create(func) {
        return {
            dispose: func
        };
    }
    Disposable.create = create;
})(Disposable = exports.Disposable || (exports.Disposable = {}));
var Event;
(function (Event) {
    const _disposable = { dispose() { } };
    Event.None = function () { return _disposable; };
})(Event = exports.Event || (exports.Event = {}));
class CallbackList {
    add(callback, context = null, bucket) {
        if (!this._callbacks) {
            this._callbacks = [];
            this._contexts = [];
        }
        this._callbacks.push(callback);
        this._contexts.push(context);
        if (Array.isArray(bucket)) {
            bucket.push({ dispose: () => this.remove(callback, context) });
        }
    }
    remove(callback, context = null) {
        if (!this._callbacks) {
            return;
        }
        var foundCallbackWithDifferentContext = false;
        for (var i = 0, len = this._callbacks.length; i < len; i++) {
            if (this._callbacks[i] === callback) {
                if (this._contexts[i] === context) {
                    // callback & context match => remove it
                    this._callbacks.splice(i, 1);
                    this._contexts.splice(i, 1);
                    return;
                }
                else {
                    foundCallbackWithDifferentContext = true;
                }
            }
        }
        if (foundCallbackWithDifferentContext) {
            throw new Error('When adding a listener with a context, you should remove it with the same context');
        }
    }
    invoke(...args) {
        if (!this._callbacks) {
            return [];
        }
        var ret = [], callbacks = this._callbacks.slice(0), contexts = this._contexts.slice(0);
        for (var i = 0, len = callbacks.length; i < len; i++) {
            try {
                ret.push(callbacks[i].apply(contexts[i], args));
            }
            catch (e) {
                console.error(e);
            }
        }
        return ret;
    }
    isEmpty() {
        return !this._callbacks || this._callbacks.length === 0;
    }
    dispose() {
        this._callbacks = undefined;
        this._contexts = undefined;
    }
}
class Emitter {
    constructor(_options) {
        this._options = _options;
    }
    /**
     * For the public to allow to subscribe
     * to events from this Emitter
     */
    get event() {
        if (!this._event) {
            this._event = (listener, thisArgs, disposables) => {
                if (!this._callbacks) {
                    this._callbacks = new CallbackList();
                }
                if (this._options && this._options.onFirstListenerAdd && this._callbacks.isEmpty()) {
                    this._options.onFirstListenerAdd(this);
                }
                this._callbacks.add(listener, thisArgs);
                let result;
                result = {
                    dispose: () => {
                        this._callbacks.remove(listener, thisArgs);
                        result.dispose = Emitter._noop;
                        if (this._options && this._options.onLastListenerRemove && this._callbacks.isEmpty()) {
                            this._options.onLastListenerRemove(this);
                        }
                    }
                };
                if (Array.isArray(disposables)) {
                    disposables.push(result);
                }
                return result;
            };
        }
        return this._event;
    }
    /**
     * To be kept private to fire an event to
     * subscribers
     */
    fire(event) {
        if (this._callbacks) {
            this._callbacks.invoke.call(this._callbacks, event);
        }
    }
    dispose() {
        if (this._callbacks) {
            this._callbacks.dispose();
            this._callbacks = undefined;
        }
    }
}
Emitter._noop = function () { };
exports.Emitter = Emitter;


/***/ }),
/* 51 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const events_1 = __webpack_require__(50);
const Is = __webpack_require__(47);
let ContentLength = 'Content-Length: ';
let CRLF = '\r\n';
var MessageWriter;
(function (MessageWriter) {
    function is(value) {
        let candidate = value;
        return candidate && Is.func(candidate.dispose) && Is.func(candidate.onClose) &&
            Is.func(candidate.onError) && Is.func(candidate.write);
    }
    MessageWriter.is = is;
})(MessageWriter = exports.MessageWriter || (exports.MessageWriter = {}));
class AbstractMessageWriter {
    constructor() {
        this.errorEmitter = new events_1.Emitter();
        this.closeEmitter = new events_1.Emitter();
    }
    dispose() {
        this.errorEmitter.dispose();
        this.closeEmitter.dispose();
    }
    get onError() {
        return this.errorEmitter.event;
    }
    fireError(error, message, count) {
        this.errorEmitter.fire([this.asError(error), message, count]);
    }
    get onClose() {
        return this.closeEmitter.event;
    }
    fireClose() {
        this.closeEmitter.fire(undefined);
    }
    asError(error) {
        if (error instanceof Error) {
            return error;
        }
        else {
            return new Error(`Writer received error. Reason: ${Is.string(error.message) ? error.message : 'unknown'}`);
        }
    }
}
exports.AbstractMessageWriter = AbstractMessageWriter;
class StreamMessageWriter extends AbstractMessageWriter {
    constructor(writable, encoding = 'utf8') {
        super();
        this.writable = writable;
        this.encoding = encoding;
        this.errorCount = 0;
        this.writable.on('error', (error) => this.fireError(error));
        this.writable.on('close', () => this.fireClose());
    }
    write(msg) {
        let json = JSON.stringify(msg);
        let contentLength = Buffer.byteLength(json, this.encoding);
        let headers = [
            ContentLength, contentLength.toString(), CRLF,
            CRLF
        ];
        try {
            // Header must be written in ASCII encoding
            this.writable.write(headers.join(''), 'ascii');
            // Now write the content. This can be written in any encoding
            this.writable.write(json, this.encoding);
            this.errorCount = 0;
        }
        catch (error) {
            this.errorCount++;
            this.fireError(error, msg, this.errorCount);
        }
    }
}
exports.StreamMessageWriter = StreamMessageWriter;
class IPCMessageWriter extends AbstractMessageWriter {
    constructor(process) {
        super();
        this.process = process;
        this.errorCount = 0;
        this.queue = [];
        this.sending = false;
        let eventEmitter = this.process;
        eventEmitter.on('error', (error) => this.fireError(error));
        eventEmitter.on('close', () => this.fireClose);
    }
    write(msg) {
        if (!this.sending && this.queue.length === 0) {
            // See https://github.com/nodejs/node/issues/7657
            this.doWriteMessage(msg);
        }
        else {
            this.queue.push(msg);
        }
    }
    doWriteMessage(msg) {
        try {
            if (this.process.send) {
                this.sending = true;
                this.process.send(msg, undefined, undefined, (error) => {
                    this.sending = false;
                    if (error) {
                        this.errorCount++;
                        this.fireError(error, msg, this.errorCount);
                    }
                    else {
                        this.errorCount = 0;
                    }
                    if (this.queue.length > 0) {
                        this.doWriteMessage(this.queue.shift());
                    }
                });
            }
        }
        catch (error) {
            this.errorCount++;
            this.fireError(error, msg, this.errorCount);
        }
    }
}
exports.IPCMessageWriter = IPCMessageWriter;
class SocketMessageWriter extends AbstractMessageWriter {
    constructor(socket, encoding = 'utf8') {
        super();
        this.socket = socket;
        this.queue = [];
        this.sending = false;
        this.encoding = encoding;
        this.errorCount = 0;
        this.socket.on('error', (error) => this.fireError(error));
        this.socket.on('close', () => this.fireClose());
    }
    dispose() {
        super.dispose();
        this.socket.destroy();
    }
    write(msg) {
        if (!this.sending && this.queue.length === 0) {
            // See https://github.com/nodejs/node/issues/7657
            this.doWriteMessage(msg);
        }
        else {
            this.queue.push(msg);
        }
    }
    doWriteMessage(msg) {
        let json = JSON.stringify(msg);
        let contentLength = Buffer.byteLength(json, this.encoding);
        let headers = [
            ContentLength, contentLength.toString(), CRLF,
            CRLF
        ];
        try {
            // Header must be written in ASCII encoding
            this.sending = true;
            this.socket.write(headers.join(''), 'ascii', (error) => {
                if (error) {
                    this.handleError(error, msg);
                }
                try {
                    // Now write the content. This can be written in any encoding
                    this.socket.write(json, this.encoding, (error) => {
                        this.sending = false;
                        if (error) {
                            this.handleError(error, msg);
                        }
                        else {
                            this.errorCount = 0;
                        }
                        if (this.queue.length > 0) {
                            this.doWriteMessage(this.queue.shift());
                        }
                    });
                }
                catch (error) {
                    this.handleError(error, msg);
                }
            });
        }
        catch (error) {
            this.handleError(error, msg);
        }
    }
    handleError(error, msg) {
        this.errorCount++;
        this.fireError(error, msg, this.errorCount);
    }
}
exports.SocketMessageWriter = SocketMessageWriter;


/***/ }),
/* 52 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

Object.defineProperty(exports, "__esModule", { value: true });
const events_1 = __webpack_require__(50);
const Is = __webpack_require__(47);
var CancellationToken;
(function (CancellationToken) {
    CancellationToken.None = Object.freeze({
        isCancellationRequested: false,
        onCancellationRequested: events_1.Event.None
    });
    CancellationToken.Cancelled = Object.freeze({
        isCancellationRequested: true,
        onCancellationRequested: events_1.Event.None
    });
    function is(value) {
        let candidate = value;
        return candidate && (candidate === CancellationToken.None
            || candidate === CancellationToken.Cancelled
            || (Is.boolean(candidate.isCancellationRequested) && !!candidate.onCancellationRequested));
    }
    CancellationToken.is = is;
})(CancellationToken = exports.CancellationToken || (exports.CancellationToken = {}));
const shortcutEvent = Object.freeze(function (callback, context) {
    let handle = setTimeout(callback.bind(context), 0);
    return { dispose() { clearTimeout(handle); } };
});
class MutableToken {
    constructor() {
        this._isCancelled = false;
    }
    cancel() {
        if (!this._isCancelled) {
            this._isCancelled = true;
            if (this._emitter) {
                this._emitter.fire(undefined);
                this.dispose();
            }
        }
    }
    get isCancellationRequested() {
        return this._isCancelled;
    }
    get onCancellationRequested() {
        if (this._isCancelled) {
            return shortcutEvent;
        }
        if (!this._emitter) {
            this._emitter = new events_1.Emitter();
        }
        return this._emitter.event;
    }
    dispose() {
        if (this._emitter) {
            this._emitter.dispose();
            this._emitter = undefined;
        }
    }
}
class CancellationTokenSource {
    get token() {
        if (!this._token) {
            // be lazy and create the token only when
            // actually needed
            this._token = new MutableToken();
        }
        return this._token;
    }
    cancel() {
        if (!this._token) {
            // save an object by returning the default
            // cancelled token when cancellation happens
            // before someone asks for the token
            this._token = CancellationToken.Cancelled;
        }
        else {
            this._token.cancel();
        }
    }
    dispose() {
        if (!this._token) {
            // ensure to initialize with an empty token if we had none
            this._token = CancellationToken.None;
        }
        else if (this._token instanceof MutableToken) {
            // actually dispose
            this._token.dispose();
        }
    }
}
exports.CancellationTokenSource = CancellationTokenSource;


/***/ }),
/* 53 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
var Touch;
(function (Touch) {
    Touch.None = 0;
    Touch.First = 1;
    Touch.Last = 2;
})(Touch = exports.Touch || (exports.Touch = {}));
class LinkedMap {
    constructor() {
        this._map = new Map();
        this._head = undefined;
        this._tail = undefined;
        this._size = 0;
    }
    clear() {
        this._map.clear();
        this._head = undefined;
        this._tail = undefined;
        this._size = 0;
    }
    isEmpty() {
        return !this._head && !this._tail;
    }
    get size() {
        return this._size;
    }
    has(key) {
        return this._map.has(key);
    }
    get(key) {
        const item = this._map.get(key);
        if (!item) {
            return undefined;
        }
        return item.value;
    }
    set(key, value, touch = Touch.None) {
        let item = this._map.get(key);
        if (item) {
            item.value = value;
            if (touch !== Touch.None) {
                this.touch(item, touch);
            }
        }
        else {
            item = { key, value, next: undefined, previous: undefined };
            switch (touch) {
                case Touch.None:
                    this.addItemLast(item);
                    break;
                case Touch.First:
                    this.addItemFirst(item);
                    break;
                case Touch.Last:
                    this.addItemLast(item);
                    break;
                default:
                    this.addItemLast(item);
                    break;
            }
            this._map.set(key, item);
            this._size++;
        }
    }
    delete(key) {
        const item = this._map.get(key);
        if (!item) {
            return false;
        }
        this._map.delete(key);
        this.removeItem(item);
        this._size--;
        return true;
    }
    shift() {
        if (!this._head && !this._tail) {
            return undefined;
        }
        if (!this._head || !this._tail) {
            throw new Error('Invalid list');
        }
        const item = this._head;
        this._map.delete(item.key);
        this.removeItem(item);
        this._size--;
        return item.value;
    }
    forEach(callbackfn, thisArg) {
        let current = this._head;
        while (current) {
            if (thisArg) {
                callbackfn.bind(thisArg)(current.value, current.key, this);
            }
            else {
                callbackfn(current.value, current.key, this);
            }
            current = current.next;
        }
    }
    forEachReverse(callbackfn, thisArg) {
        let current = this._tail;
        while (current) {
            if (thisArg) {
                callbackfn.bind(thisArg)(current.value, current.key, this);
            }
            else {
                callbackfn(current.value, current.key, this);
            }
            current = current.previous;
        }
    }
    values() {
        let result = [];
        let current = this._head;
        while (current) {
            result.push(current.value);
            current = current.next;
        }
        return result;
    }
    keys() {
        let result = [];
        let current = this._head;
        while (current) {
            result.push(current.key);
            current = current.next;
        }
        return result;
    }
    /* JSON RPC run on es5 which has no Symbol.iterator
    public keys(): IterableIterator<K> {
        let current = this._head;
        let iterator: IterableIterator<K> = {
            [Symbol.iterator]() {
                return iterator;
            },
            next():IteratorResult<K> {
                if (current) {
                    let result = { value: current.key, done: false };
                    current = current.next;
                    return result;
                } else {
                    return { value: undefined, done: true };
                }
            }
        };
        return iterator;
    }

    public values(): IterableIterator<V> {
        let current = this._head;
        let iterator: IterableIterator<V> = {
            [Symbol.iterator]() {
                return iterator;
            },
            next():IteratorResult<V> {
                if (current) {
                    let result = { value: current.value, done: false };
                    current = current.next;
                    return result;
                } else {
                    return { value: undefined, done: true };
                }
            }
        };
        return iterator;
    }
    */
    addItemFirst(item) {
        // First time Insert
        if (!this._head && !this._tail) {
            this._tail = item;
        }
        else if (!this._head) {
            throw new Error('Invalid list');
        }
        else {
            item.next = this._head;
            this._head.previous = item;
        }
        this._head = item;
    }
    addItemLast(item) {
        // First time Insert
        if (!this._head && !this._tail) {
            this._head = item;
        }
        else if (!this._tail) {
            throw new Error('Invalid list');
        }
        else {
            item.previous = this._tail;
            this._tail.next = item;
        }
        this._tail = item;
    }
    removeItem(item) {
        if (item === this._head && item === this._tail) {
            this._head = undefined;
            this._tail = undefined;
        }
        else if (item === this._head) {
            this._head = item.next;
        }
        else if (item === this._tail) {
            this._tail = item.previous;
        }
        else {
            const next = item.next;
            const previous = item.previous;
            if (!next || !previous) {
                throw new Error('Invalid list');
            }
            next.previous = previous;
            previous.next = next;
        }
    }
    touch(item, touch) {
        if (!this._head || !this._tail) {
            throw new Error('Invalid list');
        }
        if ((touch !== Touch.First && touch !== Touch.Last)) {
            return;
        }
        if (touch === Touch.First) {
            if (item === this._head) {
                return;
            }
            const next = item.next;
            const previous = item.previous;
            // Unlink the item
            if (item === this._tail) {
                // previous must be defined since item was not head but is tail
                // So there are more than on item in the map
                previous.next = undefined;
                this._tail = previous;
            }
            else {
                // Both next and previous are not undefined since item was neither head nor tail.
                next.previous = previous;
                previous.next = next;
            }
            // Insert the node at head
            item.previous = undefined;
            item.next = this._head;
            this._head.previous = item;
            this._head = item;
        }
        else if (touch === Touch.Last) {
            if (item === this._tail) {
                return;
            }
            const next = item.next;
            const previous = item.previous;
            // Unlink the item.
            if (item === this._head) {
                // next must be defined since item was not tail but is head
                // So there are more than on item in the map
                next.previous = undefined;
                this._head = next;
            }
            else {
                // Both next and previous are not undefined since item was neither head nor tail.
                next.previous = previous;
                previous.next = next;
            }
            item.next = undefined;
            item.previous = this._tail;
            this._tail.next = item;
            this._tail = item;
        }
    }
}
exports.LinkedMap = LinkedMap;


/***/ }),
/* 54 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __webpack_require__(55);
const os_1 = __webpack_require__(56);
const crypto_1 = __webpack_require__(57);
const net_1 = __webpack_require__(58);
const messageReader_1 = __webpack_require__(49);
const messageWriter_1 = __webpack_require__(51);
function generateRandomPipeName() {
    const randomSuffix = crypto_1.randomBytes(21).toString('hex');
    if (process.platform === 'win32') {
        return `\\\\.\\pipe\\vscode-jsonrpc-${randomSuffix}-sock`;
    }
    else {
        // Mac/Unix: use socket file
        return path_1.join(os_1.tmpdir(), `vscode-${randomSuffix}.sock`);
    }
}
exports.generateRandomPipeName = generateRandomPipeName;
function createClientPipeTransport(pipeName, encoding = 'utf-8') {
    let connectResolve;
    let connected = new Promise((resolve, _reject) => {
        connectResolve = resolve;
    });
    return new Promise((resolve, reject) => {
        let server = net_1.createServer((socket) => {
            server.close();
            connectResolve([
                new messageReader_1.SocketMessageReader(socket, encoding),
                new messageWriter_1.SocketMessageWriter(socket, encoding)
            ]);
        });
        server.on('error', reject);
        server.listen(pipeName, () => {
            server.removeListener('error', reject);
            resolve({
                onConnected: () => { return connected; }
            });
        });
    });
}
exports.createClientPipeTransport = createClientPipeTransport;
function createServerPipeTransport(pipeName, encoding = 'utf-8') {
    const socket = net_1.createConnection(pipeName);
    return [
        new messageReader_1.SocketMessageReader(socket, encoding),
        new messageWriter_1.SocketMessageWriter(socket, encoding)
    ];
}
exports.createServerPipeTransport = createServerPipeTransport;


/***/ }),
/* 55 */
/***/ (function(module, exports) {

module.exports = require("path");

/***/ }),
/* 56 */
/***/ (function(module, exports) {

module.exports = require("os");

/***/ }),
/* 57 */
/***/ (function(module, exports) {

module.exports = require("crypto");

/***/ }),
/* 58 */
/***/ (function(module, exports) {

module.exports = require("net");

/***/ }),
/* 59 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const net_1 = __webpack_require__(58);
const messageReader_1 = __webpack_require__(49);
const messageWriter_1 = __webpack_require__(51);
function createClientSocketTransport(port, encoding = 'utf-8') {
    let connectResolve;
    let connected = new Promise((resolve, _reject) => {
        connectResolve = resolve;
    });
    return new Promise((resolve, reject) => {
        let server = net_1.createServer((socket) => {
            server.close();
            connectResolve([
                new messageReader_1.SocketMessageReader(socket, encoding),
                new messageWriter_1.SocketMessageWriter(socket, encoding)
            ]);
        });
        server.on('error', reject);
        server.listen(port, '127.0.0.1', () => {
            server.removeListener('error', reject);
            resolve({
                onConnected: () => { return connected; }
            });
        });
    });
}
exports.createClientSocketTransport = createClientSocketTransport;
function createServerSocketTransport(port, encoding = 'utf-8') {
    const socket = net_1.createConnection(port, '127.0.0.1');
    return [
        new messageReader_1.SocketMessageReader(socket, encoding),
        new messageWriter_1.SocketMessageWriter(socket, encoding)
    ];
}
exports.createServerSocketTransport = createServerSocketTransport;


/***/ }),
/* 60 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Position", function() { return Position; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Range", function() { return Range; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Location", function() { return Location; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LocationLink", function() { return LocationLink; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return Color; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorInformation", function() { return ColorInformation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorPresentation", function() { return ColorPresentation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FoldingRangeKind", function() { return FoldingRangeKind; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FoldingRange", function() { return FoldingRange; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagnosticRelatedInformation", function() { return DiagnosticRelatedInformation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagnosticSeverity", function() { return DiagnosticSeverity; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagnosticTag", function() { return DiagnosticTag; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Diagnostic", function() { return Diagnostic; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Command", function() { return Command; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextEdit", function() { return TextEdit; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextDocumentEdit", function() { return TextDocumentEdit; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CreateFile", function() { return CreateFile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RenameFile", function() { return RenameFile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeleteFile", function() { return DeleteFile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WorkspaceEdit", function() { return WorkspaceEdit; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WorkspaceChange", function() { return WorkspaceChange; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextDocumentIdentifier", function() { return TextDocumentIdentifier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VersionedTextDocumentIdentifier", function() { return VersionedTextDocumentIdentifier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextDocumentItem", function() { return TextDocumentItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MarkupKind", function() { return MarkupKind; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MarkupContent", function() { return MarkupContent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompletionItemKind", function() { return CompletionItemKind; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InsertTextFormat", function() { return InsertTextFormat; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompletionItem", function() { return CompletionItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompletionList", function() { return CompletionList; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MarkedString", function() { return MarkedString; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Hover", function() { return Hover; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ParameterInformation", function() { return ParameterInformation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SignatureInformation", function() { return SignatureInformation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentHighlightKind", function() { return DocumentHighlightKind; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentHighlight", function() { return DocumentHighlight; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SymbolKind", function() { return SymbolKind; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SymbolInformation", function() { return SymbolInformation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentSymbol", function() { return DocumentSymbol; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CodeActionKind", function() { return CodeActionKind; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CodeActionContext", function() { return CodeActionContext; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CodeAction", function() { return CodeAction; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CodeLens", function() { return CodeLens; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormattingOptions", function() { return FormattingOptions; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentLink", function() { return DocumentLink; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionRange", function() { return SelectionRange; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EOL", function() { return EOL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextDocument", function() { return TextDocument; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextDocumentSaveReason", function() { return TextDocumentSaveReason; });
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

/**
 * The Position namespace provides helper functions to work with
 * [Position](#Position) literals.
 */
var Position;
(function (Position) {
    /**
     * Creates a new Position literal from the given line and character.
     * @param line The position's line.
     * @param character The position's character.
     */
    function create(line, character) {
        return { line: line, character: character };
    }
    Position.create = create;
    /**
     * Checks whether the given liternal conforms to the [Position](#Position) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.objectLiteral(candidate) && Is.number(candidate.line) && Is.number(candidate.character);
    }
    Position.is = is;
})(Position || (Position = {}));
/**
 * The Range namespace provides helper functions to work with
 * [Range](#Range) literals.
 */
var Range;
(function (Range) {
    function create(one, two, three, four) {
        if (Is.number(one) && Is.number(two) && Is.number(three) && Is.number(four)) {
            return { start: Position.create(one, two), end: Position.create(three, four) };
        }
        else if (Position.is(one) && Position.is(two)) {
            return { start: one, end: two };
        }
        else {
            throw new Error("Range#create called with invalid arguments[" + one + ", " + two + ", " + three + ", " + four + "]");
        }
    }
    Range.create = create;
    /**
     * Checks whether the given literal conforms to the [Range](#Range) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);
    }
    Range.is = is;
})(Range || (Range = {}));
/**
 * The Location namespace provides helper functions to work with
 * [Location](#Location) literals.
 */
var Location;
(function (Location) {
    /**
     * Creates a Location literal.
     * @param uri The location's uri.
     * @param range The location's range.
     */
    function create(uri, range) {
        return { uri: uri, range: range };
    }
    Location.create = create;
    /**
     * Checks whether the given literal conforms to the [Location](#Location) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));
    }
    Location.is = is;
})(Location || (Location = {}));
/**
 * The LocationLink namespace provides helper functions to work with
 * [LocationLink](#LocationLink) literals.
 */
var LocationLink;
(function (LocationLink) {
    /**
     * Creates a LocationLink literal.
     * @param targetUri The definition's uri.
     * @param targetRange The full range of the definition.
     * @param targetSelectionRange The span of the symbol definition at the target.
     * @param originSelectionRange The span of the symbol being defined in the originating source file.
     */
    function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {
        return { targetUri: targetUri, targetRange: targetRange, targetSelectionRange: targetSelectionRange, originSelectionRange: originSelectionRange };
    }
    LocationLink.create = create;
    /**
     * Checks whether the given literal conforms to the [LocationLink](#LocationLink) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri)
            && (Range.is(candidate.targetSelectionRange) || Is.undefined(candidate.targetSelectionRange))
            && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));
    }
    LocationLink.is = is;
})(LocationLink || (LocationLink = {}));
/**
 * The Color namespace provides helper functions to work with
 * [Color](#Color) literals.
 */
var Color;
(function (Color) {
    /**
     * Creates a new Color literal.
     */
    function create(red, green, blue, alpha) {
        return {
            red: red,
            green: green,
            blue: blue,
            alpha: alpha,
        };
    }
    Color.create = create;
    /**
     * Checks whether the given literal conforms to the [Color](#Color) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.number(candidate.red)
            && Is.number(candidate.green)
            && Is.number(candidate.blue)
            && Is.number(candidate.alpha);
    }
    Color.is = is;
})(Color || (Color = {}));
/**
 * The ColorInformation namespace provides helper functions to work with
 * [ColorInformation](#ColorInformation) literals.
 */
var ColorInformation;
(function (ColorInformation) {
    /**
     * Creates a new ColorInformation literal.
     */
    function create(range, color) {
        return {
            range: range,
            color: color,
        };
    }
    ColorInformation.create = create;
    /**
     * Checks whether the given literal conforms to the [ColorInformation](#ColorInformation) interface.
     */
    function is(value) {
        var candidate = value;
        return Range.is(candidate.range) && Color.is(candidate.color);
    }
    ColorInformation.is = is;
})(ColorInformation || (ColorInformation = {}));
/**
 * The Color namespace provides helper functions to work with
 * [ColorPresentation](#ColorPresentation) literals.
 */
var ColorPresentation;
(function (ColorPresentation) {
    /**
     * Creates a new ColorInformation literal.
     */
    function create(label, textEdit, additionalTextEdits) {
        return {
            label: label,
            textEdit: textEdit,
            additionalTextEdits: additionalTextEdits,
        };
    }
    ColorPresentation.create = create;
    /**
     * Checks whether the given literal conforms to the [ColorInformation](#ColorInformation) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.string(candidate.label)
            && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate))
            && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));
    }
    ColorPresentation.is = is;
})(ColorPresentation || (ColorPresentation = {}));
/**
 * Enum of known range kinds
 */
var FoldingRangeKind;
(function (FoldingRangeKind) {
    /**
     * Folding range for a comment
     */
    FoldingRangeKind["Comment"] = "comment";
    /**
     * Folding range for a imports or includes
     */
    FoldingRangeKind["Imports"] = "imports";
    /**
     * Folding range for a region (e.g. `#region`)
     */
    FoldingRangeKind["Region"] = "region";
})(FoldingRangeKind || (FoldingRangeKind = {}));
/**
 * The folding range namespace provides helper functions to work with
 * [FoldingRange](#FoldingRange) literals.
 */
var FoldingRange;
(function (FoldingRange) {
    /**
     * Creates a new FoldingRange literal.
     */
    function create(startLine, endLine, startCharacter, endCharacter, kind) {
        var result = {
            startLine: startLine,
            endLine: endLine
        };
        if (Is.defined(startCharacter)) {
            result.startCharacter = startCharacter;
        }
        if (Is.defined(endCharacter)) {
            result.endCharacter = endCharacter;
        }
        if (Is.defined(kind)) {
            result.kind = kind;
        }
        return result;
    }
    FoldingRange.create = create;
    /**
     * Checks whether the given literal conforms to the [FoldingRange](#FoldingRange) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.number(candidate.startLine) && Is.number(candidate.startLine)
            && (Is.undefined(candidate.startCharacter) || Is.number(candidate.startCharacter))
            && (Is.undefined(candidate.endCharacter) || Is.number(candidate.endCharacter))
            && (Is.undefined(candidate.kind) || Is.string(candidate.kind));
    }
    FoldingRange.is = is;
})(FoldingRange || (FoldingRange = {}));
/**
 * The DiagnosticRelatedInformation namespace provides helper functions to work with
 * [DiagnosticRelatedInformation](#DiagnosticRelatedInformation) literals.
 */
var DiagnosticRelatedInformation;
(function (DiagnosticRelatedInformation) {
    /**
     * Creates a new DiagnosticRelatedInformation literal.
     */
    function create(location, message) {
        return {
            location: location,
            message: message
        };
    }
    DiagnosticRelatedInformation.create = create;
    /**
     * Checks whether the given literal conforms to the [DiagnosticRelatedInformation](#DiagnosticRelatedInformation) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);
    }
    DiagnosticRelatedInformation.is = is;
})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));
/**
 * The diagnostic's severity.
 */
var DiagnosticSeverity;
(function (DiagnosticSeverity) {
    /**
     * Reports an error.
     */
    DiagnosticSeverity.Error = 1;
    /**
     * Reports a warning.
     */
    DiagnosticSeverity.Warning = 2;
    /**
     * Reports an information.
     */
    DiagnosticSeverity.Information = 3;
    /**
     * Reports a hint.
     */
    DiagnosticSeverity.Hint = 4;
})(DiagnosticSeverity || (DiagnosticSeverity = {}));
var DiagnosticTag;
(function (DiagnosticTag) {
    /**
     * Unused or unnecessary code.
     *
     * Clients are allowed to render diagnostics with this tag faded out instead of having
     * an error squiggle.
     */
    DiagnosticTag.Unnecessary = 1;
})(DiagnosticTag || (DiagnosticTag = {}));
/**
 * The Diagnostic namespace provides helper functions to work with
 * [Diagnostic](#Diagnostic) literals.
 */
var Diagnostic;
(function (Diagnostic) {
    /**
     * Creates a new Diagnostic literal.
     */
    function create(range, message, severity, code, source, relatedInformation) {
        var result = { range: range, message: message };
        if (Is.defined(severity)) {
            result.severity = severity;
        }
        if (Is.defined(code)) {
            result.code = code;
        }
        if (Is.defined(source)) {
            result.source = source;
        }
        if (Is.defined(relatedInformation)) {
            result.relatedInformation = relatedInformation;
        }
        return result;
    }
    Diagnostic.create = create;
    /**
     * Checks whether the given literal conforms to the [Diagnostic](#Diagnostic) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate)
            && Range.is(candidate.range)
            && Is.string(candidate.message)
            && (Is.number(candidate.severity) || Is.undefined(candidate.severity))
            && (Is.number(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code))
            && (Is.string(candidate.source) || Is.undefined(candidate.source))
            && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));
    }
    Diagnostic.is = is;
})(Diagnostic || (Diagnostic = {}));
/**
 * The Command namespace provides helper functions to work with
 * [Command](#Command) literals.
 */
var Command;
(function (Command) {
    /**
     * Creates a new Command literal.
     */
    function create(title, command) {
        var args = [];
        for (var _i = 2; _i < arguments.length; _i++) {
            args[_i - 2] = arguments[_i];
        }
        var result = { title: title, command: command };
        if (Is.defined(args) && args.length > 0) {
            result.arguments = args;
        }
        return result;
    }
    Command.create = create;
    /**
     * Checks whether the given literal conforms to the [Command](#Command) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);
    }
    Command.is = is;
})(Command || (Command = {}));
/**
 * The TextEdit namespace provides helper function to create replace,
 * insert and delete edits more easily.
 */
var TextEdit;
(function (TextEdit) {
    /**
     * Creates a replace text edit.
     * @param range The range of text to be replaced.
     * @param newText The new text.
     */
    function replace(range, newText) {
        return { range: range, newText: newText };
    }
    TextEdit.replace = replace;
    /**
     * Creates a insert text edit.
     * @param position The position to insert the text at.
     * @param newText The text to be inserted.
     */
    function insert(position, newText) {
        return { range: { start: position, end: position }, newText: newText };
    }
    TextEdit.insert = insert;
    /**
     * Creates a delete text edit.
     * @param range The range of text to be deleted.
     */
    function del(range) {
        return { range: range, newText: '' };
    }
    TextEdit.del = del;
    function is(value) {
        var candidate = value;
        return Is.objectLiteral(candidate)
            && Is.string(candidate.newText)
            && Range.is(candidate.range);
    }
    TextEdit.is = is;
})(TextEdit || (TextEdit = {}));
/**
 * The TextDocumentEdit namespace provides helper function to create
 * an edit that manipulates a text document.
 */
var TextDocumentEdit;
(function (TextDocumentEdit) {
    /**
     * Creates a new `TextDocumentEdit`
     */
    function create(textDocument, edits) {
        return { textDocument: textDocument, edits: edits };
    }
    TextDocumentEdit.create = create;
    function is(value) {
        var candidate = value;
        return Is.defined(candidate)
            && VersionedTextDocumentIdentifier.is(candidate.textDocument)
            && Array.isArray(candidate.edits);
    }
    TextDocumentEdit.is = is;
})(TextDocumentEdit || (TextDocumentEdit = {}));
var CreateFile;
(function (CreateFile) {
    function create(uri, options) {
        var result = {
            kind: 'create',
            uri: uri
        };
        if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {
            result.options = options;
        }
        return result;
    }
    CreateFile.create = create;
    function is(value) {
        var candidate = value;
        return candidate && candidate.kind === 'create' && Is.string(candidate.uri) &&
            (candidate.options === void 0 ||
                ((candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))));
    }
    CreateFile.is = is;
})(CreateFile || (CreateFile = {}));
var RenameFile;
(function (RenameFile) {
    function create(oldUri, newUri, options) {
        var result = {
            kind: 'rename',
            oldUri: oldUri,
            newUri: newUri
        };
        if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {
            result.options = options;
        }
        return result;
    }
    RenameFile.create = create;
    function is(value) {
        var candidate = value;
        return candidate && candidate.kind === 'rename' && Is.string(candidate.oldUri) && Is.string(candidate.newUri) &&
            (candidate.options === void 0 ||
                ((candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))));
    }
    RenameFile.is = is;
})(RenameFile || (RenameFile = {}));
var DeleteFile;
(function (DeleteFile) {
    function create(uri, options) {
        var result = {
            kind: 'delete',
            uri: uri
        };
        if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) {
            result.options = options;
        }
        return result;
    }
    DeleteFile.create = create;
    function is(value) {
        var candidate = value;
        return candidate && candidate.kind === 'delete' && Is.string(candidate.uri) &&
            (candidate.options === void 0 ||
                ((candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))));
    }
    DeleteFile.is = is;
})(DeleteFile || (DeleteFile = {}));
var WorkspaceEdit;
(function (WorkspaceEdit) {
    function is(value) {
        var candidate = value;
        return candidate &&
            (candidate.changes !== void 0 || candidate.documentChanges !== void 0) &&
            (candidate.documentChanges === void 0 || candidate.documentChanges.every(function (change) {
                if (Is.string(change.kind)) {
                    return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);
                }
                else {
                    return TextDocumentEdit.is(change);
                }
            }));
    }
    WorkspaceEdit.is = is;
})(WorkspaceEdit || (WorkspaceEdit = {}));
var TextEditChangeImpl = /** @class */ (function () {
    function TextEditChangeImpl(edits) {
        this.edits = edits;
    }
    TextEditChangeImpl.prototype.insert = function (position, newText) {
        this.edits.push(TextEdit.insert(position, newText));
    };
    TextEditChangeImpl.prototype.replace = function (range, newText) {
        this.edits.push(TextEdit.replace(range, newText));
    };
    TextEditChangeImpl.prototype.delete = function (range) {
        this.edits.push(TextEdit.del(range));
    };
    TextEditChangeImpl.prototype.add = function (edit) {
        this.edits.push(edit);
    };
    TextEditChangeImpl.prototype.all = function () {
        return this.edits;
    };
    TextEditChangeImpl.prototype.clear = function () {
        this.edits.splice(0, this.edits.length);
    };
    return TextEditChangeImpl;
}());
/**
 * A workspace change helps constructing changes to a workspace.
 */
var WorkspaceChange = /** @class */ (function () {
    function WorkspaceChange(workspaceEdit) {
        var _this = this;
        this._textEditChanges = Object.create(null);
        if (workspaceEdit) {
            this._workspaceEdit = workspaceEdit;
            if (workspaceEdit.documentChanges) {
                workspaceEdit.documentChanges.forEach(function (change) {
                    if (TextDocumentEdit.is(change)) {
                        var textEditChange = new TextEditChangeImpl(change.edits);
                        _this._textEditChanges[change.textDocument.uri] = textEditChange;
                    }
                });
            }
            else if (workspaceEdit.changes) {
                Object.keys(workspaceEdit.changes).forEach(function (key) {
                    var textEditChange = new TextEditChangeImpl(workspaceEdit.changes[key]);
                    _this._textEditChanges[key] = textEditChange;
                });
            }
        }
    }
    Object.defineProperty(WorkspaceChange.prototype, "edit", {
        /**
         * Returns the underlying [WorkspaceEdit](#WorkspaceEdit) literal
         * use to be returned from a workspace edit operation like rename.
         */
        get: function () {
            return this._workspaceEdit;
        },
        enumerable: true,
        configurable: true
    });
    WorkspaceChange.prototype.getTextEditChange = function (key) {
        if (VersionedTextDocumentIdentifier.is(key)) {
            if (!this._workspaceEdit) {
                this._workspaceEdit = {
                    documentChanges: []
                };
            }
            if (!this._workspaceEdit.documentChanges) {
                throw new Error('Workspace edit is not configured for document changes.');
            }
            var textDocument = key;
            var result = this._textEditChanges[textDocument.uri];
            if (!result) {
                var edits = [];
                var textDocumentEdit = {
                    textDocument: textDocument,
                    edits: edits
                };
                this._workspaceEdit.documentChanges.push(textDocumentEdit);
                result = new TextEditChangeImpl(edits);
                this._textEditChanges[textDocument.uri] = result;
            }
            return result;
        }
        else {
            if (!this._workspaceEdit) {
                this._workspaceEdit = {
                    changes: Object.create(null)
                };
            }
            if (!this._workspaceEdit.changes) {
                throw new Error('Workspace edit is not configured for normal text edit changes.');
            }
            var result = this._textEditChanges[key];
            if (!result) {
                var edits = [];
                this._workspaceEdit.changes[key] = edits;
                result = new TextEditChangeImpl(edits);
                this._textEditChanges[key] = result;
            }
            return result;
        }
    };
    WorkspaceChange.prototype.createFile = function (uri, options) {
        this.checkDocumentChanges();
        this._workspaceEdit.documentChanges.push(CreateFile.create(uri, options));
    };
    WorkspaceChange.prototype.renameFile = function (oldUri, newUri, options) {
        this.checkDocumentChanges();
        this._workspaceEdit.documentChanges.push(RenameFile.create(oldUri, newUri, options));
    };
    WorkspaceChange.prototype.deleteFile = function (uri, options) {
        this.checkDocumentChanges();
        this._workspaceEdit.documentChanges.push(DeleteFile.create(uri, options));
    };
    WorkspaceChange.prototype.checkDocumentChanges = function () {
        if (!this._workspaceEdit || !this._workspaceEdit.documentChanges) {
            throw new Error('Workspace edit is not configured for document changes.');
        }
    };
    return WorkspaceChange;
}());

/**
 * The TextDocumentIdentifier namespace provides helper functions to work with
 * [TextDocumentIdentifier](#TextDocumentIdentifier) literals.
 */
var TextDocumentIdentifier;
(function (TextDocumentIdentifier) {
    /**
     * Creates a new TextDocumentIdentifier literal.
     * @param uri The document's uri.
     */
    function create(uri) {
        return { uri: uri };
    }
    TextDocumentIdentifier.create = create;
    /**
     * Checks whether the given literal conforms to the [TextDocumentIdentifier](#TextDocumentIdentifier) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Is.string(candidate.uri);
    }
    TextDocumentIdentifier.is = is;
})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));
/**
 * The VersionedTextDocumentIdentifier namespace provides helper functions to work with
 * [VersionedTextDocumentIdentifier](#VersionedTextDocumentIdentifier) literals.
 */
var VersionedTextDocumentIdentifier;
(function (VersionedTextDocumentIdentifier) {
    /**
     * Creates a new VersionedTextDocumentIdentifier literal.
     * @param uri The document's uri.
     * @param uri The document's text.
     */
    function create(uri, version) {
        return { uri: uri, version: version };
    }
    VersionedTextDocumentIdentifier.create = create;
    /**
     * Checks whether the given literal conforms to the [VersionedTextDocumentIdentifier](#VersionedTextDocumentIdentifier) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.number(candidate.version));
    }
    VersionedTextDocumentIdentifier.is = is;
})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));
/**
 * The TextDocumentItem namespace provides helper functions to work with
 * [TextDocumentItem](#TextDocumentItem) literals.
 */
var TextDocumentItem;
(function (TextDocumentItem) {
    /**
     * Creates a new TextDocumentItem literal.
     * @param uri The document's uri.
     * @param languageId The document's language identifier.
     * @param version The document's version number.
     * @param text The document's text.
     */
    function create(uri, languageId, version, text) {
        return { uri: uri, languageId: languageId, version: version, text: text };
    }
    TextDocumentItem.create = create;
    /**
     * Checks whether the given literal conforms to the [TextDocumentItem](#TextDocumentItem) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.number(candidate.version) && Is.string(candidate.text);
    }
    TextDocumentItem.is = is;
})(TextDocumentItem || (TextDocumentItem = {}));
/**
 * Describes the content type that a client supports in various
 * result literals like `Hover`, `ParameterInfo` or `CompletionItem`.
 *
 * Please note that `MarkupKinds` must not start with a `$`. This kinds
 * are reserved for internal usage.
 */
var MarkupKind;
(function (MarkupKind) {
    /**
     * Plain text is supported as a content format
     */
    MarkupKind.PlainText = 'plaintext';
    /**
     * Markdown is supported as a content format
     */
    MarkupKind.Markdown = 'markdown';
})(MarkupKind || (MarkupKind = {}));
(function (MarkupKind) {
    /**
     * Checks whether the given value is a value of the [MarkupKind](#MarkupKind) type.
     */
    function is(value) {
        var candidate = value;
        return candidate === MarkupKind.PlainText || candidate === MarkupKind.Markdown;
    }
    MarkupKind.is = is;
})(MarkupKind || (MarkupKind = {}));
var MarkupContent;
(function (MarkupContent) {
    /**
     * Checks whether the given value conforms to the [MarkupContent](#MarkupContent) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);
    }
    MarkupContent.is = is;
})(MarkupContent || (MarkupContent = {}));
/**
 * The kind of a completion entry.
 */
var CompletionItemKind;
(function (CompletionItemKind) {
    CompletionItemKind.Text = 1;
    CompletionItemKind.Method = 2;
    CompletionItemKind.Function = 3;
    CompletionItemKind.Constructor = 4;
    CompletionItemKind.Field = 5;
    CompletionItemKind.Variable = 6;
    CompletionItemKind.Class = 7;
    CompletionItemKind.Interface = 8;
    CompletionItemKind.Module = 9;
    CompletionItemKind.Property = 10;
    CompletionItemKind.Unit = 11;
    CompletionItemKind.Value = 12;
    CompletionItemKind.Enum = 13;
    CompletionItemKind.Keyword = 14;
    CompletionItemKind.Snippet = 15;
    CompletionItemKind.Color = 16;
    CompletionItemKind.File = 17;
    CompletionItemKind.Reference = 18;
    CompletionItemKind.Folder = 19;
    CompletionItemKind.EnumMember = 20;
    CompletionItemKind.Constant = 21;
    CompletionItemKind.Struct = 22;
    CompletionItemKind.Event = 23;
    CompletionItemKind.Operator = 24;
    CompletionItemKind.TypeParameter = 25;
})(CompletionItemKind || (CompletionItemKind = {}));
/**
 * Defines whether the insert text in a completion item should be interpreted as
 * plain text or a snippet.
 */
var InsertTextFormat;
(function (InsertTextFormat) {
    /**
     * The primary text to be inserted is treated as a plain string.
     */
    InsertTextFormat.PlainText = 1;
    /**
     * The primary text to be inserted is treated as a snippet.
     *
     * A snippet can define tab stops and placeholders with `$1`, `$2`
     * and `${3:foo}`. `$0` defines the final tab stop, it defaults to
     * the end of the snippet. Placeholders with equal identifiers are linked,
     * that is typing in one will update others too.
     *
     * See also: https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/common/snippet.md
     */
    InsertTextFormat.Snippet = 2;
})(InsertTextFormat || (InsertTextFormat = {}));
/**
 * The CompletionItem namespace provides functions to deal with
 * completion items.
 */
var CompletionItem;
(function (CompletionItem) {
    /**
     * Create a completion item and seed it with a label.
     * @param label The completion item's label
     */
    function create(label) {
        return { label: label };
    }
    CompletionItem.create = create;
})(CompletionItem || (CompletionItem = {}));
/**
 * The CompletionList namespace provides functions to deal with
 * completion lists.
 */
var CompletionList;
(function (CompletionList) {
    /**
     * Creates a new completion list.
     *
     * @param items The completion items.
     * @param isIncomplete The list is not complete.
     */
    function create(items, isIncomplete) {
        return { items: items ? items : [], isIncomplete: !!isIncomplete };
    }
    CompletionList.create = create;
})(CompletionList || (CompletionList = {}));
var MarkedString;
(function (MarkedString) {
    /**
     * Creates a marked string from plain text.
     *
     * @param plainText The plain text.
     */
    function fromPlainText(plainText) {
        return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&"); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash
    }
    MarkedString.fromPlainText = fromPlainText;
    /**
     * Checks whether the given value conforms to the [MarkedString](#MarkedString) type.
     */
    function is(value) {
        var candidate = value;
        return Is.string(candidate) || (Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value));
    }
    MarkedString.is = is;
})(MarkedString || (MarkedString = {}));
var Hover;
(function (Hover) {
    /**
     * Checks whether the given value conforms to the [Hover](#Hover) interface.
     */
    function is(value) {
        var candidate = value;
        return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) ||
            MarkedString.is(candidate.contents) ||
            Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || Range.is(value.range));
    }
    Hover.is = is;
})(Hover || (Hover = {}));
/**
 * The ParameterInformation namespace provides helper functions to work with
 * [ParameterInformation](#ParameterInformation) literals.
 */
var ParameterInformation;
(function (ParameterInformation) {
    /**
     * Creates a new parameter information literal.
     *
     * @param label A label string.
     * @param documentation A doc string.
     */
    function create(label, documentation) {
        return documentation ? { label: label, documentation: documentation } : { label: label };
    }
    ParameterInformation.create = create;
    ;
})(ParameterInformation || (ParameterInformation = {}));
/**
 * The SignatureInformation namespace provides helper functions to work with
 * [SignatureInformation](#SignatureInformation) literals.
 */
var SignatureInformation;
(function (SignatureInformation) {
    function create(label, documentation) {
        var parameters = [];
        for (var _i = 2; _i < arguments.length; _i++) {
            parameters[_i - 2] = arguments[_i];
        }
        var result = { label: label };
        if (Is.defined(documentation)) {
            result.documentation = documentation;
        }
        if (Is.defined(parameters)) {
            result.parameters = parameters;
        }
        else {
            result.parameters = [];
        }
        return result;
    }
    SignatureInformation.create = create;
})(SignatureInformation || (SignatureInformation = {}));
/**
 * A document highlight kind.
 */
var DocumentHighlightKind;
(function (DocumentHighlightKind) {
    /**
     * A textual occurrence.
     */
    DocumentHighlightKind.Text = 1;
    /**
     * Read-access of a symbol, like reading a variable.
     */
    DocumentHighlightKind.Read = 2;
    /**
     * Write-access of a symbol, like writing to a variable.
     */
    DocumentHighlightKind.Write = 3;
})(DocumentHighlightKind || (DocumentHighlightKind = {}));
/**
 * DocumentHighlight namespace to provide helper functions to work with
 * [DocumentHighlight](#DocumentHighlight) literals.
 */
var DocumentHighlight;
(function (DocumentHighlight) {
    /**
     * Create a DocumentHighlight object.
     * @param range The range the highlight applies to.
     */
    function create(range, kind) {
        var result = { range: range };
        if (Is.number(kind)) {
            result.kind = kind;
        }
        return result;
    }
    DocumentHighlight.create = create;
})(DocumentHighlight || (DocumentHighlight = {}));
/**
 * A symbol kind.
 */
var SymbolKind;
(function (SymbolKind) {
    SymbolKind.File = 1;
    SymbolKind.Module = 2;
    SymbolKind.Namespace = 3;
    SymbolKind.Package = 4;
    SymbolKind.Class = 5;
    SymbolKind.Method = 6;
    SymbolKind.Property = 7;
    SymbolKind.Field = 8;
    SymbolKind.Constructor = 9;
    SymbolKind.Enum = 10;
    SymbolKind.Interface = 11;
    SymbolKind.Function = 12;
    SymbolKind.Variable = 13;
    SymbolKind.Constant = 14;
    SymbolKind.String = 15;
    SymbolKind.Number = 16;
    SymbolKind.Boolean = 17;
    SymbolKind.Array = 18;
    SymbolKind.Object = 19;
    SymbolKind.Key = 20;
    SymbolKind.Null = 21;
    SymbolKind.EnumMember = 22;
    SymbolKind.Struct = 23;
    SymbolKind.Event = 24;
    SymbolKind.Operator = 25;
    SymbolKind.TypeParameter = 26;
})(SymbolKind || (SymbolKind = {}));
var SymbolInformation;
(function (SymbolInformation) {
    /**
     * Creates a new symbol information literal.
     *
     * @param name The name of the symbol.
     * @param kind The kind of the symbol.
     * @param range The range of the location of the symbol.
     * @param uri The resource of the location of symbol, defaults to the current document.
     * @param containerName The name of the symbol containing the symbol.
     */
    function create(name, kind, range, uri, containerName) {
        var result = {
            name: name,
            kind: kind,
            location: { uri: uri, range: range }
        };
        if (containerName) {
            result.containerName = containerName;
        }
        return result;
    }
    SymbolInformation.create = create;
})(SymbolInformation || (SymbolInformation = {}));
/**
 * Represents programming constructs like variables, classes, interfaces etc.
 * that appear in a document. Document symbols can be hierarchical and they
 * have two ranges: one that encloses its definition and one that points to
 * its most interesting range, e.g. the range of an identifier.
 */
var DocumentSymbol = /** @class */ (function () {
    function DocumentSymbol() {
    }
    return DocumentSymbol;
}());

(function (DocumentSymbol) {
    /**
     * Creates a new symbol information literal.
     *
     * @param name The name of the symbol.
     * @param detail The detail of the symbol.
     * @param kind The kind of the symbol.
     * @param range The range of the symbol.
     * @param selectionRange The selectionRange of the symbol.
     * @param children Children of the symbol.
     */
    function create(name, detail, kind, range, selectionRange, children) {
        var result = {
            name: name,
            detail: detail,
            kind: kind,
            range: range,
            selectionRange: selectionRange
        };
        if (children !== void 0) {
            result.children = children;
        }
        return result;
    }
    DocumentSymbol.create = create;
    /**
     * Checks whether the given literal conforms to the [DocumentSymbol](#DocumentSymbol) interface.
     */
    function is(value) {
        var candidate = value;
        return candidate &&
            Is.string(candidate.name) && Is.number(candidate.kind) &&
            Range.is(candidate.range) && Range.is(candidate.selectionRange) &&
            (candidate.detail === void 0 || Is.string(candidate.detail)) &&
            (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) &&
            (candidate.children === void 0 || Array.isArray(candidate.children));
    }
    DocumentSymbol.is = is;
})(DocumentSymbol || (DocumentSymbol = {}));
/**
 * A set of predefined code action kinds
 */
var CodeActionKind;
(function (CodeActionKind) {
    /**
     * Base kind for quickfix actions: 'quickfix'
     */
    CodeActionKind.QuickFix = 'quickfix';
    /**
     * Base kind for refactoring actions: 'refactor'
     */
    CodeActionKind.Refactor = 'refactor';
    /**
     * Base kind for refactoring extraction actions: 'refactor.extract'
     *
     * Example extract actions:
     *
     * - Extract method
     * - Extract function
     * - Extract variable
     * - Extract interface from class
     * - ...
     */
    CodeActionKind.RefactorExtract = 'refactor.extract';
    /**
     * Base kind for refactoring inline actions: 'refactor.inline'
     *
     * Example inline actions:
     *
     * - Inline function
     * - Inline variable
     * - Inline constant
     * - ...
     */
    CodeActionKind.RefactorInline = 'refactor.inline';
    /**
     * Base kind for refactoring rewrite actions: 'refactor.rewrite'
     *
     * Example rewrite actions:
     *
     * - Convert JavaScript function to class
     * - Add or remove parameter
     * - Encapsulate field
     * - Make method static
     * - Move method to base class
     * - ...
     */
    CodeActionKind.RefactorRewrite = 'refactor.rewrite';
    /**
     * Base kind for source actions: `source`
     *
     * Source code actions apply to the entire file.
     */
    CodeActionKind.Source = 'source';
    /**
     * Base kind for an organize imports source action: `source.organizeImports`
     */
    CodeActionKind.SourceOrganizeImports = 'source.organizeImports';
})(CodeActionKind || (CodeActionKind = {}));
/**
 * The CodeActionContext namespace provides helper functions to work with
 * [CodeActionContext](#CodeActionContext) literals.
 */
var CodeActionContext;
(function (CodeActionContext) {
    /**
     * Creates a new CodeActionContext literal.
     */
    function create(diagnostics, only) {
        var result = { diagnostics: diagnostics };
        if (only !== void 0 && only !== null) {
            result.only = only;
        }
        return result;
    }
    CodeActionContext.create = create;
    /**
     * Checks whether the given literal conforms to the [CodeActionContext](#CodeActionContext) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string));
    }
    CodeActionContext.is = is;
})(CodeActionContext || (CodeActionContext = {}));
var CodeAction;
(function (CodeAction) {
    function create(title, commandOrEdit, kind) {
        var result = { title: title };
        if (Command.is(commandOrEdit)) {
            result.command = commandOrEdit;
        }
        else {
            result.edit = commandOrEdit;
        }
        if (kind !== void null) {
            result.kind = kind;
        }
        return result;
    }
    CodeAction.create = create;
    function is(value) {
        var candidate = value;
        return candidate && Is.string(candidate.title) &&
            (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) &&
            (candidate.kind === void 0 || Is.string(candidate.kind)) &&
            (candidate.edit !== void 0 || candidate.command !== void 0) &&
            (candidate.command === void 0 || Command.is(candidate.command)) &&
            (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit));
    }
    CodeAction.is = is;
})(CodeAction || (CodeAction = {}));
/**
 * The CodeLens namespace provides helper functions to work with
 * [CodeLens](#CodeLens) literals.
 */
var CodeLens;
(function (CodeLens) {
    /**
     * Creates a new CodeLens literal.
     */
    function create(range, data) {
        var result = { range: range };
        if (Is.defined(data))
            result.data = data;
        return result;
    }
    CodeLens.create = create;
    /**
     * Checks whether the given literal conforms to the [CodeLens](#CodeLens) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));
    }
    CodeLens.is = is;
})(CodeLens || (CodeLens = {}));
/**
 * The FormattingOptions namespace provides helper functions to work with
 * [FormattingOptions](#FormattingOptions) literals.
 */
var FormattingOptions;
(function (FormattingOptions) {
    /**
     * Creates a new FormattingOptions literal.
     */
    function create(tabSize, insertSpaces) {
        return { tabSize: tabSize, insertSpaces: insertSpaces };
    }
    FormattingOptions.create = create;
    /**
     * Checks whether the given literal conforms to the [FormattingOptions](#FormattingOptions) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Is.number(candidate.tabSize) && Is.boolean(candidate.insertSpaces);
    }
    FormattingOptions.is = is;
})(FormattingOptions || (FormattingOptions = {}));
/**
 * A document link is a range in a text document that links to an internal or external resource, like another
 * text document or a web site.
 */
var DocumentLink = /** @class */ (function () {
    function DocumentLink() {
    }
    return DocumentLink;
}());

/**
 * The DocumentLink namespace provides helper functions to work with
 * [DocumentLink](#DocumentLink) literals.
 */
(function (DocumentLink) {
    /**
     * Creates a new DocumentLink literal.
     */
    function create(range, target, data) {
        return { range: range, target: target, data: data };
    }
    DocumentLink.create = create;
    /**
     * Checks whether the given literal conforms to the [DocumentLink](#DocumentLink) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));
    }
    DocumentLink.is = is;
})(DocumentLink || (DocumentLink = {}));
/**
 * The SelectionRange namespace provides helper function to work with
 * SelectionRange literals.
 */
var SelectionRange;
(function (SelectionRange) {
    /**
     * Creates a new SelectionRange
     * @param range the range.
     * @param parent an optional parent.
     */
    function create(range, parent) {
        return { range: range, parent: parent };
    }
    SelectionRange.create = create;
    function is(value) {
        var candidate = value;
        return candidate !== undefined && Range.is(candidate.range) && (candidate.parent === undefined || SelectionRange.is(candidate.parent));
    }
    SelectionRange.is = is;
})(SelectionRange || (SelectionRange = {}));
var EOL = ['\n', '\r\n', '\r'];
var TextDocument;
(function (TextDocument) {
    /**
     * Creates a new ITextDocument literal from the given uri and content.
     * @param uri The document's uri.
     * @param languageId  The document's language Id.
     * @param content The document's content.
     */
    function create(uri, languageId, version, content) {
        return new FullTextDocument(uri, languageId, version, content);
    }
    TextDocument.create = create;
    /**
     * Checks whether the given literal conforms to the [ITextDocument](#ITextDocument) interface.
     */
    function is(value) {
        var candidate = value;
        return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.number(candidate.lineCount)
            && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;
    }
    TextDocument.is = is;
    function applyEdits(document, edits) {
        var text = document.getText();
        var sortedEdits = mergeSort(edits, function (a, b) {
            var diff = a.range.start.line - b.range.start.line;
            if (diff === 0) {
                return a.range.start.character - b.range.start.character;
            }
            return diff;
        });
        var lastModifiedOffset = text.length;
        for (var i = sortedEdits.length - 1; i >= 0; i--) {
            var e = sortedEdits[i];
            var startOffset = document.offsetAt(e.range.start);
            var endOffset = document.offsetAt(e.range.end);
            if (endOffset <= lastModifiedOffset) {
                text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);
            }
            else {
                throw new Error('Overlapping edit');
            }
            lastModifiedOffset = startOffset;
        }
        return text;
    }
    TextDocument.applyEdits = applyEdits;
    function mergeSort(data, compare) {
        if (data.length <= 1) {
            // sorted
            return data;
        }
        var p = (data.length / 2) | 0;
        var left = data.slice(0, p);
        var right = data.slice(p);
        mergeSort(left, compare);
        mergeSort(right, compare);
        var leftIdx = 0;
        var rightIdx = 0;
        var i = 0;
        while (leftIdx < left.length && rightIdx < right.length) {
            var ret = compare(left[leftIdx], right[rightIdx]);
            if (ret <= 0) {
                // smaller_equal -> take left to preserve order
                data[i++] = left[leftIdx++];
            }
            else {
                // greater -> take right
                data[i++] = right[rightIdx++];
            }
        }
        while (leftIdx < left.length) {
            data[i++] = left[leftIdx++];
        }
        while (rightIdx < right.length) {
            data[i++] = right[rightIdx++];
        }
        return data;
    }
})(TextDocument || (TextDocument = {}));
/**
 * Represents reasons why a text document is saved.
 */
var TextDocumentSaveReason;
(function (TextDocumentSaveReason) {
    /**
     * Manually triggered, e.g. by the user pressing save, by starting debugging,
     * or by an API call.
     */
    TextDocumentSaveReason.Manual = 1;
    /**
     * Automatic after a delay.
     */
    TextDocumentSaveReason.AfterDelay = 2;
    /**
     * When the editor lost focus.
     */
    TextDocumentSaveReason.FocusOut = 3;
})(TextDocumentSaveReason || (TextDocumentSaveReason = {}));
var FullTextDocument = /** @class */ (function () {
    function FullTextDocument(uri, languageId, version, content) {
        this._uri = uri;
        this._languageId = languageId;
        this._version = version;
        this._content = content;
        this._lineOffsets = null;
    }
    Object.defineProperty(FullTextDocument.prototype, "uri", {
        get: function () {
            return this._uri;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(FullTextDocument.prototype, "languageId", {
        get: function () {
            return this._languageId;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(FullTextDocument.prototype, "version", {
        get: function () {
            return this._version;
        },
        enumerable: true,
        configurable: true
    });
    FullTextDocument.prototype.getText = function (range) {
        if (range) {
            var start = this.offsetAt(range.start);
            var end = this.offsetAt(range.end);
            return this._content.substring(start, end);
        }
        return this._content;
    };
    FullTextDocument.prototype.update = function (event, version) {
        this._content = event.text;
        this._version = version;
        this._lineOffsets = null;
    };
    FullTextDocument.prototype.getLineOffsets = function () {
        if (this._lineOffsets === null) {
            var lineOffsets = [];
            var text = this._content;
            var isLineStart = true;
            for (var i = 0; i < text.length; i++) {
                if (isLineStart) {
                    lineOffsets.push(i);
                    isLineStart = false;
                }
                var ch = text.charAt(i);
                isLineStart = (ch === '\r' || ch === '\n');
                if (ch === '\r' && i + 1 < text.length && text.charAt(i + 1) === '\n') {
                    i++;
                }
            }
            if (isLineStart && text.length > 0) {
                lineOffsets.push(text.length);
            }
            this._lineOffsets = lineOffsets;
        }
        return this._lineOffsets;
    };
    FullTextDocument.prototype.positionAt = function (offset) {
        offset = Math.max(Math.min(offset, this._content.length), 0);
        var lineOffsets = this.getLineOffsets();
        var low = 0, high = lineOffsets.length;
        if (high === 0) {
            return Position.create(0, offset);
        }
        while (low < high) {
            var mid = Math.floor((low + high) / 2);
            if (lineOffsets[mid] > offset) {
                high = mid;
            }
            else {
                low = mid + 1;
            }
        }
        // low is the least x for which the line offset is larger than the current offset
        // or array.length if no line offset is larger than the current offset
        var line = low - 1;
        return Position.create(line, offset - lineOffsets[line]);
    };
    FullTextDocument.prototype.offsetAt = function (position) {
        var lineOffsets = this.getLineOffsets();
        if (position.line >= lineOffsets.length) {
            return this._content.length;
        }
        else if (position.line < 0) {
            return 0;
        }
        var lineOffset = lineOffsets[position.line];
        var nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length;
        return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);
    };
    Object.defineProperty(FullTextDocument.prototype, "lineCount", {
        get: function () {
            return this.getLineOffsets().length;
        },
        enumerable: true,
        configurable: true
    });
    return FullTextDocument;
}());
var Is;
(function (Is) {
    var toString = Object.prototype.toString;
    function defined(value) {
        return typeof value !== 'undefined';
    }
    Is.defined = defined;
    function undefined(value) {
        return typeof value === 'undefined';
    }
    Is.undefined = undefined;
    function boolean(value) {
        return value === true || value === false;
    }
    Is.boolean = boolean;
    function string(value) {
        return toString.call(value) === '[object String]';
    }
    Is.string = string;
    function number(value) {
        return toString.call(value) === '[object Number]';
    }
    Is.number = number;
    function func(value) {
        return toString.call(value) === '[object Function]';
    }
    Is.func = func;
    function objectLiteral(value) {
        // Strictly speaking class instances pass this check as well. Since the LSP
        // doesn't use classes we ignore this for now. If we do we need to add something
        // like this: `Object.getPrototypeOf(Object.getPrototypeOf(x)) === null`
        return value !== null && typeof value === 'object';
    }
    Is.objectLiteral = objectLiteral;
    function typedArray(value, check) {
        return Array.isArray(value) && value.every(check);
    }
    Is.typedArray = typedArray;
})(Is || (Is = {}));


/***/ }),
/* 61 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const Is = __webpack_require__(62);
const vscode_jsonrpc_1 = __webpack_require__(46);
const protocol_implementation_1 = __webpack_require__(63);
exports.ImplementationRequest = protocol_implementation_1.ImplementationRequest;
const protocol_typeDefinition_1 = __webpack_require__(64);
exports.TypeDefinitionRequest = protocol_typeDefinition_1.TypeDefinitionRequest;
const protocol_workspaceFolders_1 = __webpack_require__(65);
exports.WorkspaceFoldersRequest = protocol_workspaceFolders_1.WorkspaceFoldersRequest;
exports.DidChangeWorkspaceFoldersNotification = protocol_workspaceFolders_1.DidChangeWorkspaceFoldersNotification;
const protocol_configuration_1 = __webpack_require__(66);
exports.ConfigurationRequest = protocol_configuration_1.ConfigurationRequest;
const protocol_colorProvider_1 = __webpack_require__(67);
exports.DocumentColorRequest = protocol_colorProvider_1.DocumentColorRequest;
exports.ColorPresentationRequest = protocol_colorProvider_1.ColorPresentationRequest;
const protocol_foldingRange_1 = __webpack_require__(68);
exports.FoldingRangeRequest = protocol_foldingRange_1.FoldingRangeRequest;
const protocol_declaration_1 = __webpack_require__(69);
exports.DeclarationRequest = protocol_declaration_1.DeclarationRequest;
const protocol_selectionRange_1 = __webpack_require__(70);
exports.SelectionRangeRequest = protocol_selectionRange_1.SelectionRangeRequest;
// @ts-ignore: to avoid inlining LocatioLink as dynamic import
let __noDynamicImport;
var DocumentFilter;
(function (DocumentFilter) {
    function is(value) {
        let candidate = value;
        return Is.string(candidate.language) || Is.string(candidate.scheme) || Is.string(candidate.pattern);
    }
    DocumentFilter.is = is;
})(DocumentFilter = exports.DocumentFilter || (exports.DocumentFilter = {}));
/**
 * The `client/registerCapability` request is sent from the server to the client to register a new capability
 * handler on the client side.
 */
var RegistrationRequest;
(function (RegistrationRequest) {
    RegistrationRequest.type = new vscode_jsonrpc_1.RequestType('client/registerCapability');
})(RegistrationRequest = exports.RegistrationRequest || (exports.RegistrationRequest = {}));
/**
 * The `client/unregisterCapability` request is sent from the server to the client to unregister a previously registered capability
 * handler on the client side.
 */
var UnregistrationRequest;
(function (UnregistrationRequest) {
    UnregistrationRequest.type = new vscode_jsonrpc_1.RequestType('client/unregisterCapability');
})(UnregistrationRequest = exports.UnregistrationRequest || (exports.UnregistrationRequest = {}));
var ResourceOperationKind;
(function (ResourceOperationKind) {
    /**
     * Supports creating new files and folders.
     */
    ResourceOperationKind.Create = 'create';
    /**
     * Supports renaming existing files and folders.
     */
    ResourceOperationKind.Rename = 'rename';
    /**
     * Supports deleting existing files and folders.
     */
    ResourceOperationKind.Delete = 'delete';
})(ResourceOperationKind = exports.ResourceOperationKind || (exports.ResourceOperationKind = {}));
var FailureHandlingKind;
(function (FailureHandlingKind) {
    /**
     * Applying the workspace change is simply aborted if one of the changes provided
     * fails. All operations executed before the failing operation stay executed.
     */
    FailureHandlingKind.Abort = 'abort';
    /**
     * All operations are executed transactional. That means they either all
     * succeed or no changes at all are applied to the workspace.
     */
    FailureHandlingKind.Transactional = 'transactional';
    /**
     * If the workspace edit contains only textual file changes they are executed transactional.
     * If resource changes (create, rename or delete file) are part of the change the failure
     * handling startegy is abort.
     */
    FailureHandlingKind.TextOnlyTransactional = 'textOnlyTransactional';
    /**
     * The client tries to undo the operations already executed. But there is no
     * guaruntee that this is succeeding.
     */
    FailureHandlingKind.Undo = 'undo';
})(FailureHandlingKind = exports.FailureHandlingKind || (exports.FailureHandlingKind = {}));
/**
 * Defines how the host (editor) should sync
 * document changes to the language server.
 */
var TextDocumentSyncKind;
(function (TextDocumentSyncKind) {
    /**
     * Documents should not be synced at all.
     */
    TextDocumentSyncKind.None = 0;
    /**
     * Documents are synced by always sending the full content
     * of the document.
     */
    TextDocumentSyncKind.Full = 1;
    /**
     * Documents are synced by sending the full content on open.
     * After that only incremental updates to the document are
     * send.
     */
    TextDocumentSyncKind.Incremental = 2;
})(TextDocumentSyncKind = exports.TextDocumentSyncKind || (exports.TextDocumentSyncKind = {}));
/**
 * The initialize request is sent from the client to the server.
 * It is sent once as the request after starting up the server.
 * The requests parameter is of type [InitializeParams](#InitializeParams)
 * the response if of type [InitializeResult](#InitializeResult) of a Thenable that
 * resolves to such.
 */
var InitializeRequest;
(function (InitializeRequest) {
    InitializeRequest.type = new vscode_jsonrpc_1.RequestType('initialize');
})(InitializeRequest = exports.InitializeRequest || (exports.InitializeRequest = {}));
/**
 * Known error codes for an `InitializeError`;
 */
var InitializeError;
(function (InitializeError) {
    /**
     * If the protocol version provided by the client can't be handled by the server.
     * @deprecated This initialize error got replaced by client capabilities. There is
     * no version handshake in version 3.0x
     */
    InitializeError.unknownProtocolVersion = 1;
})(InitializeError = exports.InitializeError || (exports.InitializeError = {}));
/**
 * The intialized notification is sent from the client to the
 * server after the client is fully initialized and the server
 * is allowed to send requests from the server to the client.
 */
var InitializedNotification;
(function (InitializedNotification) {
    InitializedNotification.type = new vscode_jsonrpc_1.NotificationType('initialized');
})(InitializedNotification = exports.InitializedNotification || (exports.InitializedNotification = {}));
//---- Shutdown Method ----
/**
 * A shutdown request is sent from the client to the server.
 * It is sent once when the client decides to shutdown the
 * server. The only notification that is sent after a shutdown request
 * is the exit event.
 */
var ShutdownRequest;
(function (ShutdownRequest) {
    ShutdownRequest.type = new vscode_jsonrpc_1.RequestType0('shutdown');
})(ShutdownRequest = exports.ShutdownRequest || (exports.ShutdownRequest = {}));
//---- Exit Notification ----
/**
 * The exit event is sent from the client to the server to
 * ask the server to exit its process.
 */
var ExitNotification;
(function (ExitNotification) {
    ExitNotification.type = new vscode_jsonrpc_1.NotificationType0('exit');
})(ExitNotification = exports.ExitNotification || (exports.ExitNotification = {}));
//---- Configuration notification ----
/**
 * The configuration change notification is sent from the client to the server
 * when the client's configuration has changed. The notification contains
 * the changed configuration as defined by the language client.
 */
var DidChangeConfigurationNotification;
(function (DidChangeConfigurationNotification) {
    DidChangeConfigurationNotification.type = new vscode_jsonrpc_1.NotificationType('workspace/didChangeConfiguration');
})(DidChangeConfigurationNotification = exports.DidChangeConfigurationNotification || (exports.DidChangeConfigurationNotification = {}));
//---- Message show and log notifications ----
/**
 * The message type
 */
var MessageType;
(function (MessageType) {
    /**
     * An error message.
     */
    MessageType.Error = 1;
    /**
     * A warning message.
     */
    MessageType.Warning = 2;
    /**
     * An information message.
     */
    MessageType.Info = 3;
    /**
     * A log message.
     */
    MessageType.Log = 4;
})(MessageType = exports.MessageType || (exports.MessageType = {}));
/**
 * The show message notification is sent from a server to a client to ask
 * the client to display a particular message in the user interface.
 */
var ShowMessageNotification;
(function (ShowMessageNotification) {
    ShowMessageNotification.type = new vscode_jsonrpc_1.NotificationType('window/showMessage');
})(ShowMessageNotification = exports.ShowMessageNotification || (exports.ShowMessageNotification = {}));
/**
 * The show message request is sent from the server to the client to show a message
 * and a set of options actions to the user.
 */
var ShowMessageRequest;
(function (ShowMessageRequest) {
    ShowMessageRequest.type = new vscode_jsonrpc_1.RequestType('window/showMessageRequest');
})(ShowMessageRequest = exports.ShowMessageRequest || (exports.ShowMessageRequest = {}));
/**
 * The log message notification is sent from the server to the client to ask
 * the client to log a particular message.
 */
var LogMessageNotification;
(function (LogMessageNotification) {
    LogMessageNotification.type = new vscode_jsonrpc_1.NotificationType('window/logMessage');
})(LogMessageNotification = exports.LogMessageNotification || (exports.LogMessageNotification = {}));
//---- Telemetry notification
/**
 * The telemetry event notification is sent from the server to the client to ask
 * the client to log telemetry data.
 */
var TelemetryEventNotification;
(function (TelemetryEventNotification) {
    TelemetryEventNotification.type = new vscode_jsonrpc_1.NotificationType('telemetry/event');
})(TelemetryEventNotification = exports.TelemetryEventNotification || (exports.TelemetryEventNotification = {}));
/**
 * The document open notification is sent from the client to the server to signal
 * newly opened text documents. The document's truth is now managed by the client
 * and the server must not try to read the document's truth using the document's
 * uri. Open in this sense means it is managed by the client. It doesn't necessarily
 * mean that its content is presented in an editor. An open notification must not
 * be sent more than once without a corresponding close notification send before.
 * This means open and close notification must be balanced and the max open count
 * is one.
 */
var DidOpenTextDocumentNotification;
(function (DidOpenTextDocumentNotification) {
    DidOpenTextDocumentNotification.type = new vscode_jsonrpc_1.NotificationType('textDocument/didOpen');
})(DidOpenTextDocumentNotification = exports.DidOpenTextDocumentNotification || (exports.DidOpenTextDocumentNotification = {}));
/**
 * The document change notification is sent from the client to the server to signal
 * changes to a text document.
 */
var DidChangeTextDocumentNotification;
(function (DidChangeTextDocumentNotification) {
    DidChangeTextDocumentNotification.type = new vscode_jsonrpc_1.NotificationType('textDocument/didChange');
})(DidChangeTextDocumentNotification = exports.DidChangeTextDocumentNotification || (exports.DidChangeTextDocumentNotification = {}));
/**
 * The document close notification is sent from the client to the server when
 * the document got closed in the client. The document's truth now exists where
 * the document's uri points to (e.g. if the document's uri is a file uri the
 * truth now exists on disk). As with the open notification the close notification
 * is about managing the document's content. Receiving a close notification
 * doesn't mean that the document was open in an editor before. A close
 * notification requires a previous open notification to be sent.
 */
var DidCloseTextDocumentNotification;
(function (DidCloseTextDocumentNotification) {
    DidCloseTextDocumentNotification.type = new vscode_jsonrpc_1.NotificationType('textDocument/didClose');
})(DidCloseTextDocumentNotification = exports.DidCloseTextDocumentNotification || (exports.DidCloseTextDocumentNotification = {}));
/**
 * The document save notification is sent from the client to the server when
 * the document got saved in the client.
 */
var DidSaveTextDocumentNotification;
(function (DidSaveTextDocumentNotification) {
    DidSaveTextDocumentNotification.type = new vscode_jsonrpc_1.NotificationType('textDocument/didSave');
})(DidSaveTextDocumentNotification = exports.DidSaveTextDocumentNotification || (exports.DidSaveTextDocumentNotification = {}));
/**
 * A document will save notification is sent from the client to the server before
 * the document is actually saved.
 */
var WillSaveTextDocumentNotification;
(function (WillSaveTextDocumentNotification) {
    WillSaveTextDocumentNotification.type = new vscode_jsonrpc_1.NotificationType('textDocument/willSave');
})(WillSaveTextDocumentNotification = exports.WillSaveTextDocumentNotification || (exports.WillSaveTextDocumentNotification = {}));
/**
 * A document will save request is sent from the client to the server before
 * the document is actually saved. The request can return an array of TextEdits
 * which will be applied to the text document before it is saved. Please note that
 * clients might drop results if computing the text edits took too long or if a
 * server constantly fails on this request. This is done to keep the save fast and
 * reliable.
 */
var WillSaveTextDocumentWaitUntilRequest;
(function (WillSaveTextDocumentWaitUntilRequest) {
    WillSaveTextDocumentWaitUntilRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/willSaveWaitUntil');
})(WillSaveTextDocumentWaitUntilRequest = exports.WillSaveTextDocumentWaitUntilRequest || (exports.WillSaveTextDocumentWaitUntilRequest = {}));
//---- File eventing ----
/**
 * The watched files notification is sent from the client to the server when
 * the client detects changes to file watched by the language client.
 */
var DidChangeWatchedFilesNotification;
(function (DidChangeWatchedFilesNotification) {
    DidChangeWatchedFilesNotification.type = new vscode_jsonrpc_1.NotificationType('workspace/didChangeWatchedFiles');
})(DidChangeWatchedFilesNotification = exports.DidChangeWatchedFilesNotification || (exports.DidChangeWatchedFilesNotification = {}));
/**
 * The file event type
 */
var FileChangeType;
(function (FileChangeType) {
    /**
     * The file got created.
     */
    FileChangeType.Created = 1;
    /**
     * The file got changed.
     */
    FileChangeType.Changed = 2;
    /**
     * The file got deleted.
     */
    FileChangeType.Deleted = 3;
})(FileChangeType = exports.FileChangeType || (exports.FileChangeType = {}));
var WatchKind;
(function (WatchKind) {
    /**
     * Interested in create events.
     */
    WatchKind.Create = 1;
    /**
     * Interested in change events
     */
    WatchKind.Change = 2;
    /**
     * Interested in delete events
     */
    WatchKind.Delete = 4;
})(WatchKind = exports.WatchKind || (exports.WatchKind = {}));
//---- Diagnostic notification ----
/**
 * Diagnostics notification are sent from the server to the client to signal
 * results of validation runs.
 */
var PublishDiagnosticsNotification;
(function (PublishDiagnosticsNotification) {
    PublishDiagnosticsNotification.type = new vscode_jsonrpc_1.NotificationType('textDocument/publishDiagnostics');
})(PublishDiagnosticsNotification = exports.PublishDiagnosticsNotification || (exports.PublishDiagnosticsNotification = {}));
/**
 * How a completion was triggered
 */
var CompletionTriggerKind;
(function (CompletionTriggerKind) {
    /**
     * Completion was triggered by typing an identifier (24x7 code
     * complete), manual invocation (e.g Ctrl+Space) or via API.
     */
    CompletionTriggerKind.Invoked = 1;
    /**
     * Completion was triggered by a trigger character specified by
     * the `triggerCharacters` properties of the `CompletionRegistrationOptions`.
     */
    CompletionTriggerKind.TriggerCharacter = 2;
    /**
     * Completion was re-triggered as current completion list is incomplete
     */
    CompletionTriggerKind.TriggerForIncompleteCompletions = 3;
})(CompletionTriggerKind = exports.CompletionTriggerKind || (exports.CompletionTriggerKind = {}));
/**
 * Request to request completion at a given text document position. The request's
 * parameter is of type [TextDocumentPosition](#TextDocumentPosition) the response
 * is of type [CompletionItem[]](#CompletionItem) or [CompletionList](#CompletionList)
 * or a Thenable that resolves to such.
 *
 * The request can delay the computation of the [`detail`](#CompletionItem.detail)
 * and [`documentation`](#CompletionItem.documentation) properties to the `completionItem/resolve`
 * request. However, properties that are needed for the initial sorting and filtering, like `sortText`,
 * `filterText`, `insertText`, and `textEdit`, must not be changed during resolve.
 */
var CompletionRequest;
(function (CompletionRequest) {
    CompletionRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/completion');
})(CompletionRequest = exports.CompletionRequest || (exports.CompletionRequest = {}));
/**
 * Request to resolve additional information for a given completion item.The request's
 * parameter is of type [CompletionItem](#CompletionItem) the response
 * is of type [CompletionItem](#CompletionItem) or a Thenable that resolves to such.
 */
var CompletionResolveRequest;
(function (CompletionResolveRequest) {
    CompletionResolveRequest.type = new vscode_jsonrpc_1.RequestType('completionItem/resolve');
})(CompletionResolveRequest = exports.CompletionResolveRequest || (exports.CompletionResolveRequest = {}));
//---- Hover Support -------------------------------
/**
 * Request to request hover information at a given text document position. The request's
 * parameter is of type [TextDocumentPosition](#TextDocumentPosition) the response is of
 * type [Hover](#Hover) or a Thenable that resolves to such.
 */
var HoverRequest;
(function (HoverRequest) {
    HoverRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/hover');
})(HoverRequest = exports.HoverRequest || (exports.HoverRequest = {}));
var SignatureHelpRequest;
(function (SignatureHelpRequest) {
    SignatureHelpRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/signatureHelp');
})(SignatureHelpRequest = exports.SignatureHelpRequest || (exports.SignatureHelpRequest = {}));
//---- Goto Definition -------------------------------------
/**
 * A request to resolve the definition location of a symbol at a given text
 * document position. The request's parameter is of type [TextDocumentPosition]
 * (#TextDocumentPosition) the response is of either type [Definition](#Definition)
 * or a typed array of [DefinitionLink](#DefinitionLink) or a Thenable that resolves
 * to such.
 */
var DefinitionRequest;
(function (DefinitionRequest) {
    DefinitionRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/definition');
})(DefinitionRequest = exports.DefinitionRequest || (exports.DefinitionRequest = {}));
/**
 * A request to resolve project-wide references for the symbol denoted
 * by the given text document position. The request's parameter is of
 * type [ReferenceParams](#ReferenceParams) the response is of type
 * [Location[]](#Location) or a Thenable that resolves to such.
 */
var ReferencesRequest;
(function (ReferencesRequest) {
    ReferencesRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/references');
})(ReferencesRequest = exports.ReferencesRequest || (exports.ReferencesRequest = {}));
//---- Document Highlight ----------------------------------
/**
 * Request to resolve a [DocumentHighlight](#DocumentHighlight) for a given
 * text document position. The request's parameter is of type [TextDocumentPosition]
 * (#TextDocumentPosition) the request response is of type [DocumentHighlight[]]
 * (#DocumentHighlight) or a Thenable that resolves to such.
 */
var DocumentHighlightRequest;
(function (DocumentHighlightRequest) {
    DocumentHighlightRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/documentHighlight');
})(DocumentHighlightRequest = exports.DocumentHighlightRequest || (exports.DocumentHighlightRequest = {}));
//---- Document Symbol Provider ---------------------------
/**
 * A request to list all symbols found in a given text document. The request's
 * parameter is of type [TextDocumentIdentifier](#TextDocumentIdentifier) the
 * response is of type [SymbolInformation[]](#SymbolInformation) or a Thenable
 * that resolves to such.
 */
var DocumentSymbolRequest;
(function (DocumentSymbolRequest) {
    DocumentSymbolRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/documentSymbol');
})(DocumentSymbolRequest = exports.DocumentSymbolRequest || (exports.DocumentSymbolRequest = {}));
//---- Workspace Symbol Provider ---------------------------
/**
 * A request to list project-wide symbols matching the query string given
 * by the [WorkspaceSymbolParams](#WorkspaceSymbolParams). The response is
 * of type [SymbolInformation[]](#SymbolInformation) or a Thenable that
 * resolves to such.
 */
var WorkspaceSymbolRequest;
(function (WorkspaceSymbolRequest) {
    WorkspaceSymbolRequest.type = new vscode_jsonrpc_1.RequestType('workspace/symbol');
})(WorkspaceSymbolRequest = exports.WorkspaceSymbolRequest || (exports.WorkspaceSymbolRequest = {}));
/**
 * A request to provide commands for the given text document and range.
 */
var CodeActionRequest;
(function (CodeActionRequest) {
    CodeActionRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/codeAction');
})(CodeActionRequest = exports.CodeActionRequest || (exports.CodeActionRequest = {}));
/**
 * A request to provide code lens for the given text document.
 */
var CodeLensRequest;
(function (CodeLensRequest) {
    CodeLensRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/codeLens');
})(CodeLensRequest = exports.CodeLensRequest || (exports.CodeLensRequest = {}));
/**
 * A request to resolve a command for a given code lens.
 */
var CodeLensResolveRequest;
(function (CodeLensResolveRequest) {
    CodeLensResolveRequest.type = new vscode_jsonrpc_1.RequestType('codeLens/resolve');
})(CodeLensResolveRequest = exports.CodeLensResolveRequest || (exports.CodeLensResolveRequest = {}));
/**
 * A request to to format a whole document.
 */
var DocumentFormattingRequest;
(function (DocumentFormattingRequest) {
    DocumentFormattingRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/formatting');
})(DocumentFormattingRequest = exports.DocumentFormattingRequest || (exports.DocumentFormattingRequest = {}));
/**
 * A request to to format a range in a document.
 */
var DocumentRangeFormattingRequest;
(function (DocumentRangeFormattingRequest) {
    DocumentRangeFormattingRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/rangeFormatting');
})(DocumentRangeFormattingRequest = exports.DocumentRangeFormattingRequest || (exports.DocumentRangeFormattingRequest = {}));
/**
 * A request to format a document on type.
 */
var DocumentOnTypeFormattingRequest;
(function (DocumentOnTypeFormattingRequest) {
    DocumentOnTypeFormattingRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/onTypeFormatting');
})(DocumentOnTypeFormattingRequest = exports.DocumentOnTypeFormattingRequest || (exports.DocumentOnTypeFormattingRequest = {}));
/**
 * A request to rename a symbol.
 */
var RenameRequest;
(function (RenameRequest) {
    RenameRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/rename');
})(RenameRequest = exports.RenameRequest || (exports.RenameRequest = {}));
/**
 * A request to test and perform the setup necessary for a rename.
 */
var PrepareRenameRequest;
(function (PrepareRenameRequest) {
    PrepareRenameRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/prepareRename');
})(PrepareRenameRequest = exports.PrepareRenameRequest || (exports.PrepareRenameRequest = {}));
/**
 * A request to provide document links
 */
var DocumentLinkRequest;
(function (DocumentLinkRequest) {
    DocumentLinkRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/documentLink');
})(DocumentLinkRequest = exports.DocumentLinkRequest || (exports.DocumentLinkRequest = {}));
/**
 * Request to resolve additional information for a given document link. The request's
 * parameter is of type [DocumentLink](#DocumentLink) the response
 * is of type [DocumentLink](#DocumentLink) or a Thenable that resolves to such.
 */
var DocumentLinkResolveRequest;
(function (DocumentLinkResolveRequest) {
    DocumentLinkResolveRequest.type = new vscode_jsonrpc_1.RequestType('documentLink/resolve');
})(DocumentLinkResolveRequest = exports.DocumentLinkResolveRequest || (exports.DocumentLinkResolveRequest = {}));
/**
 * A request send from the client to the server to execute a command. The request might return
 * a workspace edit which the client will apply to the workspace.
 */
var ExecuteCommandRequest;
(function (ExecuteCommandRequest) {
    ExecuteCommandRequest.type = new vscode_jsonrpc_1.RequestType('workspace/executeCommand');
})(ExecuteCommandRequest = exports.ExecuteCommandRequest || (exports.ExecuteCommandRequest = {}));
/**
 * A request sent from the server to the client to modified certain resources.
 */
var ApplyWorkspaceEditRequest;
(function (ApplyWorkspaceEditRequest) {
    ApplyWorkspaceEditRequest.type = new vscode_jsonrpc_1.RequestType('workspace/applyEdit');
})(ApplyWorkspaceEditRequest = exports.ApplyWorkspaceEditRequest || (exports.ApplyWorkspaceEditRequest = {}));


/***/ }),
/* 62 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
function boolean(value) {
    return value === true || value === false;
}
exports.boolean = boolean;
function string(value) {
    return typeof value === 'string' || value instanceof String;
}
exports.string = string;
function number(value) {
    return typeof value === 'number' || value instanceof Number;
}
exports.number = number;
function error(value) {
    return value instanceof Error;
}
exports.error = error;
function func(value) {
    return typeof value === 'function';
}
exports.func = func;
function array(value) {
    return Array.isArray(value);
}
exports.array = array;
function stringArray(value) {
    return array(value) && value.every(elem => string(elem));
}
exports.stringArray = stringArray;
function typedArray(value, check) {
    return Array.isArray(value) && value.every(check);
}
exports.typedArray = typedArray;
function thenable(value) {
    return value && func(value.then);
}
exports.thenable = thenable;


/***/ }),
/* 63 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
// @ts-ignore: to avoid inlining LocatioLink as dynamic import
let __noDynamicImport;
/**
 * A request to resolve the implementation locations of a symbol at a given text
 * document position. The request's parameter is of type [TextDocumentPositioParams]
 * (#TextDocumentPositionParams) the response is of type [Definition](#Definition) or a
 * Thenable that resolves to such.
 */
var ImplementationRequest;
(function (ImplementationRequest) {
    ImplementationRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/implementation');
})(ImplementationRequest = exports.ImplementationRequest || (exports.ImplementationRequest = {}));


/***/ }),
/* 64 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
// @ts-ignore: to avoid inlining LocatioLink as dynamic import
let __noDynamicImport;
/**
 * A request to resolve the type definition locations of a symbol at a given text
 * document position. The request's parameter is of type [TextDocumentPositioParams]
 * (#TextDocumentPositionParams) the response is of type [Definition](#Definition) or a
 * Thenable that resolves to such.
 */
var TypeDefinitionRequest;
(function (TypeDefinitionRequest) {
    TypeDefinitionRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/typeDefinition');
})(TypeDefinitionRequest = exports.TypeDefinitionRequest || (exports.TypeDefinitionRequest = {}));


/***/ }),
/* 65 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
/**
 * The `workspace/workspaceFolders` is sent from the server to the client to fetch the open workspace folders.
 */
var WorkspaceFoldersRequest;
(function (WorkspaceFoldersRequest) {
    WorkspaceFoldersRequest.type = new vscode_jsonrpc_1.RequestType0('workspace/workspaceFolders');
})(WorkspaceFoldersRequest = exports.WorkspaceFoldersRequest || (exports.WorkspaceFoldersRequest = {}));
/**
 * The `workspace/didChangeWorkspaceFolders` notification is sent from the client to the server when the workspace
 * folder configuration changes.
 */
var DidChangeWorkspaceFoldersNotification;
(function (DidChangeWorkspaceFoldersNotification) {
    DidChangeWorkspaceFoldersNotification.type = new vscode_jsonrpc_1.NotificationType('workspace/didChangeWorkspaceFolders');
})(DidChangeWorkspaceFoldersNotification = exports.DidChangeWorkspaceFoldersNotification || (exports.DidChangeWorkspaceFoldersNotification = {}));


/***/ }),
/* 66 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
/**
 * The 'workspace/configuration' request is sent from the server to the client to fetch a certain
 * configuration setting.
 *
 * This pull model replaces the old push model were the client signaled configuration change via an
 * event. If the server still needs to react to configuration changes (since the server caches the
 * result of `workspace/configuration` requests) the server should register for an empty configuration
 * change event and empty the cache if such an event is received.
 */
var ConfigurationRequest;
(function (ConfigurationRequest) {
    ConfigurationRequest.type = new vscode_jsonrpc_1.RequestType('workspace/configuration');
})(ConfigurationRequest = exports.ConfigurationRequest || (exports.ConfigurationRequest = {}));


/***/ }),
/* 67 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
/**
 * A request to list all color symbols found in a given text document. The request's
 * parameter is of type [DocumentColorParams](#DocumentColorParams) the
 * response is of type [ColorInformation[]](#ColorInformation) or a Thenable
 * that resolves to such.
 */
var DocumentColorRequest;
(function (DocumentColorRequest) {
    DocumentColorRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/documentColor');
})(DocumentColorRequest = exports.DocumentColorRequest || (exports.DocumentColorRequest = {}));
/**
 * A request to list all presentation for a color. The request's
 * parameter is of type [ColorPresentationParams](#ColorPresentationParams) the
 * response is of type [ColorInformation[]](#ColorInformation) or a Thenable
 * that resolves to such.
 */
var ColorPresentationRequest;
(function (ColorPresentationRequest) {
    ColorPresentationRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/colorPresentation');
})(ColorPresentationRequest = exports.ColorPresentationRequest || (exports.ColorPresentationRequest = {}));


/***/ }),
/* 68 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
/**
 * Enum of known range kinds
 */
var FoldingRangeKind;
(function (FoldingRangeKind) {
    /**
     * Folding range for a comment
     */
    FoldingRangeKind["Comment"] = "comment";
    /**
     * Folding range for a imports or includes
     */
    FoldingRangeKind["Imports"] = "imports";
    /**
     * Folding range for a region (e.g. `#region`)
     */
    FoldingRangeKind["Region"] = "region";
})(FoldingRangeKind = exports.FoldingRangeKind || (exports.FoldingRangeKind = {}));
/**
 * A request to provide folding ranges in a document. The request's
 * parameter is of type [FoldingRangeParams](#FoldingRangeParams), the
 * response is of type [FoldingRangeList](#FoldingRangeList) or a Thenable
 * that resolves to such.
 */
var FoldingRangeRequest;
(function (FoldingRangeRequest) {
    FoldingRangeRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/foldingRange');
})(FoldingRangeRequest = exports.FoldingRangeRequest || (exports.FoldingRangeRequest = {}));


/***/ }),
/* 69 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
// @ts-ignore: to avoid inlining LocatioLink as dynamic import
let __noDynamicImport;
/**
 * A request to resolve the type definition locations of a symbol at a given text
 * document position. The request's parameter is of type [TextDocumentPositioParams]
 * (#TextDocumentPositionParams) the response is of type [Declaration](#Declaration)
 * or a typed array of [DeclarationLink](#DeclarationLink) or a Thenable that resolves
 * to such.
 */
var DeclarationRequest;
(function (DeclarationRequest) {
    DeclarationRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/declaration');
})(DeclarationRequest = exports.DeclarationRequest || (exports.DeclarationRequest = {}));


/***/ }),
/* 70 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
/**
 * A request to provide selection ranges in a document. The request's
 * parameter is of type [SelectionRangeParams](#SelectionRangeParams), the
 * response is of type [SelectionRange[]](#SelectionRange[]) or a Thenable
 * that resolves to such.
 */
var SelectionRangeRequest;
(function (SelectionRangeRequest) {
    SelectionRangeRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/selectionRange');
})(SelectionRangeRequest = exports.SelectionRangeRequest || (exports.SelectionRangeRequest = {}));


/***/ }),
/* 71 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) TypeFox and others. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
/**
 * The direction of a call hierarchy request.
 */
var CallHierarchyDirection;
(function (CallHierarchyDirection) {
    /**
     * The callers
     */
    CallHierarchyDirection.CallsFrom = 1;
    /**
     * The callees
     */
    CallHierarchyDirection.CallsTo = 2;
})(CallHierarchyDirection = exports.CallHierarchyDirection || (exports.CallHierarchyDirection = {}));
/**
 * Request to provide the call hierarchy at a given text document position.
 *
 * The request's parameter is of type [CallHierarchyParams](#CallHierarchyParams). The response
 * is of type [CallHierarchyCall[]](#CallHierarchyCall) or a Thenable that resolves to such.
 *
 * Evaluates the symbol defined (or referenced) at the given position, and returns all incoming or outgoing calls to the symbol(s).
 */
var CallHierarchyRequest;
(function (CallHierarchyRequest) {
    CallHierarchyRequest.type = new vscode_jsonrpc_1.RequestType('textDocument/callHierarchy');
})(CallHierarchyRequest = exports.CallHierarchyRequest || (exports.CallHierarchyRequest = {}));


/***/ }),
/* 72 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* --------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 * ------------------------------------------------------------------------------------------ */

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_jsonrpc_1 = __webpack_require__(46);
/**
 * The `window/progress/start` notification is sent from the server to the client
 * to initiate a progress.
 */
var ProgressStartNotification;
(function (ProgressStartNotification) {
    ProgressStartNotification.type = new vscode_jsonrpc_1.NotificationType('window/progress/start');
})(ProgressStartNotification = exports.ProgressStartNotification || (exports.ProgressStartNotification = {}));
/**
 * The `window/progress/report` notification is sent from the server to the client
 * to initiate a progress.
 */
var ProgressReportNotification;
(function (ProgressReportNotification) {
    ProgressReportNotification.type = new vscode_jsonrpc_1.NotificationType('window/progress/report');
})(ProgressReportNotification = exports.ProgressReportNotification || (exports.ProgressReportNotification = {}));
/**
 * The `window/progress/done` notification is sent from the server to the client
 * to initiate a progress.
 */
var ProgressDoneNotification;
(function (ProgressDoneNotification) {
    ProgressDoneNotification.type = new vscode_jsonrpc_1.NotificationType('window/progress/done');
})(ProgressDoneNotification = exports.ProgressDoneNotification || (exports.ProgressDoneNotification = {}));
/**
 * The `window/progress/cancel` notification is sent client to the server to cancel a progress
 * initiated on the server side.
 */
var ProgressCancelNotification;
(function (ProgressCancelNotification) {
    ProgressCancelNotification.type = new vscode_jsonrpc_1.NotificationType('window/progress/cancel');
})(ProgressCancelNotification = exports.ProgressCancelNotification || (exports.ProgressCancelNotification = {}));


/***/ }),
/* 73 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(74);
const types_2 = __webpack_require__(75);
const languageServerSurveyBanner_1 = __webpack_require__(76);
const proposeLanguageServerBanner_1 = __webpack_require__(81);
const activationManager_1 = __webpack_require__(82);
const activationService_1 = __webpack_require__(91);
const jedi_1 = __webpack_require__(101);
const activator_1 = __webpack_require__(248);
const analysisOptions_1 = __webpack_require__(249);
const downloadChannelRules_1 = __webpack_require__(250);
const downloader_1 = __webpack_require__(251);
const languageClientFactory_1 = __webpack_require__(256);
const languageServer_1 = __webpack_require__(258);
const languageServerCompatibilityService_1 = __webpack_require__(261);
const languageServerExtension_1 = __webpack_require__(263);
const languageServerFolderService_1 = __webpack_require__(264);
const languageServerPackageRepository_1 = __webpack_require__(266);
const languageServerPackageService_1 = __webpack_require__(626);
const manager_1 = __webpack_require__(628);
const platformData_1 = __webpack_require__(629);
const types_3 = __webpack_require__(77);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_3.IExtensionActivationService, activationService_1.LanguageServerExtensionActivationService);
    serviceManager.addSingleton(types_3.ILanguageServerExtension, languageServerExtension_1.LanguageServerExtension);
    serviceManager.add(types_3.IExtensionActivationManager, activationManager_1.ExtensionActivationManager);
    serviceManager.add(types_3.ILanguageServerActivator, jedi_1.JediExtensionActivator, types_3.LanguageServerActivator.Jedi);
    serviceManager.add(types_3.ILanguageServerActivator, activator_1.LanguageServerExtensionActivator, types_3.LanguageServerActivator.DotNet);
    serviceManager.addSingleton(types_2.IPythonExtensionBanner, languageServerSurveyBanner_1.LanguageServerSurveyBanner, types_2.BANNER_NAME_LS_SURVEY);
    serviceManager.addSingleton(types_2.IPythonExtensionBanner, proposeLanguageServerBanner_1.ProposeLanguageServerBanner, types_2.BANNER_NAME_PROPOSE_LS);
    serviceManager.addSingleton(types_3.ILanguageServerFolderService, languageServerFolderService_1.LanguageServerFolderService);
    serviceManager.addSingleton(types_3.ILanguageServerPackageService, languageServerPackageService_1.LanguageServerPackageService);
    serviceManager.addSingleton(types_1.INugetRepository, languageServerPackageRepository_1.StableLanguageServerPackageRepository, languageServerPackageRepository_1.LanguageServerDownloadChannel.stable);
    serviceManager.addSingleton(types_1.INugetRepository, languageServerPackageRepository_1.BetaLanguageServerPackageRepository, languageServerPackageRepository_1.LanguageServerDownloadChannel.beta);
    serviceManager.addSingleton(types_1.INugetRepository, languageServerPackageRepository_1.DailyLanguageServerPackageRepository, languageServerPackageRepository_1.LanguageServerDownloadChannel.daily);
    serviceManager.addSingleton(types_3.IDownloadChannelRule, downloadChannelRules_1.DownloadDailyChannelRule, languageServerPackageRepository_1.LanguageServerDownloadChannel.daily);
    serviceManager.addSingleton(types_3.IDownloadChannelRule, downloadChannelRules_1.DownloadBetaChannelRule, languageServerPackageRepository_1.LanguageServerDownloadChannel.beta);
    serviceManager.addSingleton(types_3.IDownloadChannelRule, downloadChannelRules_1.DownloadStableChannelRule, languageServerPackageRepository_1.LanguageServerDownloadChannel.stable);
    serviceManager.addSingleton(types_3.ILanguageServerCompatibilityService, languageServerCompatibilityService_1.LanguageServerCompatibilityService);
    serviceManager.addSingleton(types_3.ILanguageClientFactory, languageClientFactory_1.BaseLanguageClientFactory, types_3.LanguageClientFactory.base);
    serviceManager.addSingleton(types_3.ILanguageClientFactory, languageClientFactory_1.DownloadedLanguageClientFactory, types_3.LanguageClientFactory.downloaded);
    serviceManager.addSingleton(types_3.ILanguageClientFactory, languageClientFactory_1.SimpleLanguageClientFactory, types_3.LanguageClientFactory.simple);
    serviceManager.addSingleton(types_3.ILanguageServerDownloader, downloader_1.LanguageServerDownloader);
    serviceManager.addSingleton(types_3.IPlatformData, platformData_1.PlatformData);
    serviceManager.add(types_3.ILanguageServerAnalysisOptions, analysisOptions_1.LanguageServerAnalysisOptions);
    serviceManager.add(types_3.ILanguageServer, languageServer_1.LanguageServer);
    serviceManager.add(types_3.ILanguageServerManager, manager_1.LanguageServerManager);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 74 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.INugetService = Symbol('INugetService');
exports.INugetRepository = Symbol('INugetRepository');


/***/ }),
/* 75 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.IOutputChannel = Symbol('IOutputChannel');
exports.IDocumentSymbolProvider = Symbol('IDocumentSymbolProvider');
exports.IsWindows = Symbol('IS_WINDOWS');
exports.IDisposableRegistry = Symbol('IDiposableRegistry');
exports.IMemento = Symbol('IGlobalMemento');
exports.GLOBAL_MEMENTO = Symbol('IGlobalMemento');
exports.WORKSPACE_MEMENTO = Symbol('IWorkspaceMemento');
exports.IPersistentStateFactory = Symbol('IPersistentStateFactory');
var LogLevel;
(function (LogLevel) {
    LogLevel["Information"] = "Information";
    LogLevel["Error"] = "Error";
    LogLevel["Warning"] = "Warning";
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
exports.ILogger = Symbol('ILogger');
var InstallerResponse;
(function (InstallerResponse) {
    InstallerResponse[InstallerResponse["Installed"] = 0] = "Installed";
    InstallerResponse[InstallerResponse["Disabled"] = 1] = "Disabled";
    InstallerResponse[InstallerResponse["Ignore"] = 2] = "Ignore";
})(InstallerResponse = exports.InstallerResponse || (exports.InstallerResponse = {}));
var ProductType;
(function (ProductType) {
    ProductType["Linter"] = "Linter";
    ProductType["Formatter"] = "Formatter";
    ProductType["TestFramework"] = "TestFramework";
    ProductType["RefactoringLibrary"] = "RefactoringLibrary";
    ProductType["WorkspaceSymbols"] = "WorkspaceSymbols";
})(ProductType = exports.ProductType || (exports.ProductType = {}));
var Product;
(function (Product) {
    Product[Product["pytest"] = 1] = "pytest";
    Product[Product["nosetest"] = 2] = "nosetest";
    Product[Product["pylint"] = 3] = "pylint";
    Product[Product["flake8"] = 4] = "flake8";
    Product[Product["pep8"] = 5] = "pep8";
    Product[Product["pylama"] = 6] = "pylama";
    Product[Product["prospector"] = 7] = "prospector";
    Product[Product["pydocstyle"] = 8] = "pydocstyle";
    Product[Product["yapf"] = 9] = "yapf";
    Product[Product["autopep8"] = 10] = "autopep8";
    Product[Product["mypy"] = 11] = "mypy";
    Product[Product["unittest"] = 12] = "unittest";
    Product[Product["ctags"] = 13] = "ctags";
    Product[Product["rope"] = 14] = "rope";
    Product[Product["isort"] = 15] = "isort";
    Product[Product["black"] = 16] = "black";
    Product[Product["bandit"] = 17] = "bandit";
})(Product = exports.Product || (exports.Product = {}));
var ModuleNamePurpose;
(function (ModuleNamePurpose) {
    ModuleNamePurpose[ModuleNamePurpose["install"] = 1] = "install";
    ModuleNamePurpose[ModuleNamePurpose["run"] = 2] = "run";
})(ModuleNamePurpose = exports.ModuleNamePurpose || (exports.ModuleNamePurpose = {}));
exports.IInstaller = Symbol('IInstaller');
exports.IPathUtils = Symbol('IPathUtils');
exports.IRandom = Symbol('IRandom');
exports.ICurrentProcess = Symbol('ICurrentProcess');
exports.IConfigurationService = Symbol('IConfigurationService');
exports.ISocketServer = Symbol('ISocketServer');
exports.IExtensionContext = Symbol('ExtensionContext');
exports.IExtensions = Symbol('IExtensions');
exports.IBrowserService = Symbol('IBrowserService');
exports.IPythonExtensionBanner = Symbol('IPythonExtensionBanner');
exports.BANNER_NAME_LS_SURVEY = 'LSSurveyBanner';
exports.BANNER_NAME_PROPOSE_LS = 'ProposeLS';
exports.BANNER_NAME_DS_SURVEY = 'DSSurveyBanner';
exports.IFeatureDeprecationManager = Symbol('IFeatureDeprecationManager');
exports.IEditorUtils = Symbol('IEditorUtils');
exports.IAsyncDisposableRegistry = Symbol('IAsyncDisposableRegistry');


/***/ }),
/* 76 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(77);
const types_2 = __webpack_require__(78);
const types_3 = __webpack_require__(75);
const random_1 = __webpack_require__(79);
const function_1 = __webpack_require__(80);
// persistent state names, exported to make use of in testing
var LSSurveyStateKeys;
(function (LSSurveyStateKeys) {
    LSSurveyStateKeys["ShowBanner"] = "ShowLSSurveyBanner";
    LSSurveyStateKeys["ShowAttemptCounter"] = "LSSurveyShowAttempt";
    LSSurveyStateKeys["ShowAfterCompletionCount"] = "LSSurveyShowCount";
})(LSSurveyStateKeys = exports.LSSurveyStateKeys || (exports.LSSurveyStateKeys = {}));
var LSSurveyLabelIndex;
(function (LSSurveyLabelIndex) {
    LSSurveyLabelIndex[LSSurveyLabelIndex["Yes"] = 0] = "Yes";
    LSSurveyLabelIndex[LSSurveyLabelIndex["No"] = 1] = "No";
})(LSSurveyLabelIndex || (LSSurveyLabelIndex = {}));
/*
This class represents a popup that will ask our users for some feedback after
a specific event occurs N times.
*/
let LanguageServerSurveyBanner = class LanguageServerSurveyBanner {
    // private bannerMessage: string = localize.LanguageService.bannerMessage()
    // private bannerLabels: string[] = [localize.LanguageService.bannerLabelYes(), localize.LanguageService.bannerLabelNo()]
    constructor(appShell, persistentState, browserService, lsService, showAfterMinimumEventsCount = 100, showBeforeMaximumEventsCount = 500) {
        this.appShell = appShell;
        this.persistentState = persistentState;
        this.browserService = browserService;
        this.lsService = lsService;
        this.disabledInCurrentSession = false;
        this.isInitialized = false;
        this.minCompletionsBeforeShow = showAfterMinimumEventsCount;
        this.maxCompletionsBeforeShow = showBeforeMaximumEventsCount;
        this.initialize();
    }
    initialize() {
        if (this.isInitialized) {
            return;
        }
        this.isInitialized = true;
        if (this.minCompletionsBeforeShow >= this.maxCompletionsBeforeShow) {
            this.disable().catch(function_1.emptyFn);
        }
    }
    get enabled() {
        return this.persistentState.createGlobalPersistentState(LSSurveyStateKeys.ShowBanner, true).value;
    }
    async showBanner() {
        if (!this.enabled || this.disabledInCurrentSession) {
            return;
        }
        const launchCounter = await this.incrementPythonLanguageServiceLaunchCounter();
        const show = await this.shouldShowBanner(launchCounter);
        if (!show) {
            this.disabledInCurrentSession = true;
            return;
        }
        await this.disable();
        // const response = await workspace.showInformationMessage(this.bannerMessage, ...this.bannerLabels)
        // switch (response) {
        //   case this.bannerLabels[LSSurveyLabelIndex.Yes]:
        //     {
        //       await this.launchSurvey()
        //       await this.disable()
        //       break
        //     }
        //   case this.bannerLabels[LSSurveyLabelIndex.No]: {
        //     await this.disable()
        //     break
        //   }
        //   default: {
        //     // Disable for the current session.
        //     this.disabledInCurrentSession = true
        //   }
        // }
    }
    async shouldShowBanner(launchCounter) {
        if (!this.enabled || this.disabledInCurrentSession) {
            return false;
        }
        if (!launchCounter) {
            launchCounter = await this.getPythonLSLaunchCounter();
        }
        const threshold = await this.getPythonLSLaunchThresholdCounter();
        return launchCounter >= threshold;
    }
    async disable() {
        await this.persistentState.createGlobalPersistentState(LSSurveyStateKeys.ShowBanner, false).updateValue(false);
    }
    async launchSurvey() {
        const launchCounter = await this.getPythonLSLaunchCounter();
        let lsVersion = await this.getPythonLSVersion();
        lsVersion = encodeURIComponent(lsVersion);
        this.browserService.launch(`https://www.research.net/r/LJZV9BZ?n=${launchCounter}&v=${lsVersion}`);
    }
    async incrementPythonLanguageServiceLaunchCounter() {
        const state = this.persistentState.createGlobalPersistentState(LSSurveyStateKeys.ShowAttemptCounter, 0);
        await state.updateValue(state.value + 1);
        return state.value;
    }
    async getPythonLSVersion(fallback = 'unknown') {
        const langServiceLatestFolder = await this.lsService.getCurrentLanguageServerDirectory();
        return langServiceLatestFolder ? langServiceLatestFolder.version.raw : fallback;
    }
    async getPythonLSLaunchCounter() {
        const state = this.persistentState.createGlobalPersistentState(LSSurveyStateKeys.ShowAttemptCounter, 0);
        return state.value;
    }
    async getPythonLSLaunchThresholdCounter() {
        const state = this.persistentState.createGlobalPersistentState(LSSurveyStateKeys.ShowAfterCompletionCount, undefined);
        if (state.value === undefined) {
            await state.updateValue(random_1.getRandomBetween(this.minCompletionsBeforeShow, this.maxCompletionsBeforeShow));
        }
        return state.value;
    }
};
LanguageServerSurveyBanner = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IApplicationShell)),
    __param(1, inversify_1.inject(types_3.IPersistentStateFactory)),
    __param(2, inversify_1.inject(types_3.IBrowserService)),
    __param(3, inversify_1.inject(types_1.ILanguageServerFolderService))
], LanguageServerSurveyBanner);
exports.LanguageServerSurveyBanner = LanguageServerSurveyBanner;


/***/ }),
/* 77 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.IExtensionActivationManager = Symbol('IExtensionActivationManager');
exports.IExtensionActivationService = Symbol('IExtensionActivationService');
var LanguageServerActivator;
(function (LanguageServerActivator) {
    LanguageServerActivator["Jedi"] = "Jedi";
    LanguageServerActivator["DotNet"] = "DotNet";
})(LanguageServerActivator = exports.LanguageServerActivator || (exports.LanguageServerActivator = {}));
exports.ILanguageServerActivator = Symbol('ILanguageServerActivator');
exports.IHttpClient = Symbol('IHttpClient');
exports.ILanguageServerFolderService = Symbol('ILanguageServerFolderService');
exports.ILanguageServerDownloader = Symbol('ILanguageServerDownloader');
exports.ILanguageServerPackageService = Symbol('ILanguageServerPackageService');
exports.MajorLanguageServerVersion = Symbol('MajorLanguageServerVersion');
exports.IDownloadChannelRule = Symbol('IDownloadChannelRule');
exports.ILanguageServerCompatibilityService = Symbol('ILanguageServerCompatibilityService');
var LanguageClientFactory;
(function (LanguageClientFactory) {
    LanguageClientFactory["base"] = "base";
    LanguageClientFactory["simple"] = "simple";
    LanguageClientFactory["downloaded"] = "downloaded";
})(LanguageClientFactory = exports.LanguageClientFactory || (exports.LanguageClientFactory = {}));
exports.ILanguageClientFactory = Symbol('ILanguageClientFactory');
exports.ILanguageServerAnalysisOptions = Symbol('ILanguageServerAnalysisOptions');
exports.ILanguageServerManager = Symbol('ILanguageServerManager');
exports.ILanguageServerExtension = Symbol('ILanguageServerExtension');
exports.ILanguageServer = Symbol('ILanguageServer');
var PlatformName;
(function (PlatformName) {
    PlatformName["Windows32Bit"] = "win-x86";
    PlatformName["Windows64Bit"] = "win-x64";
    PlatformName["Mac64Bit"] = "osx-x64";
    PlatformName["Linux64Bit"] = "linux-x64";
})(PlatformName = exports.PlatformName || (exports.PlatformName = {}));
exports.IPlatformData = Symbol('IPlatformData');


/***/ }),
/* 78 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.IApplicationShell = Symbol('IApplicationShell');
exports.ICommandManager = Symbol('ICommandManager');
exports.IDocumentManager = Symbol('IDocumentManager');
exports.IWorkspaceService = Symbol('IWorkspaceService');
exports.ITerminalManager = Symbol('ITerminalManager');
exports.IApplicationEnvironment = Symbol('IApplicationEnvironment');


/***/ }),
/* 79 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const crypto = __importStar(__webpack_require__(57));
const inversify_1 = __webpack_require__(3);
function getRandom() {
    let num = 0;
    const buf = crypto.randomBytes(2);
    num = (buf.readUInt8(0) << 8) + buf.readUInt8(1);
    const maxValue = Math.pow(16, 4) - 1;
    return (num / maxValue);
}
function getRandomBetween(min = 0, max = 10) {
    const randomVal = getRandom();
    return min + (randomVal * (max - min));
}
exports.getRandomBetween = getRandomBetween;
let Random = class Random {
    getRandomInt(min = 0, max = 10) {
        return getRandomBetween(min, max);
    }
};
Random = __decorate([
    inversify_1.injectable()
], Random);
exports.Random = Random;


/***/ }),
/* 80 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
function emptyFn() {
    // noop
}
exports.emptyFn = emptyFn;


/***/ }),
/* 81 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(75);
const random_1 = __webpack_require__(79);
const function_1 = __webpack_require__(80);
// persistent state names, exported to make use of in testing
var ProposeLSStateKeys;
(function (ProposeLSStateKeys) {
    ProposeLSStateKeys["ShowBanner"] = "ProposeLSBanner";
})(ProposeLSStateKeys = exports.ProposeLSStateKeys || (exports.ProposeLSStateKeys = {}));
var ProposeLSLabelIndex;
(function (ProposeLSLabelIndex) {
    ProposeLSLabelIndex[ProposeLSLabelIndex["Yes"] = 0] = "Yes";
    ProposeLSLabelIndex[ProposeLSLabelIndex["No"] = 1] = "No";
    ProposeLSLabelIndex[ProposeLSLabelIndex["Later"] = 2] = "Later";
})(ProposeLSLabelIndex || (ProposeLSLabelIndex = {}));
/*
This class represents a popup that propose that the user try out a new
feature of the extension, and optionally enable that new feature if they
choose to do so. It is meant to be shown only to a subset of our users,
and will show as soon as it is instructed to do so, if a random sample
function enables the popup for this user.
*/
let ProposeLanguageServerBanner = class ProposeLanguageServerBanner {
    constructor(appShell, persistentState, configuration, sampleSizePerOneHundredUsers = 10) {
        this.appShell = appShell;
        this.persistentState = persistentState;
        this.configuration = configuration;
        this.disabledInCurrentSession = false;
        this.bannerMessage = 'Try out Preview of our new Python Language Server to get richer and faster IntelliSense completions, and syntax errors as you type.';
        this.bannerLabels = ['Try it now', 'No thanks', 'Remind me Later'];
        this.sampleSizePerHundred = sampleSizePerOneHundredUsers;
        this.initialize();
    }
    initialize() {
        if (this.initialized) {
            return;
        }
        this.initialized = true;
        // Don't even bother adding handlers if banner has been turned off.
        if (!this.enabled) {
            return;
        }
        // we only want 10% of folks that use Jedi to see this survey.
        const randomSample = random_1.getRandomBetween(0, 100);
        if (randomSample >= this.sampleSizePerHundred) {
            this.disable().catch(function_1.emptyFn);
            return;
        }
    }
    get enabled() {
        return this.persistentState.createGlobalPersistentState(ProposeLSStateKeys.ShowBanner, true).value;
    }
    async showBanner() {
        if (!this.enabled) {
            return;
        }
        const show = await this.shouldShowBanner();
        if (!show) {
            return;
        }
        const response = await coc_nvim_1.workspace.showPrompt('Use MPLS instead of jedi?');
        if (response) {
            await this.enableNewLanguageServer();
            await this.disable();
        }
        else {
            this.disabledInCurrentSession = true;
        }
    }
    async shouldShowBanner() {
        return Promise.resolve(this.enabled && !this.disabledInCurrentSession);
    }
    async disable() {
        await this.persistentState.createGlobalPersistentState(ProposeLSStateKeys.ShowBanner, false).updateValue(false);
    }
    async enableNewLanguageServer() {
        await this.configuration.updateSetting('jediEnabled', false, undefined, coc_nvim_1.ConfigurationTarget.Global);
    }
};
ProposeLanguageServerBanner = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IApplicationShell)),
    __param(1, inversify_1.inject(types_2.IPersistentStateFactory)),
    __param(2, inversify_1.inject(types_2.IConfigurationService))
], ProposeLanguageServerBanner);
exports.ProposeLanguageServerBanner = ProposeLanguageServerBanner;


/***/ }),
/* 82 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(83);
const types_2 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const logger_1 = __webpack_require__(86);
const types_3 = __webpack_require__(89);
const contracts_1 = __webpack_require__(90);
const types_4 = __webpack_require__(77);
const function_1 = __webpack_require__(80);
let ExtensionActivationManager = class ExtensionActivationManager {
    constructor(activationServices, documentManager, interpreterService, autoSelection, appDiagnostics, workspaceService) {
        this.activationServices = activationServices;
        this.documentManager = documentManager;
        this.interpreterService = interpreterService;
        this.autoSelection = autoSelection;
        this.appDiagnostics = appDiagnostics;
        this.workspaceService = workspaceService;
        this.disposables = [];
        this.activatedWorkspaces = new Set();
    }
    dispose() {
        while (this.disposables.length > 0) {
            const disposable = this.disposables.shift();
            disposable.dispose();
        }
        if (this.docOpenedHandler) {
            this.docOpenedHandler.dispose();
            this.docOpenedHandler = undefined;
        }
    }
    async activate() {
        await this.initialize();
        await this.activateWorkspace(this.getActiveResource());
        await this.autoSelection.autoSelectInterpreter(undefined);
    }
    async activateWorkspace(resource) {
        const key = this.getWorkspaceKey(resource);
        if (this.activatedWorkspaces.has(key)) {
            return;
        }
        this.activatedWorkspaces.add(key);
        // Get latest interpreter list in the background.
        this.interpreterService.getInterpreters(resource).catch(() => { });
        await this.autoSelection.autoSelectInterpreter(resource);
        await Promise.all(this.activationServices.map(item => item.activate(resource)));
        await this.appDiagnostics.performPreStartupHealthCheck(resource);
    }
    async initialize() {
        this.addRemoveDocOpenedHandlers();
    }
    addRemoveDocOpenedHandlers() {
        if (this.hasMultipleWorkspaces()) {
            if (!this.docOpenedHandler) {
                this.docOpenedHandler = this.documentManager.onDidOpenTextDocument(this.onDocOpened, this);
            }
            return;
        }
        if (this.docOpenedHandler) {
            this.docOpenedHandler.dispose();
            this.docOpenedHandler = undefined;
        }
    }
    hasMultipleWorkspaces() {
        return false;
    }
    onDocOpened(doc) {
        if (doc.languageId !== constants_1.PYTHON_LANGUAGE) {
            return;
        }
        const key = this.getWorkspaceKey(coc_nvim_1.Uri.parse(doc.uri));
        // If we have opened a doc that does not belong to workspace, then do nothing.
        if (key === '') {
            return;
        }
        if (this.activatedWorkspaces.has(key)) {
            return;
        }
        const folder = coc_nvim_1.workspace.workspaceFolder;
        this.activateWorkspace(folder ? coc_nvim_1.Uri.parse(folder.uri) : undefined).catch(function_1.emptyFn);
    }
    getWorkspaceKey(resource) {
        return coc_nvim_1.workspace.rootPath;
    }
    getActiveResource() {
        let doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        if (!doc || doc.filetype !== 'python')
            return null;
        return coc_nvim_1.Uri.parse(doc.uri);
    }
};
__decorate([
    logger_1.traceDecorators.error('Failed to activate a workspace')
], ExtensionActivationManager.prototype, "activateWorkspace", null);
ExtensionActivationManager = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.multiInject(types_4.IExtensionActivationService)),
    __param(1, inversify_1.inject(types_2.IDocumentManager)),
    __param(2, inversify_1.inject(contracts_1.IInterpreterService)),
    __param(3, inversify_1.inject(types_3.IInterpreterAutoSelectionService)),
    __param(4, inversify_1.inject(types_1.IApplicationDiagnostics)),
    __param(5, inversify_1.inject(types_2.IWorkspaceService))
], ExtensionActivationManager);
exports.ExtensionActivationManager = ExtensionActivationManager;


/***/ }),
/* 83 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.IApplicationDiagnostics = Symbol('IApplicationDiagnostics');


/***/ }),
/* 84 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

function __export(m) {
    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
exports.PYTHON_LANGUAGE = 'python';
exports.PYTHON = [
    { scheme: 'file', language: exports.PYTHON_LANGUAGE },
    { scheme: 'untitled', language: exports.PYTHON_LANGUAGE }
];
exports.PYTHON_ALLFILES = [
    { language: exports.PYTHON_LANGUAGE }
];
exports.PVSC_EXTENSION_ID = 'ms-python.python';
var Commands;
(function (Commands) {
    Commands.Set_Interpreter = 'python.setInterpreter';
    Commands.Upgrade_Languageserver = 'python.upgradePythonLanguageServer';
    Commands.Set_ShebangInterpreter = 'python.setShebangInterpreter';
    Commands.Exec_In_Terminal = 'python.execInTerminal';
    Commands.Exec_Selection_In_Terminal = 'python.execSelectionInTerminal';
    Commands.Exec_Selection_In_Django_Shell = 'python.execSelectionInDjangoShell';
    Commands.Tests_View_UI = 'python.viewTestUI';
    Commands.Tests_Picker_UI = 'python.selectTestToRun';
    Commands.Tests_Picker_UI_Debug = 'python.selectTestToDebug';
    Commands.Tests_Configure = 'python.configureTests';
    Commands.Tests_Discover = 'python.discoverTests';
    Commands.Tests_Discovering = 'python.discoveringTests';
    Commands.Tests_Run_Failed = 'python.runFailedTests';
    Commands.Sort_Imports = 'python.sortImports';
    Commands.Tests_Run = 'python.runtests';
    Commands.Tests_Debug = 'python.debugtests';
    Commands.Tests_Ask_To_Stop_Test = 'python.askToStopUnitTests';
    Commands.Tests_Ask_To_Stop_Discovery = 'python.askToStopUnitTestDiscovery';
    Commands.Tests_Stop = 'python.stopUnitTests';
    Commands.ViewOutput = 'python.viewOutput';
    Commands.Tests_ViewOutput = 'python.viewTestOutput';
    Commands.Tests_Select_And_Run_Method = 'python.selectAndRunTestMethod';
    Commands.Tests_Select_And_Debug_Method = 'python.selectAndDebugTestMethod';
    Commands.Tests_Select_And_Run_File = 'python.selectAndRunTestFile';
    Commands.Tests_Run_Current_File = 'python.runCurrentTestFile';
    Commands.Refactor_Extract_Variable = 'python.refactorExtractVariable';
    Commands.Refactor_Extract_Method = 'python.refactorExtractMethod';
    Commands.Update_SparkLibrary = 'python.updateSparkLibrary';
    Commands.Build_Workspace_Symbols = 'python.buildWorkspaceSymbols';
    Commands.Start_REPL = 'python.startREPL';
    Commands.Create_Terminal = 'python.createTerminal';
    Commands.Set_Linter = 'python.setLinter';
    Commands.Enable_Linter = 'python.enableLinting';
    Commands.Run_Linter = 'python.runLinting';
    Commands.Enable_SourceMap_Support = 'python.enableSourceMapSupport';
    Commands.navigateToTestFunction = 'navigateToTestFunction';
    Commands.navigateToTestSuite = 'navigateToTestSuite';
    Commands.navigateToTestFile = 'navigateToTestFile';
    Commands.openTestNodeInEditor = 'python.openTestNodeInEditor';
    Commands.runTestNode = 'python.runTestNode';
    Commands.debugTestNode = 'python.debugTestNode';
})(Commands = exports.Commands || (exports.Commands = {}));
var Octicons;
(function (Octicons) {
    Octicons.Test_Pass = '$(check)';
    Octicons.Test_Fail = '$(alert)';
    Octicons.Test_Error = '$(x)';
    Octicons.Test_Skip = '$(circle-slash)';
})(Octicons = exports.Octicons || (exports.Octicons = {}));
exports.Button_Text_Tests_View_Output = 'View Output';
var Text;
(function (Text) {
    Text.CodeLensRunUnitTest = 'Run Test';
    Text.CodeLensDebugUnitTest = 'Debug Test';
})(Text = exports.Text || (exports.Text = {}));
var Delays;
(function (Delays) {
    // Max time to wait before aborting the generation of code lenses for unit tests
    Delays.MaxUnitTestCodeLensDelay = 5000;
})(Delays = exports.Delays || (exports.Delays = {}));
var LinterErrors;
(function (LinterErrors) {
    let pylint;
    (function (pylint) {
        pylint.InvalidSyntax = 'E0001';
    })(pylint = LinterErrors.pylint || (LinterErrors.pylint = {}));
    let prospector;
    (function (prospector) {
        prospector.InvalidSyntax = 'F999';
    })(prospector = LinterErrors.prospector || (LinterErrors.prospector = {}));
    let flake8;
    (function (flake8) {
        flake8.InvalidSyntax = 'E999';
    })(flake8 = LinterErrors.flake8 || (LinterErrors.flake8 = {}));
})(LinterErrors = exports.LinterErrors || (exports.LinterErrors = {}));
exports.STANDARD_OUTPUT_CHANNEL = 'STANDARD_OUTPUT_CHANNEL';
function isTestExecution() {
    return process.env.VSC_PYTHON_CI_TEST === '1' || isUnitTestExecution();
}
exports.isTestExecution = isTestExecution;
/**
 * Whether we're running unit tests (*.unit.test.ts).
 * These tests have a speacial meaning, they run fast.
 * @export
 * @returns {boolean}
 */
function isUnitTestExecution() {
    return process.env.VSC_PYTHON_UNIT_TEST === '1';
}
exports.isUnitTestExecution = isUnitTestExecution;
__export(__webpack_require__(85));


/***/ }),
/* 85 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const path = __importStar(__webpack_require__(55));
exports.EXTENSION_ROOT_DIR = path.join(__dirname, '..');


/***/ }),
/* 86 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// tslint:disable:no-console no-any
var __decorate = (this && this.__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 === "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 Logger_1;
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const helpers_1 = __webpack_require__(87);
const types_1 = __webpack_require__(75);
const PREFIX = 'Python Extension: ';
let Logger = Logger_1 = class Logger {
    // tslint:disable-next-line:no-any
    static error(title = '', message) {
        new Logger_1().logError(`${title}, ${message}`);
    }
    // tslint:disable-next-line:no-any
    static warn(title = '', message = '') {
        new Logger_1().logWarning(`${title}, ${message}`);
    }
    // tslint:disable-next-line:no-any
    static verbose(title = '') {
        new Logger_1().logInformation(title);
    }
    logError(message, ex) {
        if (ex) {
            console.error(`${PREFIX}${message}`, ex);
        }
        else {
            console.error(`${PREFIX}${message}`);
        }
    }
    logWarning(message, ex) {
        if (ex) {
            console.warn(`${PREFIX}${message}`, ex);
        }
        else {
            console.warn(`${PREFIX}${message}`);
        }
    }
    logInformation(message, ex) {
        if (ex) {
            console.info(`${PREFIX}${message}`, ex);
        }
        else {
            console.info(`${PREFIX}${message}`);
        }
    }
};
__decorate([
    helpers_1.skipIfTest(false)
], Logger.prototype, "logError", null);
__decorate([
    helpers_1.skipIfTest(false)
], Logger.prototype, "logWarning", null);
__decorate([
    helpers_1.skipIfTest(false)
], Logger.prototype, "logInformation", null);
Logger = Logger_1 = __decorate([
    inversify_1.injectable()
], Logger);
exports.Logger = Logger;
var LogOptions;
(function (LogOptions) {
    LogOptions[LogOptions["None"] = 0] = "None";
    LogOptions[LogOptions["Arguments"] = 1] = "Arguments";
    LogOptions[LogOptions["ReturnValue"] = 2] = "ReturnValue";
})(LogOptions = exports.LogOptions || (exports.LogOptions = {}));
// tslint:disable-next-line:no-any
function argsToLogString(args) {
    try {
        return (args || [])
            .map((item, index) => {
            if (item === undefined) {
                return `Arg ${index + 1}: undefined`;
            }
            if (item === null) {
                return `Arg ${index + 1}: null`;
            }
            try {
                if (item && item.fsPath) {
                    return `Arg ${index + 1}: <Uri:${item.fsPath}>`;
                }
                return `Arg ${index + 1}: ${JSON.stringify(item)}`;
            }
            catch (_a) {
                return `Arg ${index + 1}: <argument cannot be serialized for logging>`;
            }
        })
            .join(', ');
    }
    catch (_a) {
        return '';
    }
}
// tslint:disable-next-line:no-any
function returnValueToLogString(returnValue) {
    const returnValueMessage = 'Return Value: ';
    if (returnValue === undefined) {
        return `${returnValueMessage}undefined`;
    }
    if (returnValue === null) {
        return `${returnValueMessage}null`;
    }
    try {
        return `${returnValueMessage}${JSON.stringify(returnValue)}`;
    }
    catch (_a) {
        return `${returnValueMessage}<Return value cannot be serialized for logging>`;
    }
}
function traceVerbose(message) {
    new Logger().logInformation(message);
}
exports.traceVerbose = traceVerbose;
function traceError(message, ex) {
    new Logger().logError(message, ex);
}
exports.traceError = traceError;
function traceInfo(message) {
    new Logger().logInformation(message);
}
exports.traceInfo = traceInfo;
var traceDecorators;
(function (traceDecorators) {
    function verbose(message, options = LogOptions.Arguments | LogOptions.ReturnValue) {
        return trace(message, options);
    }
    traceDecorators.verbose = verbose;
    function error(message) {
        return trace(message, LogOptions.Arguments | LogOptions.ReturnValue, types_1.LogLevel.Error);
    }
    traceDecorators.error = error;
    function info(message) {
        return trace(message);
    }
    traceDecorators.info = info;
    function warn(message) {
        return trace(message, LogOptions.Arguments | LogOptions.ReturnValue, types_1.LogLevel.Warning);
    }
    traceDecorators.warn = warn;
})(traceDecorators = exports.traceDecorators || (exports.traceDecorators = {}));
function trace(message, options = LogOptions.None, logLevel) {
    // tslint:disable-next-line:no-function-expression no-any
    return function (_, __, descriptor) {
        const originalMethod = descriptor.value;
        // tslint:disable-next-line:no-function-expression no-any
        descriptor.value = function (...args) {
            const className = _ && _.constructor ? _.constructor.name : '';
            // tslint:disable-next-line:no-any
            function writeSuccess(returnValue) {
                if (logLevel === types_1.LogLevel.Error) {
                    return;
                }
                writeToLog(returnValue);
            }
            function writeError(ex) {
                writeToLog(undefined, ex);
            }
            // tslint:disable-next-line:no-any
            function writeToLog(returnValue, ex) {
                const messagesToLog = [message];
                messagesToLog.push(`Class name = ${className}`);
                if ((options && LogOptions.Arguments) === LogOptions.Arguments) {
                    messagesToLog.push(argsToLogString(args));
                }
                if ((options & LogOptions.ReturnValue) === LogOptions.ReturnValue) {
                    messagesToLog.push(returnValueToLogString(returnValue));
                }
                if (ex) {
                    new Logger().logError(messagesToLog.join(', '), ex);
                }
                else {
                    new Logger().logInformation(messagesToLog.join(', '));
                }
            }
            try {
                // tslint:disable-next-line:no-invalid-this no-use-before-declare no-unsafe-any
                const result = originalMethod.apply(this, args);
                // If method being wrapped returns a promise then wait for it.
                // tslint:disable-next-line:no-unsafe-any
                if (result && typeof result.then === 'function' && typeof result.catch === 'function') {
                    // tslint:disable-next-line:prefer-type-cast
                    result
                        .then(data => {
                        writeSuccess(data);
                        return data;
                    })
                        .catch(ex => {
                        writeError(ex);
                    });
                }
                else {
                    writeSuccess(result);
                }
                return result;
            }
            catch (ex) {
                writeError(ex);
                throw ex;
            }
        };
        return descriptor;
    };
}


/***/ }),
/* 87 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = __webpack_require__(84);
const moduleNotInstalledError_1 = __webpack_require__(88);
function isNotInstalledError(error) {
    const isError = typeof (error) === 'object' && error !== null;
    // tslint:disable-next-line:no-any
    const errorObj = error;
    if (!isError) {
        return false;
    }
    if (error instanceof moduleNotInstalledError_1.ModuleNotInstalledError) {
        return true;
    }
    const isModuleNoInstalledError = error.message.indexOf('No module named') >= 0;
    return errorObj.code === 'ENOENT' || errorObj.code === 127 || isModuleNoInstalledError;
}
exports.isNotInstalledError = isNotInstalledError;
function skipIfTest(isAsyncFunction) {
    // tslint:disable-next-line:no-function-expression no-any
    return function (_, __, descriptor) {
        const originalMethod = descriptor.value;
        // tslint:disable-next-line:no-function-expression no-any
        descriptor.value = function (...args) {
            if (constants_1.isTestExecution()) {
                return isAsyncFunction ? Promise.resolve() : undefined;
            }
            // tslint:disable-next-line:no-invalid-this no-use-before-declare no-unsafe-any
            return originalMethod.apply(this, args);
        };
        return descriptor;
    };
}
exports.skipIfTest = skipIfTest;


/***/ }),
/* 88 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
class ModuleNotInstalledError extends Error {
    constructor(moduleName) {
        super(`Module '${moduleName}' not installed.`);
    }
}
exports.ModuleNotInstalledError = ModuleNotInstalledError;


/***/ }),
/* 89 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.IInterpreterAutoSeletionProxyService = Symbol('IInterpreterAutoSeletionProxyService');
exports.IInterpreterAutoSelectionService = Symbol('IInterpreterAutoSelectionService');
var AutoSelectionRule;
(function (AutoSelectionRule) {
    AutoSelectionRule["all"] = "all";
    AutoSelectionRule["environment"] = "environment";
    AutoSelectionRule["currentPath"] = "currentPath";
    AutoSelectionRule["workspaceVirtualEnvs"] = "workspaceEnvs";
    AutoSelectionRule["settings"] = "settings";
    AutoSelectionRule["cachedInterpreters"] = "cachedInterpreters";
    AutoSelectionRule["systemWide"] = "system";
    AutoSelectionRule["windowsRegistry"] = "windowsRegistry";
})(AutoSelectionRule = exports.AutoSelectionRule || (exports.AutoSelectionRule = {}));
exports.IInterpreterAutoSelectionRule = Symbol('IInterpreterAutoSelectionRule');


/***/ }),
/* 90 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.INTERPRETER_LOCATOR_SERVICE = 'IInterpreterLocatorService';
exports.WINDOWS_REGISTRY_SERVICE = 'WindowsRegistryService';
exports.CONDA_ENV_FILE_SERVICE = 'CondaEnvFileService';
exports.CONDA_ENV_SERVICE = 'CondaEnvService';
exports.CURRENT_PATH_SERVICE = 'CurrentPathService';
exports.KNOWN_PATH_SERVICE = 'KnownPathsService';
exports.GLOBAL_VIRTUAL_ENV_SERVICE = 'VirtualEnvService';
exports.WORKSPACE_VIRTUAL_ENV_SERVICE = 'WorkspaceVirtualEnvService';
exports.PIPENV_SERVICE = 'PipEnvService';
exports.IInterpreterVersionService = Symbol('IInterpreterVersionService');
exports.IKnownSearchPathsForInterpreters = Symbol('IKnownSearchPathsForInterpreters');
exports.IVirtualEnvironmentsSearchPathProvider = Symbol('IVirtualEnvironmentsSearchPathProvider');
exports.IInterpreterLocatorService = Symbol('IInterpreterLocatorService');
exports.ICondaService = Symbol('ICondaService');
var InterpreterType;
(function (InterpreterType) {
    InterpreterType["Unknown"] = "Unknown";
    InterpreterType["Conda"] = "Conda";
    InterpreterType["VirtualEnv"] = "VirtualEnv";
    InterpreterType["Pipenv"] = "PipEnv";
    InterpreterType["Pyenv"] = "Pyenv";
    InterpreterType["Venv"] = "Venv";
})(InterpreterType = exports.InterpreterType || (exports.InterpreterType = {}));
exports.IInterpreterService = Symbol('IInterpreterService');
exports.IInterpreterDisplay = Symbol('IInterpreterDisplay');
exports.IShebangCodeLensProvider = Symbol('IShebangCodeLensProvider');
exports.IInterpreterHelper = Symbol('IInterpreterHelper');
exports.IPipEnvService = Symbol('IPipEnvService');
exports.IInterpreterLocatorHelper = Symbol('IInterpreterLocatorHelper');
exports.IInterpreterWatcher = Symbol('IInterpreterWatcher');
exports.IInterpreterWatcherBuilder = Symbol('IInterpreterWatcherBuilder');
exports.InterpreterLocatorProgressHandler = Symbol('InterpreterLocatorProgressHandler');
exports.IInterpreterLocatorProgressService = Symbol('IInterpreterLocatorProgressService');


/***/ }),
/* 91 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const lsNotSupported_1 = __webpack_require__(92);
const types_1 = __webpack_require__(97);
const types_2 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_3 = __webpack_require__(75);
const types_4 = __webpack_require__(95);
const types_5 = __webpack_require__(77);
const function_1 = __webpack_require__(80);
const jediEnabledSetting = 'jediEnabled';
const workspacePathNameForGlobalWorkspaces = '';
let LanguageServerExtensionActivationService = class LanguageServerExtensionActivationService {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.lsActivatedWorkspaces = new Map();
        this.jediActivatedOnce = false;
        this.workspaceService = this.serviceContainer.get(types_2.IWorkspaceService);
        this.output = this.serviceContainer.get(types_3.IOutputChannel, constants_1.STANDARD_OUTPUT_CHANNEL);
        this.lsNotSupportedDiagnosticService = this.serviceContainer.get(types_1.IDiagnosticsService, lsNotSupported_1.LSNotSupportedDiagnosticServiceId);
        const disposables = serviceContainer.get(types_3.IDisposableRegistry);
        disposables.push(this);
        disposables.push(this.workspaceService.onDidChangeConfiguration(this.onDidChangeConfiguration.bind(this)));
        // disposables.push(this.workspaceService.onDidChangeWorkspaceFolders(this.onWorkspaceFoldersChanged, this))
    }
    async activate(resource) {
        let jedi = this.useJedi();
        if (!jedi) {
            if (this.lsActivatedWorkspaces.has(this.getWorkspacePathKey(resource))) {
                return;
            }
            const diagnostic = await this.lsNotSupportedDiagnosticService.diagnose(undefined);
            this.lsNotSupportedDiagnosticService.handle(diagnostic).catch(function_1.emptyFn);
            if (diagnostic.length) {
                jedi = true;
            }
        }
        else {
            if (this.jediActivatedOnce) {
                return;
            }
            this.jediActivatedOnce = true;
        }
        this.resource = resource;
        await this.logStartup(jedi);
        let activatorName = jedi ? types_5.LanguageServerActivator.Jedi : types_5.LanguageServerActivator.DotNet;
        let activator = this.serviceContainer.get(types_5.ILanguageServerActivator, activatorName);
        this.currentActivator = { jedi, activator };
        try {
            await activator.activate(resource);
            if (!jedi) {
                this.lsActivatedWorkspaces.set(this.getWorkspacePathKey(resource), activator);
            }
        }
        catch (ex) {
            if (jedi) {
                return;
            }
            // Language server fails, reverting to jedi
            if (this.jediActivatedOnce) {
                return;
            }
            this.jediActivatedOnce = true;
            jedi = true;
            await this.logStartup(jedi);
            activatorName = types_5.LanguageServerActivator.Jedi;
            activator = this.serviceContainer.get(types_5.ILanguageServerActivator, activatorName);
            this.currentActivator = { jedi, activator };
            await activator.activate(resource);
        }
    }
    dispose() {
        if (this.currentActivator) {
            this.currentActivator.activator.dispose();
        }
    }
    onWorkspaceFoldersChanged() {
        // If an activated workspace folder was removed, dispose its activator
        // const workspaceKeys = this.workspaceService.workspaceFolders!.map(workspaceFolder => this.getWorkspacePathKey(workspaceFolder.uri))
        // const activatedWkspcKeys = Array.from(this.lsActivatedWorkspaces.keys())
        // const activatedWkspcFoldersRemoved = activatedWkspcKeys.filter(item => workspaceKeys.indexOf(item) < 0)
        // if (activatedWkspcFoldersRemoved.length > 0) {
        //   for (const folder of activatedWkspcFoldersRemoved) {
        //     this.lsActivatedWorkspaces.get(folder)!.dispose()
        //     this.lsActivatedWorkspaces!.delete(folder)
        //   }
        // }
    }
    async logStartup(isJedi) {
        const outputLine = isJedi
            ? 'Starting Jedi Python language engine.'
            : 'Starting Microsoft Python language server.';
        this.output.appendLine(outputLine);
    }
    async onDidChangeConfiguration(event) {
        if (!event.affectsConfiguration(`python.${jediEnabledSetting}`)) {
            return;
        }
        const jedi = this.useJedi();
        if (this.currentActivator && this.currentActivator.jedi === jedi) {
            return;
        }
        const reload = await coc_nvim_1.workspace.showPrompt(`Reload coc server to switching between language engines?`);
        if (reload) {
            coc_nvim_1.workspace.nvim.command(`CocRestart`, true);
        }
    }
    useJedi() {
        const configurationService = this.serviceContainer.get(types_3.IConfigurationService);
        return configurationService.getSettings(this.resource).jediEnabled;
    }
    getWorkspacePathKey(_resource) {
        return coc_nvim_1.workspace.rootPath;
    }
};
LanguageServerExtensionActivationService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.IServiceContainer))
], LanguageServerExtensionActivationService);
exports.LanguageServerExtensionActivationService = LanguageServerExtensionActivationService;


/***/ }),
/* 92 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(77);
const localize_1 = __webpack_require__(93);
const types_2 = __webpack_require__(95);
const base_1 = __webpack_require__(96);
const types_3 = __webpack_require__(98);
const constants_1 = __webpack_require__(99);
const promptHandler_1 = __webpack_require__(100);
const types_4 = __webpack_require__(97);
class LSNotSupportedDiagnostic extends base_1.BaseDiagnostic {
    constructor(message, resource) {
        super(constants_1.DiagnosticCodes.LSNotSupportedDiagnostic, message, vscode_languageserver_protocol_1.DiagnosticSeverity.Warning, types_4.DiagnosticScope.Global, resource);
    }
}
exports.LSNotSupportedDiagnostic = LSNotSupportedDiagnostic;
exports.LSNotSupportedDiagnosticServiceId = 'LSNotSupportedDiagnosticServiceId';
let LSNotSupportedDiagnosticService = class LSNotSupportedDiagnosticService extends base_1.BaseDiagnosticsService {
    constructor(serviceContainer, lsCompatibility, messageService) {
        super([constants_1.DiagnosticCodes.LSNotSupportedDiagnostic], serviceContainer, false);
        this.lsCompatibility = lsCompatibility;
        this.messageService = messageService;
    }
    async diagnose(resource) {
        if (await this.lsCompatibility.isSupported()) {
            return [];
        }
        else {
            return [new LSNotSupportedDiagnostic(localize_1.Diagnostics.lsNotSupported(), resource)];
        }
    }
    async onHandle(diagnostics) {
        if (diagnostics.length === 0 || !this.canHandle(diagnostics[0])) {
            return;
        }
        const diagnostic = diagnostics[0];
        if (await this.filterService.shouldIgnoreDiagnostic(diagnostic.code)) {
            return;
        }
        const commandFactory = this.serviceContainer.get(types_3.IDiagnosticsCommandFactory);
        const options = [
            {
                prompt: 'More Info',
                command: commandFactory.createCommand(diagnostic, { type: 'launch', options: 'https://aka.ms/AA3qqka' })
            },
            {
                prompt: 'Do not show again',
                command: commandFactory.createCommand(diagnostic, { type: 'ignore', options: types_4.DiagnosticScope.Global })
            }
        ];
        await this.messageService.handle(diagnostic, { commandPrompts: options });
    }
};
LSNotSupportedDiagnosticService = __decorate([
    __param(0, inversify_1.inject(types_2.IServiceContainer)),
    __param(1, inversify_1.inject(types_1.ILanguageServerCompatibilityService)),
    __param(2, inversify_1.inject(types_4.IDiagnosticHandlerService)),
    __param(2, inversify_1.named(promptHandler_1.DiagnosticCommandPromptHandlerServiceId))
], LSNotSupportedDiagnosticService);
exports.LSNotSupportedDiagnosticService = LSNotSupportedDiagnosticService;


/***/ }),
/* 93 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs = __importStar(__webpack_require__(94));
const path = __importStar(__webpack_require__(55));
const constants_1 = __webpack_require__(85);
// External callers of localize use these tables to retrieve localized values.
var Diagnostics;
(function (Diagnostics) {
    Diagnostics.warnSourceMaps = localize('diagnostics.warnSourceMaps', 'Source map support is enabled in the Python Extension, this will adversely impact performance of the extension.');
    Diagnostics.disableSourceMaps = localize('diagnostics.disableSourceMaps', 'Disable Source Map Support');
    Diagnostics.warnBeforeEnablingSourceMaps = localize('diagnostics.warnBeforeEnablingSourceMaps', 'Enabling source map support in the Python Extension will adversely impact performance of the extension.');
    Diagnostics.enableSourceMapsAndReloadVSC = localize('diagnostics.enableSourceMapsAndReloadVSC', 'Enable source mapgs and reload coc service.');
    Diagnostics.lsNotSupported = localize('diagnostics.lsNotSupported', 'Your operating system does not meet the minimum requirements of the Language Server. Reverting to the alternative, Jedi.');
    Diagnostics.invalidPythonPathInDebuggerSettings = localize('diagnostics.invalidPythonPathInDebuggerSettings', 'You need to select a Python interpreter before you start debugging.\n\nTip: click on "Select Python Interpreter" in the status bar.');
    Diagnostics.invalidPythonPathInDebuggerLaunch = localize('diagnostics.invalidPythonPathInDebuggerLaunch', 'The Python path in your debug configuration is invalid.');
})(Diagnostics = exports.Diagnostics || (exports.Diagnostics = {}));
var Common;
(function (Common) {
    Common.canceled = localize('Common.canceled', 'Canceled');
    Common.loadingExtension = localize('Common.loadingPythonExtension', 'Python extension loading...');
    Common.openOutputPanel = localize('Common.openOutputPanel', 'Show output');
})(Common = exports.Common || (exports.Common = {}));
var LanguageService;
(function (LanguageService) {
    LanguageService.bannerMessage = localize('LanguageService.bannerMessage', 'Can you please take 2 minutes to tell us how the Python Language Server is working for you?');
    LanguageService.bannerLabelYes = localize('LanguageService.bannerLabelYes', 'Yes, take survey now');
    LanguageService.bannerLabelNo = localize('LanguageService.bannerLabelNo', 'No, thanks');
    LanguageService.lsFailedToStart = localize('LanguageService.lsFailedToStart', 'We encountered an issue starting the Language Server. Reverting to the alternative, Jedi. Check the Python output panel for details.');
    LanguageService.lsFailedToDownload = localize('LanguageService.lsFailedToDownload', 'We encountered an issue downloading the Language Server. Reverting to the alternative, Jedi. Check the Python output panel for details.');
    LanguageService.lsFailedToExtract = localize('LanguageService.lsFailedToExtract', 'We encountered an issue extracting the Language Server. Reverting to the alternative, Jedi. Check the Python output panel for details.');
    LanguageService.downloadFailedOutputMessage = localize('LanguageService.downloadFailedOutputMessage', 'download failed.');
    LanguageService.extractionFailedOutputMessage = localize('LanguageService.extractionFailedOutputMessage', 'extraction failed.');
    LanguageService.extractionCompletedOutputMessage = localize('LanguageService.extractionCompletedOutputMessage', 'complete.');
    LanguageService.extractionDoneOutputMessage = localize('LanguageService.extractionDoneOutputMessage', 'done.');
    LanguageService.reloadVSCodeIfSeachPathHasChanged = localize('LanguageService.reloadVSCodeIfSeachPathHasChanged', 'Search paths have changed for this Python interpreter. Please reload the extension to ensure that the IntelliSense works correctly.');
})(LanguageService = exports.LanguageService || (exports.LanguageService = {}));
var Interpreters;
(function (Interpreters) {
    Interpreters.loading = localize('Interpreters.LoadingInterpreters', 'Loading Python Interpreters');
    Interpreters.refreshing = localize('Interpreters.RefreshingInterpreters', 'Refreshing Python Interpreters');
})(Interpreters = exports.Interpreters || (exports.Interpreters = {}));
var Linters;
(function (Linters) {
    Linters.installedButNotEnabled = localize('Linter.InstalledButNotEnabled', 'Linter {0} is installed but not enabled.');
    Linters.replaceWithSelectedLinter = localize('Linter.replaceWithSelectedLinter', 'Multiple linters are enabled in settings. Replace with \'{0}\'?');
})(Linters = exports.Linters || (exports.Linters = {}));
// export namespace InteractiveShiftEnterBanner {
//   export const bannerMessage = localize('InteractiveShiftEnterBanner.bannerMessage', 'Would you like shift-enter to send code to the new Interactive Window experience?')
//   export const bannerLabelYes = localize('InteractiveShiftEnterBanner.bannerLabelYes', 'Yes')
//   export const bannerLabelNo = localize('InteractiveShiftEnterBanner.bannerLabelNo', 'No')
// }
//
var DataScienceSurveyBanner;
(function (DataScienceSurveyBanner) {
    DataScienceSurveyBanner.bannerMessage = localize('DataScienceSurveyBanner.bannerMessage', 'Can you please take 2 minutes to tell us how the Python Data Science features are working for you?');
    DataScienceSurveyBanner.bannerLabelYes = localize('DataScienceSurveyBanner.bannerLabelYes', 'Yes, take survey now');
    DataScienceSurveyBanner.bannerLabelNo = localize('DataScienceSurveyBanner.bannerLabelNo', 'No, thanks');
})(DataScienceSurveyBanner = exports.DataScienceSurveyBanner || (exports.DataScienceSurveyBanner = {}));
var DataScience;
(function (DataScience) {
    DataScience.historyTitle = localize('DataScience.historyTitle', 'Python Interactive');
    DataScience.dataExplorerTitle = localize('DataScience.dataExplorerTitle', 'Data Viewer');
    DataScience.badWebPanelFormatString = localize('DataScience.badWebPanelFormatString', '<html><body><h1>{0} is not a valid file name</h1></body></html>');
    DataScience.sessionDisposed = localize('DataScience.sessionDisposed', 'Cannot execute code, session has been disposed.');
    DataScience.unknownMimeTypeFormat = localize('DataScience.unknownMimeTypeFormat', 'Mime type {0} is not currently supported');
    DataScience.exportDialogTitle = localize('DataScience.exportDialogTitle', 'Export to Jupyter Notebook');
    DataScience.exportDialogFilter = localize('DataScience.exportDialogFilter', 'Jupyter Notebooks');
    DataScience.exportDialogComplete = localize('DataScience.exportDialogComplete', 'Notebook written to {0}');
    DataScience.exportDialogFailed = localize('DataScience.exportDialogFailed', 'Failed to export notebook. {0}');
    DataScience.exportOpenQuestion = localize('DataScience.exportOpenQuestion', 'Open in browser');
    DataScience.runCellLensCommandTitle = localize('python.command.python.datascience.runcell.title', 'Run cell');
    DataScience.importDialogTitle = localize('DataScience.importDialogTitle', 'Import Jupyter Notebook');
    DataScience.importDialogFilter = localize('DataScience.importDialogFilter', 'Jupyter Notebooks');
    DataScience.notebookCheckForImportTitle = localize('DataScience.notebookCheckForImportTitle', 'Do you want to import the Jupyter Notebook into Python code?');
    DataScience.notebookCheckForImportYes = localize('DataScience.notebookCheckForImportYes', 'Import');
    DataScience.notebookCheckForImportNo = localize('DataScience.notebookCheckForImportNo', 'Later');
    DataScience.notebookCheckForImportDontAskAgain = localize('DataScience.notebookCheckForImportDontAskAgain', 'Don\'t Ask Again');
    DataScience.jupyterNotSupported = localize('DataScience.jupyterNotSupported', 'Jupyter is not installed');
    DataScience.jupyterNotSupportedBecauseOfEnvironment = localize('DataScience.jupyterNotSupportedBecauseOfEnvironment', 'Activating {0} to run Jupyter failed with {1}');
    DataScience.jupyterNbConvertNotSupported = localize('DataScience.jupyterNbConvertNotSupported', 'Jupyter nbconvert is not installed');
    DataScience.jupyterLaunchTimedOut = localize('DataScience.jupyterLaunchTimedOut', 'The Jupyter notebook server failed to launch in time');
    DataScience.jupyterLaunchNoURL = localize('DataScience.jupyterLaunchNoURL', 'Failed to find the URL of the launched Jupyter notebook server');
    DataScience.pythonInteractiveHelpLink = localize('DataScience.pythonInteractiveHelpLink', 'See [https://aka.ms/pyaiinstall] for help on installing jupyter.');
    DataScience.importingFormat = localize('DataScience.importingFormat', 'Importing {0}');
    DataScience.startingJupyter = localize('DataScience.startingJupyter', 'Starting Jupyter server');
    DataScience.connectingToJupyter = localize('DataScience.connectingToJupyter', 'Connecting to Jupyter server');
    DataScience.exportingFormat = localize('DataScience.exportingFormat', 'Exporting {0}');
    DataScience.runAllCellsLensCommandTitle = localize('python.command.python.datascience.runallcells.title', 'Run all cells');
    DataScience.runAllCellsAboveLensCommandTitle = localize('python.command.python.datascience.runallcellsabove.title', 'Run Above');
    DataScience.runCellAndAllBelowLensCommandTitle = localize('python.command.python.datascience.runcellandallbelow.title', 'Run Below');
    DataScience.importChangeDirectoryComment = localize('DataScience.importChangeDirectoryComment', '#%% Change working directory from the workspace root to the ipynb file location. Turn this addition off with the DataScience.changeDirOnImportExport setting');
    DataScience.exportChangeDirectoryComment = localize('DataScience.exportChangeDirectoryComment', '# Change directory to VSCode workspace root so that relative path loads work correctly. Turn this addition off with the DataScience.changeDirOnImportExport setting');
    DataScience.restartKernelMessage = localize('DataScience.restartKernelMessage', 'Do you want to restart the Jupter kernel? All variables will be lost.');
    DataScience.restartKernelMessageYes = localize('DataScience.restartKernelMessageYes', 'Restart');
    DataScience.restartKernelMessageNo = localize('DataScience.restartKernelMessageNo', 'Cancel');
    DataScience.restartingKernelStatus = localize('DataScience.restartingKernelStatus', 'Restarting iPython Kernel');
    DataScience.restartingKernelFailed = localize('DataScience.restartingKernelFailed', 'Kernel restart failed. Jupyter server is hung. Please reload VS code.');
    DataScience.interruptingKernelFailed = localize('DataScience.interruptingKernelFailed', 'Kernel interrupt failed. Jupyter server is hung. Please reload VS code.');
    DataScience.executingCode = localize('DataScience.executingCode', 'Executing Cell');
    DataScience.collapseAll = localize('DataScience.collapseAll', 'Collapse all cell inputs');
    DataScience.expandAll = localize('DataScience.expandAll', 'Expand all cell inputs');
    DataScience.exportKey = localize('DataScience.export', 'Export as Jupyter Notebook');
    DataScience.restartServer = localize('DataScience.restartServer', 'Restart iPython Kernel');
    DataScience.undo = localize('DataScience.undo', 'Undo');
    DataScience.redo = localize('DataScience.redo', 'Redo');
    DataScience.clearAll = localize('DataScience.clearAll', 'Remove All Cells');
    DataScience.pythonVersionHeader = localize('DataScience.pythonVersionHeader', 'Python Version:');
    DataScience.pythonRestartHeader = localize('DataScience.pythonRestartHeader', 'Restarted Kernel:');
    DataScience.pythonNewHeader = localize('DataScience.pythonNewHeader', 'Started new kernel:');
    DataScience.pythonVersionHeaderNoPyKernel = localize('DataScience.pythonVersionHeaderNoPyKernel', 'Python Version may not match, no ipykernel found:');
    DataScience.jupyterSelectURILaunchLocal = localize('DataScience.jupyterSelectURILaunchLocal', 'Launch local Jupyter server');
    DataScience.jupyterSelectURISpecifyURI = localize('DataScience.jupyterSelectURISpecifyURI', 'Type in the URI for the Jupyter server');
    DataScience.jupyterSelectURIPrompt = localize('DataScience.jupyterSelectURIPrompt', 'Enter the URI of a Jupyter server');
    DataScience.jupyterSelectURIInvalidURI = localize('DataScience.jupyterSelectURIInvalidURI', 'Invalid URI specified');
    DataScience.jupyterNotebookFailure = localize('DataScience.jupyterNotebookFailure', 'Jupyter notebook failed to launch. \r\n{0}');
    DataScience.jupyterNotebookConnectFailed = localize('DataScience.jupyterNotebookConnectFailed', 'Failed to connect to Jupyter notebook. \r\n{0}\r\n{1}');
    DataScience.jupyterNotebookRemoteConnectFailed = localize('DataScience.jupyterNotebookRemoteConnectFailed', 'Failed to connect to remote Jupyter notebook.\r\nCheck that the Jupyter Server URI setting has a valid running server specified.\r\n{0}\r\n{1}');
    DataScience.jupyterServerCrashed = localize('DataScience.jupyterServerCrashed', 'Jupyter server crashed. Unable to connect. \r\nError code from jupyter: {0}');
    DataScience.notebookVersionFormat = localize('DataScience.notebookVersionFormat', 'Jupyter Notebook Version: {0}');
    // tslint:disable-next-line:no-multiline-string
    DataScience.jupyterKernelNotSupportedOnActive = localize('DataScience.jupyterKernelNotSupportedOnActive', `iPython kernel cannot be started from '{0}'. Using closest match {1} instead.`);
    DataScience.jupyterKernelSpecNotFound = localize('DataScience.jupyterKernelSpecNotFound', 'Cannot create a iPython kernel spec and none are available for use');
    DataScience.interruptKernel = localize('DataScience.interruptKernel', 'Interrupt iPython Kernel');
    DataScience.interruptKernelStatus = localize('DataScience.interruptKernelStatus', 'Interrupting iPython Kernel');
    DataScience.exportCancel = localize('DataScience.exportCancel', 'Cancel');
    DataScience.restartKernelAfterInterruptMessage = localize('DataScience.restartKernelAfterInterruptMessage', 'Interrupting the kernel timed out. Do you want to restart the kernel instead? All variables will be lost.');
    DataScience.pythonInterruptFailedHeader = localize('DataScience.pythonInterruptFailedHeader', 'Keyboard interrupt crashed the kernel. Kernel restarted.');
    DataScience.sysInfoURILabel = localize('DataScience.sysInfoURILabel', 'Jupyter Server URI: ');
    DataScience.executingCodeFailure = localize('DataScience.executingCodeFailure', 'Executing code failed : {0}');
    DataScience.inputWatermark = localize('DataScience.inputWatermark', 'Shift-enter to run');
    DataScience.liveShareConnectFailure = localize('DataScience.liveShareConnectFailure', 'Cannot connect to host jupyter session. URI not found.');
    DataScience.liveShareCannotSpawnNotebooks = localize('DataScience.liveShareCannotSpawnNotebooks', 'Spawning jupyter notebooks is not supported over a live share connection');
    DataScience.liveShareCannotImportNotebooks = localize('DataScience.liveShareCannotImportNotebooks', 'Importing notebooks is not currently supported over a live share connection');
    DataScience.liveShareHostFormat = localize('DataScience.liveShareHostFormat', '{0} Jupyter Server');
    DataScience.liveShareSyncFailure = localize('DataScience.liveShareSyncFailure', 'Synchronization failure during live share startup.');
    DataScience.liveShareServiceFailure = localize('DataScience.liveShareServiceFailure', 'Failure starting \'{0}\' service during live share connection.');
    DataScience.documentMismatch = localize('DataScience.documentMismatch', 'Cannot run cells, duplicate documents for {0} found.');
    DataScience.jupyterGetVariablesBadResults = localize('DataScience.jupyterGetVariablesBadResults', 'Failed to fetch variable info from the Jupyter server.');
    DataScience.pythonInteractiveCreateFailed = localize('DataScience.pythonInteractiveCreateFailed', 'Failure to create a \'Python Interactive\' window. Try reinstalling the Python extension.');
})(DataScience = exports.DataScience || (exports.DataScience = {}));
var DebugConfigurationPrompts;
(function (DebugConfigurationPrompts) {
    DebugConfigurationPrompts.selectConfigurationTitle = localize('debug.selectConfigurationTitle', 'Select a debug configuration');
    DebugConfigurationPrompts.selectConfigurationPlaceholder = localize('debug.selectConfigurationPlaceholder', 'Debug Configuration');
    DebugConfigurationPrompts.debugFileConfigurationLabel = localize('debug.debugFileConfigurationLabel', 'Python File');
    DebugConfigurationPrompts.debugFileConfigurationDescription = localize('debug.debugFileConfigurationDescription', 'Debug currently active Python file');
    DebugConfigurationPrompts.debugModuleConfigurationLabel = localize('debug.debugModuleConfigurationLabel', 'Module');
    DebugConfigurationPrompts.debugModuleConfigurationDescription = localize('debug.debugModuleConfigurationDescription', 'Debug a python module by invoking it with \'-m\'');
    DebugConfigurationPrompts.remoteAttachConfigurationLabel = localize('debug.remoteAttachConfigurationLabel', 'Remote Attach');
    DebugConfigurationPrompts.remoteAttachConfigurationDescription = localize('debug.remoteAttachConfigurationDescription', 'Attach to a remote ptsvd debug server');
    DebugConfigurationPrompts.debugDjangoConfigurationLabel = localize('debug.debugDjangoConfigurationLabel', 'Django');
    DebugConfigurationPrompts.debugDjangoConfigurationDescription = localize('debug.debugDjangoConfigurationDescription', 'Launch and debug a Django web application');
    DebugConfigurationPrompts.debugFlaskConfigurationLabel = localize('debug.debugFlaskConfigurationLabel', 'Flask');
    DebugConfigurationPrompts.debugFlaskConfigurationDescription = localize('debug.debugFlaskConfigurationDescription', 'Launch and debug a Flask web application');
    DebugConfigurationPrompts.debugPyramidConfigurationLabel = localize('debug.debugPyramidConfigurationLabel', 'Pyramid');
    DebugConfigurationPrompts.debugPyramidConfigurationDescription = localize('debug.debugPyramidConfigurationDescription', 'Web Application');
    DebugConfigurationPrompts.djangoEnterManagePyPathTitle = localize('debug.djangoEnterManagePyPathTitle', 'Debug Django');
    // tslint:disable-next-line:no-invalid-template-strings
    DebugConfigurationPrompts.djangoEnterManagePyPathPrompt = localize('debug.djangoEnterManagePyPathPrompt', 'Enter path to manage.py (\'${workspaceFolder}\' points to the root of the current workspace folder)');
    DebugConfigurationPrompts.djangoEnterManagePyPathInvalidFilePathError = localize('debug.djangoEnterManagePyPathInvalidFilePathError', 'Enter a valid python file path');
    DebugConfigurationPrompts.flaskEnterAppPathOrNamePathTitle = localize('debug.flaskEnterAppPathOrNamePathTitle', 'Debug Flask');
    DebugConfigurationPrompts.flaskEnterAppPathOrNamePathPrompt = localize('debug.flaskEnterAppPathOrNamePathPrompt', 'Enter path to application, e.g. \'app.py\' or \'app\'');
    DebugConfigurationPrompts.flaskEnterAppPathOrNamePathInvalidNameError = localize('debug.flaskEnterAppPathOrNamePathInvalidNameError', 'Enter a valid name');
    DebugConfigurationPrompts.moduleEnterModuleTitle = localize('debug.moduleEnterModuleTitle', 'Debug Module');
    DebugConfigurationPrompts.moduleEnterModulePrompt = localize('debug.moduleEnterModulePrompt', 'Enter Python module/package name');
    DebugConfigurationPrompts.moduleEnterModuleInvalidNameError = localize('debug.moduleEnterModuleInvalidNameError', 'Enter a valid module name');
    DebugConfigurationPrompts.pyramidEnterDevelopmentIniPathTitle = localize('debug.pyramidEnterDevelopmentIniPathTitle', 'Debug Pyramid');
    // tslint:disable-next-line:no-invalid-template-strings
    DebugConfigurationPrompts.pyramidEnterDevelopmentIniPathPrompt = localize('debug.pyramidEnterDevelopmentIniPathPrompt', '`Enter path to development.ini (\'${workspaceFolderToken}\' points to the root of the current workspace folder)`');
    DebugConfigurationPrompts.pyramidEnterDevelopmentIniPathInvalidFilePathError = localize('debug.pyramidEnterDevelopmentIniPathInvalidFilePathError', 'Enter a valid file path');
    DebugConfigurationPrompts.attachRemotePortTitle = localize('debug.attachRemotePortTitle', 'Remote Debugging');
    DebugConfigurationPrompts.attachRemotePortPrompt = localize('debug.attachRemotePortPrompt', 'Enter the port number that the ptvsd server is listening on');
    DebugConfigurationPrompts.attachRemotePortValidationError = localize('debug.attachRemotePortValidationError', 'Enter a valid port number');
    DebugConfigurationPrompts.attachRemoteHostTitle = localize('debug.attachRemoteHostTitle', 'Remote Debugging');
    DebugConfigurationPrompts.attachRemoteHostPrompt = localize('debug.attachRemoteHostPrompt', 'Enter host name');
    DebugConfigurationPrompts.attachRemoteHostValidationError = localize('debug.attachRemoteHostValidationError', 'Enter a host name or IP address');
})(DebugConfigurationPrompts = exports.DebugConfigurationPrompts || (exports.DebugConfigurationPrompts = {}));
var UnitTests;
(function (UnitTests) {
    UnitTests.testErrorDiagnosticMessage = localize('UnitTests.testErrorDiagnosticMessage', 'Error');
    UnitTests.testFailDiagnosticMessage = localize('UnitTests.testFailDiagnosticMessage', 'Fail');
    UnitTests.testSkippedDiagnosticMessage = localize('UnitTests.testSkippedDiagnosticMessage', 'Skipped');
    UnitTests.configureTests = localize('UnitTests.configureTests', 'Configure Test Framework');
    UnitTests.disableTests = localize('UnitTests.disableTests', 'Disable Tests');
})(UnitTests = exports.UnitTests || (exports.UnitTests = {}));
// Skip using vscode-nls and instead just compute our strings based on key values. Key values
// can be loaded out of the nls.<locale>.json files
let loadedCollection;
let defaultCollection;
const askedForCollection = {};
let loadedLocale;
function localize(key, defValue) {
    // Return a pointer to function so that we refetch it on each call.
    return () => {
        return getString(key, defValue);
    };
}
exports.localize = localize;
function getCollection() {
    // Load the current collection
    if (!loadedCollection || parseLocale() !== loadedLocale) {
        load();
    }
    // Combine the default and loaded collections
    return Object.assign({}, defaultCollection, loadedCollection);
}
exports.getCollection = getCollection;
function getAskedForCollection() {
    return askedForCollection;
}
exports.getAskedForCollection = getAskedForCollection;
function parseLocale() {
    // Attempt to load from the vscode locale. If not there, use english
    return '';
}
function getString(key, defValue) {
    // Load the current collection
    if (!loadedCollection || parseLocale() !== loadedLocale) {
        load();
    }
    // First lookup in the dictionary that matches the current locale
    if (loadedCollection && loadedCollection.hasOwnProperty(key)) {
        askedForCollection[key] = loadedCollection[key];
        return loadedCollection[key];
    }
    // Fallback to the default dictionary
    if (defaultCollection && defaultCollection.hasOwnProperty(key)) {
        askedForCollection[key] = defaultCollection[key];
        return defaultCollection[key];
    }
    // Not found, return the default
    askedForCollection[key] = defValue;
    return defValue;
}
function load() {
    // Figure out our current locale.
    loadedLocale = parseLocale();
    // Get the default collection if necessary. Strings may be in the default or the locale json
    const defaultNlsFile = path.join(constants_1.EXTENSION_ROOT_DIR, 'package.nls.json');
    if (fs.existsSync(defaultNlsFile)) {
        const contents = fs.readFileSync(defaultNlsFile, 'utf8');
        defaultCollection = JSON.parse(contents);
    }
    else {
        defaultCollection = {};
    }
}
// Default to loading the current locale
load();


/***/ }),
/* 94 */
/***/ (function(module, exports) {

module.exports = require("fs");

/***/ }),
/* 95 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:enable:callable-types
exports.IServiceManager = Symbol('IServiceManager');
exports.IServiceContainer = Symbol('IServiceContainer');


/***/ }),
/* 96 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var BaseDiagnosticsService_1;
Object.defineProperty(exports, "__esModule", { value: true });
'use strict';
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(97);
let BaseDiagnostic = class BaseDiagnostic {
    constructor(code, message, severity, scope, resource, invokeHandler = 'default') {
        this.code = code;
        this.message = message;
        this.severity = severity;
        this.scope = scope;
        this.resource = resource;
        this.invokeHandler = invokeHandler;
    }
};
BaseDiagnostic = __decorate([
    inversify_1.injectable()
], BaseDiagnostic);
exports.BaseDiagnostic = BaseDiagnostic;
let BaseDiagnosticsService = BaseDiagnosticsService_1 = class BaseDiagnosticsService {
    constructor(supportedDiagnosticCodes, serviceContainer, runInBackground = false) {
        this.supportedDiagnosticCodes = supportedDiagnosticCodes;
        this.serviceContainer = serviceContainer;
        this.runInBackground = runInBackground;
        this.filterService = serviceContainer.get(types_1.IDiagnosticFilterService);
    }
    async handle(diagnostics) {
        if (diagnostics.length === 0) {
            return;
        }
        const diagnosticsToHandle = diagnostics.filter(item => {
            if (item.invokeHandler && item.invokeHandler === 'always') {
                return true;
            }
            const key = this.getDiagnosticsKey(item);
            if (BaseDiagnosticsService_1.handledDiagnosticCodeKeys.indexOf(key) !== -1) {
                return false;
            }
            BaseDiagnosticsService_1.handledDiagnosticCodeKeys.push(key);
            return true;
        });
        await this.onHandle(diagnosticsToHandle);
    }
    async canHandle(diagnostic) {
        // sendTelemetryEvent(EventName.DIAGNOSTICS_MESSAGE, undefined, { code: diagnostic.code })
        return this.supportedDiagnosticCodes.filter(item => item === diagnostic.code).length > 0;
    }
    /**
     * Returns a key used to keep track of whether a diagnostic was handled or not.
     * So as to prevent handling/displaying messages multiple times for the same diagnostic.
     *
     * @protected
     * @param {IDiagnostic} diagnostic
     * @returns {string}
     * @memberof BaseDiagnosticsService
     */
    getDiagnosticsKey(diagnostic) {
        if (diagnostic.scope === types_1.DiagnosticScope.Global) {
            return diagnostic.code;
        }
        const workspaceFolder = diagnostic.resource ? coc_nvim_1.workspace.workspaceFolder : undefined;
        return `${diagnostic.code}dbe75733-0407-4124-a1b2-ca769dc30523${workspaceFolder ? coc_nvim_1.workspace.rootPath : ''}`;
    }
};
BaseDiagnosticsService.handledDiagnosticCodeKeys = [];
BaseDiagnosticsService = BaseDiagnosticsService_1 = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.unmanaged()),
    __param(1, inversify_1.unmanaged()),
    __param(2, inversify_1.unmanaged())
], BaseDiagnosticsService);
exports.BaseDiagnosticsService = BaseDiagnosticsService;


/***/ }),
/* 97 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
var DiagnosticScope;
(function (DiagnosticScope) {
    DiagnosticScope["Global"] = "Global";
    DiagnosticScope["WorkspaceFolder"] = "WorkspaceFolder";
})(DiagnosticScope = exports.DiagnosticScope || (exports.DiagnosticScope = {}));
var DiagnosticIgnoreScope;
(function (DiagnosticIgnoreScope) {
    DiagnosticIgnoreScope["always"] = "always";
    DiagnosticIgnoreScope["session"] = "session";
})(DiagnosticIgnoreScope = exports.DiagnosticIgnoreScope || (exports.DiagnosticIgnoreScope = {}));
exports.IDiagnosticsService = Symbol('IDiagnosticsService');
exports.IDiagnosticFilterService = Symbol('IDiagnosticFilterService');
exports.IDiagnosticHandlerService = Symbol('IDiagnosticHandlerService');
exports.IInvalidPythonPathInDebuggerService = Symbol('IInvalidPythonPathInDebuggerService');
exports.ISourceMapSupportService = Symbol('ISourceMapSupportService');


/***/ }),
/* 98 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.IDiagnosticsCommandFactory = Symbol('IDiagnosticsCommandFactory');


/***/ }),
/* 99 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
var DiagnosticCodes;
(function (DiagnosticCodes) {
    DiagnosticCodes["InvalidEnvironmentPathVariableDiagnostic"] = "InvalidEnvironmentPathVariableDiagnostic";
    DiagnosticCodes["InvalidDebuggerTypeDiagnostic"] = "InvalidDebuggerTypeDiagnostic";
    DiagnosticCodes["NoPythonInterpretersDiagnostic"] = "NoPythonInterpretersDiagnostic";
    DiagnosticCodes["MacInterpreterSelectedAndNoOtherInterpretersDiagnostic"] = "MacInterpreterSelectedAndNoOtherInterpretersDiagnostic";
    DiagnosticCodes["MacInterpreterSelectedAndHaveOtherInterpretersDiagnostic"] = "MacInterpreterSelectedAndHaveOtherInterpretersDiagnostic";
    DiagnosticCodes["InvalidPythonPathInDebuggerSettingsDiagnostic"] = "InvalidPythonPathInDebuggerSettingsDiagnostic";
    DiagnosticCodes["InvalidPythonPathInDebuggerLaunchDiagnostic"] = "InvalidPythonPathInDebuggerLaunchDiagnostic";
    DiagnosticCodes["EnvironmentActivationInPowerShellWithBatchFilesNotSupportedDiagnostic"] = "EnvironmentActivationInPowerShellWithBatchFilesNotSupportedDiagnostic";
    DiagnosticCodes["NoCurrentlySelectedPythonInterpreterDiagnostic"] = "InvalidPythonInterpreterDiagnostic";
    DiagnosticCodes["LSNotSupportedDiagnostic"] = "LSNotSupportedDiagnostic";
})(DiagnosticCodes = exports.DiagnosticCodes || (exports.DiagnosticCodes = {}));


/***/ }),
/* 100 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(95);
const coc_nvim_1 = __webpack_require__(2);
exports.DiagnosticCommandPromptHandlerServiceId = 'DiagnosticCommandPromptHandlerServiceId';
let DiagnosticCommandPromptHandlerService = class DiagnosticCommandPromptHandlerService {
    constructor(serviceContainer) {
        // this.appShell = serviceContainer.get<IApplicationShell>(IApplicationShell)
    }
    async handle(diagnostic, options = { commandPrompts: [] }) {
        const prompts = options.commandPrompts.map(option => option.prompt);
        const response = await this.displayMessage(options.message ? options.message : diagnostic.message, diagnostic.severity, prompts);
        if (!response) {
            return;
        }
        const selectedOption = options.commandPrompts.find(option => option.prompt === response);
        if (selectedOption && selectedOption.command) {
            await selectedOption.command.invoke();
        }
    }
    async showQuickPick(message, prompts) {
        let idx = await coc_nvim_1.workspace.showQuickpick(prompts, message);
        if (idx == -1)
            return undefined;
        return prompts[idx];
    }
    async displayMessage(message, severity, prompts) {
        switch (severity) {
            case vscode_languageserver_protocol_1.DiagnosticSeverity.Error: {
                return this.showQuickPick(message, prompts);
            }
            case vscode_languageserver_protocol_1.DiagnosticSeverity.Warning: {
                return this.showQuickPick(message, prompts);
            }
            default: {
                return this.showQuickPick(message, prompts);
            }
        }
    }
};
DiagnosticCommandPromptHandlerService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], DiagnosticCommandPromptHandlerService);
exports.DiagnosticCommandPromptHandlerService = DiagnosticCommandPromptHandlerService;


/***/ }),
/* 101 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const constants_1 = __webpack_require__(84);
const types_1 = __webpack_require__(75);
const contracts_1 = __webpack_require__(90);
const types_2 = __webpack_require__(95);
const jediProxyFactory_1 = __webpack_require__(102);
const completionProvider_1 = __webpack_require__(167);
const definitionProvider_1 = __webpack_require__(189);
const hoverProvider_1 = __webpack_require__(190);
const objectDefinitionProvider_1 = __webpack_require__(191);
const referenceProvider_1 = __webpack_require__(192);
const renameProvider_1 = __webpack_require__(193);
const signatureProvider_1 = __webpack_require__(203);
const symbolProvider_1 = __webpack_require__(204);
const blockFormatProvider_1 = __webpack_require__(206);
const dispatcher_1 = __webpack_require__(209);
const onEnterFormatter_1 = __webpack_require__(210);
const main_1 = __webpack_require__(214);
let JediExtensionActivator = class JediExtensionActivator {
    constructor(serviceManager) {
        this.serviceManager = serviceManager;
        this.context = this.serviceManager.get(types_1.IExtensionContext);
        this.documentSelector = constants_1.PYTHON;
        let config = coc_nvim_1.workspace.getConfiguration('python');
        this.shortcut = config.get('jediShortcut', 'JD');
    }
    async activate(_resource) {
        if (this.jediFactory) {
            throw new Error('Jedi already started');
        }
        const context = this.context;
        const jediFactory = (this.jediFactory = new jediProxyFactory_1.JediFactory(context.asAbsolutePath('.'), this.serviceManager));
        context.subscriptions.push(jediFactory);
        context.subscriptions.push(...objectDefinitionProvider_1.activateGoToObjectDefinitionProvider(jediFactory));
        context.subscriptions.push(jediFactory);
        context.subscriptions.push(coc_nvim_1.languages.registerRenameProvider(this.documentSelector, new renameProvider_1.PythonRenameProvider(this.serviceManager)));
        const definitionProvider = new definitionProvider_1.PythonDefinitionProvider(jediFactory);
        context.subscriptions.push(coc_nvim_1.languages.registerDefinitionProvider(this.documentSelector, definitionProvider));
        context.subscriptions.push(coc_nvim_1.languages.registerHoverProvider(this.documentSelector, new hoverProvider_1.PythonHoverProvider(jediFactory)));
        context.subscriptions.push(coc_nvim_1.languages.registerReferencesProvider(this.documentSelector, new referenceProvider_1.PythonReferenceProvider(jediFactory)));
        context.subscriptions.push(coc_nvim_1.languages.registerCompletionItemProvider('jedi', this.shortcut, ['python'], new completionProvider_1.PythonCompletionItemProvider(jediFactory, this.serviceManager), ['.']));
        context.subscriptions.push(coc_nvim_1.languages.registerCodeLensProvider(this.documentSelector, this.serviceManager.get(contracts_1.IShebangCodeLensProvider)));
        const onTypeDispatcher = new dispatcher_1.OnTypeFormattingDispatcher({
            '\n': new onEnterFormatter_1.OnEnterFormatter(),
            ':': new blockFormatProvider_1.BlockFormatProviders()
        });
        const onTypeTriggers = onTypeDispatcher.getTriggerCharacters();
        if (onTypeTriggers) {
            context.subscriptions.push(coc_nvim_1.languages.registerOnTypeFormattingEditProvider(this.documentSelector, onTypeDispatcher, [onTypeTriggers.first, ...onTypeTriggers.more]));
        }
        const serviceContainer = this.serviceManager.get(types_2.IServiceContainer);
        context.subscriptions.push(new main_1.WorkspaceSymbols(serviceContainer));
        const symbolProvider = new symbolProvider_1.JediSymbolProvider(serviceContainer, jediFactory);
        context.subscriptions.push(coc_nvim_1.languages.registerDocumentSymbolProvider(this.documentSelector, symbolProvider));
        const pythonSettings = this.serviceManager.get(types_1.IConfigurationService).getSettings();
        if (pythonSettings.devOptions.indexOf('DISABLE_SIGNATURE') === -1) {
            context.subscriptions.push(coc_nvim_1.languages.registerSignatureHelpProvider(this.documentSelector, new signatureProvider_1.PythonSignatureProvider(jediFactory), ['(', ',']));
        }
        context.subscriptions.push(coc_nvim_1.languages.registerRenameProvider(constants_1.PYTHON, new renameProvider_1.PythonRenameProvider(serviceContainer)));
    }
    dispose() {
        if (this.jediFactory) {
            this.jediFactory.dispose();
        }
    }
};
JediExtensionActivator = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceManager))
], JediExtensionActivator);
exports.JediExtensionActivator = JediExtensionActivator;


/***/ }),
/* 102 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const jediProxy_1 = __webpack_require__(103);
class JediFactory {
    constructor(extensionRootPath, serviceContainer) {
        this.extensionRootPath = extensionRootPath;
        this.serviceContainer = serviceContainer;
        this.disposables = [];
        this.jediProxyHandlers = new Map();
    }
    dispose() {
        this.disposables.forEach(disposable => disposable.dispose());
        this.disposables = [];
    }
    getJediProxyHandler(resource) {
        let workspacePath = coc_nvim_1.workspace.rootPath;
        if (!this.jediProxyHandlers.has(workspacePath)) {
            const jediProxy = new jediProxy_1.JediProxy(this.extensionRootPath, workspacePath, this.serviceContainer);
            const jediProxyHandler = new jediProxy_1.JediProxyHandler(jediProxy);
            this.disposables.push(jediProxy, jediProxyHandler);
            this.jediProxyHandlers.set(workspacePath, jediProxyHandler);
        }
        // tslint:disable-next-line:no-non-null-assertion
        return this.jediProxyHandlers.get(workspacePath);
    }
}
exports.JediFactory = JediFactory;


/***/ }),
/* 103 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const fs_extra_1 = __importDefault(__webpack_require__(104));
const os_1 = __importDefault(__webpack_require__(56));
const path_1 = __importDefault(__webpack_require__(55));
// @ts-ignore
const pidusage = __importStar(__webpack_require__(143));
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const constants_1 = __webpack_require__(84);
const function_1 = __webpack_require__(80);
const constants_2 = __webpack_require__(147);
const types_1 = __webpack_require__(148);
const string_1 = __webpack_require__(149);
const types_2 = __webpack_require__(75);
const async_1 = __webpack_require__(150);
const decorators_1 = __webpack_require__(151);
const stopWatch_1 = __webpack_require__(165);
const types_3 = __webpack_require__(166);
const contracts_1 = __webpack_require__(90);
const logger_1 = __webpack_require__(86);
const pythonVSCodeTypeMappings = new Map();
pythonVSCodeTypeMappings.set('none', vscode_languageserver_protocol_1.CompletionItemKind.Value);
pythonVSCodeTypeMappings.set('type', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('tuple', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('dict', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('dictionary', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('function', vscode_languageserver_protocol_1.CompletionItemKind.Function);
pythonVSCodeTypeMappings.set('lambda', vscode_languageserver_protocol_1.CompletionItemKind.Function);
pythonVSCodeTypeMappings.set('generator', vscode_languageserver_protocol_1.CompletionItemKind.Function);
pythonVSCodeTypeMappings.set('class', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('instance', vscode_languageserver_protocol_1.CompletionItemKind.Reference);
pythonVSCodeTypeMappings.set('method', vscode_languageserver_protocol_1.CompletionItemKind.Method);
pythonVSCodeTypeMappings.set('builtin', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('builtinfunction', vscode_languageserver_protocol_1.CompletionItemKind.Function);
pythonVSCodeTypeMappings.set('module', vscode_languageserver_protocol_1.CompletionItemKind.Module);
pythonVSCodeTypeMappings.set('file', vscode_languageserver_protocol_1.CompletionItemKind.File);
pythonVSCodeTypeMappings.set('xrange', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('slice', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('traceback', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('frame', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('buffer', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('dictproxy', vscode_languageserver_protocol_1.CompletionItemKind.Class);
pythonVSCodeTypeMappings.set('funcdef', vscode_languageserver_protocol_1.CompletionItemKind.Function);
pythonVSCodeTypeMappings.set('property', vscode_languageserver_protocol_1.CompletionItemKind.Property);
pythonVSCodeTypeMappings.set('import', vscode_languageserver_protocol_1.CompletionItemKind.Module);
pythonVSCodeTypeMappings.set('keyword', vscode_languageserver_protocol_1.CompletionItemKind.Keyword);
pythonVSCodeTypeMappings.set('constant', vscode_languageserver_protocol_1.CompletionItemKind.Variable);
pythonVSCodeTypeMappings.set('variable', vscode_languageserver_protocol_1.CompletionItemKind.Variable);
pythonVSCodeTypeMappings.set('value', vscode_languageserver_protocol_1.CompletionItemKind.Value);
pythonVSCodeTypeMappings.set('param', vscode_languageserver_protocol_1.CompletionItemKind.Variable);
pythonVSCodeTypeMappings.set('statement', vscode_languageserver_protocol_1.CompletionItemKind.Keyword);
const pythonVSCodeSymbolMappings = new Map();
pythonVSCodeSymbolMappings.set('none', vscode_languageserver_protocol_1.SymbolKind.Variable);
pythonVSCodeSymbolMappings.set('type', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('tuple', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('dict', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('dictionary', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('function', vscode_languageserver_protocol_1.SymbolKind.Function);
pythonVSCodeSymbolMappings.set('lambda', vscode_languageserver_protocol_1.SymbolKind.Function);
pythonVSCodeSymbolMappings.set('generator', vscode_languageserver_protocol_1.SymbolKind.Function);
pythonVSCodeSymbolMappings.set('class', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('instance', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('method', vscode_languageserver_protocol_1.SymbolKind.Method);
pythonVSCodeSymbolMappings.set('builtin', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('builtinfunction', vscode_languageserver_protocol_1.SymbolKind.Function);
pythonVSCodeSymbolMappings.set('module', vscode_languageserver_protocol_1.SymbolKind.Module);
pythonVSCodeSymbolMappings.set('file', vscode_languageserver_protocol_1.SymbolKind.File);
pythonVSCodeSymbolMappings.set('xrange', vscode_languageserver_protocol_1.SymbolKind.Array);
pythonVSCodeSymbolMappings.set('slice', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('traceback', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('frame', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('buffer', vscode_languageserver_protocol_1.SymbolKind.Array);
pythonVSCodeSymbolMappings.set('dictproxy', vscode_languageserver_protocol_1.SymbolKind.Class);
pythonVSCodeSymbolMappings.set('funcdef', vscode_languageserver_protocol_1.SymbolKind.Function);
pythonVSCodeSymbolMappings.set('property', vscode_languageserver_protocol_1.SymbolKind.Property);
pythonVSCodeSymbolMappings.set('import', vscode_languageserver_protocol_1.SymbolKind.Module);
pythonVSCodeSymbolMappings.set('keyword', vscode_languageserver_protocol_1.SymbolKind.Variable);
pythonVSCodeSymbolMappings.set('constant', vscode_languageserver_protocol_1.SymbolKind.Constant);
pythonVSCodeSymbolMappings.set('variable', vscode_languageserver_protocol_1.SymbolKind.Variable);
pythonVSCodeSymbolMappings.set('value', vscode_languageserver_protocol_1.SymbolKind.Variable);
pythonVSCodeSymbolMappings.set('param', vscode_languageserver_protocol_1.SymbolKind.Variable);
pythonVSCodeSymbolMappings.set('statement', vscode_languageserver_protocol_1.SymbolKind.Variable);
pythonVSCodeSymbolMappings.set('boolean', vscode_languageserver_protocol_1.SymbolKind.Boolean);
pythonVSCodeSymbolMappings.set('int', vscode_languageserver_protocol_1.SymbolKind.Number);
pythonVSCodeSymbolMappings.set('longlean', vscode_languageserver_protocol_1.SymbolKind.Number);
pythonVSCodeSymbolMappings.set('float', vscode_languageserver_protocol_1.SymbolKind.Number);
pythonVSCodeSymbolMappings.set('complex', vscode_languageserver_protocol_1.SymbolKind.Number);
pythonVSCodeSymbolMappings.set('string', vscode_languageserver_protocol_1.SymbolKind.String);
pythonVSCodeSymbolMappings.set('unicode', vscode_languageserver_protocol_1.SymbolKind.String);
pythonVSCodeSymbolMappings.set('list', vscode_languageserver_protocol_1.SymbolKind.Array);
function getMappedVSCodeType(pythonType) {
    if (pythonVSCodeTypeMappings.has(pythonType)) {
        const value = pythonVSCodeTypeMappings.get(pythonType);
        if (value) {
            return value;
        }
    }
    return vscode_languageserver_protocol_1.CompletionItemKind.Keyword;
}
function getMappedVSCodeSymbol(pythonType) {
    if (pythonVSCodeSymbolMappings.has(pythonType)) {
        const value = pythonVSCodeSymbolMappings.get(pythonType);
        if (value) {
            return value;
        }
    }
    return vscode_languageserver_protocol_1.SymbolKind.Variable;
}
var CommandType;
(function (CommandType) {
    CommandType[CommandType["Arguments"] = 0] = "Arguments";
    CommandType[CommandType["Completions"] = 1] = "Completions";
    CommandType[CommandType["Hover"] = 2] = "Hover";
    CommandType[CommandType["Usages"] = 3] = "Usages";
    CommandType[CommandType["Definitions"] = 4] = "Definitions";
    CommandType[CommandType["Symbols"] = 5] = "Symbols";
})(CommandType = exports.CommandType || (exports.CommandType = {}));
const commandNames = new Map();
commandNames.set(CommandType.Arguments, 'arguments');
commandNames.set(CommandType.Completions, 'completions');
commandNames.set(CommandType.Definitions, 'definitions');
commandNames.set(CommandType.Hover, 'tooltip');
commandNames.set(CommandType.Usages, 'usages');
commandNames.set(CommandType.Symbols, 'names');
class JediProxy {
    constructor(extensionRootDir, workspacePath, serviceContainer) {
        this.extensionRootDir = extensionRootDir;
        this.serviceContainer = serviceContainer;
        this.cmdId = 0;
        this.previousData = '';
        this.commands = new Map();
        this.commandQueue = [];
        this.spawnRetryAttempts = 0;
        this.additionalAutoCompletePaths = [];
        this.ignoreJediMemoryFootprint = false;
        this.pidUsageFailures = { timer: new stopWatch_1.StopWatch(), counter: 0 };
        this.disposables = [];
        this.workspacePath = workspacePath;
        const configurationService = serviceContainer.get(types_2.IConfigurationService);
        this.pythonSettings = configurationService.getSettings(coc_nvim_1.Uri.file(workspacePath));
        this.lastKnownPythonInterpreter = this.pythonSettings.pythonPath;
        this.logger = serviceContainer.get(types_2.ILogger);
        const interpreterService = serviceContainer.get(contracts_1.IInterpreterService);
        const disposable = interpreterService.onDidChangeInterpreter(this.onDidChangeInterpreter.bind(this));
        this.disposables.push(disposable);
        this.initialized = async_1.createDeferred();
        this.startLanguageServer().then(() => this.initialized.resolve()).catch(function_1.emptyFn);
        this.proposeNewLanguageServerPopup = serviceContainer.get(types_2.IPythonExtensionBanner, types_2.BANNER_NAME_PROPOSE_LS);
        this.checkJediMemoryFootprint().catch(function_1.emptyFn);
    }
    static getProperty(o, name) {
        return o[name];
    }
    dispose() {
        while (this.disposables.length > 0) {
            const disposable = this.disposables.pop();
            if (disposable) {
                disposable.dispose();
            }
        }
        this.killProcess();
    }
    getNextCommandId() {
        const result = this.cmdId;
        this.cmdId += 1;
        return result;
    }
    async sendCommand(cmd) {
        await this.initialized.promise;
        await this.languageServerStarted.promise;
        if (!this.proc) {
            return Promise.reject(new Error('Python proc not initialized'));
        }
        const executionCmd = cmd;
        const payload = this.createPayload(executionCmd);
        executionCmd.deferred = async_1.createDeferred();
        try {
            this.proc.stdin.write(`${JSON.stringify(payload)}\n`);
            this.commands.set(executionCmd.id, executionCmd);
            this.commandQueue.push(executionCmd.id);
        }
        catch (ex) {
            console.error(ex);
            // If 'This socket is closed.' that means process didn't start at all (at least not properly).
            if (ex.message === 'This socket is closed.') {
                this.killProcess();
            }
            else {
                this.handleError('sendCommand', ex.message);
            }
            return Promise.reject(ex);
        }
        return executionCmd.deferred.promise;
    }
    // keep track of the directory so we can re-spawn the process.
    initialize() {
        return this.spawnProcess(path_1.default.join(this.extensionRootDir, 'pythonFiles'))
            .catch(ex => {
            if (this.languageServerStarted) {
                this.languageServerStarted.reject(ex);
            }
            this.handleError('spawnProcess', ex);
        });
    }
    shouldCheckJediMemoryFootprint() {
        if (this.ignoreJediMemoryFootprint || this.pythonSettings.jediMemoryLimit === -1) {
            return false;
        }
        if (this.lastCmdIdProcessedForPidUsage && this.lastCmdIdProcessed &&
            this.lastCmdIdProcessedForPidUsage === this.lastCmdIdProcessed) {
            // If no more commands were processed since the last time,
            //  then there's no need to check again.
            return false;
        }
        return true;
    }
    async checkJediMemoryFootprint() {
        // Check memory footprint periodically. Do not check on every request due to
        // the performance impact. See https://github.com/soyuka/pidusage - on Windows
        // it is using wmic which means spawning cmd.exe process on every request.
        if (this.pythonSettings.jediMemoryLimit === -1) {
            return;
        }
        await this.checkJediMemoryFootprintImpl();
        setTimeout(() => this.checkJediMemoryFootprint(), 15 * 1000);
    }
    async checkJediMemoryFootprintImpl() {
        if (!this.proc || this.proc.killed) {
            return;
        }
        if (!this.shouldCheckJediMemoryFootprint()) {
            return;
        }
        this.lastCmdIdProcessedForPidUsage = this.lastCmdIdProcessed;
        // Do not run pidusage over and over, wait for it to finish.
        const deferred = async_1.createDeferred();
        pidusage.stat(this.proc.pid, async (err, result) => {
            if (err) {
                this.pidUsageFailures.counter += 1;
                // If this function fails 2 times in the last 60 seconds, lets not try ever again.
                if (this.pidUsageFailures.timer.elapsedTime > 60 * 1000) {
                    this.ignoreJediMemoryFootprint = this.pidUsageFailures.counter > 2;
                    this.pidUsageFailures.counter = 0;
                    this.pidUsageFailures.timer.reset();
                }
                console.error('Python Extension: (pidusage)', err);
            }
            else {
                const limit = Math.min(Math.max(this.pythonSettings.jediMemoryLimit, 1024), 8192);
                if (result && result.memory > limit * 1024 * 1024) {
                    this.logger.logWarning(`IntelliSense process memory consumption exceeded limit of ${limit} MB and process will be restarted.\nThe limit is controlled by the 'python.jediMemoryLimit' setting.`);
                    await this.restartLanguageServer();
                }
            }
            deferred.resolve();
        });
        return deferred.promise;
    }
    async onDidChangeInterpreter() {
        if (this.lastKnownPythonInterpreter === this.pythonSettings.pythonPath) {
            return;
        }
        this.lastKnownPythonInterpreter = this.pythonSettings.pythonPath;
        this.additionalAutoCompletePaths = await this.buildAutoCompletePaths();
        this.restartLanguageServer().catch(function_1.emptyFn);
    }
    // @debounce(1500)
    async environmentVariablesChangeHandler() {
        const newAutoComletePaths = await this.buildAutoCompletePaths();
        if (this.additionalAutoCompletePaths.join(',') !== newAutoComletePaths.join(',')) {
            this.additionalAutoCompletePaths = newAutoComletePaths;
            this.restartLanguageServer().catch(function_1.emptyFn);
        }
    }
    async startLanguageServer() {
        const newAutoComletePaths = await this.buildAutoCompletePaths();
        this.additionalAutoCompletePaths = newAutoComletePaths;
        if (!constants_1.isTestExecution()) {
            await this.proposeNewLanguageServerPopup.showBanner();
        }
        return this.restartLanguageServer();
    }
    restartLanguageServer() {
        this.killProcess();
        this.clearPendingRequests();
        return this.initialize();
    }
    clearPendingRequests() {
        this.commandQueue = [];
        this.commands.forEach(item => {
            if (item.deferred !== undefined) {
                item.deferred.resolve();
            }
        });
        this.commands.clear();
    }
    killProcess() {
        try {
            if (this.proc) {
                this.proc.kill();
            }
            // tslint:disable-next-line:no-empty
        }
        catch (ex) { }
        this.proc = undefined;
    }
    handleError(source, errorMessage) {
        logger_1.Logger.error(`${source} jediProxy`, `Error (${source}) ${errorMessage}`);
        coc_nvim_1.workspace.showMessage(`Jedi error: ${errorMessage}`, 'error');
    }
    // tslint:disable-next-line:max-func-body-length
    async spawnProcess(cwd) {
        if (this.languageServerStarted && !this.languageServerStarted.completed) {
            this.languageServerStarted.reject(new Error('Language Server not started.'));
        }
        this.languageServerStarted = async_1.createDeferred();
        const pythonProcess = await this.serviceContainer.get(types_1.IPythonExecutionFactory).create({ resource: coc_nvim_1.Uri.file(this.workspacePath) });
        // Check if the python path is valid.
        if ((await pythonProcess.getExecutablePath().catch(() => '')).length === 0) {
            return;
        }
        const args = ['completion.py'];
        if (typeof this.pythonSettings.jediPath === 'string' && this.pythonSettings.jediPath.length > 0) {
            args.push('custom');
            args.push(this.pythonSettings.jediPath);
        }
        const result = pythonProcess.execObservable(args, { cwd });
        this.proc = result.proc;
        this.languageServerStarted.resolve();
        this.proc.on('end', end => {
            logger_1.Logger.error('spawnProcess.end', `End - ${end}`);
        });
        this.proc.on('error', error => {
            this.handleError('error', `${error}`);
            this.spawnRetryAttempts += 1;
            if (this.spawnRetryAttempts < 10 && error && error.message &&
                error.message.indexOf('This socket has been ended by the other party') >= 0) {
                this.spawnProcess(cwd)
                    .catch(ex => {
                    if (this.languageServerStarted) {
                        this.languageServerStarted.reject(ex);
                    }
                    this.handleError('spawnProcess', ex);
                });
            }
            else {
                this.proc = null;
            }
        });
        result.out.subscribe(output => {
            if (output.source === 'stderr') {
                this.handleError('stderr', output.out);
            }
            else {
                const data = output.out;
                // Possible there was an exception in parsing the data returned,
                // so append the data and then parse it.
                const dataStr = this.previousData = `${this.previousData}${data}`;
                // tslint:disable-next-line:no-any
                let responses;
                try {
                    responses = string_1.splitLines(dataStr).map(resp => JSON.parse(resp));
                    this.previousData = '';
                }
                catch (ex) {
                    // Possible we've only received part of the data, hence don't clear previousData.
                    // Don't log errors when we haven't received the entire response.
                    if (ex.message.indexOf('Unexpected end of input') === -1 &&
                        ex.message.indexOf('Unexpected end of JSON input') === -1 &&
                        ex.message.indexOf('Unexpected token') === -1) {
                        this.handleError('stdout', ex.message);
                    }
                    return;
                }
                responses.forEach(response => {
                    if (!response) {
                        return;
                    }
                    const responseId = JediProxy.getProperty(response, 'id');
                    if (!this.commands.has(responseId)) {
                        return;
                    }
                    const cmd = this.commands.get(responseId);
                    if (!cmd) {
                        return;
                    }
                    this.lastCmdIdProcessed = cmd.id;
                    if (JediProxy.getProperty(response, 'arguments')) {
                        this.commandQueue.splice(this.commandQueue.indexOf(cmd.id), 1);
                        return;
                    }
                    this.commands.delete(responseId);
                    const index = this.commandQueue.indexOf(cmd.id);
                    if (index) {
                        this.commandQueue.splice(index, 1);
                    }
                    // Check if this command has expired.
                    if (cmd.token.isCancellationRequested) {
                        this.safeResolve(cmd, undefined);
                        return;
                    }
                    const handler = this.getCommandHandler(cmd.command);
                    if (handler) {
                        handler.call(this, cmd, response);
                    }
                    // Check if too many pending requests.
                    this.checkQueueLength();
                });
            }
        }, error => this.handleError('subscription.error', `${error}`));
    }
    getCommandHandler(command) {
        switch (command) {
            case CommandType.Completions:
                return this.onCompletion;
            case CommandType.Definitions:
                return this.onDefinition;
            case CommandType.Hover:
                return this.onHover;
            case CommandType.Symbols:
                return this.onSymbols;
            case CommandType.Usages:
                return this.onUsages;
            case CommandType.Arguments:
                return this.onArguments;
            default:
                return;
        }
    }
    onCompletion(command, response) {
        let results = JediProxy.getProperty(response, 'results');
        results = Array.isArray(results) ? results : [];
        results.forEach(item => {
            // tslint:disable-next-line:no-any
            const originalType = item.type;
            item.type = getMappedVSCodeType(originalType);
            item.kind = getMappedVSCodeSymbol(originalType);
            item.rawType = getMappedVSCodeType(originalType);
        });
        const completionResult = {
            items: results,
            requestId: command.id
        };
        this.safeResolve(command, completionResult);
    }
    onDefinition(command, response) {
        // tslint:disable-next-line:no-any
        const defs = JediProxy.getProperty(response, 'results');
        const defResult = {
            requestId: command.id,
            definitions: []
        };
        if (defs.length > 0) {
            defResult.definitions = defs.map(def => {
                const originalType = def.type;
                return {
                    fileName: def.fileName,
                    text: def.text,
                    rawType: originalType,
                    type: getMappedVSCodeType(originalType),
                    kind: getMappedVSCodeSymbol(originalType),
                    container: def.container,
                    range: {
                        startLine: def.range.start_line,
                        startColumn: def.range.start_column,
                        endLine: def.range.end_line,
                        endColumn: def.range.end_column
                    }
                };
            });
        }
        this.safeResolve(command, defResult);
    }
    onHover(command, response) {
        // tslint:disable-next-line:no-any
        const defs = JediProxy.getProperty(response, 'results');
        const defResult = {
            requestId: command.id,
            items: defs.map(def => {
                return {
                    kind: getMappedVSCodeSymbol(def.type),
                    description: def.description,
                    signature: def.signature,
                    docstring: def.docstring,
                    text: def.text
                };
            })
        };
        this.safeResolve(command, defResult);
    }
    onSymbols(command, response) {
        // tslint:disable-next-line:no-any
        let defs = JediProxy.getProperty(response, 'results');
        defs = Array.isArray(defs) ? defs : [];
        const defResults = {
            requestId: command.id,
            definitions: []
        };
        defResults.definitions = defs.map(def => {
            const originalType = def.type;
            return {
                fileName: def.fileName,
                text: def.text,
                rawType: originalType,
                type: getMappedVSCodeType(originalType),
                kind: getMappedVSCodeSymbol(originalType),
                container: def.container,
                range: {
                    startLine: def.range.start_line,
                    startColumn: def.range.start_column,
                    endLine: def.range.end_line,
                    endColumn: def.range.end_column
                }
            };
        });
        this.safeResolve(command, defResults);
    }
    onUsages(command, response) {
        // tslint:disable-next-line:no-any
        let defs = JediProxy.getProperty(response, 'results');
        defs = Array.isArray(defs) ? defs : [];
        const refResult = {
            requestId: command.id,
            references: defs.map(item => {
                return {
                    columnIndex: item.column,
                    fileName: item.fileName,
                    lineIndex: item.line - 1,
                    moduleName: item.moduleName,
                    name: item.name
                };
            })
        };
        this.safeResolve(command, refResult);
    }
    onArguments(command, response) {
        // tslint:disable-next-line:no-any
        const defs = JediProxy.getProperty(response, 'results');
        // tslint:disable-next-line:no-object-literal-type-assertion
        this.safeResolve(command, {
            requestId: command.id,
            definitions: defs
        });
    }
    checkQueueLength() {
        if (this.commandQueue.length > 10) {
            const items = this.commandQueue.splice(0, this.commandQueue.length - 10);
            items.forEach(id => {
                if (this.commands.has(id)) {
                    const cmd1 = this.commands.get(id);
                    try {
                        this.safeResolve(cmd1, undefined);
                        // tslint:disable-next-line:no-empty
                    }
                    catch (ex) {
                    }
                    finally {
                        this.commands.delete(id);
                    }
                }
            });
        }
    }
    // tslint:disable-next-line:no-any
    createPayload(cmd) {
        const payload = {
            id: cmd.id,
            prefix: '',
            lookup: commandNames.get(cmd.command),
            path: cmd.fileName,
            source: cmd.source,
            line: cmd.lineIndex,
            column: cmd.columnIndex,
            config: this.getConfig()
        };
        if (cmd.command === CommandType.Symbols) {
            delete payload.column;
            delete payload.line;
        }
        return payload;
    }
    async getPathFromPythonCommand(args) {
        try {
            const pythonProcess = await this.serviceContainer.get(types_1.IPythonExecutionFactory).create({ resource: coc_nvim_1.Uri.file(this.workspacePath) });
            const result = await pythonProcess.exec(args, { cwd: this.workspacePath });
            const lines = string_1.splitLines(result.stdout.trim());
            if (lines.length === 0) {
                return '';
            }
            const exists = await fs_extra_1.default.pathExists(lines[0]);
            return exists ? lines[0] : '';
        }
        catch (_a) {
            return '';
        }
    }
    async buildAutoCompletePaths() {
        const filePathPromises = [
            // Sysprefix.
            this.getPathFromPythonCommand(['-c', 'import sys;print(sys.prefix)']).catch(() => ''),
            // exeucutable path.
            this.getPathFromPythonCommand(['-c', 'import sys;print(sys.executable)']).then(execPath => path_1.default.dirname(execPath)).catch(() => ''),
            // Python specific site packages.
            // On windows we also need the libs path (second item will return c:\xxx\lib\site-packages).
            // This is returned by "from distutils.sysconfig import get_python_lib; print(get_python_lib())".
            this.getPathFromPythonCommand(['-c', 'from distutils.sysconfig import get_python_lib; print(get_python_lib())'])
                .then(libPath => {
                // On windows we also need the libs path (second item will return c:\xxx\lib\site-packages).
                // This is returned by "from distutils.sysconfig import get_python_lib; print(get_python_lib())".
                return (constants_2.IS_WINDOWS && libPath.length > 0) ? path_1.default.join(libPath, '..') : libPath;
            })
                .catch(() => ''),
            // Python global site packages, as a fallback in case user hasn't installed them in custom environment.
            this.getPathFromPythonCommand(['-m', 'site', '--user-site']).catch(() => '')
        ];
        try {
            const pythonPaths = await this.getEnvironmentVariablesProvider().getEnvironmentVariables(coc_nvim_1.Uri.file(this.workspacePath))
                .then(customEnvironmentVars => customEnvironmentVars ? JediProxy.getProperty(customEnvironmentVars, 'PYTHONPATH') : '')
                .then(pythonPath => (typeof pythonPath === 'string' && pythonPath.trim().length > 0) ? pythonPath.trim() : '')
                .then(pythonPath => pythonPath.split(path_1.default.delimiter).filter(item => item.trim().length > 0));
            const resolvedPaths = pythonPaths
                .filter(pythonPath => !path_1.default.isAbsolute(pythonPath))
                .map(pythonPath => path_1.default.resolve(this.workspacePath, pythonPath));
            const filePaths = await Promise.all(filePathPromises);
            return filePaths.concat(...pythonPaths, ...resolvedPaths).filter(p => p.length > 0);
        }
        catch (ex) {
            console.error('Python Extension: jediProxy.filePaths', ex);
            return [];
        }
    }
    getEnvironmentVariablesProvider() {
        if (!this.environmentVariablesProvider) {
            this.environmentVariablesProvider = this.serviceContainer.get(types_3.IEnvironmentVariablesProvider);
            this.environmentVariablesProvider.onDidEnvironmentVariablesChange(this.environmentVariablesChangeHandler.bind(this));
        }
        return this.environmentVariablesProvider;
    }
    getConfig() {
        // Add support for paths relative to workspace.
        const extraPaths = this.pythonSettings.autoComplete ?
            this.pythonSettings.autoComplete.extraPaths.map(extraPath => {
                if (extraPath.startsWith('~')) {
                    extraPath = os_1.default.homedir() + extraPath.slice(1);
                }
                if (path_1.default.isAbsolute(extraPath)) {
                    return extraPath;
                }
                if (typeof this.workspacePath !== 'string') {
                    return '';
                }
                return path_1.default.join(this.workspacePath, extraPath);
            }) : [];
        // Always add workspace path into extra paths.
        if (typeof this.workspacePath === 'string') {
            extraPaths.unshift(this.workspacePath);
        }
        const distinctExtraPaths = extraPaths.concat(this.additionalAutoCompletePaths)
            .filter(value => value.length > 0)
            .filter((value, index, self) => self.indexOf(value) === index);
        return {
            extraPaths: distinctExtraPaths,
            useSnippets: false,
            caseInsensitiveCompletion: true,
            showDescriptions: true,
            fuzzyMatcher: true
        };
    }
    safeResolve(command, result) {
        if (command && command.deferred) {
            command.deferred.resolve(result);
        }
    }
}
__decorate([
    decorators_1.swallowExceptions('JediProxy')
], JediProxy.prototype, "onDidChangeInterpreter", null);
__decorate([
    decorators_1.swallowExceptions('JediProxy')
], JediProxy.prototype, "environmentVariablesChangeHandler", null);
__decorate([
    decorators_1.swallowExceptions('JediProxy')
], JediProxy.prototype, "startLanguageServer", null);
exports.JediProxy = JediProxy;
class JediProxyHandler {
    constructor(jediProxy) {
        this.jediProxy = jediProxy;
        this.commandCancellationTokenSources = new Map();
    }
    get JediProxy() {
        return this.jediProxy;
    }
    dispose() {
        if (this.jediProxy) {
            this.jediProxy.dispose();
        }
    }
    sendCommand(cmd, _token) {
        const executionCmd = cmd;
        executionCmd.id = executionCmd.id || this.jediProxy.getNextCommandId();
        if (this.commandCancellationTokenSources.has(cmd.command)) {
            const ct = this.commandCancellationTokenSources.get(cmd.command);
            if (ct) {
                ct.cancel();
            }
        }
        const cancellation = new vscode_languageserver_protocol_1.CancellationTokenSource();
        this.commandCancellationTokenSources.set(cmd.command, cancellation);
        executionCmd.token = cancellation.token;
        return this.jediProxy.sendCommand(executionCmd)
            .catch(reason => {
            console.error(reason);
            return undefined;
        });
    }
    sendCommandNonCancellableCommand(cmd, token) {
        const executionCmd = cmd;
        executionCmd.id = executionCmd.id || this.jediProxy.getNextCommandId();
        if (token) {
            executionCmd.token = token;
        }
        return this.jediProxy.sendCommand(executionCmd)
            .catch(reason => {
            console.error(reason);
            return undefined;
        });
    }
}
exports.JediProxyHandler = JediProxyHandler;


/***/ }),
/* 104 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = Object.assign(
  {},
  // Export promiseified graceful-fs:
  __webpack_require__(105),
  // Export extra methods:
  __webpack_require__(115),
  __webpack_require__(123),
  __webpack_require__(126),
  __webpack_require__(129),
  __webpack_require__(135),
  __webpack_require__(117),
  __webpack_require__(140),
  __webpack_require__(141),
  __webpack_require__(142),
  __webpack_require__(125),
  __webpack_require__(127)
)

// Export fs.promises as a getter property so that we don't trigger
// ExperimentalWarning before fs.promises is actually accessed.
const fs = __webpack_require__(94)
if (Object.getOwnPropertyDescriptor(fs, 'promises')) {
  Object.defineProperty(module.exports, 'promises', {
    get () { return fs.promises }
  })
}


/***/ }),
/* 105 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// This is adapted from https://github.com/normalize/mz
// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors
const u = __webpack_require__(106).fromCallback
const fs = __webpack_require__(107)

const api = [
  'access',
  'appendFile',
  'chmod',
  'chown',
  'close',
  'copyFile',
  'fchmod',
  'fchown',
  'fdatasync',
  'fstat',
  'fsync',
  'ftruncate',
  'futimes',
  'lchown',
  'lchmod',
  'link',
  'lstat',
  'mkdir',
  'mkdtemp',
  'open',
  'readFile',
  'readdir',
  'readlink',
  'realpath',
  'rename',
  'rmdir',
  'stat',
  'symlink',
  'truncate',
  'unlink',
  'utimes',
  'writeFile'
].filter(key => {
  // Some commands are not available on some systems. Ex:
  // fs.copyFile was added in Node.js v8.5.0
  // fs.mkdtemp was added in Node.js v5.10.0
  // fs.lchown is not available on at least some Linux
  return typeof fs[key] === 'function'
})

// Export all keys:
Object.keys(fs).forEach(key => {
  if (key === 'promises') {
    // fs.promises is a getter property that triggers ExperimentalWarning
    // Don't re-export it here, the getter is defined in "lib/index.js"
    return
  }
  exports[key] = fs[key]
})

// Universalify async methods:
api.forEach(method => {
  exports[method] = u(fs[method])
})

// We differ from mz/fs in that we still ship the old, broken, fs.exists()
// since we are a drop-in replacement for the native module
exports.exists = function (filename, callback) {
  if (typeof callback === 'function') {
    return fs.exists(filename, callback)
  }
  return new Promise(resolve => {
    return fs.exists(filename, resolve)
  })
}

// fs.read() & fs.write need special treatment due to multiple callback args

exports.read = function (fd, buffer, offset, length, position, callback) {
  if (typeof callback === 'function') {
    return fs.read(fd, buffer, offset, length, position, callback)
  }
  return new Promise((resolve, reject) => {
    fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => {
      if (err) return reject(err)
      resolve({ bytesRead, buffer })
    })
  })
}

// Function signature can be
// fs.write(fd, buffer[, offset[, length[, position]]], callback)
// OR
// fs.write(fd, string[, position[, encoding]], callback)
// We need to handle both cases, so we use ...args
exports.write = function (fd, buffer, ...args) {
  if (typeof args[args.length - 1] === 'function') {
    return fs.write(fd, buffer, ...args)
  }

  return new Promise((resolve, reject) => {
    fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => {
      if (err) return reject(err)
      resolve({ bytesWritten, buffer })
    })
  })
}


/***/ }),
/* 106 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.fromCallback = function (fn) {
  return Object.defineProperty(function () {
    if (typeof arguments[arguments.length - 1] === 'function') fn.apply(this, arguments)
    else {
      return new Promise((resolve, reject) => {
        arguments[arguments.length] = (err, res) => {
          if (err) return reject(err)
          resolve(res)
        }
        arguments.length++
        fn.apply(this, arguments)
      })
    }
  }, 'name', { value: fn.name })
}

exports.fromPromise = function (fn) {
  return Object.defineProperty(function () {
    const cb = arguments[arguments.length - 1]
    if (typeof cb !== 'function') return fn.apply(this, arguments)
    else fn.apply(this, arguments).then(r => cb(null, r), cb)
  }, 'name', { value: fn.name })
}


/***/ }),
/* 107 */
/***/ (function(module, exports, __webpack_require__) {

var fs = __webpack_require__(94)
var polyfills = __webpack_require__(108)
var legacy = __webpack_require__(110)
var clone = __webpack_require__(112)

var queue = []

var util = __webpack_require__(113)

function noop () {}

var debug = noop
if (util.debuglog)
  debug = util.debuglog('gfs4')
else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || ''))
  debug = function() {
    var m = util.format.apply(util, arguments)
    m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ')
    console.error(m)
  }

if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) {
  process.on('exit', function() {
    debug(queue)
    __webpack_require__(114).equal(queue.length, 0)
  })
}

module.exports = patch(clone(fs))
if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {
    module.exports = patch(fs)
    fs.__patched = true;
}

// Always patch fs.close/closeSync, because we want to
// retry() whenever a close happens *anywhere* in the program.
// This is essential when multiple graceful-fs instances are
// in play at the same time.
module.exports.close = (function (fs$close) { return function (fd, cb) {
  return fs$close.call(fs, fd, function (err) {
    if (!err)
      retry()

    if (typeof cb === 'function')
      cb.apply(this, arguments)
  })
}})(fs.close)

module.exports.closeSync = (function (fs$closeSync) { return function (fd) {
  // Note that graceful-fs also retries when fs.closeSync() fails.
  // Looks like a bug to me, although it's probably a harmless one.
  var rval = fs$closeSync.apply(fs, arguments)
  retry()
  return rval
}})(fs.closeSync)

// Only patch fs once, otherwise we'll run into a memory leak if
// graceful-fs is loaded multiple times, such as in test environments that
// reset the loaded modules between tests.
// We look for the string `graceful-fs` from the comment above. This
// way we are not adding any extra properties and it will detect if older
// versions of graceful-fs are installed.
if (!/\bgraceful-fs\b/.test(fs.closeSync.toString())) {
  fs.closeSync = module.exports.closeSync;
  fs.close = module.exports.close;
}

function patch (fs) {
  // Everything that references the open() function needs to be in here
  polyfills(fs)
  fs.gracefulify = patch
  fs.FileReadStream = ReadStream;  // Legacy name.
  fs.FileWriteStream = WriteStream;  // Legacy name.
  fs.createReadStream = createReadStream
  fs.createWriteStream = createWriteStream
  var fs$readFile = fs.readFile
  fs.readFile = readFile
  function readFile (path, options, cb) {
    if (typeof options === 'function')
      cb = options, options = null

    return go$readFile(path, options, cb)

    function go$readFile (path, options, cb) {
      return fs$readFile(path, options, function (err) {
        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
          enqueue([go$readFile, [path, options, cb]])
        else {
          if (typeof cb === 'function')
            cb.apply(this, arguments)
          retry()
        }
      })
    }
  }

  var fs$writeFile = fs.writeFile
  fs.writeFile = writeFile
  function writeFile (path, data, options, cb) {
    if (typeof options === 'function')
      cb = options, options = null

    return go$writeFile(path, data, options, cb)

    function go$writeFile (path, data, options, cb) {
      return fs$writeFile(path, data, options, function (err) {
        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
          enqueue([go$writeFile, [path, data, options, cb]])
        else {
          if (typeof cb === 'function')
            cb.apply(this, arguments)
          retry()
        }
      })
    }
  }

  var fs$appendFile = fs.appendFile
  if (fs$appendFile)
    fs.appendFile = appendFile
  function appendFile (path, data, options, cb) {
    if (typeof options === 'function')
      cb = options, options = null

    return go$appendFile(path, data, options, cb)

    function go$appendFile (path, data, options, cb) {
      return fs$appendFile(path, data, options, function (err) {
        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
          enqueue([go$appendFile, [path, data, options, cb]])
        else {
          if (typeof cb === 'function')
            cb.apply(this, arguments)
          retry()
        }
      })
    }
  }

  var fs$readdir = fs.readdir
  fs.readdir = readdir
  function readdir (path, options, cb) {
    var args = [path]
    if (typeof options !== 'function') {
      args.push(options)
    } else {
      cb = options
    }
    args.push(go$readdir$cb)

    return go$readdir(args)

    function go$readdir$cb (err, files) {
      if (files && files.sort)
        files.sort()

      if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
        enqueue([go$readdir, [args]])

      else {
        if (typeof cb === 'function')
          cb.apply(this, arguments)
        retry()
      }
    }
  }

  function go$readdir (args) {
    return fs$readdir.apply(fs, args)
  }

  if (process.version.substr(0, 4) === 'v0.8') {
    var legStreams = legacy(fs)
    ReadStream = legStreams.ReadStream
    WriteStream = legStreams.WriteStream
  }

  var fs$ReadStream = fs.ReadStream
  if (fs$ReadStream) {
    ReadStream.prototype = Object.create(fs$ReadStream.prototype)
    ReadStream.prototype.open = ReadStream$open
  }

  var fs$WriteStream = fs.WriteStream
  if (fs$WriteStream) {
    WriteStream.prototype = Object.create(fs$WriteStream.prototype)
    WriteStream.prototype.open = WriteStream$open
  }

  fs.ReadStream = ReadStream
  fs.WriteStream = WriteStream

  function ReadStream (path, options) {
    if (this instanceof ReadStream)
      return fs$ReadStream.apply(this, arguments), this
    else
      return ReadStream.apply(Object.create(ReadStream.prototype), arguments)
  }

  function ReadStream$open () {
    var that = this
    open(that.path, that.flags, that.mode, function (err, fd) {
      if (err) {
        if (that.autoClose)
          that.destroy()

        that.emit('error', err)
      } else {
        that.fd = fd
        that.emit('open', fd)
        that.read()
      }
    })
  }

  function WriteStream (path, options) {
    if (this instanceof WriteStream)
      return fs$WriteStream.apply(this, arguments), this
    else
      return WriteStream.apply(Object.create(WriteStream.prototype), arguments)
  }

  function WriteStream$open () {
    var that = this
    open(that.path, that.flags, that.mode, function (err, fd) {
      if (err) {
        that.destroy()
        that.emit('error', err)
      } else {
        that.fd = fd
        that.emit('open', fd)
      }
    })
  }

  function createReadStream (path, options) {
    return new ReadStream(path, options)
  }

  function createWriteStream (path, options) {
    return new WriteStream(path, options)
  }

  var fs$open = fs.open
  fs.open = open
  function open (path, flags, mode, cb) {
    if (typeof mode === 'function')
      cb = mode, mode = null

    return go$open(path, flags, mode, cb)

    function go$open (path, flags, mode, cb) {
      return fs$open(path, flags, mode, function (err, fd) {
        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
          enqueue([go$open, [path, flags, mode, cb]])
        else {
          if (typeof cb === 'function')
            cb.apply(this, arguments)
          retry()
        }
      })
    }
  }

  return fs
}

function enqueue (elem) {
  debug('ENQUEUE', elem[0].name, elem[1])
  queue.push(elem)
}

function retry () {
  var elem = queue.shift()
  if (elem) {
    debug('RETRY', elem[0].name, elem[1])
    elem[0].apply(null, elem[1])
  }
}


/***/ }),
/* 108 */
/***/ (function(module, exports, __webpack_require__) {

var constants = __webpack_require__(109)

var origCwd = process.cwd
var cwd = null

var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform

process.cwd = function() {
  if (!cwd)
    cwd = origCwd.call(process)
  return cwd
}
try {
  process.cwd()
} catch (er) {}

var chdir = process.chdir
process.chdir = function(d) {
  cwd = null
  chdir.call(process, d)
}

module.exports = patch

function patch (fs) {
  // (re-)implement some things that are known busted or missing.

  // lchmod, broken prior to 0.6.2
  // back-port the fix here.
  if (constants.hasOwnProperty('O_SYMLINK') &&
      process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) {
    patchLchmod(fs)
  }

  // lutimes implementation, or no-op
  if (!fs.lutimes) {
    patchLutimes(fs)
  }

  // https://github.com/isaacs/node-graceful-fs/issues/4
  // Chown should not fail on einval or eperm if non-root.
  // It should not fail on enosys ever, as this just indicates
  // that a fs doesn't support the intended operation.

  fs.chown = chownFix(fs.chown)
  fs.fchown = chownFix(fs.fchown)
  fs.lchown = chownFix(fs.lchown)

  fs.chmod = chmodFix(fs.chmod)
  fs.fchmod = chmodFix(fs.fchmod)
  fs.lchmod = chmodFix(fs.lchmod)

  fs.chownSync = chownFixSync(fs.chownSync)
  fs.fchownSync = chownFixSync(fs.fchownSync)
  fs.lchownSync = chownFixSync(fs.lchownSync)

  fs.chmodSync = chmodFixSync(fs.chmodSync)
  fs.fchmodSync = chmodFixSync(fs.fchmodSync)
  fs.lchmodSync = chmodFixSync(fs.lchmodSync)

  fs.stat = statFix(fs.stat)
  fs.fstat = statFix(fs.fstat)
  fs.lstat = statFix(fs.lstat)

  fs.statSync = statFixSync(fs.statSync)
  fs.fstatSync = statFixSync(fs.fstatSync)
  fs.lstatSync = statFixSync(fs.lstatSync)

  // if lchmod/lchown do not exist, then make them no-ops
  if (!fs.lchmod) {
    fs.lchmod = function (path, mode, cb) {
      if (cb) process.nextTick(cb)
    }
    fs.lchmodSync = function () {}
  }
  if (!fs.lchown) {
    fs.lchown = function (path, uid, gid, cb) {
      if (cb) process.nextTick(cb)
    }
    fs.lchownSync = function () {}
  }

  // on Windows, A/V software can lock the directory, causing this
  // to fail with an EACCES or EPERM if the directory contains newly
  // created files.  Try again on failure, for up to 60 seconds.

  // Set the timeout this long because some Windows Anti-Virus, such as Parity
  // bit9, may lock files for up to a minute, causing npm package install
  // failures. Also, take care to yield the scheduler. Windows scheduling gives
  // CPU to a busy looping process, which can cause the program causing the lock
  // contention to be starved of CPU by node, so the contention doesn't resolve.
  if (platform === "win32") {
    fs.rename = (function (fs$rename) { return function (from, to, cb) {
      var start = Date.now()
      var backoff = 0;
      fs$rename(from, to, function CB (er) {
        if (er
            && (er.code === "EACCES" || er.code === "EPERM")
            && Date.now() - start < 60000) {
          setTimeout(function() {
            fs.stat(to, function (stater, st) {
              if (stater && stater.code === "ENOENT")
                fs$rename(from, to, CB);
              else
                cb(er)
            })
          }, backoff)
          if (backoff < 100)
            backoff += 10;
          return;
        }
        if (cb) cb(er)
      })
    }})(fs.rename)
  }

  // if read() returns EAGAIN, then just try it again.
  fs.read = (function (fs$read) { return function (fd, buffer, offset, length, position, callback_) {
    var callback
    if (callback_ && typeof callback_ === 'function') {
      var eagCounter = 0
      callback = function (er, _, __) {
        if (er && er.code === 'EAGAIN' && eagCounter < 10) {
          eagCounter ++
          return fs$read.call(fs, fd, buffer, offset, length, position, callback)
        }
        callback_.apply(this, arguments)
      }
    }
    return fs$read.call(fs, fd, buffer, offset, length, position, callback)
  }})(fs.read)

  fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) {
    var eagCounter = 0
    while (true) {
      try {
        return fs$readSync.call(fs, fd, buffer, offset, length, position)
      } catch (er) {
        if (er.code === 'EAGAIN' && eagCounter < 10) {
          eagCounter ++
          continue
        }
        throw er
      }
    }
  }})(fs.readSync)

  function patchLchmod (fs) {
    fs.lchmod = function (path, mode, callback) {
      fs.open( path
             , constants.O_WRONLY | constants.O_SYMLINK
             , mode
             , function (err, fd) {
        if (err) {
          if (callback) callback(err)
          return
        }
        // prefer to return the chmod error, if one occurs,
        // but still try to close, and report closing errors if they occur.
        fs.fchmod(fd, mode, function (err) {
          fs.close(fd, function(err2) {
            if (callback) callback(err || err2)
          })
        })
      })
    }

    fs.lchmodSync = function (path, mode) {
      var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)

      // prefer to return the chmod error, if one occurs,
      // but still try to close, and report closing errors if they occur.
      var threw = true
      var ret
      try {
        ret = fs.fchmodSync(fd, mode)
        threw = false
      } finally {
        if (threw) {
          try {
            fs.closeSync(fd)
          } catch (er) {}
        } else {
          fs.closeSync(fd)
        }
      }
      return ret
    }
  }

  function patchLutimes (fs) {
    if (constants.hasOwnProperty("O_SYMLINK")) {
      fs.lutimes = function (path, at, mt, cb) {
        fs.open(path, constants.O_SYMLINK, function (er, fd) {
          if (er) {
            if (cb) cb(er)
            return
          }
          fs.futimes(fd, at, mt, function (er) {
            fs.close(fd, function (er2) {
              if (cb) cb(er || er2)
            })
          })
        })
      }

      fs.lutimesSync = function (path, at, mt) {
        var fd = fs.openSync(path, constants.O_SYMLINK)
        var ret
        var threw = true
        try {
          ret = fs.futimesSync(fd, at, mt)
          threw = false
        } finally {
          if (threw) {
            try {
              fs.closeSync(fd)
            } catch (er) {}
          } else {
            fs.closeSync(fd)
          }
        }
        return ret
      }

    } else {
      fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }
      fs.lutimesSync = function () {}
    }
  }

  function chmodFix (orig) {
    if (!orig) return orig
    return function (target, mode, cb) {
      return orig.call(fs, target, mode, function (er) {
        if (chownErOk(er)) er = null
        if (cb) cb.apply(this, arguments)
      })
    }
  }

  function chmodFixSync (orig) {
    if (!orig) return orig
    return function (target, mode) {
      try {
        return orig.call(fs, target, mode)
      } catch (er) {
        if (!chownErOk(er)) throw er
      }
    }
  }


  function chownFix (orig) {
    if (!orig) return orig
    return function (target, uid, gid, cb) {
      return orig.call(fs, target, uid, gid, function (er) {
        if (chownErOk(er)) er = null
        if (cb) cb.apply(this, arguments)
      })
    }
  }

  function chownFixSync (orig) {
    if (!orig) return orig
    return function (target, uid, gid) {
      try {
        return orig.call(fs, target, uid, gid)
      } catch (er) {
        if (!chownErOk(er)) throw er
      }
    }
  }

  function statFix (orig) {
    if (!orig) return orig
    // Older versions of Node erroneously returned signed integers for
    // uid + gid.
    return function (target, options, cb) {
      if (typeof options === 'function') {
        cb = options
        options = null
      }
      function callback (er, stats) {
        if (stats) {
          if (stats.uid < 0) stats.uid += 0x100000000
          if (stats.gid < 0) stats.gid += 0x100000000
        }
        if (cb) cb.apply(this, arguments)
      }
      return options ? orig.call(fs, target, options, callback)
        : orig.call(fs, target, callback)
    }
  }

  function statFixSync (orig) {
    if (!orig) return orig
    // Older versions of Node erroneously returned signed integers for
    // uid + gid.
    return function (target, options) {
      var stats = options ? orig.call(fs, target, options)
        : orig.call(fs, target)
      if (stats.uid < 0) stats.uid += 0x100000000
      if (stats.gid < 0) stats.gid += 0x100000000
      return stats;
    }
  }

  // ENOSYS means that the fs doesn't support the op. Just ignore
  // that, because it doesn't matter.
  //
  // if there's no getuid, or if getuid() is something other
  // than 0, and the error is EINVAL or EPERM, then just ignore
  // it.
  //
  // This specific case is a silent failure in cp, install, tar,
  // and most other unix tools that manage permissions.
  //
  // When running as root, or if other types of errors are
  // encountered, then it's strict.
  function chownErOk (er) {
    if (!er)
      return true

    if (er.code === "ENOSYS")
      return true

    var nonroot = !process.getuid || process.getuid() !== 0
    if (nonroot) {
      if (er.code === "EINVAL" || er.code === "EPERM")
        return true
    }

    return false
  }
}


/***/ }),
/* 109 */
/***/ (function(module, exports) {

module.exports = require("constants");

/***/ }),
/* 110 */
/***/ (function(module, exports, __webpack_require__) {

var Stream = __webpack_require__(111).Stream

module.exports = legacy

function legacy (fs) {
  return {
    ReadStream: ReadStream,
    WriteStream: WriteStream
  }

  function ReadStream (path, options) {
    if (!(this instanceof ReadStream)) return new ReadStream(path, options);

    Stream.call(this);

    var self = this;

    this.path = path;
    this.fd = null;
    this.readable = true;
    this.paused = false;

    this.flags = 'r';
    this.mode = 438; /*=0666*/
    this.bufferSize = 64 * 1024;

    options = options || {};

    // Mixin options into this
    var keys = Object.keys(options);
    for (var index = 0, length = keys.length; index < length; index++) {
      var key = keys[index];
      this[key] = options[key];
    }

    if (this.encoding) this.setEncoding(this.encoding);

    if (this.start !== undefined) {
      if ('number' !== typeof this.start) {
        throw TypeError('start must be a Number');
      }
      if (this.end === undefined) {
        this.end = Infinity;
      } else if ('number' !== typeof this.end) {
        throw TypeError('end must be a Number');
      }

      if (this.start > this.end) {
        throw new Error('start must be <= end');
      }

      this.pos = this.start;
    }

    if (this.fd !== null) {
      process.nextTick(function() {
        self._read();
      });
      return;
    }

    fs.open(this.path, this.flags, this.mode, function (err, fd) {
      if (err) {
        self.emit('error', err);
        self.readable = false;
        return;
      }

      self.fd = fd;
      self.emit('open', fd);
      self._read();
    })
  }

  function WriteStream (path, options) {
    if (!(this instanceof WriteStream)) return new WriteStream(path, options);

    Stream.call(this);

    this.path = path;
    this.fd = null;
    this.writable = true;

    this.flags = 'w';
    this.encoding = 'binary';
    this.mode = 438; /*=0666*/
    this.bytesWritten = 0;

    options = options || {};

    // Mixin options into this
    var keys = Object.keys(options);
    for (var index = 0, length = keys.length; index < length; index++) {
      var key = keys[index];
      this[key] = options[key];
    }

    if (this.start !== undefined) {
      if ('number' !== typeof this.start) {
        throw TypeError('start must be a Number');
      }
      if (this.start < 0) {
        throw new Error('start must be >= zero');
      }

      this.pos = this.start;
    }

    this.busy = false;
    this._queue = [];

    if (this.fd === null) {
      this._open = fs.open;
      this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);
      this.flush();
    }
  }
}


/***/ }),
/* 111 */
/***/ (function(module, exports) {

module.exports = require("stream");

/***/ }),
/* 112 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = clone

function clone (obj) {
  if (obj === null || typeof obj !== 'object')
    return obj

  if (obj instanceof Object)
    var copy = { __proto__: obj.__proto__ }
  else
    var copy = Object.create(null)

  Object.getOwnPropertyNames(obj).forEach(function (key) {
    Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))
  })

  return copy
}


/***/ }),
/* 113 */
/***/ (function(module, exports) {

module.exports = require("util");

/***/ }),
/* 114 */
/***/ (function(module, exports) {

module.exports = require("assert");

/***/ }),
/* 115 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = {
  copySync: __webpack_require__(116)
}


/***/ }),
/* 116 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const fs = __webpack_require__(107)
const path = __webpack_require__(55)
const mkdirpSync = __webpack_require__(117).mkdirsSync
const utimesSync = __webpack_require__(121).utimesMillisSync

const notExist = Symbol('notExist')

function copySync (src, dest, opts) {
  if (typeof opts === 'function') {
    opts = {filter: opts}
  }

  opts = opts || {}
  opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now
  opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber

  // Warn about using preserveTimestamps on 32-bit node
  if (opts.preserveTimestamps && process.arch === 'ia32') {
    console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n
    see https://github.com/jprichardson/node-fs-extra/issues/269`)
  }

  const destStat = checkPaths(src, dest)

  if (opts.filter && !opts.filter(src, dest)) return

  const destParent = path.dirname(dest)
  if (!fs.existsSync(destParent)) mkdirpSync(destParent)
  return startCopy(destStat, src, dest, opts)
}

function startCopy (destStat, src, dest, opts) {
  if (opts.filter && !opts.filter(src, dest)) return
  return getStats(destStat, src, dest, opts)
}

function getStats (destStat, src, dest, opts) {
  const statSync = opts.dereference ? fs.statSync : fs.lstatSync
  const srcStat = statSync(src)

  if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)
  else if (srcStat.isFile() ||
           srcStat.isCharacterDevice() ||
           srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts)
  else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)
}

function onFile (srcStat, destStat, src, dest, opts) {
  if (destStat === notExist) return copyFile(srcStat, src, dest, opts)
  return mayCopyFile(srcStat, src, dest, opts)
}

function mayCopyFile (srcStat, src, dest, opts) {
  if (opts.overwrite) {
    fs.unlinkSync(dest)
    return copyFile(srcStat, src, dest, opts)
  } else if (opts.errorOnExist) {
    throw new Error(`'${dest}' already exists`)
  }
}

function copyFile (srcStat, src, dest, opts) {
  if (typeof fs.copyFileSync === 'function') {
    fs.copyFileSync(src, dest)
    fs.chmodSync(dest, srcStat.mode)
    if (opts.preserveTimestamps) {
      return utimesSync(dest, srcStat.atime, srcStat.mtime)
    }
    return
  }
  return copyFileFallback(srcStat, src, dest, opts)
}

function copyFileFallback (srcStat, src, dest, opts) {
  const BUF_LENGTH = 64 * 1024
  const _buff = __webpack_require__(122)(BUF_LENGTH)

  const fdr = fs.openSync(src, 'r')
  const fdw = fs.openSync(dest, 'w', srcStat.mode)
  let pos = 0

  while (pos < srcStat.size) {
    const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)
    fs.writeSync(fdw, _buff, 0, bytesRead)
    pos += bytesRead
  }

  if (opts.preserveTimestamps) fs.futimesSync(fdw, srcStat.atime, srcStat.mtime)

  fs.closeSync(fdr)
  fs.closeSync(fdw)
}

function onDir (srcStat, destStat, src, dest, opts) {
  if (destStat === notExist) return mkDirAndCopy(srcStat, src, dest, opts)
  if (destStat && !destStat.isDirectory()) {
    throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)
  }
  return copyDir(src, dest, opts)
}

function mkDirAndCopy (srcStat, src, dest, opts) {
  fs.mkdirSync(dest)
  copyDir(src, dest, opts)
  return fs.chmodSync(dest, srcStat.mode)
}

function copyDir (src, dest, opts) {
  fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts))
}

function copyDirItem (item, src, dest, opts) {
  const srcItem = path.join(src, item)
  const destItem = path.join(dest, item)
  const destStat = checkPaths(srcItem, destItem)
  return startCopy(destStat, srcItem, destItem, opts)
}

function onLink (destStat, src, dest, opts) {
  let resolvedSrc = fs.readlinkSync(src)

  if (opts.dereference) {
    resolvedSrc = path.resolve(process.cwd(), resolvedSrc)
  }

  if (destStat === notExist) {
    return fs.symlinkSync(resolvedSrc, dest)
  } else {
    let resolvedDest
    try {
      resolvedDest = fs.readlinkSync(dest)
    } catch (err) {
      // dest exists and is a regular file or directory,
      // Windows may throw UNKNOWN error. If dest already exists,
      // fs throws error anyway, so no need to guard against it here.
      if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest)
      throw err
    }
    if (opts.dereference) {
      resolvedDest = path.resolve(process.cwd(), resolvedDest)
    }
    if (isSrcSubdir(resolvedSrc, resolvedDest)) {
      throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)
    }

    // prevent copy if src is a subdir of dest since unlinking
    // dest in this case would result in removing src contents
    // and therefore a broken symlink would be created.
    if (fs.statSync(dest).isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {
      throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
    }
    return copyLink(resolvedSrc, dest)
  }
}

function copyLink (resolvedSrc, dest) {
  fs.unlinkSync(dest)
  return fs.symlinkSync(resolvedSrc, dest)
}

// return true if dest is a subdir of src, otherwise false.
function isSrcSubdir (src, dest) {
  const srcArray = path.resolve(src).split(path.sep)
  const destArray = path.resolve(dest).split(path.sep)
  return srcArray.reduce((acc, current, i) => acc && destArray[i] === current, true)
}

function checkStats (src, dest) {
  const srcStat = fs.statSync(src)
  let destStat
  try {
    destStat = fs.statSync(dest)
  } catch (err) {
    if (err.code === 'ENOENT') return {srcStat, destStat: notExist}
    throw err
  }
  return {srcStat, destStat}
}

function checkPaths (src, dest) {
  const {srcStat, destStat} = checkStats(src, dest)
  if (destStat.ino && destStat.ino === srcStat.ino) {
    throw new Error('Source and destination must not be the same.')
  }
  if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
    throw new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`)
  }
  return destStat
}

module.exports = copySync


/***/ }),
/* 117 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

const u = __webpack_require__(106).fromCallback
const mkdirs = u(__webpack_require__(118))
const mkdirsSync = __webpack_require__(120)

module.exports = {
  mkdirs,
  mkdirsSync,
  // alias
  mkdirp: mkdirs,
  mkdirpSync: mkdirsSync,
  ensureDir: mkdirs,
  ensureDirSync: mkdirsSync
}


/***/ }),
/* 118 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const fs = __webpack_require__(107)
const path = __webpack_require__(55)
const invalidWin32Path = __webpack_require__(119).invalidWin32Path

const o777 = parseInt('0777', 8)

function mkdirs (p, opts, callback, made) {
  if (typeof opts === 'function') {
    callback = opts
    opts = {}
  } else if (!opts || typeof opts !== 'object') {
    opts = { mode: opts }
  }

  if (process.platform === 'win32' && invalidWin32Path(p)) {
    const errInval = new Error(p + ' contains invalid WIN32 path characters.')
    errInval.code = 'EINVAL'
    return callback(errInval)
  }

  let mode = opts.mode
  const xfs = opts.fs || fs

  if (mode === undefined) {
    mode = o777 & (~process.umask())
  }
  if (!made) made = null

  callback = callback || function () {}
  p = path.resolve(p)

  xfs.mkdir(p, mode, er => {
    if (!er) {
      made = made || p
      return callback(null, made)
    }
    switch (er.code) {
      case 'ENOENT':
        if (path.dirname(p) === p) return callback(er)
        mkdirs(path.dirname(p), opts, (er, made) => {
          if (er) callback(er, made)
          else mkdirs(p, opts, callback, made)
        })
        break

      // In the case of any other error, just see if there's a dir
      // there already.  If so, then hooray!  If not, then something
      // is borked.
      default:
        xfs.stat(p, (er2, stat) => {
          // if the stat fails, then that's super weird.
          // let the original error be the failure reason.
          if (er2 || !stat.isDirectory()) callback(er, made)
          else callback(null, made)
        })
        break
    }
  })
}

module.exports = mkdirs


/***/ }),
/* 119 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const path = __webpack_require__(55)

// get drive on windows
function getRootPath (p) {
  p = path.normalize(path.resolve(p)).split(path.sep)
  if (p.length > 0) return p[0]
  return null
}

// http://stackoverflow.com/a/62888/10333 contains more accurate
// TODO: expand to include the rest
const INVALID_PATH_CHARS = /[<>:"|?*]/

function invalidWin32Path (p) {
  const rp = getRootPath(p)
  p = p.replace(rp, '')
  return INVALID_PATH_CHARS.test(p)
}

module.exports = {
  getRootPath,
  invalidWin32Path
}


/***/ }),
/* 120 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const fs = __webpack_require__(107)
const path = __webpack_require__(55)
const invalidWin32Path = __webpack_require__(119).invalidWin32Path

const o777 = parseInt('0777', 8)

function mkdirsSync (p, opts, made) {
  if (!opts || typeof opts !== 'object') {
    opts = { mode: opts }
  }

  let mode = opts.mode
  const xfs = opts.fs || fs

  if (process.platform === 'win32' && invalidWin32Path(p)) {
    const errInval = new Error(p + ' contains invalid WIN32 path characters.')
    errInval.code = 'EINVAL'
    throw errInval
  }

  if (mode === undefined) {
    mode = o777 & (~process.umask())
  }
  if (!made) made = null

  p = path.resolve(p)

  try {
    xfs.mkdirSync(p, mode)
    made = made || p
  } catch (err0) {
    if (err0.code === 'ENOENT') {
      if (path.dirname(p) === p) throw err0
      made = mkdirsSync(path.dirname(p), opts, made)
      mkdirsSync(p, opts, made)
    } else {
      // In the case of any other error, just see if there's a dir there
      // already. If so, then hooray!  If not, then something is borked.
      let stat
      try {
        stat = xfs.statSync(p)
      } catch (err1) {
        throw err0
      }
      if (!stat.isDirectory()) throw err0
    }
  }

  return made
}

module.exports = mkdirsSync


/***/ }),
/* 121 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const fs = __webpack_require__(107)
const os = __webpack_require__(56)
const path = __webpack_require__(55)

// HFS, ext{2,3}, FAT do not, Node.js v0.10 does not
function hasMillisResSync () {
  let tmpfile = path.join('millis-test-sync' + Date.now().toString() + Math.random().toString().slice(2))
  tmpfile = path.join(os.tmpdir(), tmpfile)

  // 550 millis past UNIX epoch
  const d = new Date(1435410243862)
  fs.writeFileSync(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141')
  const fd = fs.openSync(tmpfile, 'r+')
  fs.futimesSync(fd, d, d)
  fs.closeSync(fd)
  return fs.statSync(tmpfile).mtime > 1435410243000
}

function hasMillisRes (callback) {
  let tmpfile = path.join('millis-test' + Date.now().toString() + Math.random().toString().slice(2))
  tmpfile = path.join(os.tmpdir(), tmpfile)

  // 550 millis past UNIX epoch
  const d = new Date(1435410243862)
  fs.writeFile(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141', err => {
    if (err) return callback(err)
    fs.open(tmpfile, 'r+', (err, fd) => {
      if (err) return callback(err)
      fs.futimes(fd, d, d, err => {
        if (err) return callback(err)
        fs.close(fd, err => {
          if (err) return callback(err)
          fs.stat(tmpfile, (err, stats) => {
            if (err) return callback(err)
            callback(null, stats.mtime > 1435410243000)
          })
        })
      })
    })
  })
}

function timeRemoveMillis (timestamp) {
  if (typeof timestamp === 'number') {
    return Math.floor(timestamp / 1000) * 1000
  } else if (timestamp instanceof Date) {
    return new Date(Math.floor(timestamp.getTime() / 1000) * 1000)
  } else {
    throw new Error('fs-extra: timeRemoveMillis() unknown parameter type')
  }
}

function utimesMillis (path, atime, mtime, callback) {
  // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)
  fs.open(path, 'r+', (err, fd) => {
    if (err) return callback(err)
    fs.futimes(fd, atime, mtime, futimesErr => {
      fs.close(fd, closeErr => {
        if (callback) callback(futimesErr || closeErr)
      })
    })
  })
}

function utimesMillisSync (path, atime, mtime) {
  const fd = fs.openSync(path, 'r+')
  fs.futimesSync(fd, atime, mtime)
  return fs.closeSync(fd)
}

module.exports = {
  hasMillisRes,
  hasMillisResSync,
  timeRemoveMillis,
  utimesMillis,
  utimesMillisSync
}


/***/ }),
/* 122 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/* eslint-disable node/no-deprecated-api */
module.exports = function (size) {
  if (typeof Buffer.allocUnsafe === 'function') {
    try {
      return Buffer.allocUnsafe(size)
    } catch (e) {
      return new Buffer(size)
    }
  }
  return new Buffer(size)
}


/***/ }),
/* 123 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const u = __webpack_require__(106).fromCallback
module.exports = {
  copy: u(__webpack_require__(124))
}


/***/ }),
/* 124 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const fs = __webpack_require__(107)
const path = __webpack_require__(55)
const mkdirp = __webpack_require__(117).mkdirs
const pathExists = __webpack_require__(125).pathExists
const utimes = __webpack_require__(121).utimesMillis

const notExist = Symbol('notExist')

function copy (src, dest, opts, cb) {
  if (typeof opts === 'function' && !cb) {
    cb = opts
    opts = {}
  } else if (typeof opts === 'function') {
    opts = {filter: opts}
  }

  cb = cb || function () {}
  opts = opts || {}

  opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now
  opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber

  // Warn about using preserveTimestamps on 32-bit node
  if (opts.preserveTimestamps && process.arch === 'ia32') {
    console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n
    see https://github.com/jprichardson/node-fs-extra/issues/269`)
  }

  checkPaths(src, dest, (err, destStat) => {
    if (err) return cb(err)
    if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb)
    return checkParentDir(destStat, src, dest, opts, cb)
  })
}

function checkParentDir (destStat, src, dest, opts, cb) {
  const destParent = path.dirname(dest)
  pathExists(destParent, (err, dirExists) => {
    if (err) return cb(err)
    if (dirExists) return startCopy(destStat, src, dest, opts, cb)
    mkdirp(destParent, err => {
      if (err) return cb(err)
      return startCopy(destStat, src, dest, opts, cb)
    })
  })
}

function handleFilter (onInclude, destStat, src, dest, opts, cb) {
  Promise.resolve(opts.filter(src, dest)).then(include => {
    if (include) {
      if (destStat) return onInclude(destStat, src, dest, opts, cb)
      return onInclude(src, dest, opts, cb)
    }
    return cb()
  }, error => cb(error))
}

function startCopy (destStat, src, dest, opts, cb) {
  if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb)
  return getStats(destStat, src, dest, opts, cb)
}

function getStats (destStat, src, dest, opts, cb) {
  const stat = opts.dereference ? fs.stat : fs.lstat
  stat(src, (err, srcStat) => {
    if (err) return cb(err)

    if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb)
    else if (srcStat.isFile() ||
             srcStat.isCharacterDevice() ||
             srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb)
    else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb)
  })
}

function onFile (srcStat, destStat, src, dest, opts, cb) {
  if (destStat === notExist) return copyFile(srcStat, src, dest, opts, cb)
  return mayCopyFile(srcStat, src, dest, opts, cb)
}

function mayCopyFile (srcStat, src, dest, opts, cb) {
  if (opts.overwrite) {
    fs.unlink(dest, err => {
      if (err) return cb(err)
      return copyFile(srcStat, src, dest, opts, cb)
    })
  } else if (opts.errorOnExist) {
    return cb(new Error(`'${dest}' already exists`))
  } else return cb()
}

function copyFile (srcStat, src, dest, opts, cb) {
  if (typeof fs.copyFile === 'function') {
    return fs.copyFile(src, dest, err => {
      if (err) return cb(err)
      return setDestModeAndTimestamps(srcStat, dest, opts, cb)
    })
  }
  return copyFileFallback(srcStat, src, dest, opts, cb)
}

function copyFileFallback (srcStat, src, dest, opts, cb) {
  const rs = fs.createReadStream(src)
  rs.on('error', err => cb(err)).once('open', () => {
    const ws = fs.createWriteStream(dest, { mode: srcStat.mode })
    ws.on('error', err => cb(err))
      .on('open', () => rs.pipe(ws))
      .once('close', () => setDestModeAndTimestamps(srcStat, dest, opts, cb))
  })
}

function setDestModeAndTimestamps (srcStat, dest, opts, cb) {
  fs.chmod(dest, srcStat.mode, err => {
    if (err) return cb(err)
    if (opts.preserveTimestamps) {
      return utimes(dest, srcStat.atime, srcStat.mtime, cb)
    }
    return cb()
  })
}

function onDir (srcStat, destStat, src, dest, opts, cb) {
  if (destStat === notExist) return mkDirAndCopy(srcStat, src, dest, opts, cb)
  if (destStat && !destStat.isDirectory()) {
    return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))
  }
  return copyDir(src, dest, opts, cb)
}

function mkDirAndCopy (srcStat, src, dest, opts, cb) {
  fs.mkdir(dest, err => {
    if (err) return cb(err)
    copyDir(src, dest, opts, err => {
      if (err) return cb(err)
      return fs.chmod(dest, srcStat.mode, cb)
    })
  })
}

function copyDir (src, dest, opts, cb) {
  fs.readdir(src, (err, items) => {
    if (err) return cb(err)
    return copyDirItems(items, src, dest, opts, cb)
  })
}

function copyDirItems (items, src, dest, opts, cb) {
  const item = items.pop()
  if (!item) return cb()
  return copyDirItem(items, item, src, dest, opts, cb)
}

function copyDirItem (items, item, src, dest, opts, cb) {
  const srcItem = path.join(src, item)
  const destItem = path.join(dest, item)
  checkPaths(srcItem, destItem, (err, destStat) => {
    if (err) return cb(err)
    startCopy(destStat, srcItem, destItem, opts, err => {
      if (err) return cb(err)
      return copyDirItems(items, src, dest, opts, cb)
    })
  })
}

function onLink (destStat, src, dest, opts, cb) {
  fs.readlink(src, (err, resolvedSrc) => {
    if (err) return cb(err)

    if (opts.dereference) {
      resolvedSrc = path.resolve(process.cwd(), resolvedSrc)
    }

    if (destStat === notExist) {
      return fs.symlink(resolvedSrc, dest, cb)
    } else {
      fs.readlink(dest, (err, resolvedDest) => {
        if (err) {
          // dest exists and is a regular file or directory,
          // Windows may throw UNKNOWN error. If dest already exists,
          // fs throws error anyway, so no need to guard against it here.
          if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest, cb)
          return cb(err)
        }
        if (opts.dereference) {
          resolvedDest = path.resolve(process.cwd(), resolvedDest)
        }
        if (isSrcSubdir(resolvedSrc, resolvedDest)) {
          return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`))
        }

        // do not copy if src is a subdir of dest since unlinking
        // dest in this case would result in removing src contents
        // and therefore a broken symlink would be created.
        if (destStat.isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {
          return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))
        }
        return copyLink(resolvedSrc, dest, cb)
      })
    }
  })
}

function copyLink (resolvedSrc, dest, cb) {
  fs.unlink(dest, err => {
    if (err) return cb(err)
    return fs.symlink(resolvedSrc, dest, cb)
  })
}

// return true if dest is a subdir of src, otherwise false.
function isSrcSubdir (src, dest) {
  const srcArray = path.resolve(src).split(path.sep)
  const destArray = path.resolve(dest).split(path.sep)
  return srcArray.reduce((acc, current, i) => acc && destArray[i] === current, true)
}

function checkStats (src, dest, cb) {
  fs.stat(src, (err, srcStat) => {
    if (err) return cb(err)
    fs.stat(dest, (err, destStat) => {
      if (err) {
        if (err.code === 'ENOENT') return cb(null, {srcStat, destStat: notExist})
        return cb(err)
      }
      return cb(null, {srcStat, destStat})
    })
  })
}

function checkPaths (src, dest, cb) {
  checkStats(src, dest, (err, stats) => {
    if (err) return cb(err)
    const {srcStat, destStat} = stats
    if (destStat.ino && destStat.ino === srcStat.ino) {
      return cb(new Error('Source and destination must not be the same.'))
    }
    if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
      return cb(new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`))
    }
    return cb(null, destStat)
  })
}

module.exports = copy


/***/ }),
/* 125 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

const u = __webpack_require__(106).fromPromise
const fs = __webpack_require__(105)

function pathExists (path) {
  return fs.access(path).then(() => true).catch(() => false)
}

module.exports = {
  pathExists: u(pathExists),
  pathExistsSync: fs.existsSync
}


/***/ }),
/* 126 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const u = __webpack_require__(106).fromCallback
const fs = __webpack_require__(94)
const path = __webpack_require__(55)
const mkdir = __webpack_require__(117)
const remove = __webpack_require__(127)

const emptyDir = u(function emptyDir (dir, callback) {
  callback = callback || function () {}
  fs.readdir(dir, (err, items) => {
    if (err) return mkdir.mkdirs(dir, callback)

    items = items.map(item => path.join(dir, item))

    deleteItem()

    function deleteItem () {
      const item = items.pop()
      if (!item) return callback()
      remove.remove(item, err => {
        if (err) return callback(err)
        deleteItem()
      })
    }
  })
})

function emptyDirSync (dir) {
  let items
  try {
    items = fs.readdirSync(dir)
  } catch (err) {
    return mkdir.mkdirsSync(dir)
  }

  items.forEach(item => {
    item = path.join(dir, item)
    remove.removeSync(item)
  })
}

module.exports = {
  emptyDirSync,
  emptydirSync: emptyDirSync,
  emptyDir,
  emptydir: emptyDir
}


/***/ }),
/* 127 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const u = __webpack_require__(106).fromCallback
const rimraf = __webpack_require__(128)

module.exports = {
  remove: u(rimraf),
  removeSync: rimraf.sync
}


/***/ }),
/* 128 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const fs = __webpack_require__(107)
const path = __webpack_require__(55)
const assert = __webpack_require__(114)

const isWindows = (process.platform === 'win32')

function defaults (options) {
  const methods = [
    'unlink',
    'chmod',
    'stat',
    'lstat',
    'rmdir',
    'readdir'
  ]
  methods.forEach(m => {
    options[m] = options[m] || fs[m]
    m = m + 'Sync'
    options[m] = options[m] || fs[m]
  })

  options.maxBusyTries = options.maxBusyTries || 3
}

function rimraf (p, options, cb) {
  let busyTries = 0

  if (typeof options === 'function') {
    cb = options
    options = {}
  }

  assert(p, 'rimraf: missing path')
  assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
  assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required')
  assert(options, 'rimraf: invalid options argument provided')
  assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')

  defaults(options)

  rimraf_(p, options, function CB (er) {
    if (er) {
      if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') &&
          busyTries < options.maxBusyTries) {
        busyTries++
        const time = busyTries * 100
        // try again, with the same exact callback as this one.
        return setTimeout(() => rimraf_(p, options, CB), time)
      }

      // already gone
      if (er.code === 'ENOENT') er = null
    }

    cb(er)
  })
}

// Two possible strategies.
// 1. Assume it's a file.  unlink it, then do the dir stuff on EPERM or EISDIR
// 2. Assume it's a directory.  readdir, then do the file stuff on ENOTDIR
//
// Both result in an extra syscall when you guess wrong.  However, there
// are likely far more normal files in the world than directories.  This
// is based on the assumption that a the average number of files per
// directory is >= 1.
//
// If anyone ever complains about this, then I guess the strategy could
// be made configurable somehow.  But until then, YAGNI.
function rimraf_ (p, options, cb) {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  // sunos lets the root user unlink directories, which is... weird.
  // so we have to lstat here and make sure it's not a dir.
  options.lstat(p, (er, st) => {
    if (er && er.code === 'ENOENT') {
      return cb(null)
    }

    // Windows can EPERM on stat.  Life is suffering.
    if (er && er.code === 'EPERM' && isWindows) {
      return fixWinEPERM(p, options, er, cb)
    }

    if (st && st.isDirectory()) {
      return rmdir(p, options, er, cb)
    }

    options.unlink(p, er => {
      if (er) {
        if (er.code === 'ENOENT') {
          return cb(null)
        }
        if (er.code === 'EPERM') {
          return (isWindows)
            ? fixWinEPERM(p, options, er, cb)
            : rmdir(p, options, er, cb)
        }
        if (er.code === 'EISDIR') {
          return rmdir(p, options, er, cb)
        }
      }
      return cb(er)
    })
  })
}

function fixWinEPERM (p, options, er, cb) {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')
  if (er) {
    assert(er instanceof Error)
  }

  options.chmod(p, 0o666, er2 => {
    if (er2) {
      cb(er2.code === 'ENOENT' ? null : er)
    } else {
      options.stat(p, (er3, stats) => {
        if (er3) {
          cb(er3.code === 'ENOENT' ? null : er)
        } else if (stats.isDirectory()) {
          rmdir(p, options, er, cb)
        } else {
          options.unlink(p, cb)
        }
      })
    }
  })
}

function fixWinEPERMSync (p, options, er) {
  let stats

  assert(p)
  assert(options)
  if (er) {
    assert(er instanceof Error)
  }

  try {
    options.chmodSync(p, 0o666)
  } catch (er2) {
    if (er2.code === 'ENOENT') {
      return
    } else {
      throw er
    }
  }

  try {
    stats = options.statSync(p)
  } catch (er3) {
    if (er3.code === 'ENOENT') {
      return
    } else {
      throw er
    }
  }

  if (stats.isDirectory()) {
    rmdirSync(p, options, er)
  } else {
    options.unlinkSync(p)
  }
}

function rmdir (p, options, originalEr, cb) {
  assert(p)
  assert(options)
  if (originalEr) {
    assert(originalEr instanceof Error)
  }
  assert(typeof cb === 'function')

  // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
  // if we guessed wrong, and it's not a directory, then
  // raise the original error.
  options.rmdir(p, er => {
    if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) {
      rmkids(p, options, cb)
    } else if (er && er.code === 'ENOTDIR') {
      cb(originalEr)
    } else {
      cb(er)
    }
  })
}

function rmkids (p, options, cb) {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  options.readdir(p, (er, files) => {
    if (er) return cb(er)

    let n = files.length
    let errState

    if (n === 0) return options.rmdir(p, cb)

    files.forEach(f => {
      rimraf(path.join(p, f), options, er => {
        if (errState) {
          return
        }
        if (er) return cb(errState = er)
        if (--n === 0) {
          options.rmdir(p, cb)
        }
      })
    })
  })
}

// this looks simpler, and is strictly *faster*, but will
// tie up the JavaScript thread and fail on excessively
// deep directory trees.
function rimrafSync (p, options) {
  let st

  options = options || {}
  defaults(options)

  assert(p, 'rimraf: missing path')
  assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
  assert(options, 'rimraf: missing options')
  assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')

  try {
    st = options.lstatSync(p)
  } catch (er) {
    if (er.code === 'ENOENT') {
      return
    }

    // Windows can EPERM on stat.  Life is suffering.
    if (er.code === 'EPERM' && isWindows) {
      fixWinEPERMSync(p, options, er)
    }
  }

  try {
    // sunos lets the root user unlink directories, which is... weird.
    if (st && st.isDirectory()) {
      rmdirSync(p, options, null)
    } else {
      options.unlinkSync(p)
    }
  } catch (er) {
    if (er.code === 'ENOENT') {
      return
    } else if (er.code === 'EPERM') {
      return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
    } else if (er.code !== 'EISDIR') {
      throw er
    }
    rmdirSync(p, options, er)
  }
}

function rmdirSync (p, options, originalEr) {
  assert(p)
  assert(options)
  if (originalEr) {
    assert(originalEr instanceof Error)
  }

  try {
    options.rmdirSync(p)
  } catch (er) {
    if (er.code === 'ENOTDIR') {
      throw originalEr
    } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') {
      rmkidsSync(p, options)
    } else if (er.code !== 'ENOENT') {
      throw er
    }
  }
}

function rmkidsSync (p, options) {
  assert(p)
  assert(options)
  options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))

  if (isWindows) {
    // We only end up here once we got ENOTEMPTY at least once, and
    // at this point, we are guaranteed to have removed all the kids.
    // So, we know that it won't be ENOENT or ENOTDIR or anything else.
    // try really hard to delete stuff on windows, because it has a
    // PROFOUNDLY annoying habit of not closing handles promptly when
    // files are deleted, resulting in spurious ENOTEMPTY errors.
    const startTime = Date.now()
    do {
      try {
        const ret = options.rmdirSync(p, options)
        return ret
      } catch (er) { }
    } while (Date.now() - startTime < 500) // give up after 500ms
  } else {
    const ret = options.rmdirSync(p, options)
    return ret
  }
}

module.exports = rimraf
rimraf.sync = rimrafSync


/***/ }),
/* 129 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const file = __webpack_require__(130)
const link = __webpack_require__(131)
const symlink = __webpack_require__(132)

module.exports = {
  // file
  createFile: file.createFile,
  createFileSync: file.createFileSync,
  ensureFile: file.createFile,
  ensureFileSync: file.createFileSync,
  // link
  createLink: link.createLink,
  createLinkSync: link.createLinkSync,
  ensureLink: link.createLink,
  ensureLinkSync: link.createLinkSync,
  // symlink
  createSymlink: symlink.createSymlink,
  createSymlinkSync: symlink.createSymlinkSync,
  ensureSymlink: symlink.createSymlink,
  ensureSymlinkSync: symlink.createSymlinkSync
}


/***/ }),
/* 130 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const u = __webpack_require__(106).fromCallback
const path = __webpack_require__(55)
const fs = __webpack_require__(107)
const mkdir = __webpack_require__(117)
const pathExists = __webpack_require__(125).pathExists

function createFile (file, callback) {
  function makeFile () {
    fs.writeFile(file, '', err => {
      if (err) return callback(err)
      callback()
    })
  }

  fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err
    if (!err && stats.isFile()) return callback()
    const dir = path.dirname(file)
    pathExists(dir, (err, dirExists) => {
      if (err) return callback(err)
      if (dirExists) return makeFile()
      mkdir.mkdirs(dir, err => {
        if (err) return callback(err)
        makeFile()
      })
    })
  })
}

function createFileSync (file) {
  let stats
  try {
    stats = fs.statSync(file)
  } catch (e) {}
  if (stats && stats.isFile()) return

  const dir = path.dirname(file)
  if (!fs.existsSync(dir)) {
    mkdir.mkdirsSync(dir)
  }

  fs.writeFileSync(file, '')
}

module.exports = {
  createFile: u(createFile),
  createFileSync
}


/***/ }),
/* 131 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const u = __webpack_require__(106).fromCallback
const path = __webpack_require__(55)
const fs = __webpack_require__(107)
const mkdir = __webpack_require__(117)
const pathExists = __webpack_require__(125).pathExists

function createLink (srcpath, dstpath, callback) {
  function makeLink (srcpath, dstpath) {
    fs.link(srcpath, dstpath, err => {
      if (err) return callback(err)
      callback(null)
    })
  }

  pathExists(dstpath, (err, destinationExists) => {
    if (err) return callback(err)
    if (destinationExists) return callback(null)
    fs.lstat(srcpath, (err) => {
      if (err) {
        err.message = err.message.replace('lstat', 'ensureLink')
        return callback(err)
      }

      const dir = path.dirname(dstpath)
      pathExists(dir, (err, dirExists) => {
        if (err) return callback(err)
        if (dirExists) return makeLink(srcpath, dstpath)
        mkdir.mkdirs(dir, err => {
          if (err) return callback(err)
          makeLink(srcpath, dstpath)
        })
      })
    })
  })
}

function createLinkSync (srcpath, dstpath) {
  const destinationExists = fs.existsSync(dstpath)
  if (destinationExists) return undefined

  try {
    fs.lstatSync(srcpath)
  } catch (err) {
    err.message = err.message.replace('lstat', 'ensureLink')
    throw err
  }

  const dir = path.dirname(dstpath)
  const dirExists = fs.existsSync(dir)
  if (dirExists) return fs.linkSync(srcpath, dstpath)
  mkdir.mkdirsSync(dir)

  return fs.linkSync(srcpath, dstpath)
}

module.exports = {
  createLink: u(createLink),
  createLinkSync
}


/***/ }),
/* 132 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const u = __webpack_require__(106).fromCallback
const path = __webpack_require__(55)
const fs = __webpack_require__(107)
const _mkdirs = __webpack_require__(117)
const mkdirs = _mkdirs.mkdirs
const mkdirsSync = _mkdirs.mkdirsSync

const _symlinkPaths = __webpack_require__(133)
const symlinkPaths = _symlinkPaths.symlinkPaths
const symlinkPathsSync = _symlinkPaths.symlinkPathsSync

const _symlinkType = __webpack_require__(134)
const symlinkType = _symlinkType.symlinkType
const symlinkTypeSync = _symlinkType.symlinkTypeSync

const pathExists = __webpack_require__(125).pathExists

function createSymlink (srcpath, dstpath, type, callback) {
  callback = (typeof type === 'function') ? type : callback
  type = (typeof type === 'function') ? false : type

  pathExists(dstpath, (err, destinationExists) => {
    if (err) return callback(err)
    if (destinationExists) return callback(null)
    symlinkPaths(srcpath, dstpath, (err, relative) => {
      if (err) return callback(err)
      srcpath = relative.toDst
      symlinkType(relative.toCwd, type, (err, type) => {
        if (err) return callback(err)
        const dir = path.dirname(dstpath)
        pathExists(dir, (err, dirExists) => {
          if (err) return callback(err)
          if (dirExists) return fs.symlink(srcpath, dstpath, type, callback)
          mkdirs(dir, err => {
            if (err) return callback(err)
            fs.symlink(srcpath, dstpath, type, callback)
          })
        })
      })
    })
  })
}

function createSymlinkSync (srcpath, dstpath, type) {
  const destinationExists = fs.existsSync(dstpath)
  if (destinationExists) return undefined

  const relative = symlinkPathsSync(srcpath, dstpath)
  srcpath = relative.toDst
  type = symlinkTypeSync(relative.toCwd, type)
  const dir = path.dirname(dstpath)
  const exists = fs.existsSync(dir)
  if (exists) return fs.symlinkSync(srcpath, dstpath, type)
  mkdirsSync(dir)
  return fs.symlinkSync(srcpath, dstpath, type)
}

module.exports = {
  createSymlink: u(createSymlink),
  createSymlinkSync
}


/***/ }),
/* 133 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const path = __webpack_require__(55)
const fs = __webpack_require__(107)
const pathExists = __webpack_require__(125).pathExists

/**
 * Function that returns two types of paths, one relative to symlink, and one
 * relative to the current working directory. Checks if path is absolute or
 * relative. If the path is relative, this function checks if the path is
 * relative to symlink or relative to current working directory. This is an
 * initiative to find a smarter `srcpath` to supply when building symlinks.
 * This allows you to determine which path to use out of one of three possible
 * types of source paths. The first is an absolute path. This is detected by
 * `path.isAbsolute()`. When an absolute path is provided, it is checked to
 * see if it exists. If it does it's used, if not an error is returned
 * (callback)/ thrown (sync). The other two options for `srcpath` are a
 * relative url. By default Node's `fs.symlink` works by creating a symlink
 * using `dstpath` and expects the `srcpath` to be relative to the newly
 * created symlink. If you provide a `srcpath` that does not exist on the file
 * system it results in a broken symlink. To minimize this, the function
 * checks to see if the 'relative to symlink' source file exists, and if it
 * does it will use it. If it does not, it checks if there's a file that
 * exists that is relative to the current working directory, if does its used.
 * This preserves the expectations of the original fs.symlink spec and adds
 * the ability to pass in `relative to current working direcotry` paths.
 */

function symlinkPaths (srcpath, dstpath, callback) {
  if (path.isAbsolute(srcpath)) {
    return fs.lstat(srcpath, (err) => {
      if (err) {
        err.message = err.message.replace('lstat', 'ensureSymlink')
        return callback(err)
      }
      return callback(null, {
        'toCwd': srcpath,
        'toDst': srcpath
      })
    })
  } else {
    const dstdir = path.dirname(dstpath)
    const relativeToDst = path.join(dstdir, srcpath)
    return pathExists(relativeToDst, (err, exists) => {
      if (err) return callback(err)
      if (exists) {
        return callback(null, {
          'toCwd': relativeToDst,
          'toDst': srcpath
        })
      } else {
        return fs.lstat(srcpath, (err) => {
          if (err) {
            err.message = err.message.replace('lstat', 'ensureSymlink')
            return callback(err)
          }
          return callback(null, {
            'toCwd': srcpath,
            'toDst': path.relative(dstdir, srcpath)
          })
        })
      }
    })
  }
}

function symlinkPathsSync (srcpath, dstpath) {
  let exists
  if (path.isAbsolute(srcpath)) {
    exists = fs.existsSync(srcpath)
    if (!exists) throw new Error('absolute srcpath does not exist')
    return {
      'toCwd': srcpath,
      'toDst': srcpath
    }
  } else {
    const dstdir = path.dirname(dstpath)
    const relativeToDst = path.join(dstdir, srcpath)
    exists = fs.existsSync(relativeToDst)
    if (exists) {
      return {
        'toCwd': relativeToDst,
        'toDst': srcpath
      }
    } else {
      exists = fs.existsSync(srcpath)
      if (!exists) throw new Error('relative srcpath does not exist')
      return {
        'toCwd': srcpath,
        'toDst': path.relative(dstdir, srcpath)
      }
    }
  }
}

module.exports = {
  symlinkPaths,
  symlinkPathsSync
}


/***/ }),
/* 134 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const fs = __webpack_require__(107)

function symlinkType (srcpath, type, callback) {
  callback = (typeof type === 'function') ? type : callback
  type = (typeof type === 'function') ? false : type
  if (type) return callback(null, type)
  fs.lstat(srcpath, (err, stats) => {
    if (err) return callback(null, 'file')
    type = (stats && stats.isDirectory()) ? 'dir' : 'file'
    callback(null, type)
  })
}

function symlinkTypeSync (srcpath, type) {
  let stats

  if (type) return type
  try {
    stats = fs.lstatSync(srcpath)
  } catch (e) {
    return 'file'
  }
  return (stats && stats.isDirectory()) ? 'dir' : 'file'
}

module.exports = {
  symlinkType,
  symlinkTypeSync
}


/***/ }),
/* 135 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const u = __webpack_require__(106).fromCallback
const jsonFile = __webpack_require__(136)

jsonFile.outputJson = u(__webpack_require__(138))
jsonFile.outputJsonSync = __webpack_require__(139)
// aliases
jsonFile.outputJSON = jsonFile.outputJson
jsonFile.outputJSONSync = jsonFile.outputJsonSync
jsonFile.writeJSON = jsonFile.writeJson
jsonFile.writeJSONSync = jsonFile.writeJsonSync
jsonFile.readJSON = jsonFile.readJson
jsonFile.readJSONSync = jsonFile.readJsonSync

module.exports = jsonFile


/***/ }),
/* 136 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const u = __webpack_require__(106).fromCallback
const jsonFile = __webpack_require__(137)

module.exports = {
  // jsonfile exports
  readJson: u(jsonFile.readFile),
  readJsonSync: jsonFile.readFileSync,
  writeJson: u(jsonFile.writeFile),
  writeJsonSync: jsonFile.writeFileSync
}


/***/ }),
/* 137 */
/***/ (function(module, exports, __webpack_require__) {

var _fs
try {
  _fs = __webpack_require__(107)
} catch (_) {
  _fs = __webpack_require__(94)
}

function readFile (file, options, callback) {
  if (callback == null) {
    callback = options
    options = {}
  }

  if (typeof options === 'string') {
    options = {encoding: options}
  }

  options = options || {}
  var fs = options.fs || _fs

  var shouldThrow = true
  if ('throws' in options) {
    shouldThrow = options.throws
  }

  fs.readFile(file, options, function (err, data) {
    if (err) return callback(err)

    data = stripBom(data)

    var obj
    try {
      obj = JSON.parse(data, options ? options.reviver : null)
    } catch (err2) {
      if (shouldThrow) {
        err2.message = file + ': ' + err2.message
        return callback(err2)
      } else {
        return callback(null, null)
      }
    }

    callback(null, obj)
  })
}

function readFileSync (file, options) {
  options = options || {}
  if (typeof options === 'string') {
    options = {encoding: options}
  }

  var fs = options.fs || _fs

  var shouldThrow = true
  if ('throws' in options) {
    shouldThrow = options.throws
  }

  try {
    var content = fs.readFileSync(file, options)
    content = stripBom(content)
    return JSON.parse(content, options.reviver)
  } catch (err) {
    if (shouldThrow) {
      err.message = file + ': ' + err.message
      throw err
    } else {
      return null
    }
  }
}

function stringify (obj, options) {
  var spaces
  var EOL = '\n'
  if (typeof options === 'object' && options !== null) {
    if (options.spaces) {
      spaces = options.spaces
    }
    if (options.EOL) {
      EOL = options.EOL
    }
  }

  var str = JSON.stringify(obj, options ? options.replacer : null, spaces)

  return str.replace(/\n/g, EOL) + EOL
}

function writeFile (file, obj, options, callback) {
  if (callback == null) {
    callback = options
    options = {}
  }
  options = options || {}
  var fs = options.fs || _fs

  var str = ''
  try {
    str = stringify(obj, options)
  } catch (err) {
    // Need to return whether a callback was passed or not
    if (callback) callback(err, null)
    return
  }

  fs.writeFile(file, str, options, callback)
}

function writeFileSync (file, obj, options) {
  options = options || {}
  var fs = options.fs || _fs

  var str = stringify(obj, options)
  // not sure if fs.writeFileSync returns anything, but just in case
  return fs.writeFileSync(file, str, options)
}

function stripBom (content) {
  // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified
  if (Buffer.isBuffer(content)) content = content.toString('utf8')
  content = content.replace(/^\uFEFF/, '')
  return content
}

var jsonfile = {
  readFile: readFile,
  readFileSync: readFileSync,
  writeFile: writeFile,
  writeFileSync: writeFileSync
}

module.exports = jsonfile


/***/ }),
/* 138 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const path = __webpack_require__(55)
const mkdir = __webpack_require__(117)
const pathExists = __webpack_require__(125).pathExists
const jsonFile = __webpack_require__(136)

function outputJson (file, data, options, callback) {
  if (typeof options === 'function') {
    callback = options
    options = {}
  }

  const dir = path.dirname(file)

  pathExists(dir, (err, itDoes) => {
    if (err) return callback(err)
    if (itDoes) return jsonFile.writeJson(file, data, options, callback)

    mkdir.mkdirs(dir, err => {
      if (err) return callback(err)
      jsonFile.writeJson(file, data, options, callback)
    })
  })
}

module.exports = outputJson


/***/ }),
/* 139 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const fs = __webpack_require__(107)
const path = __webpack_require__(55)
const mkdir = __webpack_require__(117)
const jsonFile = __webpack_require__(136)

function outputJsonSync (file, data, options) {
  const dir = path.dirname(file)

  if (!fs.existsSync(dir)) {
    mkdir.mkdirsSync(dir)
  }

  jsonFile.writeJsonSync(file, data, options)
}

module.exports = outputJsonSync


/***/ }),
/* 140 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const fs = __webpack_require__(107)
const path = __webpack_require__(55)
const copySync = __webpack_require__(115).copySync
const removeSync = __webpack_require__(127).removeSync
const mkdirpSync = __webpack_require__(117).mkdirsSync
const buffer = __webpack_require__(122)

function moveSync (src, dest, options) {
  options = options || {}
  const overwrite = options.overwrite || options.clobber || false

  src = path.resolve(src)
  dest = path.resolve(dest)

  if (src === dest) return fs.accessSync(src)

  if (isSrcSubdir(src, dest)) throw new Error(`Cannot move '${src}' into itself '${dest}'.`)

  mkdirpSync(path.dirname(dest))
  tryRenameSync()

  function tryRenameSync () {
    if (overwrite) {
      try {
        return fs.renameSync(src, dest)
      } catch (err) {
        if (err.code === 'ENOTEMPTY' || err.code === 'EEXIST' || err.code === 'EPERM') {
          removeSync(dest)
          options.overwrite = false // just overwriteed it, no need to do it again
          return moveSync(src, dest, options)
        }

        if (err.code !== 'EXDEV') throw err
        return moveSyncAcrossDevice(src, dest, overwrite)
      }
    } else {
      try {
        fs.linkSync(src, dest)
        return fs.unlinkSync(src)
      } catch (err) {
        if (err.code === 'EXDEV' || err.code === 'EISDIR' || err.code === 'EPERM' || err.code === 'ENOTSUP') {
          return moveSyncAcrossDevice(src, dest, overwrite)
        }
        throw err
      }
    }
  }
}

function moveSyncAcrossDevice (src, dest, overwrite) {
  const stat = fs.statSync(src)

  if (stat.isDirectory()) {
    return moveDirSyncAcrossDevice(src, dest, overwrite)
  } else {
    return moveFileSyncAcrossDevice(src, dest, overwrite)
  }
}

function moveFileSyncAcrossDevice (src, dest, overwrite) {
  const BUF_LENGTH = 64 * 1024
  const _buff = buffer(BUF_LENGTH)

  const flags = overwrite ? 'w' : 'wx'

  const fdr = fs.openSync(src, 'r')
  const stat = fs.fstatSync(fdr)
  const fdw = fs.openSync(dest, flags, stat.mode)
  let pos = 0

  while (pos < stat.size) {
    const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)
    fs.writeSync(fdw, _buff, 0, bytesRead)
    pos += bytesRead
  }

  fs.closeSync(fdr)
  fs.closeSync(fdw)
  return fs.unlinkSync(src)
}

function moveDirSyncAcrossDevice (src, dest, overwrite) {
  const options = {
    overwrite: false
  }

  if (overwrite) {
    removeSync(dest)
    tryCopySync()
  } else {
    tryCopySync()
  }

  function tryCopySync () {
    copySync(src, dest, options)
    return removeSync(src)
  }
}

// return true if dest is a subdir of src, otherwise false.
// extract dest base dir and check if that is the same as src basename
function isSrcSubdir (src, dest) {
  try {
    return fs.statSync(src).isDirectory() &&
           src !== dest &&
           dest.indexOf(src) > -1 &&
           dest.split(path.dirname(src) + path.sep)[1].split(path.sep)[0] === path.basename(src)
  } catch (e) {
    return false
  }
}

module.exports = {
  moveSync
}


/***/ }),
/* 141 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const u = __webpack_require__(106).fromCallback
const fs = __webpack_require__(107)
const path = __webpack_require__(55)
const copy = __webpack_require__(123).copy
const remove = __webpack_require__(127).remove
const mkdirp = __webpack_require__(117).mkdirp
const pathExists = __webpack_require__(125).pathExists

function move (src, dest, opts, cb) {
  if (typeof opts === 'function') {
    cb = opts
    opts = {}
  }

  const overwrite = opts.overwrite || opts.clobber || false

  src = path.resolve(src)
  dest = path.resolve(dest)

  if (src === dest) return fs.access(src, cb)

  fs.stat(src, (err, st) => {
    if (err) return cb(err)

    if (st.isDirectory() && isSrcSubdir(src, dest)) {
      return cb(new Error(`Cannot move '${src}' to a subdirectory of itself, '${dest}'.`))
    }
    mkdirp(path.dirname(dest), err => {
      if (err) return cb(err)
      return doRename(src, dest, overwrite, cb)
    })
  })
}

function doRename (src, dest, overwrite, cb) {
  if (overwrite) {
    return remove(dest, err => {
      if (err) return cb(err)
      return rename(src, dest, overwrite, cb)
    })
  }
  pathExists(dest, (err, destExists) => {
    if (err) return cb(err)
    if (destExists) return cb(new Error('dest already exists.'))
    return rename(src, dest, overwrite, cb)
  })
}

function rename (src, dest, overwrite, cb) {
  fs.rename(src, dest, err => {
    if (!err) return cb()
    if (err.code !== 'EXDEV') return cb(err)
    return moveAcrossDevice(src, dest, overwrite, cb)
  })
}

function moveAcrossDevice (src, dest, overwrite, cb) {
  const opts = {
    overwrite,
    errorOnExist: true
  }

  copy(src, dest, opts, err => {
    if (err) return cb(err)
    return remove(src, cb)
  })
}

function isSrcSubdir (src, dest) {
  const srcArray = src.split(path.sep)
  const destArray = dest.split(path.sep)

  return srcArray.reduce((acc, current, i) => {
    return acc && destArray[i] === current
  }, true)
}

module.exports = {
  move: u(move)
}


/***/ }),
/* 142 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const u = __webpack_require__(106).fromCallback
const fs = __webpack_require__(107)
const path = __webpack_require__(55)
const mkdir = __webpack_require__(117)
const pathExists = __webpack_require__(125).pathExists

function outputFile (file, data, encoding, callback) {
  if (typeof encoding === 'function') {
    callback = encoding
    encoding = 'utf8'
  }

  const dir = path.dirname(file)
  pathExists(dir, (err, itDoes) => {
    if (err) return callback(err)
    if (itDoes) return fs.writeFile(file, data, encoding, callback)

    mkdir.mkdirs(dir, err => {
      if (err) return callback(err)

      fs.writeFile(file, data, encoding, callback)
    })
  })
}

function outputFileSync (file, ...args) {
  const dir = path.dirname(file)
  if (fs.existsSync(dir)) {
    return fs.writeFileSync(file, ...args)
  }
  mkdir.mkdirsSync(dir)
  fs.writeFileSync(file, ...args)
}

module.exports = {
  outputFile: u(outputFile),
  outputFileSync
}


/***/ }),
/* 143 */
/***/ (function(module, exports, __webpack_require__) {

var os = __webpack_require__(56)
var stats = __webpack_require__(144)

var wrapper = function (statType) {
  return function (pid, options, cb) {
    if (typeof options === 'function') {
      cb = options
      options = {}
    }

    return stats[statType](pid, options, cb)
  }
}

var pusage = {
  darwin: wrapper('ps'),
  sunos: wrapper('ps'),
  freebsd: wrapper('ps'),
  netbsd: wrapper('proc'),
  win: wrapper('win'),
  linux: wrapper('proc'),
  aix: wrapper('ps'),
  unsupported: function (pid, options, cb) {
    cb = typeof options === 'function' ? options : cb

    cb(new Error(os.platform() + ' is not supported yet, please fire an issue (https://github.com/soyuka/pidusage)'))
  }
}

var platform = os.platform()
platform = platform.match(/^win/) ? 'win' : platform // nor is windows a winner...
platform = pusage[platform] ? platform : 'unsupported'

exports.stat = function () {
  pusage[platform].apply(stats, [].slice.call(arguments))
}

exports.unmonitor = function (pid) {
  delete stats.history[pid]
}

exports._history = stats.history


/***/ }),
/* 144 */
/***/ (function(module, exports, __webpack_require__) {

var os = __webpack_require__(56)
var fs = __webpack_require__(94)
var p = __webpack_require__(55)
var exec = __webpack_require__(145).exec
var spawn = __webpack_require__(145).spawn
var helpers = __webpack_require__(146)
var format = __webpack_require__(113).format
var PLATFORM = os.platform()

var stats = {
  history: {},
  cpu: null, // used to store cpu informations
  proc: function (pid, options, done) {
    var self = this

    if (this.cpu !== null) {
      fs.readFile('/proc/uptime', 'utf8', function (err, uptime) {
        if (err) {
          return done(err, null)
        }

        if (uptime === undefined) {
          console.error("[pidusage] We couldn't find uptime from /proc/uptime")
          self.cpu.uptime = os.uptime()
        } else {
          self.cpu.uptime = uptime.split(' ')[0]
        }

        return self.proc_calc(pid, options, done)
      })
    } else {
      helpers.cpu(function (err, cpu) {
        if (err) {
          return done(err, null)
        }

        self.cpu = cpu
        return self.proc_calc(pid, options, done)
      })
    }
  },
  proc_calc: function (pid, options, done) {
    pid = parseInt(pid, 10)
    var history = this.history[pid] ? this.history[pid] : {}
    var cpu = this.cpu
    var self = this

    // Arguments to path.join must be strings
    fs.readFile(p.join('/proc', '' + pid, 'stat'), 'utf8', function (err, infos) {
      if (err) {
        return done(err, null)
      }

      // https://github.com/arunoda/node-usage/commit/a6ca74ecb8dd452c3c00ed2bde93294d7bb75aa8
      // preventing process space in name by removing values before last ) (pid (name) ...)
      var index = infos.lastIndexOf(')')
      infos = infos.substr(index + 2).split(' ')

      // according to http://man7.org/linux/man-pages/man5/proc.5.html (index 0 based - 2)
      // In kernels before Linux 2.6, start was expressed in jiffies. Since Linux 2.6, the value is expressed in clock ticks
      var stat = {
        utime: parseFloat(infos[11]),
        stime: parseFloat(infos[12]),
        cutime: parseFloat(infos[13]),
        cstime: parseFloat(infos[14]),
        start: parseFloat(infos[19]) / cpu.clockTick,
        rss: parseFloat(infos[21])
      }

      // http://stackoverflow.com/questions/16726779/total-cpu-usage-of-an-application-from-proc-pid-stat/16736599#16736599
      var childrens = options.childrens ? stat.cutime + stat.cstime : 0
      var total = stat.stime - (history.stime || 0) + stat.utime - (history.utime || 0) + childrens

      total = total / cpu.clockTick

      // time elapsed between calls
      var seconds = history.uptime !== undefined ? cpu.uptime - history.uptime : stat.start - cpu.uptime
      seconds = Math.abs(seconds)
      seconds = seconds === 0 ? 1 : seconds // we sure can't divide through 0

      self.history[pid] = stat
      self.history[pid].uptime = cpu.uptime

      var cpuPercent = (total / seconds) * 100
      var memory = stat.rss * cpu.pagesize

      if (!options.advanced) {
        return done(null, {
          cpu: cpuPercent,
          memory: memory
        })
      }

      return done(null, {
        cpu: cpuPercent,
        memory: memory,
        time: stat.utime + stat.stime,
        start: stat.start
      })
    })
  },
  /**
   * Get pid informations through ps command
   * @param  {int}   pid
   * @return  {Function} done (err, stat)
   * on os x skip headers with pcpu=,rss=
   * on linux it could be --no-header
   * on solaris 11 can't figure out a way to do this properly so...
   */
  ps: function (pid, options, done) {
    pid = parseInt(pid, 10)
    var cmd = 'ps -o pcpu,rss -p '

    if (options.advanced) {
      cmd = 'ps -o pcpu,rss,time,start -p '

      if (PLATFORM === 'aix') {
        cmd = 'ps -o pcpu,rssize,time,start -p '
      }
    } else if (PLATFORM === 'aix') {
      cmd = 'ps -o pcpu,rssize -p ' // this one could work on other platforms see AIX section in man ps
    }

    exec(cmd + pid, function (err, stdout, stderr) {
      if (err) {
        return done(err, null)
      }

      stdout = stdout.split(os.EOL)[1]
      stdout = stdout.replace(/^\s+/, '').replace(/\s\s+/g, ' ').split(' ')

      var cpuPercent = parseFloat(stdout[0].replace(',', '.'))
      var memory = parseFloat(stdout[1]) * 1024

      if (!options.advanced) {
        return done(null, {
          cpu: cpuPercent,
          memory: memory
        })
      }

      return done(null, {
        cpu: cpuPercent,
        memory: memory,
        time: parseFloat(stdout[2]),
        start: parseFloat(stdout[3])
      })
    })
  },
  /**
   * This is really in a beta stage
   */
  win: function (pid, options, done) {
    pid = parseInt(pid, 10)
    var history = this.history[pid] ? this.history[pid] : {}
    // http://social.msdn.microsoft.com/Forums/en-US/469ec6b7-4727-4773-9dc7-6e3de40e87b8/cpu-usage-in-for-each-active-process-how-is-this-best-determined-and-implemented-in-an?forum=csharplanguage
    var args = 'PROCESS ' + pid + ' get workingsetsize,usermodetime,kernelmodetime'

    var wmic = spawn('wmic', args.split(' '), {detached: true})
    var stdout = ''
    var stderr = ''
    var self = this
    // Note: On Windows the returned value includes fractions of a second. Use Math.floor() to get whole seconds.
    var uptime = Math.floor(os.uptime())

    wmic.stdout.on('data', function (d) {
      stdout += d.toString()
    })

    wmic.stderr.on('data', function (d) {
      stderr += d.toString()
    })

    wmic.on('error', function (err) {
      console.error('[pidusage] Command "wmic ' + args + '" failed with error %s', err)
    })

    wmic.on('close', function (code) {
      stdout = stdout.trim()
      stderr = stderr.trim()

      if (!stdout || code !== 0) {
        var error = format('%s Wmic errored, please open an issue on https://github.com/soyuka/pidusage with this message.%s', new Date().toString(), os.EOL)
        error += format('Command was "wmic %s" %s System informations: %s - release: %s %s - type %s %s', args, os.EOL, os.EOL, os.release(), os.EOL, os.type(), os.EOL)
        stderr = error + (stderr ? format('Wmic reported the following error: %s.', stderr) : 'Wmic reported no errors (stderr empty).')
        stderr = format('%s%s%sWmic exited with code %d.', os.EOL, stderr, os.EOL, code)
        stderr = format('%s%sStdout was %s', stderr, os.EOL, stdout || 'empty')

        return done(new Error(stderr, null))
      }

      stdout = stdout.split(os.EOL)[1].replace(/\s\s+/g, ' ').split(' ')

      var stats = {
        kernelmodetime: parseFloat(stdout[0]),
        usermodetime: parseFloat(stdout[1])
      }

      var workingsetsize = parseFloat(stdout[2])

      // process usage since last call
      var total = stats.kernelmodetime - (history.kernelmodetime || 0) + stats.usermodetime - (history.usermodetime || 0)
      total = total / 10000000

      // time elapsed between calls
      var seconds = history.uptime !== undefined ? uptime - history.uptime : 0

      var cpu = 0

      if (seconds > 0) {
        cpu = (total / seconds) * 100
      }

      self.history[pid] = stats
      self.history[pid].uptime = uptime

      if (!options.advanced) {
        return done(null, {cpu: cpu, memory: workingsetsize})
      }

      return done(null, {
        cpu: cpu,
        memory: workingsetsize,
        time: stats.usermodetime + stats.kernelmodetime,
        start: seconds
      })
    })
    wmic.stdin.end()
  }
}

module.exports = stats


/***/ }),
/* 145 */
/***/ (function(module, exports) {

module.exports = require("child_process");

/***/ }),
/* 146 */
/***/ (function(module, exports, __webpack_require__) {

var os = __webpack_require__(56)
var exec = __webpack_require__(145).exec

module.exports = {
  getconf: function (keyword, options, next) {
    if (typeof options === 'function') {
      next = options
      options = { default: '' }
    }

    exec('getconf ' + keyword, function (error, stdout, stderr) {
      if (error !== null) {
        console.error('Error while getting ' + keyword, error)
        return next(null, options.default)
      }

      stdout = parseInt(stdout)

      if (!isNaN(stdout)) {
        return next(null, stdout)
      }

      return next(null, options.default)
    })
  },
  cpu: function (next) {
    var self = this

    self.getconf('CLK_TCK', {default: 100}, function (err, clockTick) {
      if (err) {
        return next(err)
      }

      self.getconf('PAGESIZE', {default: 4096}, function (err, pagesize) {
        if (err) {
          return next(err)
        }

        next(null, {
          clockTick: clockTick,
          uptime: os.uptime(),
          pagesize: pagesize
        })
      })
    })
  }
}


/***/ }),
/* 147 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
// TO DO: Deprecate in favor of IPlatformService
exports.WINDOWS_PATH_VARIABLE_NAME = 'Path';
exports.NON_WINDOWS_PATH_VARIABLE_NAME = 'PATH';
exports.IS_WINDOWS = /^win/.test(process.platform);


/***/ }),
/* 148 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.IBufferDecoder = Symbol('IBufferDecoder');
exports.IProcessServiceFactory = Symbol('IProcessServiceFactory');
exports.IPythonExecutionFactory = Symbol('IPythonExecutionFactory');
exports.IPythonExecutionService = Symbol('IPythonExecutionService');
class StdErrError extends Error {
    constructor(message) {
        super(message);
    }
}
exports.StdErrError = StdErrError;
exports.IPythonToolExecutionService = Symbol('IPythonToolRunnerService');


/***/ }),
/* 149 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
/**
 * Split a string using the cr and lf characters and return them as an array.
 * By default lines are trimmed and empty lines are removed.
 * @param {SplitLinesOptions=} splitOptions - Options used for splitting the string.
 */
function splitLines(str, splitOptions = { removeEmptyEntries: true, trim: true }) {
    let lines = str.split(/\r?\n/g);
    if (splitOptions && splitOptions.trim) {
        lines = lines.map(line => line.trim());
    }
    if (splitOptions && splitOptions.removeEmptyEntries) {
        lines = lines.filter(line => line.length > 0);
    }
    return lines;
}
exports.splitLines = splitLines;
/**
 * Appropriately formats a string so it can be used as an argument for a command in a shell.
 * E.g. if an argument contains a space, then it will be enclosed within double quotes.
 * @param {String} value.
 */
function toCommandArgument(str) {
    if (!str) {
        return str;
    }
    return (str.indexOf(' ') >= 0 && !str.startsWith('"') && !str.endsWith('"')) ? `"${str}"` : str.toString();
}
exports.toCommandArgument = toCommandArgument;
/**
 * Appropriately formats a a file path so it can be used as an argument for a command in a shell.
 * E.g. if an argument contains a space, then it will be enclosed within double quotes.
 */
function fileToCommandArgument(str) {
    if (!str) {
        return str;
    }
    return toCommandArgument(str).replace(/\\/g, '/');
}
exports.fileToCommandArgument = fileToCommandArgument;
/**
 * String.trimQuotes implementation
 * Removes leading and trailing quotes from a string
 */
function trimQuotes(str) {
    if (!str) {
        return str;
    }
    return str.replace(/(^['"])|(['"]$)/g, '');
}
exports.trimQuotes = trimQuotes;
function format(str, ...args) {
    // tslint:disable-next-line: variable-name
    return str.replace(/{(\d+)}/g, (match, n) => args[n] === undefined ? match : args[n]);
}
exports.format = format;


/***/ }),
/* 150 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
async function sleep(timeout) {
    return new Promise((resolve) => {
        setTimeout(resolve, timeout);
    });
}
exports.sleep = sleep;
class DeferredImpl {
    // tslint:disable-next-line:no-any
    constructor(scope = null) {
        this.scope = scope;
        this._resolved = false;
        this._rejected = false;
        // tslint:disable-next-line:promise-must-complete
        this._promise = new Promise((res, rej) => {
            this._resolve = res;
            this._reject = rej;
        });
    }
    resolve(_value) {
        // tslint:disable-next-line:no-any
        this._resolve.apply(this.scope ? this.scope : this, arguments);
        this._resolved = true;
    }
    // tslint:disable-next-line:no-any
    reject(_reason) {
        // tslint:disable-next-line:no-any
        this._reject.apply(this.scope ? this.scope : this, arguments);
        this._rejected = true;
    }
    get promise() {
        return this._promise;
    }
    get resolved() {
        return this._resolved;
    }
    get rejected() {
        return this._rejected;
    }
    get completed() {
        return this._rejected || this._resolved;
    }
}
// tslint:disable-next-line:no-any
function createDeferred(scope = null) {
    return new DeferredImpl(scope);
}
exports.createDeferred = createDeferred;
function createDeferredFrom(...promises) {
    const deferred = createDeferred();
    Promise.all(promises)
        // tslint:disable-next-line:no-any
        .then(deferred.resolve.bind(deferred))
        // tslint:disable-next-line:no-any
        .catch(deferred.reject.bind(deferred));
    return deferred;
}
exports.createDeferredFrom = createDeferredFrom;
function createDeferredFromPromise(promise) {
    const deferred = createDeferred();
    promise
        .then(deferred.resolve.bind(deferred))
        .catch(deferred.reject.bind(deferred));
    return deferred;
}
exports.createDeferredFromPromise = createDeferredFromPromise;
function callWithTimeout(func, timeoutMS) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            reject(new Error('Timed out'));
        }, timeoutMS);
        try {
            const result = func();
            resolve(result);
        }
        catch (e) {
            reject(e);
        }
    });
}
exports.callWithTimeout = callWithTimeout;


/***/ }),
/* 151 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// tslint:disable:no-any no-require-imports no-function-expression no-invalid-this
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = __webpack_require__(84);
const logger_1 = __webpack_require__(86);
const cacheUtils_1 = __webpack_require__(152);
const coc_nvim_1 = __webpack_require__(2);
const function_1 = __webpack_require__(80);
// tslint:disable-next-line:no-require-imports no-var-requires
const _debounce = __webpack_require__(153);
/**
 * Debounces a function execution. Function must return either a void or a promise that resolves to a void.
 * @export
 * @param {number} [wait] Wait time.
 * @returns void
 */
function debounce(wait) {
    // tslint:disable-next-line:no-any no-function-expression
    return function (_target, _propertyName, descriptor) {
        const originalMethod = descriptor.value;
        descriptor.value = _debounce(function () { return originalMethod.apply(this, arguments); }, wait);
    };
}
exports.debounce = debounce;
function clearCachedResourceSpecificIngterpreterData(key, resource) {
    const cache = new cacheUtils_1.InMemoryInterpreterSpecificCache(key, 0, [resource]);
    cache.clear();
}
exports.clearCachedResourceSpecificIngterpreterData = clearCachedResourceSpecificIngterpreterData;
function cacheResourceSpecificInterpreterData(key, expiryDurationMs) {
    return function (_target, _propertyName, descriptor) {
        const originalMethod = descriptor.value;
        descriptor.value = async function (...args) {
            const cache = new cacheUtils_1.InMemoryInterpreterSpecificCache(key, expiryDurationMs, args);
            if (cache.hasData) {
                logger_1.traceVerbose(`Cached data exists ${key}, ${args[0] ? args[0].fsPath : '<No Resource>'}`);
                return Promise.resolve(cache.data);
            }
            const promise = originalMethod.apply(this, args);
            promise.then(result => cache.data = result).catch(function_1.emptyFn);
            return promise;
        };
    };
}
exports.cacheResourceSpecificInterpreterData = cacheResourceSpecificInterpreterData;
/**
 * Swallows exceptions thrown by a function. Function must return either a void or a promise that resolves to a void.
 * When exceptions (including in promises) are caught, this will return `undefined` to calling code.
 * @export
 * @param {string} [scopeName] Scope for the error message to be logged along with the error.
 * @returns void
 */
function swallowExceptions(scopeName) {
    // tslint:disable-next-line:no-any no-function-expression
    return function (_target, propertyName, descriptor) {
        const originalMethod = descriptor.value;
        const errorMessage = `Python Extension (Error in ${scopeName}, method:${propertyName}):`;
        // tslint:disable-next-line:no-any no-function-expression
        descriptor.value = function (...args) {
            try {
                // tslint:disable-next-line:no-invalid-this no-use-before-declare no-unsafe-any
                const result = originalMethod.apply(this, args);
                // If method being wrapped returns a promise then wait and swallow errors.
                if (result && typeof result.then === 'function' && typeof result.catch === 'function') {
                    return result.catch(error => {
                        if (constants_1.isTestExecution()) {
                            return;
                        }
                        logger_1.traceError(errorMessage, error);
                    });
                }
            }
            catch (error) {
                if (constants_1.isTestExecution()) {
                    return;
                }
                logger_1.traceError(errorMessage, error);
            }
        };
    };
}
exports.swallowExceptions = swallowExceptions;
function displayProgress(title) {
    let item = coc_nvim_1.workspace.createStatusBarItem(0, { progress: true });
    item.text = title;
    return function (_target, _propertyName, descriptor) {
        const originalMethod = descriptor.value;
        // tslint:disable-next-line:no-any no-function-expression
        descriptor.value = async function (...args) {
            item.show();
            // tslint:disable-next-line:no-invalid-this
            const promise = originalMethod.apply(this, args);
            Promise.resolve(promise).then(() => {
                item.hide();
            }, () => {
                item.hide();
            });
            return promise;
        };
    };
}
exports.displayProgress = displayProgress;


/***/ }),
/* 152 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-any no-require-imports
const coc_nvim_1 = __webpack_require__(2);
const resourceSpecificCacheStores = new Map();
/**
 * Get a cache key specific to a resource (i.e. workspace)
 * This key will be used to cache interpreter related data, hence the Python Path
 *  used in a workspace will affect the cache key.
 * @param {String} keyPrefix
 * @param {Resource} resource
 * @returns
 */
function getCacheKey(resource) {
    const config = coc_nvim_1.workspace.getConfiguration('python', resource ? resource.toString() : null);
    if (!config)
        return 'python';
    let folder = coc_nvim_1.workspace.rootPath;
    const pythonPath = config.get('pythonPath', 'python');
    return `${folder}-${pythonPath}`;
}
/**
 * Gets the cache store for a resource that's specific to the interpreter.
 * @param {string} keyPrefix
 * @param {Resource} resource
 * @param {VSCodeType} [vscode=require('coc.nvim')]
 * @returns
 */
function getCacheStore(resource) {
    const key = getCacheKey(resource);
    if (!resourceSpecificCacheStores.has(key)) {
        resourceSpecificCacheStores.set(key, new Map());
    }
    return resourceSpecificCacheStores.get(key);
}
function getCacheKeyFromFunctionArgs(keyPrefix, fnArgs) {
    const argsKey = fnArgs.map(arg => `${JSON.stringify(arg)}`).join('-Arg-Separator-');
    return `KeyPrefix=${keyPrefix}-Args=${argsKey}`;
}
function clearCache() {
    resourceSpecificCacheStores.clear();
}
exports.clearCache = clearCache;
class InMemoryInterpreterSpecificCache {
    constructor(keyPrefix, expiryDurationMs, args) {
        this.keyPrefix = keyPrefix;
        this.expiryDurationMs = expiryDurationMs;
        this.resource = args[0];
        this.args = args.slice(1);
    }
    get hasData() {
        const store = getCacheStore(this.resource);
        const key = getCacheKeyFromFunctionArgs(this.keyPrefix, this.args);
        const data = store.get(key);
        if (!store.has(key) || !data) {
            return false;
        }
        if (this.hasExpired(data.expiry)) {
            store.delete(key);
            return false;
        }
        return true;
    }
    /**
     * Returns undefined if there is no data.
     * Uses `hasData` to determine whether any cached data exists.
     *
     * @type {(T | undefined)}
     * @memberof InMemoryInterpreterSpecificCache
     */
    get data() {
        if (!this.hasData) {
            return;
        }
        const store = getCacheStore(this.resource);
        const key = getCacheKeyFromFunctionArgs(this.keyPrefix, this.args);
        const data = store.get(key);
        if (!store.has(key) || !data) {
            return;
        }
        return data.value;
    }
    set data(value) {
        const store = getCacheStore(this.resource);
        const key = getCacheKeyFromFunctionArgs(this.keyPrefix, this.args);
        store.set(key, {
            expiry: this.calculateExpiry(),
            value
        });
    }
    clear() {
        const store = getCacheStore(this.resource);
        const key = getCacheKeyFromFunctionArgs(this.keyPrefix, this.args);
        store.delete(key);
    }
    /**
     * Has this data expired?
     * (protected class member to allow for reliable non-data-time-based testing)
     *
     * @param expiry The date to be tested for expiry.
     * @returns true if the data expired, false otherwise.
     */
    hasExpired(expiry) {
        return expiry < Date.now();
    }
    /**
     * When should this data item expire?
     * (protected class method to allow for reliable non-data-time-based testing)
     *
     * @returns number representing the expiry time for this item.
     */
    calculateExpiry() {
        return Date.now() + this.expiryDurationMs;
    }
}
exports.InMemoryInterpreterSpecificCache = InMemoryInterpreterSpecificCache;


/***/ }),
/* 153 */
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(154),
    now = __webpack_require__(155),
    toNumber = __webpack_require__(158);

/** Error message constants. */
var FUNC_ERROR_TEXT = 'Expected a function';

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max,
    nativeMin = Math.min;

/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.debounce` and `_.throttle`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', _.debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }));
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
 * var source = new EventSource('/stream');
 * jQuery(source).on('message', debounced);
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel);
 */
function debounce(func, wait, options) {
  var lastArgs,
      lastThis,
      maxWait,
      result,
      timerId,
      lastCallTime,
      lastInvokeTime = 0,
      leading = false,
      maxing = false,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  wait = toNumber(wait) || 0;
  if (isObject(options)) {
    leading = !!options.leading;
    maxing = 'maxWait' in options;
    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  function invokeFunc(time) {
    var args = lastArgs,
        thisArg = lastThis;

    lastArgs = lastThis = undefined;
    lastInvokeTime = time;
    result = func.apply(thisArg, args);
    return result;
  }

  function leadingEdge(time) {
    // Reset any `maxWait` timer.
    lastInvokeTime = time;
    // Start the timer for the trailing edge.
    timerId = setTimeout(timerExpired, wait);
    // Invoke the leading edge.
    return leading ? invokeFunc(time) : result;
  }

  function remainingWait(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime,
        timeWaiting = wait - timeSinceLastCall;

    return maxing
      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
      : timeWaiting;
  }

  function shouldInvoke(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime;

    // Either this is the first call, activity has stopped and we're at the
    // trailing edge, the system time has gone backwards and we're treating
    // it as the trailing edge, or we've hit the `maxWait` limit.
    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
  }

  function timerExpired() {
    var time = now();
    if (shouldInvoke(time)) {
      return trailingEdge(time);
    }
    // Restart the timer.
    timerId = setTimeout(timerExpired, remainingWait(time));
  }

  function trailingEdge(time) {
    timerId = undefined;

    // Only invoke if we have `lastArgs` which means `func` has been
    // debounced at least once.
    if (trailing && lastArgs) {
      return invokeFunc(time);
    }
    lastArgs = lastThis = undefined;
    return result;
  }

  function cancel() {
    if (timerId !== undefined) {
      clearTimeout(timerId);
    }
    lastInvokeTime = 0;
    lastArgs = lastCallTime = lastThis = timerId = undefined;
  }

  function flush() {
    return timerId === undefined ? result : trailingEdge(now());
  }

  function debounced() {
    var time = now(),
        isInvoking = shouldInvoke(time);

    lastArgs = arguments;
    lastThis = this;
    lastCallTime = time;

    if (isInvoking) {
      if (timerId === undefined) {
        return leadingEdge(lastCallTime);
      }
      if (maxing) {
        // Handle invocations in a tight loop.
        clearTimeout(timerId);
        timerId = setTimeout(timerExpired, wait);
        return invokeFunc(lastCallTime);
      }
    }
    if (timerId === undefined) {
      timerId = setTimeout(timerExpired, wait);
    }
    return result;
  }
  debounced.cancel = cancel;
  debounced.flush = flush;
  return debounced;
}

module.exports = debounce;


/***/ }),
/* 154 */
/***/ (function(module, exports) {

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return value != null && (type == 'object' || type == 'function');
}

module.exports = isObject;


/***/ }),
/* 155 */
/***/ (function(module, exports, __webpack_require__) {

var root = __webpack_require__(156);

/**
 * Gets the timestamp of the number of milliseconds that have elapsed since
 * the Unix epoch (1 January 1970 00:00:00 UTC).
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Date
 * @returns {number} Returns the timestamp.
 * @example
 *
 * _.defer(function(stamp) {
 *   console.log(_.now() - stamp);
 * }, _.now());
 * // => Logs the number of milliseconds it took for the deferred invocation.
 */
var now = function() {
  return root.Date.now();
};

module.exports = now;


/***/ }),
/* 156 */
/***/ (function(module, exports, __webpack_require__) {

var freeGlobal = __webpack_require__(157);

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

module.exports = root;


/***/ }),
/* 157 */
/***/ (function(module, exports) {

/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

module.exports = freeGlobal;


/***/ }),
/* 158 */
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(154),
    isSymbol = __webpack_require__(159);

/** Used as references for various `Number` constants. */
var NAN = 0 / 0;

/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;

/** Used to detect bad signed hexadecimal string values. */
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;

/** Used to detect binary string values. */
var reIsBinary = /^0b[01]+$/i;

/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;

/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;

/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */
function toNumber(value) {
  if (typeof value == 'number') {
    return value;
  }
  if (isSymbol(value)) {
    return NAN;
  }
  if (isObject(value)) {
    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
    value = isObject(other) ? (other + '') : other;
  }
  if (typeof value != 'string') {
    return value === 0 ? value : +value;
  }
  value = value.replace(reTrim, '');
  var isBinary = reIsBinary.test(value);
  return (isBinary || reIsOctal.test(value))
    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
    : (reIsBadHex.test(value) ? NAN : +value);
}

module.exports = toNumber;


/***/ }),
/* 159 */
/***/ (function(module, exports, __webpack_require__) {

var baseGetTag = __webpack_require__(160),
    isObjectLike = __webpack_require__(164);

/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';

/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */
function isSymbol(value) {
  return typeof value == 'symbol' ||
    (isObjectLike(value) && baseGetTag(value) == symbolTag);
}

module.exports = isSymbol;


/***/ }),
/* 160 */
/***/ (function(module, exports, __webpack_require__) {

var Symbol = __webpack_require__(161),
    getRawTag = __webpack_require__(162),
    objectToString = __webpack_require__(163);

/** `Object#toString` result references. */
var nullTag = '[object Null]',
    undefinedTag = '[object Undefined]';

/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }
  return (symToStringTag && symToStringTag in Object(value))
    ? getRawTag(value)
    : objectToString(value);
}

module.exports = baseGetTag;


/***/ }),
/* 161 */
/***/ (function(module, exports, __webpack_require__) {

var root = __webpack_require__(156);

/** Built-in value references. */
var Symbol = root.Symbol;

module.exports = Symbol;


/***/ }),
/* 162 */
/***/ (function(module, exports, __webpack_require__) {

var Symbol = __webpack_require__(161);

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */
function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);
  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }
  return result;
}

module.exports = getRawTag;


/***/ }),
/* 163 */
/***/ (function(module, exports) {

/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */
function objectToString(value) {
  return nativeObjectToString.call(value);
}

module.exports = objectToString;


/***/ }),
/* 164 */
/***/ (function(module, exports) {

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return value != null && typeof value == 'object';
}

module.exports = isObjectLike;


/***/ }),
/* 165 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
class StopWatch {
    constructor() {
        this.started = Date.now();
    }
    get elapsedTime() {
        return Date.now() - this.started;
    }
    reset() {
        this.started = Date.now();
    }
}
exports.StopWatch = StopWatch;


/***/ }),
/* 166 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.IEnvironmentVariablesService = Symbol('IEnvironmentVariablesService');
exports.IEnvironmentVariablesProvider = Symbol('IEnvironmentVariablesProvider');


/***/ }),
/* 167 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(75);
const completionSource_1 = __webpack_require__(168);
const itemInfoSource_1 = __webpack_require__(187);
class PythonCompletionItemProvider {
    constructor(jediFactory, serviceContainer) {
        this.completionSource = new completionSource_1.CompletionSource(jediFactory, serviceContainer, new itemInfoSource_1.ItemInfoSource(jediFactory));
        this.configService = serviceContainer.get(types_1.IConfigurationService);
    }
    async provideCompletionItems(document, position, token) {
        const items = await this.completionSource.getVsCodeCompletionItems(document, position, token);
        if (this.configService.isTestExecution()) {
            for (let i = 0; i < Math.min(3, items.length); i += 1) {
                items[i] = await this.resolveCompletionItem(items[i], token);
            }
        }
        return items;
    }
    async resolveCompletionItem(item, token) {
        if (!item.documentation) {
            const itemInfos = await this.completionSource.getDocumentation(item, token);
            if (itemInfos && itemInfos.length > 0) {
                let tip = itemInfos[0].tooltip;
                item.documentation = { kind: tip.kind, value: tip.value.trim() };
            }
        }
        return item;
    }
}
exports.PythonCompletionItemProvider = PythonCompletionItemProvider;


/***/ }),
/* 168 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(75);
const proxy = __importStar(__webpack_require__(103));
const providerUtilities_1 = __webpack_require__(169);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const coc_nvim_1 = __webpack_require__(2);
class DocumentPosition {
    constructor(document, position) {
        this.document = document;
        this.position = position;
    }
    static fromObject(item) {
        // tslint:disable-next-line:no-any
        return item._documentPosition;
    }
    attachTo(item) {
        // tslint:disable-next-line:no-any
        item._documentPosition = this;
    }
}
class CompletionSource {
    constructor(jediFactory, serviceContainer, itemInfoSource) {
        this.serviceContainer = serviceContainer;
        this.itemInfoSource = itemInfoSource;
        this.jediFactory = jediFactory;
    }
    async getVsCodeCompletionItems(document, position, token) {
        const result = await this.getCompletionResult(document, position, token);
        if (result === undefined) {
            return Promise.resolve([]);
        }
        return this.toVsCodeCompletions(new DocumentPosition(document, position), result, coc_nvim_1.Uri.parse(document.uri));
    }
    async getDocumentation(completionItem, token) {
        const documentPosition = DocumentPosition.fromObject(completionItem);
        if (documentPosition === undefined) {
            return;
        }
        const doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        // Supply hover source with simulated document text where item in question was 'already typed'.
        const document = doc.textDocument;
        const position = documentPosition.position;
        const wordRange = doc.getWordRangeAtPosition(position);
        if (position == null) {
            return;
        }
        const leadingRange = wordRange != null
            ? vscode_languageserver_protocol_1.Range.create(vscode_languageserver_protocol_1.Position.create(0, 0), wordRange.start)
            : vscode_languageserver_protocol_1.Range.create(vscode_languageserver_protocol_1.Position.create(0, 0), position);
        const itemString = completionItem.label;
        const sourceText = `${document.getText(leadingRange)}${itemString}`;
        const range = vscode_languageserver_protocol_1.Range.create(leadingRange.end, { line: leadingRange.end.line, character: leadingRange.end.character + itemString.length });
        return this.itemInfoSource.getItemInfoFromText(coc_nvim_1.Uri.parse(document.uri), coc_nvim_1.Uri.parse(doc.uri).fsPath, range, sourceText, token);
    }
    async getCompletionResult(document, position, token) {
        if (position.character < 0 ||
            providerUtilities_1.isPositionInsideStringOrComment(document, position)) {
            return undefined;
        }
        const type = proxy.CommandType.Completions;
        const columnIndex = position.character;
        const source = document.getText();
        const cmd = {
            command: type,
            fileName: coc_nvim_1.Uri.parse(document.uri).fsPath,
            columnIndex,
            lineIndex: position.line,
            source
        };
        return this.jediFactory.getJediProxyHandler(coc_nvim_1.Uri.parse(document.uri)).sendCommand(cmd, token);
    }
    toVsCodeCompletions(documentPosition, data, resource) {
        return data && data.items.length > 0 ? data.items.map(item => this.toVsCodeCompletion(documentPosition, item, resource)) : [];
    }
    toVsCodeCompletion(documentPosition, item, resource) {
        const completionItem = vscode_languageserver_protocol_1.CompletionItem.create(item.text);
        completionItem.kind = item.type;
        const configurationService = this.serviceContainer.get(types_1.IConfigurationService);
        const pythonSettings = configurationService.getSettings(resource);
        if (pythonSettings.autoComplete.addBrackets === true &&
            (item.kind === vscode_languageserver_protocol_1.SymbolKind.Function || item.kind === vscode_languageserver_protocol_1.SymbolKind.Method)) {
            // tslint:disable-next-line: deprecation
            completionItem.insertText = `${item.text}($0)`;
            completionItem.insertTextFormat = vscode_languageserver_protocol_1.InsertTextFormat.Snippet;
        }
        // Ensure the built in members are at the bottom.
        completionItem.sortText = (completionItem.label.startsWith('__') ? 'z' : (completionItem.label.startsWith('_') ? 'y' : '__')) + completionItem.label;
        documentPosition.attachTo(completionItem);
        return completionItem;
    }
}
exports.CompletionSource = CompletionSource;


/***/ }),
/* 169 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const tokenizer_1 = __webpack_require__(170);
const types_1 = __webpack_require__(186);
function getDocumentTokens(document, tokenizeTo, mode) {
    const text = document.getText(vscode_languageserver_protocol_1.Range.create(vscode_languageserver_protocol_1.Position.create(0, 0), tokenizeTo));
    return new tokenizer_1.Tokenizer().tokenize(text, 0, text.length, mode);
}
exports.getDocumentTokens = getDocumentTokens;
function isPositionInsideStringOrComment(document, position) {
    const tokenizeTo = vscode_languageserver_protocol_1.Position.create(position.line + 1, position.character);
    const tokens = getDocumentTokens(document, tokenizeTo, types_1.TokenizerMode.CommentsAndStrings);
    const offset = document.offsetAt(position);
    const index = tokens.getItemContaining(offset - 1);
    if (index >= 0) {
        const token = tokens.getItemAt(index);
        return token.type === types_1.TokenType.String || token.type === types_1.TokenType.Comment;
    }
    if (offset > 0 && index >= 0) {
        // In case position is at the every end of the comment or unterminated string
        const token = tokens.getItemAt(index);
        return token.end === offset && token.type === types_1.TokenType.Comment;
    }
    return false;
}
exports.isPositionInsideStringOrComment = isPositionInsideStringOrComment;


/***/ }),
/* 170 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const characters_1 = __webpack_require__(171);
const characterStream_1 = __webpack_require__(183);
const textRangeCollection_1 = __webpack_require__(185);
const types_1 = __webpack_require__(186);
var QuoteType;
(function (QuoteType) {
    QuoteType[QuoteType["None"] = 0] = "None";
    QuoteType[QuoteType["Single"] = 1] = "Single";
    QuoteType[QuoteType["Double"] = 2] = "Double";
    QuoteType[QuoteType["TripleSingle"] = 3] = "TripleSingle";
    QuoteType[QuoteType["TripleDouble"] = 4] = "TripleDouble";
})(QuoteType || (QuoteType = {}));
class Token extends types_1.TextRange {
    constructor(type, start, length) {
        super(start, length);
        this.type = type;
    }
}
class Tokenizer {
    constructor() {
        this.cs = new characterStream_1.CharacterStream('');
        this.tokens = [];
        this.mode = types_1.TokenizerMode.Full;
    }
    tokenize(text, start, length, mode) {
        if (start === undefined) {
            start = 0;
        }
        else if (start < 0 || start >= text.length) {
            throw new Error('Invalid range start');
        }
        if (length === undefined) {
            length = text.length;
        }
        else if (length < 0 || start + length > text.length) {
            throw new Error('Invalid range length');
        }
        this.mode = mode !== undefined ? mode : types_1.TokenizerMode.Full;
        this.cs = new characterStream_1.CharacterStream(text);
        this.cs.position = start;
        const end = start + length;
        while (!this.cs.isEndOfStream()) {
            this.AddNextToken();
            if (this.cs.position >= end) {
                break;
            }
        }
        return new textRangeCollection_1.TextRangeCollection(this.tokens);
    }
    AddNextToken() {
        this.cs.skipWhitespace();
        if (this.cs.isEndOfStream()) {
            return;
        }
        if (!this.handleCharacter()) {
            this.cs.moveNext();
        }
    }
    // tslint:disable-next-line:cyclomatic-complexity
    handleCharacter() {
        // f-strings, b-strings, etc
        const stringPrefixLength = this.getStringPrefixLength();
        if (stringPrefixLength >= 0) {
            // Indeed a string
            this.cs.advance(stringPrefixLength);
            const quoteType = this.getQuoteType();
            if (quoteType !== QuoteType.None) {
                this.handleString(quoteType, stringPrefixLength);
                return true;
            }
        }
        if (this.cs.currentChar === 35 /* Hash */) {
            this.handleComment();
            return true;
        }
        if (this.mode === types_1.TokenizerMode.CommentsAndStrings) {
            return false;
        }
        switch (this.cs.currentChar) {
            case 40 /* OpenParenthesis */:
                this.tokens.push(new Token(types_1.TokenType.OpenBrace, this.cs.position, 1));
                break;
            case 41 /* CloseParenthesis */:
                this.tokens.push(new Token(types_1.TokenType.CloseBrace, this.cs.position, 1));
                break;
            case 91 /* OpenBracket */:
                this.tokens.push(new Token(types_1.TokenType.OpenBracket, this.cs.position, 1));
                break;
            case 93 /* CloseBracket */:
                this.tokens.push(new Token(types_1.TokenType.CloseBracket, this.cs.position, 1));
                break;
            case 123 /* OpenBrace */:
                this.tokens.push(new Token(types_1.TokenType.OpenCurly, this.cs.position, 1));
                break;
            case 125 /* CloseBrace */:
                this.tokens.push(new Token(types_1.TokenType.CloseCurly, this.cs.position, 1));
                break;
            case 44 /* Comma */:
                this.tokens.push(new Token(types_1.TokenType.Comma, this.cs.position, 1));
                break;
            case 59 /* Semicolon */:
                this.tokens.push(new Token(types_1.TokenType.Semicolon, this.cs.position, 1));
                break;
            case 58 /* Colon */:
                this.tokens.push(new Token(types_1.TokenType.Colon, this.cs.position, 1));
                break;
            default:
                if (this.isPossibleNumber()) {
                    if (this.tryNumber()) {
                        return true;
                    }
                }
                if (this.cs.currentChar === 46 /* Period */) {
                    this.tokens.push(new Token(types_1.TokenType.Operator, this.cs.position, 1));
                    break;
                }
                if (!this.tryIdentifier()) {
                    if (!this.tryOperator()) {
                        this.handleUnknown();
                    }
                }
                return true;
        }
        return false;
    }
    tryIdentifier() {
        const start = this.cs.position;
        if (characters_1.isIdentifierStartChar(this.cs.currentChar)) {
            this.cs.moveNext();
            while (characters_1.isIdentifierChar(this.cs.currentChar)) {
                this.cs.moveNext();
            }
        }
        if (this.cs.position > start) {
            // const text = this.cs.getText().substr(start, this.cs.position - start)
            // const type = this.keywords.find((value, index) => value === text) ? TokenType.Keyword : TokenType.Identifier
            this.tokens.push(new Token(types_1.TokenType.Identifier, start, this.cs.position - start));
            return true;
        }
        return false;
    }
    // tslint:disable-next-line:cyclomatic-complexity
    isPossibleNumber() {
        if (characters_1.isDecimal(this.cs.currentChar)) {
            return true;
        }
        if (this.cs.currentChar === 46 /* Period */ && characters_1.isDecimal(this.cs.nextChar)) {
            return true;
        }
        const next = (this.cs.currentChar === 45 /* Hyphen */ || this.cs.currentChar === 43 /* Plus */) ? 1 : 0;
        // Next character must be decimal or a dot otherwise
        // it is not a number. No whitespace is allowed.
        if (characters_1.isDecimal(this.cs.lookAhead(next)) || this.cs.lookAhead(next) === 46 /* Period */) {
            // Check what previous token is, if any
            if (this.tokens.length === 0) {
                // At the start of the file this can only be a number
                return true;
            }
            const prev = this.tokens[this.tokens.length - 1];
            if (prev.type === types_1.TokenType.OpenBrace
                || prev.type === types_1.TokenType.OpenBracket
                || prev.type === types_1.TokenType.Comma
                || prev.type === types_1.TokenType.Colon
                || prev.type === types_1.TokenType.Semicolon
                || prev.type === types_1.TokenType.Operator) {
                return true;
            }
        }
        if (this.cs.lookAhead(next) === 48 /* _0 */) {
            const nextNext = this.cs.lookAhead(next + 1);
            if (nextNext === 120 /* x */ || nextNext === 88 /* X */) {
                return true;
            }
            if (nextNext === 98 /* b */ || nextNext === 66 /* B */) {
                return true;
            }
            if (nextNext === 111 /* o */ || nextNext === 79 /* O */) {
                return true;
            }
        }
        return false;
    }
    // tslint:disable-next-line:cyclomatic-complexity
    tryNumber() {
        const start = this.cs.position;
        let leadingSign = 0;
        if (this.cs.currentChar === 45 /* Hyphen */ || this.cs.currentChar === 43 /* Plus */) {
            this.cs.moveNext(); // Skip leading +/-
            leadingSign = 1;
        }
        if (this.cs.currentChar === 48 /* _0 */) {
            let radix = 0;
            // Try hex => hexinteger: "0" ("x" | "X") (["_"] hexdigit)+
            if ((this.cs.nextChar === 120 /* x */ || this.cs.nextChar === 88 /* X */) && characters_1.isHex(this.cs.lookAhead(2))) {
                this.cs.advance(2);
                while (characters_1.isHex(this.cs.currentChar)) {
                    this.cs.moveNext();
                }
                radix = 16;
            }
            // Try binary => bininteger: "0" ("b" | "B") (["_"] bindigit)+
            if ((this.cs.nextChar === 98 /* b */ || this.cs.nextChar === 66 /* B */) && characters_1.isBinary(this.cs.lookAhead(2))) {
                this.cs.advance(2);
                while (characters_1.isBinary(this.cs.currentChar)) {
                    this.cs.moveNext();
                }
                radix = 2;
            }
            // Try octal => octinteger: "0" ("o" | "O") (["_"] octdigit)+
            if ((this.cs.nextChar === 111 /* o */ || this.cs.nextChar === 79 /* O */) && characters_1.isOctal(this.cs.lookAhead(2))) {
                this.cs.advance(2);
                while (characters_1.isOctal(this.cs.currentChar)) {
                    this.cs.moveNext();
                }
                radix = 8;
            }
            if (radix > 0) {
                const text = this.cs.getText().substr(start + leadingSign, this.cs.position - start - leadingSign);
                if (!isNaN(parseInt(text, radix))) {
                    this.tokens.push(new Token(types_1.TokenType.Number, start, text.length + leadingSign));
                    return true;
                }
            }
        }
        let decimal = false;
        // Try decimal int =>
        //    decinteger: nonzerodigit (["_"] digit)* | "0" (["_"] "0")*
        //    nonzerodigit: "1"..."9"
        //    digit: "0"..."9"
        if (this.cs.currentChar >= 49 /* _1 */ && this.cs.currentChar <= 57 /* _9 */) {
            while (characters_1.isDecimal(this.cs.currentChar)) {
                this.cs.moveNext();
            }
            decimal = this.cs.currentChar !== 46 /* Period */ && this.cs.currentChar !== 101 /* e */ && this.cs.currentChar !== 69 /* E */;
        }
        if (this.cs.currentChar === 48 /* _0 */) { // "0" (["_"] "0")*
            while (this.cs.currentChar === 48 /* _0 */ || this.cs.currentChar === 95 /* Underscore */) {
                this.cs.moveNext();
            }
            decimal = this.cs.currentChar !== 46 /* Period */ && this.cs.currentChar !== 101 /* e */ && this.cs.currentChar !== 69 /* E */;
        }
        if (decimal) {
            const text = this.cs.getText().substr(start + leadingSign, this.cs.position - start - leadingSign);
            if (!isNaN(parseInt(text, 10))) {
                this.tokens.push(new Token(types_1.TokenType.Number, start, text.length + leadingSign));
                return true;
            }
        }
        // Floating point. Sign was already skipped over.
        if ((this.cs.currentChar >= 48 /* _0 */ && this.cs.currentChar <= 57 /* _9 */) ||
            (this.cs.currentChar === 46 /* Period */ && this.cs.nextChar >= 48 /* _0 */ && this.cs.nextChar <= 57 /* _9 */)) {
            if (this.skipFloatingPointCandidate(false)) {
                const text = this.cs.getText().substr(start, this.cs.position - start);
                if (!isNaN(parseFloat(text))) {
                    this.tokens.push(new Token(types_1.TokenType.Number, start, this.cs.position - start));
                    return true;
                }
            }
        }
        this.cs.position = start;
        return false;
    }
    // tslint:disable-next-line:cyclomatic-complexity
    tryOperator() {
        let length = 0;
        const nextChar = this.cs.nextChar;
        switch (this.cs.currentChar) {
            case 43 /* Plus */:
            case 38 /* Ampersand */:
            case 124 /* Bar */:
            case 94 /* Caret */:
            case 61 /* Equal */:
            case 33 /* ExclamationMark */:
            case 37 /* Percent */:
            case 126 /* Tilde */:
                length = nextChar === 61 /* Equal */ ? 2 : 1;
                break;
            case 45 /* Hyphen */:
                length = nextChar === 61 /* Equal */ || nextChar === 62 /* Greater */ ? 2 : 1;
                break;
            case 42 /* Asterisk */:
                if (nextChar === 42 /* Asterisk */) {
                    length = this.cs.lookAhead(2) === 61 /* Equal */ ? 3 : 2;
                }
                else {
                    length = nextChar === 61 /* Equal */ ? 2 : 1;
                }
                break;
            case 47 /* Slash */:
                if (nextChar === 47 /* Slash */) {
                    length = this.cs.lookAhead(2) === 61 /* Equal */ ? 3 : 2;
                }
                else {
                    length = nextChar === 61 /* Equal */ ? 2 : 1;
                }
                break;
            case 60 /* Less */:
                if (nextChar === 62 /* Greater */) {
                    length = 2;
                }
                else if (nextChar === 60 /* Less */) {
                    length = this.cs.lookAhead(2) === 61 /* Equal */ ? 3 : 2;
                }
                else {
                    length = nextChar === 61 /* Equal */ ? 2 : 1;
                }
                break;
            case 62 /* Greater */:
                if (nextChar === 62 /* Greater */) {
                    length = this.cs.lookAhead(2) === 61 /* Equal */ ? 3 : 2;
                }
                else {
                    length = nextChar === 61 /* Equal */ ? 2 : 1;
                }
                break;
            case 64 /* At */:
                length = nextChar === 61 /* Equal */ ? 2 : 1;
                break;
            default:
                return false;
        }
        this.tokens.push(new Token(types_1.TokenType.Operator, this.cs.position, length));
        this.cs.advance(length);
        return length > 0;
    }
    handleUnknown() {
        const start = this.cs.position;
        this.cs.skipToWhitespace();
        const length = this.cs.position - start;
        if (length > 0) {
            this.tokens.push(new Token(types_1.TokenType.Unknown, start, length));
            return true;
        }
        return false;
    }
    handleComment() {
        const start = this.cs.position;
        this.cs.skipToEol();
        this.tokens.push(new Token(types_1.TokenType.Comment, start, this.cs.position - start));
    }
    // tslint:disable-next-line:cyclomatic-complexity
    getStringPrefixLength() {
        if (this.cs.currentChar === 39 /* SingleQuote */ || this.cs.currentChar === 34 /* DoubleQuote */) {
            return 0; // Simple string, no prefix
        }
        if (this.cs.nextChar === 39 /* SingleQuote */ || this.cs.nextChar === 34 /* DoubleQuote */) {
            switch (this.cs.currentChar) {
                case 102 /* f */:
                case 70 /* F */:
                case 114 /* r */:
                case 82 /* R */:
                case 98 /* b */:
                case 66 /* B */:
                case 117 /* u */:
                case 85 /* U */:
                    return 1; // single-char prefix like u"" or r""
                default:
                    break;
            }
        }
        if (this.cs.lookAhead(2) === 39 /* SingleQuote */ || this.cs.lookAhead(2) === 34 /* DoubleQuote */) {
            const prefix = this.cs.getText().substr(this.cs.position, 2).toLowerCase();
            switch (prefix) {
                case 'rf':
                case 'ur':
                case 'br':
                    return 2;
                default:
                    break;
            }
        }
        return -1;
    }
    getQuoteType() {
        if (this.cs.currentChar === 39 /* SingleQuote */) {
            return this.cs.nextChar === 39 /* SingleQuote */ && this.cs.lookAhead(2) === 39 /* SingleQuote */
                ? QuoteType.TripleSingle
                : QuoteType.Single;
        }
        if (this.cs.currentChar === 34 /* DoubleQuote */) {
            return this.cs.nextChar === 34 /* DoubleQuote */ && this.cs.lookAhead(2) === 34 /* DoubleQuote */
                ? QuoteType.TripleDouble
                : QuoteType.Double;
        }
        return QuoteType.None;
    }
    handleString(quoteType, stringPrefixLength) {
        const start = this.cs.position - stringPrefixLength;
        if (quoteType === QuoteType.Single || quoteType === QuoteType.Double) {
            this.cs.moveNext();
            this.skipToSingleEndQuote(quoteType === QuoteType.Single
                ? 39 /* SingleQuote */
                : 34 /* DoubleQuote */);
        }
        else {
            this.cs.advance(3);
            this.skipToTripleEndQuote(quoteType === QuoteType.TripleSingle
                ? 39 /* SingleQuote */
                : 34 /* DoubleQuote */);
        }
        this.tokens.push(new Token(types_1.TokenType.String, start, this.cs.position - start));
    }
    skipToSingleEndQuote(quote) {
        while (!this.cs.isEndOfStream()) {
            if (this.cs.currentChar === 10 /* LineFeed */ || this.cs.currentChar === 13 /* CarriageReturn */) {
                return; // Unterminated single-line string
            }
            if (this.cs.currentChar === 92 /* Backslash */ && this.cs.nextChar === quote) {
                this.cs.advance(2);
                continue;
            }
            if (this.cs.currentChar === quote) {
                break;
            }
            this.cs.moveNext();
        }
        this.cs.moveNext();
    }
    skipToTripleEndQuote(quote) {
        while (!this.cs.isEndOfStream() && (this.cs.currentChar !== quote || this.cs.nextChar !== quote || this.cs.lookAhead(2) !== quote)) {
            this.cs.moveNext();
        }
        this.cs.advance(3);
    }
    skipFloatingPointCandidate(allowSign) {
        // Determine end of the potential floating point number
        const start = this.cs.position;
        this.skipFractionalNumber(allowSign);
        if (this.cs.position > start) {
            if (this.cs.currentChar === 101 /* e */ || this.cs.currentChar === 69 /* E */) {
                this.cs.moveNext(); // Optional exponent sign
            }
            this.skipDecimalNumber(true); // skip exponent value
        }
        return this.cs.position > start;
    }
    skipFractionalNumber(allowSign) {
        this.skipDecimalNumber(allowSign);
        if (this.cs.currentChar === 46 /* Period */) {
            this.cs.moveNext(); // Optional period
        }
        this.skipDecimalNumber(false);
    }
    skipDecimalNumber(allowSign) {
        if (allowSign && (this.cs.currentChar === 45 /* Hyphen */ || this.cs.currentChar === 43 /* Plus */)) {
            this.cs.moveNext(); // Optional sign
        }
        while (characters_1.isDecimal(this.cs.currentChar)) {
            this.cs.moveNext(); // skip integer part
        }
    }
}
exports.Tokenizer = Tokenizer;


/***/ }),
/* 171 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const unicode_1 = __webpack_require__(172);
function isIdentifierStartChar(ch) {
    switch (ch) {
        // Underscore is explicitly allowed to start an identifier
        case 95 /* Underscore */:
            return true;
        // Characters with the Other_ID_Start property
        case 0x1885:
        case 0x1886:
        case 0x2118:
        case 0x212E:
        case 0x309B:
        case 0x309C:
            return true;
        default:
            break;
    }
    const cat = unicode_1.getUnicodeCategory(ch);
    switch (cat) {
        // Supported categories for starting an identifier
        case unicode_1.UnicodeCategory.UppercaseLetter:
        case unicode_1.UnicodeCategory.LowercaseLetter:
        case unicode_1.UnicodeCategory.TitlecaseLetter:
        case unicode_1.UnicodeCategory.ModifierLetter:
        case unicode_1.UnicodeCategory.OtherLetter:
        case unicode_1.UnicodeCategory.LetterNumber:
            return true;
        default:
            break;
    }
    return false;
}
exports.isIdentifierStartChar = isIdentifierStartChar;
function isIdentifierChar(ch) {
    if (isIdentifierStartChar(ch)) {
        return true;
    }
    switch (ch) {
        // Characters with the Other_ID_Continue property
        case 0x00B7:
        case 0x0387:
        case 0x1369:
        case 0x136A:
        case 0x136B:
        case 0x136C:
        case 0x136D:
        case 0x136E:
        case 0x136F:
        case 0x1370:
        case 0x1371:
        case 0x19DA:
            return true;
        default:
            break;
    }
    switch (unicode_1.getUnicodeCategory(ch)) {
        // Supported categories for continuing an identifier
        case unicode_1.UnicodeCategory.NonSpacingMark:
        case unicode_1.UnicodeCategory.SpacingCombiningMark:
        case unicode_1.UnicodeCategory.DecimalDigitNumber:
        case unicode_1.UnicodeCategory.ConnectorPunctuation:
            return true;
        default:
            break;
    }
    return false;
}
exports.isIdentifierChar = isIdentifierChar;
function isWhiteSpace(ch) {
    return ch <= 32 /* Space */ || ch === 0x200B; // Unicode whitespace
}
exports.isWhiteSpace = isWhiteSpace;
function isLineBreak(ch) {
    return ch === 13 /* CarriageReturn */ || ch === 10 /* LineFeed */;
}
exports.isLineBreak = isLineBreak;
function isNumber(ch) {
    return ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch === 95 /* Underscore */;
}
exports.isNumber = isNumber;
function isDecimal(ch) {
    return ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch === 95 /* Underscore */;
}
exports.isDecimal = isDecimal;
function isHex(ch) {
    return isDecimal(ch) || (ch >= 97 /* a */ && ch <= 102 /* f */) || (ch >= 65 /* A */ && ch <= 70 /* F */) || ch === 95 /* Underscore */;
}
exports.isHex = isHex;
function isOctal(ch) {
    return ch >= 48 /* _0 */ && ch <= 55 /* _7 */ || ch === 95 /* Underscore */;
}
exports.isOctal = isOctal;
function isBinary(ch) {
    return ch === 48 /* _0 */ || ch === 49 /* _1 */ || ch === 95 /* Underscore */;
}
exports.isBinary = isBinary;


/***/ }),
/* 172 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-require-imports no-var-requires
var UnicodeCategory;
(function (UnicodeCategory) {
    UnicodeCategory[UnicodeCategory["Unknown"] = 0] = "Unknown";
    UnicodeCategory[UnicodeCategory["UppercaseLetter"] = 1] = "UppercaseLetter";
    UnicodeCategory[UnicodeCategory["LowercaseLetter"] = 2] = "LowercaseLetter";
    UnicodeCategory[UnicodeCategory["TitlecaseLetter"] = 3] = "TitlecaseLetter";
    UnicodeCategory[UnicodeCategory["ModifierLetter"] = 4] = "ModifierLetter";
    UnicodeCategory[UnicodeCategory["OtherLetter"] = 5] = "OtherLetter";
    UnicodeCategory[UnicodeCategory["LetterNumber"] = 6] = "LetterNumber";
    UnicodeCategory[UnicodeCategory["NonSpacingMark"] = 7] = "NonSpacingMark";
    UnicodeCategory[UnicodeCategory["SpacingCombiningMark"] = 8] = "SpacingCombiningMark";
    UnicodeCategory[UnicodeCategory["DecimalDigitNumber"] = 9] = "DecimalDigitNumber";
    UnicodeCategory[UnicodeCategory["ConnectorPunctuation"] = 10] = "ConnectorPunctuation";
})(UnicodeCategory = exports.UnicodeCategory || (exports.UnicodeCategory = {}));
function getUnicodeCategory(ch) {
    const unicodeLu = __webpack_require__(173);
    const unicodeLl = __webpack_require__(174);
    const unicodeLt = __webpack_require__(175);
    const unicodeLo = __webpack_require__(176);
    const unicodeLm = __webpack_require__(177);
    const unicodeNl = __webpack_require__(178);
    const unicodeMn = __webpack_require__(179);
    const unicodeMc = __webpack_require__(180);
    const unicodeNd = __webpack_require__(181);
    const unicodePc = __webpack_require__(182);
    if (unicodeLu[ch]) {
        return UnicodeCategory.UppercaseLetter;
    }
    if (unicodeLl[ch]) {
        return UnicodeCategory.LowercaseLetter;
    }
    if (unicodeLt[ch]) {
        return UnicodeCategory.TitlecaseLetter;
    }
    if (unicodeLo[ch]) {
        return UnicodeCategory.OtherLetter;
    }
    if (unicodeLm[ch]) {
        return UnicodeCategory.ModifierLetter;
    }
    if (unicodeNl[ch]) {
        return UnicodeCategory.LetterNumber;
    }
    if (unicodeMn[ch]) {
        return UnicodeCategory.NonSpacingMark;
    }
    if (unicodeMc[ch]) {
        return UnicodeCategory.SpacingCombiningMark;
    }
    if (unicodeNd[ch]) {
        return UnicodeCategory.DecimalDigitNumber;
    }
    if (unicodePc[ch]) {
        return UnicodeCategory.ConnectorPunctuation;
    }
    return UnicodeCategory.Unknown;
}
exports.getUnicodeCategory = getUnicodeCategory;


/***/ }),
/* 173 */
/***/ (function(module, exports) {

module.exports={65:{"value":"0041","name":"LATIN CAPITAL LETTER A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0061","titlecase_mapping":"","symbol":"\x41"},66:{"value":"0042","name":"LATIN CAPITAL LETTER B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0062","titlecase_mapping":"","symbol":"\x42"},67:{"value":"0043","name":"LATIN CAPITAL LETTER C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0063","titlecase_mapping":"","symbol":"\x43"},68:{"value":"0044","name":"LATIN CAPITAL LETTER D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0064","titlecase_mapping":"","symbol":"\x44"},69:{"value":"0045","name":"LATIN CAPITAL LETTER E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0065","titlecase_mapping":"","symbol":"\x45"},70:{"value":"0046","name":"LATIN CAPITAL LETTER F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0066","titlecase_mapping":"","symbol":"\x46"},71:{"value":"0047","name":"LATIN CAPITAL LETTER G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0067","titlecase_mapping":"","symbol":"\x47"},72:{"value":"0048","name":"LATIN CAPITAL LETTER H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0068","titlecase_mapping":"","symbol":"\x48"},73:{"value":"0049","name":"LATIN CAPITAL LETTER I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0069","titlecase_mapping":"","symbol":"\x49"},74:{"value":"004A","name":"LATIN CAPITAL LETTER J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"006A","titlecase_mapping":"","symbol":"\x4A"},75:{"value":"004B","name":"LATIN CAPITAL LETTER K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"006B","titlecase_mapping":"","symbol":"\x4B"},76:{"value":"004C","name":"LATIN CAPITAL LETTER L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"006C","titlecase_mapping":"","symbol":"\x4C"},77:{"value":"004D","name":"LATIN CAPITAL LETTER M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"006D","titlecase_mapping":"","symbol":"\x4D"},78:{"value":"004E","name":"LATIN CAPITAL LETTER N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"006E","titlecase_mapping":"","symbol":"\x4E"},79:{"value":"004F","name":"LATIN CAPITAL LETTER O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"006F","titlecase_mapping":"","symbol":"\x4F"},80:{"value":"0050","name":"LATIN CAPITAL LETTER P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0070","titlecase_mapping":"","symbol":"\x50"},81:{"value":"0051","name":"LATIN CAPITAL LETTER Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0071","titlecase_mapping":"","symbol":"\x51"},82:{"value":"0052","name":"LATIN CAPITAL LETTER R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0072","titlecase_mapping":"","symbol":"\x52"},83:{"value":"0053","name":"LATIN CAPITAL LETTER S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0073","titlecase_mapping":"","symbol":"\x53"},84:{"value":"0054","name":"LATIN CAPITAL LETTER T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0074","titlecase_mapping":"","symbol":"\x54"},85:{"value":"0055","name":"LATIN CAPITAL LETTER U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0075","titlecase_mapping":"","symbol":"\x55"},86:{"value":"0056","name":"LATIN CAPITAL LETTER V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0076","titlecase_mapping":"","symbol":"\x56"},87:{"value":"0057","name":"LATIN CAPITAL LETTER W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0077","titlecase_mapping":"","symbol":"\x57"},88:{"value":"0058","name":"LATIN CAPITAL LETTER X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0078","titlecase_mapping":"","symbol":"\x58"},89:{"value":"0059","name":"LATIN CAPITAL LETTER Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0079","titlecase_mapping":"","symbol":"\x59"},90:{"value":"005A","name":"LATIN CAPITAL LETTER Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"007A","titlecase_mapping":"","symbol":"\x5A"},192:{"value":"00C0","name":"LATIN CAPITAL LETTER A WITH GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"00E0","titlecase_mapping":"","symbol":"\xC0"},193:{"value":"00C1","name":"LATIN CAPITAL LETTER A WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"00E1","titlecase_mapping":"","symbol":"\xC1"},194:{"value":"00C2","name":"LATIN CAPITAL LETTER A WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"00E2","titlecase_mapping":"","symbol":"\xC2"},195:{"value":"00C3","name":"LATIN CAPITAL LETTER A WITH TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A TILDE","comment":"","uppercase_mapping":"","lowercase_mapping":"00E3","titlecase_mapping":"","symbol":"\xC3"},196:{"value":"00C4","name":"LATIN CAPITAL LETTER A WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A DIAERESIS","comment":"","uppercase_mapping":"","lowercase_mapping":"00E4","titlecase_mapping":"","symbol":"\xC4"},197:{"value":"00C5","name":"LATIN CAPITAL LETTER A WITH RING ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 030A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A RING","comment":"","uppercase_mapping":"","lowercase_mapping":"00E5","titlecase_mapping":"","symbol":"\xC5"},198:{"value":"00C6","name":"LATIN CAPITAL LETTER AE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A E","comment":"","uppercase_mapping":"","lowercase_mapping":"00E6","titlecase_mapping":"","symbol":"\xC6"},199:{"value":"00C7","name":"LATIN CAPITAL LETTER C WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0043 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER C CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"00E7","titlecase_mapping":"","symbol":"\xC7"},200:{"value":"00C8","name":"LATIN CAPITAL LETTER E WITH GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER E GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"00E8","titlecase_mapping":"","symbol":"\xC8"},201:{"value":"00C9","name":"LATIN CAPITAL LETTER E WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER E ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"00E9","titlecase_mapping":"","symbol":"\xC9"},202:{"value":"00CA","name":"LATIN CAPITAL LETTER E WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER E CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"00EA","titlecase_mapping":"","symbol":"\xCA"},203:{"value":"00CB","name":"LATIN CAPITAL LETTER E WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER E DIAERESIS","comment":"","uppercase_mapping":"","lowercase_mapping":"00EB","titlecase_mapping":"","symbol":"\xCB"},204:{"value":"00CC","name":"LATIN CAPITAL LETTER I WITH GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"00EC","titlecase_mapping":"","symbol":"\xCC"},205:{"value":"00CD","name":"LATIN CAPITAL LETTER I WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"00ED","titlecase_mapping":"","symbol":"\xCD"},206:{"value":"00CE","name":"LATIN CAPITAL LETTER I WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"00EE","titlecase_mapping":"","symbol":"\xCE"},207:{"value":"00CF","name":"LATIN CAPITAL LETTER I WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I DIAERESIS","comment":"","uppercase_mapping":"","lowercase_mapping":"00EF","titlecase_mapping":"","symbol":"\xCF"},208:{"value":"00D0","name":"LATIN CAPITAL LETTER ETH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"00F0","titlecase_mapping":"","symbol":"\xD0"},209:{"value":"00D1","name":"LATIN CAPITAL LETTER N WITH TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004E 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER N TILDE","comment":"","uppercase_mapping":"","lowercase_mapping":"00F1","titlecase_mapping":"","symbol":"\xD1"},210:{"value":"00D2","name":"LATIN CAPITAL LETTER O WITH GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"00F2","titlecase_mapping":"","symbol":"\xD2"},211:{"value":"00D3","name":"LATIN CAPITAL LETTER O WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"00F3","titlecase_mapping":"","symbol":"\xD3"},212:{"value":"00D4","name":"LATIN CAPITAL LETTER O WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"00F4","titlecase_mapping":"","symbol":"\xD4"},213:{"value":"00D5","name":"LATIN CAPITAL LETTER O WITH TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O TILDE","comment":"","uppercase_mapping":"","lowercase_mapping":"00F5","titlecase_mapping":"","symbol":"\xD5"},214:{"value":"00D6","name":"LATIN CAPITAL LETTER O WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O DIAERESIS","comment":"","uppercase_mapping":"","lowercase_mapping":"00F6","titlecase_mapping":"","symbol":"\xD6"},216:{"value":"00D8","name":"LATIN CAPITAL LETTER O WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O SLASH","comment":"","uppercase_mapping":"","lowercase_mapping":"00F8","titlecase_mapping":"","symbol":"\xD8"},217:{"value":"00D9","name":"LATIN CAPITAL LETTER U WITH GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"00F9","titlecase_mapping":"","symbol":"\xD9"},218:{"value":"00DA","name":"LATIN CAPITAL LETTER U WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"00FA","titlecase_mapping":"","symbol":"\xDA"},219:{"value":"00DB","name":"LATIN CAPITAL LETTER U WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"00FB","titlecase_mapping":"","symbol":"\xDB"},220:{"value":"00DC","name":"LATIN CAPITAL LETTER U WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U DIAERESIS","comment":"","uppercase_mapping":"","lowercase_mapping":"00FC","titlecase_mapping":"","symbol":"\xDC"},221:{"value":"00DD","name":"LATIN CAPITAL LETTER Y WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0059 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER Y ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"00FD","titlecase_mapping":"","symbol":"\xDD"},222:{"value":"00DE","name":"LATIN CAPITAL LETTER THORN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"00FE","titlecase_mapping":"","symbol":"\xDE"},256:{"value":"0100","name":"LATIN CAPITAL LETTER A WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"0101","titlecase_mapping":"","symbol":"\u0100"},258:{"value":"0102","name":"LATIN CAPITAL LETTER A WITH BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A BREVE","comment":"","uppercase_mapping":"","lowercase_mapping":"0103","titlecase_mapping":"","symbol":"\u0102"},260:{"value":"0104","name":"LATIN CAPITAL LETTER A WITH OGONEK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0328","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A OGONEK","comment":"","uppercase_mapping":"","lowercase_mapping":"0105","titlecase_mapping":"","symbol":"\u0104"},262:{"value":"0106","name":"LATIN CAPITAL LETTER C WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0043 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER C ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"0107","titlecase_mapping":"","symbol":"\u0106"},264:{"value":"0108","name":"LATIN CAPITAL LETTER C WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0043 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER C CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"0109","titlecase_mapping":"","symbol":"\u0108"},266:{"value":"010A","name":"LATIN CAPITAL LETTER C WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0043 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER C DOT","comment":"","uppercase_mapping":"","lowercase_mapping":"010B","titlecase_mapping":"","symbol":"\u010A"},268:{"value":"010C","name":"LATIN CAPITAL LETTER C WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0043 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER C HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"010D","titlecase_mapping":"","symbol":"\u010C"},270:{"value":"010E","name":"LATIN CAPITAL LETTER D WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0044 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER D HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"010F","titlecase_mapping":"","symbol":"\u010E"},272:{"value":"0110","name":"LATIN CAPITAL LETTER D WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER D BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"0111","titlecase_mapping":"","symbol":"\u0110"},274:{"value":"0112","name":"LATIN CAPITAL LETTER E WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER E MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"0113","titlecase_mapping":"","symbol":"\u0112"},276:{"value":"0114","name":"LATIN CAPITAL LETTER E WITH BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER E BREVE","comment":"","uppercase_mapping":"","lowercase_mapping":"0115","titlecase_mapping":"","symbol":"\u0114"},278:{"value":"0116","name":"LATIN CAPITAL LETTER E WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER E DOT","comment":"","uppercase_mapping":"","lowercase_mapping":"0117","titlecase_mapping":"","symbol":"\u0116"},280:{"value":"0118","name":"LATIN CAPITAL LETTER E WITH OGONEK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0328","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER E OGONEK","comment":"","uppercase_mapping":"","lowercase_mapping":"0119","titlecase_mapping":"","symbol":"\u0118"},282:{"value":"011A","name":"LATIN CAPITAL LETTER E WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER E HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"011B","titlecase_mapping":"","symbol":"\u011A"},284:{"value":"011C","name":"LATIN CAPITAL LETTER G WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0047 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER G CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"011D","titlecase_mapping":"","symbol":"\u011C"},286:{"value":"011E","name":"LATIN CAPITAL LETTER G WITH BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0047 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER G BREVE","comment":"","uppercase_mapping":"","lowercase_mapping":"011F","titlecase_mapping":"","symbol":"\u011E"},288:{"value":"0120","name":"LATIN CAPITAL LETTER G WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0047 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER G DOT","comment":"","uppercase_mapping":"","lowercase_mapping":"0121","titlecase_mapping":"","symbol":"\u0120"},290:{"value":"0122","name":"LATIN CAPITAL LETTER G WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0047 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER G CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"0123","titlecase_mapping":"","symbol":"\u0122"},292:{"value":"0124","name":"LATIN CAPITAL LETTER H WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0048 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER H CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"0125","titlecase_mapping":"","symbol":"\u0124"},294:{"value":"0126","name":"LATIN CAPITAL LETTER H WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER H BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"0127","titlecase_mapping":"","symbol":"\u0126"},296:{"value":"0128","name":"LATIN CAPITAL LETTER I WITH TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I TILDE","comment":"","uppercase_mapping":"","lowercase_mapping":"0129","titlecase_mapping":"","symbol":"\u0128"},298:{"value":"012A","name":"LATIN CAPITAL LETTER I WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"012B","titlecase_mapping":"","symbol":"\u012A"},300:{"value":"012C","name":"LATIN CAPITAL LETTER I WITH BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I BREVE","comment":"","uppercase_mapping":"","lowercase_mapping":"012D","titlecase_mapping":"","symbol":"\u012C"},302:{"value":"012E","name":"LATIN CAPITAL LETTER I WITH OGONEK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0328","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I OGONEK","comment":"","uppercase_mapping":"","lowercase_mapping":"012F","titlecase_mapping":"","symbol":"\u012E"},304:{"value":"0130","name":"LATIN CAPITAL LETTER I WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I DOT","comment":"","uppercase_mapping":"","lowercase_mapping":"0069","titlecase_mapping":"","symbol":"\u0130"},306:{"value":"0132","name":"LATIN CAPITAL LIGATURE IJ","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<compat> 0049 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I J","comment":"","uppercase_mapping":"","lowercase_mapping":"0133","titlecase_mapping":"","symbol":"\u0132"},308:{"value":"0134","name":"LATIN CAPITAL LETTER J WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004A 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER J CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"0135","titlecase_mapping":"","symbol":"\u0134"},310:{"value":"0136","name":"LATIN CAPITAL LETTER K WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004B 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER K CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"0137","titlecase_mapping":"","symbol":"\u0136"},313:{"value":"0139","name":"LATIN CAPITAL LETTER L WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004C 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER L ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"013A","titlecase_mapping":"","symbol":"\u0139"},315:{"value":"013B","name":"LATIN CAPITAL LETTER L WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004C 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER L CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"013C","titlecase_mapping":"","symbol":"\u013B"},317:{"value":"013D","name":"LATIN CAPITAL LETTER L WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004C 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER L HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"013E","titlecase_mapping":"","symbol":"\u013D"},319:{"value":"013F","name":"LATIN CAPITAL LETTER L WITH MIDDLE DOT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<compat> 004C 00B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0140","titlecase_mapping":"","symbol":"\u013F"},321:{"value":"0141","name":"LATIN CAPITAL LETTER L WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER L SLASH","comment":"","uppercase_mapping":"","lowercase_mapping":"0142","titlecase_mapping":"","symbol":"\u0141"},323:{"value":"0143","name":"LATIN CAPITAL LETTER N WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004E 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER N ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"0144","titlecase_mapping":"","symbol":"\u0143"},325:{"value":"0145","name":"LATIN CAPITAL LETTER N WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004E 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER N CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"0146","titlecase_mapping":"","symbol":"\u0145"},327:{"value":"0147","name":"LATIN CAPITAL LETTER N WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004E 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER N HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"0148","titlecase_mapping":"","symbol":"\u0147"},330:{"value":"014A","name":"LATIN CAPITAL LETTER ENG","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"014B","titlecase_mapping":"","symbol":"\u014A"},332:{"value":"014C","name":"LATIN CAPITAL LETTER O WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"014D","titlecase_mapping":"","symbol":"\u014C"},334:{"value":"014E","name":"LATIN CAPITAL LETTER O WITH BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O BREVE","comment":"","uppercase_mapping":"","lowercase_mapping":"014F","titlecase_mapping":"","symbol":"\u014E"},336:{"value":"0150","name":"LATIN CAPITAL LETTER O WITH DOUBLE ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 030B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O DOUBLE ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"0151","titlecase_mapping":"","symbol":"\u0150"},338:{"value":"0152","name":"LATIN CAPITAL LIGATURE OE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O E","comment":"","uppercase_mapping":"","lowercase_mapping":"0153","titlecase_mapping":"","symbol":"\u0152"},340:{"value":"0154","name":"LATIN CAPITAL LETTER R WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0052 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER R ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"0155","titlecase_mapping":"","symbol":"\u0154"},342:{"value":"0156","name":"LATIN CAPITAL LETTER R WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0052 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER R CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"0157","titlecase_mapping":"","symbol":"\u0156"},344:{"value":"0158","name":"LATIN CAPITAL LETTER R WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0052 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER R HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"0159","titlecase_mapping":"","symbol":"\u0158"},346:{"value":"015A","name":"LATIN CAPITAL LETTER S WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0053 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER S ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"015B","titlecase_mapping":"","symbol":"\u015A"},348:{"value":"015C","name":"LATIN CAPITAL LETTER S WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0053 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER S CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"015D","titlecase_mapping":"","symbol":"\u015C"},350:{"value":"015E","name":"LATIN CAPITAL LETTER S WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0053 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER S CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"015F","titlecase_mapping":"","symbol":"\u015E"},352:{"value":"0160","name":"LATIN CAPITAL LETTER S WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0053 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER S HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"0161","titlecase_mapping":"","symbol":"\u0160"},354:{"value":"0162","name":"LATIN CAPITAL LETTER T WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0054 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER T CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"0163","titlecase_mapping":"","symbol":"\u0162"},356:{"value":"0164","name":"LATIN CAPITAL LETTER T WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0054 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER T HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"0165","titlecase_mapping":"","symbol":"\u0164"},358:{"value":"0166","name":"LATIN CAPITAL LETTER T WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER T BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"0167","titlecase_mapping":"","symbol":"\u0166"},360:{"value":"0168","name":"LATIN CAPITAL LETTER U WITH TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U TILDE","comment":"","uppercase_mapping":"","lowercase_mapping":"0169","titlecase_mapping":"","symbol":"\u0168"},362:{"value":"016A","name":"LATIN CAPITAL LETTER U WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"016B","titlecase_mapping":"","symbol":"\u016A"},364:{"value":"016C","name":"LATIN CAPITAL LETTER U WITH BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U BREVE","comment":"","uppercase_mapping":"","lowercase_mapping":"016D","titlecase_mapping":"","symbol":"\u016C"},366:{"value":"016E","name":"LATIN CAPITAL LETTER U WITH RING ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 030A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U RING","comment":"","uppercase_mapping":"","lowercase_mapping":"016F","titlecase_mapping":"","symbol":"\u016E"},368:{"value":"0170","name":"LATIN CAPITAL LETTER U WITH DOUBLE ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 030B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U DOUBLE ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"0171","titlecase_mapping":"","symbol":"\u0170"},370:{"value":"0172","name":"LATIN CAPITAL LETTER U WITH OGONEK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0328","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U OGONEK","comment":"","uppercase_mapping":"","lowercase_mapping":"0173","titlecase_mapping":"","symbol":"\u0172"},372:{"value":"0174","name":"LATIN CAPITAL LETTER W WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0057 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER W CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"0175","titlecase_mapping":"","symbol":"\u0174"},374:{"value":"0176","name":"LATIN CAPITAL LETTER Y WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0059 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER Y CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"0177","titlecase_mapping":"","symbol":"\u0176"},376:{"value":"0178","name":"LATIN CAPITAL LETTER Y WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0059 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER Y DIAERESIS","comment":"","uppercase_mapping":"","lowercase_mapping":"00FF","titlecase_mapping":"","symbol":"\u0178"},377:{"value":"0179","name":"LATIN CAPITAL LETTER Z WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"005A 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER Z ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"017A","titlecase_mapping":"","symbol":"\u0179"},379:{"value":"017B","name":"LATIN CAPITAL LETTER Z WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"005A 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER Z DOT","comment":"","uppercase_mapping":"","lowercase_mapping":"017C","titlecase_mapping":"","symbol":"\u017B"},381:{"value":"017D","name":"LATIN CAPITAL LETTER Z WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"005A 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER Z HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"017E","titlecase_mapping":"","symbol":"\u017D"},385:{"value":"0181","name":"LATIN CAPITAL LETTER B WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER B HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"0253","titlecase_mapping":"","symbol":"\u0181"},386:{"value":"0182","name":"LATIN CAPITAL LETTER B WITH TOPBAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER B TOPBAR","comment":"","uppercase_mapping":"","lowercase_mapping":"0183","titlecase_mapping":"","symbol":"\u0182"},388:{"value":"0184","name":"LATIN CAPITAL LETTER TONE SIX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0185","titlecase_mapping":"","symbol":"\u0184"},390:{"value":"0186","name":"LATIN CAPITAL LETTER OPEN O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0254","titlecase_mapping":"","symbol":"\u0186"},391:{"value":"0187","name":"LATIN CAPITAL LETTER C WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER C HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"0188","titlecase_mapping":"","symbol":"\u0187"},393:{"value":"0189","name":"LATIN CAPITAL LETTER AFRICAN D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0256","titlecase_mapping":"","symbol":"\u0189"},394:{"value":"018A","name":"LATIN CAPITAL LETTER D WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER D HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"0257","titlecase_mapping":"","symbol":"\u018A"},395:{"value":"018B","name":"LATIN CAPITAL LETTER D WITH TOPBAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER D TOPBAR","comment":"","uppercase_mapping":"","lowercase_mapping":"018C","titlecase_mapping":"","symbol":"\u018B"},398:{"value":"018E","name":"LATIN CAPITAL LETTER REVERSED E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER TURNED E","comment":"","uppercase_mapping":"","lowercase_mapping":"01DD","titlecase_mapping":"","symbol":"\u018E"},399:{"value":"018F","name":"LATIN CAPITAL LETTER SCHWA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0259","titlecase_mapping":"","symbol":"\u018F"},400:{"value":"0190","name":"LATIN CAPITAL LETTER OPEN E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER EPSILON","comment":"","uppercase_mapping":"","lowercase_mapping":"025B","titlecase_mapping":"","symbol":"\u0190"},401:{"value":"0191","name":"LATIN CAPITAL LETTER F WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER F HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"0192","titlecase_mapping":"","symbol":"\u0191"},403:{"value":"0193","name":"LATIN CAPITAL LETTER G WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER G HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"0260","titlecase_mapping":"","symbol":"\u0193"},404:{"value":"0194","name":"LATIN CAPITAL LETTER GAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0263","titlecase_mapping":"","symbol":"\u0194"},406:{"value":"0196","name":"LATIN CAPITAL LETTER IOTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0269","titlecase_mapping":"","symbol":"\u0196"},407:{"value":"0197","name":"LATIN CAPITAL LETTER I WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER BARRED I","comment":"","uppercase_mapping":"","lowercase_mapping":"0268","titlecase_mapping":"","symbol":"\u0197"},408:{"value":"0198","name":"LATIN CAPITAL LETTER K WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER K HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"0199","titlecase_mapping":"","symbol":"\u0198"},412:{"value":"019C","name":"LATIN CAPITAL LETTER TURNED M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"026F","titlecase_mapping":"","symbol":"\u019C"},413:{"value":"019D","name":"LATIN CAPITAL LETTER N WITH LEFT HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER N HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"0272","titlecase_mapping":"","symbol":"\u019D"},415:{"value":"019F","name":"LATIN CAPITAL LETTER O WITH MIDDLE TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER BARRED O","comment":"","uppercase_mapping":"","lowercase_mapping":"0275","titlecase_mapping":"","symbol":"\u019F"},416:{"value":"01A0","name":"LATIN CAPITAL LETTER O WITH HORN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 031B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O HORN","comment":"","uppercase_mapping":"","lowercase_mapping":"01A1","titlecase_mapping":"","symbol":"\u01A0"},418:{"value":"01A2","name":"LATIN CAPITAL LETTER OI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O I","comment":"","uppercase_mapping":"","lowercase_mapping":"01A3","titlecase_mapping":"","symbol":"\u01A2"},420:{"value":"01A4","name":"LATIN CAPITAL LETTER P WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER P HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"01A5","titlecase_mapping":"","symbol":"\u01A4"},422:{"value":"01A6","name":"LATIN LETTER YR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER Y R","comment":"","uppercase_mapping":"","lowercase_mapping":"0280","titlecase_mapping":"","symbol":"\u01A6"},423:{"value":"01A7","name":"LATIN CAPITAL LETTER TONE TWO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"01A8","titlecase_mapping":"","symbol":"\u01A7"},425:{"value":"01A9","name":"LATIN CAPITAL LETTER ESH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0283","titlecase_mapping":"","symbol":"\u01A9"},428:{"value":"01AC","name":"LATIN CAPITAL LETTER T WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER T HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"01AD","titlecase_mapping":"","symbol":"\u01AC"},430:{"value":"01AE","name":"LATIN CAPITAL LETTER T WITH RETROFLEX HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER T RETROFLEX HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"0288","titlecase_mapping":"","symbol":"\u01AE"},431:{"value":"01AF","name":"LATIN CAPITAL LETTER U WITH HORN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 031B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U HORN","comment":"","uppercase_mapping":"","lowercase_mapping":"01B0","titlecase_mapping":"","symbol":"\u01AF"},433:{"value":"01B1","name":"LATIN CAPITAL LETTER UPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"028A","titlecase_mapping":"","symbol":"\u01B1"},434:{"value":"01B2","name":"LATIN CAPITAL LETTER V WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER SCRIPT V","comment":"","uppercase_mapping":"","lowercase_mapping":"028B","titlecase_mapping":"","symbol":"\u01B2"},435:{"value":"01B3","name":"LATIN CAPITAL LETTER Y WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER Y HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"01B4","titlecase_mapping":"","symbol":"\u01B3"},437:{"value":"01B5","name":"LATIN CAPITAL LETTER Z WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER Z BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"01B6","titlecase_mapping":"","symbol":"\u01B5"},439:{"value":"01B7","name":"LATIN CAPITAL LETTER EZH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER YOGH","comment":"","uppercase_mapping":"","lowercase_mapping":"0292","titlecase_mapping":"","symbol":"\u01B7"},440:{"value":"01B8","name":"LATIN CAPITAL LETTER EZH REVERSED","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER REVERSED YOGH","comment":"","uppercase_mapping":"","lowercase_mapping":"01B9","titlecase_mapping":"","symbol":"\u01B8"},444:{"value":"01BC","name":"LATIN CAPITAL LETTER TONE FIVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"01BD","titlecase_mapping":"","symbol":"\u01BC"},452:{"value":"01C4","name":"LATIN CAPITAL LETTER DZ WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<compat> 0044 017D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER D Z HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"01C6","titlecase_mapping":"01C5","symbol":"\u01C4"},455:{"value":"01C7","name":"LATIN CAPITAL LETTER LJ","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<compat> 004C 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER L J","comment":"","uppercase_mapping":"","lowercase_mapping":"01C9","titlecase_mapping":"01C8","symbol":"\u01C7"},458:{"value":"01CA","name":"LATIN CAPITAL LETTER NJ","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<compat> 004E 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER N J","comment":"","uppercase_mapping":"","lowercase_mapping":"01CC","titlecase_mapping":"01CB","symbol":"\u01CA"},461:{"value":"01CD","name":"LATIN CAPITAL LETTER A WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"01CE","titlecase_mapping":"","symbol":"\u01CD"},463:{"value":"01CF","name":"LATIN CAPITAL LETTER I WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER I HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"01D0","titlecase_mapping":"","symbol":"\u01CF"},465:{"value":"01D1","name":"LATIN CAPITAL LETTER O WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"01D2","titlecase_mapping":"","symbol":"\u01D1"},467:{"value":"01D3","name":"LATIN CAPITAL LETTER U WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"01D4","titlecase_mapping":"","symbol":"\u01D3"},469:{"value":"01D5","name":"LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00DC 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U DIAERESIS MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"01D6","titlecase_mapping":"","symbol":"\u01D5"},471:{"value":"01D7","name":"LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00DC 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U DIAERESIS ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"01D8","titlecase_mapping":"","symbol":"\u01D7"},473:{"value":"01D9","name":"LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00DC 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U DIAERESIS HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"01DA","titlecase_mapping":"","symbol":"\u01D9"},475:{"value":"01DB","name":"LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00DC 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER U DIAERESIS GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"01DC","titlecase_mapping":"","symbol":"\u01DB"},478:{"value":"01DE","name":"LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00C4 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A DIAERESIS MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"01DF","titlecase_mapping":"","symbol":"\u01DE"},480:{"value":"01E0","name":"LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0226 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A DOT MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"01E1","titlecase_mapping":"","symbol":"\u01E0"},482:{"value":"01E2","name":"LATIN CAPITAL LETTER AE WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00C6 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER A E MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"01E3","titlecase_mapping":"","symbol":"\u01E2"},484:{"value":"01E4","name":"LATIN CAPITAL LETTER G WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER G BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"01E5","titlecase_mapping":"","symbol":"\u01E4"},486:{"value":"01E6","name":"LATIN CAPITAL LETTER G WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0047 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER G HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"01E7","titlecase_mapping":"","symbol":"\u01E6"},488:{"value":"01E8","name":"LATIN CAPITAL LETTER K WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004B 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER K HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"01E9","titlecase_mapping":"","symbol":"\u01E8"},490:{"value":"01EA","name":"LATIN CAPITAL LETTER O WITH OGONEK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0328","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O OGONEK","comment":"","uppercase_mapping":"","lowercase_mapping":"01EB","titlecase_mapping":"","symbol":"\u01EA"},492:{"value":"01EC","name":"LATIN CAPITAL LETTER O WITH OGONEK AND MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01EA 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER O OGONEK MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"01ED","titlecase_mapping":"","symbol":"\u01EC"},494:{"value":"01EE","name":"LATIN CAPITAL LETTER EZH WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01B7 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN CAPITAL LETTER YOGH HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"01EF","titlecase_mapping":"","symbol":"\u01EE"},497:{"value":"01F1","name":"LATIN CAPITAL LETTER DZ","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<compat> 0044 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"01F3","titlecase_mapping":"01F2","symbol":"\u01F1"},500:{"value":"01F4","name":"LATIN CAPITAL LETTER G WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0047 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"01F5","titlecase_mapping":"","symbol":"\u01F4"},502:{"value":"01F6","name":"LATIN CAPITAL LETTER HWAIR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0195","titlecase_mapping":"","symbol":"\u01F6"},503:{"value":"01F7","name":"LATIN CAPITAL LETTER WYNN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"01BF","titlecase_mapping":"","symbol":"\u01F7"},504:{"value":"01F8","name":"LATIN CAPITAL LETTER N WITH GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004E 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"01F9","titlecase_mapping":"","symbol":"\u01F8"},506:{"value":"01FA","name":"LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00C5 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"01FB","titlecase_mapping":"","symbol":"\u01FA"},508:{"value":"01FC","name":"LATIN CAPITAL LETTER AE WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00C6 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"01FD","titlecase_mapping":"","symbol":"\u01FC"},510:{"value":"01FE","name":"LATIN CAPITAL LETTER O WITH STROKE AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00D8 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"01FF","titlecase_mapping":"","symbol":"\u01FE"},512:{"value":"0200","name":"LATIN CAPITAL LETTER A WITH DOUBLE GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0201","titlecase_mapping":"","symbol":"\u0200"},514:{"value":"0202","name":"LATIN CAPITAL LETTER A WITH INVERTED BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0203","titlecase_mapping":"","symbol":"\u0202"},516:{"value":"0204","name":"LATIN CAPITAL LETTER E WITH DOUBLE GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0205","titlecase_mapping":"","symbol":"\u0204"},518:{"value":"0206","name":"LATIN CAPITAL LETTER E WITH INVERTED BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0207","titlecase_mapping":"","symbol":"\u0206"},520:{"value":"0208","name":"LATIN CAPITAL LETTER I WITH DOUBLE GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0209","titlecase_mapping":"","symbol":"\u0208"},522:{"value":"020A","name":"LATIN CAPITAL LETTER I WITH INVERTED BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"020B","titlecase_mapping":"","symbol":"\u020A"},524:{"value":"020C","name":"LATIN CAPITAL LETTER O WITH DOUBLE GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"020D","titlecase_mapping":"","symbol":"\u020C"},526:{"value":"020E","name":"LATIN CAPITAL LETTER O WITH INVERTED BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"020F","titlecase_mapping":"","symbol":"\u020E"},528:{"value":"0210","name":"LATIN CAPITAL LETTER R WITH DOUBLE GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0052 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0211","titlecase_mapping":"","symbol":"\u0210"},530:{"value":"0212","name":"LATIN CAPITAL LETTER R WITH INVERTED BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0052 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0213","titlecase_mapping":"","symbol":"\u0212"},532:{"value":"0214","name":"LATIN CAPITAL LETTER U WITH DOUBLE GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0215","titlecase_mapping":"","symbol":"\u0214"},534:{"value":"0216","name":"LATIN CAPITAL LETTER U WITH INVERTED BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0217","titlecase_mapping":"","symbol":"\u0216"},536:{"value":"0218","name":"LATIN CAPITAL LETTER S WITH COMMA BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0053 0326","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0219","titlecase_mapping":"","symbol":"\u0218"},538:{"value":"021A","name":"LATIN CAPITAL LETTER T WITH COMMA BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0054 0326","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"021B","titlecase_mapping":"","symbol":"\u021A"},540:{"value":"021C","name":"LATIN CAPITAL LETTER YOGH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"021D","titlecase_mapping":"","symbol":"\u021C"},542:{"value":"021E","name":"LATIN CAPITAL LETTER H WITH CARON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0048 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"021F","titlecase_mapping":"","symbol":"\u021E"},544:{"value":"0220","name":"LATIN CAPITAL LETTER N WITH LONG RIGHT LEG","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"019E","titlecase_mapping":"","symbol":"\u0220"},546:{"value":"0222","name":"LATIN CAPITAL LETTER OU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0223","titlecase_mapping":"","symbol":"\u0222"},548:{"value":"0224","name":"LATIN CAPITAL LETTER Z WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0225","titlecase_mapping":"","symbol":"\u0224"},550:{"value":"0226","name":"LATIN CAPITAL LETTER A WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0227","titlecase_mapping":"","symbol":"\u0226"},552:{"value":"0228","name":"LATIN CAPITAL LETTER E WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0229","titlecase_mapping":"","symbol":"\u0228"},554:{"value":"022A","name":"LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00D6 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"022B","titlecase_mapping":"","symbol":"\u022A"},556:{"value":"022C","name":"LATIN CAPITAL LETTER O WITH TILDE AND MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00D5 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"022D","titlecase_mapping":"","symbol":"\u022C"},558:{"value":"022E","name":"LATIN CAPITAL LETTER O WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"022F","titlecase_mapping":"","symbol":"\u022E"},560:{"value":"0230","name":"LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"022E 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0231","titlecase_mapping":"","symbol":"\u0230"},562:{"value":"0232","name":"LATIN CAPITAL LETTER Y WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0059 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0233","titlecase_mapping":"","symbol":"\u0232"},570:{"value":"023A","name":"LATIN CAPITAL LETTER A WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C65","titlecase_mapping":"","symbol":"\u023A"},571:{"value":"023B","name":"LATIN CAPITAL LETTER C WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"023C","titlecase_mapping":"","symbol":"\u023B"},573:{"value":"023D","name":"LATIN CAPITAL LETTER L WITH BAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"019A","titlecase_mapping":"","symbol":"\u023D"},574:{"value":"023E","name":"LATIN CAPITAL LETTER T WITH DIAGONAL STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C66","titlecase_mapping":"","symbol":"\u023E"},577:{"value":"0241","name":"LATIN CAPITAL LETTER GLOTTAL STOP","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0242","titlecase_mapping":"","symbol":"\u0241"},579:{"value":"0243","name":"LATIN CAPITAL LETTER B WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0180","titlecase_mapping":"","symbol":"\u0243"},580:{"value":"0244","name":"LATIN CAPITAL LETTER U BAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0289","titlecase_mapping":"","symbol":"\u0244"},581:{"value":"0245","name":"LATIN CAPITAL LETTER TURNED V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"028C","titlecase_mapping":"","symbol":"\u0245"},582:{"value":"0246","name":"LATIN CAPITAL LETTER E WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0247","titlecase_mapping":"","symbol":"\u0246"},584:{"value":"0248","name":"LATIN CAPITAL LETTER J WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0249","titlecase_mapping":"","symbol":"\u0248"},586:{"value":"024A","name":"LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"024B","titlecase_mapping":"","symbol":"\u024A"},588:{"value":"024C","name":"LATIN CAPITAL LETTER R WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"024D","titlecase_mapping":"","symbol":"\u024C"},590:{"value":"024E","name":"LATIN CAPITAL LETTER Y WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"024F","titlecase_mapping":"","symbol":"\u024E"},880:{"value":"0370","name":"GREEK CAPITAL LETTER HETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0371","titlecase_mapping":"","symbol":"\u0370"},882:{"value":"0372","name":"GREEK CAPITAL LETTER ARCHAIC SAMPI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0373","titlecase_mapping":"","symbol":"\u0372"},886:{"value":"0376","name":"GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0377","titlecase_mapping":"","symbol":"\u0376"},895:{"value":"037F","name":"GREEK CAPITAL LETTER YOT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03F3","titlecase_mapping":"","symbol":"\u037F"},902:{"value":"0386","name":"GREEK CAPITAL LETTER ALPHA WITH TONOS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0391 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER ALPHA TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"03AC","titlecase_mapping":"","symbol":"\u0386"},904:{"value":"0388","name":"GREEK CAPITAL LETTER EPSILON WITH TONOS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0395 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER EPSILON TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"03AD","titlecase_mapping":"","symbol":"\u0388"},905:{"value":"0389","name":"GREEK CAPITAL LETTER ETA WITH TONOS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0397 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER ETA TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"03AE","titlecase_mapping":"","symbol":"\u0389"},906:{"value":"038A","name":"GREEK CAPITAL LETTER IOTA WITH TONOS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0399 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER IOTA TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"03AF","titlecase_mapping":"","symbol":"\u038A"},908:{"value":"038C","name":"GREEK CAPITAL LETTER OMICRON WITH TONOS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"039F 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER OMICRON TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"03CC","titlecase_mapping":"","symbol":"\u038C"},910:{"value":"038E","name":"GREEK CAPITAL LETTER UPSILON WITH TONOS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A5 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER UPSILON TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"03CD","titlecase_mapping":"","symbol":"\u038E"},911:{"value":"038F","name":"GREEK CAPITAL LETTER OMEGA WITH TONOS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A9 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER OMEGA TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"03CE","titlecase_mapping":"","symbol":"\u038F"},913:{"value":"0391","name":"GREEK CAPITAL LETTER ALPHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03B1","titlecase_mapping":"","symbol":"\u0391"},914:{"value":"0392","name":"GREEK CAPITAL LETTER BETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03B2","titlecase_mapping":"","symbol":"\u0392"},915:{"value":"0393","name":"GREEK CAPITAL LETTER GAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03B3","titlecase_mapping":"","symbol":"\u0393"},916:{"value":"0394","name":"GREEK CAPITAL LETTER DELTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03B4","titlecase_mapping":"","symbol":"\u0394"},917:{"value":"0395","name":"GREEK CAPITAL LETTER EPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03B5","titlecase_mapping":"","symbol":"\u0395"},918:{"value":"0396","name":"GREEK CAPITAL LETTER ZETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03B6","titlecase_mapping":"","symbol":"\u0396"},919:{"value":"0397","name":"GREEK CAPITAL LETTER ETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03B7","titlecase_mapping":"","symbol":"\u0397"},920:{"value":"0398","name":"GREEK CAPITAL LETTER THETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03B8","titlecase_mapping":"","symbol":"\u0398"},921:{"value":"0399","name":"GREEK CAPITAL LETTER IOTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03B9","titlecase_mapping":"","symbol":"\u0399"},922:{"value":"039A","name":"GREEK CAPITAL LETTER KAPPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03BA","titlecase_mapping":"","symbol":"\u039A"},923:{"value":"039B","name":"GREEK CAPITAL LETTER LAMDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER LAMBDA","comment":"","uppercase_mapping":"","lowercase_mapping":"03BB","titlecase_mapping":"","symbol":"\u039B"},924:{"value":"039C","name":"GREEK CAPITAL LETTER MU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03BC","titlecase_mapping":"","symbol":"\u039C"},925:{"value":"039D","name":"GREEK CAPITAL LETTER NU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03BD","titlecase_mapping":"","symbol":"\u039D"},926:{"value":"039E","name":"GREEK CAPITAL LETTER XI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03BE","titlecase_mapping":"","symbol":"\u039E"},927:{"value":"039F","name":"GREEK CAPITAL LETTER OMICRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03BF","titlecase_mapping":"","symbol":"\u039F"},928:{"value":"03A0","name":"GREEK CAPITAL LETTER PI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03C0","titlecase_mapping":"","symbol":"\u03A0"},929:{"value":"03A1","name":"GREEK CAPITAL LETTER RHO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03C1","titlecase_mapping":"","symbol":"\u03A1"},931:{"value":"03A3","name":"GREEK CAPITAL LETTER SIGMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03C3","titlecase_mapping":"","symbol":"\u03A3"},932:{"value":"03A4","name":"GREEK CAPITAL LETTER TAU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03C4","titlecase_mapping":"","symbol":"\u03A4"},933:{"value":"03A5","name":"GREEK CAPITAL LETTER UPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03C5","titlecase_mapping":"","symbol":"\u03A5"},934:{"value":"03A6","name":"GREEK CAPITAL LETTER PHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03C6","titlecase_mapping":"","symbol":"\u03A6"},935:{"value":"03A7","name":"GREEK CAPITAL LETTER CHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03C7","titlecase_mapping":"","symbol":"\u03A7"},936:{"value":"03A8","name":"GREEK CAPITAL LETTER PSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03C8","titlecase_mapping":"","symbol":"\u03A8"},937:{"value":"03A9","name":"GREEK CAPITAL LETTER OMEGA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03C9","titlecase_mapping":"","symbol":"\u03A9"},938:{"value":"03AA","name":"GREEK CAPITAL LETTER IOTA WITH DIALYTIKA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0399 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER IOTA DIAERESIS","comment":"","uppercase_mapping":"","lowercase_mapping":"03CA","titlecase_mapping":"","symbol":"\u03AA"},939:{"value":"03AB","name":"GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A5 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER UPSILON DIAERESIS","comment":"","uppercase_mapping":"","lowercase_mapping":"03CB","titlecase_mapping":"","symbol":"\u03AB"},975:{"value":"03CF","name":"GREEK CAPITAL KAI SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03D7","titlecase_mapping":"","symbol":"\u03CF"},978:{"value":"03D2","name":"GREEK UPSILON WITH HOOK SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<compat> 03A5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER UPSILON HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03D2"},979:{"value":"03D3","name":"GREEK UPSILON WITH ACUTE AND HOOK SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03D2 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER UPSILON HOOK TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03D3"},980:{"value":"03D4","name":"GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03D2 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03D4"},984:{"value":"03D8","name":"GREEK LETTER ARCHAIC KOPPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03D9","titlecase_mapping":"","symbol":"\u03D8"},986:{"value":"03DA","name":"GREEK LETTER STIGMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER STIGMA","comment":"","uppercase_mapping":"","lowercase_mapping":"03DB","titlecase_mapping":"","symbol":"\u03DA"},988:{"value":"03DC","name":"GREEK LETTER DIGAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER DIGAMMA","comment":"","uppercase_mapping":"","lowercase_mapping":"03DD","titlecase_mapping":"","symbol":"\u03DC"},990:{"value":"03DE","name":"GREEK LETTER KOPPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER KOPPA","comment":"","uppercase_mapping":"","lowercase_mapping":"03DF","titlecase_mapping":"","symbol":"\u03DE"},992:{"value":"03E0","name":"GREEK LETTER SAMPI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER SAMPI","comment":"","uppercase_mapping":"","lowercase_mapping":"03E1","titlecase_mapping":"","symbol":"\u03E0"},994:{"value":"03E2","name":"COPTIC CAPITAL LETTER SHEI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER SHEI","comment":"","uppercase_mapping":"","lowercase_mapping":"03E3","titlecase_mapping":"","symbol":"\u03E2"},996:{"value":"03E4","name":"COPTIC CAPITAL LETTER FEI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER FEI","comment":"","uppercase_mapping":"","lowercase_mapping":"03E5","titlecase_mapping":"","symbol":"\u03E4"},998:{"value":"03E6","name":"COPTIC CAPITAL LETTER KHEI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER KHEI","comment":"","uppercase_mapping":"","lowercase_mapping":"03E7","titlecase_mapping":"","symbol":"\u03E6"},1000:{"value":"03E8","name":"COPTIC CAPITAL LETTER HORI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER HORI","comment":"","uppercase_mapping":"","lowercase_mapping":"03E9","titlecase_mapping":"","symbol":"\u03E8"},1002:{"value":"03EA","name":"COPTIC CAPITAL LETTER GANGIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER GANGIA","comment":"","uppercase_mapping":"","lowercase_mapping":"03EB","titlecase_mapping":"","symbol":"\u03EA"},1004:{"value":"03EC","name":"COPTIC CAPITAL LETTER SHIMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER SHIMA","comment":"","uppercase_mapping":"","lowercase_mapping":"03ED","titlecase_mapping":"","symbol":"\u03EC"},1006:{"value":"03EE","name":"COPTIC CAPITAL LETTER DEI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK CAPITAL LETTER DEI","comment":"","uppercase_mapping":"","lowercase_mapping":"03EF","titlecase_mapping":"","symbol":"\u03EE"},1012:{"value":"03F4","name":"GREEK CAPITAL THETA SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<compat> 0398","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03B8","titlecase_mapping":"","symbol":"\u03F4"},1015:{"value":"03F7","name":"GREEK CAPITAL LETTER SHO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03F8","titlecase_mapping":"","symbol":"\u03F7"},1017:{"value":"03F9","name":"GREEK CAPITAL LUNATE SIGMA SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<compat> 03A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03F2","titlecase_mapping":"","symbol":"\u03F9"},1018:{"value":"03FA","name":"GREEK CAPITAL LETTER SAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"03FB","titlecase_mapping":"","symbol":"\u03FA"},1021:{"value":"03FD","name":"GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"037B","titlecase_mapping":"","symbol":"\u03FD"},1022:{"value":"03FE","name":"GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"037C","titlecase_mapping":"","symbol":"\u03FE"},1023:{"value":"03FF","name":"GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"037D","titlecase_mapping":"","symbol":"\u03FF"},1024:{"value":"0400","name":"CYRILLIC CAPITAL LETTER IE WITH GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0415 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0450","titlecase_mapping":"","symbol":"\u0400"},1025:{"value":"0401","name":"CYRILLIC CAPITAL LETTER IO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0415 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0451","titlecase_mapping":"","symbol":"\u0401"},1026:{"value":"0402","name":"CYRILLIC CAPITAL LETTER DJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0452","titlecase_mapping":"","symbol":"\u0402"},1027:{"value":"0403","name":"CYRILLIC CAPITAL LETTER GJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0413 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0453","titlecase_mapping":"","symbol":"\u0403"},1028:{"value":"0404","name":"CYRILLIC CAPITAL LETTER UKRAINIAN IE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER E","comment":"","uppercase_mapping":"","lowercase_mapping":"0454","titlecase_mapping":"","symbol":"\u0404"},1029:{"value":"0405","name":"CYRILLIC CAPITAL LETTER DZE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0455","titlecase_mapping":"","symbol":"\u0405"},1030:{"value":"0406","name":"CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER I","comment":"","uppercase_mapping":"","lowercase_mapping":"0456","titlecase_mapping":"","symbol":"\u0406"},1031:{"value":"0407","name":"CYRILLIC CAPITAL LETTER YI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0406 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0457","titlecase_mapping":"","symbol":"\u0407"},1032:{"value":"0408","name":"CYRILLIC CAPITAL LETTER JE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0458","titlecase_mapping":"","symbol":"\u0408"},1033:{"value":"0409","name":"CYRILLIC CAPITAL LETTER LJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0459","titlecase_mapping":"","symbol":"\u0409"},1034:{"value":"040A","name":"CYRILLIC CAPITAL LETTER NJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"045A","titlecase_mapping":"","symbol":"\u040A"},1035:{"value":"040B","name":"CYRILLIC CAPITAL LETTER TSHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"045B","titlecase_mapping":"","symbol":"\u040B"},1036:{"value":"040C","name":"CYRILLIC CAPITAL LETTER KJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"041A 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"045C","titlecase_mapping":"","symbol":"\u040C"},1037:{"value":"040D","name":"CYRILLIC CAPITAL LETTER I WITH GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0418 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"045D","titlecase_mapping":"","symbol":"\u040D"},1038:{"value":"040E","name":"CYRILLIC CAPITAL LETTER SHORT U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0423 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"045E","titlecase_mapping":"","symbol":"\u040E"},1039:{"value":"040F","name":"CYRILLIC CAPITAL LETTER DZHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"045F","titlecase_mapping":"","symbol":"\u040F"},1040:{"value":"0410","name":"CYRILLIC CAPITAL LETTER A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0430","titlecase_mapping":"","symbol":"\u0410"},1041:{"value":"0411","name":"CYRILLIC CAPITAL LETTER BE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0431","titlecase_mapping":"","symbol":"\u0411"},1042:{"value":"0412","name":"CYRILLIC CAPITAL LETTER VE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0432","titlecase_mapping":"","symbol":"\u0412"},1043:{"value":"0413","name":"CYRILLIC CAPITAL LETTER GHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER GE","comment":"","uppercase_mapping":"","lowercase_mapping":"0433","titlecase_mapping":"","symbol":"\u0413"},1044:{"value":"0414","name":"CYRILLIC CAPITAL LETTER DE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0434","titlecase_mapping":"","symbol":"\u0414"},1045:{"value":"0415","name":"CYRILLIC CAPITAL LETTER IE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0435","titlecase_mapping":"","symbol":"\u0415"},1046:{"value":"0416","name":"CYRILLIC CAPITAL LETTER ZHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0436","titlecase_mapping":"","symbol":"\u0416"},1047:{"value":"0417","name":"CYRILLIC CAPITAL LETTER ZE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0437","titlecase_mapping":"","symbol":"\u0417"},1048:{"value":"0418","name":"CYRILLIC CAPITAL LETTER I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER II","comment":"","uppercase_mapping":"","lowercase_mapping":"0438","titlecase_mapping":"","symbol":"\u0418"},1049:{"value":"0419","name":"CYRILLIC CAPITAL LETTER SHORT I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0418 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER SHORT II","comment":"","uppercase_mapping":"","lowercase_mapping":"0439","titlecase_mapping":"","symbol":"\u0419"},1050:{"value":"041A","name":"CYRILLIC CAPITAL LETTER KA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"043A","titlecase_mapping":"","symbol":"\u041A"},1051:{"value":"041B","name":"CYRILLIC CAPITAL LETTER EL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"043B","titlecase_mapping":"","symbol":"\u041B"},1052:{"value":"041C","name":"CYRILLIC CAPITAL LETTER EM","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"043C","titlecase_mapping":"","symbol":"\u041C"},1053:{"value":"041D","name":"CYRILLIC CAPITAL LETTER EN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"043D","titlecase_mapping":"","symbol":"\u041D"},1054:{"value":"041E","name":"CYRILLIC CAPITAL LETTER O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"043E","titlecase_mapping":"","symbol":"\u041E"},1055:{"value":"041F","name":"CYRILLIC CAPITAL LETTER PE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"043F","titlecase_mapping":"","symbol":"\u041F"},1056:{"value":"0420","name":"CYRILLIC CAPITAL LETTER ER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0440","titlecase_mapping":"","symbol":"\u0420"},1057:{"value":"0421","name":"CYRILLIC CAPITAL LETTER ES","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0441","titlecase_mapping":"","symbol":"\u0421"},1058:{"value":"0422","name":"CYRILLIC CAPITAL LETTER TE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0442","titlecase_mapping":"","symbol":"\u0422"},1059:{"value":"0423","name":"CYRILLIC CAPITAL LETTER U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0443","titlecase_mapping":"","symbol":"\u0423"},1060:{"value":"0424","name":"CYRILLIC CAPITAL LETTER EF","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0444","titlecase_mapping":"","symbol":"\u0424"},1061:{"value":"0425","name":"CYRILLIC CAPITAL LETTER HA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER KHA","comment":"","uppercase_mapping":"","lowercase_mapping":"0445","titlecase_mapping":"","symbol":"\u0425"},1062:{"value":"0426","name":"CYRILLIC CAPITAL LETTER TSE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0446","titlecase_mapping":"","symbol":"\u0426"},1063:{"value":"0427","name":"CYRILLIC CAPITAL LETTER CHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0447","titlecase_mapping":"","symbol":"\u0427"},1064:{"value":"0428","name":"CYRILLIC CAPITAL LETTER SHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0448","titlecase_mapping":"","symbol":"\u0428"},1065:{"value":"0429","name":"CYRILLIC CAPITAL LETTER SHCHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0449","titlecase_mapping":"","symbol":"\u0429"},1066:{"value":"042A","name":"CYRILLIC CAPITAL LETTER HARD SIGN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"044A","titlecase_mapping":"","symbol":"\u042A"},1067:{"value":"042B","name":"CYRILLIC CAPITAL LETTER YERU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER YERI","comment":"","uppercase_mapping":"","lowercase_mapping":"044B","titlecase_mapping":"","symbol":"\u042B"},1068:{"value":"042C","name":"CYRILLIC CAPITAL LETTER SOFT SIGN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"044C","titlecase_mapping":"","symbol":"\u042C"},1069:{"value":"042D","name":"CYRILLIC CAPITAL LETTER E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER REVERSED E","comment":"","uppercase_mapping":"","lowercase_mapping":"044D","titlecase_mapping":"","symbol":"\u042D"},1070:{"value":"042E","name":"CYRILLIC CAPITAL LETTER YU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER IU","comment":"","uppercase_mapping":"","lowercase_mapping":"044E","titlecase_mapping":"","symbol":"\u042E"},1071:{"value":"042F","name":"CYRILLIC CAPITAL LETTER YA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER IA","comment":"","uppercase_mapping":"","lowercase_mapping":"044F","titlecase_mapping":"","symbol":"\u042F"},1120:{"value":"0460","name":"CYRILLIC CAPITAL LETTER OMEGA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0461","titlecase_mapping":"","symbol":"\u0460"},1122:{"value":"0462","name":"CYRILLIC CAPITAL LETTER YAT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0463","titlecase_mapping":"","symbol":"\u0462"},1124:{"value":"0464","name":"CYRILLIC CAPITAL LETTER IOTIFIED E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0465","titlecase_mapping":"","symbol":"\u0464"},1126:{"value":"0466","name":"CYRILLIC CAPITAL LETTER LITTLE YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0467","titlecase_mapping":"","symbol":"\u0466"},1128:{"value":"0468","name":"CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0469","titlecase_mapping":"","symbol":"\u0468"},1130:{"value":"046A","name":"CYRILLIC CAPITAL LETTER BIG YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"046B","titlecase_mapping":"","symbol":"\u046A"},1132:{"value":"046C","name":"CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"046D","titlecase_mapping":"","symbol":"\u046C"},1134:{"value":"046E","name":"CYRILLIC CAPITAL LETTER KSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"046F","titlecase_mapping":"","symbol":"\u046E"},1136:{"value":"0470","name":"CYRILLIC CAPITAL LETTER PSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0471","titlecase_mapping":"","symbol":"\u0470"},1138:{"value":"0472","name":"CYRILLIC CAPITAL LETTER FITA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0473","titlecase_mapping":"","symbol":"\u0472"},1140:{"value":"0474","name":"CYRILLIC CAPITAL LETTER IZHITSA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0475","titlecase_mapping":"","symbol":"\u0474"},1142:{"value":"0476","name":"CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0474 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"0477","titlecase_mapping":"","symbol":"\u0476"},1144:{"value":"0478","name":"CYRILLIC CAPITAL LETTER UK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER UK DIGRAPH","comment":"","uppercase_mapping":"","lowercase_mapping":"0479","titlecase_mapping":"","symbol":"\u0478"},1146:{"value":"047A","name":"CYRILLIC CAPITAL LETTER ROUND OMEGA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"047B","titlecase_mapping":"","symbol":"\u047A"},1148:{"value":"047C","name":"CYRILLIC CAPITAL LETTER OMEGA WITH TITLO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER OMEGA TITLO","comment":"","uppercase_mapping":"","lowercase_mapping":"047D","titlecase_mapping":"","symbol":"\u047C"},1150:{"value":"047E","name":"CYRILLIC CAPITAL LETTER OT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"047F","titlecase_mapping":"","symbol":"\u047E"},1152:{"value":"0480","name":"CYRILLIC CAPITAL LETTER KOPPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0481","titlecase_mapping":"","symbol":"\u0480"},1162:{"value":"048A","name":"CYRILLIC CAPITAL LETTER SHORT I WITH TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"048B","titlecase_mapping":"","symbol":"\u048A"},1164:{"value":"048C","name":"CYRILLIC CAPITAL LETTER SEMISOFT SIGN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"048D","titlecase_mapping":"","symbol":"\u048C"},1166:{"value":"048E","name":"CYRILLIC CAPITAL LETTER ER WITH TICK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"048F","titlecase_mapping":"","symbol":"\u048E"},1168:{"value":"0490","name":"CYRILLIC CAPITAL LETTER GHE WITH UPTURN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER GE WITH UPTURN","comment":"","uppercase_mapping":"","lowercase_mapping":"0491","titlecase_mapping":"","symbol":"\u0490"},1170:{"value":"0492","name":"CYRILLIC CAPITAL LETTER GHE WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER GE BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"0493","titlecase_mapping":"","symbol":"\u0492"},1172:{"value":"0494","name":"CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER GE HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"0495","titlecase_mapping":"","symbol":"\u0494"},1174:{"value":"0496","name":"CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"","lowercase_mapping":"0497","titlecase_mapping":"","symbol":"\u0496"},1176:{"value":"0498","name":"CYRILLIC CAPITAL LETTER ZE WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER ZE CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"0499","titlecase_mapping":"","symbol":"\u0498"},1178:{"value":"049A","name":"CYRILLIC CAPITAL LETTER KA WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"","lowercase_mapping":"049B","titlecase_mapping":"","symbol":"\u049A"},1180:{"value":"049C","name":"CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER KA VERTICAL BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"049D","titlecase_mapping":"","symbol":"\u049C"},1182:{"value":"049E","name":"CYRILLIC CAPITAL LETTER KA WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER KA BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"049F","titlecase_mapping":"","symbol":"\u049E"},1184:{"value":"04A0","name":"CYRILLIC CAPITAL LETTER BASHKIR KA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER REVERSED GE KA","comment":"","uppercase_mapping":"","lowercase_mapping":"04A1","titlecase_mapping":"","symbol":"\u04A0"},1186:{"value":"04A2","name":"CYRILLIC CAPITAL LETTER EN WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"","lowercase_mapping":"04A3","titlecase_mapping":"","symbol":"\u04A2"},1188:{"value":"04A4","name":"CYRILLIC CAPITAL LIGATURE EN GHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER EN GE","comment":"","uppercase_mapping":"","lowercase_mapping":"04A5","titlecase_mapping":"","symbol":"\u04A4"},1190:{"value":"04A6","name":"CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER PE HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"04A7","titlecase_mapping":"","symbol":"\u04A6"},1192:{"value":"04A8","name":"CYRILLIC CAPITAL LETTER ABKHASIAN HA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER O HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"04A9","titlecase_mapping":"","symbol":"\u04A8"},1194:{"value":"04AA","name":"CYRILLIC CAPITAL LETTER ES WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER ES CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"04AB","titlecase_mapping":"","symbol":"\u04AA"},1196:{"value":"04AC","name":"CYRILLIC CAPITAL LETTER TE WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"","lowercase_mapping":"04AD","titlecase_mapping":"","symbol":"\u04AC"},1198:{"value":"04AE","name":"CYRILLIC CAPITAL LETTER STRAIGHT U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04AF","titlecase_mapping":"","symbol":"\u04AE"},1200:{"value":"04B0","name":"CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER STRAIGHT U BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"04B1","titlecase_mapping":"","symbol":"\u04B0"},1202:{"value":"04B2","name":"CYRILLIC CAPITAL LETTER HA WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"","lowercase_mapping":"04B3","titlecase_mapping":"","symbol":"\u04B2"},1204:{"value":"04B4","name":"CYRILLIC CAPITAL LIGATURE TE TSE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER TE TSE","comment":"","uppercase_mapping":"","lowercase_mapping":"04B5","titlecase_mapping":"","symbol":"\u04B4"},1206:{"value":"04B6","name":"CYRILLIC CAPITAL LETTER CHE WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"","lowercase_mapping":"04B7","titlecase_mapping":"","symbol":"\u04B6"},1208:{"value":"04B8","name":"CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER CHE VERTICAL BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"04B9","titlecase_mapping":"","symbol":"\u04B8"},1210:{"value":"04BA","name":"CYRILLIC CAPITAL LETTER SHHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER H","comment":"","uppercase_mapping":"","lowercase_mapping":"04BB","titlecase_mapping":"","symbol":"\u04BA"},1212:{"value":"04BC","name":"CYRILLIC CAPITAL LETTER ABKHASIAN CHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER IE HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"04BD","titlecase_mapping":"","symbol":"\u04BC"},1214:{"value":"04BE","name":"CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER IE HOOK OGONEK","comment":"","uppercase_mapping":"","lowercase_mapping":"04BF","titlecase_mapping":"","symbol":"\u04BE"},1216:{"value":"04C0","name":"CYRILLIC LETTER PALOCHKA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC LETTER I","comment":"","uppercase_mapping":"","lowercase_mapping":"04CF","titlecase_mapping":"","symbol":"\u04C0"},1217:{"value":"04C1","name":"CYRILLIC CAPITAL LETTER ZHE WITH BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0416 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER SHORT ZHE","comment":"","uppercase_mapping":"","lowercase_mapping":"04C2","titlecase_mapping":"","symbol":"\u04C1"},1219:{"value":"04C3","name":"CYRILLIC CAPITAL LETTER KA WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER KA HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"04C4","titlecase_mapping":"","symbol":"\u04C3"},1221:{"value":"04C5","name":"CYRILLIC CAPITAL LETTER EL WITH TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04C6","titlecase_mapping":"","symbol":"\u04C5"},1223:{"value":"04C7","name":"CYRILLIC CAPITAL LETTER EN WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER EN HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"04C8","titlecase_mapping":"","symbol":"\u04C7"},1225:{"value":"04C9","name":"CYRILLIC CAPITAL LETTER EN WITH TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04CA","titlecase_mapping":"","symbol":"\u04C9"},1227:{"value":"04CB","name":"CYRILLIC CAPITAL LETTER KHAKASSIAN CHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER","comment":"","uppercase_mapping":"","lowercase_mapping":"04CC","titlecase_mapping":"","symbol":"\u04CB"},1229:{"value":"04CD","name":"CYRILLIC CAPITAL LETTER EM WITH TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04CE","titlecase_mapping":"","symbol":"\u04CD"},1232:{"value":"04D0","name":"CYRILLIC CAPITAL LETTER A WITH BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0410 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04D1","titlecase_mapping":"","symbol":"\u04D0"},1234:{"value":"04D2","name":"CYRILLIC CAPITAL LETTER A WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0410 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04D3","titlecase_mapping":"","symbol":"\u04D2"},1236:{"value":"04D4","name":"CYRILLIC CAPITAL LIGATURE A IE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04D5","titlecase_mapping":"","symbol":"\u04D4"},1238:{"value":"04D6","name":"CYRILLIC CAPITAL LETTER IE WITH BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0415 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04D7","titlecase_mapping":"","symbol":"\u04D6"},1240:{"value":"04D8","name":"CYRILLIC CAPITAL LETTER SCHWA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04D9","titlecase_mapping":"","symbol":"\u04D8"},1242:{"value":"04DA","name":"CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"04D8 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04DB","titlecase_mapping":"","symbol":"\u04DA"},1244:{"value":"04DC","name":"CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0416 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04DD","titlecase_mapping":"","symbol":"\u04DC"},1246:{"value":"04DE","name":"CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0417 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04DF","titlecase_mapping":"","symbol":"\u04DE"},1248:{"value":"04E0","name":"CYRILLIC CAPITAL LETTER ABKHASIAN DZE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04E1","titlecase_mapping":"","symbol":"\u04E0"},1250:{"value":"04E2","name":"CYRILLIC CAPITAL LETTER I WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0418 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04E3","titlecase_mapping":"","symbol":"\u04E2"},1252:{"value":"04E4","name":"CYRILLIC CAPITAL LETTER I WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0418 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04E5","titlecase_mapping":"","symbol":"\u04E4"},1254:{"value":"04E6","name":"CYRILLIC CAPITAL LETTER O WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"041E 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04E7","titlecase_mapping":"","symbol":"\u04E6"},1256:{"value":"04E8","name":"CYRILLIC CAPITAL LETTER BARRED O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04E9","titlecase_mapping":"","symbol":"\u04E8"},1258:{"value":"04EA","name":"CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"04E8 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04EB","titlecase_mapping":"","symbol":"\u04EA"},1260:{"value":"04EC","name":"CYRILLIC CAPITAL LETTER E WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"042D 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04ED","titlecase_mapping":"","symbol":"\u04EC"},1262:{"value":"04EE","name":"CYRILLIC CAPITAL LETTER U WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0423 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04EF","titlecase_mapping":"","symbol":"\u04EE"},1264:{"value":"04F0","name":"CYRILLIC CAPITAL LETTER U WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0423 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04F1","titlecase_mapping":"","symbol":"\u04F0"},1266:{"value":"04F2","name":"CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0423 030B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04F3","titlecase_mapping":"","symbol":"\u04F2"},1268:{"value":"04F4","name":"CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0427 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04F5","titlecase_mapping":"","symbol":"\u04F4"},1270:{"value":"04F6","name":"CYRILLIC CAPITAL LETTER GHE WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04F7","titlecase_mapping":"","symbol":"\u04F6"},1272:{"value":"04F8","name":"CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"042B 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04F9","titlecase_mapping":"","symbol":"\u04F8"},1274:{"value":"04FA","name":"CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04FB","titlecase_mapping":"","symbol":"\u04FA"},1276:{"value":"04FC","name":"CYRILLIC CAPITAL LETTER HA WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04FD","titlecase_mapping":"","symbol":"\u04FC"},1278:{"value":"04FE","name":"CYRILLIC CAPITAL LETTER HA WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"04FF","titlecase_mapping":"","symbol":"\u04FE"},1280:{"value":"0500","name":"CYRILLIC CAPITAL LETTER KOMI DE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0501","titlecase_mapping":"","symbol":"\u0500"},1282:{"value":"0502","name":"CYRILLIC CAPITAL LETTER KOMI DJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0503","titlecase_mapping":"","symbol":"\u0502"},1284:{"value":"0504","name":"CYRILLIC CAPITAL LETTER KOMI ZJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0505","titlecase_mapping":"","symbol":"\u0504"},1286:{"value":"0506","name":"CYRILLIC CAPITAL LETTER KOMI DZJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0507","titlecase_mapping":"","symbol":"\u0506"},1288:{"value":"0508","name":"CYRILLIC CAPITAL LETTER KOMI LJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0509","titlecase_mapping":"","symbol":"\u0508"},1290:{"value":"050A","name":"CYRILLIC CAPITAL LETTER KOMI NJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"050B","titlecase_mapping":"","symbol":"\u050A"},1292:{"value":"050C","name":"CYRILLIC CAPITAL LETTER KOMI SJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"050D","titlecase_mapping":"","symbol":"\u050C"},1294:{"value":"050E","name":"CYRILLIC CAPITAL LETTER KOMI TJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"050F","titlecase_mapping":"","symbol":"\u050E"},1296:{"value":"0510","name":"CYRILLIC CAPITAL LETTER REVERSED ZE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0511","titlecase_mapping":"","symbol":"\u0510"},1298:{"value":"0512","name":"CYRILLIC CAPITAL LETTER EL WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0513","titlecase_mapping":"","symbol":"\u0512"},1300:{"value":"0514","name":"CYRILLIC CAPITAL LETTER LHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0515","titlecase_mapping":"","symbol":"\u0514"},1302:{"value":"0516","name":"CYRILLIC CAPITAL LETTER RHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0517","titlecase_mapping":"","symbol":"\u0516"},1304:{"value":"0518","name":"CYRILLIC CAPITAL LETTER YAE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0519","titlecase_mapping":"","symbol":"\u0518"},1306:{"value":"051A","name":"CYRILLIC CAPITAL LETTER QA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"051B","titlecase_mapping":"","symbol":"\u051A"},1308:{"value":"051C","name":"CYRILLIC CAPITAL LETTER WE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"051D","titlecase_mapping":"","symbol":"\u051C"},1310:{"value":"051E","name":"CYRILLIC CAPITAL LETTER ALEUT KA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"051F","titlecase_mapping":"","symbol":"\u051E"},1312:{"value":"0520","name":"CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0521","titlecase_mapping":"","symbol":"\u0520"},1314:{"value":"0522","name":"CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0523","titlecase_mapping":"","symbol":"\u0522"},1316:{"value":"0524","name":"CYRILLIC CAPITAL LETTER PE WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0525","titlecase_mapping":"","symbol":"\u0524"},1318:{"value":"0526","name":"CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0527","titlecase_mapping":"","symbol":"\u0526"},1320:{"value":"0528","name":"CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0529","titlecase_mapping":"","symbol":"\u0528"},1322:{"value":"052A","name":"CYRILLIC CAPITAL LETTER DZZHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"052B","titlecase_mapping":"","symbol":"\u052A"},1324:{"value":"052C","name":"CYRILLIC CAPITAL LETTER DCHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"052D","titlecase_mapping":"","symbol":"\u052C"},1326:{"value":"052E","name":"CYRILLIC CAPITAL LETTER EL WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"052F","titlecase_mapping":"","symbol":"\u052E"},1329:{"value":"0531","name":"ARMENIAN CAPITAL LETTER AYB","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0561","titlecase_mapping":"","symbol":"\u0531"},1330:{"value":"0532","name":"ARMENIAN CAPITAL LETTER BEN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0562","titlecase_mapping":"","symbol":"\u0532"},1331:{"value":"0533","name":"ARMENIAN CAPITAL LETTER GIM","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0563","titlecase_mapping":"","symbol":"\u0533"},1332:{"value":"0534","name":"ARMENIAN CAPITAL LETTER DA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0564","titlecase_mapping":"","symbol":"\u0534"},1333:{"value":"0535","name":"ARMENIAN CAPITAL LETTER ECH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0565","titlecase_mapping":"","symbol":"\u0535"},1334:{"value":"0536","name":"ARMENIAN CAPITAL LETTER ZA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0566","titlecase_mapping":"","symbol":"\u0536"},1335:{"value":"0537","name":"ARMENIAN CAPITAL LETTER EH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0567","titlecase_mapping":"","symbol":"\u0537"},1336:{"value":"0538","name":"ARMENIAN CAPITAL LETTER ET","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0568","titlecase_mapping":"","symbol":"\u0538"},1337:{"value":"0539","name":"ARMENIAN CAPITAL LETTER TO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0569","titlecase_mapping":"","symbol":"\u0539"},1338:{"value":"053A","name":"ARMENIAN CAPITAL LETTER ZHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"056A","titlecase_mapping":"","symbol":"\u053A"},1339:{"value":"053B","name":"ARMENIAN CAPITAL LETTER INI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"056B","titlecase_mapping":"","symbol":"\u053B"},1340:{"value":"053C","name":"ARMENIAN CAPITAL LETTER LIWN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"056C","titlecase_mapping":"","symbol":"\u053C"},1341:{"value":"053D","name":"ARMENIAN CAPITAL LETTER XEH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"056D","titlecase_mapping":"","symbol":"\u053D"},1342:{"value":"053E","name":"ARMENIAN CAPITAL LETTER CA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"056E","titlecase_mapping":"","symbol":"\u053E"},1343:{"value":"053F","name":"ARMENIAN CAPITAL LETTER KEN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"056F","titlecase_mapping":"","symbol":"\u053F"},1344:{"value":"0540","name":"ARMENIAN CAPITAL LETTER HO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0570","titlecase_mapping":"","symbol":"\u0540"},1345:{"value":"0541","name":"ARMENIAN CAPITAL LETTER JA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0571","titlecase_mapping":"","symbol":"\u0541"},1346:{"value":"0542","name":"ARMENIAN CAPITAL LETTER GHAD","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARMENIAN CAPITAL LETTER LAD","comment":"","uppercase_mapping":"","lowercase_mapping":"0572","titlecase_mapping":"","symbol":"\u0542"},1347:{"value":"0543","name":"ARMENIAN CAPITAL LETTER CHEH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0573","titlecase_mapping":"","symbol":"\u0543"},1348:{"value":"0544","name":"ARMENIAN CAPITAL LETTER MEN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0574","titlecase_mapping":"","symbol":"\u0544"},1349:{"value":"0545","name":"ARMENIAN CAPITAL LETTER YI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0575","titlecase_mapping":"","symbol":"\u0545"},1350:{"value":"0546","name":"ARMENIAN CAPITAL LETTER NOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0576","titlecase_mapping":"","symbol":"\u0546"},1351:{"value":"0547","name":"ARMENIAN CAPITAL LETTER SHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0577","titlecase_mapping":"","symbol":"\u0547"},1352:{"value":"0548","name":"ARMENIAN CAPITAL LETTER VO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0578","titlecase_mapping":"","symbol":"\u0548"},1353:{"value":"0549","name":"ARMENIAN CAPITAL LETTER CHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0579","titlecase_mapping":"","symbol":"\u0549"},1354:{"value":"054A","name":"ARMENIAN CAPITAL LETTER PEH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"057A","titlecase_mapping":"","symbol":"\u054A"},1355:{"value":"054B","name":"ARMENIAN CAPITAL LETTER JHEH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"057B","titlecase_mapping":"","symbol":"\u054B"},1356:{"value":"054C","name":"ARMENIAN CAPITAL LETTER RA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"057C","titlecase_mapping":"","symbol":"\u054C"},1357:{"value":"054D","name":"ARMENIAN CAPITAL LETTER SEH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"057D","titlecase_mapping":"","symbol":"\u054D"},1358:{"value":"054E","name":"ARMENIAN CAPITAL LETTER VEW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"057E","titlecase_mapping":"","symbol":"\u054E"},1359:{"value":"054F","name":"ARMENIAN CAPITAL LETTER TIWN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"057F","titlecase_mapping":"","symbol":"\u054F"},1360:{"value":"0550","name":"ARMENIAN CAPITAL LETTER REH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0580","titlecase_mapping":"","symbol":"\u0550"},1361:{"value":"0551","name":"ARMENIAN CAPITAL LETTER CO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0581","titlecase_mapping":"","symbol":"\u0551"},1362:{"value":"0552","name":"ARMENIAN CAPITAL LETTER YIWN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0582","titlecase_mapping":"","symbol":"\u0552"},1363:{"value":"0553","name":"ARMENIAN CAPITAL LETTER PIWR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0583","titlecase_mapping":"","symbol":"\u0553"},1364:{"value":"0554","name":"ARMENIAN CAPITAL LETTER KEH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0584","titlecase_mapping":"","symbol":"\u0554"},1365:{"value":"0555","name":"ARMENIAN CAPITAL LETTER OH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0585","titlecase_mapping":"","symbol":"\u0555"},1366:{"value":"0556","name":"ARMENIAN CAPITAL LETTER FEH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0586","titlecase_mapping":"","symbol":"\u0556"},4256:{"value":"10A0","name":"GEORGIAN CAPITAL LETTER AN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D00","titlecase_mapping":"","symbol":"\u10A0"},4257:{"value":"10A1","name":"GEORGIAN CAPITAL LETTER BAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D01","titlecase_mapping":"","symbol":"\u10A1"},4258:{"value":"10A2","name":"GEORGIAN CAPITAL LETTER GAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D02","titlecase_mapping":"","symbol":"\u10A2"},4259:{"value":"10A3","name":"GEORGIAN CAPITAL LETTER DON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D03","titlecase_mapping":"","symbol":"\u10A3"},4260:{"value":"10A4","name":"GEORGIAN CAPITAL LETTER EN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D04","titlecase_mapping":"","symbol":"\u10A4"},4261:{"value":"10A5","name":"GEORGIAN CAPITAL LETTER VIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D05","titlecase_mapping":"","symbol":"\u10A5"},4262:{"value":"10A6","name":"GEORGIAN CAPITAL LETTER ZEN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D06","titlecase_mapping":"","symbol":"\u10A6"},4263:{"value":"10A7","name":"GEORGIAN CAPITAL LETTER TAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D07","titlecase_mapping":"","symbol":"\u10A7"},4264:{"value":"10A8","name":"GEORGIAN CAPITAL LETTER IN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D08","titlecase_mapping":"","symbol":"\u10A8"},4265:{"value":"10A9","name":"GEORGIAN CAPITAL LETTER KAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D09","titlecase_mapping":"","symbol":"\u10A9"},4266:{"value":"10AA","name":"GEORGIAN CAPITAL LETTER LAS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D0A","titlecase_mapping":"","symbol":"\u10AA"},4267:{"value":"10AB","name":"GEORGIAN CAPITAL LETTER MAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D0B","titlecase_mapping":"","symbol":"\u10AB"},4268:{"value":"10AC","name":"GEORGIAN CAPITAL LETTER NAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D0C","titlecase_mapping":"","symbol":"\u10AC"},4269:{"value":"10AD","name":"GEORGIAN CAPITAL LETTER ON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D0D","titlecase_mapping":"","symbol":"\u10AD"},4270:{"value":"10AE","name":"GEORGIAN CAPITAL LETTER PAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D0E","titlecase_mapping":"","symbol":"\u10AE"},4271:{"value":"10AF","name":"GEORGIAN CAPITAL LETTER ZHAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D0F","titlecase_mapping":"","symbol":"\u10AF"},4272:{"value":"10B0","name":"GEORGIAN CAPITAL LETTER RAE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D10","titlecase_mapping":"","symbol":"\u10B0"},4273:{"value":"10B1","name":"GEORGIAN CAPITAL LETTER SAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D11","titlecase_mapping":"","symbol":"\u10B1"},4274:{"value":"10B2","name":"GEORGIAN CAPITAL LETTER TAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D12","titlecase_mapping":"","symbol":"\u10B2"},4275:{"value":"10B3","name":"GEORGIAN CAPITAL LETTER UN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D13","titlecase_mapping":"","symbol":"\u10B3"},4276:{"value":"10B4","name":"GEORGIAN CAPITAL LETTER PHAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D14","titlecase_mapping":"","symbol":"\u10B4"},4277:{"value":"10B5","name":"GEORGIAN CAPITAL LETTER KHAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D15","titlecase_mapping":"","symbol":"\u10B5"},4278:{"value":"10B6","name":"GEORGIAN CAPITAL LETTER GHAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D16","titlecase_mapping":"","symbol":"\u10B6"},4279:{"value":"10B7","name":"GEORGIAN CAPITAL LETTER QAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D17","titlecase_mapping":"","symbol":"\u10B7"},4280:{"value":"10B8","name":"GEORGIAN CAPITAL LETTER SHIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D18","titlecase_mapping":"","symbol":"\u10B8"},4281:{"value":"10B9","name":"GEORGIAN CAPITAL LETTER CHIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D19","titlecase_mapping":"","symbol":"\u10B9"},4282:{"value":"10BA","name":"GEORGIAN CAPITAL LETTER CAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D1A","titlecase_mapping":"","symbol":"\u10BA"},4283:{"value":"10BB","name":"GEORGIAN CAPITAL LETTER JIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D1B","titlecase_mapping":"","symbol":"\u10BB"},4284:{"value":"10BC","name":"GEORGIAN CAPITAL LETTER CIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D1C","titlecase_mapping":"","symbol":"\u10BC"},4285:{"value":"10BD","name":"GEORGIAN CAPITAL LETTER CHAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D1D","titlecase_mapping":"","symbol":"\u10BD"},4286:{"value":"10BE","name":"GEORGIAN CAPITAL LETTER XAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D1E","titlecase_mapping":"","symbol":"\u10BE"},4287:{"value":"10BF","name":"GEORGIAN CAPITAL LETTER JHAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D1F","titlecase_mapping":"","symbol":"\u10BF"},4288:{"value":"10C0","name":"GEORGIAN CAPITAL LETTER HAE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D20","titlecase_mapping":"","symbol":"\u10C0"},4289:{"value":"10C1","name":"GEORGIAN CAPITAL LETTER HE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D21","titlecase_mapping":"","symbol":"\u10C1"},4290:{"value":"10C2","name":"GEORGIAN CAPITAL LETTER HIE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D22","titlecase_mapping":"","symbol":"\u10C2"},4291:{"value":"10C3","name":"GEORGIAN CAPITAL LETTER WE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D23","titlecase_mapping":"","symbol":"\u10C3"},4292:{"value":"10C4","name":"GEORGIAN CAPITAL LETTER HAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D24","titlecase_mapping":"","symbol":"\u10C4"},4293:{"value":"10C5","name":"GEORGIAN CAPITAL LETTER HOE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D25","titlecase_mapping":"","symbol":"\u10C5"},4295:{"value":"10C7","name":"GEORGIAN CAPITAL LETTER YN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D27","titlecase_mapping":"","symbol":"\u10C7"},4301:{"value":"10CD","name":"GEORGIAN CAPITAL LETTER AEN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2D2D","titlecase_mapping":"","symbol":"\u10CD"},5024:{"value":"13A0","name":"CHEROKEE LETTER A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB70","titlecase_mapping":"","symbol":"\u13A0"},5025:{"value":"13A1","name":"CHEROKEE LETTER E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB71","titlecase_mapping":"","symbol":"\u13A1"},5026:{"value":"13A2","name":"CHEROKEE LETTER I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB72","titlecase_mapping":"","symbol":"\u13A2"},5027:{"value":"13A3","name":"CHEROKEE LETTER O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB73","titlecase_mapping":"","symbol":"\u13A3"},5028:{"value":"13A4","name":"CHEROKEE LETTER U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB74","titlecase_mapping":"","symbol":"\u13A4"},5029:{"value":"13A5","name":"CHEROKEE LETTER V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB75","titlecase_mapping":"","symbol":"\u13A5"},5030:{"value":"13A6","name":"CHEROKEE LETTER GA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB76","titlecase_mapping":"","symbol":"\u13A6"},5031:{"value":"13A7","name":"CHEROKEE LETTER KA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB77","titlecase_mapping":"","symbol":"\u13A7"},5032:{"value":"13A8","name":"CHEROKEE LETTER GE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB78","titlecase_mapping":"","symbol":"\u13A8"},5033:{"value":"13A9","name":"CHEROKEE LETTER GI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB79","titlecase_mapping":"","symbol":"\u13A9"},5034:{"value":"13AA","name":"CHEROKEE LETTER GO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB7A","titlecase_mapping":"","symbol":"\u13AA"},5035:{"value":"13AB","name":"CHEROKEE LETTER GU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB7B","titlecase_mapping":"","symbol":"\u13AB"},5036:{"value":"13AC","name":"CHEROKEE LETTER GV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB7C","titlecase_mapping":"","symbol":"\u13AC"},5037:{"value":"13AD","name":"CHEROKEE LETTER HA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB7D","titlecase_mapping":"","symbol":"\u13AD"},5038:{"value":"13AE","name":"CHEROKEE LETTER HE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB7E","titlecase_mapping":"","symbol":"\u13AE"},5039:{"value":"13AF","name":"CHEROKEE LETTER HI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB7F","titlecase_mapping":"","symbol":"\u13AF"},5040:{"value":"13B0","name":"CHEROKEE LETTER HO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB80","titlecase_mapping":"","symbol":"\u13B0"},5041:{"value":"13B1","name":"CHEROKEE LETTER HU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB81","titlecase_mapping":"","symbol":"\u13B1"},5042:{"value":"13B2","name":"CHEROKEE LETTER HV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB82","titlecase_mapping":"","symbol":"\u13B2"},5043:{"value":"13B3","name":"CHEROKEE LETTER LA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB83","titlecase_mapping":"","symbol":"\u13B3"},5044:{"value":"13B4","name":"CHEROKEE LETTER LE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB84","titlecase_mapping":"","symbol":"\u13B4"},5045:{"value":"13B5","name":"CHEROKEE LETTER LI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB85","titlecase_mapping":"","symbol":"\u13B5"},5046:{"value":"13B6","name":"CHEROKEE LETTER LO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB86","titlecase_mapping":"","symbol":"\u13B6"},5047:{"value":"13B7","name":"CHEROKEE LETTER LU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB87","titlecase_mapping":"","symbol":"\u13B7"},5048:{"value":"13B8","name":"CHEROKEE LETTER LV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB88","titlecase_mapping":"","symbol":"\u13B8"},5049:{"value":"13B9","name":"CHEROKEE LETTER MA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB89","titlecase_mapping":"","symbol":"\u13B9"},5050:{"value":"13BA","name":"CHEROKEE LETTER ME","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB8A","titlecase_mapping":"","symbol":"\u13BA"},5051:{"value":"13BB","name":"CHEROKEE LETTER MI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB8B","titlecase_mapping":"","symbol":"\u13BB"},5052:{"value":"13BC","name":"CHEROKEE LETTER MO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB8C","titlecase_mapping":"","symbol":"\u13BC"},5053:{"value":"13BD","name":"CHEROKEE LETTER MU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB8D","titlecase_mapping":"","symbol":"\u13BD"},5054:{"value":"13BE","name":"CHEROKEE LETTER NA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB8E","titlecase_mapping":"","symbol":"\u13BE"},5055:{"value":"13BF","name":"CHEROKEE LETTER HNA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB8F","titlecase_mapping":"","symbol":"\u13BF"},5056:{"value":"13C0","name":"CHEROKEE LETTER NAH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB90","titlecase_mapping":"","symbol":"\u13C0"},5057:{"value":"13C1","name":"CHEROKEE LETTER NE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB91","titlecase_mapping":"","symbol":"\u13C1"},5058:{"value":"13C2","name":"CHEROKEE LETTER NI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB92","titlecase_mapping":"","symbol":"\u13C2"},5059:{"value":"13C3","name":"CHEROKEE LETTER NO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB93","titlecase_mapping":"","symbol":"\u13C3"},5060:{"value":"13C4","name":"CHEROKEE LETTER NU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB94","titlecase_mapping":"","symbol":"\u13C4"},5061:{"value":"13C5","name":"CHEROKEE LETTER NV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB95","titlecase_mapping":"","symbol":"\u13C5"},5062:{"value":"13C6","name":"CHEROKEE LETTER QUA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB96","titlecase_mapping":"","symbol":"\u13C6"},5063:{"value":"13C7","name":"CHEROKEE LETTER QUE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB97","titlecase_mapping":"","symbol":"\u13C7"},5064:{"value":"13C8","name":"CHEROKEE LETTER QUI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB98","titlecase_mapping":"","symbol":"\u13C8"},5065:{"value":"13C9","name":"CHEROKEE LETTER QUO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB99","titlecase_mapping":"","symbol":"\u13C9"},5066:{"value":"13CA","name":"CHEROKEE LETTER QUU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB9A","titlecase_mapping":"","symbol":"\u13CA"},5067:{"value":"13CB","name":"CHEROKEE LETTER QUV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB9B","titlecase_mapping":"","symbol":"\u13CB"},5068:{"value":"13CC","name":"CHEROKEE LETTER SA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB9C","titlecase_mapping":"","symbol":"\u13CC"},5069:{"value":"13CD","name":"CHEROKEE LETTER S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB9D","titlecase_mapping":"","symbol":"\u13CD"},5070:{"value":"13CE","name":"CHEROKEE LETTER SE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB9E","titlecase_mapping":"","symbol":"\u13CE"},5071:{"value":"13CF","name":"CHEROKEE LETTER SI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB9F","titlecase_mapping":"","symbol":"\u13CF"},5072:{"value":"13D0","name":"CHEROKEE LETTER SO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABA0","titlecase_mapping":"","symbol":"\u13D0"},5073:{"value":"13D1","name":"CHEROKEE LETTER SU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABA1","titlecase_mapping":"","symbol":"\u13D1"},5074:{"value":"13D2","name":"CHEROKEE LETTER SV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABA2","titlecase_mapping":"","symbol":"\u13D2"},5075:{"value":"13D3","name":"CHEROKEE LETTER DA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABA3","titlecase_mapping":"","symbol":"\u13D3"},5076:{"value":"13D4","name":"CHEROKEE LETTER TA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABA4","titlecase_mapping":"","symbol":"\u13D4"},5077:{"value":"13D5","name":"CHEROKEE LETTER DE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABA5","titlecase_mapping":"","symbol":"\u13D5"},5078:{"value":"13D6","name":"CHEROKEE LETTER TE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABA6","titlecase_mapping":"","symbol":"\u13D6"},5079:{"value":"13D7","name":"CHEROKEE LETTER DI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABA7","titlecase_mapping":"","symbol":"\u13D7"},5080:{"value":"13D8","name":"CHEROKEE LETTER TI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABA8","titlecase_mapping":"","symbol":"\u13D8"},5081:{"value":"13D9","name":"CHEROKEE LETTER DO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABA9","titlecase_mapping":"","symbol":"\u13D9"},5082:{"value":"13DA","name":"CHEROKEE LETTER DU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABAA","titlecase_mapping":"","symbol":"\u13DA"},5083:{"value":"13DB","name":"CHEROKEE LETTER DV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABAB","titlecase_mapping":"","symbol":"\u13DB"},5084:{"value":"13DC","name":"CHEROKEE LETTER DLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABAC","titlecase_mapping":"","symbol":"\u13DC"},5085:{"value":"13DD","name":"CHEROKEE LETTER TLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABAD","titlecase_mapping":"","symbol":"\u13DD"},5086:{"value":"13DE","name":"CHEROKEE LETTER TLE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABAE","titlecase_mapping":"","symbol":"\u13DE"},5087:{"value":"13DF","name":"CHEROKEE LETTER TLI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABAF","titlecase_mapping":"","symbol":"\u13DF"},5088:{"value":"13E0","name":"CHEROKEE LETTER TLO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABB0","titlecase_mapping":"","symbol":"\u13E0"},5089:{"value":"13E1","name":"CHEROKEE LETTER TLU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABB1","titlecase_mapping":"","symbol":"\u13E1"},5090:{"value":"13E2","name":"CHEROKEE LETTER TLV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABB2","titlecase_mapping":"","symbol":"\u13E2"},5091:{"value":"13E3","name":"CHEROKEE LETTER TSA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABB3","titlecase_mapping":"","symbol":"\u13E3"},5092:{"value":"13E4","name":"CHEROKEE LETTER TSE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABB4","titlecase_mapping":"","symbol":"\u13E4"},5093:{"value":"13E5","name":"CHEROKEE LETTER TSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABB5","titlecase_mapping":"","symbol":"\u13E5"},5094:{"value":"13E6","name":"CHEROKEE LETTER TSO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABB6","titlecase_mapping":"","symbol":"\u13E6"},5095:{"value":"13E7","name":"CHEROKEE LETTER TSU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABB7","titlecase_mapping":"","symbol":"\u13E7"},5096:{"value":"13E8","name":"CHEROKEE LETTER TSV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABB8","titlecase_mapping":"","symbol":"\u13E8"},5097:{"value":"13E9","name":"CHEROKEE LETTER WA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABB9","titlecase_mapping":"","symbol":"\u13E9"},5098:{"value":"13EA","name":"CHEROKEE LETTER WE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABBA","titlecase_mapping":"","symbol":"\u13EA"},5099:{"value":"13EB","name":"CHEROKEE LETTER WI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABBB","titlecase_mapping":"","symbol":"\u13EB"},5100:{"value":"13EC","name":"CHEROKEE LETTER WO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABBC","titlecase_mapping":"","symbol":"\u13EC"},5101:{"value":"13ED","name":"CHEROKEE LETTER WU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABBD","titlecase_mapping":"","symbol":"\u13ED"},5102:{"value":"13EE","name":"CHEROKEE LETTER WV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABBE","titlecase_mapping":"","symbol":"\u13EE"},5103:{"value":"13EF","name":"CHEROKEE LETTER YA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"ABBF","titlecase_mapping":"","symbol":"\u13EF"},5104:{"value":"13F0","name":"CHEROKEE LETTER YE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"13F8","titlecase_mapping":"","symbol":"\u13F0"},5105:{"value":"13F1","name":"CHEROKEE LETTER YI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"13F9","titlecase_mapping":"","symbol":"\u13F1"},5106:{"value":"13F2","name":"CHEROKEE LETTER YO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"13FA","titlecase_mapping":"","symbol":"\u13F2"},5107:{"value":"13F3","name":"CHEROKEE LETTER YU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"13FB","titlecase_mapping":"","symbol":"\u13F3"},5108:{"value":"13F4","name":"CHEROKEE LETTER YV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"13FC","titlecase_mapping":"","symbol":"\u13F4"},5109:{"value":"13F5","name":"CHEROKEE LETTER MV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"13FD","titlecase_mapping":"","symbol":"\u13F5"},7312:{"value":"1C90","name":"GEORGIAN MTAVRULI CAPITAL LETTER AN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10D0","titlecase_mapping":"","symbol":"\u1C90"},7313:{"value":"1C91","name":"GEORGIAN MTAVRULI CAPITAL LETTER BAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10D1","titlecase_mapping":"","symbol":"\u1C91"},7314:{"value":"1C92","name":"GEORGIAN MTAVRULI CAPITAL LETTER GAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10D2","titlecase_mapping":"","symbol":"\u1C92"},7315:{"value":"1C93","name":"GEORGIAN MTAVRULI CAPITAL LETTER DON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10D3","titlecase_mapping":"","symbol":"\u1C93"},7316:{"value":"1C94","name":"GEORGIAN MTAVRULI CAPITAL LETTER EN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10D4","titlecase_mapping":"","symbol":"\u1C94"},7317:{"value":"1C95","name":"GEORGIAN MTAVRULI CAPITAL LETTER VIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10D5","titlecase_mapping":"","symbol":"\u1C95"},7318:{"value":"1C96","name":"GEORGIAN MTAVRULI CAPITAL LETTER ZEN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10D6","titlecase_mapping":"","symbol":"\u1C96"},7319:{"value":"1C97","name":"GEORGIAN MTAVRULI CAPITAL LETTER TAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10D7","titlecase_mapping":"","symbol":"\u1C97"},7320:{"value":"1C98","name":"GEORGIAN MTAVRULI CAPITAL LETTER IN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10D8","titlecase_mapping":"","symbol":"\u1C98"},7321:{"value":"1C99","name":"GEORGIAN MTAVRULI CAPITAL LETTER KAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10D9","titlecase_mapping":"","symbol":"\u1C99"},7322:{"value":"1C9A","name":"GEORGIAN MTAVRULI CAPITAL LETTER LAS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10DA","titlecase_mapping":"","symbol":"\u1C9A"},7323:{"value":"1C9B","name":"GEORGIAN MTAVRULI CAPITAL LETTER MAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10DB","titlecase_mapping":"","symbol":"\u1C9B"},7324:{"value":"1C9C","name":"GEORGIAN MTAVRULI CAPITAL LETTER NAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10DC","titlecase_mapping":"","symbol":"\u1C9C"},7325:{"value":"1C9D","name":"GEORGIAN MTAVRULI CAPITAL LETTER ON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10DD","titlecase_mapping":"","symbol":"\u1C9D"},7326:{"value":"1C9E","name":"GEORGIAN MTAVRULI CAPITAL LETTER PAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10DE","titlecase_mapping":"","symbol":"\u1C9E"},7327:{"value":"1C9F","name":"GEORGIAN MTAVRULI CAPITAL LETTER ZHAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10DF","titlecase_mapping":"","symbol":"\u1C9F"},7328:{"value":"1CA0","name":"GEORGIAN MTAVRULI CAPITAL LETTER RAE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10E0","titlecase_mapping":"","symbol":"\u1CA0"},7329:{"value":"1CA1","name":"GEORGIAN MTAVRULI CAPITAL LETTER SAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10E1","titlecase_mapping":"","symbol":"\u1CA1"},7330:{"value":"1CA2","name":"GEORGIAN MTAVRULI CAPITAL LETTER TAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10E2","titlecase_mapping":"","symbol":"\u1CA2"},7331:{"value":"1CA3","name":"GEORGIAN MTAVRULI CAPITAL LETTER UN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10E3","titlecase_mapping":"","symbol":"\u1CA3"},7332:{"value":"1CA4","name":"GEORGIAN MTAVRULI CAPITAL LETTER PHAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10E4","titlecase_mapping":"","symbol":"\u1CA4"},7333:{"value":"1CA5","name":"GEORGIAN MTAVRULI CAPITAL LETTER KHAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10E5","titlecase_mapping":"","symbol":"\u1CA5"},7334:{"value":"1CA6","name":"GEORGIAN MTAVRULI CAPITAL LETTER GHAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10E6","titlecase_mapping":"","symbol":"\u1CA6"},7335:{"value":"1CA7","name":"GEORGIAN MTAVRULI CAPITAL LETTER QAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10E7","titlecase_mapping":"","symbol":"\u1CA7"},7336:{"value":"1CA8","name":"GEORGIAN MTAVRULI CAPITAL LETTER SHIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10E8","titlecase_mapping":"","symbol":"\u1CA8"},7337:{"value":"1CA9","name":"GEORGIAN MTAVRULI CAPITAL LETTER CHIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10E9","titlecase_mapping":"","symbol":"\u1CA9"},7338:{"value":"1CAA","name":"GEORGIAN MTAVRULI CAPITAL LETTER CAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10EA","titlecase_mapping":"","symbol":"\u1CAA"},7339:{"value":"1CAB","name":"GEORGIAN MTAVRULI CAPITAL LETTER JIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10EB","titlecase_mapping":"","symbol":"\u1CAB"},7340:{"value":"1CAC","name":"GEORGIAN MTAVRULI CAPITAL LETTER CIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10EC","titlecase_mapping":"","symbol":"\u1CAC"},7341:{"value":"1CAD","name":"GEORGIAN MTAVRULI CAPITAL LETTER CHAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10ED","titlecase_mapping":"","symbol":"\u1CAD"},7342:{"value":"1CAE","name":"GEORGIAN MTAVRULI CAPITAL LETTER XAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10EE","titlecase_mapping":"","symbol":"\u1CAE"},7343:{"value":"1CAF","name":"GEORGIAN MTAVRULI CAPITAL LETTER JHAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10EF","titlecase_mapping":"","symbol":"\u1CAF"},7344:{"value":"1CB0","name":"GEORGIAN MTAVRULI CAPITAL LETTER HAE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10F0","titlecase_mapping":"","symbol":"\u1CB0"},7345:{"value":"1CB1","name":"GEORGIAN MTAVRULI CAPITAL LETTER HE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10F1","titlecase_mapping":"","symbol":"\u1CB1"},7346:{"value":"1CB2","name":"GEORGIAN MTAVRULI CAPITAL LETTER HIE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10F2","titlecase_mapping":"","symbol":"\u1CB2"},7347:{"value":"1CB3","name":"GEORGIAN MTAVRULI CAPITAL LETTER WE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10F3","titlecase_mapping":"","symbol":"\u1CB3"},7348:{"value":"1CB4","name":"GEORGIAN MTAVRULI CAPITAL LETTER HAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10F4","titlecase_mapping":"","symbol":"\u1CB4"},7349:{"value":"1CB5","name":"GEORGIAN MTAVRULI CAPITAL LETTER HOE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10F5","titlecase_mapping":"","symbol":"\u1CB5"},7350:{"value":"1CB6","name":"GEORGIAN MTAVRULI CAPITAL LETTER FI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10F6","titlecase_mapping":"","symbol":"\u1CB6"},7351:{"value":"1CB7","name":"GEORGIAN MTAVRULI CAPITAL LETTER YN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10F7","titlecase_mapping":"","symbol":"\u1CB7"},7352:{"value":"1CB8","name":"GEORGIAN MTAVRULI CAPITAL LETTER ELIFI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10F8","titlecase_mapping":"","symbol":"\u1CB8"},7353:{"value":"1CB9","name":"GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10F9","titlecase_mapping":"","symbol":"\u1CB9"},7354:{"value":"1CBA","name":"GEORGIAN MTAVRULI CAPITAL LETTER AIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10FA","titlecase_mapping":"","symbol":"\u1CBA"},7357:{"value":"1CBD","name":"GEORGIAN MTAVRULI CAPITAL LETTER AEN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10FD","titlecase_mapping":"","symbol":"\u1CBD"},7358:{"value":"1CBE","name":"GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10FE","titlecase_mapping":"","symbol":"\u1CBE"},7359:{"value":"1CBF","name":"GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10FF","titlecase_mapping":"","symbol":"\u1CBF"},7680:{"value":"1E00","name":"LATIN CAPITAL LETTER A WITH RING BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0325","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E01","titlecase_mapping":"","symbol":"\u1E00"},7682:{"value":"1E02","name":"LATIN CAPITAL LETTER B WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0042 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E03","titlecase_mapping":"","symbol":"\u1E02"},7684:{"value":"1E04","name":"LATIN CAPITAL LETTER B WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0042 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E05","titlecase_mapping":"","symbol":"\u1E04"},7686:{"value":"1E06","name":"LATIN CAPITAL LETTER B WITH LINE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0042 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E07","titlecase_mapping":"","symbol":"\u1E06"},7688:{"value":"1E08","name":"LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00C7 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E09","titlecase_mapping":"","symbol":"\u1E08"},7690:{"value":"1E0A","name":"LATIN CAPITAL LETTER D WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0044 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E0B","titlecase_mapping":"","symbol":"\u1E0A"},7692:{"value":"1E0C","name":"LATIN CAPITAL LETTER D WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0044 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E0D","titlecase_mapping":"","symbol":"\u1E0C"},7694:{"value":"1E0E","name":"LATIN CAPITAL LETTER D WITH LINE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0044 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E0F","titlecase_mapping":"","symbol":"\u1E0E"},7696:{"value":"1E10","name":"LATIN CAPITAL LETTER D WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0044 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E11","titlecase_mapping":"","symbol":"\u1E10"},7698:{"value":"1E12","name":"LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0044 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E13","titlecase_mapping":"","symbol":"\u1E12"},7700:{"value":"1E14","name":"LATIN CAPITAL LETTER E WITH MACRON AND GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0112 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E15","titlecase_mapping":"","symbol":"\u1E14"},7702:{"value":"1E16","name":"LATIN CAPITAL LETTER E WITH MACRON AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0112 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E17","titlecase_mapping":"","symbol":"\u1E16"},7704:{"value":"1E18","name":"LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E19","titlecase_mapping":"","symbol":"\u1E18"},7706:{"value":"1E1A","name":"LATIN CAPITAL LETTER E WITH TILDE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0330","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E1B","titlecase_mapping":"","symbol":"\u1E1A"},7708:{"value":"1E1C","name":"LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0228 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E1D","titlecase_mapping":"","symbol":"\u1E1C"},7710:{"value":"1E1E","name":"LATIN CAPITAL LETTER F WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0046 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E1F","titlecase_mapping":"","symbol":"\u1E1E"},7712:{"value":"1E20","name":"LATIN CAPITAL LETTER G WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0047 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E21","titlecase_mapping":"","symbol":"\u1E20"},7714:{"value":"1E22","name":"LATIN CAPITAL LETTER H WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0048 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E23","titlecase_mapping":"","symbol":"\u1E22"},7716:{"value":"1E24","name":"LATIN CAPITAL LETTER H WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0048 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E25","titlecase_mapping":"","symbol":"\u1E24"},7718:{"value":"1E26","name":"LATIN CAPITAL LETTER H WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0048 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E27","titlecase_mapping":"","symbol":"\u1E26"},7720:{"value":"1E28","name":"LATIN CAPITAL LETTER H WITH CEDILLA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0048 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E29","titlecase_mapping":"","symbol":"\u1E28"},7722:{"value":"1E2A","name":"LATIN CAPITAL LETTER H WITH BREVE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0048 032E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E2B","titlecase_mapping":"","symbol":"\u1E2A"},7724:{"value":"1E2C","name":"LATIN CAPITAL LETTER I WITH TILDE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0330","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E2D","titlecase_mapping":"","symbol":"\u1E2C"},7726:{"value":"1E2E","name":"LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00CF 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E2F","titlecase_mapping":"","symbol":"\u1E2E"},7728:{"value":"1E30","name":"LATIN CAPITAL LETTER K WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004B 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E31","titlecase_mapping":"","symbol":"\u1E30"},7730:{"value":"1E32","name":"LATIN CAPITAL LETTER K WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004B 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E33","titlecase_mapping":"","symbol":"\u1E32"},7732:{"value":"1E34","name":"LATIN CAPITAL LETTER K WITH LINE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004B 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E35","titlecase_mapping":"","symbol":"\u1E34"},7734:{"value":"1E36","name":"LATIN CAPITAL LETTER L WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004C 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E37","titlecase_mapping":"","symbol":"\u1E36"},7736:{"value":"1E38","name":"LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1E36 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E39","titlecase_mapping":"","symbol":"\u1E38"},7738:{"value":"1E3A","name":"LATIN CAPITAL LETTER L WITH LINE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004C 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E3B","titlecase_mapping":"","symbol":"\u1E3A"},7740:{"value":"1E3C","name":"LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004C 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E3D","titlecase_mapping":"","symbol":"\u1E3C"},7742:{"value":"1E3E","name":"LATIN CAPITAL LETTER M WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004D 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E3F","titlecase_mapping":"","symbol":"\u1E3E"},7744:{"value":"1E40","name":"LATIN CAPITAL LETTER M WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004D 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E41","titlecase_mapping":"","symbol":"\u1E40"},7746:{"value":"1E42","name":"LATIN CAPITAL LETTER M WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004D 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E43","titlecase_mapping":"","symbol":"\u1E42"},7748:{"value":"1E44","name":"LATIN CAPITAL LETTER N WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004E 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E45","titlecase_mapping":"","symbol":"\u1E44"},7750:{"value":"1E46","name":"LATIN CAPITAL LETTER N WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004E 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E47","titlecase_mapping":"","symbol":"\u1E46"},7752:{"value":"1E48","name":"LATIN CAPITAL LETTER N WITH LINE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004E 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E49","titlecase_mapping":"","symbol":"\u1E48"},7754:{"value":"1E4A","name":"LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004E 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E4B","titlecase_mapping":"","symbol":"\u1E4A"},7756:{"value":"1E4C","name":"LATIN CAPITAL LETTER O WITH TILDE AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00D5 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E4D","titlecase_mapping":"","symbol":"\u1E4C"},7758:{"value":"1E4E","name":"LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00D5 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E4F","titlecase_mapping":"","symbol":"\u1E4E"},7760:{"value":"1E50","name":"LATIN CAPITAL LETTER O WITH MACRON AND GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"014C 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E51","titlecase_mapping":"","symbol":"\u1E50"},7762:{"value":"1E52","name":"LATIN CAPITAL LETTER O WITH MACRON AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"014C 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E53","titlecase_mapping":"","symbol":"\u1E52"},7764:{"value":"1E54","name":"LATIN CAPITAL LETTER P WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0050 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E55","titlecase_mapping":"","symbol":"\u1E54"},7766:{"value":"1E56","name":"LATIN CAPITAL LETTER P WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0050 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E57","titlecase_mapping":"","symbol":"\u1E56"},7768:{"value":"1E58","name":"LATIN CAPITAL LETTER R WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0052 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E59","titlecase_mapping":"","symbol":"\u1E58"},7770:{"value":"1E5A","name":"LATIN CAPITAL LETTER R WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0052 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E5B","titlecase_mapping":"","symbol":"\u1E5A"},7772:{"value":"1E5C","name":"LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1E5A 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E5D","titlecase_mapping":"","symbol":"\u1E5C"},7774:{"value":"1E5E","name":"LATIN CAPITAL LETTER R WITH LINE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0052 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E5F","titlecase_mapping":"","symbol":"\u1E5E"},7776:{"value":"1E60","name":"LATIN CAPITAL LETTER S WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0053 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E61","titlecase_mapping":"","symbol":"\u1E60"},7778:{"value":"1E62","name":"LATIN CAPITAL LETTER S WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0053 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E63","titlecase_mapping":"","symbol":"\u1E62"},7780:{"value":"1E64","name":"LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"015A 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E65","titlecase_mapping":"","symbol":"\u1E64"},7782:{"value":"1E66","name":"LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0160 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E67","titlecase_mapping":"","symbol":"\u1E66"},7784:{"value":"1E68","name":"LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1E62 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E69","titlecase_mapping":"","symbol":"\u1E68"},7786:{"value":"1E6A","name":"LATIN CAPITAL LETTER T WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0054 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E6B","titlecase_mapping":"","symbol":"\u1E6A"},7788:{"value":"1E6C","name":"LATIN CAPITAL LETTER T WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0054 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E6D","titlecase_mapping":"","symbol":"\u1E6C"},7790:{"value":"1E6E","name":"LATIN CAPITAL LETTER T WITH LINE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0054 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E6F","titlecase_mapping":"","symbol":"\u1E6E"},7792:{"value":"1E70","name":"LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0054 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E71","titlecase_mapping":"","symbol":"\u1E70"},7794:{"value":"1E72","name":"LATIN CAPITAL LETTER U WITH DIAERESIS BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0324","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E73","titlecase_mapping":"","symbol":"\u1E72"},7796:{"value":"1E74","name":"LATIN CAPITAL LETTER U WITH TILDE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0330","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E75","titlecase_mapping":"","symbol":"\u1E74"},7798:{"value":"1E76","name":"LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E77","titlecase_mapping":"","symbol":"\u1E76"},7800:{"value":"1E78","name":"LATIN CAPITAL LETTER U WITH TILDE AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0168 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E79","titlecase_mapping":"","symbol":"\u1E78"},7802:{"value":"1E7A","name":"LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"016A 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E7B","titlecase_mapping":"","symbol":"\u1E7A"},7804:{"value":"1E7C","name":"LATIN CAPITAL LETTER V WITH TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0056 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E7D","titlecase_mapping":"","symbol":"\u1E7C"},7806:{"value":"1E7E","name":"LATIN CAPITAL LETTER V WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0056 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E7F","titlecase_mapping":"","symbol":"\u1E7E"},7808:{"value":"1E80","name":"LATIN CAPITAL LETTER W WITH GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0057 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E81","titlecase_mapping":"","symbol":"\u1E80"},7810:{"value":"1E82","name":"LATIN CAPITAL LETTER W WITH ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0057 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E83","titlecase_mapping":"","symbol":"\u1E82"},7812:{"value":"1E84","name":"LATIN CAPITAL LETTER W WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0057 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E85","titlecase_mapping":"","symbol":"\u1E84"},7814:{"value":"1E86","name":"LATIN CAPITAL LETTER W WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0057 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E87","titlecase_mapping":"","symbol":"\u1E86"},7816:{"value":"1E88","name":"LATIN CAPITAL LETTER W WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0057 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E89","titlecase_mapping":"","symbol":"\u1E88"},7818:{"value":"1E8A","name":"LATIN CAPITAL LETTER X WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0058 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E8B","titlecase_mapping":"","symbol":"\u1E8A"},7820:{"value":"1E8C","name":"LATIN CAPITAL LETTER X WITH DIAERESIS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0058 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E8D","titlecase_mapping":"","symbol":"\u1E8C"},7822:{"value":"1E8E","name":"LATIN CAPITAL LETTER Y WITH DOT ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0059 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E8F","titlecase_mapping":"","symbol":"\u1E8E"},7824:{"value":"1E90","name":"LATIN CAPITAL LETTER Z WITH CIRCUMFLEX","category":"Lu","class":"0","bidirectional_category":"L","mapping":"005A 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E91","titlecase_mapping":"","symbol":"\u1E90"},7826:{"value":"1E92","name":"LATIN CAPITAL LETTER Z WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"005A 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E93","titlecase_mapping":"","symbol":"\u1E92"},7828:{"value":"1E94","name":"LATIN CAPITAL LETTER Z WITH LINE BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"005A 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E95","titlecase_mapping":"","symbol":"\u1E94"},7838:{"value":"1E9E","name":"LATIN CAPITAL LETTER SHARP S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"00DF","titlecase_mapping":"","symbol":"\u1E9E"},7840:{"value":"1EA0","name":"LATIN CAPITAL LETTER A WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EA1","titlecase_mapping":"","symbol":"\u1EA0"},7842:{"value":"1EA2","name":"LATIN CAPITAL LETTER A WITH HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0041 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EA3","titlecase_mapping":"","symbol":"\u1EA2"},7844:{"value":"1EA4","name":"LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00C2 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EA5","titlecase_mapping":"","symbol":"\u1EA4"},7846:{"value":"1EA6","name":"LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00C2 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EA7","titlecase_mapping":"","symbol":"\u1EA6"},7848:{"value":"1EA8","name":"LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00C2 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EA9","titlecase_mapping":"","symbol":"\u1EA8"},7850:{"value":"1EAA","name":"LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00C2 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EAB","titlecase_mapping":"","symbol":"\u1EAA"},7852:{"value":"1EAC","name":"LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1EA0 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EAD","titlecase_mapping":"","symbol":"\u1EAC"},7854:{"value":"1EAE","name":"LATIN CAPITAL LETTER A WITH BREVE AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0102 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EAF","titlecase_mapping":"","symbol":"\u1EAE"},7856:{"value":"1EB0","name":"LATIN CAPITAL LETTER A WITH BREVE AND GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0102 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EB1","titlecase_mapping":"","symbol":"\u1EB0"},7858:{"value":"1EB2","name":"LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0102 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EB3","titlecase_mapping":"","symbol":"\u1EB2"},7860:{"value":"1EB4","name":"LATIN CAPITAL LETTER A WITH BREVE AND TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0102 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EB5","titlecase_mapping":"","symbol":"\u1EB4"},7862:{"value":"1EB6","name":"LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1EA0 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EB7","titlecase_mapping":"","symbol":"\u1EB6"},7864:{"value":"1EB8","name":"LATIN CAPITAL LETTER E WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EB9","titlecase_mapping":"","symbol":"\u1EB8"},7866:{"value":"1EBA","name":"LATIN CAPITAL LETTER E WITH HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EBB","titlecase_mapping":"","symbol":"\u1EBA"},7868:{"value":"1EBC","name":"LATIN CAPITAL LETTER E WITH TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0045 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EBD","titlecase_mapping":"","symbol":"\u1EBC"},7870:{"value":"1EBE","name":"LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00CA 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EBF","titlecase_mapping":"","symbol":"\u1EBE"},7872:{"value":"1EC0","name":"LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00CA 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EC1","titlecase_mapping":"","symbol":"\u1EC0"},7874:{"value":"1EC2","name":"LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00CA 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EC3","titlecase_mapping":"","symbol":"\u1EC2"},7876:{"value":"1EC4","name":"LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00CA 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EC5","titlecase_mapping":"","symbol":"\u1EC4"},7878:{"value":"1EC6","name":"LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1EB8 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EC7","titlecase_mapping":"","symbol":"\u1EC6"},7880:{"value":"1EC8","name":"LATIN CAPITAL LETTER I WITH HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EC9","titlecase_mapping":"","symbol":"\u1EC8"},7882:{"value":"1ECA","name":"LATIN CAPITAL LETTER I WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0049 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1ECB","titlecase_mapping":"","symbol":"\u1ECA"},7884:{"value":"1ECC","name":"LATIN CAPITAL LETTER O WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1ECD","titlecase_mapping":"","symbol":"\u1ECC"},7886:{"value":"1ECE","name":"LATIN CAPITAL LETTER O WITH HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004F 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1ECF","titlecase_mapping":"","symbol":"\u1ECE"},7888:{"value":"1ED0","name":"LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00D4 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1ED1","titlecase_mapping":"","symbol":"\u1ED0"},7890:{"value":"1ED2","name":"LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00D4 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1ED3","titlecase_mapping":"","symbol":"\u1ED2"},7892:{"value":"1ED4","name":"LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00D4 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1ED5","titlecase_mapping":"","symbol":"\u1ED4"},7894:{"value":"1ED6","name":"LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00D4 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1ED7","titlecase_mapping":"","symbol":"\u1ED6"},7896:{"value":"1ED8","name":"LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1ECC 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1ED9","titlecase_mapping":"","symbol":"\u1ED8"},7898:{"value":"1EDA","name":"LATIN CAPITAL LETTER O WITH HORN AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01A0 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EDB","titlecase_mapping":"","symbol":"\u1EDA"},7900:{"value":"1EDC","name":"LATIN CAPITAL LETTER O WITH HORN AND GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01A0 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EDD","titlecase_mapping":"","symbol":"\u1EDC"},7902:{"value":"1EDE","name":"LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01A0 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EDF","titlecase_mapping":"","symbol":"\u1EDE"},7904:{"value":"1EE0","name":"LATIN CAPITAL LETTER O WITH HORN AND TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01A0 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EE1","titlecase_mapping":"","symbol":"\u1EE0"},7906:{"value":"1EE2","name":"LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01A0 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EE3","titlecase_mapping":"","symbol":"\u1EE2"},7908:{"value":"1EE4","name":"LATIN CAPITAL LETTER U WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EE5","titlecase_mapping":"","symbol":"\u1EE4"},7910:{"value":"1EE6","name":"LATIN CAPITAL LETTER U WITH HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0055 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EE7","titlecase_mapping":"","symbol":"\u1EE6"},7912:{"value":"1EE8","name":"LATIN CAPITAL LETTER U WITH HORN AND ACUTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01AF 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EE9","titlecase_mapping":"","symbol":"\u1EE8"},7914:{"value":"1EEA","name":"LATIN CAPITAL LETTER U WITH HORN AND GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01AF 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EEB","titlecase_mapping":"","symbol":"\u1EEA"},7916:{"value":"1EEC","name":"LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01AF 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EED","titlecase_mapping":"","symbol":"\u1EEC"},7918:{"value":"1EEE","name":"LATIN CAPITAL LETTER U WITH HORN AND TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01AF 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EEF","titlecase_mapping":"","symbol":"\u1EEE"},7920:{"value":"1EF0","name":"LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"01AF 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EF1","titlecase_mapping":"","symbol":"\u1EF0"},7922:{"value":"1EF2","name":"LATIN CAPITAL LETTER Y WITH GRAVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0059 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EF3","titlecase_mapping":"","symbol":"\u1EF2"},7924:{"value":"1EF4","name":"LATIN CAPITAL LETTER Y WITH DOT BELOW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0059 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EF5","titlecase_mapping":"","symbol":"\u1EF4"},7926:{"value":"1EF6","name":"LATIN CAPITAL LETTER Y WITH HOOK ABOVE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0059 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EF7","titlecase_mapping":"","symbol":"\u1EF6"},7928:{"value":"1EF8","name":"LATIN CAPITAL LETTER Y WITH TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0059 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EF9","titlecase_mapping":"","symbol":"\u1EF8"},7930:{"value":"1EFA","name":"LATIN CAPITAL LETTER MIDDLE-WELSH LL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EFB","titlecase_mapping":"","symbol":"\u1EFA"},7932:{"value":"1EFC","name":"LATIN CAPITAL LETTER MIDDLE-WELSH V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EFD","titlecase_mapping":"","symbol":"\u1EFC"},7934:{"value":"1EFE","name":"LATIN CAPITAL LETTER Y WITH LOOP","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1EFF","titlecase_mapping":"","symbol":"\u1EFE"},7944:{"value":"1F08","name":"GREEK CAPITAL LETTER ALPHA WITH PSILI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0391 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F00","titlecase_mapping":"","symbol":"\u1F08"},7945:{"value":"1F09","name":"GREEK CAPITAL LETTER ALPHA WITH DASIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0391 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F01","titlecase_mapping":"","symbol":"\u1F09"},7946:{"value":"1F0A","name":"GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F08 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F02","titlecase_mapping":"","symbol":"\u1F0A"},7947:{"value":"1F0B","name":"GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F09 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F03","titlecase_mapping":"","symbol":"\u1F0B"},7948:{"value":"1F0C","name":"GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F08 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F04","titlecase_mapping":"","symbol":"\u1F0C"},7949:{"value":"1F0D","name":"GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F09 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F05","titlecase_mapping":"","symbol":"\u1F0D"},7950:{"value":"1F0E","name":"GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F08 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F06","titlecase_mapping":"","symbol":"\u1F0E"},7951:{"value":"1F0F","name":"GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F09 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F07","titlecase_mapping":"","symbol":"\u1F0F"},7960:{"value":"1F18","name":"GREEK CAPITAL LETTER EPSILON WITH PSILI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0395 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F10","titlecase_mapping":"","symbol":"\u1F18"},7961:{"value":"1F19","name":"GREEK CAPITAL LETTER EPSILON WITH DASIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0395 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F11","titlecase_mapping":"","symbol":"\u1F19"},7962:{"value":"1F1A","name":"GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F18 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F12","titlecase_mapping":"","symbol":"\u1F1A"},7963:{"value":"1F1B","name":"GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F19 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F13","titlecase_mapping":"","symbol":"\u1F1B"},7964:{"value":"1F1C","name":"GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F18 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F14","titlecase_mapping":"","symbol":"\u1F1C"},7965:{"value":"1F1D","name":"GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F19 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F15","titlecase_mapping":"","symbol":"\u1F1D"},7976:{"value":"1F28","name":"GREEK CAPITAL LETTER ETA WITH PSILI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0397 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F20","titlecase_mapping":"","symbol":"\u1F28"},7977:{"value":"1F29","name":"GREEK CAPITAL LETTER ETA WITH DASIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0397 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F21","titlecase_mapping":"","symbol":"\u1F29"},7978:{"value":"1F2A","name":"GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F28 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F22","titlecase_mapping":"","symbol":"\u1F2A"},7979:{"value":"1F2B","name":"GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F29 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F23","titlecase_mapping":"","symbol":"\u1F2B"},7980:{"value":"1F2C","name":"GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F28 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F24","titlecase_mapping":"","symbol":"\u1F2C"},7981:{"value":"1F2D","name":"GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F29 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F25","titlecase_mapping":"","symbol":"\u1F2D"},7982:{"value":"1F2E","name":"GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F28 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F26","titlecase_mapping":"","symbol":"\u1F2E"},7983:{"value":"1F2F","name":"GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F29 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F27","titlecase_mapping":"","symbol":"\u1F2F"},7992:{"value":"1F38","name":"GREEK CAPITAL LETTER IOTA WITH PSILI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0399 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F30","titlecase_mapping":"","symbol":"\u1F38"},7993:{"value":"1F39","name":"GREEK CAPITAL LETTER IOTA WITH DASIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0399 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F31","titlecase_mapping":"","symbol":"\u1F39"},7994:{"value":"1F3A","name":"GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F38 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F32","titlecase_mapping":"","symbol":"\u1F3A"},7995:{"value":"1F3B","name":"GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F39 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F33","titlecase_mapping":"","symbol":"\u1F3B"},7996:{"value":"1F3C","name":"GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F38 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F34","titlecase_mapping":"","symbol":"\u1F3C"},7997:{"value":"1F3D","name":"GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F39 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F35","titlecase_mapping":"","symbol":"\u1F3D"},7998:{"value":"1F3E","name":"GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F38 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F36","titlecase_mapping":"","symbol":"\u1F3E"},7999:{"value":"1F3F","name":"GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F39 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F37","titlecase_mapping":"","symbol":"\u1F3F"},8008:{"value":"1F48","name":"GREEK CAPITAL LETTER OMICRON WITH PSILI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"039F 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F40","titlecase_mapping":"","symbol":"\u1F48"},8009:{"value":"1F49","name":"GREEK CAPITAL LETTER OMICRON WITH DASIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"039F 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F41","titlecase_mapping":"","symbol":"\u1F49"},8010:{"value":"1F4A","name":"GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F48 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F42","titlecase_mapping":"","symbol":"\u1F4A"},8011:{"value":"1F4B","name":"GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F49 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F43","titlecase_mapping":"","symbol":"\u1F4B"},8012:{"value":"1F4C","name":"GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F48 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F44","titlecase_mapping":"","symbol":"\u1F4C"},8013:{"value":"1F4D","name":"GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F49 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F45","titlecase_mapping":"","symbol":"\u1F4D"},8025:{"value":"1F59","name":"GREEK CAPITAL LETTER UPSILON WITH DASIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A5 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F51","titlecase_mapping":"","symbol":"\u1F59"},8027:{"value":"1F5B","name":"GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F59 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F53","titlecase_mapping":"","symbol":"\u1F5B"},8029:{"value":"1F5D","name":"GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F59 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F55","titlecase_mapping":"","symbol":"\u1F5D"},8031:{"value":"1F5F","name":"GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F59 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F57","titlecase_mapping":"","symbol":"\u1F5F"},8040:{"value":"1F68","name":"GREEK CAPITAL LETTER OMEGA WITH PSILI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A9 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F60","titlecase_mapping":"","symbol":"\u1F68"},8041:{"value":"1F69","name":"GREEK CAPITAL LETTER OMEGA WITH DASIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A9 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F61","titlecase_mapping":"","symbol":"\u1F69"},8042:{"value":"1F6A","name":"GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F68 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F62","titlecase_mapping":"","symbol":"\u1F6A"},8043:{"value":"1F6B","name":"GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F69 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F63","titlecase_mapping":"","symbol":"\u1F6B"},8044:{"value":"1F6C","name":"GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F68 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F64","titlecase_mapping":"","symbol":"\u1F6C"},8045:{"value":"1F6D","name":"GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F69 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F65","titlecase_mapping":"","symbol":"\u1F6D"},8046:{"value":"1F6E","name":"GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F68 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F66","titlecase_mapping":"","symbol":"\u1F6E"},8047:{"value":"1F6F","name":"GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"1F69 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F67","titlecase_mapping":"","symbol":"\u1F6F"},8120:{"value":"1FB8","name":"GREEK CAPITAL LETTER ALPHA WITH VRACHY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0391 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FB0","titlecase_mapping":"","symbol":"\u1FB8"},8121:{"value":"1FB9","name":"GREEK CAPITAL LETTER ALPHA WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0391 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FB1","titlecase_mapping":"","symbol":"\u1FB9"},8122:{"value":"1FBA","name":"GREEK CAPITAL LETTER ALPHA WITH VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0391 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F70","titlecase_mapping":"","symbol":"\u1FBA"},8123:{"value":"1FBB","name":"GREEK CAPITAL LETTER ALPHA WITH OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0386","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F71","titlecase_mapping":"","symbol":"\u1FBB"},8136:{"value":"1FC8","name":"GREEK CAPITAL LETTER EPSILON WITH VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0395 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F72","titlecase_mapping":"","symbol":"\u1FC8"},8137:{"value":"1FC9","name":"GREEK CAPITAL LETTER EPSILON WITH OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0388","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F73","titlecase_mapping":"","symbol":"\u1FC9"},8138:{"value":"1FCA","name":"GREEK CAPITAL LETTER ETA WITH VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0397 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F74","titlecase_mapping":"","symbol":"\u1FCA"},8139:{"value":"1FCB","name":"GREEK CAPITAL LETTER ETA WITH OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0389","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F75","titlecase_mapping":"","symbol":"\u1FCB"},8152:{"value":"1FD8","name":"GREEK CAPITAL LETTER IOTA WITH VRACHY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0399 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FD0","titlecase_mapping":"","symbol":"\u1FD8"},8153:{"value":"1FD9","name":"GREEK CAPITAL LETTER IOTA WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0399 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FD1","titlecase_mapping":"","symbol":"\u1FD9"},8154:{"value":"1FDA","name":"GREEK CAPITAL LETTER IOTA WITH VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"0399 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F76","titlecase_mapping":"","symbol":"\u1FDA"},8155:{"value":"1FDB","name":"GREEK CAPITAL LETTER IOTA WITH OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"038A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F77","titlecase_mapping":"","symbol":"\u1FDB"},8168:{"value":"1FE8","name":"GREEK CAPITAL LETTER UPSILON WITH VRACHY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A5 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FE0","titlecase_mapping":"","symbol":"\u1FE8"},8169:{"value":"1FE9","name":"GREEK CAPITAL LETTER UPSILON WITH MACRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A5 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FE1","titlecase_mapping":"","symbol":"\u1FE9"},8170:{"value":"1FEA","name":"GREEK CAPITAL LETTER UPSILON WITH VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A5 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F7A","titlecase_mapping":"","symbol":"\u1FEA"},8171:{"value":"1FEB","name":"GREEK CAPITAL LETTER UPSILON WITH OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"038E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F7B","titlecase_mapping":"","symbol":"\u1FEB"},8172:{"value":"1FEC","name":"GREEK CAPITAL LETTER RHO WITH DASIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A1 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FE5","titlecase_mapping":"","symbol":"\u1FEC"},8184:{"value":"1FF8","name":"GREEK CAPITAL LETTER OMICRON WITH VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"039F 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F78","titlecase_mapping":"","symbol":"\u1FF8"},8185:{"value":"1FF9","name":"GREEK CAPITAL LETTER OMICRON WITH OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"038C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F79","titlecase_mapping":"","symbol":"\u1FF9"},8186:{"value":"1FFA","name":"GREEK CAPITAL LETTER OMEGA WITH VARIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A9 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F7C","titlecase_mapping":"","symbol":"\u1FFA"},8187:{"value":"1FFB","name":"GREEK CAPITAL LETTER OMEGA WITH OXIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"038F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F7D","titlecase_mapping":"","symbol":"\u1FFB"},8450:{"value":"2102","name":"DOUBLE-STRUCK CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"DOUBLE-STRUCK C","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2102"},8455:{"value":"2107","name":"EULER CONSTANT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<compat> 0190","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"EULERS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2107"},8459:{"value":"210B","name":"SCRIPT CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SCRIPT H","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210B"},8460:{"value":"210C","name":"BLACK-LETTER CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"BLACK-LETTER H","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210C"},8461:{"value":"210D","name":"DOUBLE-STRUCK CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"DOUBLE-STRUCK H","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210D"},8464:{"value":"2110","name":"SCRIPT CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SCRIPT I","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2110"},8465:{"value":"2111","name":"BLACK-LETTER CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"BLACK-LETTER I","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2111"},8466:{"value":"2112","name":"SCRIPT CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SCRIPT L","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2112"},8469:{"value":"2115","name":"DOUBLE-STRUCK CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"DOUBLE-STRUCK N","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2115"},8473:{"value":"2119","name":"DOUBLE-STRUCK CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"DOUBLE-STRUCK P","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2119"},8474:{"value":"211A","name":"DOUBLE-STRUCK CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"DOUBLE-STRUCK Q","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u211A"},8475:{"value":"211B","name":"SCRIPT CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SCRIPT R","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u211B"},8476:{"value":"211C","name":"BLACK-LETTER CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"BLACK-LETTER R","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u211C"},8477:{"value":"211D","name":"DOUBLE-STRUCK CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"DOUBLE-STRUCK R","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u211D"},8484:{"value":"2124","name":"DOUBLE-STRUCK CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"DOUBLE-STRUCK Z","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2124"},8486:{"value":"2126","name":"OHM SIGN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"03A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"OHM","comment":"","uppercase_mapping":"","lowercase_mapping":"03C9","titlecase_mapping":"","symbol":"\u2126"},8488:{"value":"2128","name":"BLACK-LETTER CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"BLACK-LETTER Z","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2128"},8490:{"value":"212A","name":"KELVIN SIGN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"DEGREES KELVIN","comment":"","uppercase_mapping":"","lowercase_mapping":"006B","titlecase_mapping":"","symbol":"\u212A"},8491:{"value":"212B","name":"ANGSTROM SIGN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"00C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ANGSTROM UNIT","comment":"","uppercase_mapping":"","lowercase_mapping":"00E5","titlecase_mapping":"","symbol":"\u212B"},8492:{"value":"212C","name":"SCRIPT CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SCRIPT B","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u212C"},8493:{"value":"212D","name":"BLACK-LETTER CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"BLACK-LETTER C","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u212D"},8496:{"value":"2130","name":"SCRIPT CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SCRIPT E","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2130"},8497:{"value":"2131","name":"SCRIPT CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SCRIPT F","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2131"},8498:{"value":"2132","name":"TURNED CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TURNED F","comment":"","uppercase_mapping":"","lowercase_mapping":"214E","titlecase_mapping":"","symbol":"\u2132"},8499:{"value":"2133","name":"SCRIPT CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SCRIPT M","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2133"},8510:{"value":"213E","name":"DOUBLE-STRUCK CAPITAL GAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0393","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u213E"},8511:{"value":"213F","name":"DOUBLE-STRUCK CAPITAL PI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u213F"},8517:{"value":"2145","name":"DOUBLE-STRUCK ITALIC CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2145"},8579:{"value":"2183","name":"ROMAN NUMERAL REVERSED ONE HUNDRED","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2184","titlecase_mapping":"","symbol":"\u2183"},11264:{"value":"2C00","name":"GLAGOLITIC CAPITAL LETTER AZU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C30","titlecase_mapping":"","symbol":"\u2C00"},11265:{"value":"2C01","name":"GLAGOLITIC CAPITAL LETTER BUKY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C31","titlecase_mapping":"","symbol":"\u2C01"},11266:{"value":"2C02","name":"GLAGOLITIC CAPITAL LETTER VEDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C32","titlecase_mapping":"","symbol":"\u2C02"},11267:{"value":"2C03","name":"GLAGOLITIC CAPITAL LETTER GLAGOLI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C33","titlecase_mapping":"","symbol":"\u2C03"},11268:{"value":"2C04","name":"GLAGOLITIC CAPITAL LETTER DOBRO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C34","titlecase_mapping":"","symbol":"\u2C04"},11269:{"value":"2C05","name":"GLAGOLITIC CAPITAL LETTER YESTU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C35","titlecase_mapping":"","symbol":"\u2C05"},11270:{"value":"2C06","name":"GLAGOLITIC CAPITAL LETTER ZHIVETE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C36","titlecase_mapping":"","symbol":"\u2C06"},11271:{"value":"2C07","name":"GLAGOLITIC CAPITAL LETTER DZELO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C37","titlecase_mapping":"","symbol":"\u2C07"},11272:{"value":"2C08","name":"GLAGOLITIC CAPITAL LETTER ZEMLJA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C38","titlecase_mapping":"","symbol":"\u2C08"},11273:{"value":"2C09","name":"GLAGOLITIC CAPITAL LETTER IZHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C39","titlecase_mapping":"","symbol":"\u2C09"},11274:{"value":"2C0A","name":"GLAGOLITIC CAPITAL LETTER INITIAL IZHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C3A","titlecase_mapping":"","symbol":"\u2C0A"},11275:{"value":"2C0B","name":"GLAGOLITIC CAPITAL LETTER I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C3B","titlecase_mapping":"","symbol":"\u2C0B"},11276:{"value":"2C0C","name":"GLAGOLITIC CAPITAL LETTER DJERVI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C3C","titlecase_mapping":"","symbol":"\u2C0C"},11277:{"value":"2C0D","name":"GLAGOLITIC CAPITAL LETTER KAKO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C3D","titlecase_mapping":"","symbol":"\u2C0D"},11278:{"value":"2C0E","name":"GLAGOLITIC CAPITAL LETTER LJUDIJE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C3E","titlecase_mapping":"","symbol":"\u2C0E"},11279:{"value":"2C0F","name":"GLAGOLITIC CAPITAL LETTER MYSLITE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C3F","titlecase_mapping":"","symbol":"\u2C0F"},11280:{"value":"2C10","name":"GLAGOLITIC CAPITAL LETTER NASHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C40","titlecase_mapping":"","symbol":"\u2C10"},11281:{"value":"2C11","name":"GLAGOLITIC CAPITAL LETTER ONU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C41","titlecase_mapping":"","symbol":"\u2C11"},11282:{"value":"2C12","name":"GLAGOLITIC CAPITAL LETTER POKOJI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C42","titlecase_mapping":"","symbol":"\u2C12"},11283:{"value":"2C13","name":"GLAGOLITIC CAPITAL LETTER RITSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C43","titlecase_mapping":"","symbol":"\u2C13"},11284:{"value":"2C14","name":"GLAGOLITIC CAPITAL LETTER SLOVO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C44","titlecase_mapping":"","symbol":"\u2C14"},11285:{"value":"2C15","name":"GLAGOLITIC CAPITAL LETTER TVRIDO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C45","titlecase_mapping":"","symbol":"\u2C15"},11286:{"value":"2C16","name":"GLAGOLITIC CAPITAL LETTER UKU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C46","titlecase_mapping":"","symbol":"\u2C16"},11287:{"value":"2C17","name":"GLAGOLITIC CAPITAL LETTER FRITU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C47","titlecase_mapping":"","symbol":"\u2C17"},11288:{"value":"2C18","name":"GLAGOLITIC CAPITAL LETTER HERU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C48","titlecase_mapping":"","symbol":"\u2C18"},11289:{"value":"2C19","name":"GLAGOLITIC CAPITAL LETTER OTU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C49","titlecase_mapping":"","symbol":"\u2C19"},11290:{"value":"2C1A","name":"GLAGOLITIC CAPITAL LETTER PE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C4A","titlecase_mapping":"","symbol":"\u2C1A"},11291:{"value":"2C1B","name":"GLAGOLITIC CAPITAL LETTER SHTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C4B","titlecase_mapping":"","symbol":"\u2C1B"},11292:{"value":"2C1C","name":"GLAGOLITIC CAPITAL LETTER TSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C4C","titlecase_mapping":"","symbol":"\u2C1C"},11293:{"value":"2C1D","name":"GLAGOLITIC CAPITAL LETTER CHRIVI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C4D","titlecase_mapping":"","symbol":"\u2C1D"},11294:{"value":"2C1E","name":"GLAGOLITIC CAPITAL LETTER SHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C4E","titlecase_mapping":"","symbol":"\u2C1E"},11295:{"value":"2C1F","name":"GLAGOLITIC CAPITAL LETTER YERU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C4F","titlecase_mapping":"","symbol":"\u2C1F"},11296:{"value":"2C20","name":"GLAGOLITIC CAPITAL LETTER YERI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C50","titlecase_mapping":"","symbol":"\u2C20"},11297:{"value":"2C21","name":"GLAGOLITIC CAPITAL LETTER YATI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C51","titlecase_mapping":"","symbol":"\u2C21"},11298:{"value":"2C22","name":"GLAGOLITIC CAPITAL LETTER SPIDERY HA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C52","titlecase_mapping":"","symbol":"\u2C22"},11299:{"value":"2C23","name":"GLAGOLITIC CAPITAL LETTER YU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C53","titlecase_mapping":"","symbol":"\u2C23"},11300:{"value":"2C24","name":"GLAGOLITIC CAPITAL LETTER SMALL YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C54","titlecase_mapping":"","symbol":"\u2C24"},11301:{"value":"2C25","name":"GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C55","titlecase_mapping":"","symbol":"\u2C25"},11302:{"value":"2C26","name":"GLAGOLITIC CAPITAL LETTER YO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C56","titlecase_mapping":"","symbol":"\u2C26"},11303:{"value":"2C27","name":"GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C57","titlecase_mapping":"","symbol":"\u2C27"},11304:{"value":"2C28","name":"GLAGOLITIC CAPITAL LETTER BIG YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C58","titlecase_mapping":"","symbol":"\u2C28"},11305:{"value":"2C29","name":"GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C59","titlecase_mapping":"","symbol":"\u2C29"},11306:{"value":"2C2A","name":"GLAGOLITIC CAPITAL LETTER FITA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C5A","titlecase_mapping":"","symbol":"\u2C2A"},11307:{"value":"2C2B","name":"GLAGOLITIC CAPITAL LETTER IZHITSA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C5B","titlecase_mapping":"","symbol":"\u2C2B"},11308:{"value":"2C2C","name":"GLAGOLITIC CAPITAL LETTER SHTAPIC","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C5C","titlecase_mapping":"","symbol":"\u2C2C"},11309:{"value":"2C2D","name":"GLAGOLITIC CAPITAL LETTER TROKUTASTI A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C5D","titlecase_mapping":"","symbol":"\u2C2D"},11310:{"value":"2C2E","name":"GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C5E","titlecase_mapping":"","symbol":"\u2C2E"},11360:{"value":"2C60","name":"LATIN CAPITAL LETTER L WITH DOUBLE BAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C61","titlecase_mapping":"","symbol":"\u2C60"},11362:{"value":"2C62","name":"LATIN CAPITAL LETTER L WITH MIDDLE TILDE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"026B","titlecase_mapping":"","symbol":"\u2C62"},11363:{"value":"2C63","name":"LATIN CAPITAL LETTER P WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1D7D","titlecase_mapping":"","symbol":"\u2C63"},11364:{"value":"2C64","name":"LATIN CAPITAL LETTER R WITH TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"027D","titlecase_mapping":"","symbol":"\u2C64"},11367:{"value":"2C67","name":"LATIN CAPITAL LETTER H WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C68","titlecase_mapping":"","symbol":"\u2C67"},11369:{"value":"2C69","name":"LATIN CAPITAL LETTER K WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C6A","titlecase_mapping":"","symbol":"\u2C69"},11371:{"value":"2C6B","name":"LATIN CAPITAL LETTER Z WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C6C","titlecase_mapping":"","symbol":"\u2C6B"},11373:{"value":"2C6D","name":"LATIN CAPITAL LETTER ALPHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0251","titlecase_mapping":"","symbol":"\u2C6D"},11374:{"value":"2C6E","name":"LATIN CAPITAL LETTER M WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0271","titlecase_mapping":"","symbol":"\u2C6E"},11375:{"value":"2C6F","name":"LATIN CAPITAL LETTER TURNED A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0250","titlecase_mapping":"","symbol":"\u2C6F"},11376:{"value":"2C70","name":"LATIN CAPITAL LETTER TURNED ALPHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0252","titlecase_mapping":"","symbol":"\u2C70"},11378:{"value":"2C72","name":"LATIN CAPITAL LETTER W WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C73","titlecase_mapping":"","symbol":"\u2C72"},11381:{"value":"2C75","name":"LATIN CAPITAL LETTER HALF H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C76","titlecase_mapping":"","symbol":"\u2C75"},11390:{"value":"2C7E","name":"LATIN CAPITAL LETTER S WITH SWASH TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"023F","titlecase_mapping":"","symbol":"\u2C7E"},11391:{"value":"2C7F","name":"LATIN CAPITAL LETTER Z WITH SWASH TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0240","titlecase_mapping":"","symbol":"\u2C7F"},11392:{"value":"2C80","name":"COPTIC CAPITAL LETTER ALFA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C81","titlecase_mapping":"","symbol":"\u2C80"},11394:{"value":"2C82","name":"COPTIC CAPITAL LETTER VIDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C83","titlecase_mapping":"","symbol":"\u2C82"},11396:{"value":"2C84","name":"COPTIC CAPITAL LETTER GAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C85","titlecase_mapping":"","symbol":"\u2C84"},11398:{"value":"2C86","name":"COPTIC CAPITAL LETTER DALDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C87","titlecase_mapping":"","symbol":"\u2C86"},11400:{"value":"2C88","name":"COPTIC CAPITAL LETTER EIE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C89","titlecase_mapping":"","symbol":"\u2C88"},11402:{"value":"2C8A","name":"COPTIC CAPITAL LETTER SOU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C8B","titlecase_mapping":"","symbol":"\u2C8A"},11404:{"value":"2C8C","name":"COPTIC CAPITAL LETTER ZATA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C8D","titlecase_mapping":"","symbol":"\u2C8C"},11406:{"value":"2C8E","name":"COPTIC CAPITAL LETTER HATE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C8F","titlecase_mapping":"","symbol":"\u2C8E"},11408:{"value":"2C90","name":"COPTIC CAPITAL LETTER THETHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C91","titlecase_mapping":"","symbol":"\u2C90"},11410:{"value":"2C92","name":"COPTIC CAPITAL LETTER IAUDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C93","titlecase_mapping":"","symbol":"\u2C92"},11412:{"value":"2C94","name":"COPTIC CAPITAL LETTER KAPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C95","titlecase_mapping":"","symbol":"\u2C94"},11414:{"value":"2C96","name":"COPTIC CAPITAL LETTER LAULA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C97","titlecase_mapping":"","symbol":"\u2C96"},11416:{"value":"2C98","name":"COPTIC CAPITAL LETTER MI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C99","titlecase_mapping":"","symbol":"\u2C98"},11418:{"value":"2C9A","name":"COPTIC CAPITAL LETTER NI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C9B","titlecase_mapping":"","symbol":"\u2C9A"},11420:{"value":"2C9C","name":"COPTIC CAPITAL LETTER KSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C9D","titlecase_mapping":"","symbol":"\u2C9C"},11422:{"value":"2C9E","name":"COPTIC CAPITAL LETTER O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2C9F","titlecase_mapping":"","symbol":"\u2C9E"},11424:{"value":"2CA0","name":"COPTIC CAPITAL LETTER PI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CA1","titlecase_mapping":"","symbol":"\u2CA0"},11426:{"value":"2CA2","name":"COPTIC CAPITAL LETTER RO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CA3","titlecase_mapping":"","symbol":"\u2CA2"},11428:{"value":"2CA4","name":"COPTIC CAPITAL LETTER SIMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CA5","titlecase_mapping":"","symbol":"\u2CA4"},11430:{"value":"2CA6","name":"COPTIC CAPITAL LETTER TAU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CA7","titlecase_mapping":"","symbol":"\u2CA6"},11432:{"value":"2CA8","name":"COPTIC CAPITAL LETTER UA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CA9","titlecase_mapping":"","symbol":"\u2CA8"},11434:{"value":"2CAA","name":"COPTIC CAPITAL LETTER FI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CAB","titlecase_mapping":"","symbol":"\u2CAA"},11436:{"value":"2CAC","name":"COPTIC CAPITAL LETTER KHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CAD","titlecase_mapping":"","symbol":"\u2CAC"},11438:{"value":"2CAE","name":"COPTIC CAPITAL LETTER PSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CAF","titlecase_mapping":"","symbol":"\u2CAE"},11440:{"value":"2CB0","name":"COPTIC CAPITAL LETTER OOU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CB1","titlecase_mapping":"","symbol":"\u2CB0"},11442:{"value":"2CB2","name":"COPTIC CAPITAL LETTER DIALECT-P ALEF","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CB3","titlecase_mapping":"","symbol":"\u2CB2"},11444:{"value":"2CB4","name":"COPTIC CAPITAL LETTER OLD COPTIC AIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CB5","titlecase_mapping":"","symbol":"\u2CB4"},11446:{"value":"2CB6","name":"COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CB7","titlecase_mapping":"","symbol":"\u2CB6"},11448:{"value":"2CB8","name":"COPTIC CAPITAL LETTER DIALECT-P KAPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CB9","titlecase_mapping":"","symbol":"\u2CB8"},11450:{"value":"2CBA","name":"COPTIC CAPITAL LETTER DIALECT-P NI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CBB","titlecase_mapping":"","symbol":"\u2CBA"},11452:{"value":"2CBC","name":"COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CBD","titlecase_mapping":"","symbol":"\u2CBC"},11454:{"value":"2CBE","name":"COPTIC CAPITAL LETTER OLD COPTIC OOU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CBF","titlecase_mapping":"","symbol":"\u2CBE"},11456:{"value":"2CC0","name":"COPTIC CAPITAL LETTER SAMPI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CC1","titlecase_mapping":"","symbol":"\u2CC0"},11458:{"value":"2CC2","name":"COPTIC CAPITAL LETTER CROSSED SHEI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CC3","titlecase_mapping":"","symbol":"\u2CC2"},11460:{"value":"2CC4","name":"COPTIC CAPITAL LETTER OLD COPTIC SHEI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CC5","titlecase_mapping":"","symbol":"\u2CC4"},11462:{"value":"2CC6","name":"COPTIC CAPITAL LETTER OLD COPTIC ESH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CC7","titlecase_mapping":"","symbol":"\u2CC6"},11464:{"value":"2CC8","name":"COPTIC CAPITAL LETTER AKHMIMIC KHEI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CC9","titlecase_mapping":"","symbol":"\u2CC8"},11466:{"value":"2CCA","name":"COPTIC CAPITAL LETTER DIALECT-P HORI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CCB","titlecase_mapping":"","symbol":"\u2CCA"},11468:{"value":"2CCC","name":"COPTIC CAPITAL LETTER OLD COPTIC HORI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CCD","titlecase_mapping":"","symbol":"\u2CCC"},11470:{"value":"2CCE","name":"COPTIC CAPITAL LETTER OLD COPTIC HA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CCF","titlecase_mapping":"","symbol":"\u2CCE"},11472:{"value":"2CD0","name":"COPTIC CAPITAL LETTER L-SHAPED HA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CD1","titlecase_mapping":"","symbol":"\u2CD0"},11474:{"value":"2CD2","name":"COPTIC CAPITAL LETTER OLD COPTIC HEI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CD3","titlecase_mapping":"","symbol":"\u2CD2"},11476:{"value":"2CD4","name":"COPTIC CAPITAL LETTER OLD COPTIC HAT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CD5","titlecase_mapping":"","symbol":"\u2CD4"},11478:{"value":"2CD6","name":"COPTIC CAPITAL LETTER OLD COPTIC GANGIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CD7","titlecase_mapping":"","symbol":"\u2CD6"},11480:{"value":"2CD8","name":"COPTIC CAPITAL LETTER OLD COPTIC DJA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CD9","titlecase_mapping":"","symbol":"\u2CD8"},11482:{"value":"2CDA","name":"COPTIC CAPITAL LETTER OLD COPTIC SHIMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CDB","titlecase_mapping":"","symbol":"\u2CDA"},11484:{"value":"2CDC","name":"COPTIC CAPITAL LETTER OLD NUBIAN SHIMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CDD","titlecase_mapping":"","symbol":"\u2CDC"},11486:{"value":"2CDE","name":"COPTIC CAPITAL LETTER OLD NUBIAN NGI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CDF","titlecase_mapping":"","symbol":"\u2CDE"},11488:{"value":"2CE0","name":"COPTIC CAPITAL LETTER OLD NUBIAN NYI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CE1","titlecase_mapping":"","symbol":"\u2CE0"},11490:{"value":"2CE2","name":"COPTIC CAPITAL LETTER OLD NUBIAN WAU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CE3","titlecase_mapping":"","symbol":"\u2CE2"},11499:{"value":"2CEB","name":"COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CEC","titlecase_mapping":"","symbol":"\u2CEB"},11501:{"value":"2CED","name":"COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CEE","titlecase_mapping":"","symbol":"\u2CED"},11506:{"value":"2CF2","name":"COPTIC CAPITAL LETTER BOHAIRIC KHEI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2CF3","titlecase_mapping":"","symbol":"\u2CF2"},42560:{"value":"A640","name":"CYRILLIC CAPITAL LETTER ZEMLYA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A641","titlecase_mapping":"","symbol":"\uA640"},42562:{"value":"A642","name":"CYRILLIC CAPITAL LETTER DZELO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A643","titlecase_mapping":"","symbol":"\uA642"},42564:{"value":"A644","name":"CYRILLIC CAPITAL LETTER REVERSED DZE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A645","titlecase_mapping":"","symbol":"\uA644"},42566:{"value":"A646","name":"CYRILLIC CAPITAL LETTER IOTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A647","titlecase_mapping":"","symbol":"\uA646"},42568:{"value":"A648","name":"CYRILLIC CAPITAL LETTER DJERV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A649","titlecase_mapping":"","symbol":"\uA648"},42570:{"value":"A64A","name":"CYRILLIC CAPITAL LETTER MONOGRAPH UK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A64B","titlecase_mapping":"","symbol":"\uA64A"},42572:{"value":"A64C","name":"CYRILLIC CAPITAL LETTER BROAD OMEGA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A64D","titlecase_mapping":"","symbol":"\uA64C"},42574:{"value":"A64E","name":"CYRILLIC CAPITAL LETTER NEUTRAL YER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A64F","titlecase_mapping":"","symbol":"\uA64E"},42576:{"value":"A650","name":"CYRILLIC CAPITAL LETTER YERU WITH BACK YER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A651","titlecase_mapping":"","symbol":"\uA650"},42578:{"value":"A652","name":"CYRILLIC CAPITAL LETTER IOTIFIED YAT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A653","titlecase_mapping":"","symbol":"\uA652"},42580:{"value":"A654","name":"CYRILLIC CAPITAL LETTER REVERSED YU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A655","titlecase_mapping":"","symbol":"\uA654"},42582:{"value":"A656","name":"CYRILLIC CAPITAL LETTER IOTIFIED A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A657","titlecase_mapping":"","symbol":"\uA656"},42584:{"value":"A658","name":"CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A659","titlecase_mapping":"","symbol":"\uA658"},42586:{"value":"A65A","name":"CYRILLIC CAPITAL LETTER BLENDED YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A65B","titlecase_mapping":"","symbol":"\uA65A"},42588:{"value":"A65C","name":"CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A65D","titlecase_mapping":"","symbol":"\uA65C"},42590:{"value":"A65E","name":"CYRILLIC CAPITAL LETTER YN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A65F","titlecase_mapping":"","symbol":"\uA65E"},42592:{"value":"A660","name":"CYRILLIC CAPITAL LETTER REVERSED TSE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A661","titlecase_mapping":"","symbol":"\uA660"},42594:{"value":"A662","name":"CYRILLIC CAPITAL LETTER SOFT DE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A663","titlecase_mapping":"","symbol":"\uA662"},42596:{"value":"A664","name":"CYRILLIC CAPITAL LETTER SOFT EL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A665","titlecase_mapping":"","symbol":"\uA664"},42598:{"value":"A666","name":"CYRILLIC CAPITAL LETTER SOFT EM","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A667","titlecase_mapping":"","symbol":"\uA666"},42600:{"value":"A668","name":"CYRILLIC CAPITAL LETTER MONOCULAR O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A669","titlecase_mapping":"","symbol":"\uA668"},42602:{"value":"A66A","name":"CYRILLIC CAPITAL LETTER BINOCULAR O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A66B","titlecase_mapping":"","symbol":"\uA66A"},42604:{"value":"A66C","name":"CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A66D","titlecase_mapping":"","symbol":"\uA66C"},42624:{"value":"A680","name":"CYRILLIC CAPITAL LETTER DWE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A681","titlecase_mapping":"","symbol":"\uA680"},42626:{"value":"A682","name":"CYRILLIC CAPITAL LETTER DZWE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A683","titlecase_mapping":"","symbol":"\uA682"},42628:{"value":"A684","name":"CYRILLIC CAPITAL LETTER ZHWE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A685","titlecase_mapping":"","symbol":"\uA684"},42630:{"value":"A686","name":"CYRILLIC CAPITAL LETTER CCHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A687","titlecase_mapping":"","symbol":"\uA686"},42632:{"value":"A688","name":"CYRILLIC CAPITAL LETTER DZZE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A689","titlecase_mapping":"","symbol":"\uA688"},42634:{"value":"A68A","name":"CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A68B","titlecase_mapping":"","symbol":"\uA68A"},42636:{"value":"A68C","name":"CYRILLIC CAPITAL LETTER TWE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A68D","titlecase_mapping":"","symbol":"\uA68C"},42638:{"value":"A68E","name":"CYRILLIC CAPITAL LETTER TSWE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A68F","titlecase_mapping":"","symbol":"\uA68E"},42640:{"value":"A690","name":"CYRILLIC CAPITAL LETTER TSSE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A691","titlecase_mapping":"","symbol":"\uA690"},42642:{"value":"A692","name":"CYRILLIC CAPITAL LETTER TCHE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A693","titlecase_mapping":"","symbol":"\uA692"},42644:{"value":"A694","name":"CYRILLIC CAPITAL LETTER HWE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A695","titlecase_mapping":"","symbol":"\uA694"},42646:{"value":"A696","name":"CYRILLIC CAPITAL LETTER SHWE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A697","titlecase_mapping":"","symbol":"\uA696"},42648:{"value":"A698","name":"CYRILLIC CAPITAL LETTER DOUBLE O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A699","titlecase_mapping":"","symbol":"\uA698"},42650:{"value":"A69A","name":"CYRILLIC CAPITAL LETTER CROSSED O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A69B","titlecase_mapping":"","symbol":"\uA69A"},42786:{"value":"A722","name":"LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A723","titlecase_mapping":"","symbol":"\uA722"},42788:{"value":"A724","name":"LATIN CAPITAL LETTER EGYPTOLOGICAL AIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A725","titlecase_mapping":"","symbol":"\uA724"},42790:{"value":"A726","name":"LATIN CAPITAL LETTER HENG","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A727","titlecase_mapping":"","symbol":"\uA726"},42792:{"value":"A728","name":"LATIN CAPITAL LETTER TZ","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A729","titlecase_mapping":"","symbol":"\uA728"},42794:{"value":"A72A","name":"LATIN CAPITAL LETTER TRESILLO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A72B","titlecase_mapping":"","symbol":"\uA72A"},42796:{"value":"A72C","name":"LATIN CAPITAL LETTER CUATRILLO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A72D","titlecase_mapping":"","symbol":"\uA72C"},42798:{"value":"A72E","name":"LATIN CAPITAL LETTER CUATRILLO WITH COMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A72F","titlecase_mapping":"","symbol":"\uA72E"},42802:{"value":"A732","name":"LATIN CAPITAL LETTER AA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A733","titlecase_mapping":"","symbol":"\uA732"},42804:{"value":"A734","name":"LATIN CAPITAL LETTER AO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A735","titlecase_mapping":"","symbol":"\uA734"},42806:{"value":"A736","name":"LATIN CAPITAL LETTER AU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A737","titlecase_mapping":"","symbol":"\uA736"},42808:{"value":"A738","name":"LATIN CAPITAL LETTER AV","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A739","titlecase_mapping":"","symbol":"\uA738"},42810:{"value":"A73A","name":"LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A73B","titlecase_mapping":"","symbol":"\uA73A"},42812:{"value":"A73C","name":"LATIN CAPITAL LETTER AY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A73D","titlecase_mapping":"","symbol":"\uA73C"},42814:{"value":"A73E","name":"LATIN CAPITAL LETTER REVERSED C WITH DOT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A73F","titlecase_mapping":"","symbol":"\uA73E"},42816:{"value":"A740","name":"LATIN CAPITAL LETTER K WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A741","titlecase_mapping":"","symbol":"\uA740"},42818:{"value":"A742","name":"LATIN CAPITAL LETTER K WITH DIAGONAL STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A743","titlecase_mapping":"","symbol":"\uA742"},42820:{"value":"A744","name":"LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A745","titlecase_mapping":"","symbol":"\uA744"},42822:{"value":"A746","name":"LATIN CAPITAL LETTER BROKEN L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A747","titlecase_mapping":"","symbol":"\uA746"},42824:{"value":"A748","name":"LATIN CAPITAL LETTER L WITH HIGH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A749","titlecase_mapping":"","symbol":"\uA748"},42826:{"value":"A74A","name":"LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A74B","titlecase_mapping":"","symbol":"\uA74A"},42828:{"value":"A74C","name":"LATIN CAPITAL LETTER O WITH LOOP","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A74D","titlecase_mapping":"","symbol":"\uA74C"},42830:{"value":"A74E","name":"LATIN CAPITAL LETTER OO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A74F","titlecase_mapping":"","symbol":"\uA74E"},42832:{"value":"A750","name":"LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A751","titlecase_mapping":"","symbol":"\uA750"},42834:{"value":"A752","name":"LATIN CAPITAL LETTER P WITH FLOURISH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A753","titlecase_mapping":"","symbol":"\uA752"},42836:{"value":"A754","name":"LATIN CAPITAL LETTER P WITH SQUIRREL TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A755","titlecase_mapping":"","symbol":"\uA754"},42838:{"value":"A756","name":"LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A757","titlecase_mapping":"","symbol":"\uA756"},42840:{"value":"A758","name":"LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A759","titlecase_mapping":"","symbol":"\uA758"},42842:{"value":"A75A","name":"LATIN CAPITAL LETTER R ROTUNDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A75B","titlecase_mapping":"","symbol":"\uA75A"},42844:{"value":"A75C","name":"LATIN CAPITAL LETTER RUM ROTUNDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A75D","titlecase_mapping":"","symbol":"\uA75C"},42846:{"value":"A75E","name":"LATIN CAPITAL LETTER V WITH DIAGONAL STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A75F","titlecase_mapping":"","symbol":"\uA75E"},42848:{"value":"A760","name":"LATIN CAPITAL LETTER VY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A761","titlecase_mapping":"","symbol":"\uA760"},42850:{"value":"A762","name":"LATIN CAPITAL LETTER VISIGOTHIC Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A763","titlecase_mapping":"","symbol":"\uA762"},42852:{"value":"A764","name":"LATIN CAPITAL LETTER THORN WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A765","titlecase_mapping":"","symbol":"\uA764"},42854:{"value":"A766","name":"LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A767","titlecase_mapping":"","symbol":"\uA766"},42856:{"value":"A768","name":"LATIN CAPITAL LETTER VEND","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A769","titlecase_mapping":"","symbol":"\uA768"},42858:{"value":"A76A","name":"LATIN CAPITAL LETTER ET","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A76B","titlecase_mapping":"","symbol":"\uA76A"},42860:{"value":"A76C","name":"LATIN CAPITAL LETTER IS","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A76D","titlecase_mapping":"","symbol":"\uA76C"},42862:{"value":"A76E","name":"LATIN CAPITAL LETTER CON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A76F","titlecase_mapping":"","symbol":"\uA76E"},42873:{"value":"A779","name":"LATIN CAPITAL LETTER INSULAR D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A77A","titlecase_mapping":"","symbol":"\uA779"},42875:{"value":"A77B","name":"LATIN CAPITAL LETTER INSULAR F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A77C","titlecase_mapping":"","symbol":"\uA77B"},42877:{"value":"A77D","name":"LATIN CAPITAL LETTER INSULAR G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1D79","titlecase_mapping":"","symbol":"\uA77D"},42878:{"value":"A77E","name":"LATIN CAPITAL LETTER TURNED INSULAR G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A77F","titlecase_mapping":"","symbol":"\uA77E"},42880:{"value":"A780","name":"LATIN CAPITAL LETTER TURNED L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A781","titlecase_mapping":"","symbol":"\uA780"},42882:{"value":"A782","name":"LATIN CAPITAL LETTER INSULAR R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A783","titlecase_mapping":"","symbol":"\uA782"},42884:{"value":"A784","name":"LATIN CAPITAL LETTER INSULAR S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A785","titlecase_mapping":"","symbol":"\uA784"},42886:{"value":"A786","name":"LATIN CAPITAL LETTER INSULAR T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A787","titlecase_mapping":"","symbol":"\uA786"},42891:{"value":"A78B","name":"LATIN CAPITAL LETTER SALTILLO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A78C","titlecase_mapping":"","symbol":"\uA78B"},42893:{"value":"A78D","name":"LATIN CAPITAL LETTER TURNED H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0265","titlecase_mapping":"","symbol":"\uA78D"},42896:{"value":"A790","name":"LATIN CAPITAL LETTER N WITH DESCENDER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A791","titlecase_mapping":"","symbol":"\uA790"},42898:{"value":"A792","name":"LATIN CAPITAL LETTER C WITH BAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A793","titlecase_mapping":"","symbol":"\uA792"},42902:{"value":"A796","name":"LATIN CAPITAL LETTER B WITH FLOURISH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A797","titlecase_mapping":"","symbol":"\uA796"},42904:{"value":"A798","name":"LATIN CAPITAL LETTER F WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A799","titlecase_mapping":"","symbol":"\uA798"},42906:{"value":"A79A","name":"LATIN CAPITAL LETTER VOLAPUK AE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A79B","titlecase_mapping":"","symbol":"\uA79A"},42908:{"value":"A79C","name":"LATIN CAPITAL LETTER VOLAPUK OE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A79D","titlecase_mapping":"","symbol":"\uA79C"},42910:{"value":"A79E","name":"LATIN CAPITAL LETTER VOLAPUK UE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A79F","titlecase_mapping":"","symbol":"\uA79E"},42912:{"value":"A7A0","name":"LATIN CAPITAL LETTER G WITH OBLIQUE STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A7A1","titlecase_mapping":"","symbol":"\uA7A0"},42914:{"value":"A7A2","name":"LATIN CAPITAL LETTER K WITH OBLIQUE STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A7A3","titlecase_mapping":"","symbol":"\uA7A2"},42916:{"value":"A7A4","name":"LATIN CAPITAL LETTER N WITH OBLIQUE STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A7A5","titlecase_mapping":"","symbol":"\uA7A4"},42918:{"value":"A7A6","name":"LATIN CAPITAL LETTER R WITH OBLIQUE STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A7A7","titlecase_mapping":"","symbol":"\uA7A6"},42920:{"value":"A7A8","name":"LATIN CAPITAL LETTER S WITH OBLIQUE STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A7A9","titlecase_mapping":"","symbol":"\uA7A8"},42922:{"value":"A7AA","name":"LATIN CAPITAL LETTER H WITH HOOK","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0266","titlecase_mapping":"","symbol":"\uA7AA"},42923:{"value":"A7AB","name":"LATIN CAPITAL LETTER REVERSED OPEN E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"025C","titlecase_mapping":"","symbol":"\uA7AB"},42924:{"value":"A7AC","name":"LATIN CAPITAL LETTER SCRIPT G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0261","titlecase_mapping":"","symbol":"\uA7AC"},42925:{"value":"A7AD","name":"LATIN CAPITAL LETTER L WITH BELT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"026C","titlecase_mapping":"","symbol":"\uA7AD"},42926:{"value":"A7AE","name":"LATIN CAPITAL LETTER SMALL CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"026A","titlecase_mapping":"","symbol":"\uA7AE"},42928:{"value":"A7B0","name":"LATIN CAPITAL LETTER TURNED K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"029E","titlecase_mapping":"","symbol":"\uA7B0"},42929:{"value":"A7B1","name":"LATIN CAPITAL LETTER TURNED T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"0287","titlecase_mapping":"","symbol":"\uA7B1"},42930:{"value":"A7B2","name":"LATIN CAPITAL LETTER J WITH CROSSED-TAIL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"029D","titlecase_mapping":"","symbol":"\uA7B2"},42931:{"value":"A7B3","name":"LATIN CAPITAL LETTER CHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"AB53","titlecase_mapping":"","symbol":"\uA7B3"},42932:{"value":"A7B4","name":"LATIN CAPITAL LETTER BETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A7B5","titlecase_mapping":"","symbol":"\uA7B4"},42934:{"value":"A7B6","name":"LATIN CAPITAL LETTER OMEGA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A7B7","titlecase_mapping":"","symbol":"\uA7B6"},42936:{"value":"A7B8","name":"LATIN CAPITAL LETTER U WITH STROKE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"A7B9","titlecase_mapping":"","symbol":"\uA7B8"},65313:{"value":"FF21","name":"FULLWIDTH LATIN CAPITAL LETTER A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF41","titlecase_mapping":"","symbol":"\uFF21"},65314:{"value":"FF22","name":"FULLWIDTH LATIN CAPITAL LETTER B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF42","titlecase_mapping":"","symbol":"\uFF22"},65315:{"value":"FF23","name":"FULLWIDTH LATIN CAPITAL LETTER C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF43","titlecase_mapping":"","symbol":"\uFF23"},65316:{"value":"FF24","name":"FULLWIDTH LATIN CAPITAL LETTER D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF44","titlecase_mapping":"","symbol":"\uFF24"},65317:{"value":"FF25","name":"FULLWIDTH LATIN CAPITAL LETTER E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF45","titlecase_mapping":"","symbol":"\uFF25"},65318:{"value":"FF26","name":"FULLWIDTH LATIN CAPITAL LETTER F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF46","titlecase_mapping":"","symbol":"\uFF26"},65319:{"value":"FF27","name":"FULLWIDTH LATIN CAPITAL LETTER G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF47","titlecase_mapping":"","symbol":"\uFF27"},65320:{"value":"FF28","name":"FULLWIDTH LATIN CAPITAL LETTER H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF48","titlecase_mapping":"","symbol":"\uFF28"},65321:{"value":"FF29","name":"FULLWIDTH LATIN CAPITAL LETTER I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF49","titlecase_mapping":"","symbol":"\uFF29"},65322:{"value":"FF2A","name":"FULLWIDTH LATIN CAPITAL LETTER J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF4A","titlecase_mapping":"","symbol":"\uFF2A"},65323:{"value":"FF2B","name":"FULLWIDTH LATIN CAPITAL LETTER K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF4B","titlecase_mapping":"","symbol":"\uFF2B"},65324:{"value":"FF2C","name":"FULLWIDTH LATIN CAPITAL LETTER L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF4C","titlecase_mapping":"","symbol":"\uFF2C"},65325:{"value":"FF2D","name":"FULLWIDTH LATIN CAPITAL LETTER M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF4D","titlecase_mapping":"","symbol":"\uFF2D"},65326:{"value":"FF2E","name":"FULLWIDTH LATIN CAPITAL LETTER N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF4E","titlecase_mapping":"","symbol":"\uFF2E"},65327:{"value":"FF2F","name":"FULLWIDTH LATIN CAPITAL LETTER O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF4F","titlecase_mapping":"","symbol":"\uFF2F"},65328:{"value":"FF30","name":"FULLWIDTH LATIN CAPITAL LETTER P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF50","titlecase_mapping":"","symbol":"\uFF30"},65329:{"value":"FF31","name":"FULLWIDTH LATIN CAPITAL LETTER Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF51","titlecase_mapping":"","symbol":"\uFF31"},65330:{"value":"FF32","name":"FULLWIDTH LATIN CAPITAL LETTER R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF52","titlecase_mapping":"","symbol":"\uFF32"},65331:{"value":"FF33","name":"FULLWIDTH LATIN CAPITAL LETTER S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF53","titlecase_mapping":"","symbol":"\uFF33"},65332:{"value":"FF34","name":"FULLWIDTH LATIN CAPITAL LETTER T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF54","titlecase_mapping":"","symbol":"\uFF34"},65333:{"value":"FF35","name":"FULLWIDTH LATIN CAPITAL LETTER U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF55","titlecase_mapping":"","symbol":"\uFF35"},65334:{"value":"FF36","name":"FULLWIDTH LATIN CAPITAL LETTER V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF56","titlecase_mapping":"","symbol":"\uFF36"},65335:{"value":"FF37","name":"FULLWIDTH LATIN CAPITAL LETTER W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF57","titlecase_mapping":"","symbol":"\uFF37"},65336:{"value":"FF38","name":"FULLWIDTH LATIN CAPITAL LETTER X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF58","titlecase_mapping":"","symbol":"\uFF38"},65337:{"value":"FF39","name":"FULLWIDTH LATIN CAPITAL LETTER Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF59","titlecase_mapping":"","symbol":"\uFF39"},65338:{"value":"FF3A","name":"FULLWIDTH LATIN CAPITAL LETTER Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<wide> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"FF5A","titlecase_mapping":"","symbol":"\uFF3A"},66560:{"value":"10400","name":"DESERET CAPITAL LETTER LONG I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10428","titlecase_mapping":"","symbol":"\u0400"},66561:{"value":"10401","name":"DESERET CAPITAL LETTER LONG E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10429","titlecase_mapping":"","symbol":"\u0401"},66562:{"value":"10402","name":"DESERET CAPITAL LETTER LONG A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1042A","titlecase_mapping":"","symbol":"\u0402"},66563:{"value":"10403","name":"DESERET CAPITAL LETTER LONG AH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1042B","titlecase_mapping":"","symbol":"\u0403"},66564:{"value":"10404","name":"DESERET CAPITAL LETTER LONG O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1042C","titlecase_mapping":"","symbol":"\u0404"},66565:{"value":"10405","name":"DESERET CAPITAL LETTER LONG OO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1042D","titlecase_mapping":"","symbol":"\u0405"},66566:{"value":"10406","name":"DESERET CAPITAL LETTER SHORT I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1042E","titlecase_mapping":"","symbol":"\u0406"},66567:{"value":"10407","name":"DESERET CAPITAL LETTER SHORT E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1042F","titlecase_mapping":"","symbol":"\u0407"},66568:{"value":"10408","name":"DESERET CAPITAL LETTER SHORT A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10430","titlecase_mapping":"","symbol":"\u0408"},66569:{"value":"10409","name":"DESERET CAPITAL LETTER SHORT AH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10431","titlecase_mapping":"","symbol":"\u0409"},66570:{"value":"1040A","name":"DESERET CAPITAL LETTER SHORT O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10432","titlecase_mapping":"","symbol":"\u040A"},66571:{"value":"1040B","name":"DESERET CAPITAL LETTER SHORT OO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10433","titlecase_mapping":"","symbol":"\u040B"},66572:{"value":"1040C","name":"DESERET CAPITAL LETTER AY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10434","titlecase_mapping":"","symbol":"\u040C"},66573:{"value":"1040D","name":"DESERET CAPITAL LETTER OW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10435","titlecase_mapping":"","symbol":"\u040D"},66574:{"value":"1040E","name":"DESERET CAPITAL LETTER WU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10436","titlecase_mapping":"","symbol":"\u040E"},66575:{"value":"1040F","name":"DESERET CAPITAL LETTER YEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10437","titlecase_mapping":"","symbol":"\u040F"},66576:{"value":"10410","name":"DESERET CAPITAL LETTER H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10438","titlecase_mapping":"","symbol":"\u0410"},66577:{"value":"10411","name":"DESERET CAPITAL LETTER PEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10439","titlecase_mapping":"","symbol":"\u0411"},66578:{"value":"10412","name":"DESERET CAPITAL LETTER BEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1043A","titlecase_mapping":"","symbol":"\u0412"},66579:{"value":"10413","name":"DESERET CAPITAL LETTER TEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1043B","titlecase_mapping":"","symbol":"\u0413"},66580:{"value":"10414","name":"DESERET CAPITAL LETTER DEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1043C","titlecase_mapping":"","symbol":"\u0414"},66581:{"value":"10415","name":"DESERET CAPITAL LETTER CHEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1043D","titlecase_mapping":"","symbol":"\u0415"},66582:{"value":"10416","name":"DESERET CAPITAL LETTER JEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1043E","titlecase_mapping":"","symbol":"\u0416"},66583:{"value":"10417","name":"DESERET CAPITAL LETTER KAY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1043F","titlecase_mapping":"","symbol":"\u0417"},66584:{"value":"10418","name":"DESERET CAPITAL LETTER GAY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10440","titlecase_mapping":"","symbol":"\u0418"},66585:{"value":"10419","name":"DESERET CAPITAL LETTER EF","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10441","titlecase_mapping":"","symbol":"\u0419"},66586:{"value":"1041A","name":"DESERET CAPITAL LETTER VEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10442","titlecase_mapping":"","symbol":"\u041A"},66587:{"value":"1041B","name":"DESERET CAPITAL LETTER ETH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10443","titlecase_mapping":"","symbol":"\u041B"},66588:{"value":"1041C","name":"DESERET CAPITAL LETTER THEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10444","titlecase_mapping":"","symbol":"\u041C"},66589:{"value":"1041D","name":"DESERET CAPITAL LETTER ES","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10445","titlecase_mapping":"","symbol":"\u041D"},66590:{"value":"1041E","name":"DESERET CAPITAL LETTER ZEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10446","titlecase_mapping":"","symbol":"\u041E"},66591:{"value":"1041F","name":"DESERET CAPITAL LETTER ESH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10447","titlecase_mapping":"","symbol":"\u041F"},66592:{"value":"10420","name":"DESERET CAPITAL LETTER ZHEE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10448","titlecase_mapping":"","symbol":"\u0420"},66593:{"value":"10421","name":"DESERET CAPITAL LETTER ER","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10449","titlecase_mapping":"","symbol":"\u0421"},66594:{"value":"10422","name":"DESERET CAPITAL LETTER EL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1044A","titlecase_mapping":"","symbol":"\u0422"},66595:{"value":"10423","name":"DESERET CAPITAL LETTER EM","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1044B","titlecase_mapping":"","symbol":"\u0423"},66596:{"value":"10424","name":"DESERET CAPITAL LETTER EN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1044C","titlecase_mapping":"","symbol":"\u0424"},66597:{"value":"10425","name":"DESERET CAPITAL LETTER ENG","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1044D","titlecase_mapping":"","symbol":"\u0425"},66598:{"value":"10426","name":"DESERET CAPITAL LETTER OI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1044E","titlecase_mapping":"","symbol":"\u0426"},66599:{"value":"10427","name":"DESERET CAPITAL LETTER EW","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1044F","titlecase_mapping":"","symbol":"\u0427"},66736:{"value":"104B0","name":"OSAGE CAPITAL LETTER A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104D8","titlecase_mapping":"","symbol":"\u04B0"},66737:{"value":"104B1","name":"OSAGE CAPITAL LETTER AI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104D9","titlecase_mapping":"","symbol":"\u04B1"},66738:{"value":"104B2","name":"OSAGE CAPITAL LETTER AIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104DA","titlecase_mapping":"","symbol":"\u04B2"},66739:{"value":"104B3","name":"OSAGE CAPITAL LETTER AH","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104DB","titlecase_mapping":"","symbol":"\u04B3"},66740:{"value":"104B4","name":"OSAGE CAPITAL LETTER BRA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104DC","titlecase_mapping":"","symbol":"\u04B4"},66741:{"value":"104B5","name":"OSAGE CAPITAL LETTER CHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104DD","titlecase_mapping":"","symbol":"\u04B5"},66742:{"value":"104B6","name":"OSAGE CAPITAL LETTER EHCHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104DE","titlecase_mapping":"","symbol":"\u04B6"},66743:{"value":"104B7","name":"OSAGE CAPITAL LETTER E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104DF","titlecase_mapping":"","symbol":"\u04B7"},66744:{"value":"104B8","name":"OSAGE CAPITAL LETTER EIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104E0","titlecase_mapping":"","symbol":"\u04B8"},66745:{"value":"104B9","name":"OSAGE CAPITAL LETTER HA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104E1","titlecase_mapping":"","symbol":"\u04B9"},66746:{"value":"104BA","name":"OSAGE CAPITAL LETTER HYA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104E2","titlecase_mapping":"","symbol":"\u04BA"},66747:{"value":"104BB","name":"OSAGE CAPITAL LETTER I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104E3","titlecase_mapping":"","symbol":"\u04BB"},66748:{"value":"104BC","name":"OSAGE CAPITAL LETTER KA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104E4","titlecase_mapping":"","symbol":"\u04BC"},66749:{"value":"104BD","name":"OSAGE CAPITAL LETTER EHKA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104E5","titlecase_mapping":"","symbol":"\u04BD"},66750:{"value":"104BE","name":"OSAGE CAPITAL LETTER KYA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104E6","titlecase_mapping":"","symbol":"\u04BE"},66751:{"value":"104BF","name":"OSAGE CAPITAL LETTER LA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104E7","titlecase_mapping":"","symbol":"\u04BF"},66752:{"value":"104C0","name":"OSAGE CAPITAL LETTER MA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104E8","titlecase_mapping":"","symbol":"\u04C0"},66753:{"value":"104C1","name":"OSAGE CAPITAL LETTER NA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104E9","titlecase_mapping":"","symbol":"\u04C1"},66754:{"value":"104C2","name":"OSAGE CAPITAL LETTER O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104EA","titlecase_mapping":"","symbol":"\u04C2"},66755:{"value":"104C3","name":"OSAGE CAPITAL LETTER OIN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104EB","titlecase_mapping":"","symbol":"\u04C3"},66756:{"value":"104C4","name":"OSAGE CAPITAL LETTER PA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104EC","titlecase_mapping":"","symbol":"\u04C4"},66757:{"value":"104C5","name":"OSAGE CAPITAL LETTER EHPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104ED","titlecase_mapping":"","symbol":"\u04C5"},66758:{"value":"104C6","name":"OSAGE CAPITAL LETTER SA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104EE","titlecase_mapping":"","symbol":"\u04C6"},66759:{"value":"104C7","name":"OSAGE CAPITAL LETTER SHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104EF","titlecase_mapping":"","symbol":"\u04C7"},66760:{"value":"104C8","name":"OSAGE CAPITAL LETTER TA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104F0","titlecase_mapping":"","symbol":"\u04C8"},66761:{"value":"104C9","name":"OSAGE CAPITAL LETTER EHTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104F1","titlecase_mapping":"","symbol":"\u04C9"},66762:{"value":"104CA","name":"OSAGE CAPITAL LETTER TSA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104F2","titlecase_mapping":"","symbol":"\u04CA"},66763:{"value":"104CB","name":"OSAGE CAPITAL LETTER EHTSA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104F3","titlecase_mapping":"","symbol":"\u04CB"},66764:{"value":"104CC","name":"OSAGE CAPITAL LETTER TSHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104F4","titlecase_mapping":"","symbol":"\u04CC"},66765:{"value":"104CD","name":"OSAGE CAPITAL LETTER DHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104F5","titlecase_mapping":"","symbol":"\u04CD"},66766:{"value":"104CE","name":"OSAGE CAPITAL LETTER U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104F6","titlecase_mapping":"","symbol":"\u04CE"},66767:{"value":"104CF","name":"OSAGE CAPITAL LETTER WA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104F7","titlecase_mapping":"","symbol":"\u04CF"},66768:{"value":"104D0","name":"OSAGE CAPITAL LETTER KHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104F8","titlecase_mapping":"","symbol":"\u04D0"},66769:{"value":"104D1","name":"OSAGE CAPITAL LETTER GHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104F9","titlecase_mapping":"","symbol":"\u04D1"},66770:{"value":"104D2","name":"OSAGE CAPITAL LETTER ZA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104FA","titlecase_mapping":"","symbol":"\u04D2"},66771:{"value":"104D3","name":"OSAGE CAPITAL LETTER ZHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"104FB","titlecase_mapping":"","symbol":"\u04D3"},68736:{"value":"10C80","name":"OLD HUNGARIAN CAPITAL LETTER A","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CC0","titlecase_mapping":"","symbol":"\u0C80"},68737:{"value":"10C81","name":"OLD HUNGARIAN CAPITAL LETTER AA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CC1","titlecase_mapping":"","symbol":"\u0C81"},68738:{"value":"10C82","name":"OLD HUNGARIAN CAPITAL LETTER EB","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CC2","titlecase_mapping":"","symbol":"\u0C82"},68739:{"value":"10C83","name":"OLD HUNGARIAN CAPITAL LETTER AMB","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CC3","titlecase_mapping":"","symbol":"\u0C83"},68740:{"value":"10C84","name":"OLD HUNGARIAN CAPITAL LETTER EC","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CC4","titlecase_mapping":"","symbol":"\u0C84"},68741:{"value":"10C85","name":"OLD HUNGARIAN CAPITAL LETTER ENC","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CC5","titlecase_mapping":"","symbol":"\u0C85"},68742:{"value":"10C86","name":"OLD HUNGARIAN CAPITAL LETTER ECS","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CC6","titlecase_mapping":"","symbol":"\u0C86"},68743:{"value":"10C87","name":"OLD HUNGARIAN CAPITAL LETTER ED","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CC7","titlecase_mapping":"","symbol":"\u0C87"},68744:{"value":"10C88","name":"OLD HUNGARIAN CAPITAL LETTER AND","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CC8","titlecase_mapping":"","symbol":"\u0C88"},68745:{"value":"10C89","name":"OLD HUNGARIAN CAPITAL LETTER E","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CC9","titlecase_mapping":"","symbol":"\u0C89"},68746:{"value":"10C8A","name":"OLD HUNGARIAN CAPITAL LETTER CLOSE E","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CCA","titlecase_mapping":"","symbol":"\u0C8A"},68747:{"value":"10C8B","name":"OLD HUNGARIAN CAPITAL LETTER EE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CCB","titlecase_mapping":"","symbol":"\u0C8B"},68748:{"value":"10C8C","name":"OLD HUNGARIAN CAPITAL LETTER EF","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CCC","titlecase_mapping":"","symbol":"\u0C8C"},68749:{"value":"10C8D","name":"OLD HUNGARIAN CAPITAL LETTER EG","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CCD","titlecase_mapping":"","symbol":"\u0C8D"},68750:{"value":"10C8E","name":"OLD HUNGARIAN CAPITAL LETTER EGY","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CCE","titlecase_mapping":"","symbol":"\u0C8E"},68751:{"value":"10C8F","name":"OLD HUNGARIAN CAPITAL LETTER EH","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CCF","titlecase_mapping":"","symbol":"\u0C8F"},68752:{"value":"10C90","name":"OLD HUNGARIAN CAPITAL LETTER I","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CD0","titlecase_mapping":"","symbol":"\u0C90"},68753:{"value":"10C91","name":"OLD HUNGARIAN CAPITAL LETTER II","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CD1","titlecase_mapping":"","symbol":"\u0C91"},68754:{"value":"10C92","name":"OLD HUNGARIAN CAPITAL LETTER EJ","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CD2","titlecase_mapping":"","symbol":"\u0C92"},68755:{"value":"10C93","name":"OLD HUNGARIAN CAPITAL LETTER EK","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CD3","titlecase_mapping":"","symbol":"\u0C93"},68756:{"value":"10C94","name":"OLD HUNGARIAN CAPITAL LETTER AK","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CD4","titlecase_mapping":"","symbol":"\u0C94"},68757:{"value":"10C95","name":"OLD HUNGARIAN CAPITAL LETTER UNK","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CD5","titlecase_mapping":"","symbol":"\u0C95"},68758:{"value":"10C96","name":"OLD HUNGARIAN CAPITAL LETTER EL","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CD6","titlecase_mapping":"","symbol":"\u0C96"},68759:{"value":"10C97","name":"OLD HUNGARIAN CAPITAL LETTER ELY","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CD7","titlecase_mapping":"","symbol":"\u0C97"},68760:{"value":"10C98","name":"OLD HUNGARIAN CAPITAL LETTER EM","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CD8","titlecase_mapping":"","symbol":"\u0C98"},68761:{"value":"10C99","name":"OLD HUNGARIAN CAPITAL LETTER EN","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CD9","titlecase_mapping":"","symbol":"\u0C99"},68762:{"value":"10C9A","name":"OLD HUNGARIAN CAPITAL LETTER ENY","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CDA","titlecase_mapping":"","symbol":"\u0C9A"},68763:{"value":"10C9B","name":"OLD HUNGARIAN CAPITAL LETTER O","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CDB","titlecase_mapping":"","symbol":"\u0C9B"},68764:{"value":"10C9C","name":"OLD HUNGARIAN CAPITAL LETTER OO","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CDC","titlecase_mapping":"","symbol":"\u0C9C"},68765:{"value":"10C9D","name":"OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CDD","titlecase_mapping":"","symbol":"\u0C9D"},68766:{"value":"10C9E","name":"OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CDE","titlecase_mapping":"","symbol":"\u0C9E"},68767:{"value":"10C9F","name":"OLD HUNGARIAN CAPITAL LETTER OEE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CDF","titlecase_mapping":"","symbol":"\u0C9F"},68768:{"value":"10CA0","name":"OLD HUNGARIAN CAPITAL LETTER EP","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CE0","titlecase_mapping":"","symbol":"\u0CA0"},68769:{"value":"10CA1","name":"OLD HUNGARIAN CAPITAL LETTER EMP","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CE1","titlecase_mapping":"","symbol":"\u0CA1"},68770:{"value":"10CA2","name":"OLD HUNGARIAN CAPITAL LETTER ER","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CE2","titlecase_mapping":"","symbol":"\u0CA2"},68771:{"value":"10CA3","name":"OLD HUNGARIAN CAPITAL LETTER SHORT ER","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CE3","titlecase_mapping":"","symbol":"\u0CA3"},68772:{"value":"10CA4","name":"OLD HUNGARIAN CAPITAL LETTER ES","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CE4","titlecase_mapping":"","symbol":"\u0CA4"},68773:{"value":"10CA5","name":"OLD HUNGARIAN CAPITAL LETTER ESZ","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CE5","titlecase_mapping":"","symbol":"\u0CA5"},68774:{"value":"10CA6","name":"OLD HUNGARIAN CAPITAL LETTER ET","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CE6","titlecase_mapping":"","symbol":"\u0CA6"},68775:{"value":"10CA7","name":"OLD HUNGARIAN CAPITAL LETTER ENT","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CE7","titlecase_mapping":"","symbol":"\u0CA7"},68776:{"value":"10CA8","name":"OLD HUNGARIAN CAPITAL LETTER ETY","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CE8","titlecase_mapping":"","symbol":"\u0CA8"},68777:{"value":"10CA9","name":"OLD HUNGARIAN CAPITAL LETTER ECH","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CE9","titlecase_mapping":"","symbol":"\u0CA9"},68778:{"value":"10CAA","name":"OLD HUNGARIAN CAPITAL LETTER U","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CEA","titlecase_mapping":"","symbol":"\u0CAA"},68779:{"value":"10CAB","name":"OLD HUNGARIAN CAPITAL LETTER UU","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CEB","titlecase_mapping":"","symbol":"\u0CAB"},68780:{"value":"10CAC","name":"OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CEC","titlecase_mapping":"","symbol":"\u0CAC"},68781:{"value":"10CAD","name":"OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CED","titlecase_mapping":"","symbol":"\u0CAD"},68782:{"value":"10CAE","name":"OLD HUNGARIAN CAPITAL LETTER EV","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CEE","titlecase_mapping":"","symbol":"\u0CAE"},68783:{"value":"10CAF","name":"OLD HUNGARIAN CAPITAL LETTER EZ","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CEF","titlecase_mapping":"","symbol":"\u0CAF"},68784:{"value":"10CB0","name":"OLD HUNGARIAN CAPITAL LETTER EZS","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CF0","titlecase_mapping":"","symbol":"\u0CB0"},68785:{"value":"10CB1","name":"OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CF1","titlecase_mapping":"","symbol":"\u0CB1"},68786:{"value":"10CB2","name":"OLD HUNGARIAN CAPITAL LETTER US","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"10CF2","titlecase_mapping":"","symbol":"\u0CB2"},71840:{"value":"118A0","name":"WARANG CITI CAPITAL LETTER NGAA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118C0","titlecase_mapping":"","symbol":"\u18A0"},71841:{"value":"118A1","name":"WARANG CITI CAPITAL LETTER A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118C1","titlecase_mapping":"","symbol":"\u18A1"},71842:{"value":"118A2","name":"WARANG CITI CAPITAL LETTER WI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118C2","titlecase_mapping":"","symbol":"\u18A2"},71843:{"value":"118A3","name":"WARANG CITI CAPITAL LETTER YU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118C3","titlecase_mapping":"","symbol":"\u18A3"},71844:{"value":"118A4","name":"WARANG CITI CAPITAL LETTER YA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118C4","titlecase_mapping":"","symbol":"\u18A4"},71845:{"value":"118A5","name":"WARANG CITI CAPITAL LETTER YO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118C5","titlecase_mapping":"","symbol":"\u18A5"},71846:{"value":"118A6","name":"WARANG CITI CAPITAL LETTER II","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118C6","titlecase_mapping":"","symbol":"\u18A6"},71847:{"value":"118A7","name":"WARANG CITI CAPITAL LETTER UU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118C7","titlecase_mapping":"","symbol":"\u18A7"},71848:{"value":"118A8","name":"WARANG CITI CAPITAL LETTER E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118C8","titlecase_mapping":"","symbol":"\u18A8"},71849:{"value":"118A9","name":"WARANG CITI CAPITAL LETTER O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118C9","titlecase_mapping":"","symbol":"\u18A9"},71850:{"value":"118AA","name":"WARANG CITI CAPITAL LETTER ANG","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118CA","titlecase_mapping":"","symbol":"\u18AA"},71851:{"value":"118AB","name":"WARANG CITI CAPITAL LETTER GA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118CB","titlecase_mapping":"","symbol":"\u18AB"},71852:{"value":"118AC","name":"WARANG CITI CAPITAL LETTER KO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118CC","titlecase_mapping":"","symbol":"\u18AC"},71853:{"value":"118AD","name":"WARANG CITI CAPITAL LETTER ENY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118CD","titlecase_mapping":"","symbol":"\u18AD"},71854:{"value":"118AE","name":"WARANG CITI CAPITAL LETTER YUJ","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118CE","titlecase_mapping":"","symbol":"\u18AE"},71855:{"value":"118AF","name":"WARANG CITI CAPITAL LETTER UC","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118CF","titlecase_mapping":"","symbol":"\u18AF"},71856:{"value":"118B0","name":"WARANG CITI CAPITAL LETTER ENN","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118D0","titlecase_mapping":"","symbol":"\u18B0"},71857:{"value":"118B1","name":"WARANG CITI CAPITAL LETTER ODD","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118D1","titlecase_mapping":"","symbol":"\u18B1"},71858:{"value":"118B2","name":"WARANG CITI CAPITAL LETTER TTE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118D2","titlecase_mapping":"","symbol":"\u18B2"},71859:{"value":"118B3","name":"WARANG CITI CAPITAL LETTER NUNG","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118D3","titlecase_mapping":"","symbol":"\u18B3"},71860:{"value":"118B4","name":"WARANG CITI CAPITAL LETTER DA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118D4","titlecase_mapping":"","symbol":"\u18B4"},71861:{"value":"118B5","name":"WARANG CITI CAPITAL LETTER AT","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118D5","titlecase_mapping":"","symbol":"\u18B5"},71862:{"value":"118B6","name":"WARANG CITI CAPITAL LETTER AM","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118D6","titlecase_mapping":"","symbol":"\u18B6"},71863:{"value":"118B7","name":"WARANG CITI CAPITAL LETTER BU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118D7","titlecase_mapping":"","symbol":"\u18B7"},71864:{"value":"118B8","name":"WARANG CITI CAPITAL LETTER PU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118D8","titlecase_mapping":"","symbol":"\u18B8"},71865:{"value":"118B9","name":"WARANG CITI CAPITAL LETTER HIYO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118D9","titlecase_mapping":"","symbol":"\u18B9"},71866:{"value":"118BA","name":"WARANG CITI CAPITAL LETTER HOLO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118DA","titlecase_mapping":"","symbol":"\u18BA"},71867:{"value":"118BB","name":"WARANG CITI CAPITAL LETTER HORR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118DB","titlecase_mapping":"","symbol":"\u18BB"},71868:{"value":"118BC","name":"WARANG CITI CAPITAL LETTER HAR","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118DC","titlecase_mapping":"","symbol":"\u18BC"},71869:{"value":"118BD","name":"WARANG CITI CAPITAL LETTER SSUU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118DD","titlecase_mapping":"","symbol":"\u18BD"},71870:{"value":"118BE","name":"WARANG CITI CAPITAL LETTER SII","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118DE","titlecase_mapping":"","symbol":"\u18BE"},71871:{"value":"118BF","name":"WARANG CITI CAPITAL LETTER VIYO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"118DF","titlecase_mapping":"","symbol":"\u18BF"},93760:{"value":"16E40","name":"MEDEFAIDRIN CAPITAL LETTER M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E60","titlecase_mapping":"","symbol":"\u6E40"},93761:{"value":"16E41","name":"MEDEFAIDRIN CAPITAL LETTER S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E61","titlecase_mapping":"","symbol":"\u6E41"},93762:{"value":"16E42","name":"MEDEFAIDRIN CAPITAL LETTER V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E62","titlecase_mapping":"","symbol":"\u6E42"},93763:{"value":"16E43","name":"MEDEFAIDRIN CAPITAL LETTER W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E63","titlecase_mapping":"","symbol":"\u6E43"},93764:{"value":"16E44","name":"MEDEFAIDRIN CAPITAL LETTER ATIU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E64","titlecase_mapping":"","symbol":"\u6E44"},93765:{"value":"16E45","name":"MEDEFAIDRIN CAPITAL LETTER Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E65","titlecase_mapping":"","symbol":"\u6E45"},93766:{"value":"16E46","name":"MEDEFAIDRIN CAPITAL LETTER KP","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E66","titlecase_mapping":"","symbol":"\u6E46"},93767:{"value":"16E47","name":"MEDEFAIDRIN CAPITAL LETTER P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E67","titlecase_mapping":"","symbol":"\u6E47"},93768:{"value":"16E48","name":"MEDEFAIDRIN CAPITAL LETTER T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E68","titlecase_mapping":"","symbol":"\u6E48"},93769:{"value":"16E49","name":"MEDEFAIDRIN CAPITAL LETTER G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E69","titlecase_mapping":"","symbol":"\u6E49"},93770:{"value":"16E4A","name":"MEDEFAIDRIN CAPITAL LETTER F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E6A","titlecase_mapping":"","symbol":"\u6E4A"},93771:{"value":"16E4B","name":"MEDEFAIDRIN CAPITAL LETTER I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E6B","titlecase_mapping":"","symbol":"\u6E4B"},93772:{"value":"16E4C","name":"MEDEFAIDRIN CAPITAL LETTER K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E6C","titlecase_mapping":"","symbol":"\u6E4C"},93773:{"value":"16E4D","name":"MEDEFAIDRIN CAPITAL LETTER A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E6D","titlecase_mapping":"","symbol":"\u6E4D"},93774:{"value":"16E4E","name":"MEDEFAIDRIN CAPITAL LETTER J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E6E","titlecase_mapping":"","symbol":"\u6E4E"},93775:{"value":"16E4F","name":"MEDEFAIDRIN CAPITAL LETTER E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E6F","titlecase_mapping":"","symbol":"\u6E4F"},93776:{"value":"16E50","name":"MEDEFAIDRIN CAPITAL LETTER B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E70","titlecase_mapping":"","symbol":"\u6E50"},93777:{"value":"16E51","name":"MEDEFAIDRIN CAPITAL LETTER C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E71","titlecase_mapping":"","symbol":"\u6E51"},93778:{"value":"16E52","name":"MEDEFAIDRIN CAPITAL LETTER U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E72","titlecase_mapping":"","symbol":"\u6E52"},93779:{"value":"16E53","name":"MEDEFAIDRIN CAPITAL LETTER YU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E73","titlecase_mapping":"","symbol":"\u6E53"},93780:{"value":"16E54","name":"MEDEFAIDRIN CAPITAL LETTER L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E74","titlecase_mapping":"","symbol":"\u6E54"},93781:{"value":"16E55","name":"MEDEFAIDRIN CAPITAL LETTER Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E75","titlecase_mapping":"","symbol":"\u6E55"},93782:{"value":"16E56","name":"MEDEFAIDRIN CAPITAL LETTER HP","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E76","titlecase_mapping":"","symbol":"\u6E56"},93783:{"value":"16E57","name":"MEDEFAIDRIN CAPITAL LETTER NY","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E77","titlecase_mapping":"","symbol":"\u6E57"},93784:{"value":"16E58","name":"MEDEFAIDRIN CAPITAL LETTER X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E78","titlecase_mapping":"","symbol":"\u6E58"},93785:{"value":"16E59","name":"MEDEFAIDRIN CAPITAL LETTER D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E79","titlecase_mapping":"","symbol":"\u6E59"},93786:{"value":"16E5A","name":"MEDEFAIDRIN CAPITAL LETTER OE","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E7A","titlecase_mapping":"","symbol":"\u6E5A"},93787:{"value":"16E5B","name":"MEDEFAIDRIN CAPITAL LETTER N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E7B","titlecase_mapping":"","symbol":"\u6E5B"},93788:{"value":"16E5C","name":"MEDEFAIDRIN CAPITAL LETTER R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E7C","titlecase_mapping":"","symbol":"\u6E5C"},93789:{"value":"16E5D","name":"MEDEFAIDRIN CAPITAL LETTER O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E7D","titlecase_mapping":"","symbol":"\u6E5D"},93790:{"value":"16E5E","name":"MEDEFAIDRIN CAPITAL LETTER AI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E7E","titlecase_mapping":"","symbol":"\u6E5E"},93791:{"value":"16E5F","name":"MEDEFAIDRIN CAPITAL LETTER Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"16E7F","titlecase_mapping":"","symbol":"\u6E5F"},119808:{"value":"1D400","name":"MATHEMATICAL BOLD CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD400"},119809:{"value":"1D401","name":"MATHEMATICAL BOLD CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD401"},119810:{"value":"1D402","name":"MATHEMATICAL BOLD CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD402"},119811:{"value":"1D403","name":"MATHEMATICAL BOLD CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD403"},119812:{"value":"1D404","name":"MATHEMATICAL BOLD CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD404"},119813:{"value":"1D405","name":"MATHEMATICAL BOLD CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD405"},119814:{"value":"1D406","name":"MATHEMATICAL BOLD CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD406"},119815:{"value":"1D407","name":"MATHEMATICAL BOLD CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD407"},119816:{"value":"1D408","name":"MATHEMATICAL BOLD CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD408"},119817:{"value":"1D409","name":"MATHEMATICAL BOLD CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD409"},119818:{"value":"1D40A","name":"MATHEMATICAL BOLD CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD40A"},119819:{"value":"1D40B","name":"MATHEMATICAL BOLD CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD40B"},119820:{"value":"1D40C","name":"MATHEMATICAL BOLD CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD40C"},119821:{"value":"1D40D","name":"MATHEMATICAL BOLD CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD40D"},119822:{"value":"1D40E","name":"MATHEMATICAL BOLD CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD40E"},119823:{"value":"1D40F","name":"MATHEMATICAL BOLD CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD40F"},119824:{"value":"1D410","name":"MATHEMATICAL BOLD CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD410"},119825:{"value":"1D411","name":"MATHEMATICAL BOLD CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD411"},119826:{"value":"1D412","name":"MATHEMATICAL BOLD CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD412"},119827:{"value":"1D413","name":"MATHEMATICAL BOLD CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD413"},119828:{"value":"1D414","name":"MATHEMATICAL BOLD CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD414"},119829:{"value":"1D415","name":"MATHEMATICAL BOLD CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD415"},119830:{"value":"1D416","name":"MATHEMATICAL BOLD CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD416"},119831:{"value":"1D417","name":"MATHEMATICAL BOLD CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD417"},119832:{"value":"1D418","name":"MATHEMATICAL BOLD CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD418"},119833:{"value":"1D419","name":"MATHEMATICAL BOLD CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD419"},119860:{"value":"1D434","name":"MATHEMATICAL ITALIC CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD434"},119861:{"value":"1D435","name":"MATHEMATICAL ITALIC CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD435"},119862:{"value":"1D436","name":"MATHEMATICAL ITALIC CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD436"},119863:{"value":"1D437","name":"MATHEMATICAL ITALIC CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD437"},119864:{"value":"1D438","name":"MATHEMATICAL ITALIC CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD438"},119865:{"value":"1D439","name":"MATHEMATICAL ITALIC CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD439"},119866:{"value":"1D43A","name":"MATHEMATICAL ITALIC CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD43A"},119867:{"value":"1D43B","name":"MATHEMATICAL ITALIC CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD43B"},119868:{"value":"1D43C","name":"MATHEMATICAL ITALIC CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD43C"},119869:{"value":"1D43D","name":"MATHEMATICAL ITALIC CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD43D"},119870:{"value":"1D43E","name":"MATHEMATICAL ITALIC CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD43E"},119871:{"value":"1D43F","name":"MATHEMATICAL ITALIC CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD43F"},119872:{"value":"1D440","name":"MATHEMATICAL ITALIC CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD440"},119873:{"value":"1D441","name":"MATHEMATICAL ITALIC CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD441"},119874:{"value":"1D442","name":"MATHEMATICAL ITALIC CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD442"},119875:{"value":"1D443","name":"MATHEMATICAL ITALIC CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD443"},119876:{"value":"1D444","name":"MATHEMATICAL ITALIC CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD444"},119877:{"value":"1D445","name":"MATHEMATICAL ITALIC CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD445"},119878:{"value":"1D446","name":"MATHEMATICAL ITALIC CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD446"},119879:{"value":"1D447","name":"MATHEMATICAL ITALIC CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD447"},119880:{"value":"1D448","name":"MATHEMATICAL ITALIC CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD448"},119881:{"value":"1D449","name":"MATHEMATICAL ITALIC CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD449"},119882:{"value":"1D44A","name":"MATHEMATICAL ITALIC CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD44A"},119883:{"value":"1D44B","name":"MATHEMATICAL ITALIC CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD44B"},119884:{"value":"1D44C","name":"MATHEMATICAL ITALIC CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD44C"},119885:{"value":"1D44D","name":"MATHEMATICAL ITALIC CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD44D"},119912:{"value":"1D468","name":"MATHEMATICAL BOLD ITALIC CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD468"},119913:{"value":"1D469","name":"MATHEMATICAL BOLD ITALIC CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD469"},119914:{"value":"1D46A","name":"MATHEMATICAL BOLD ITALIC CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD46A"},119915:{"value":"1D46B","name":"MATHEMATICAL BOLD ITALIC CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD46B"},119916:{"value":"1D46C","name":"MATHEMATICAL BOLD ITALIC CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD46C"},119917:{"value":"1D46D","name":"MATHEMATICAL BOLD ITALIC CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD46D"},119918:{"value":"1D46E","name":"MATHEMATICAL BOLD ITALIC CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD46E"},119919:{"value":"1D46F","name":"MATHEMATICAL BOLD ITALIC CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD46F"},119920:{"value":"1D470","name":"MATHEMATICAL BOLD ITALIC CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD470"},119921:{"value":"1D471","name":"MATHEMATICAL BOLD ITALIC CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD471"},119922:{"value":"1D472","name":"MATHEMATICAL BOLD ITALIC CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD472"},119923:{"value":"1D473","name":"MATHEMATICAL BOLD ITALIC CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD473"},119924:{"value":"1D474","name":"MATHEMATICAL BOLD ITALIC CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD474"},119925:{"value":"1D475","name":"MATHEMATICAL BOLD ITALIC CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD475"},119926:{"value":"1D476","name":"MATHEMATICAL BOLD ITALIC CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD476"},119927:{"value":"1D477","name":"MATHEMATICAL BOLD ITALIC CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD477"},119928:{"value":"1D478","name":"MATHEMATICAL BOLD ITALIC CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD478"},119929:{"value":"1D479","name":"MATHEMATICAL BOLD ITALIC CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD479"},119930:{"value":"1D47A","name":"MATHEMATICAL BOLD ITALIC CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD47A"},119931:{"value":"1D47B","name":"MATHEMATICAL BOLD ITALIC CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD47B"},119932:{"value":"1D47C","name":"MATHEMATICAL BOLD ITALIC CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD47C"},119933:{"value":"1D47D","name":"MATHEMATICAL BOLD ITALIC CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD47D"},119934:{"value":"1D47E","name":"MATHEMATICAL BOLD ITALIC CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD47E"},119935:{"value":"1D47F","name":"MATHEMATICAL BOLD ITALIC CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD47F"},119936:{"value":"1D480","name":"MATHEMATICAL BOLD ITALIC CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD480"},119937:{"value":"1D481","name":"MATHEMATICAL BOLD ITALIC CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD481"},119964:{"value":"1D49C","name":"MATHEMATICAL SCRIPT CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD49C"},119966:{"value":"1D49E","name":"MATHEMATICAL SCRIPT CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD49E"},119967:{"value":"1D49F","name":"MATHEMATICAL SCRIPT CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD49F"},119970:{"value":"1D4A2","name":"MATHEMATICAL SCRIPT CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4A2"},119973:{"value":"1D4A5","name":"MATHEMATICAL SCRIPT CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4A5"},119974:{"value":"1D4A6","name":"MATHEMATICAL SCRIPT CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4A6"},119977:{"value":"1D4A9","name":"MATHEMATICAL SCRIPT CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4A9"},119978:{"value":"1D4AA","name":"MATHEMATICAL SCRIPT CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4AA"},119979:{"value":"1D4AB","name":"MATHEMATICAL SCRIPT CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4AB"},119980:{"value":"1D4AC","name":"MATHEMATICAL SCRIPT CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4AC"},119982:{"value":"1D4AE","name":"MATHEMATICAL SCRIPT CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4AE"},119983:{"value":"1D4AF","name":"MATHEMATICAL SCRIPT CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4AF"},119984:{"value":"1D4B0","name":"MATHEMATICAL SCRIPT CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4B0"},119985:{"value":"1D4B1","name":"MATHEMATICAL SCRIPT CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4B1"},119986:{"value":"1D4B2","name":"MATHEMATICAL SCRIPT CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4B2"},119987:{"value":"1D4B3","name":"MATHEMATICAL SCRIPT CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4B3"},119988:{"value":"1D4B4","name":"MATHEMATICAL SCRIPT CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4B4"},119989:{"value":"1D4B5","name":"MATHEMATICAL SCRIPT CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4B5"},120016:{"value":"1D4D0","name":"MATHEMATICAL BOLD SCRIPT CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4D0"},120017:{"value":"1D4D1","name":"MATHEMATICAL BOLD SCRIPT CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4D1"},120018:{"value":"1D4D2","name":"MATHEMATICAL BOLD SCRIPT CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4D2"},120019:{"value":"1D4D3","name":"MATHEMATICAL BOLD SCRIPT CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4D3"},120020:{"value":"1D4D4","name":"MATHEMATICAL BOLD SCRIPT CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4D4"},120021:{"value":"1D4D5","name":"MATHEMATICAL BOLD SCRIPT CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4D5"},120022:{"value":"1D4D6","name":"MATHEMATICAL BOLD SCRIPT CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4D6"},120023:{"value":"1D4D7","name":"MATHEMATICAL BOLD SCRIPT CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4D7"},120024:{"value":"1D4D8","name":"MATHEMATICAL BOLD SCRIPT CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4D8"},120025:{"value":"1D4D9","name":"MATHEMATICAL BOLD SCRIPT CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4D9"},120026:{"value":"1D4DA","name":"MATHEMATICAL BOLD SCRIPT CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4DA"},120027:{"value":"1D4DB","name":"MATHEMATICAL BOLD SCRIPT CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4DB"},120028:{"value":"1D4DC","name":"MATHEMATICAL BOLD SCRIPT CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4DC"},120029:{"value":"1D4DD","name":"MATHEMATICAL BOLD SCRIPT CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4DD"},120030:{"value":"1D4DE","name":"MATHEMATICAL BOLD SCRIPT CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4DE"},120031:{"value":"1D4DF","name":"MATHEMATICAL BOLD SCRIPT CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4DF"},120032:{"value":"1D4E0","name":"MATHEMATICAL BOLD SCRIPT CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4E0"},120033:{"value":"1D4E1","name":"MATHEMATICAL BOLD SCRIPT CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4E1"},120034:{"value":"1D4E2","name":"MATHEMATICAL BOLD SCRIPT CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4E2"},120035:{"value":"1D4E3","name":"MATHEMATICAL BOLD SCRIPT CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4E3"},120036:{"value":"1D4E4","name":"MATHEMATICAL BOLD SCRIPT CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4E4"},120037:{"value":"1D4E5","name":"MATHEMATICAL BOLD SCRIPT CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4E5"},120038:{"value":"1D4E6","name":"MATHEMATICAL BOLD SCRIPT CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4E6"},120039:{"value":"1D4E7","name":"MATHEMATICAL BOLD SCRIPT CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4E7"},120040:{"value":"1D4E8","name":"MATHEMATICAL BOLD SCRIPT CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4E8"},120041:{"value":"1D4E9","name":"MATHEMATICAL BOLD SCRIPT CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4E9"},120068:{"value":"1D504","name":"MATHEMATICAL FRAKTUR CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD504"},120069:{"value":"1D505","name":"MATHEMATICAL FRAKTUR CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD505"},120071:{"value":"1D507","name":"MATHEMATICAL FRAKTUR CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD507"},120072:{"value":"1D508","name":"MATHEMATICAL FRAKTUR CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD508"},120073:{"value":"1D509","name":"MATHEMATICAL FRAKTUR CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD509"},120074:{"value":"1D50A","name":"MATHEMATICAL FRAKTUR CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD50A"},120077:{"value":"1D50D","name":"MATHEMATICAL FRAKTUR CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD50D"},120078:{"value":"1D50E","name":"MATHEMATICAL FRAKTUR CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD50E"},120079:{"value":"1D50F","name":"MATHEMATICAL FRAKTUR CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD50F"},120080:{"value":"1D510","name":"MATHEMATICAL FRAKTUR CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD510"},120081:{"value":"1D511","name":"MATHEMATICAL FRAKTUR CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD511"},120082:{"value":"1D512","name":"MATHEMATICAL FRAKTUR CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD512"},120083:{"value":"1D513","name":"MATHEMATICAL FRAKTUR CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD513"},120084:{"value":"1D514","name":"MATHEMATICAL FRAKTUR CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD514"},120086:{"value":"1D516","name":"MATHEMATICAL FRAKTUR CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD516"},120087:{"value":"1D517","name":"MATHEMATICAL FRAKTUR CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD517"},120088:{"value":"1D518","name":"MATHEMATICAL FRAKTUR CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD518"},120089:{"value":"1D519","name":"MATHEMATICAL FRAKTUR CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD519"},120090:{"value":"1D51A","name":"MATHEMATICAL FRAKTUR CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD51A"},120091:{"value":"1D51B","name":"MATHEMATICAL FRAKTUR CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD51B"},120092:{"value":"1D51C","name":"MATHEMATICAL FRAKTUR CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD51C"},120120:{"value":"1D538","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD538"},120121:{"value":"1D539","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD539"},120123:{"value":"1D53B","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD53B"},120124:{"value":"1D53C","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD53C"},120125:{"value":"1D53D","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD53D"},120126:{"value":"1D53E","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD53E"},120128:{"value":"1D540","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD540"},120129:{"value":"1D541","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD541"},120130:{"value":"1D542","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD542"},120131:{"value":"1D543","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD543"},120132:{"value":"1D544","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD544"},120134:{"value":"1D546","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD546"},120138:{"value":"1D54A","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD54A"},120139:{"value":"1D54B","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD54B"},120140:{"value":"1D54C","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD54C"},120141:{"value":"1D54D","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD54D"},120142:{"value":"1D54E","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD54E"},120143:{"value":"1D54F","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD54F"},120144:{"value":"1D550","name":"MATHEMATICAL DOUBLE-STRUCK CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD550"},120172:{"value":"1D56C","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD56C"},120173:{"value":"1D56D","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD56D"},120174:{"value":"1D56E","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD56E"},120175:{"value":"1D56F","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD56F"},120176:{"value":"1D570","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD570"},120177:{"value":"1D571","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD571"},120178:{"value":"1D572","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD572"},120179:{"value":"1D573","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD573"},120180:{"value":"1D574","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD574"},120181:{"value":"1D575","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD575"},120182:{"value":"1D576","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD576"},120183:{"value":"1D577","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD577"},120184:{"value":"1D578","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD578"},120185:{"value":"1D579","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD579"},120186:{"value":"1D57A","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD57A"},120187:{"value":"1D57B","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD57B"},120188:{"value":"1D57C","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD57C"},120189:{"value":"1D57D","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD57D"},120190:{"value":"1D57E","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD57E"},120191:{"value":"1D57F","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD57F"},120192:{"value":"1D580","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD580"},120193:{"value":"1D581","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD581"},120194:{"value":"1D582","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD582"},120195:{"value":"1D583","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD583"},120196:{"value":"1D584","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD584"},120197:{"value":"1D585","name":"MATHEMATICAL BOLD FRAKTUR CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD585"},120224:{"value":"1D5A0","name":"MATHEMATICAL SANS-SERIF CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5A0"},120225:{"value":"1D5A1","name":"MATHEMATICAL SANS-SERIF CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5A1"},120226:{"value":"1D5A2","name":"MATHEMATICAL SANS-SERIF CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5A2"},120227:{"value":"1D5A3","name":"MATHEMATICAL SANS-SERIF CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5A3"},120228:{"value":"1D5A4","name":"MATHEMATICAL SANS-SERIF CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5A4"},120229:{"value":"1D5A5","name":"MATHEMATICAL SANS-SERIF CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5A5"},120230:{"value":"1D5A6","name":"MATHEMATICAL SANS-SERIF CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5A6"},120231:{"value":"1D5A7","name":"MATHEMATICAL SANS-SERIF CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5A7"},120232:{"value":"1D5A8","name":"MATHEMATICAL SANS-SERIF CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5A8"},120233:{"value":"1D5A9","name":"MATHEMATICAL SANS-SERIF CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5A9"},120234:{"value":"1D5AA","name":"MATHEMATICAL SANS-SERIF CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5AA"},120235:{"value":"1D5AB","name":"MATHEMATICAL SANS-SERIF CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5AB"},120236:{"value":"1D5AC","name":"MATHEMATICAL SANS-SERIF CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5AC"},120237:{"value":"1D5AD","name":"MATHEMATICAL SANS-SERIF CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5AD"},120238:{"value":"1D5AE","name":"MATHEMATICAL SANS-SERIF CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5AE"},120239:{"value":"1D5AF","name":"MATHEMATICAL SANS-SERIF CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5AF"},120240:{"value":"1D5B0","name":"MATHEMATICAL SANS-SERIF CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5B0"},120241:{"value":"1D5B1","name":"MATHEMATICAL SANS-SERIF CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5B1"},120242:{"value":"1D5B2","name":"MATHEMATICAL SANS-SERIF CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5B2"},120243:{"value":"1D5B3","name":"MATHEMATICAL SANS-SERIF CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5B3"},120244:{"value":"1D5B4","name":"MATHEMATICAL SANS-SERIF CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5B4"},120245:{"value":"1D5B5","name":"MATHEMATICAL SANS-SERIF CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5B5"},120246:{"value":"1D5B6","name":"MATHEMATICAL SANS-SERIF CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5B6"},120247:{"value":"1D5B7","name":"MATHEMATICAL SANS-SERIF CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5B7"},120248:{"value":"1D5B8","name":"MATHEMATICAL SANS-SERIF CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5B8"},120249:{"value":"1D5B9","name":"MATHEMATICAL SANS-SERIF CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5B9"},120276:{"value":"1D5D4","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5D4"},120277:{"value":"1D5D5","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5D5"},120278:{"value":"1D5D6","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5D6"},120279:{"value":"1D5D7","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5D7"},120280:{"value":"1D5D8","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5D8"},120281:{"value":"1D5D9","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5D9"},120282:{"value":"1D5DA","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5DA"},120283:{"value":"1D5DB","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5DB"},120284:{"value":"1D5DC","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5DC"},120285:{"value":"1D5DD","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5DD"},120286:{"value":"1D5DE","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5DE"},120287:{"value":"1D5DF","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5DF"},120288:{"value":"1D5E0","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5E0"},120289:{"value":"1D5E1","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5E1"},120290:{"value":"1D5E2","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5E2"},120291:{"value":"1D5E3","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5E3"},120292:{"value":"1D5E4","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5E4"},120293:{"value":"1D5E5","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5E5"},120294:{"value":"1D5E6","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5E6"},120295:{"value":"1D5E7","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5E7"},120296:{"value":"1D5E8","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5E8"},120297:{"value":"1D5E9","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5E9"},120298:{"value":"1D5EA","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5EA"},120299:{"value":"1D5EB","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5EB"},120300:{"value":"1D5EC","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5EC"},120301:{"value":"1D5ED","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5ED"},120328:{"value":"1D608","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD608"},120329:{"value":"1D609","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD609"},120330:{"value":"1D60A","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD60A"},120331:{"value":"1D60B","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD60B"},120332:{"value":"1D60C","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD60C"},120333:{"value":"1D60D","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD60D"},120334:{"value":"1D60E","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD60E"},120335:{"value":"1D60F","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD60F"},120336:{"value":"1D610","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD610"},120337:{"value":"1D611","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD611"},120338:{"value":"1D612","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD612"},120339:{"value":"1D613","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD613"},120340:{"value":"1D614","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD614"},120341:{"value":"1D615","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD615"},120342:{"value":"1D616","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD616"},120343:{"value":"1D617","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD617"},120344:{"value":"1D618","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD618"},120345:{"value":"1D619","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD619"},120346:{"value":"1D61A","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD61A"},120347:{"value":"1D61B","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD61B"},120348:{"value":"1D61C","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD61C"},120349:{"value":"1D61D","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD61D"},120350:{"value":"1D61E","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD61E"},120351:{"value":"1D61F","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD61F"},120352:{"value":"1D620","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD620"},120353:{"value":"1D621","name":"MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD621"},120380:{"value":"1D63C","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD63C"},120381:{"value":"1D63D","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD63D"},120382:{"value":"1D63E","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD63E"},120383:{"value":"1D63F","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD63F"},120384:{"value":"1D640","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD640"},120385:{"value":"1D641","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD641"},120386:{"value":"1D642","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD642"},120387:{"value":"1D643","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD643"},120388:{"value":"1D644","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD644"},120389:{"value":"1D645","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD645"},120390:{"value":"1D646","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD646"},120391:{"value":"1D647","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD647"},120392:{"value":"1D648","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD648"},120393:{"value":"1D649","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD649"},120394:{"value":"1D64A","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD64A"},120395:{"value":"1D64B","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD64B"},120396:{"value":"1D64C","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD64C"},120397:{"value":"1D64D","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD64D"},120398:{"value":"1D64E","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD64E"},120399:{"value":"1D64F","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD64F"},120400:{"value":"1D650","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD650"},120401:{"value":"1D651","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD651"},120402:{"value":"1D652","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD652"},120403:{"value":"1D653","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD653"},120404:{"value":"1D654","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD654"},120405:{"value":"1D655","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD655"},120432:{"value":"1D670","name":"MATHEMATICAL MONOSPACE CAPITAL A","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD670"},120433:{"value":"1D671","name":"MATHEMATICAL MONOSPACE CAPITAL B","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD671"},120434:{"value":"1D672","name":"MATHEMATICAL MONOSPACE CAPITAL C","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD672"},120435:{"value":"1D673","name":"MATHEMATICAL MONOSPACE CAPITAL D","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD673"},120436:{"value":"1D674","name":"MATHEMATICAL MONOSPACE CAPITAL E","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD674"},120437:{"value":"1D675","name":"MATHEMATICAL MONOSPACE CAPITAL F","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD675"},120438:{"value":"1D676","name":"MATHEMATICAL MONOSPACE CAPITAL G","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD676"},120439:{"value":"1D677","name":"MATHEMATICAL MONOSPACE CAPITAL H","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD677"},120440:{"value":"1D678","name":"MATHEMATICAL MONOSPACE CAPITAL I","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD678"},120441:{"value":"1D679","name":"MATHEMATICAL MONOSPACE CAPITAL J","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD679"},120442:{"value":"1D67A","name":"MATHEMATICAL MONOSPACE CAPITAL K","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD67A"},120443:{"value":"1D67B","name":"MATHEMATICAL MONOSPACE CAPITAL L","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD67B"},120444:{"value":"1D67C","name":"MATHEMATICAL MONOSPACE CAPITAL M","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD67C"},120445:{"value":"1D67D","name":"MATHEMATICAL MONOSPACE CAPITAL N","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD67D"},120446:{"value":"1D67E","name":"MATHEMATICAL MONOSPACE CAPITAL O","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD67E"},120447:{"value":"1D67F","name":"MATHEMATICAL MONOSPACE CAPITAL P","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD67F"},120448:{"value":"1D680","name":"MATHEMATICAL MONOSPACE CAPITAL Q","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0051","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD680"},120449:{"value":"1D681","name":"MATHEMATICAL MONOSPACE CAPITAL R","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD681"},120450:{"value":"1D682","name":"MATHEMATICAL MONOSPACE CAPITAL S","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0053","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD682"},120451:{"value":"1D683","name":"MATHEMATICAL MONOSPACE CAPITAL T","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD683"},120452:{"value":"1D684","name":"MATHEMATICAL MONOSPACE CAPITAL U","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD684"},120453:{"value":"1D685","name":"MATHEMATICAL MONOSPACE CAPITAL V","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD685"},120454:{"value":"1D686","name":"MATHEMATICAL MONOSPACE CAPITAL W","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD686"},120455:{"value":"1D687","name":"MATHEMATICAL MONOSPACE CAPITAL X","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD687"},120456:{"value":"1D688","name":"MATHEMATICAL MONOSPACE CAPITAL Y","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0059","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD688"},120457:{"value":"1D689","name":"MATHEMATICAL MONOSPACE CAPITAL Z","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 005A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD689"},120488:{"value":"1D6A8","name":"MATHEMATICAL BOLD CAPITAL ALPHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0391","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6A8"},120489:{"value":"1D6A9","name":"MATHEMATICAL BOLD CAPITAL BETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0392","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6A9"},120490:{"value":"1D6AA","name":"MATHEMATICAL BOLD CAPITAL GAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0393","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6AA"},120491:{"value":"1D6AB","name":"MATHEMATICAL BOLD CAPITAL DELTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0394","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6AB"},120492:{"value":"1D6AC","name":"MATHEMATICAL BOLD CAPITAL EPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0395","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6AC"},120493:{"value":"1D6AD","name":"MATHEMATICAL BOLD CAPITAL ZETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0396","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6AD"},120494:{"value":"1D6AE","name":"MATHEMATICAL BOLD CAPITAL ETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0397","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6AE"},120495:{"value":"1D6AF","name":"MATHEMATICAL BOLD CAPITAL THETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0398","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6AF"},120496:{"value":"1D6B0","name":"MATHEMATICAL BOLD CAPITAL IOTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0399","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6B0"},120497:{"value":"1D6B1","name":"MATHEMATICAL BOLD CAPITAL KAPPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6B1"},120498:{"value":"1D6B2","name":"MATHEMATICAL BOLD CAPITAL LAMDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6B2"},120499:{"value":"1D6B3","name":"MATHEMATICAL BOLD CAPITAL MU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6B3"},120500:{"value":"1D6B4","name":"MATHEMATICAL BOLD CAPITAL NU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6B4"},120501:{"value":"1D6B5","name":"MATHEMATICAL BOLD CAPITAL XI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6B5"},120502:{"value":"1D6B6","name":"MATHEMATICAL BOLD CAPITAL OMICRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6B6"},120503:{"value":"1D6B7","name":"MATHEMATICAL BOLD CAPITAL PI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6B7"},120504:{"value":"1D6B8","name":"MATHEMATICAL BOLD CAPITAL RHO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6B8"},120505:{"value":"1D6B9","name":"MATHEMATICAL BOLD CAPITAL THETA SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03F4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6B9"},120506:{"value":"1D6BA","name":"MATHEMATICAL BOLD CAPITAL SIGMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6BA"},120507:{"value":"1D6BB","name":"MATHEMATICAL BOLD CAPITAL TAU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6BB"},120508:{"value":"1D6BC","name":"MATHEMATICAL BOLD CAPITAL UPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6BC"},120509:{"value":"1D6BD","name":"MATHEMATICAL BOLD CAPITAL PHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6BD"},120510:{"value":"1D6BE","name":"MATHEMATICAL BOLD CAPITAL CHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6BE"},120511:{"value":"1D6BF","name":"MATHEMATICAL BOLD CAPITAL PSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6BF"},120512:{"value":"1D6C0","name":"MATHEMATICAL BOLD CAPITAL OMEGA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6C0"},120546:{"value":"1D6E2","name":"MATHEMATICAL ITALIC CAPITAL ALPHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0391","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6E2"},120547:{"value":"1D6E3","name":"MATHEMATICAL ITALIC CAPITAL BETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0392","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6E3"},120548:{"value":"1D6E4","name":"MATHEMATICAL ITALIC CAPITAL GAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0393","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6E4"},120549:{"value":"1D6E5","name":"MATHEMATICAL ITALIC CAPITAL DELTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0394","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6E5"},120550:{"value":"1D6E6","name":"MATHEMATICAL ITALIC CAPITAL EPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0395","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6E6"},120551:{"value":"1D6E7","name":"MATHEMATICAL ITALIC CAPITAL ZETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0396","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6E7"},120552:{"value":"1D6E8","name":"MATHEMATICAL ITALIC CAPITAL ETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0397","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6E8"},120553:{"value":"1D6E9","name":"MATHEMATICAL ITALIC CAPITAL THETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0398","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6E9"},120554:{"value":"1D6EA","name":"MATHEMATICAL ITALIC CAPITAL IOTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0399","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6EA"},120555:{"value":"1D6EB","name":"MATHEMATICAL ITALIC CAPITAL KAPPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6EB"},120556:{"value":"1D6EC","name":"MATHEMATICAL ITALIC CAPITAL LAMDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6EC"},120557:{"value":"1D6ED","name":"MATHEMATICAL ITALIC CAPITAL MU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6ED"},120558:{"value":"1D6EE","name":"MATHEMATICAL ITALIC CAPITAL NU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6EE"},120559:{"value":"1D6EF","name":"MATHEMATICAL ITALIC CAPITAL XI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6EF"},120560:{"value":"1D6F0","name":"MATHEMATICAL ITALIC CAPITAL OMICRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6F0"},120561:{"value":"1D6F1","name":"MATHEMATICAL ITALIC CAPITAL PI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6F1"},120562:{"value":"1D6F2","name":"MATHEMATICAL ITALIC CAPITAL RHO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6F2"},120563:{"value":"1D6F3","name":"MATHEMATICAL ITALIC CAPITAL THETA SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03F4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6F3"},120564:{"value":"1D6F4","name":"MATHEMATICAL ITALIC CAPITAL SIGMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6F4"},120565:{"value":"1D6F5","name":"MATHEMATICAL ITALIC CAPITAL TAU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6F5"},120566:{"value":"1D6F6","name":"MATHEMATICAL ITALIC CAPITAL UPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6F6"},120567:{"value":"1D6F7","name":"MATHEMATICAL ITALIC CAPITAL PHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6F7"},120568:{"value":"1D6F8","name":"MATHEMATICAL ITALIC CAPITAL CHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6F8"},120569:{"value":"1D6F9","name":"MATHEMATICAL ITALIC CAPITAL PSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6F9"},120570:{"value":"1D6FA","name":"MATHEMATICAL ITALIC CAPITAL OMEGA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6FA"},120604:{"value":"1D71C","name":"MATHEMATICAL BOLD ITALIC CAPITAL ALPHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0391","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD71C"},120605:{"value":"1D71D","name":"MATHEMATICAL BOLD ITALIC CAPITAL BETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0392","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD71D"},120606:{"value":"1D71E","name":"MATHEMATICAL BOLD ITALIC CAPITAL GAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0393","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD71E"},120607:{"value":"1D71F","name":"MATHEMATICAL BOLD ITALIC CAPITAL DELTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0394","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD71F"},120608:{"value":"1D720","name":"MATHEMATICAL BOLD ITALIC CAPITAL EPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0395","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD720"},120609:{"value":"1D721","name":"MATHEMATICAL BOLD ITALIC CAPITAL ZETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0396","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD721"},120610:{"value":"1D722","name":"MATHEMATICAL BOLD ITALIC CAPITAL ETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0397","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD722"},120611:{"value":"1D723","name":"MATHEMATICAL BOLD ITALIC CAPITAL THETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0398","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD723"},120612:{"value":"1D724","name":"MATHEMATICAL BOLD ITALIC CAPITAL IOTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0399","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD724"},120613:{"value":"1D725","name":"MATHEMATICAL BOLD ITALIC CAPITAL KAPPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD725"},120614:{"value":"1D726","name":"MATHEMATICAL BOLD ITALIC CAPITAL LAMDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD726"},120615:{"value":"1D727","name":"MATHEMATICAL BOLD ITALIC CAPITAL MU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD727"},120616:{"value":"1D728","name":"MATHEMATICAL BOLD ITALIC CAPITAL NU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD728"},120617:{"value":"1D729","name":"MATHEMATICAL BOLD ITALIC CAPITAL XI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD729"},120618:{"value":"1D72A","name":"MATHEMATICAL BOLD ITALIC CAPITAL OMICRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD72A"},120619:{"value":"1D72B","name":"MATHEMATICAL BOLD ITALIC CAPITAL PI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD72B"},120620:{"value":"1D72C","name":"MATHEMATICAL BOLD ITALIC CAPITAL RHO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD72C"},120621:{"value":"1D72D","name":"MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03F4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD72D"},120622:{"value":"1D72E","name":"MATHEMATICAL BOLD ITALIC CAPITAL SIGMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD72E"},120623:{"value":"1D72F","name":"MATHEMATICAL BOLD ITALIC CAPITAL TAU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD72F"},120624:{"value":"1D730","name":"MATHEMATICAL BOLD ITALIC CAPITAL UPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD730"},120625:{"value":"1D731","name":"MATHEMATICAL BOLD ITALIC CAPITAL PHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD731"},120626:{"value":"1D732","name":"MATHEMATICAL BOLD ITALIC CAPITAL CHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD732"},120627:{"value":"1D733","name":"MATHEMATICAL BOLD ITALIC CAPITAL PSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD733"},120628:{"value":"1D734","name":"MATHEMATICAL BOLD ITALIC CAPITAL OMEGA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD734"},120662:{"value":"1D756","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0391","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD756"},120663:{"value":"1D757","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0392","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD757"},120664:{"value":"1D758","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0393","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD758"},120665:{"value":"1D759","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0394","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD759"},120666:{"value":"1D75A","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0395","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD75A"},120667:{"value":"1D75B","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0396","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD75B"},120668:{"value":"1D75C","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0397","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD75C"},120669:{"value":"1D75D","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0398","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD75D"},120670:{"value":"1D75E","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0399","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD75E"},120671:{"value":"1D75F","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD75F"},120672:{"value":"1D760","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD760"},120673:{"value":"1D761","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL MU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD761"},120674:{"value":"1D762","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL NU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD762"},120675:{"value":"1D763","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL XI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD763"},120676:{"value":"1D764","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD764"},120677:{"value":"1D765","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL PI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD765"},120678:{"value":"1D766","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD766"},120679:{"value":"1D767","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03F4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD767"},120680:{"value":"1D768","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD768"},120681:{"value":"1D769","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD769"},120682:{"value":"1D76A","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD76A"},120683:{"value":"1D76B","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD76B"},120684:{"value":"1D76C","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD76C"},120685:{"value":"1D76D","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD76D"},120686:{"value":"1D76E","name":"MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD76E"},120720:{"value":"1D790","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0391","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD790"},120721:{"value":"1D791","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0392","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD791"},120722:{"value":"1D792","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0393","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD792"},120723:{"value":"1D793","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0394","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD793"},120724:{"value":"1D794","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0395","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD794"},120725:{"value":"1D795","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0396","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD795"},120726:{"value":"1D796","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0397","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD796"},120727:{"value":"1D797","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0398","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD797"},120728:{"value":"1D798","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 0399","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD798"},120729:{"value":"1D799","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD799"},120730:{"value":"1D79A","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD79A"},120731:{"value":"1D79B","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD79B"},120732:{"value":"1D79C","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD79C"},120733:{"value":"1D79D","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD79D"},120734:{"value":"1D79E","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 039F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD79E"},120735:{"value":"1D79F","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD79F"},120736:{"value":"1D7A0","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7A0"},120737:{"value":"1D7A1","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03F4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7A1"},120738:{"value":"1D7A2","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7A2"},120739:{"value":"1D7A3","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7A3"},120740:{"value":"1D7A4","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7A4"},120741:{"value":"1D7A5","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7A5"},120742:{"value":"1D7A6","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7A6"},120743:{"value":"1D7A7","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7A7"},120744:{"value":"1D7A8","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7A8"},120778:{"value":"1D7CA","name":"MATHEMATICAL BOLD CAPITAL DIGAMMA","category":"Lu","class":"0","bidirectional_category":"L","mapping":"<font> 03DC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7CA"},125184:{"value":"1E900","name":"ADLAM CAPITAL LETTER ALIF","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E922","titlecase_mapping":"","symbol":"\uE900"},125185:{"value":"1E901","name":"ADLAM CAPITAL LETTER DAALI","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E923","titlecase_mapping":"","symbol":"\uE901"},125186:{"value":"1E902","name":"ADLAM CAPITAL LETTER LAAM","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E924","titlecase_mapping":"","symbol":"\uE902"},125187:{"value":"1E903","name":"ADLAM CAPITAL LETTER MIIM","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E925","titlecase_mapping":"","symbol":"\uE903"},125188:{"value":"1E904","name":"ADLAM CAPITAL LETTER BA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E926","titlecase_mapping":"","symbol":"\uE904"},125189:{"value":"1E905","name":"ADLAM CAPITAL LETTER SINNYIIYHE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E927","titlecase_mapping":"","symbol":"\uE905"},125190:{"value":"1E906","name":"ADLAM CAPITAL LETTER PE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E928","titlecase_mapping":"","symbol":"\uE906"},125191:{"value":"1E907","name":"ADLAM CAPITAL LETTER BHE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E929","titlecase_mapping":"","symbol":"\uE907"},125192:{"value":"1E908","name":"ADLAM CAPITAL LETTER RA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E92A","titlecase_mapping":"","symbol":"\uE908"},125193:{"value":"1E909","name":"ADLAM CAPITAL LETTER E","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E92B","titlecase_mapping":"","symbol":"\uE909"},125194:{"value":"1E90A","name":"ADLAM CAPITAL LETTER FA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E92C","titlecase_mapping":"","symbol":"\uE90A"},125195:{"value":"1E90B","name":"ADLAM CAPITAL LETTER I","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E92D","titlecase_mapping":"","symbol":"\uE90B"},125196:{"value":"1E90C","name":"ADLAM CAPITAL LETTER O","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E92E","titlecase_mapping":"","symbol":"\uE90C"},125197:{"value":"1E90D","name":"ADLAM CAPITAL LETTER DHA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E92F","titlecase_mapping":"","symbol":"\uE90D"},125198:{"value":"1E90E","name":"ADLAM CAPITAL LETTER YHE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E930","titlecase_mapping":"","symbol":"\uE90E"},125199:{"value":"1E90F","name":"ADLAM CAPITAL LETTER WAW","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E931","titlecase_mapping":"","symbol":"\uE90F"},125200:{"value":"1E910","name":"ADLAM CAPITAL LETTER NUN","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E932","titlecase_mapping":"","symbol":"\uE910"},125201:{"value":"1E911","name":"ADLAM CAPITAL LETTER KAF","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E933","titlecase_mapping":"","symbol":"\uE911"},125202:{"value":"1E912","name":"ADLAM CAPITAL LETTER YA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E934","titlecase_mapping":"","symbol":"\uE912"},125203:{"value":"1E913","name":"ADLAM CAPITAL LETTER U","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E935","titlecase_mapping":"","symbol":"\uE913"},125204:{"value":"1E914","name":"ADLAM CAPITAL LETTER JIIM","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E936","titlecase_mapping":"","symbol":"\uE914"},125205:{"value":"1E915","name":"ADLAM CAPITAL LETTER CHI","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E937","titlecase_mapping":"","symbol":"\uE915"},125206:{"value":"1E916","name":"ADLAM CAPITAL LETTER HA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E938","titlecase_mapping":"","symbol":"\uE916"},125207:{"value":"1E917","name":"ADLAM CAPITAL LETTER QAAF","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E939","titlecase_mapping":"","symbol":"\uE917"},125208:{"value":"1E918","name":"ADLAM CAPITAL LETTER GA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E93A","titlecase_mapping":"","symbol":"\uE918"},125209:{"value":"1E919","name":"ADLAM CAPITAL LETTER NYA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E93B","titlecase_mapping":"","symbol":"\uE919"},125210:{"value":"1E91A","name":"ADLAM CAPITAL LETTER TU","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E93C","titlecase_mapping":"","symbol":"\uE91A"},125211:{"value":"1E91B","name":"ADLAM CAPITAL LETTER NHA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E93D","titlecase_mapping":"","symbol":"\uE91B"},125212:{"value":"1E91C","name":"ADLAM CAPITAL LETTER VA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E93E","titlecase_mapping":"","symbol":"\uE91C"},125213:{"value":"1E91D","name":"ADLAM CAPITAL LETTER KHA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E93F","titlecase_mapping":"","symbol":"\uE91D"},125214:{"value":"1E91E","name":"ADLAM CAPITAL LETTER GBE","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E940","titlecase_mapping":"","symbol":"\uE91E"},125215:{"value":"1E91F","name":"ADLAM CAPITAL LETTER ZAL","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E941","titlecase_mapping":"","symbol":"\uE91F"},125216:{"value":"1E920","name":"ADLAM CAPITAL LETTER KPO","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E942","titlecase_mapping":"","symbol":"\uE920"},125217:{"value":"1E921","name":"ADLAM CAPITAL LETTER SHA","category":"Lu","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1E943","titlecase_mapping":"","symbol":"\uE921"}};

/***/ }),
/* 174 */
/***/ (function(module, exports) {

module.exports={97:{"value":"0061","name":"LATIN SMALL LETTER A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0041","lowercase_mapping":"","titlecase_mapping":"0041","symbol":"\x61"},98:{"value":"0062","name":"LATIN SMALL LETTER B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0042","lowercase_mapping":"","titlecase_mapping":"0042","symbol":"\x62"},99:{"value":"0063","name":"LATIN SMALL LETTER C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0043","lowercase_mapping":"","titlecase_mapping":"0043","symbol":"\x63"},100:{"value":"0064","name":"LATIN SMALL LETTER D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0044","lowercase_mapping":"","titlecase_mapping":"0044","symbol":"\x64"},101:{"value":"0065","name":"LATIN SMALL LETTER E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0045","lowercase_mapping":"","titlecase_mapping":"0045","symbol":"\x65"},102:{"value":"0066","name":"LATIN SMALL LETTER F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0046","lowercase_mapping":"","titlecase_mapping":"0046","symbol":"\x66"},103:{"value":"0067","name":"LATIN SMALL LETTER G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0047","lowercase_mapping":"","titlecase_mapping":"0047","symbol":"\x67"},104:{"value":"0068","name":"LATIN SMALL LETTER H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0048","lowercase_mapping":"","titlecase_mapping":"0048","symbol":"\x68"},105:{"value":"0069","name":"LATIN SMALL LETTER I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0049","lowercase_mapping":"","titlecase_mapping":"0049","symbol":"\x69"},106:{"value":"006A","name":"LATIN SMALL LETTER J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"004A","lowercase_mapping":"","titlecase_mapping":"004A","symbol":"\x6A"},107:{"value":"006B","name":"LATIN SMALL LETTER K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"004B","lowercase_mapping":"","titlecase_mapping":"004B","symbol":"\x6B"},108:{"value":"006C","name":"LATIN SMALL LETTER L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"004C","lowercase_mapping":"","titlecase_mapping":"004C","symbol":"\x6C"},109:{"value":"006D","name":"LATIN SMALL LETTER M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"004D","lowercase_mapping":"","titlecase_mapping":"004D","symbol":"\x6D"},110:{"value":"006E","name":"LATIN SMALL LETTER N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"004E","lowercase_mapping":"","titlecase_mapping":"004E","symbol":"\x6E"},111:{"value":"006F","name":"LATIN SMALL LETTER O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"004F","lowercase_mapping":"","titlecase_mapping":"004F","symbol":"\x6F"},112:{"value":"0070","name":"LATIN SMALL LETTER P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0050","lowercase_mapping":"","titlecase_mapping":"0050","symbol":"\x70"},113:{"value":"0071","name":"LATIN SMALL LETTER Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0051","lowercase_mapping":"","titlecase_mapping":"0051","symbol":"\x71"},114:{"value":"0072","name":"LATIN SMALL LETTER R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0052","lowercase_mapping":"","titlecase_mapping":"0052","symbol":"\x72"},115:{"value":"0073","name":"LATIN SMALL LETTER S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0053","lowercase_mapping":"","titlecase_mapping":"0053","symbol":"\x73"},116:{"value":"0074","name":"LATIN SMALL LETTER T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0054","lowercase_mapping":"","titlecase_mapping":"0054","symbol":"\x74"},117:{"value":"0075","name":"LATIN SMALL LETTER U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0055","lowercase_mapping":"","titlecase_mapping":"0055","symbol":"\x75"},118:{"value":"0076","name":"LATIN SMALL LETTER V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0056","lowercase_mapping":"","titlecase_mapping":"0056","symbol":"\x76"},119:{"value":"0077","name":"LATIN SMALL LETTER W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0057","lowercase_mapping":"","titlecase_mapping":"0057","symbol":"\x77"},120:{"value":"0078","name":"LATIN SMALL LETTER X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0058","lowercase_mapping":"","titlecase_mapping":"0058","symbol":"\x78"},121:{"value":"0079","name":"LATIN SMALL LETTER Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0059","lowercase_mapping":"","titlecase_mapping":"0059","symbol":"\x79"},122:{"value":"007A","name":"LATIN SMALL LETTER Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"005A","lowercase_mapping":"","titlecase_mapping":"005A","symbol":"\x7A"},181:{"value":"00B5","name":"MICRO SIGN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 03BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"039C","lowercase_mapping":"","titlecase_mapping":"039C","symbol":"\xB5"},223:{"value":"00DF","name":"LATIN SMALL LETTER SHARP S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\xDF"},224:{"value":"00E0","name":"LATIN SMALL LETTER A WITH GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A GRAVE","comment":"","uppercase_mapping":"00C0","lowercase_mapping":"","titlecase_mapping":"00C0","symbol":"\xE0"},225:{"value":"00E1","name":"LATIN SMALL LETTER A WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A ACUTE","comment":"","uppercase_mapping":"00C1","lowercase_mapping":"","titlecase_mapping":"00C1","symbol":"\xE1"},226:{"value":"00E2","name":"LATIN SMALL LETTER A WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A CIRCUMFLEX","comment":"","uppercase_mapping":"00C2","lowercase_mapping":"","titlecase_mapping":"00C2","symbol":"\xE2"},227:{"value":"00E3","name":"LATIN SMALL LETTER A WITH TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A TILDE","comment":"","uppercase_mapping":"00C3","lowercase_mapping":"","titlecase_mapping":"00C3","symbol":"\xE3"},228:{"value":"00E4","name":"LATIN SMALL LETTER A WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A DIAERESIS","comment":"","uppercase_mapping":"00C4","lowercase_mapping":"","titlecase_mapping":"00C4","symbol":"\xE4"},229:{"value":"00E5","name":"LATIN SMALL LETTER A WITH RING ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 030A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A RING","comment":"","uppercase_mapping":"00C5","lowercase_mapping":"","titlecase_mapping":"00C5","symbol":"\xE5"},230:{"value":"00E6","name":"LATIN SMALL LETTER AE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A E","comment":"","uppercase_mapping":"00C6","lowercase_mapping":"","titlecase_mapping":"00C6","symbol":"\xE6"},231:{"value":"00E7","name":"LATIN SMALL LETTER C WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0063 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER C CEDILLA","comment":"","uppercase_mapping":"00C7","lowercase_mapping":"","titlecase_mapping":"00C7","symbol":"\xE7"},232:{"value":"00E8","name":"LATIN SMALL LETTER E WITH GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER E GRAVE","comment":"","uppercase_mapping":"00C8","lowercase_mapping":"","titlecase_mapping":"00C8","symbol":"\xE8"},233:{"value":"00E9","name":"LATIN SMALL LETTER E WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER E ACUTE","comment":"","uppercase_mapping":"00C9","lowercase_mapping":"","titlecase_mapping":"00C9","symbol":"\xE9"},234:{"value":"00EA","name":"LATIN SMALL LETTER E WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER E CIRCUMFLEX","comment":"","uppercase_mapping":"00CA","lowercase_mapping":"","titlecase_mapping":"00CA","symbol":"\xEA"},235:{"value":"00EB","name":"LATIN SMALL LETTER E WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER E DIAERESIS","comment":"","uppercase_mapping":"00CB","lowercase_mapping":"","titlecase_mapping":"00CB","symbol":"\xEB"},236:{"value":"00EC","name":"LATIN SMALL LETTER I WITH GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER I GRAVE","comment":"","uppercase_mapping":"00CC","lowercase_mapping":"","titlecase_mapping":"00CC","symbol":"\xEC"},237:{"value":"00ED","name":"LATIN SMALL LETTER I WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER I ACUTE","comment":"","uppercase_mapping":"00CD","lowercase_mapping":"","titlecase_mapping":"00CD","symbol":"\xED"},238:{"value":"00EE","name":"LATIN SMALL LETTER I WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER I CIRCUMFLEX","comment":"","uppercase_mapping":"00CE","lowercase_mapping":"","titlecase_mapping":"00CE","symbol":"\xEE"},239:{"value":"00EF","name":"LATIN SMALL LETTER I WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER I DIAERESIS","comment":"","uppercase_mapping":"00CF","lowercase_mapping":"","titlecase_mapping":"00CF","symbol":"\xEF"},240:{"value":"00F0","name":"LATIN SMALL LETTER ETH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"00D0","lowercase_mapping":"","titlecase_mapping":"00D0","symbol":"\xF0"},241:{"value":"00F1","name":"LATIN SMALL LETTER N WITH TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006E 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER N TILDE","comment":"","uppercase_mapping":"00D1","lowercase_mapping":"","titlecase_mapping":"00D1","symbol":"\xF1"},242:{"value":"00F2","name":"LATIN SMALL LETTER O WITH GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O GRAVE","comment":"","uppercase_mapping":"00D2","lowercase_mapping":"","titlecase_mapping":"00D2","symbol":"\xF2"},243:{"value":"00F3","name":"LATIN SMALL LETTER O WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O ACUTE","comment":"","uppercase_mapping":"00D3","lowercase_mapping":"","titlecase_mapping":"00D3","symbol":"\xF3"},244:{"value":"00F4","name":"LATIN SMALL LETTER O WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O CIRCUMFLEX","comment":"","uppercase_mapping":"00D4","lowercase_mapping":"","titlecase_mapping":"00D4","symbol":"\xF4"},245:{"value":"00F5","name":"LATIN SMALL LETTER O WITH TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O TILDE","comment":"","uppercase_mapping":"00D5","lowercase_mapping":"","titlecase_mapping":"00D5","symbol":"\xF5"},246:{"value":"00F6","name":"LATIN SMALL LETTER O WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O DIAERESIS","comment":"","uppercase_mapping":"00D6","lowercase_mapping":"","titlecase_mapping":"00D6","symbol":"\xF6"},248:{"value":"00F8","name":"LATIN SMALL LETTER O WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O SLASH","comment":"","uppercase_mapping":"00D8","lowercase_mapping":"","titlecase_mapping":"00D8","symbol":"\xF8"},249:{"value":"00F9","name":"LATIN SMALL LETTER U WITH GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U GRAVE","comment":"","uppercase_mapping":"00D9","lowercase_mapping":"","titlecase_mapping":"00D9","symbol":"\xF9"},250:{"value":"00FA","name":"LATIN SMALL LETTER U WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U ACUTE","comment":"","uppercase_mapping":"00DA","lowercase_mapping":"","titlecase_mapping":"00DA","symbol":"\xFA"},251:{"value":"00FB","name":"LATIN SMALL LETTER U WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U CIRCUMFLEX","comment":"","uppercase_mapping":"00DB","lowercase_mapping":"","titlecase_mapping":"00DB","symbol":"\xFB"},252:{"value":"00FC","name":"LATIN SMALL LETTER U WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U DIAERESIS","comment":"","uppercase_mapping":"00DC","lowercase_mapping":"","titlecase_mapping":"00DC","symbol":"\xFC"},253:{"value":"00FD","name":"LATIN SMALL LETTER Y WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0079 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Y ACUTE","comment":"","uppercase_mapping":"00DD","lowercase_mapping":"","titlecase_mapping":"00DD","symbol":"\xFD"},254:{"value":"00FE","name":"LATIN SMALL LETTER THORN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"00DE","lowercase_mapping":"","titlecase_mapping":"00DE","symbol":"\xFE"},255:{"value":"00FF","name":"LATIN SMALL LETTER Y WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0079 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Y DIAERESIS","comment":"","uppercase_mapping":"0178","lowercase_mapping":"","titlecase_mapping":"0178","symbol":"\xFF"},257:{"value":"0101","name":"LATIN SMALL LETTER A WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A MACRON","comment":"","uppercase_mapping":"0100","lowercase_mapping":"","titlecase_mapping":"0100","symbol":"\u0101"},259:{"value":"0103","name":"LATIN SMALL LETTER A WITH BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A BREVE","comment":"","uppercase_mapping":"0102","lowercase_mapping":"","titlecase_mapping":"0102","symbol":"\u0103"},261:{"value":"0105","name":"LATIN SMALL LETTER A WITH OGONEK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0328","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A OGONEK","comment":"","uppercase_mapping":"0104","lowercase_mapping":"","titlecase_mapping":"0104","symbol":"\u0105"},263:{"value":"0107","name":"LATIN SMALL LETTER C WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0063 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER C ACUTE","comment":"","uppercase_mapping":"0106","lowercase_mapping":"","titlecase_mapping":"0106","symbol":"\u0107"},265:{"value":"0109","name":"LATIN SMALL LETTER C WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0063 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER C CIRCUMFLEX","comment":"","uppercase_mapping":"0108","lowercase_mapping":"","titlecase_mapping":"0108","symbol":"\u0109"},267:{"value":"010B","name":"LATIN SMALL LETTER C WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0063 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER C DOT","comment":"","uppercase_mapping":"010A","lowercase_mapping":"","titlecase_mapping":"010A","symbol":"\u010B"},269:{"value":"010D","name":"LATIN SMALL LETTER C WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0063 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER C HACEK","comment":"","uppercase_mapping":"010C","lowercase_mapping":"","titlecase_mapping":"010C","symbol":"\u010D"},271:{"value":"010F","name":"LATIN SMALL LETTER D WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0064 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER D HACEK","comment":"","uppercase_mapping":"010E","lowercase_mapping":"","titlecase_mapping":"010E","symbol":"\u010F"},273:{"value":"0111","name":"LATIN SMALL LETTER D WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER D BAR","comment":"","uppercase_mapping":"0110","lowercase_mapping":"","titlecase_mapping":"0110","symbol":"\u0111"},275:{"value":"0113","name":"LATIN SMALL LETTER E WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER E MACRON","comment":"","uppercase_mapping":"0112","lowercase_mapping":"","titlecase_mapping":"0112","symbol":"\u0113"},277:{"value":"0115","name":"LATIN SMALL LETTER E WITH BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER E BREVE","comment":"","uppercase_mapping":"0114","lowercase_mapping":"","titlecase_mapping":"0114","symbol":"\u0115"},279:{"value":"0117","name":"LATIN SMALL LETTER E WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER E DOT","comment":"","uppercase_mapping":"0116","lowercase_mapping":"","titlecase_mapping":"0116","symbol":"\u0117"},281:{"value":"0119","name":"LATIN SMALL LETTER E WITH OGONEK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0328","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER E OGONEK","comment":"","uppercase_mapping":"0118","lowercase_mapping":"","titlecase_mapping":"0118","symbol":"\u0119"},283:{"value":"011B","name":"LATIN SMALL LETTER E WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER E HACEK","comment":"","uppercase_mapping":"011A","lowercase_mapping":"","titlecase_mapping":"011A","symbol":"\u011B"},285:{"value":"011D","name":"LATIN SMALL LETTER G WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0067 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER G CIRCUMFLEX","comment":"","uppercase_mapping":"011C","lowercase_mapping":"","titlecase_mapping":"011C","symbol":"\u011D"},287:{"value":"011F","name":"LATIN SMALL LETTER G WITH BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0067 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER G BREVE","comment":"","uppercase_mapping":"011E","lowercase_mapping":"","titlecase_mapping":"011E","symbol":"\u011F"},289:{"value":"0121","name":"LATIN SMALL LETTER G WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0067 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER G DOT","comment":"","uppercase_mapping":"0120","lowercase_mapping":"","titlecase_mapping":"0120","symbol":"\u0121"},291:{"value":"0123","name":"LATIN SMALL LETTER G WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0067 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER G CEDILLA","comment":"","uppercase_mapping":"0122","lowercase_mapping":"","titlecase_mapping":"0122","symbol":"\u0123"},293:{"value":"0125","name":"LATIN SMALL LETTER H WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0068 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER H CIRCUMFLEX","comment":"","uppercase_mapping":"0124","lowercase_mapping":"","titlecase_mapping":"0124","symbol":"\u0125"},295:{"value":"0127","name":"LATIN SMALL LETTER H WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER H BAR","comment":"","uppercase_mapping":"0126","lowercase_mapping":"","titlecase_mapping":"0126","symbol":"\u0127"},297:{"value":"0129","name":"LATIN SMALL LETTER I WITH TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER I TILDE","comment":"","uppercase_mapping":"0128","lowercase_mapping":"","titlecase_mapping":"0128","symbol":"\u0129"},299:{"value":"012B","name":"LATIN SMALL LETTER I WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER I MACRON","comment":"","uppercase_mapping":"012A","lowercase_mapping":"","titlecase_mapping":"012A","symbol":"\u012B"},301:{"value":"012D","name":"LATIN SMALL LETTER I WITH BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER I BREVE","comment":"","uppercase_mapping":"012C","lowercase_mapping":"","titlecase_mapping":"012C","symbol":"\u012D"},303:{"value":"012F","name":"LATIN SMALL LETTER I WITH OGONEK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0328","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER I OGONEK","comment":"","uppercase_mapping":"012E","lowercase_mapping":"","titlecase_mapping":"012E","symbol":"\u012F"},305:{"value":"0131","name":"LATIN SMALL LETTER DOTLESS I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0049","lowercase_mapping":"","titlecase_mapping":"0049","symbol":"\u0131"},307:{"value":"0133","name":"LATIN SMALL LIGATURE IJ","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0069 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER I J","comment":"","uppercase_mapping":"0132","lowercase_mapping":"","titlecase_mapping":"0132","symbol":"\u0133"},309:{"value":"0135","name":"LATIN SMALL LETTER J WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006A 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER J CIRCUMFLEX","comment":"","uppercase_mapping":"0134","lowercase_mapping":"","titlecase_mapping":"0134","symbol":"\u0135"},311:{"value":"0137","name":"LATIN SMALL LETTER K WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006B 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER K CEDILLA","comment":"","uppercase_mapping":"0136","lowercase_mapping":"","titlecase_mapping":"0136","symbol":"\u0137"},312:{"value":"0138","name":"LATIN SMALL LETTER KRA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0138"},314:{"value":"013A","name":"LATIN SMALL LETTER L WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006C 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER L ACUTE","comment":"","uppercase_mapping":"0139","lowercase_mapping":"","titlecase_mapping":"0139","symbol":"\u013A"},316:{"value":"013C","name":"LATIN SMALL LETTER L WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006C 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER L CEDILLA","comment":"","uppercase_mapping":"013B","lowercase_mapping":"","titlecase_mapping":"013B","symbol":"\u013C"},318:{"value":"013E","name":"LATIN SMALL LETTER L WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006C 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER L HACEK","comment":"","uppercase_mapping":"013D","lowercase_mapping":"","titlecase_mapping":"013D","symbol":"\u013E"},320:{"value":"0140","name":"LATIN SMALL LETTER L WITH MIDDLE DOT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 006C 00B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"013F","lowercase_mapping":"","titlecase_mapping":"013F","symbol":"\u0140"},322:{"value":"0142","name":"LATIN SMALL LETTER L WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER L SLASH","comment":"","uppercase_mapping":"0141","lowercase_mapping":"","titlecase_mapping":"0141","symbol":"\u0142"},324:{"value":"0144","name":"LATIN SMALL LETTER N WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006E 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER N ACUTE","comment":"","uppercase_mapping":"0143","lowercase_mapping":"","titlecase_mapping":"0143","symbol":"\u0144"},326:{"value":"0146","name":"LATIN SMALL LETTER N WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006E 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER N CEDILLA","comment":"","uppercase_mapping":"0145","lowercase_mapping":"","titlecase_mapping":"0145","symbol":"\u0146"},328:{"value":"0148","name":"LATIN SMALL LETTER N WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006E 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER N HACEK","comment":"","uppercase_mapping":"0147","lowercase_mapping":"","titlecase_mapping":"0147","symbol":"\u0148"},329:{"value":"0149","name":"LATIN SMALL LETTER N PRECEDED BY APOSTROPHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 02BC 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER APOSTROPHE N","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0149"},331:{"value":"014B","name":"LATIN SMALL LETTER ENG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"014A","lowercase_mapping":"","titlecase_mapping":"014A","symbol":"\u014B"},333:{"value":"014D","name":"LATIN SMALL LETTER O WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O MACRON","comment":"","uppercase_mapping":"014C","lowercase_mapping":"","titlecase_mapping":"014C","symbol":"\u014D"},335:{"value":"014F","name":"LATIN SMALL LETTER O WITH BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O BREVE","comment":"","uppercase_mapping":"014E","lowercase_mapping":"","titlecase_mapping":"014E","symbol":"\u014F"},337:{"value":"0151","name":"LATIN SMALL LETTER O WITH DOUBLE ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 030B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O DOUBLE ACUTE","comment":"","uppercase_mapping":"0150","lowercase_mapping":"","titlecase_mapping":"0150","symbol":"\u0151"},339:{"value":"0153","name":"LATIN SMALL LIGATURE OE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O E","comment":"","uppercase_mapping":"0152","lowercase_mapping":"","titlecase_mapping":"0152","symbol":"\u0153"},341:{"value":"0155","name":"LATIN SMALL LETTER R WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0072 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER R ACUTE","comment":"","uppercase_mapping":"0154","lowercase_mapping":"","titlecase_mapping":"0154","symbol":"\u0155"},343:{"value":"0157","name":"LATIN SMALL LETTER R WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0072 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER R CEDILLA","comment":"","uppercase_mapping":"0156","lowercase_mapping":"","titlecase_mapping":"0156","symbol":"\u0157"},345:{"value":"0159","name":"LATIN SMALL LETTER R WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0072 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER R HACEK","comment":"","uppercase_mapping":"0158","lowercase_mapping":"","titlecase_mapping":"0158","symbol":"\u0159"},347:{"value":"015B","name":"LATIN SMALL LETTER S WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0073 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER S ACUTE","comment":"","uppercase_mapping":"015A","lowercase_mapping":"","titlecase_mapping":"015A","symbol":"\u015B"},349:{"value":"015D","name":"LATIN SMALL LETTER S WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0073 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER S CIRCUMFLEX","comment":"","uppercase_mapping":"015C","lowercase_mapping":"","titlecase_mapping":"015C","symbol":"\u015D"},351:{"value":"015F","name":"LATIN SMALL LETTER S WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0073 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER S CEDILLA","comment":"","uppercase_mapping":"015E","lowercase_mapping":"","titlecase_mapping":"015E","symbol":"\u015F"},353:{"value":"0161","name":"LATIN SMALL LETTER S WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0073 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER S HACEK","comment":"","uppercase_mapping":"0160","lowercase_mapping":"","titlecase_mapping":"0160","symbol":"\u0161"},355:{"value":"0163","name":"LATIN SMALL LETTER T WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0074 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER T CEDILLA","comment":"","uppercase_mapping":"0162","lowercase_mapping":"","titlecase_mapping":"0162","symbol":"\u0163"},357:{"value":"0165","name":"LATIN SMALL LETTER T WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0074 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER T HACEK","comment":"","uppercase_mapping":"0164","lowercase_mapping":"","titlecase_mapping":"0164","symbol":"\u0165"},359:{"value":"0167","name":"LATIN SMALL LETTER T WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER T BAR","comment":"","uppercase_mapping":"0166","lowercase_mapping":"","titlecase_mapping":"0166","symbol":"\u0167"},361:{"value":"0169","name":"LATIN SMALL LETTER U WITH TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U TILDE","comment":"","uppercase_mapping":"0168","lowercase_mapping":"","titlecase_mapping":"0168","symbol":"\u0169"},363:{"value":"016B","name":"LATIN SMALL LETTER U WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U MACRON","comment":"","uppercase_mapping":"016A","lowercase_mapping":"","titlecase_mapping":"016A","symbol":"\u016B"},365:{"value":"016D","name":"LATIN SMALL LETTER U WITH BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U BREVE","comment":"","uppercase_mapping":"016C","lowercase_mapping":"","titlecase_mapping":"016C","symbol":"\u016D"},367:{"value":"016F","name":"LATIN SMALL LETTER U WITH RING ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 030A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U RING","comment":"","uppercase_mapping":"016E","lowercase_mapping":"","titlecase_mapping":"016E","symbol":"\u016F"},369:{"value":"0171","name":"LATIN SMALL LETTER U WITH DOUBLE ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 030B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U DOUBLE ACUTE","comment":"","uppercase_mapping":"0170","lowercase_mapping":"","titlecase_mapping":"0170","symbol":"\u0171"},371:{"value":"0173","name":"LATIN SMALL LETTER U WITH OGONEK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0328","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U OGONEK","comment":"","uppercase_mapping":"0172","lowercase_mapping":"","titlecase_mapping":"0172","symbol":"\u0173"},373:{"value":"0175","name":"LATIN SMALL LETTER W WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0077 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER W CIRCUMFLEX","comment":"","uppercase_mapping":"0174","lowercase_mapping":"","titlecase_mapping":"0174","symbol":"\u0175"},375:{"value":"0177","name":"LATIN SMALL LETTER Y WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0079 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Y CIRCUMFLEX","comment":"","uppercase_mapping":"0176","lowercase_mapping":"","titlecase_mapping":"0176","symbol":"\u0177"},378:{"value":"017A","name":"LATIN SMALL LETTER Z WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"007A 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Z ACUTE","comment":"","uppercase_mapping":"0179","lowercase_mapping":"","titlecase_mapping":"0179","symbol":"\u017A"},380:{"value":"017C","name":"LATIN SMALL LETTER Z WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"007A 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Z DOT","comment":"","uppercase_mapping":"017B","lowercase_mapping":"","titlecase_mapping":"017B","symbol":"\u017C"},382:{"value":"017E","name":"LATIN SMALL LETTER Z WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"007A 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Z HACEK","comment":"","uppercase_mapping":"017D","lowercase_mapping":"","titlecase_mapping":"017D","symbol":"\u017E"},383:{"value":"017F","name":"LATIN SMALL LETTER LONG S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0053","lowercase_mapping":"","titlecase_mapping":"0053","symbol":"\u017F"},384:{"value":"0180","name":"LATIN SMALL LETTER B WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER B BAR","comment":"","uppercase_mapping":"0243","lowercase_mapping":"","titlecase_mapping":"0243","symbol":"\u0180"},387:{"value":"0183","name":"LATIN SMALL LETTER B WITH TOPBAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER B TOPBAR","comment":"","uppercase_mapping":"0182","lowercase_mapping":"","titlecase_mapping":"0182","symbol":"\u0183"},389:{"value":"0185","name":"LATIN SMALL LETTER TONE SIX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0184","lowercase_mapping":"","titlecase_mapping":"0184","symbol":"\u0185"},392:{"value":"0188","name":"LATIN SMALL LETTER C WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER C HOOK","comment":"","uppercase_mapping":"0187","lowercase_mapping":"","titlecase_mapping":"0187","symbol":"\u0188"},396:{"value":"018C","name":"LATIN SMALL LETTER D WITH TOPBAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER D TOPBAR","comment":"","uppercase_mapping":"018B","lowercase_mapping":"","titlecase_mapping":"018B","symbol":"\u018C"},397:{"value":"018D","name":"LATIN SMALL LETTER TURNED DELTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u018D"},402:{"value":"0192","name":"LATIN SMALL LETTER F WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER SCRIPT F","comment":"","uppercase_mapping":"0191","lowercase_mapping":"","titlecase_mapping":"0191","symbol":"\u0192"},405:{"value":"0195","name":"LATIN SMALL LETTER HV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER H V","comment":"","uppercase_mapping":"01F6","lowercase_mapping":"","titlecase_mapping":"01F6","symbol":"\u0195"},409:{"value":"0199","name":"LATIN SMALL LETTER K WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER K HOOK","comment":"","uppercase_mapping":"0198","lowercase_mapping":"","titlecase_mapping":"0198","symbol":"\u0199"},410:{"value":"019A","name":"LATIN SMALL LETTER L WITH BAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER BARRED L","comment":"","uppercase_mapping":"023D","lowercase_mapping":"","titlecase_mapping":"023D","symbol":"\u019A"},411:{"value":"019B","name":"LATIN SMALL LETTER LAMBDA WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER BARRED LAMBDA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u019B"},414:{"value":"019E","name":"LATIN SMALL LETTER N WITH LONG RIGHT LEG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0220","lowercase_mapping":"","titlecase_mapping":"0220","symbol":"\u019E"},417:{"value":"01A1","name":"LATIN SMALL LETTER O WITH HORN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 031B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O HORN","comment":"","uppercase_mapping":"01A0","lowercase_mapping":"","titlecase_mapping":"01A0","symbol":"\u01A1"},419:{"value":"01A3","name":"LATIN SMALL LETTER OI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O I","comment":"","uppercase_mapping":"01A2","lowercase_mapping":"","titlecase_mapping":"01A2","symbol":"\u01A3"},421:{"value":"01A5","name":"LATIN SMALL LETTER P WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER P HOOK","comment":"","uppercase_mapping":"01A4","lowercase_mapping":"","titlecase_mapping":"01A4","symbol":"\u01A5"},424:{"value":"01A8","name":"LATIN SMALL LETTER TONE TWO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01A7","lowercase_mapping":"","titlecase_mapping":"01A7","symbol":"\u01A8"},426:{"value":"01AA","name":"LATIN LETTER REVERSED ESH LOOP","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01AA"},427:{"value":"01AB","name":"LATIN SMALL LETTER T WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER T PALATAL HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01AB"},429:{"value":"01AD","name":"LATIN SMALL LETTER T WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER T HOOK","comment":"","uppercase_mapping":"01AC","lowercase_mapping":"","titlecase_mapping":"01AC","symbol":"\u01AD"},432:{"value":"01B0","name":"LATIN SMALL LETTER U WITH HORN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 031B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U HORN","comment":"","uppercase_mapping":"01AF","lowercase_mapping":"","titlecase_mapping":"01AF","symbol":"\u01B0"},436:{"value":"01B4","name":"LATIN SMALL LETTER Y WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Y HOOK","comment":"","uppercase_mapping":"01B3","lowercase_mapping":"","titlecase_mapping":"01B3","symbol":"\u01B4"},438:{"value":"01B6","name":"LATIN SMALL LETTER Z WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Z BAR","comment":"","uppercase_mapping":"01B5","lowercase_mapping":"","titlecase_mapping":"01B5","symbol":"\u01B6"},441:{"value":"01B9","name":"LATIN SMALL LETTER EZH REVERSED","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER REVERSED YOGH","comment":"","uppercase_mapping":"01B8","lowercase_mapping":"","titlecase_mapping":"01B8","symbol":"\u01B9"},442:{"value":"01BA","name":"LATIN SMALL LETTER EZH WITH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER YOGH WITH TAIL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01BA"},445:{"value":"01BD","name":"LATIN SMALL LETTER TONE FIVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01BC","lowercase_mapping":"","titlecase_mapping":"01BC","symbol":"\u01BD"},446:{"value":"01BE","name":"LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER INVERTED GLOTTAL STOP BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01BE"},447:{"value":"01BF","name":"LATIN LETTER WYNN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01F7","lowercase_mapping":"","titlecase_mapping":"01F7","symbol":"\u01BF"},454:{"value":"01C6","name":"LATIN SMALL LETTER DZ WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0064 017E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER D Z HACEK","comment":"","uppercase_mapping":"01C4","lowercase_mapping":"","titlecase_mapping":"01C5","symbol":"\u01C6"},457:{"value":"01C9","name":"LATIN SMALL LETTER LJ","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 006C 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER L J","comment":"","uppercase_mapping":"01C7","lowercase_mapping":"","titlecase_mapping":"01C8","symbol":"\u01C9"},460:{"value":"01CC","name":"LATIN SMALL LETTER NJ","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 006E 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER N J","comment":"","uppercase_mapping":"01CA","lowercase_mapping":"","titlecase_mapping":"01CB","symbol":"\u01CC"},462:{"value":"01CE","name":"LATIN SMALL LETTER A WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A HACEK","comment":"","uppercase_mapping":"01CD","lowercase_mapping":"","titlecase_mapping":"01CD","symbol":"\u01CE"},464:{"value":"01D0","name":"LATIN SMALL LETTER I WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER I HACEK","comment":"","uppercase_mapping":"01CF","lowercase_mapping":"","titlecase_mapping":"01CF","symbol":"\u01D0"},466:{"value":"01D2","name":"LATIN SMALL LETTER O WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O HACEK","comment":"","uppercase_mapping":"01D1","lowercase_mapping":"","titlecase_mapping":"01D1","symbol":"\u01D2"},468:{"value":"01D4","name":"LATIN SMALL LETTER U WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U HACEK","comment":"","uppercase_mapping":"01D3","lowercase_mapping":"","titlecase_mapping":"01D3","symbol":"\u01D4"},470:{"value":"01D6","name":"LATIN SMALL LETTER U WITH DIAERESIS AND MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00FC 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U DIAERESIS MACRON","comment":"","uppercase_mapping":"01D5","lowercase_mapping":"","titlecase_mapping":"01D5","symbol":"\u01D6"},472:{"value":"01D8","name":"LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00FC 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U DIAERESIS ACUTE","comment":"","uppercase_mapping":"01D7","lowercase_mapping":"","titlecase_mapping":"01D7","symbol":"\u01D8"},474:{"value":"01DA","name":"LATIN SMALL LETTER U WITH DIAERESIS AND CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00FC 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U DIAERESIS HACEK","comment":"","uppercase_mapping":"01D9","lowercase_mapping":"","titlecase_mapping":"01D9","symbol":"\u01DA"},476:{"value":"01DC","name":"LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00FC 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER U DIAERESIS GRAVE","comment":"","uppercase_mapping":"01DB","lowercase_mapping":"","titlecase_mapping":"01DB","symbol":"\u01DC"},477:{"value":"01DD","name":"LATIN SMALL LETTER TURNED E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"018E","lowercase_mapping":"","titlecase_mapping":"018E","symbol":"\u01DD"},479:{"value":"01DF","name":"LATIN SMALL LETTER A WITH DIAERESIS AND MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00E4 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A DIAERESIS MACRON","comment":"","uppercase_mapping":"01DE","lowercase_mapping":"","titlecase_mapping":"01DE","symbol":"\u01DF"},481:{"value":"01E1","name":"LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0227 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A DOT MACRON","comment":"","uppercase_mapping":"01E0","lowercase_mapping":"","titlecase_mapping":"01E0","symbol":"\u01E1"},483:{"value":"01E3","name":"LATIN SMALL LETTER AE WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00E6 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER A E MACRON","comment":"","uppercase_mapping":"01E2","lowercase_mapping":"","titlecase_mapping":"01E2","symbol":"\u01E3"},485:{"value":"01E5","name":"LATIN SMALL LETTER G WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER G BAR","comment":"","uppercase_mapping":"01E4","lowercase_mapping":"","titlecase_mapping":"01E4","symbol":"\u01E5"},487:{"value":"01E7","name":"LATIN SMALL LETTER G WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0067 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER G HACEK","comment":"","uppercase_mapping":"01E6","lowercase_mapping":"","titlecase_mapping":"01E6","symbol":"\u01E7"},489:{"value":"01E9","name":"LATIN SMALL LETTER K WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006B 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER K HACEK","comment":"","uppercase_mapping":"01E8","lowercase_mapping":"","titlecase_mapping":"01E8","symbol":"\u01E9"},491:{"value":"01EB","name":"LATIN SMALL LETTER O WITH OGONEK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0328","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O OGONEK","comment":"","uppercase_mapping":"01EA","lowercase_mapping":"","titlecase_mapping":"01EA","symbol":"\u01EB"},493:{"value":"01ED","name":"LATIN SMALL LETTER O WITH OGONEK AND MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01EB 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER O OGONEK MACRON","comment":"","uppercase_mapping":"01EC","lowercase_mapping":"","titlecase_mapping":"01EC","symbol":"\u01ED"},495:{"value":"01EF","name":"LATIN SMALL LETTER EZH WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0292 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER YOGH HACEK","comment":"","uppercase_mapping":"01EE","lowercase_mapping":"","titlecase_mapping":"01EE","symbol":"\u01EF"},496:{"value":"01F0","name":"LATIN SMALL LETTER J WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006A 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER J HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01F0"},499:{"value":"01F3","name":"LATIN SMALL LETTER DZ","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0064 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01F1","lowercase_mapping":"","titlecase_mapping":"01F2","symbol":"\u01F3"},501:{"value":"01F5","name":"LATIN SMALL LETTER G WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0067 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01F4","lowercase_mapping":"","titlecase_mapping":"01F4","symbol":"\u01F5"},505:{"value":"01F9","name":"LATIN SMALL LETTER N WITH GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006E 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01F8","lowercase_mapping":"","titlecase_mapping":"01F8","symbol":"\u01F9"},507:{"value":"01FB","name":"LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00E5 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01FA","lowercase_mapping":"","titlecase_mapping":"01FA","symbol":"\u01FB"},509:{"value":"01FD","name":"LATIN SMALL LETTER AE WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00E6 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01FC","lowercase_mapping":"","titlecase_mapping":"01FC","symbol":"\u01FD"},511:{"value":"01FF","name":"LATIN SMALL LETTER O WITH STROKE AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00F8 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01FE","lowercase_mapping":"","titlecase_mapping":"01FE","symbol":"\u01FF"},513:{"value":"0201","name":"LATIN SMALL LETTER A WITH DOUBLE GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0200","lowercase_mapping":"","titlecase_mapping":"0200","symbol":"\u0201"},515:{"value":"0203","name":"LATIN SMALL LETTER A WITH INVERTED BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0202","lowercase_mapping":"","titlecase_mapping":"0202","symbol":"\u0203"},517:{"value":"0205","name":"LATIN SMALL LETTER E WITH DOUBLE GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0204","lowercase_mapping":"","titlecase_mapping":"0204","symbol":"\u0205"},519:{"value":"0207","name":"LATIN SMALL LETTER E WITH INVERTED BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0206","lowercase_mapping":"","titlecase_mapping":"0206","symbol":"\u0207"},521:{"value":"0209","name":"LATIN SMALL LETTER I WITH DOUBLE GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0208","lowercase_mapping":"","titlecase_mapping":"0208","symbol":"\u0209"},523:{"value":"020B","name":"LATIN SMALL LETTER I WITH INVERTED BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"020A","lowercase_mapping":"","titlecase_mapping":"020A","symbol":"\u020B"},525:{"value":"020D","name":"LATIN SMALL LETTER O WITH DOUBLE GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"020C","lowercase_mapping":"","titlecase_mapping":"020C","symbol":"\u020D"},527:{"value":"020F","name":"LATIN SMALL LETTER O WITH INVERTED BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"020E","lowercase_mapping":"","titlecase_mapping":"020E","symbol":"\u020F"},529:{"value":"0211","name":"LATIN SMALL LETTER R WITH DOUBLE GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0072 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0210","lowercase_mapping":"","titlecase_mapping":"0210","symbol":"\u0211"},531:{"value":"0213","name":"LATIN SMALL LETTER R WITH INVERTED BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0072 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0212","lowercase_mapping":"","titlecase_mapping":"0212","symbol":"\u0213"},533:{"value":"0215","name":"LATIN SMALL LETTER U WITH DOUBLE GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0214","lowercase_mapping":"","titlecase_mapping":"0214","symbol":"\u0215"},535:{"value":"0217","name":"LATIN SMALL LETTER U WITH INVERTED BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0311","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0216","lowercase_mapping":"","titlecase_mapping":"0216","symbol":"\u0217"},537:{"value":"0219","name":"LATIN SMALL LETTER S WITH COMMA BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0073 0326","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0218","lowercase_mapping":"","titlecase_mapping":"0218","symbol":"\u0219"},539:{"value":"021B","name":"LATIN SMALL LETTER T WITH COMMA BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0074 0326","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"021A","lowercase_mapping":"","titlecase_mapping":"021A","symbol":"\u021B"},541:{"value":"021D","name":"LATIN SMALL LETTER YOGH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"021C","lowercase_mapping":"","titlecase_mapping":"021C","symbol":"\u021D"},543:{"value":"021F","name":"LATIN SMALL LETTER H WITH CARON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0068 030C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"021E","lowercase_mapping":"","titlecase_mapping":"021E","symbol":"\u021F"},545:{"value":"0221","name":"LATIN SMALL LETTER D WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0221"},547:{"value":"0223","name":"LATIN SMALL LETTER OU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0222","lowercase_mapping":"","titlecase_mapping":"0222","symbol":"\u0223"},549:{"value":"0225","name":"LATIN SMALL LETTER Z WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0224","lowercase_mapping":"","titlecase_mapping":"0224","symbol":"\u0225"},551:{"value":"0227","name":"LATIN SMALL LETTER A WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0226","lowercase_mapping":"","titlecase_mapping":"0226","symbol":"\u0227"},553:{"value":"0229","name":"LATIN SMALL LETTER E WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0228","lowercase_mapping":"","titlecase_mapping":"0228","symbol":"\u0229"},555:{"value":"022B","name":"LATIN SMALL LETTER O WITH DIAERESIS AND MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00F6 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"022A","lowercase_mapping":"","titlecase_mapping":"022A","symbol":"\u022B"},557:{"value":"022D","name":"LATIN SMALL LETTER O WITH TILDE AND MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00F5 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"022C","lowercase_mapping":"","titlecase_mapping":"022C","symbol":"\u022D"},559:{"value":"022F","name":"LATIN SMALL LETTER O WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"022E","lowercase_mapping":"","titlecase_mapping":"022E","symbol":"\u022F"},561:{"value":"0231","name":"LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"022F 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0230","lowercase_mapping":"","titlecase_mapping":"0230","symbol":"\u0231"},563:{"value":"0233","name":"LATIN SMALL LETTER Y WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0079 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0232","lowercase_mapping":"","titlecase_mapping":"0232","symbol":"\u0233"},564:{"value":"0234","name":"LATIN SMALL LETTER L WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0234"},565:{"value":"0235","name":"LATIN SMALL LETTER N WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0235"},566:{"value":"0236","name":"LATIN SMALL LETTER T WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0236"},567:{"value":"0237","name":"LATIN SMALL LETTER DOTLESS J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0237"},568:{"value":"0238","name":"LATIN SMALL LETTER DB DIGRAPH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0238"},569:{"value":"0239","name":"LATIN SMALL LETTER QP DIGRAPH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0239"},572:{"value":"023C","name":"LATIN SMALL LETTER C WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"023B","lowercase_mapping":"","titlecase_mapping":"023B","symbol":"\u023C"},575:{"value":"023F","name":"LATIN SMALL LETTER S WITH SWASH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C7E","lowercase_mapping":"","titlecase_mapping":"2C7E","symbol":"\u023F"},576:{"value":"0240","name":"LATIN SMALL LETTER Z WITH SWASH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C7F","lowercase_mapping":"","titlecase_mapping":"2C7F","symbol":"\u0240"},578:{"value":"0242","name":"LATIN SMALL LETTER GLOTTAL STOP","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0241","lowercase_mapping":"","titlecase_mapping":"0241","symbol":"\u0242"},583:{"value":"0247","name":"LATIN SMALL LETTER E WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0246","lowercase_mapping":"","titlecase_mapping":"0246","symbol":"\u0247"},585:{"value":"0249","name":"LATIN SMALL LETTER J WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0248","lowercase_mapping":"","titlecase_mapping":"0248","symbol":"\u0249"},587:{"value":"024B","name":"LATIN SMALL LETTER Q WITH HOOK TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"024A","lowercase_mapping":"","titlecase_mapping":"024A","symbol":"\u024B"},589:{"value":"024D","name":"LATIN SMALL LETTER R WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"024C","lowercase_mapping":"","titlecase_mapping":"024C","symbol":"\u024D"},591:{"value":"024F","name":"LATIN SMALL LETTER Y WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"024E","lowercase_mapping":"","titlecase_mapping":"024E","symbol":"\u024F"},592:{"value":"0250","name":"LATIN SMALL LETTER TURNED A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C6F","lowercase_mapping":"","titlecase_mapping":"2C6F","symbol":"\u0250"},593:{"value":"0251","name":"LATIN SMALL LETTER ALPHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER SCRIPT A","comment":"","uppercase_mapping":"2C6D","lowercase_mapping":"","titlecase_mapping":"2C6D","symbol":"\u0251"},594:{"value":"0252","name":"LATIN SMALL LETTER TURNED ALPHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER TURNED SCRIPT A","comment":"","uppercase_mapping":"2C70","lowercase_mapping":"","titlecase_mapping":"2C70","symbol":"\u0252"},595:{"value":"0253","name":"LATIN SMALL LETTER B WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER B HOOK","comment":"","uppercase_mapping":"0181","lowercase_mapping":"","titlecase_mapping":"0181","symbol":"\u0253"},596:{"value":"0254","name":"LATIN SMALL LETTER OPEN O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0186","lowercase_mapping":"","titlecase_mapping":"0186","symbol":"\u0254"},597:{"value":"0255","name":"LATIN SMALL LETTER C WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER C CURL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0255"},598:{"value":"0256","name":"LATIN SMALL LETTER D WITH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER D RETROFLEX HOOK","comment":"","uppercase_mapping":"0189","lowercase_mapping":"","titlecase_mapping":"0189","symbol":"\u0256"},599:{"value":"0257","name":"LATIN SMALL LETTER D WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER D HOOK","comment":"","uppercase_mapping":"018A","lowercase_mapping":"","titlecase_mapping":"018A","symbol":"\u0257"},600:{"value":"0258","name":"LATIN SMALL LETTER REVERSED E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0258"},601:{"value":"0259","name":"LATIN SMALL LETTER SCHWA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"018F","lowercase_mapping":"","titlecase_mapping":"018F","symbol":"\u0259"},602:{"value":"025A","name":"LATIN SMALL LETTER SCHWA WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER SCHWA HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u025A"},603:{"value":"025B","name":"LATIN SMALL LETTER OPEN E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER EPSILON","comment":"","uppercase_mapping":"0190","lowercase_mapping":"","titlecase_mapping":"0190","symbol":"\u025B"},604:{"value":"025C","name":"LATIN SMALL LETTER REVERSED OPEN E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER REVERSED EPSILON","comment":"","uppercase_mapping":"A7AB","lowercase_mapping":"","titlecase_mapping":"A7AB","symbol":"\u025C"},605:{"value":"025D","name":"LATIN SMALL LETTER REVERSED OPEN E WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER REVERSED EPSILON HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u025D"},606:{"value":"025E","name":"LATIN SMALL LETTER CLOSED REVERSED OPEN E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER CLOSED REVERSED EPSILON","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u025E"},607:{"value":"025F","name":"LATIN SMALL LETTER DOTLESS J WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER DOTLESS J BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u025F"},608:{"value":"0260","name":"LATIN SMALL LETTER G WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER G HOOK","comment":"","uppercase_mapping":"0193","lowercase_mapping":"","titlecase_mapping":"0193","symbol":"\u0260"},609:{"value":"0261","name":"LATIN SMALL LETTER SCRIPT G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7AC","lowercase_mapping":"","titlecase_mapping":"A7AC","symbol":"\u0261"},610:{"value":"0262","name":"LATIN LETTER SMALL CAPITAL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0262"},611:{"value":"0263","name":"LATIN SMALL LETTER GAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0194","lowercase_mapping":"","titlecase_mapping":"0194","symbol":"\u0263"},612:{"value":"0264","name":"LATIN SMALL LETTER RAMS HORN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER BABY GAMMA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0264"},613:{"value":"0265","name":"LATIN SMALL LETTER TURNED H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A78D","lowercase_mapping":"","titlecase_mapping":"A78D","symbol":"\u0265"},614:{"value":"0266","name":"LATIN SMALL LETTER H WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER H HOOK","comment":"","uppercase_mapping":"A7AA","lowercase_mapping":"","titlecase_mapping":"A7AA","symbol":"\u0266"},615:{"value":"0267","name":"LATIN SMALL LETTER HENG WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER HENG HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0267"},616:{"value":"0268","name":"LATIN SMALL LETTER I WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER BARRED I","comment":"","uppercase_mapping":"0197","lowercase_mapping":"","titlecase_mapping":"0197","symbol":"\u0268"},617:{"value":"0269","name":"LATIN SMALL LETTER IOTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0196","lowercase_mapping":"","titlecase_mapping":"0196","symbol":"\u0269"},618:{"value":"026A","name":"LATIN LETTER SMALL CAPITAL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7AE","lowercase_mapping":"","titlecase_mapping":"A7AE","symbol":"\u026A"},619:{"value":"026B","name":"LATIN SMALL LETTER L WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C62","lowercase_mapping":"","titlecase_mapping":"2C62","symbol":"\u026B"},620:{"value":"026C","name":"LATIN SMALL LETTER L WITH BELT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER L BELT","comment":"","uppercase_mapping":"A7AD","lowercase_mapping":"","titlecase_mapping":"A7AD","symbol":"\u026C"},621:{"value":"026D","name":"LATIN SMALL LETTER L WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER L RETROFLEX HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u026D"},622:{"value":"026E","name":"LATIN SMALL LETTER LEZH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER L YOGH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u026E"},623:{"value":"026F","name":"LATIN SMALL LETTER TURNED M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"019C","lowercase_mapping":"","titlecase_mapping":"019C","symbol":"\u026F"},624:{"value":"0270","name":"LATIN SMALL LETTER TURNED M WITH LONG LEG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0270"},625:{"value":"0271","name":"LATIN SMALL LETTER M WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER M HOOK","comment":"","uppercase_mapping":"2C6E","lowercase_mapping":"","titlecase_mapping":"2C6E","symbol":"\u0271"},626:{"value":"0272","name":"LATIN SMALL LETTER N WITH LEFT HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER N HOOK","comment":"","uppercase_mapping":"019D","lowercase_mapping":"","titlecase_mapping":"019D","symbol":"\u0272"},627:{"value":"0273","name":"LATIN SMALL LETTER N WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER N RETROFLEX HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0273"},628:{"value":"0274","name":"LATIN LETTER SMALL CAPITAL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0274"},629:{"value":"0275","name":"LATIN SMALL LETTER BARRED O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"019F","lowercase_mapping":"","titlecase_mapping":"019F","symbol":"\u0275"},630:{"value":"0276","name":"LATIN LETTER SMALL CAPITAL OE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER SMALL CAPITAL O E","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0276"},631:{"value":"0277","name":"LATIN SMALL LETTER CLOSED OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0277"},632:{"value":"0278","name":"LATIN SMALL LETTER PHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0278"},633:{"value":"0279","name":"LATIN SMALL LETTER TURNED R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0279"},634:{"value":"027A","name":"LATIN SMALL LETTER TURNED R WITH LONG LEG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u027A"},635:{"value":"027B","name":"LATIN SMALL LETTER TURNED R WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER TURNED R HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u027B"},636:{"value":"027C","name":"LATIN SMALL LETTER R WITH LONG LEG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u027C"},637:{"value":"027D","name":"LATIN SMALL LETTER R WITH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER R HOOK","comment":"","uppercase_mapping":"2C64","lowercase_mapping":"","titlecase_mapping":"2C64","symbol":"\u027D"},638:{"value":"027E","name":"LATIN SMALL LETTER R WITH FISHHOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER FISHHOOK R","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u027E"},639:{"value":"027F","name":"LATIN SMALL LETTER REVERSED R WITH FISHHOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER REVERSED FISHHOOK R","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u027F"},640:{"value":"0280","name":"LATIN LETTER SMALL CAPITAL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01A6","lowercase_mapping":"","titlecase_mapping":"01A6","symbol":"\u0280"},641:{"value":"0281","name":"LATIN LETTER SMALL CAPITAL INVERTED R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0281"},642:{"value":"0282","name":"LATIN SMALL LETTER S WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER S HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0282"},643:{"value":"0283","name":"LATIN SMALL LETTER ESH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01A9","lowercase_mapping":"","titlecase_mapping":"01A9","symbol":"\u0283"},644:{"value":"0284","name":"LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER DOTLESS J BAR HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0284"},645:{"value":"0285","name":"LATIN SMALL LETTER SQUAT REVERSED ESH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0285"},646:{"value":"0286","name":"LATIN SMALL LETTER ESH WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER ESH CURL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0286"},647:{"value":"0287","name":"LATIN SMALL LETTER TURNED T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7B1","lowercase_mapping":"","titlecase_mapping":"A7B1","symbol":"\u0287"},648:{"value":"0288","name":"LATIN SMALL LETTER T WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER T RETROFLEX HOOK","comment":"","uppercase_mapping":"01AE","lowercase_mapping":"","titlecase_mapping":"01AE","symbol":"\u0288"},649:{"value":"0289","name":"LATIN SMALL LETTER U BAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0244","lowercase_mapping":"","titlecase_mapping":"0244","symbol":"\u0289"},650:{"value":"028A","name":"LATIN SMALL LETTER UPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01B1","lowercase_mapping":"","titlecase_mapping":"01B1","symbol":"\u028A"},651:{"value":"028B","name":"LATIN SMALL LETTER V WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER SCRIPT V","comment":"","uppercase_mapping":"01B2","lowercase_mapping":"","titlecase_mapping":"01B2","symbol":"\u028B"},652:{"value":"028C","name":"LATIN SMALL LETTER TURNED V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0245","lowercase_mapping":"","titlecase_mapping":"0245","symbol":"\u028C"},653:{"value":"028D","name":"LATIN SMALL LETTER TURNED W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u028D"},654:{"value":"028E","name":"LATIN SMALL LETTER TURNED Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u028E"},655:{"value":"028F","name":"LATIN LETTER SMALL CAPITAL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u028F"},656:{"value":"0290","name":"LATIN SMALL LETTER Z WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Z RETROFLEX HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0290"},657:{"value":"0291","name":"LATIN SMALL LETTER Z WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Z CURL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0291"},658:{"value":"0292","name":"LATIN SMALL LETTER EZH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER YOGH","comment":"","uppercase_mapping":"01B7","lowercase_mapping":"","titlecase_mapping":"01B7","symbol":"\u0292"},659:{"value":"0293","name":"LATIN SMALL LETTER EZH WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER YOGH CURL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0293"},661:{"value":"0295","name":"LATIN LETTER PHARYNGEAL VOICED FRICATIVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER REVERSED GLOTTAL STOP","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0295"},662:{"value":"0296","name":"LATIN LETTER INVERTED GLOTTAL STOP","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0296"},663:{"value":"0297","name":"LATIN LETTER STRETCHED C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0297"},664:{"value":"0298","name":"LATIN LETTER BILABIAL CLICK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER BULLSEYE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0298"},665:{"value":"0299","name":"LATIN LETTER SMALL CAPITAL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0299"},666:{"value":"029A","name":"LATIN SMALL LETTER CLOSED OPEN E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER CLOSED EPSILON","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u029A"},667:{"value":"029B","name":"LATIN LETTER SMALL CAPITAL G WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER SMALL CAPITAL G HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u029B"},668:{"value":"029C","name":"LATIN LETTER SMALL CAPITAL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u029C"},669:{"value":"029D","name":"LATIN SMALL LETTER J WITH CROSSED-TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER CROSSED-TAIL J","comment":"","uppercase_mapping":"A7B2","lowercase_mapping":"","titlecase_mapping":"A7B2","symbol":"\u029D"},670:{"value":"029E","name":"LATIN SMALL LETTER TURNED K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7B0","lowercase_mapping":"","titlecase_mapping":"A7B0","symbol":"\u029E"},671:{"value":"029F","name":"LATIN LETTER SMALL CAPITAL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u029F"},672:{"value":"02A0","name":"LATIN SMALL LETTER Q WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER Q HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A0"},673:{"value":"02A1","name":"LATIN LETTER GLOTTAL STOP WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER GLOTTAL STOP BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A1"},674:{"value":"02A2","name":"LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER REVERSED GLOTTAL STOP BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A2"},675:{"value":"02A3","name":"LATIN SMALL LETTER DZ DIGRAPH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER D Z","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A3"},676:{"value":"02A4","name":"LATIN SMALL LETTER DEZH DIGRAPH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER D YOGH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A4"},677:{"value":"02A5","name":"LATIN SMALL LETTER DZ DIGRAPH WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER D Z CURL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A5"},678:{"value":"02A6","name":"LATIN SMALL LETTER TS DIGRAPH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER T S","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A6"},679:{"value":"02A7","name":"LATIN SMALL LETTER TESH DIGRAPH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER T ESH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A7"},680:{"value":"02A8","name":"LATIN SMALL LETTER TC DIGRAPH WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN SMALL LETTER T C CURL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A8"},681:{"value":"02A9","name":"LATIN SMALL LETTER FENG DIGRAPH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A9"},682:{"value":"02AA","name":"LATIN SMALL LETTER LS DIGRAPH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AA"},683:{"value":"02AB","name":"LATIN SMALL LETTER LZ DIGRAPH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AB"},684:{"value":"02AC","name":"LATIN LETTER BILABIAL PERCUSSIVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AC"},685:{"value":"02AD","name":"LATIN LETTER BIDENTAL PERCUSSIVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AD"},686:{"value":"02AE","name":"LATIN SMALL LETTER TURNED H WITH FISHHOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AE"},687:{"value":"02AF","name":"LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AF"},881:{"value":"0371","name":"GREEK SMALL LETTER HETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0370","lowercase_mapping":"","titlecase_mapping":"0370","symbol":"\u0371"},883:{"value":"0373","name":"GREEK SMALL LETTER ARCHAIC SAMPI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0372","lowercase_mapping":"","titlecase_mapping":"0372","symbol":"\u0373"},887:{"value":"0377","name":"GREEK SMALL LETTER PAMPHYLIAN DIGAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0376","lowercase_mapping":"","titlecase_mapping":"0376","symbol":"\u0377"},891:{"value":"037B","name":"GREEK SMALL REVERSED LUNATE SIGMA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03FD","lowercase_mapping":"","titlecase_mapping":"03FD","symbol":"\u037B"},892:{"value":"037C","name":"GREEK SMALL DOTTED LUNATE SIGMA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03FE","lowercase_mapping":"","titlecase_mapping":"03FE","symbol":"\u037C"},893:{"value":"037D","name":"GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03FF","lowercase_mapping":"","titlecase_mapping":"03FF","symbol":"\u037D"},912:{"value":"0390","name":"GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03CA 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER IOTA DIAERESIS TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0390"},940:{"value":"03AC","name":"GREEK SMALL LETTER ALPHA WITH TONOS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B1 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER ALPHA TONOS","comment":"","uppercase_mapping":"0386","lowercase_mapping":"","titlecase_mapping":"0386","symbol":"\u03AC"},941:{"value":"03AD","name":"GREEK SMALL LETTER EPSILON WITH TONOS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B5 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER EPSILON TONOS","comment":"","uppercase_mapping":"0388","lowercase_mapping":"","titlecase_mapping":"0388","symbol":"\u03AD"},942:{"value":"03AE","name":"GREEK SMALL LETTER ETA WITH TONOS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B7 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER ETA TONOS","comment":"","uppercase_mapping":"0389","lowercase_mapping":"","titlecase_mapping":"0389","symbol":"\u03AE"},943:{"value":"03AF","name":"GREEK SMALL LETTER IOTA WITH TONOS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B9 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER IOTA TONOS","comment":"","uppercase_mapping":"038A","lowercase_mapping":"","titlecase_mapping":"038A","symbol":"\u03AF"},944:{"value":"03B0","name":"GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03CB 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER UPSILON DIAERESIS TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B0"},945:{"value":"03B1","name":"GREEK SMALL LETTER ALPHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0391","lowercase_mapping":"","titlecase_mapping":"0391","symbol":"\u03B1"},946:{"value":"03B2","name":"GREEK SMALL LETTER BETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0392","lowercase_mapping":"","titlecase_mapping":"0392","symbol":"\u03B2"},947:{"value":"03B3","name":"GREEK SMALL LETTER GAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0393","lowercase_mapping":"","titlecase_mapping":"0393","symbol":"\u03B3"},948:{"value":"03B4","name":"GREEK SMALL LETTER DELTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0394","lowercase_mapping":"","titlecase_mapping":"0394","symbol":"\u03B4"},949:{"value":"03B5","name":"GREEK SMALL LETTER EPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0395","lowercase_mapping":"","titlecase_mapping":"0395","symbol":"\u03B5"},950:{"value":"03B6","name":"GREEK SMALL LETTER ZETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0396","lowercase_mapping":"","titlecase_mapping":"0396","symbol":"\u03B6"},951:{"value":"03B7","name":"GREEK SMALL LETTER ETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0397","lowercase_mapping":"","titlecase_mapping":"0397","symbol":"\u03B7"},952:{"value":"03B8","name":"GREEK SMALL LETTER THETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0398","lowercase_mapping":"","titlecase_mapping":"0398","symbol":"\u03B8"},953:{"value":"03B9","name":"GREEK SMALL LETTER IOTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0399","lowercase_mapping":"","titlecase_mapping":"0399","symbol":"\u03B9"},954:{"value":"03BA","name":"GREEK SMALL LETTER KAPPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"039A","lowercase_mapping":"","titlecase_mapping":"039A","symbol":"\u03BA"},955:{"value":"03BB","name":"GREEK SMALL LETTER LAMDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER LAMBDA","comment":"","uppercase_mapping":"039B","lowercase_mapping":"","titlecase_mapping":"039B","symbol":"\u03BB"},956:{"value":"03BC","name":"GREEK SMALL LETTER MU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"039C","lowercase_mapping":"","titlecase_mapping":"039C","symbol":"\u03BC"},957:{"value":"03BD","name":"GREEK SMALL LETTER NU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"039D","lowercase_mapping":"","titlecase_mapping":"039D","symbol":"\u03BD"},958:{"value":"03BE","name":"GREEK SMALL LETTER XI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"039E","lowercase_mapping":"","titlecase_mapping":"039E","symbol":"\u03BE"},959:{"value":"03BF","name":"GREEK SMALL LETTER OMICRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"039F","lowercase_mapping":"","titlecase_mapping":"039F","symbol":"\u03BF"},960:{"value":"03C0","name":"GREEK SMALL LETTER PI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03A0","lowercase_mapping":"","titlecase_mapping":"03A0","symbol":"\u03C0"},961:{"value":"03C1","name":"GREEK SMALL LETTER RHO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03A1","lowercase_mapping":"","titlecase_mapping":"03A1","symbol":"\u03C1"},962:{"value":"03C2","name":"GREEK SMALL LETTER FINAL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03A3","lowercase_mapping":"","titlecase_mapping":"03A3","symbol":"\u03C2"},963:{"value":"03C3","name":"GREEK SMALL LETTER SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03A3","lowercase_mapping":"","titlecase_mapping":"03A3","symbol":"\u03C3"},964:{"value":"03C4","name":"GREEK SMALL LETTER TAU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03A4","lowercase_mapping":"","titlecase_mapping":"03A4","symbol":"\u03C4"},965:{"value":"03C5","name":"GREEK SMALL LETTER UPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03A5","lowercase_mapping":"","titlecase_mapping":"03A5","symbol":"\u03C5"},966:{"value":"03C6","name":"GREEK SMALL LETTER PHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03A6","lowercase_mapping":"","titlecase_mapping":"03A6","symbol":"\u03C6"},967:{"value":"03C7","name":"GREEK SMALL LETTER CHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03A7","lowercase_mapping":"","titlecase_mapping":"03A7","symbol":"\u03C7"},968:{"value":"03C8","name":"GREEK SMALL LETTER PSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03A8","lowercase_mapping":"","titlecase_mapping":"03A8","symbol":"\u03C8"},969:{"value":"03C9","name":"GREEK SMALL LETTER OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03A9","lowercase_mapping":"","titlecase_mapping":"03A9","symbol":"\u03C9"},970:{"value":"03CA","name":"GREEK SMALL LETTER IOTA WITH DIALYTIKA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B9 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER IOTA DIAERESIS","comment":"","uppercase_mapping":"03AA","lowercase_mapping":"","titlecase_mapping":"03AA","symbol":"\u03CA"},971:{"value":"03CB","name":"GREEK SMALL LETTER UPSILON WITH DIALYTIKA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C5 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER UPSILON DIAERESIS","comment":"","uppercase_mapping":"03AB","lowercase_mapping":"","titlecase_mapping":"03AB","symbol":"\u03CB"},972:{"value":"03CC","name":"GREEK SMALL LETTER OMICRON WITH TONOS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03BF 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER OMICRON TONOS","comment":"","uppercase_mapping":"038C","lowercase_mapping":"","titlecase_mapping":"038C","symbol":"\u03CC"},973:{"value":"03CD","name":"GREEK SMALL LETTER UPSILON WITH TONOS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C5 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER UPSILON TONOS","comment":"","uppercase_mapping":"038E","lowercase_mapping":"","titlecase_mapping":"038E","symbol":"\u03CD"},974:{"value":"03CE","name":"GREEK SMALL LETTER OMEGA WITH TONOS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C9 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER OMEGA TONOS","comment":"","uppercase_mapping":"038F","lowercase_mapping":"","titlecase_mapping":"038F","symbol":"\u03CE"},976:{"value":"03D0","name":"GREEK BETA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 03B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER CURLED BETA","comment":"","uppercase_mapping":"0392","lowercase_mapping":"","titlecase_mapping":"0392","symbol":"\u03D0"},977:{"value":"03D1","name":"GREEK THETA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 03B8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER SCRIPT THETA","comment":"","uppercase_mapping":"0398","lowercase_mapping":"","titlecase_mapping":"0398","symbol":"\u03D1"},981:{"value":"03D5","name":"GREEK PHI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 03C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER SCRIPT PHI","comment":"","uppercase_mapping":"03A6","lowercase_mapping":"","titlecase_mapping":"03A6","symbol":"\u03D5"},982:{"value":"03D6","name":"GREEK PI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 03C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER OMEGA PI","comment":"","uppercase_mapping":"03A0","lowercase_mapping":"","titlecase_mapping":"03A0","symbol":"\u03D6"},983:{"value":"03D7","name":"GREEK KAI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03CF","lowercase_mapping":"","titlecase_mapping":"03CF","symbol":"\u03D7"},985:{"value":"03D9","name":"GREEK SMALL LETTER ARCHAIC KOPPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03D8","lowercase_mapping":"","titlecase_mapping":"03D8","symbol":"\u03D9"},987:{"value":"03DB","name":"GREEK SMALL LETTER STIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03DA","lowercase_mapping":"","titlecase_mapping":"03DA","symbol":"\u03DB"},989:{"value":"03DD","name":"GREEK SMALL LETTER DIGAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03DC","lowercase_mapping":"","titlecase_mapping":"03DC","symbol":"\u03DD"},991:{"value":"03DF","name":"GREEK SMALL LETTER KOPPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03DE","lowercase_mapping":"","titlecase_mapping":"03DE","symbol":"\u03DF"},993:{"value":"03E1","name":"GREEK SMALL LETTER SAMPI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03E0","lowercase_mapping":"","titlecase_mapping":"03E0","symbol":"\u03E1"},995:{"value":"03E3","name":"COPTIC SMALL LETTER SHEI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER SHEI","comment":"","uppercase_mapping":"03E2","lowercase_mapping":"","titlecase_mapping":"03E2","symbol":"\u03E3"},997:{"value":"03E5","name":"COPTIC SMALL LETTER FEI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER FEI","comment":"","uppercase_mapping":"03E4","lowercase_mapping":"","titlecase_mapping":"03E4","symbol":"\u03E5"},999:{"value":"03E7","name":"COPTIC SMALL LETTER KHEI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER KHEI","comment":"","uppercase_mapping":"03E6","lowercase_mapping":"","titlecase_mapping":"03E6","symbol":"\u03E7"},1001:{"value":"03E9","name":"COPTIC SMALL LETTER HORI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER HORI","comment":"","uppercase_mapping":"03E8","lowercase_mapping":"","titlecase_mapping":"03E8","symbol":"\u03E9"},1003:{"value":"03EB","name":"COPTIC SMALL LETTER GANGIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER GANGIA","comment":"","uppercase_mapping":"03EA","lowercase_mapping":"","titlecase_mapping":"03EA","symbol":"\u03EB"},1005:{"value":"03ED","name":"COPTIC SMALL LETTER SHIMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER SHIMA","comment":"","uppercase_mapping":"03EC","lowercase_mapping":"","titlecase_mapping":"03EC","symbol":"\u03ED"},1007:{"value":"03EF","name":"COPTIC SMALL LETTER DEI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER DEI","comment":"","uppercase_mapping":"03EE","lowercase_mapping":"","titlecase_mapping":"03EE","symbol":"\u03EF"},1008:{"value":"03F0","name":"GREEK KAPPA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 03BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER SCRIPT KAPPA","comment":"","uppercase_mapping":"039A","lowercase_mapping":"","titlecase_mapping":"039A","symbol":"\u03F0"},1009:{"value":"03F1","name":"GREEK RHO SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 03C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER TAILED RHO","comment":"","uppercase_mapping":"03A1","lowercase_mapping":"","titlecase_mapping":"03A1","symbol":"\u03F1"},1010:{"value":"03F2","name":"GREEK LUNATE SIGMA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 03C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SMALL LETTER LUNATE SIGMA","comment":"","uppercase_mapping":"03F9","lowercase_mapping":"","titlecase_mapping":"03F9","symbol":"\u03F2"},1011:{"value":"03F3","name":"GREEK LETTER YOT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"037F","lowercase_mapping":"","titlecase_mapping":"037F","symbol":"\u03F3"},1013:{"value":"03F5","name":"GREEK LUNATE EPSILON SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 03B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0395","lowercase_mapping":"","titlecase_mapping":"0395","symbol":"\u03F5"},1016:{"value":"03F8","name":"GREEK SMALL LETTER SHO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03F7","lowercase_mapping":"","titlecase_mapping":"03F7","symbol":"\u03F8"},1019:{"value":"03FB","name":"GREEK SMALL LETTER SAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"03FA","lowercase_mapping":"","titlecase_mapping":"03FA","symbol":"\u03FB"},1020:{"value":"03FC","name":"GREEK RHO WITH STROKE SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03FC"},1072:{"value":"0430","name":"CYRILLIC SMALL LETTER A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0410","lowercase_mapping":"","titlecase_mapping":"0410","symbol":"\u0430"},1073:{"value":"0431","name":"CYRILLIC SMALL LETTER BE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0411","lowercase_mapping":"","titlecase_mapping":"0411","symbol":"\u0431"},1074:{"value":"0432","name":"CYRILLIC SMALL LETTER VE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0412","lowercase_mapping":"","titlecase_mapping":"0412","symbol":"\u0432"},1075:{"value":"0433","name":"CYRILLIC SMALL LETTER GHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER GE","comment":"","uppercase_mapping":"0413","lowercase_mapping":"","titlecase_mapping":"0413","symbol":"\u0433"},1076:{"value":"0434","name":"CYRILLIC SMALL LETTER DE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0414","lowercase_mapping":"","titlecase_mapping":"0414","symbol":"\u0434"},1077:{"value":"0435","name":"CYRILLIC SMALL LETTER IE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0415","lowercase_mapping":"","titlecase_mapping":"0415","symbol":"\u0435"},1078:{"value":"0436","name":"CYRILLIC SMALL LETTER ZHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0416","lowercase_mapping":"","titlecase_mapping":"0416","symbol":"\u0436"},1079:{"value":"0437","name":"CYRILLIC SMALL LETTER ZE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0417","lowercase_mapping":"","titlecase_mapping":"0417","symbol":"\u0437"},1080:{"value":"0438","name":"CYRILLIC SMALL LETTER I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER II","comment":"","uppercase_mapping":"0418","lowercase_mapping":"","titlecase_mapping":"0418","symbol":"\u0438"},1081:{"value":"0439","name":"CYRILLIC SMALL LETTER SHORT I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0438 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER SHORT II","comment":"","uppercase_mapping":"0419","lowercase_mapping":"","titlecase_mapping":"0419","symbol":"\u0439"},1082:{"value":"043A","name":"CYRILLIC SMALL LETTER KA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"041A","lowercase_mapping":"","titlecase_mapping":"041A","symbol":"\u043A"},1083:{"value":"043B","name":"CYRILLIC SMALL LETTER EL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"041B","lowercase_mapping":"","titlecase_mapping":"041B","symbol":"\u043B"},1084:{"value":"043C","name":"CYRILLIC SMALL LETTER EM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"041C","lowercase_mapping":"","titlecase_mapping":"041C","symbol":"\u043C"},1085:{"value":"043D","name":"CYRILLIC SMALL LETTER EN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"041D","lowercase_mapping":"","titlecase_mapping":"041D","symbol":"\u043D"},1086:{"value":"043E","name":"CYRILLIC SMALL LETTER O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"041E","lowercase_mapping":"","titlecase_mapping":"041E","symbol":"\u043E"},1087:{"value":"043F","name":"CYRILLIC SMALL LETTER PE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"041F","lowercase_mapping":"","titlecase_mapping":"041F","symbol":"\u043F"},1088:{"value":"0440","name":"CYRILLIC SMALL LETTER ER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0420","lowercase_mapping":"","titlecase_mapping":"0420","symbol":"\u0440"},1089:{"value":"0441","name":"CYRILLIC SMALL LETTER ES","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0421","lowercase_mapping":"","titlecase_mapping":"0421","symbol":"\u0441"},1090:{"value":"0442","name":"CYRILLIC SMALL LETTER TE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0422","lowercase_mapping":"","titlecase_mapping":"0422","symbol":"\u0442"},1091:{"value":"0443","name":"CYRILLIC SMALL LETTER U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0423","lowercase_mapping":"","titlecase_mapping":"0423","symbol":"\u0443"},1092:{"value":"0444","name":"CYRILLIC SMALL LETTER EF","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0424","lowercase_mapping":"","titlecase_mapping":"0424","symbol":"\u0444"},1093:{"value":"0445","name":"CYRILLIC SMALL LETTER HA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER KHA","comment":"","uppercase_mapping":"0425","lowercase_mapping":"","titlecase_mapping":"0425","symbol":"\u0445"},1094:{"value":"0446","name":"CYRILLIC SMALL LETTER TSE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0426","lowercase_mapping":"","titlecase_mapping":"0426","symbol":"\u0446"},1095:{"value":"0447","name":"CYRILLIC SMALL LETTER CHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0427","lowercase_mapping":"","titlecase_mapping":"0427","symbol":"\u0447"},1096:{"value":"0448","name":"CYRILLIC SMALL LETTER SHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0428","lowercase_mapping":"","titlecase_mapping":"0428","symbol":"\u0448"},1097:{"value":"0449","name":"CYRILLIC SMALL LETTER SHCHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0429","lowercase_mapping":"","titlecase_mapping":"0429","symbol":"\u0449"},1098:{"value":"044A","name":"CYRILLIC SMALL LETTER HARD SIGN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"042A","lowercase_mapping":"","titlecase_mapping":"042A","symbol":"\u044A"},1099:{"value":"044B","name":"CYRILLIC SMALL LETTER YERU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER YERI","comment":"","uppercase_mapping":"042B","lowercase_mapping":"","titlecase_mapping":"042B","symbol":"\u044B"},1100:{"value":"044C","name":"CYRILLIC SMALL LETTER SOFT SIGN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"042C","lowercase_mapping":"","titlecase_mapping":"042C","symbol":"\u044C"},1101:{"value":"044D","name":"CYRILLIC SMALL LETTER E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER REVERSED E","comment":"","uppercase_mapping":"042D","lowercase_mapping":"","titlecase_mapping":"042D","symbol":"\u044D"},1102:{"value":"044E","name":"CYRILLIC SMALL LETTER YU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER IU","comment":"","uppercase_mapping":"042E","lowercase_mapping":"","titlecase_mapping":"042E","symbol":"\u044E"},1103:{"value":"044F","name":"CYRILLIC SMALL LETTER YA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER IA","comment":"","uppercase_mapping":"042F","lowercase_mapping":"","titlecase_mapping":"042F","symbol":"\u044F"},1104:{"value":"0450","name":"CYRILLIC SMALL LETTER IE WITH GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0435 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0400","lowercase_mapping":"","titlecase_mapping":"0400","symbol":"\u0450"},1105:{"value":"0451","name":"CYRILLIC SMALL LETTER IO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0435 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0401","lowercase_mapping":"","titlecase_mapping":"0401","symbol":"\u0451"},1106:{"value":"0452","name":"CYRILLIC SMALL LETTER DJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0402","lowercase_mapping":"","titlecase_mapping":"0402","symbol":"\u0452"},1107:{"value":"0453","name":"CYRILLIC SMALL LETTER GJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0433 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0403","lowercase_mapping":"","titlecase_mapping":"0403","symbol":"\u0453"},1108:{"value":"0454","name":"CYRILLIC SMALL LETTER UKRAINIAN IE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER E","comment":"","uppercase_mapping":"0404","lowercase_mapping":"","titlecase_mapping":"0404","symbol":"\u0454"},1109:{"value":"0455","name":"CYRILLIC SMALL LETTER DZE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0405","lowercase_mapping":"","titlecase_mapping":"0405","symbol":"\u0455"},1110:{"value":"0456","name":"CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER I","comment":"","uppercase_mapping":"0406","lowercase_mapping":"","titlecase_mapping":"0406","symbol":"\u0456"},1111:{"value":"0457","name":"CYRILLIC SMALL LETTER YI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0456 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0407","lowercase_mapping":"","titlecase_mapping":"0407","symbol":"\u0457"},1112:{"value":"0458","name":"CYRILLIC SMALL LETTER JE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0408","lowercase_mapping":"","titlecase_mapping":"0408","symbol":"\u0458"},1113:{"value":"0459","name":"CYRILLIC SMALL LETTER LJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0409","lowercase_mapping":"","titlecase_mapping":"0409","symbol":"\u0459"},1114:{"value":"045A","name":"CYRILLIC SMALL LETTER NJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"040A","lowercase_mapping":"","titlecase_mapping":"040A","symbol":"\u045A"},1115:{"value":"045B","name":"CYRILLIC SMALL LETTER TSHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"040B","lowercase_mapping":"","titlecase_mapping":"040B","symbol":"\u045B"},1116:{"value":"045C","name":"CYRILLIC SMALL LETTER KJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"043A 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"040C","lowercase_mapping":"","titlecase_mapping":"040C","symbol":"\u045C"},1117:{"value":"045D","name":"CYRILLIC SMALL LETTER I WITH GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0438 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"040D","lowercase_mapping":"","titlecase_mapping":"040D","symbol":"\u045D"},1118:{"value":"045E","name":"CYRILLIC SMALL LETTER SHORT U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0443 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"040E","lowercase_mapping":"","titlecase_mapping":"040E","symbol":"\u045E"},1119:{"value":"045F","name":"CYRILLIC SMALL LETTER DZHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"040F","lowercase_mapping":"","titlecase_mapping":"040F","symbol":"\u045F"},1121:{"value":"0461","name":"CYRILLIC SMALL LETTER OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0460","lowercase_mapping":"","titlecase_mapping":"0460","symbol":"\u0461"},1123:{"value":"0463","name":"CYRILLIC SMALL LETTER YAT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0462","lowercase_mapping":"","titlecase_mapping":"0462","symbol":"\u0463"},1125:{"value":"0465","name":"CYRILLIC SMALL LETTER IOTIFIED E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0464","lowercase_mapping":"","titlecase_mapping":"0464","symbol":"\u0465"},1127:{"value":"0467","name":"CYRILLIC SMALL LETTER LITTLE YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0466","lowercase_mapping":"","titlecase_mapping":"0466","symbol":"\u0467"},1129:{"value":"0469","name":"CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0468","lowercase_mapping":"","titlecase_mapping":"0468","symbol":"\u0469"},1131:{"value":"046B","name":"CYRILLIC SMALL LETTER BIG YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"046A","lowercase_mapping":"","titlecase_mapping":"046A","symbol":"\u046B"},1133:{"value":"046D","name":"CYRILLIC SMALL LETTER IOTIFIED BIG YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"046C","lowercase_mapping":"","titlecase_mapping":"046C","symbol":"\u046D"},1135:{"value":"046F","name":"CYRILLIC SMALL LETTER KSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"046E","lowercase_mapping":"","titlecase_mapping":"046E","symbol":"\u046F"},1137:{"value":"0471","name":"CYRILLIC SMALL LETTER PSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0470","lowercase_mapping":"","titlecase_mapping":"0470","symbol":"\u0471"},1139:{"value":"0473","name":"CYRILLIC SMALL LETTER FITA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0472","lowercase_mapping":"","titlecase_mapping":"0472","symbol":"\u0473"},1141:{"value":"0475","name":"CYRILLIC SMALL LETTER IZHITSA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0474","lowercase_mapping":"","titlecase_mapping":"0474","symbol":"\u0475"},1143:{"value":"0477","name":"CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0475 030F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE","comment":"","uppercase_mapping":"0476","lowercase_mapping":"","titlecase_mapping":"0476","symbol":"\u0477"},1145:{"value":"0479","name":"CYRILLIC SMALL LETTER UK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER UK DIGRAPH","comment":"","uppercase_mapping":"0478","lowercase_mapping":"","titlecase_mapping":"0478","symbol":"\u0479"},1147:{"value":"047B","name":"CYRILLIC SMALL LETTER ROUND OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"047A","lowercase_mapping":"","titlecase_mapping":"047A","symbol":"\u047B"},1149:{"value":"047D","name":"CYRILLIC SMALL LETTER OMEGA WITH TITLO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER OMEGA TITLO","comment":"","uppercase_mapping":"047C","lowercase_mapping":"","titlecase_mapping":"047C","symbol":"\u047D"},1151:{"value":"047F","name":"CYRILLIC SMALL LETTER OT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"047E","lowercase_mapping":"","titlecase_mapping":"047E","symbol":"\u047F"},1153:{"value":"0481","name":"CYRILLIC SMALL LETTER KOPPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0480","lowercase_mapping":"","titlecase_mapping":"0480","symbol":"\u0481"},1163:{"value":"048B","name":"CYRILLIC SMALL LETTER SHORT I WITH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"048A","lowercase_mapping":"","titlecase_mapping":"048A","symbol":"\u048B"},1165:{"value":"048D","name":"CYRILLIC SMALL LETTER SEMISOFT SIGN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"048C","lowercase_mapping":"","titlecase_mapping":"048C","symbol":"\u048D"},1167:{"value":"048F","name":"CYRILLIC SMALL LETTER ER WITH TICK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"048E","lowercase_mapping":"","titlecase_mapping":"048E","symbol":"\u048F"},1169:{"value":"0491","name":"CYRILLIC SMALL LETTER GHE WITH UPTURN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER GE WITH UPTURN","comment":"","uppercase_mapping":"0490","lowercase_mapping":"","titlecase_mapping":"0490","symbol":"\u0491"},1171:{"value":"0493","name":"CYRILLIC SMALL LETTER GHE WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER GE BAR","comment":"","uppercase_mapping":"0492","lowercase_mapping":"","titlecase_mapping":"0492","symbol":"\u0493"},1173:{"value":"0495","name":"CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER GE HOOK","comment":"","uppercase_mapping":"0494","lowercase_mapping":"","titlecase_mapping":"0494","symbol":"\u0495"},1175:{"value":"0497","name":"CYRILLIC SMALL LETTER ZHE WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"0496","lowercase_mapping":"","titlecase_mapping":"0496","symbol":"\u0497"},1177:{"value":"0499","name":"CYRILLIC SMALL LETTER ZE WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER ZE CEDILLA","comment":"","uppercase_mapping":"0498","lowercase_mapping":"","titlecase_mapping":"0498","symbol":"\u0499"},1179:{"value":"049B","name":"CYRILLIC SMALL LETTER KA WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"049A","lowercase_mapping":"","titlecase_mapping":"049A","symbol":"\u049B"},1181:{"value":"049D","name":"CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER KA VERTICAL BAR","comment":"","uppercase_mapping":"049C","lowercase_mapping":"","titlecase_mapping":"049C","symbol":"\u049D"},1183:{"value":"049F","name":"CYRILLIC SMALL LETTER KA WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER KA BAR","comment":"","uppercase_mapping":"049E","lowercase_mapping":"","titlecase_mapping":"049E","symbol":"\u049F"},1185:{"value":"04A1","name":"CYRILLIC SMALL LETTER BASHKIR KA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER REVERSED GE KA","comment":"","uppercase_mapping":"04A0","lowercase_mapping":"","titlecase_mapping":"04A0","symbol":"\u04A1"},1187:{"value":"04A3","name":"CYRILLIC SMALL LETTER EN WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"04A2","lowercase_mapping":"","titlecase_mapping":"04A2","symbol":"\u04A3"},1189:{"value":"04A5","name":"CYRILLIC SMALL LIGATURE EN GHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER EN GE","comment":"","uppercase_mapping":"04A4","lowercase_mapping":"","titlecase_mapping":"04A4","symbol":"\u04A5"},1191:{"value":"04A7","name":"CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER PE HOOK","comment":"","uppercase_mapping":"04A6","lowercase_mapping":"","titlecase_mapping":"04A6","symbol":"\u04A7"},1193:{"value":"04A9","name":"CYRILLIC SMALL LETTER ABKHASIAN HA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER O HOOK","comment":"","uppercase_mapping":"04A8","lowercase_mapping":"","titlecase_mapping":"04A8","symbol":"\u04A9"},1195:{"value":"04AB","name":"CYRILLIC SMALL LETTER ES WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER ES CEDILLA","comment":"","uppercase_mapping":"04AA","lowercase_mapping":"","titlecase_mapping":"04AA","symbol":"\u04AB"},1197:{"value":"04AD","name":"CYRILLIC SMALL LETTER TE WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"04AC","lowercase_mapping":"","titlecase_mapping":"04AC","symbol":"\u04AD"},1199:{"value":"04AF","name":"CYRILLIC SMALL LETTER STRAIGHT U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04AE","lowercase_mapping":"","titlecase_mapping":"04AE","symbol":"\u04AF"},1201:{"value":"04B1","name":"CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER STRAIGHT U BAR","comment":"","uppercase_mapping":"04B0","lowercase_mapping":"","titlecase_mapping":"04B0","symbol":"\u04B1"},1203:{"value":"04B3","name":"CYRILLIC SMALL LETTER HA WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"04B2","lowercase_mapping":"","titlecase_mapping":"04B2","symbol":"\u04B3"},1205:{"value":"04B5","name":"CYRILLIC SMALL LIGATURE TE TSE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER TE TSE","comment":"","uppercase_mapping":"04B4","lowercase_mapping":"","titlecase_mapping":"04B4","symbol":"\u04B5"},1207:{"value":"04B7","name":"CYRILLIC SMALL LETTER CHE WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER","comment":"","uppercase_mapping":"04B6","lowercase_mapping":"","titlecase_mapping":"04B6","symbol":"\u04B7"},1209:{"value":"04B9","name":"CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER CHE VERTICAL BAR","comment":"","uppercase_mapping":"04B8","lowercase_mapping":"","titlecase_mapping":"04B8","symbol":"\u04B9"},1211:{"value":"04BB","name":"CYRILLIC SMALL LETTER SHHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER H","comment":"","uppercase_mapping":"04BA","lowercase_mapping":"","titlecase_mapping":"04BA","symbol":"\u04BB"},1213:{"value":"04BD","name":"CYRILLIC SMALL LETTER ABKHASIAN CHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER IE HOOK","comment":"","uppercase_mapping":"04BC","lowercase_mapping":"","titlecase_mapping":"04BC","symbol":"\u04BD"},1215:{"value":"04BF","name":"CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER IE HOOK OGONEK","comment":"","uppercase_mapping":"04BE","lowercase_mapping":"","titlecase_mapping":"04BE","symbol":"\u04BF"},1218:{"value":"04C2","name":"CYRILLIC SMALL LETTER ZHE WITH BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0436 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER SHORT ZHE","comment":"","uppercase_mapping":"04C1","lowercase_mapping":"","titlecase_mapping":"04C1","symbol":"\u04C2"},1220:{"value":"04C4","name":"CYRILLIC SMALL LETTER KA WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER KA HOOK","comment":"","uppercase_mapping":"04C3","lowercase_mapping":"","titlecase_mapping":"04C3","symbol":"\u04C4"},1222:{"value":"04C6","name":"CYRILLIC SMALL LETTER EL WITH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04C5","lowercase_mapping":"","titlecase_mapping":"04C5","symbol":"\u04C6"},1224:{"value":"04C8","name":"CYRILLIC SMALL LETTER EN WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER EN HOOK","comment":"","uppercase_mapping":"04C7","lowercase_mapping":"","titlecase_mapping":"04C7","symbol":"\u04C8"},1226:{"value":"04CA","name":"CYRILLIC SMALL LETTER EN WITH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04C9","lowercase_mapping":"","titlecase_mapping":"04C9","symbol":"\u04CA"},1228:{"value":"04CC","name":"CYRILLIC SMALL LETTER KHAKASSIAN CHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER","comment":"","uppercase_mapping":"04CB","lowercase_mapping":"","titlecase_mapping":"04CB","symbol":"\u04CC"},1230:{"value":"04CE","name":"CYRILLIC SMALL LETTER EM WITH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04CD","lowercase_mapping":"","titlecase_mapping":"04CD","symbol":"\u04CE"},1231:{"value":"04CF","name":"CYRILLIC SMALL LETTER PALOCHKA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04C0","lowercase_mapping":"","titlecase_mapping":"04C0","symbol":"\u04CF"},1233:{"value":"04D1","name":"CYRILLIC SMALL LETTER A WITH BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0430 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04D0","lowercase_mapping":"","titlecase_mapping":"04D0","symbol":"\u04D1"},1235:{"value":"04D3","name":"CYRILLIC SMALL LETTER A WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0430 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04D2","lowercase_mapping":"","titlecase_mapping":"04D2","symbol":"\u04D3"},1237:{"value":"04D5","name":"CYRILLIC SMALL LIGATURE A IE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04D4","lowercase_mapping":"","titlecase_mapping":"04D4","symbol":"\u04D5"},1239:{"value":"04D7","name":"CYRILLIC SMALL LETTER IE WITH BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0435 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04D6","lowercase_mapping":"","titlecase_mapping":"04D6","symbol":"\u04D7"},1241:{"value":"04D9","name":"CYRILLIC SMALL LETTER SCHWA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04D8","lowercase_mapping":"","titlecase_mapping":"04D8","symbol":"\u04D9"},1243:{"value":"04DB","name":"CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"04D9 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04DA","lowercase_mapping":"","titlecase_mapping":"04DA","symbol":"\u04DB"},1245:{"value":"04DD","name":"CYRILLIC SMALL LETTER ZHE WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0436 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04DC","lowercase_mapping":"","titlecase_mapping":"04DC","symbol":"\u04DD"},1247:{"value":"04DF","name":"CYRILLIC SMALL LETTER ZE WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0437 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04DE","lowercase_mapping":"","titlecase_mapping":"04DE","symbol":"\u04DF"},1249:{"value":"04E1","name":"CYRILLIC SMALL LETTER ABKHASIAN DZE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04E0","lowercase_mapping":"","titlecase_mapping":"04E0","symbol":"\u04E1"},1251:{"value":"04E3","name":"CYRILLIC SMALL LETTER I WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0438 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04E2","lowercase_mapping":"","titlecase_mapping":"04E2","symbol":"\u04E3"},1253:{"value":"04E5","name":"CYRILLIC SMALL LETTER I WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0438 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04E4","lowercase_mapping":"","titlecase_mapping":"04E4","symbol":"\u04E5"},1255:{"value":"04E7","name":"CYRILLIC SMALL LETTER O WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"043E 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04E6","lowercase_mapping":"","titlecase_mapping":"04E6","symbol":"\u04E7"},1257:{"value":"04E9","name":"CYRILLIC SMALL LETTER BARRED O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04E8","lowercase_mapping":"","titlecase_mapping":"04E8","symbol":"\u04E9"},1259:{"value":"04EB","name":"CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"04E9 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04EA","lowercase_mapping":"","titlecase_mapping":"04EA","symbol":"\u04EB"},1261:{"value":"04ED","name":"CYRILLIC SMALL LETTER E WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"044D 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04EC","lowercase_mapping":"","titlecase_mapping":"04EC","symbol":"\u04ED"},1263:{"value":"04EF","name":"CYRILLIC SMALL LETTER U WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0443 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04EE","lowercase_mapping":"","titlecase_mapping":"04EE","symbol":"\u04EF"},1265:{"value":"04F1","name":"CYRILLIC SMALL LETTER U WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0443 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04F0","lowercase_mapping":"","titlecase_mapping":"04F0","symbol":"\u04F1"},1267:{"value":"04F3","name":"CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0443 030B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04F2","lowercase_mapping":"","titlecase_mapping":"04F2","symbol":"\u04F3"},1269:{"value":"04F5","name":"CYRILLIC SMALL LETTER CHE WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0447 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04F4","lowercase_mapping":"","titlecase_mapping":"04F4","symbol":"\u04F5"},1271:{"value":"04F7","name":"CYRILLIC SMALL LETTER GHE WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04F6","lowercase_mapping":"","titlecase_mapping":"04F6","symbol":"\u04F7"},1273:{"value":"04F9","name":"CYRILLIC SMALL LETTER YERU WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"044B 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04F8","lowercase_mapping":"","titlecase_mapping":"04F8","symbol":"\u04F9"},1275:{"value":"04FB","name":"CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04FA","lowercase_mapping":"","titlecase_mapping":"04FA","symbol":"\u04FB"},1277:{"value":"04FD","name":"CYRILLIC SMALL LETTER HA WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04FC","lowercase_mapping":"","titlecase_mapping":"04FC","symbol":"\u04FD"},1279:{"value":"04FF","name":"CYRILLIC SMALL LETTER HA WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"04FE","lowercase_mapping":"","titlecase_mapping":"04FE","symbol":"\u04FF"},1281:{"value":"0501","name":"CYRILLIC SMALL LETTER KOMI DE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0500","lowercase_mapping":"","titlecase_mapping":"0500","symbol":"\u0501"},1283:{"value":"0503","name":"CYRILLIC SMALL LETTER KOMI DJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0502","lowercase_mapping":"","titlecase_mapping":"0502","symbol":"\u0503"},1285:{"value":"0505","name":"CYRILLIC SMALL LETTER KOMI ZJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0504","lowercase_mapping":"","titlecase_mapping":"0504","symbol":"\u0505"},1287:{"value":"0507","name":"CYRILLIC SMALL LETTER KOMI DZJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0506","lowercase_mapping":"","titlecase_mapping":"0506","symbol":"\u0507"},1289:{"value":"0509","name":"CYRILLIC SMALL LETTER KOMI LJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0508","lowercase_mapping":"","titlecase_mapping":"0508","symbol":"\u0509"},1291:{"value":"050B","name":"CYRILLIC SMALL LETTER KOMI NJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"050A","lowercase_mapping":"","titlecase_mapping":"050A","symbol":"\u050B"},1293:{"value":"050D","name":"CYRILLIC SMALL LETTER KOMI SJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"050C","lowercase_mapping":"","titlecase_mapping":"050C","symbol":"\u050D"},1295:{"value":"050F","name":"CYRILLIC SMALL LETTER KOMI TJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"050E","lowercase_mapping":"","titlecase_mapping":"050E","symbol":"\u050F"},1297:{"value":"0511","name":"CYRILLIC SMALL LETTER REVERSED ZE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0510","lowercase_mapping":"","titlecase_mapping":"0510","symbol":"\u0511"},1299:{"value":"0513","name":"CYRILLIC SMALL LETTER EL WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0512","lowercase_mapping":"","titlecase_mapping":"0512","symbol":"\u0513"},1301:{"value":"0515","name":"CYRILLIC SMALL LETTER LHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0514","lowercase_mapping":"","titlecase_mapping":"0514","symbol":"\u0515"},1303:{"value":"0517","name":"CYRILLIC SMALL LETTER RHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0516","lowercase_mapping":"","titlecase_mapping":"0516","symbol":"\u0517"},1305:{"value":"0519","name":"CYRILLIC SMALL LETTER YAE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0518","lowercase_mapping":"","titlecase_mapping":"0518","symbol":"\u0519"},1307:{"value":"051B","name":"CYRILLIC SMALL LETTER QA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"051A","lowercase_mapping":"","titlecase_mapping":"051A","symbol":"\u051B"},1309:{"value":"051D","name":"CYRILLIC SMALL LETTER WE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"051C","lowercase_mapping":"","titlecase_mapping":"051C","symbol":"\u051D"},1311:{"value":"051F","name":"CYRILLIC SMALL LETTER ALEUT KA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"051E","lowercase_mapping":"","titlecase_mapping":"051E","symbol":"\u051F"},1313:{"value":"0521","name":"CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0520","lowercase_mapping":"","titlecase_mapping":"0520","symbol":"\u0521"},1315:{"value":"0523","name":"CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0522","lowercase_mapping":"","titlecase_mapping":"0522","symbol":"\u0523"},1317:{"value":"0525","name":"CYRILLIC SMALL LETTER PE WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0524","lowercase_mapping":"","titlecase_mapping":"0524","symbol":"\u0525"},1319:{"value":"0527","name":"CYRILLIC SMALL LETTER SHHA WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0526","lowercase_mapping":"","titlecase_mapping":"0526","symbol":"\u0527"},1321:{"value":"0529","name":"CYRILLIC SMALL LETTER EN WITH LEFT HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0528","lowercase_mapping":"","titlecase_mapping":"0528","symbol":"\u0529"},1323:{"value":"052B","name":"CYRILLIC SMALL LETTER DZZHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"052A","lowercase_mapping":"","titlecase_mapping":"052A","symbol":"\u052B"},1325:{"value":"052D","name":"CYRILLIC SMALL LETTER DCHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"052C","lowercase_mapping":"","titlecase_mapping":"052C","symbol":"\u052D"},1327:{"value":"052F","name":"CYRILLIC SMALL LETTER EL WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"052E","lowercase_mapping":"","titlecase_mapping":"052E","symbol":"\u052F"},1376:{"value":"0560","name":"ARMENIAN SMALL LETTER TURNED AYB","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0560"},1377:{"value":"0561","name":"ARMENIAN SMALL LETTER AYB","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0531","lowercase_mapping":"","titlecase_mapping":"0531","symbol":"\u0561"},1378:{"value":"0562","name":"ARMENIAN SMALL LETTER BEN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0532","lowercase_mapping":"","titlecase_mapping":"0532","symbol":"\u0562"},1379:{"value":"0563","name":"ARMENIAN SMALL LETTER GIM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0533","lowercase_mapping":"","titlecase_mapping":"0533","symbol":"\u0563"},1380:{"value":"0564","name":"ARMENIAN SMALL LETTER DA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0534","lowercase_mapping":"","titlecase_mapping":"0534","symbol":"\u0564"},1381:{"value":"0565","name":"ARMENIAN SMALL LETTER ECH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0535","lowercase_mapping":"","titlecase_mapping":"0535","symbol":"\u0565"},1382:{"value":"0566","name":"ARMENIAN SMALL LETTER ZA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0536","lowercase_mapping":"","titlecase_mapping":"0536","symbol":"\u0566"},1383:{"value":"0567","name":"ARMENIAN SMALL LETTER EH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0537","lowercase_mapping":"","titlecase_mapping":"0537","symbol":"\u0567"},1384:{"value":"0568","name":"ARMENIAN SMALL LETTER ET","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0538","lowercase_mapping":"","titlecase_mapping":"0538","symbol":"\u0568"},1385:{"value":"0569","name":"ARMENIAN SMALL LETTER TO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0539","lowercase_mapping":"","titlecase_mapping":"0539","symbol":"\u0569"},1386:{"value":"056A","name":"ARMENIAN SMALL LETTER ZHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"053A","lowercase_mapping":"","titlecase_mapping":"053A","symbol":"\u056A"},1387:{"value":"056B","name":"ARMENIAN SMALL LETTER INI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"053B","lowercase_mapping":"","titlecase_mapping":"053B","symbol":"\u056B"},1388:{"value":"056C","name":"ARMENIAN SMALL LETTER LIWN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"053C","lowercase_mapping":"","titlecase_mapping":"053C","symbol":"\u056C"},1389:{"value":"056D","name":"ARMENIAN SMALL LETTER XEH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"053D","lowercase_mapping":"","titlecase_mapping":"053D","symbol":"\u056D"},1390:{"value":"056E","name":"ARMENIAN SMALL LETTER CA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"053E","lowercase_mapping":"","titlecase_mapping":"053E","symbol":"\u056E"},1391:{"value":"056F","name":"ARMENIAN SMALL LETTER KEN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"053F","lowercase_mapping":"","titlecase_mapping":"053F","symbol":"\u056F"},1392:{"value":"0570","name":"ARMENIAN SMALL LETTER HO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0540","lowercase_mapping":"","titlecase_mapping":"0540","symbol":"\u0570"},1393:{"value":"0571","name":"ARMENIAN SMALL LETTER JA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0541","lowercase_mapping":"","titlecase_mapping":"0541","symbol":"\u0571"},1394:{"value":"0572","name":"ARMENIAN SMALL LETTER GHAD","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARMENIAN SMALL LETTER LAD","comment":"","uppercase_mapping":"0542","lowercase_mapping":"","titlecase_mapping":"0542","symbol":"\u0572"},1395:{"value":"0573","name":"ARMENIAN SMALL LETTER CHEH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0543","lowercase_mapping":"","titlecase_mapping":"0543","symbol":"\u0573"},1396:{"value":"0574","name":"ARMENIAN SMALL LETTER MEN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0544","lowercase_mapping":"","titlecase_mapping":"0544","symbol":"\u0574"},1397:{"value":"0575","name":"ARMENIAN SMALL LETTER YI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0545","lowercase_mapping":"","titlecase_mapping":"0545","symbol":"\u0575"},1398:{"value":"0576","name":"ARMENIAN SMALL LETTER NOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0546","lowercase_mapping":"","titlecase_mapping":"0546","symbol":"\u0576"},1399:{"value":"0577","name":"ARMENIAN SMALL LETTER SHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0547","lowercase_mapping":"","titlecase_mapping":"0547","symbol":"\u0577"},1400:{"value":"0578","name":"ARMENIAN SMALL LETTER VO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0548","lowercase_mapping":"","titlecase_mapping":"0548","symbol":"\u0578"},1401:{"value":"0579","name":"ARMENIAN SMALL LETTER CHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0549","lowercase_mapping":"","titlecase_mapping":"0549","symbol":"\u0579"},1402:{"value":"057A","name":"ARMENIAN SMALL LETTER PEH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"054A","lowercase_mapping":"","titlecase_mapping":"054A","symbol":"\u057A"},1403:{"value":"057B","name":"ARMENIAN SMALL LETTER JHEH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"054B","lowercase_mapping":"","titlecase_mapping":"054B","symbol":"\u057B"},1404:{"value":"057C","name":"ARMENIAN SMALL LETTER RA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"054C","lowercase_mapping":"","titlecase_mapping":"054C","symbol":"\u057C"},1405:{"value":"057D","name":"ARMENIAN SMALL LETTER SEH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"054D","lowercase_mapping":"","titlecase_mapping":"054D","symbol":"\u057D"},1406:{"value":"057E","name":"ARMENIAN SMALL LETTER VEW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"054E","lowercase_mapping":"","titlecase_mapping":"054E","symbol":"\u057E"},1407:{"value":"057F","name":"ARMENIAN SMALL LETTER TIWN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"054F","lowercase_mapping":"","titlecase_mapping":"054F","symbol":"\u057F"},1408:{"value":"0580","name":"ARMENIAN SMALL LETTER REH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0550","lowercase_mapping":"","titlecase_mapping":"0550","symbol":"\u0580"},1409:{"value":"0581","name":"ARMENIAN SMALL LETTER CO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0551","lowercase_mapping":"","titlecase_mapping":"0551","symbol":"\u0581"},1410:{"value":"0582","name":"ARMENIAN SMALL LETTER YIWN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0552","lowercase_mapping":"","titlecase_mapping":"0552","symbol":"\u0582"},1411:{"value":"0583","name":"ARMENIAN SMALL LETTER PIWR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0553","lowercase_mapping":"","titlecase_mapping":"0553","symbol":"\u0583"},1412:{"value":"0584","name":"ARMENIAN SMALL LETTER KEH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0554","lowercase_mapping":"","titlecase_mapping":"0554","symbol":"\u0584"},1413:{"value":"0585","name":"ARMENIAN SMALL LETTER OH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0555","lowercase_mapping":"","titlecase_mapping":"0555","symbol":"\u0585"},1414:{"value":"0586","name":"ARMENIAN SMALL LETTER FEH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0556","lowercase_mapping":"","titlecase_mapping":"0556","symbol":"\u0586"},1415:{"value":"0587","name":"ARMENIAN SMALL LIGATURE ECH YIWN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0565 0582","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0587"},1416:{"value":"0588","name":"ARMENIAN SMALL LETTER YI WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0588"},4304:{"value":"10D0","name":"GEORGIAN LETTER AN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER AN","comment":"","uppercase_mapping":"1C90","lowercase_mapping":"","titlecase_mapping":"10D0","symbol":"\u10D0"},4305:{"value":"10D1","name":"GEORGIAN LETTER BAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER BAN","comment":"","uppercase_mapping":"1C91","lowercase_mapping":"","titlecase_mapping":"10D1","symbol":"\u10D1"},4306:{"value":"10D2","name":"GEORGIAN LETTER GAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER GAN","comment":"","uppercase_mapping":"1C92","lowercase_mapping":"","titlecase_mapping":"10D2","symbol":"\u10D2"},4307:{"value":"10D3","name":"GEORGIAN LETTER DON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER DON","comment":"","uppercase_mapping":"1C93","lowercase_mapping":"","titlecase_mapping":"10D3","symbol":"\u10D3"},4308:{"value":"10D4","name":"GEORGIAN LETTER EN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER EN","comment":"","uppercase_mapping":"1C94","lowercase_mapping":"","titlecase_mapping":"10D4","symbol":"\u10D4"},4309:{"value":"10D5","name":"GEORGIAN LETTER VIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER VIN","comment":"","uppercase_mapping":"1C95","lowercase_mapping":"","titlecase_mapping":"10D5","symbol":"\u10D5"},4310:{"value":"10D6","name":"GEORGIAN LETTER ZEN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER ZEN","comment":"","uppercase_mapping":"1C96","lowercase_mapping":"","titlecase_mapping":"10D6","symbol":"\u10D6"},4311:{"value":"10D7","name":"GEORGIAN LETTER TAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER TAN","comment":"","uppercase_mapping":"1C97","lowercase_mapping":"","titlecase_mapping":"10D7","symbol":"\u10D7"},4312:{"value":"10D8","name":"GEORGIAN LETTER IN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER IN","comment":"","uppercase_mapping":"1C98","lowercase_mapping":"","titlecase_mapping":"10D8","symbol":"\u10D8"},4313:{"value":"10D9","name":"GEORGIAN LETTER KAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER KAN","comment":"","uppercase_mapping":"1C99","lowercase_mapping":"","titlecase_mapping":"10D9","symbol":"\u10D9"},4314:{"value":"10DA","name":"GEORGIAN LETTER LAS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER LAS","comment":"","uppercase_mapping":"1C9A","lowercase_mapping":"","titlecase_mapping":"10DA","symbol":"\u10DA"},4315:{"value":"10DB","name":"GEORGIAN LETTER MAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER MAN","comment":"","uppercase_mapping":"1C9B","lowercase_mapping":"","titlecase_mapping":"10DB","symbol":"\u10DB"},4316:{"value":"10DC","name":"GEORGIAN LETTER NAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER NAR","comment":"","uppercase_mapping":"1C9C","lowercase_mapping":"","titlecase_mapping":"10DC","symbol":"\u10DC"},4317:{"value":"10DD","name":"GEORGIAN LETTER ON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER ON","comment":"","uppercase_mapping":"1C9D","lowercase_mapping":"","titlecase_mapping":"10DD","symbol":"\u10DD"},4318:{"value":"10DE","name":"GEORGIAN LETTER PAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER PAR","comment":"","uppercase_mapping":"1C9E","lowercase_mapping":"","titlecase_mapping":"10DE","symbol":"\u10DE"},4319:{"value":"10DF","name":"GEORGIAN LETTER ZHAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER ZHAR","comment":"","uppercase_mapping":"1C9F","lowercase_mapping":"","titlecase_mapping":"10DF","symbol":"\u10DF"},4320:{"value":"10E0","name":"GEORGIAN LETTER RAE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER RAE","comment":"","uppercase_mapping":"1CA0","lowercase_mapping":"","titlecase_mapping":"10E0","symbol":"\u10E0"},4321:{"value":"10E1","name":"GEORGIAN LETTER SAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER SAN","comment":"","uppercase_mapping":"1CA1","lowercase_mapping":"","titlecase_mapping":"10E1","symbol":"\u10E1"},4322:{"value":"10E2","name":"GEORGIAN LETTER TAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER TAR","comment":"","uppercase_mapping":"1CA2","lowercase_mapping":"","titlecase_mapping":"10E2","symbol":"\u10E2"},4323:{"value":"10E3","name":"GEORGIAN LETTER UN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER UN","comment":"","uppercase_mapping":"1CA3","lowercase_mapping":"","titlecase_mapping":"10E3","symbol":"\u10E3"},4324:{"value":"10E4","name":"GEORGIAN LETTER PHAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER PHAR","comment":"","uppercase_mapping":"1CA4","lowercase_mapping":"","titlecase_mapping":"10E4","symbol":"\u10E4"},4325:{"value":"10E5","name":"GEORGIAN LETTER KHAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER KHAR","comment":"","uppercase_mapping":"1CA5","lowercase_mapping":"","titlecase_mapping":"10E5","symbol":"\u10E5"},4326:{"value":"10E6","name":"GEORGIAN LETTER GHAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER GHAN","comment":"","uppercase_mapping":"1CA6","lowercase_mapping":"","titlecase_mapping":"10E6","symbol":"\u10E6"},4327:{"value":"10E7","name":"GEORGIAN LETTER QAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER QAR","comment":"","uppercase_mapping":"1CA7","lowercase_mapping":"","titlecase_mapping":"10E7","symbol":"\u10E7"},4328:{"value":"10E8","name":"GEORGIAN LETTER SHIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER SHIN","comment":"","uppercase_mapping":"1CA8","lowercase_mapping":"","titlecase_mapping":"10E8","symbol":"\u10E8"},4329:{"value":"10E9","name":"GEORGIAN LETTER CHIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER CHIN","comment":"","uppercase_mapping":"1CA9","lowercase_mapping":"","titlecase_mapping":"10E9","symbol":"\u10E9"},4330:{"value":"10EA","name":"GEORGIAN LETTER CAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER CAN","comment":"","uppercase_mapping":"1CAA","lowercase_mapping":"","titlecase_mapping":"10EA","symbol":"\u10EA"},4331:{"value":"10EB","name":"GEORGIAN LETTER JIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER JIL","comment":"","uppercase_mapping":"1CAB","lowercase_mapping":"","titlecase_mapping":"10EB","symbol":"\u10EB"},4332:{"value":"10EC","name":"GEORGIAN LETTER CIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER CIL","comment":"","uppercase_mapping":"1CAC","lowercase_mapping":"","titlecase_mapping":"10EC","symbol":"\u10EC"},4333:{"value":"10ED","name":"GEORGIAN LETTER CHAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER CHAR","comment":"","uppercase_mapping":"1CAD","lowercase_mapping":"","titlecase_mapping":"10ED","symbol":"\u10ED"},4334:{"value":"10EE","name":"GEORGIAN LETTER XAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER XAN","comment":"","uppercase_mapping":"1CAE","lowercase_mapping":"","titlecase_mapping":"10EE","symbol":"\u10EE"},4335:{"value":"10EF","name":"GEORGIAN LETTER JHAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER JHAN","comment":"","uppercase_mapping":"1CAF","lowercase_mapping":"","titlecase_mapping":"10EF","symbol":"\u10EF"},4336:{"value":"10F0","name":"GEORGIAN LETTER HAE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER HAE","comment":"","uppercase_mapping":"1CB0","lowercase_mapping":"","titlecase_mapping":"10F0","symbol":"\u10F0"},4337:{"value":"10F1","name":"GEORGIAN LETTER HE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER HE","comment":"","uppercase_mapping":"1CB1","lowercase_mapping":"","titlecase_mapping":"10F1","symbol":"\u10F1"},4338:{"value":"10F2","name":"GEORGIAN LETTER HIE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER HIE","comment":"","uppercase_mapping":"1CB2","lowercase_mapping":"","titlecase_mapping":"10F2","symbol":"\u10F2"},4339:{"value":"10F3","name":"GEORGIAN LETTER WE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER WE","comment":"","uppercase_mapping":"1CB3","lowercase_mapping":"","titlecase_mapping":"10F3","symbol":"\u10F3"},4340:{"value":"10F4","name":"GEORGIAN LETTER HAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER HAR","comment":"","uppercase_mapping":"1CB4","lowercase_mapping":"","titlecase_mapping":"10F4","symbol":"\u10F4"},4341:{"value":"10F5","name":"GEORGIAN LETTER HOE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER HOE","comment":"","uppercase_mapping":"1CB5","lowercase_mapping":"","titlecase_mapping":"10F5","symbol":"\u10F5"},4342:{"value":"10F6","name":"GEORGIAN LETTER FI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GEORGIAN SMALL LETTER FI","comment":"","uppercase_mapping":"1CB6","lowercase_mapping":"","titlecase_mapping":"10F6","symbol":"\u10F6"},4343:{"value":"10F7","name":"GEORGIAN LETTER YN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1CB7","lowercase_mapping":"","titlecase_mapping":"10F7","symbol":"\u10F7"},4344:{"value":"10F8","name":"GEORGIAN LETTER ELIFI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1CB8","lowercase_mapping":"","titlecase_mapping":"10F8","symbol":"\u10F8"},4345:{"value":"10F9","name":"GEORGIAN LETTER TURNED GAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1CB9","lowercase_mapping":"","titlecase_mapping":"10F9","symbol":"\u10F9"},4346:{"value":"10FA","name":"GEORGIAN LETTER AIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1CBA","lowercase_mapping":"","titlecase_mapping":"10FA","symbol":"\u10FA"},4349:{"value":"10FD","name":"GEORGIAN LETTER AEN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1CBD","lowercase_mapping":"","titlecase_mapping":"10FD","symbol":"\u10FD"},4350:{"value":"10FE","name":"GEORGIAN LETTER HARD SIGN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1CBE","lowercase_mapping":"","titlecase_mapping":"10FE","symbol":"\u10FE"},4351:{"value":"10FF","name":"GEORGIAN LETTER LABIAL SIGN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1CBF","lowercase_mapping":"","titlecase_mapping":"10FF","symbol":"\u10FF"},5112:{"value":"13F8","name":"CHEROKEE SMALL LETTER YE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13F0","lowercase_mapping":"","titlecase_mapping":"13F0","symbol":"\u13F8"},5113:{"value":"13F9","name":"CHEROKEE SMALL LETTER YI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13F1","lowercase_mapping":"","titlecase_mapping":"13F1","symbol":"\u13F9"},5114:{"value":"13FA","name":"CHEROKEE SMALL LETTER YO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13F2","lowercase_mapping":"","titlecase_mapping":"13F2","symbol":"\u13FA"},5115:{"value":"13FB","name":"CHEROKEE SMALL LETTER YU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13F3","lowercase_mapping":"","titlecase_mapping":"13F3","symbol":"\u13FB"},5116:{"value":"13FC","name":"CHEROKEE SMALL LETTER YV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13F4","lowercase_mapping":"","titlecase_mapping":"13F4","symbol":"\u13FC"},5117:{"value":"13FD","name":"CHEROKEE SMALL LETTER MV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13F5","lowercase_mapping":"","titlecase_mapping":"13F5","symbol":"\u13FD"},7296:{"value":"1C80","name":"CYRILLIC SMALL LETTER ROUNDED VE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0412","lowercase_mapping":"","titlecase_mapping":"0412","symbol":"\u1C80"},7297:{"value":"1C81","name":"CYRILLIC SMALL LETTER LONG-LEGGED DE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0414","lowercase_mapping":"","titlecase_mapping":"0414","symbol":"\u1C81"},7298:{"value":"1C82","name":"CYRILLIC SMALL LETTER NARROW O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"041E","lowercase_mapping":"","titlecase_mapping":"041E","symbol":"\u1C82"},7299:{"value":"1C83","name":"CYRILLIC SMALL LETTER WIDE ES","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0421","lowercase_mapping":"","titlecase_mapping":"0421","symbol":"\u1C83"},7300:{"value":"1C84","name":"CYRILLIC SMALL LETTER TALL TE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0422","lowercase_mapping":"","titlecase_mapping":"0422","symbol":"\u1C84"},7301:{"value":"1C85","name":"CYRILLIC SMALL LETTER THREE-LEGGED TE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0422","lowercase_mapping":"","titlecase_mapping":"0422","symbol":"\u1C85"},7302:{"value":"1C86","name":"CYRILLIC SMALL LETTER TALL HARD SIGN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"042A","lowercase_mapping":"","titlecase_mapping":"042A","symbol":"\u1C86"},7303:{"value":"1C87","name":"CYRILLIC SMALL LETTER TALL YAT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0462","lowercase_mapping":"","titlecase_mapping":"0462","symbol":"\u1C87"},7304:{"value":"1C88","name":"CYRILLIC SMALL LETTER UNBLENDED UK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A64A","lowercase_mapping":"","titlecase_mapping":"A64A","symbol":"\u1C88"},7424:{"value":"1D00","name":"LATIN LETTER SMALL CAPITAL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D00"},7425:{"value":"1D01","name":"LATIN LETTER SMALL CAPITAL AE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D01"},7426:{"value":"1D02","name":"LATIN SMALL LETTER TURNED AE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D02"},7427:{"value":"1D03","name":"LATIN LETTER SMALL CAPITAL BARRED B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D03"},7428:{"value":"1D04","name":"LATIN LETTER SMALL CAPITAL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D04"},7429:{"value":"1D05","name":"LATIN LETTER SMALL CAPITAL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D05"},7430:{"value":"1D06","name":"LATIN LETTER SMALL CAPITAL ETH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D06"},7431:{"value":"1D07","name":"LATIN LETTER SMALL CAPITAL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D07"},7432:{"value":"1D08","name":"LATIN SMALL LETTER TURNED OPEN E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D08"},7433:{"value":"1D09","name":"LATIN SMALL LETTER TURNED I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D09"},7434:{"value":"1D0A","name":"LATIN LETTER SMALL CAPITAL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0A"},7435:{"value":"1D0B","name":"LATIN LETTER SMALL CAPITAL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0B"},7436:{"value":"1D0C","name":"LATIN LETTER SMALL CAPITAL L WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0C"},7437:{"value":"1D0D","name":"LATIN LETTER SMALL CAPITAL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0D"},7438:{"value":"1D0E","name":"LATIN LETTER SMALL CAPITAL REVERSED N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0E"},7439:{"value":"1D0F","name":"LATIN LETTER SMALL CAPITAL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0F"},7440:{"value":"1D10","name":"LATIN LETTER SMALL CAPITAL OPEN O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D10"},7441:{"value":"1D11","name":"LATIN SMALL LETTER SIDEWAYS O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D11"},7442:{"value":"1D12","name":"LATIN SMALL LETTER SIDEWAYS OPEN O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D12"},7443:{"value":"1D13","name":"LATIN SMALL LETTER SIDEWAYS O WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D13"},7444:{"value":"1D14","name":"LATIN SMALL LETTER TURNED OE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D14"},7445:{"value":"1D15","name":"LATIN LETTER SMALL CAPITAL OU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D15"},7446:{"value":"1D16","name":"LATIN SMALL LETTER TOP HALF O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D16"},7447:{"value":"1D17","name":"LATIN SMALL LETTER BOTTOM HALF O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D17"},7448:{"value":"1D18","name":"LATIN LETTER SMALL CAPITAL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D18"},7449:{"value":"1D19","name":"LATIN LETTER SMALL CAPITAL REVERSED R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D19"},7450:{"value":"1D1A","name":"LATIN LETTER SMALL CAPITAL TURNED R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1A"},7451:{"value":"1D1B","name":"LATIN LETTER SMALL CAPITAL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1B"},7452:{"value":"1D1C","name":"LATIN LETTER SMALL CAPITAL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1C"},7453:{"value":"1D1D","name":"LATIN SMALL LETTER SIDEWAYS U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1D"},7454:{"value":"1D1E","name":"LATIN SMALL LETTER SIDEWAYS DIAERESIZED U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1E"},7455:{"value":"1D1F","name":"LATIN SMALL LETTER SIDEWAYS TURNED M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1F"},7456:{"value":"1D20","name":"LATIN LETTER SMALL CAPITAL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D20"},7457:{"value":"1D21","name":"LATIN LETTER SMALL CAPITAL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D21"},7458:{"value":"1D22","name":"LATIN LETTER SMALL CAPITAL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D22"},7459:{"value":"1D23","name":"LATIN LETTER SMALL CAPITAL EZH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D23"},7460:{"value":"1D24","name":"LATIN LETTER VOICED LARYNGEAL SPIRANT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D24"},7461:{"value":"1D25","name":"LATIN LETTER AIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D25"},7462:{"value":"1D26","name":"GREEK LETTER SMALL CAPITAL GAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D26"},7463:{"value":"1D27","name":"GREEK LETTER SMALL CAPITAL LAMDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D27"},7464:{"value":"1D28","name":"GREEK LETTER SMALL CAPITAL PI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D28"},7465:{"value":"1D29","name":"GREEK LETTER SMALL CAPITAL RHO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D29"},7466:{"value":"1D2A","name":"GREEK LETTER SMALL CAPITAL PSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2A"},7467:{"value":"1D2B","name":"CYRILLIC LETTER SMALL CAPITAL EL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2B"},7531:{"value":"1D6B","name":"LATIN SMALL LETTER UE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6B"},7532:{"value":"1D6C","name":"LATIN SMALL LETTER B WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6C"},7533:{"value":"1D6D","name":"LATIN SMALL LETTER D WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6D"},7534:{"value":"1D6E","name":"LATIN SMALL LETTER F WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6E"},7535:{"value":"1D6F","name":"LATIN SMALL LETTER M WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6F"},7536:{"value":"1D70","name":"LATIN SMALL LETTER N WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D70"},7537:{"value":"1D71","name":"LATIN SMALL LETTER P WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D71"},7538:{"value":"1D72","name":"LATIN SMALL LETTER R WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D72"},7539:{"value":"1D73","name":"LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D73"},7540:{"value":"1D74","name":"LATIN SMALL LETTER S WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D74"},7541:{"value":"1D75","name":"LATIN SMALL LETTER T WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D75"},7542:{"value":"1D76","name":"LATIN SMALL LETTER Z WITH MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D76"},7543:{"value":"1D77","name":"LATIN SMALL LETTER TURNED G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D77"},7545:{"value":"1D79","name":"LATIN SMALL LETTER INSULAR G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A77D","lowercase_mapping":"","titlecase_mapping":"A77D","symbol":"\u1D79"},7546:{"value":"1D7A","name":"LATIN SMALL LETTER TH WITH STRIKETHROUGH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7A"},7547:{"value":"1D7B","name":"LATIN SMALL CAPITAL LETTER I WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7B"},7548:{"value":"1D7C","name":"LATIN SMALL LETTER IOTA WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7C"},7549:{"value":"1D7D","name":"LATIN SMALL LETTER P WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C63","lowercase_mapping":"","titlecase_mapping":"2C63","symbol":"\u1D7D"},7550:{"value":"1D7E","name":"LATIN SMALL CAPITAL LETTER U WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7E"},7551:{"value":"1D7F","name":"LATIN SMALL LETTER UPSILON WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7F"},7552:{"value":"1D80","name":"LATIN SMALL LETTER B WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D80"},7553:{"value":"1D81","name":"LATIN SMALL LETTER D WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D81"},7554:{"value":"1D82","name":"LATIN SMALL LETTER F WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D82"},7555:{"value":"1D83","name":"LATIN SMALL LETTER G WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D83"},7556:{"value":"1D84","name":"LATIN SMALL LETTER K WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D84"},7557:{"value":"1D85","name":"LATIN SMALL LETTER L WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D85"},7558:{"value":"1D86","name":"LATIN SMALL LETTER M WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D86"},7559:{"value":"1D87","name":"LATIN SMALL LETTER N WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D87"},7560:{"value":"1D88","name":"LATIN SMALL LETTER P WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D88"},7561:{"value":"1D89","name":"LATIN SMALL LETTER R WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D89"},7562:{"value":"1D8A","name":"LATIN SMALL LETTER S WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8A"},7563:{"value":"1D8B","name":"LATIN SMALL LETTER ESH WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8B"},7564:{"value":"1D8C","name":"LATIN SMALL LETTER V WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8C"},7565:{"value":"1D8D","name":"LATIN SMALL LETTER X WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8D"},7566:{"value":"1D8E","name":"LATIN SMALL LETTER Z WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8E"},7567:{"value":"1D8F","name":"LATIN SMALL LETTER A WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8F"},7568:{"value":"1D90","name":"LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D90"},7569:{"value":"1D91","name":"LATIN SMALL LETTER D WITH HOOK AND TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D91"},7570:{"value":"1D92","name":"LATIN SMALL LETTER E WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D92"},7571:{"value":"1D93","name":"LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D93"},7572:{"value":"1D94","name":"LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D94"},7573:{"value":"1D95","name":"LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D95"},7574:{"value":"1D96","name":"LATIN SMALL LETTER I WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D96"},7575:{"value":"1D97","name":"LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D97"},7576:{"value":"1D98","name":"LATIN SMALL LETTER ESH WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D98"},7577:{"value":"1D99","name":"LATIN SMALL LETTER U WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D99"},7578:{"value":"1D9A","name":"LATIN SMALL LETTER EZH WITH RETROFLEX HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D9A"},7681:{"value":"1E01","name":"LATIN SMALL LETTER A WITH RING BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0325","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E00","lowercase_mapping":"","titlecase_mapping":"1E00","symbol":"\u1E01"},7683:{"value":"1E03","name":"LATIN SMALL LETTER B WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0062 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E02","lowercase_mapping":"","titlecase_mapping":"1E02","symbol":"\u1E03"},7685:{"value":"1E05","name":"LATIN SMALL LETTER B WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0062 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E04","lowercase_mapping":"","titlecase_mapping":"1E04","symbol":"\u1E05"},7687:{"value":"1E07","name":"LATIN SMALL LETTER B WITH LINE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0062 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E06","lowercase_mapping":"","titlecase_mapping":"1E06","symbol":"\u1E07"},7689:{"value":"1E09","name":"LATIN SMALL LETTER C WITH CEDILLA AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00E7 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E08","lowercase_mapping":"","titlecase_mapping":"1E08","symbol":"\u1E09"},7691:{"value":"1E0B","name":"LATIN SMALL LETTER D WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0064 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E0A","lowercase_mapping":"","titlecase_mapping":"1E0A","symbol":"\u1E0B"},7693:{"value":"1E0D","name":"LATIN SMALL LETTER D WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0064 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E0C","lowercase_mapping":"","titlecase_mapping":"1E0C","symbol":"\u1E0D"},7695:{"value":"1E0F","name":"LATIN SMALL LETTER D WITH LINE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0064 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E0E","lowercase_mapping":"","titlecase_mapping":"1E0E","symbol":"\u1E0F"},7697:{"value":"1E11","name":"LATIN SMALL LETTER D WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0064 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E10","lowercase_mapping":"","titlecase_mapping":"1E10","symbol":"\u1E11"},7699:{"value":"1E13","name":"LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0064 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E12","lowercase_mapping":"","titlecase_mapping":"1E12","symbol":"\u1E13"},7701:{"value":"1E15","name":"LATIN SMALL LETTER E WITH MACRON AND GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0113 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E14","lowercase_mapping":"","titlecase_mapping":"1E14","symbol":"\u1E15"},7703:{"value":"1E17","name":"LATIN SMALL LETTER E WITH MACRON AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0113 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E16","lowercase_mapping":"","titlecase_mapping":"1E16","symbol":"\u1E17"},7705:{"value":"1E19","name":"LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E18","lowercase_mapping":"","titlecase_mapping":"1E18","symbol":"\u1E19"},7707:{"value":"1E1B","name":"LATIN SMALL LETTER E WITH TILDE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0330","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E1A","lowercase_mapping":"","titlecase_mapping":"1E1A","symbol":"\u1E1B"},7709:{"value":"1E1D","name":"LATIN SMALL LETTER E WITH CEDILLA AND BREVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0229 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E1C","lowercase_mapping":"","titlecase_mapping":"1E1C","symbol":"\u1E1D"},7711:{"value":"1E1F","name":"LATIN SMALL LETTER F WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0066 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E1E","lowercase_mapping":"","titlecase_mapping":"1E1E","symbol":"\u1E1F"},7713:{"value":"1E21","name":"LATIN SMALL LETTER G WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0067 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E20","lowercase_mapping":"","titlecase_mapping":"1E20","symbol":"\u1E21"},7715:{"value":"1E23","name":"LATIN SMALL LETTER H WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0068 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E22","lowercase_mapping":"","titlecase_mapping":"1E22","symbol":"\u1E23"},7717:{"value":"1E25","name":"LATIN SMALL LETTER H WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0068 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E24","lowercase_mapping":"","titlecase_mapping":"1E24","symbol":"\u1E25"},7719:{"value":"1E27","name":"LATIN SMALL LETTER H WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0068 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E26","lowercase_mapping":"","titlecase_mapping":"1E26","symbol":"\u1E27"},7721:{"value":"1E29","name":"LATIN SMALL LETTER H WITH CEDILLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0068 0327","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E28","lowercase_mapping":"","titlecase_mapping":"1E28","symbol":"\u1E29"},7723:{"value":"1E2B","name":"LATIN SMALL LETTER H WITH BREVE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0068 032E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E2A","lowercase_mapping":"","titlecase_mapping":"1E2A","symbol":"\u1E2B"},7725:{"value":"1E2D","name":"LATIN SMALL LETTER I WITH TILDE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0330","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E2C","lowercase_mapping":"","titlecase_mapping":"1E2C","symbol":"\u1E2D"},7727:{"value":"1E2F","name":"LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00EF 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E2E","lowercase_mapping":"","titlecase_mapping":"1E2E","symbol":"\u1E2F"},7729:{"value":"1E31","name":"LATIN SMALL LETTER K WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006B 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E30","lowercase_mapping":"","titlecase_mapping":"1E30","symbol":"\u1E31"},7731:{"value":"1E33","name":"LATIN SMALL LETTER K WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006B 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E32","lowercase_mapping":"","titlecase_mapping":"1E32","symbol":"\u1E33"},7733:{"value":"1E35","name":"LATIN SMALL LETTER K WITH LINE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006B 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E34","lowercase_mapping":"","titlecase_mapping":"1E34","symbol":"\u1E35"},7735:{"value":"1E37","name":"LATIN SMALL LETTER L WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006C 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E36","lowercase_mapping":"","titlecase_mapping":"1E36","symbol":"\u1E37"},7737:{"value":"1E39","name":"LATIN SMALL LETTER L WITH DOT BELOW AND MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1E37 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E38","lowercase_mapping":"","titlecase_mapping":"1E38","symbol":"\u1E39"},7739:{"value":"1E3B","name":"LATIN SMALL LETTER L WITH LINE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006C 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E3A","lowercase_mapping":"","titlecase_mapping":"1E3A","symbol":"\u1E3B"},7741:{"value":"1E3D","name":"LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006C 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E3C","lowercase_mapping":"","titlecase_mapping":"1E3C","symbol":"\u1E3D"},7743:{"value":"1E3F","name":"LATIN SMALL LETTER M WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006D 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E3E","lowercase_mapping":"","titlecase_mapping":"1E3E","symbol":"\u1E3F"},7745:{"value":"1E41","name":"LATIN SMALL LETTER M WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006D 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E40","lowercase_mapping":"","titlecase_mapping":"1E40","symbol":"\u1E41"},7747:{"value":"1E43","name":"LATIN SMALL LETTER M WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006D 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E42","lowercase_mapping":"","titlecase_mapping":"1E42","symbol":"\u1E43"},7749:{"value":"1E45","name":"LATIN SMALL LETTER N WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006E 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E44","lowercase_mapping":"","titlecase_mapping":"1E44","symbol":"\u1E45"},7751:{"value":"1E47","name":"LATIN SMALL LETTER N WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006E 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E46","lowercase_mapping":"","titlecase_mapping":"1E46","symbol":"\u1E47"},7753:{"value":"1E49","name":"LATIN SMALL LETTER N WITH LINE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006E 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E48","lowercase_mapping":"","titlecase_mapping":"1E48","symbol":"\u1E49"},7755:{"value":"1E4B","name":"LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006E 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E4A","lowercase_mapping":"","titlecase_mapping":"1E4A","symbol":"\u1E4B"},7757:{"value":"1E4D","name":"LATIN SMALL LETTER O WITH TILDE AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00F5 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E4C","lowercase_mapping":"","titlecase_mapping":"1E4C","symbol":"\u1E4D"},7759:{"value":"1E4F","name":"LATIN SMALL LETTER O WITH TILDE AND DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00F5 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E4E","lowercase_mapping":"","titlecase_mapping":"1E4E","symbol":"\u1E4F"},7761:{"value":"1E51","name":"LATIN SMALL LETTER O WITH MACRON AND GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"014D 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E50","lowercase_mapping":"","titlecase_mapping":"1E50","symbol":"\u1E51"},7763:{"value":"1E53","name":"LATIN SMALL LETTER O WITH MACRON AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"014D 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E52","lowercase_mapping":"","titlecase_mapping":"1E52","symbol":"\u1E53"},7765:{"value":"1E55","name":"LATIN SMALL LETTER P WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0070 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E54","lowercase_mapping":"","titlecase_mapping":"1E54","symbol":"\u1E55"},7767:{"value":"1E57","name":"LATIN SMALL LETTER P WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0070 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E56","lowercase_mapping":"","titlecase_mapping":"1E56","symbol":"\u1E57"},7769:{"value":"1E59","name":"LATIN SMALL LETTER R WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0072 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E58","lowercase_mapping":"","titlecase_mapping":"1E58","symbol":"\u1E59"},7771:{"value":"1E5B","name":"LATIN SMALL LETTER R WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0072 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E5A","lowercase_mapping":"","titlecase_mapping":"1E5A","symbol":"\u1E5B"},7773:{"value":"1E5D","name":"LATIN SMALL LETTER R WITH DOT BELOW AND MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1E5B 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E5C","lowercase_mapping":"","titlecase_mapping":"1E5C","symbol":"\u1E5D"},7775:{"value":"1E5F","name":"LATIN SMALL LETTER R WITH LINE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0072 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E5E","lowercase_mapping":"","titlecase_mapping":"1E5E","symbol":"\u1E5F"},7777:{"value":"1E61","name":"LATIN SMALL LETTER S WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0073 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E60","lowercase_mapping":"","titlecase_mapping":"1E60","symbol":"\u1E61"},7779:{"value":"1E63","name":"LATIN SMALL LETTER S WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0073 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E62","lowercase_mapping":"","titlecase_mapping":"1E62","symbol":"\u1E63"},7781:{"value":"1E65","name":"LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"015B 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E64","lowercase_mapping":"","titlecase_mapping":"1E64","symbol":"\u1E65"},7783:{"value":"1E67","name":"LATIN SMALL LETTER S WITH CARON AND DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0161 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E66","lowercase_mapping":"","titlecase_mapping":"1E66","symbol":"\u1E67"},7785:{"value":"1E69","name":"LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1E63 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E68","lowercase_mapping":"","titlecase_mapping":"1E68","symbol":"\u1E69"},7787:{"value":"1E6B","name":"LATIN SMALL LETTER T WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0074 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E6A","lowercase_mapping":"","titlecase_mapping":"1E6A","symbol":"\u1E6B"},7789:{"value":"1E6D","name":"LATIN SMALL LETTER T WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0074 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E6C","lowercase_mapping":"","titlecase_mapping":"1E6C","symbol":"\u1E6D"},7791:{"value":"1E6F","name":"LATIN SMALL LETTER T WITH LINE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0074 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E6E","lowercase_mapping":"","titlecase_mapping":"1E6E","symbol":"\u1E6F"},7793:{"value":"1E71","name":"LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0074 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E70","lowercase_mapping":"","titlecase_mapping":"1E70","symbol":"\u1E71"},7795:{"value":"1E73","name":"LATIN SMALL LETTER U WITH DIAERESIS BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0324","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E72","lowercase_mapping":"","titlecase_mapping":"1E72","symbol":"\u1E73"},7797:{"value":"1E75","name":"LATIN SMALL LETTER U WITH TILDE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0330","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E74","lowercase_mapping":"","titlecase_mapping":"1E74","symbol":"\u1E75"},7799:{"value":"1E77","name":"LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 032D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E76","lowercase_mapping":"","titlecase_mapping":"1E76","symbol":"\u1E77"},7801:{"value":"1E79","name":"LATIN SMALL LETTER U WITH TILDE AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0169 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E78","lowercase_mapping":"","titlecase_mapping":"1E78","symbol":"\u1E79"},7803:{"value":"1E7B","name":"LATIN SMALL LETTER U WITH MACRON AND DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"016B 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E7A","lowercase_mapping":"","titlecase_mapping":"1E7A","symbol":"\u1E7B"},7805:{"value":"1E7D","name":"LATIN SMALL LETTER V WITH TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0076 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E7C","lowercase_mapping":"","titlecase_mapping":"1E7C","symbol":"\u1E7D"},7807:{"value":"1E7F","name":"LATIN SMALL LETTER V WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0076 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E7E","lowercase_mapping":"","titlecase_mapping":"1E7E","symbol":"\u1E7F"},7809:{"value":"1E81","name":"LATIN SMALL LETTER W WITH GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0077 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E80","lowercase_mapping":"","titlecase_mapping":"1E80","symbol":"\u1E81"},7811:{"value":"1E83","name":"LATIN SMALL LETTER W WITH ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0077 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E82","lowercase_mapping":"","titlecase_mapping":"1E82","symbol":"\u1E83"},7813:{"value":"1E85","name":"LATIN SMALL LETTER W WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0077 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E84","lowercase_mapping":"","titlecase_mapping":"1E84","symbol":"\u1E85"},7815:{"value":"1E87","name":"LATIN SMALL LETTER W WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0077 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E86","lowercase_mapping":"","titlecase_mapping":"1E86","symbol":"\u1E87"},7817:{"value":"1E89","name":"LATIN SMALL LETTER W WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0077 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E88","lowercase_mapping":"","titlecase_mapping":"1E88","symbol":"\u1E89"},7819:{"value":"1E8B","name":"LATIN SMALL LETTER X WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0078 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E8A","lowercase_mapping":"","titlecase_mapping":"1E8A","symbol":"\u1E8B"},7821:{"value":"1E8D","name":"LATIN SMALL LETTER X WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0078 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E8C","lowercase_mapping":"","titlecase_mapping":"1E8C","symbol":"\u1E8D"},7823:{"value":"1E8F","name":"LATIN SMALL LETTER Y WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0079 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E8E","lowercase_mapping":"","titlecase_mapping":"1E8E","symbol":"\u1E8F"},7825:{"value":"1E91","name":"LATIN SMALL LETTER Z WITH CIRCUMFLEX","category":"Ll","class":"0","bidirectional_category":"L","mapping":"007A 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E90","lowercase_mapping":"","titlecase_mapping":"1E90","symbol":"\u1E91"},7827:{"value":"1E93","name":"LATIN SMALL LETTER Z WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"007A 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E92","lowercase_mapping":"","titlecase_mapping":"1E92","symbol":"\u1E93"},7829:{"value":"1E95","name":"LATIN SMALL LETTER Z WITH LINE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"007A 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E94","lowercase_mapping":"","titlecase_mapping":"1E94","symbol":"\u1E95"},7830:{"value":"1E96","name":"LATIN SMALL LETTER H WITH LINE BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0068 0331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1E96"},7831:{"value":"1E97","name":"LATIN SMALL LETTER T WITH DIAERESIS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0074 0308","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1E97"},7832:{"value":"1E98","name":"LATIN SMALL LETTER W WITH RING ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0077 030A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1E98"},7833:{"value":"1E99","name":"LATIN SMALL LETTER Y WITH RING ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0079 030A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1E99"},7834:{"value":"1E9A","name":"LATIN SMALL LETTER A WITH RIGHT HALF RING","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0061 02BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1E9A"},7835:{"value":"1E9B","name":"LATIN SMALL LETTER LONG S WITH DOT ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"017F 0307","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E60","lowercase_mapping":"","titlecase_mapping":"1E60","symbol":"\u1E9B"},7836:{"value":"1E9C","name":"LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1E9C"},7837:{"value":"1E9D","name":"LATIN SMALL LETTER LONG S WITH HIGH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1E9D"},7839:{"value":"1E9F","name":"LATIN SMALL LETTER DELTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1E9F"},7841:{"value":"1EA1","name":"LATIN SMALL LETTER A WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EA0","lowercase_mapping":"","titlecase_mapping":"1EA0","symbol":"\u1EA1"},7843:{"value":"1EA3","name":"LATIN SMALL LETTER A WITH HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0061 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EA2","lowercase_mapping":"","titlecase_mapping":"1EA2","symbol":"\u1EA3"},7845:{"value":"1EA5","name":"LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00E2 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EA4","lowercase_mapping":"","titlecase_mapping":"1EA4","symbol":"\u1EA5"},7847:{"value":"1EA7","name":"LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00E2 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EA6","lowercase_mapping":"","titlecase_mapping":"1EA6","symbol":"\u1EA7"},7849:{"value":"1EA9","name":"LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00E2 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EA8","lowercase_mapping":"","titlecase_mapping":"1EA8","symbol":"\u1EA9"},7851:{"value":"1EAB","name":"LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00E2 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EAA","lowercase_mapping":"","titlecase_mapping":"1EAA","symbol":"\u1EAB"},7853:{"value":"1EAD","name":"LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1EA1 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EAC","lowercase_mapping":"","titlecase_mapping":"1EAC","symbol":"\u1EAD"},7855:{"value":"1EAF","name":"LATIN SMALL LETTER A WITH BREVE AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0103 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EAE","lowercase_mapping":"","titlecase_mapping":"1EAE","symbol":"\u1EAF"},7857:{"value":"1EB1","name":"LATIN SMALL LETTER A WITH BREVE AND GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0103 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EB0","lowercase_mapping":"","titlecase_mapping":"1EB0","symbol":"\u1EB1"},7859:{"value":"1EB3","name":"LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0103 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EB2","lowercase_mapping":"","titlecase_mapping":"1EB2","symbol":"\u1EB3"},7861:{"value":"1EB5","name":"LATIN SMALL LETTER A WITH BREVE AND TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0103 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EB4","lowercase_mapping":"","titlecase_mapping":"1EB4","symbol":"\u1EB5"},7863:{"value":"1EB7","name":"LATIN SMALL LETTER A WITH BREVE AND DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1EA1 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EB6","lowercase_mapping":"","titlecase_mapping":"1EB6","symbol":"\u1EB7"},7865:{"value":"1EB9","name":"LATIN SMALL LETTER E WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EB8","lowercase_mapping":"","titlecase_mapping":"1EB8","symbol":"\u1EB9"},7867:{"value":"1EBB","name":"LATIN SMALL LETTER E WITH HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EBA","lowercase_mapping":"","titlecase_mapping":"1EBA","symbol":"\u1EBB"},7869:{"value":"1EBD","name":"LATIN SMALL LETTER E WITH TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0065 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EBC","lowercase_mapping":"","titlecase_mapping":"1EBC","symbol":"\u1EBD"},7871:{"value":"1EBF","name":"LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00EA 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EBE","lowercase_mapping":"","titlecase_mapping":"1EBE","symbol":"\u1EBF"},7873:{"value":"1EC1","name":"LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00EA 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EC0","lowercase_mapping":"","titlecase_mapping":"1EC0","symbol":"\u1EC1"},7875:{"value":"1EC3","name":"LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00EA 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EC2","lowercase_mapping":"","titlecase_mapping":"1EC2","symbol":"\u1EC3"},7877:{"value":"1EC5","name":"LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00EA 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EC4","lowercase_mapping":"","titlecase_mapping":"1EC4","symbol":"\u1EC5"},7879:{"value":"1EC7","name":"LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1EB9 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EC6","lowercase_mapping":"","titlecase_mapping":"1EC6","symbol":"\u1EC7"},7881:{"value":"1EC9","name":"LATIN SMALL LETTER I WITH HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EC8","lowercase_mapping":"","titlecase_mapping":"1EC8","symbol":"\u1EC9"},7883:{"value":"1ECB","name":"LATIN SMALL LETTER I WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0069 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1ECA","lowercase_mapping":"","titlecase_mapping":"1ECA","symbol":"\u1ECB"},7885:{"value":"1ECD","name":"LATIN SMALL LETTER O WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1ECC","lowercase_mapping":"","titlecase_mapping":"1ECC","symbol":"\u1ECD"},7887:{"value":"1ECF","name":"LATIN SMALL LETTER O WITH HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"006F 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1ECE","lowercase_mapping":"","titlecase_mapping":"1ECE","symbol":"\u1ECF"},7889:{"value":"1ED1","name":"LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00F4 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1ED0","lowercase_mapping":"","titlecase_mapping":"1ED0","symbol":"\u1ED1"},7891:{"value":"1ED3","name":"LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00F4 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1ED2","lowercase_mapping":"","titlecase_mapping":"1ED2","symbol":"\u1ED3"},7893:{"value":"1ED5","name":"LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00F4 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1ED4","lowercase_mapping":"","titlecase_mapping":"1ED4","symbol":"\u1ED5"},7895:{"value":"1ED7","name":"LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"00F4 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1ED6","lowercase_mapping":"","titlecase_mapping":"1ED6","symbol":"\u1ED7"},7897:{"value":"1ED9","name":"LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1ECD 0302","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1ED8","lowercase_mapping":"","titlecase_mapping":"1ED8","symbol":"\u1ED9"},7899:{"value":"1EDB","name":"LATIN SMALL LETTER O WITH HORN AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01A1 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EDA","lowercase_mapping":"","titlecase_mapping":"1EDA","symbol":"\u1EDB"},7901:{"value":"1EDD","name":"LATIN SMALL LETTER O WITH HORN AND GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01A1 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EDC","lowercase_mapping":"","titlecase_mapping":"1EDC","symbol":"\u1EDD"},7903:{"value":"1EDF","name":"LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01A1 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EDE","lowercase_mapping":"","titlecase_mapping":"1EDE","symbol":"\u1EDF"},7905:{"value":"1EE1","name":"LATIN SMALL LETTER O WITH HORN AND TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01A1 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EE0","lowercase_mapping":"","titlecase_mapping":"1EE0","symbol":"\u1EE1"},7907:{"value":"1EE3","name":"LATIN SMALL LETTER O WITH HORN AND DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01A1 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EE2","lowercase_mapping":"","titlecase_mapping":"1EE2","symbol":"\u1EE3"},7909:{"value":"1EE5","name":"LATIN SMALL LETTER U WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EE4","lowercase_mapping":"","titlecase_mapping":"1EE4","symbol":"\u1EE5"},7911:{"value":"1EE7","name":"LATIN SMALL LETTER U WITH HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0075 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EE6","lowercase_mapping":"","titlecase_mapping":"1EE6","symbol":"\u1EE7"},7913:{"value":"1EE9","name":"LATIN SMALL LETTER U WITH HORN AND ACUTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01B0 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EE8","lowercase_mapping":"","titlecase_mapping":"1EE8","symbol":"\u1EE9"},7915:{"value":"1EEB","name":"LATIN SMALL LETTER U WITH HORN AND GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01B0 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EEA","lowercase_mapping":"","titlecase_mapping":"1EEA","symbol":"\u1EEB"},7917:{"value":"1EED","name":"LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01B0 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EEC","lowercase_mapping":"","titlecase_mapping":"1EEC","symbol":"\u1EED"},7919:{"value":"1EEF","name":"LATIN SMALL LETTER U WITH HORN AND TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01B0 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EEE","lowercase_mapping":"","titlecase_mapping":"1EEE","symbol":"\u1EEF"},7921:{"value":"1EF1","name":"LATIN SMALL LETTER U WITH HORN AND DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"01B0 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EF0","lowercase_mapping":"","titlecase_mapping":"1EF0","symbol":"\u1EF1"},7923:{"value":"1EF3","name":"LATIN SMALL LETTER Y WITH GRAVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0079 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EF2","lowercase_mapping":"","titlecase_mapping":"1EF2","symbol":"\u1EF3"},7925:{"value":"1EF5","name":"LATIN SMALL LETTER Y WITH DOT BELOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0079 0323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EF4","lowercase_mapping":"","titlecase_mapping":"1EF4","symbol":"\u1EF5"},7927:{"value":"1EF7","name":"LATIN SMALL LETTER Y WITH HOOK ABOVE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0079 0309","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EF6","lowercase_mapping":"","titlecase_mapping":"1EF6","symbol":"\u1EF7"},7929:{"value":"1EF9","name":"LATIN SMALL LETTER Y WITH TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0079 0303","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EF8","lowercase_mapping":"","titlecase_mapping":"1EF8","symbol":"\u1EF9"},7931:{"value":"1EFB","name":"LATIN SMALL LETTER MIDDLE-WELSH LL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EFA","lowercase_mapping":"","titlecase_mapping":"1EFA","symbol":"\u1EFB"},7933:{"value":"1EFD","name":"LATIN SMALL LETTER MIDDLE-WELSH V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EFC","lowercase_mapping":"","titlecase_mapping":"1EFC","symbol":"\u1EFD"},7935:{"value":"1EFF","name":"LATIN SMALL LETTER Y WITH LOOP","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1EFE","lowercase_mapping":"","titlecase_mapping":"1EFE","symbol":"\u1EFF"},7936:{"value":"1F00","name":"GREEK SMALL LETTER ALPHA WITH PSILI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B1 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F08","lowercase_mapping":"","titlecase_mapping":"1F08","symbol":"\u1F00"},7937:{"value":"1F01","name":"GREEK SMALL LETTER ALPHA WITH DASIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B1 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F09","lowercase_mapping":"","titlecase_mapping":"1F09","symbol":"\u1F01"},7938:{"value":"1F02","name":"GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F00 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F0A","lowercase_mapping":"","titlecase_mapping":"1F0A","symbol":"\u1F02"},7939:{"value":"1F03","name":"GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F01 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F0B","lowercase_mapping":"","titlecase_mapping":"1F0B","symbol":"\u1F03"},7940:{"value":"1F04","name":"GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F00 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F0C","lowercase_mapping":"","titlecase_mapping":"1F0C","symbol":"\u1F04"},7941:{"value":"1F05","name":"GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F01 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F0D","lowercase_mapping":"","titlecase_mapping":"1F0D","symbol":"\u1F05"},7942:{"value":"1F06","name":"GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F00 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F0E","lowercase_mapping":"","titlecase_mapping":"1F0E","symbol":"\u1F06"},7943:{"value":"1F07","name":"GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F01 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F0F","lowercase_mapping":"","titlecase_mapping":"1F0F","symbol":"\u1F07"},7952:{"value":"1F10","name":"GREEK SMALL LETTER EPSILON WITH PSILI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B5 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F18","lowercase_mapping":"","titlecase_mapping":"1F18","symbol":"\u1F10"},7953:{"value":"1F11","name":"GREEK SMALL LETTER EPSILON WITH DASIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B5 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F19","lowercase_mapping":"","titlecase_mapping":"1F19","symbol":"\u1F11"},7954:{"value":"1F12","name":"GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F10 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F1A","lowercase_mapping":"","titlecase_mapping":"1F1A","symbol":"\u1F12"},7955:{"value":"1F13","name":"GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F11 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F1B","lowercase_mapping":"","titlecase_mapping":"1F1B","symbol":"\u1F13"},7956:{"value":"1F14","name":"GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F10 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F1C","lowercase_mapping":"","titlecase_mapping":"1F1C","symbol":"\u1F14"},7957:{"value":"1F15","name":"GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F11 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F1D","lowercase_mapping":"","titlecase_mapping":"1F1D","symbol":"\u1F15"},7968:{"value":"1F20","name":"GREEK SMALL LETTER ETA WITH PSILI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B7 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F28","lowercase_mapping":"","titlecase_mapping":"1F28","symbol":"\u1F20"},7969:{"value":"1F21","name":"GREEK SMALL LETTER ETA WITH DASIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B7 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F29","lowercase_mapping":"","titlecase_mapping":"1F29","symbol":"\u1F21"},7970:{"value":"1F22","name":"GREEK SMALL LETTER ETA WITH PSILI AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F20 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F2A","lowercase_mapping":"","titlecase_mapping":"1F2A","symbol":"\u1F22"},7971:{"value":"1F23","name":"GREEK SMALL LETTER ETA WITH DASIA AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F21 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F2B","lowercase_mapping":"","titlecase_mapping":"1F2B","symbol":"\u1F23"},7972:{"value":"1F24","name":"GREEK SMALL LETTER ETA WITH PSILI AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F20 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F2C","lowercase_mapping":"","titlecase_mapping":"1F2C","symbol":"\u1F24"},7973:{"value":"1F25","name":"GREEK SMALL LETTER ETA WITH DASIA AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F21 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F2D","lowercase_mapping":"","titlecase_mapping":"1F2D","symbol":"\u1F25"},7974:{"value":"1F26","name":"GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F20 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F2E","lowercase_mapping":"","titlecase_mapping":"1F2E","symbol":"\u1F26"},7975:{"value":"1F27","name":"GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F21 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F2F","lowercase_mapping":"","titlecase_mapping":"1F2F","symbol":"\u1F27"},7984:{"value":"1F30","name":"GREEK SMALL LETTER IOTA WITH PSILI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B9 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F38","lowercase_mapping":"","titlecase_mapping":"1F38","symbol":"\u1F30"},7985:{"value":"1F31","name":"GREEK SMALL LETTER IOTA WITH DASIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B9 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F39","lowercase_mapping":"","titlecase_mapping":"1F39","symbol":"\u1F31"},7986:{"value":"1F32","name":"GREEK SMALL LETTER IOTA WITH PSILI AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F30 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F3A","lowercase_mapping":"","titlecase_mapping":"1F3A","symbol":"\u1F32"},7987:{"value":"1F33","name":"GREEK SMALL LETTER IOTA WITH DASIA AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F31 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F3B","lowercase_mapping":"","titlecase_mapping":"1F3B","symbol":"\u1F33"},7988:{"value":"1F34","name":"GREEK SMALL LETTER IOTA WITH PSILI AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F30 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F3C","lowercase_mapping":"","titlecase_mapping":"1F3C","symbol":"\u1F34"},7989:{"value":"1F35","name":"GREEK SMALL LETTER IOTA WITH DASIA AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F31 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F3D","lowercase_mapping":"","titlecase_mapping":"1F3D","symbol":"\u1F35"},7990:{"value":"1F36","name":"GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F30 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F3E","lowercase_mapping":"","titlecase_mapping":"1F3E","symbol":"\u1F36"},7991:{"value":"1F37","name":"GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F31 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F3F","lowercase_mapping":"","titlecase_mapping":"1F3F","symbol":"\u1F37"},8000:{"value":"1F40","name":"GREEK SMALL LETTER OMICRON WITH PSILI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03BF 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F48","lowercase_mapping":"","titlecase_mapping":"1F48","symbol":"\u1F40"},8001:{"value":"1F41","name":"GREEK SMALL LETTER OMICRON WITH DASIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03BF 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F49","lowercase_mapping":"","titlecase_mapping":"1F49","symbol":"\u1F41"},8002:{"value":"1F42","name":"GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F40 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F4A","lowercase_mapping":"","titlecase_mapping":"1F4A","symbol":"\u1F42"},8003:{"value":"1F43","name":"GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F41 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F4B","lowercase_mapping":"","titlecase_mapping":"1F4B","symbol":"\u1F43"},8004:{"value":"1F44","name":"GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F40 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F4C","lowercase_mapping":"","titlecase_mapping":"1F4C","symbol":"\u1F44"},8005:{"value":"1F45","name":"GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F41 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F4D","lowercase_mapping":"","titlecase_mapping":"1F4D","symbol":"\u1F45"},8016:{"value":"1F50","name":"GREEK SMALL LETTER UPSILON WITH PSILI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C5 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1F50"},8017:{"value":"1F51","name":"GREEK SMALL LETTER UPSILON WITH DASIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C5 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F59","lowercase_mapping":"","titlecase_mapping":"1F59","symbol":"\u1F51"},8018:{"value":"1F52","name":"GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F50 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1F52"},8019:{"value":"1F53","name":"GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F51 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F5B","lowercase_mapping":"","titlecase_mapping":"1F5B","symbol":"\u1F53"},8020:{"value":"1F54","name":"GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F50 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1F54"},8021:{"value":"1F55","name":"GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F51 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F5D","lowercase_mapping":"","titlecase_mapping":"1F5D","symbol":"\u1F55"},8022:{"value":"1F56","name":"GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F50 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1F56"},8023:{"value":"1F57","name":"GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F51 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F5F","lowercase_mapping":"","titlecase_mapping":"1F5F","symbol":"\u1F57"},8032:{"value":"1F60","name":"GREEK SMALL LETTER OMEGA WITH PSILI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C9 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F68","lowercase_mapping":"","titlecase_mapping":"1F68","symbol":"\u1F60"},8033:{"value":"1F61","name":"GREEK SMALL LETTER OMEGA WITH DASIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C9 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F69","lowercase_mapping":"","titlecase_mapping":"1F69","symbol":"\u1F61"},8034:{"value":"1F62","name":"GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F60 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F6A","lowercase_mapping":"","titlecase_mapping":"1F6A","symbol":"\u1F62"},8035:{"value":"1F63","name":"GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F61 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F6B","lowercase_mapping":"","titlecase_mapping":"1F6B","symbol":"\u1F63"},8036:{"value":"1F64","name":"GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F60 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F6C","lowercase_mapping":"","titlecase_mapping":"1F6C","symbol":"\u1F64"},8037:{"value":"1F65","name":"GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F61 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F6D","lowercase_mapping":"","titlecase_mapping":"1F6D","symbol":"\u1F65"},8038:{"value":"1F66","name":"GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F60 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F6E","lowercase_mapping":"","titlecase_mapping":"1F6E","symbol":"\u1F66"},8039:{"value":"1F67","name":"GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F61 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F6F","lowercase_mapping":"","titlecase_mapping":"1F6F","symbol":"\u1F67"},8048:{"value":"1F70","name":"GREEK SMALL LETTER ALPHA WITH VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B1 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FBA","lowercase_mapping":"","titlecase_mapping":"1FBA","symbol":"\u1F70"},8049:{"value":"1F71","name":"GREEK SMALL LETTER ALPHA WITH OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03AC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FBB","lowercase_mapping":"","titlecase_mapping":"1FBB","symbol":"\u1F71"},8050:{"value":"1F72","name":"GREEK SMALL LETTER EPSILON WITH VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B5 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FC8","lowercase_mapping":"","titlecase_mapping":"1FC8","symbol":"\u1F72"},8051:{"value":"1F73","name":"GREEK SMALL LETTER EPSILON WITH OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FC9","lowercase_mapping":"","titlecase_mapping":"1FC9","symbol":"\u1F73"},8052:{"value":"1F74","name":"GREEK SMALL LETTER ETA WITH VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B7 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FCA","lowercase_mapping":"","titlecase_mapping":"1FCA","symbol":"\u1F74"},8053:{"value":"1F75","name":"GREEK SMALL LETTER ETA WITH OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03AE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FCB","lowercase_mapping":"","titlecase_mapping":"1FCB","symbol":"\u1F75"},8054:{"value":"1F76","name":"GREEK SMALL LETTER IOTA WITH VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B9 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FDA","lowercase_mapping":"","titlecase_mapping":"1FDA","symbol":"\u1F76"},8055:{"value":"1F77","name":"GREEK SMALL LETTER IOTA WITH OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03AF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FDB","lowercase_mapping":"","titlecase_mapping":"1FDB","symbol":"\u1F77"},8056:{"value":"1F78","name":"GREEK SMALL LETTER OMICRON WITH VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03BF 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FF8","lowercase_mapping":"","titlecase_mapping":"1FF8","symbol":"\u1F78"},8057:{"value":"1F79","name":"GREEK SMALL LETTER OMICRON WITH OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FF9","lowercase_mapping":"","titlecase_mapping":"1FF9","symbol":"\u1F79"},8058:{"value":"1F7A","name":"GREEK SMALL LETTER UPSILON WITH VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C5 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FEA","lowercase_mapping":"","titlecase_mapping":"1FEA","symbol":"\u1F7A"},8059:{"value":"1F7B","name":"GREEK SMALL LETTER UPSILON WITH OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03CD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FEB","lowercase_mapping":"","titlecase_mapping":"1FEB","symbol":"\u1F7B"},8060:{"value":"1F7C","name":"GREEK SMALL LETTER OMEGA WITH VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C9 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FFA","lowercase_mapping":"","titlecase_mapping":"1FFA","symbol":"\u1F7C"},8061:{"value":"1F7D","name":"GREEK SMALL LETTER OMEGA WITH OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03CE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FFB","lowercase_mapping":"","titlecase_mapping":"1FFB","symbol":"\u1F7D"},8064:{"value":"1F80","name":"GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F00 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F88","lowercase_mapping":"","titlecase_mapping":"1F88","symbol":"\u1F80"},8065:{"value":"1F81","name":"GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F01 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F89","lowercase_mapping":"","titlecase_mapping":"1F89","symbol":"\u1F81"},8066:{"value":"1F82","name":"GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F02 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F8A","lowercase_mapping":"","titlecase_mapping":"1F8A","symbol":"\u1F82"},8067:{"value":"1F83","name":"GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F03 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F8B","lowercase_mapping":"","titlecase_mapping":"1F8B","symbol":"\u1F83"},8068:{"value":"1F84","name":"GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F04 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F8C","lowercase_mapping":"","titlecase_mapping":"1F8C","symbol":"\u1F84"},8069:{"value":"1F85","name":"GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F05 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F8D","lowercase_mapping":"","titlecase_mapping":"1F8D","symbol":"\u1F85"},8070:{"value":"1F86","name":"GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F06 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F8E","lowercase_mapping":"","titlecase_mapping":"1F8E","symbol":"\u1F86"},8071:{"value":"1F87","name":"GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F07 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F8F","lowercase_mapping":"","titlecase_mapping":"1F8F","symbol":"\u1F87"},8080:{"value":"1F90","name":"GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F20 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F98","lowercase_mapping":"","titlecase_mapping":"1F98","symbol":"\u1F90"},8081:{"value":"1F91","name":"GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F21 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F99","lowercase_mapping":"","titlecase_mapping":"1F99","symbol":"\u1F91"},8082:{"value":"1F92","name":"GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F22 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F9A","lowercase_mapping":"","titlecase_mapping":"1F9A","symbol":"\u1F92"},8083:{"value":"1F93","name":"GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F23 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F9B","lowercase_mapping":"","titlecase_mapping":"1F9B","symbol":"\u1F93"},8084:{"value":"1F94","name":"GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F24 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F9C","lowercase_mapping":"","titlecase_mapping":"1F9C","symbol":"\u1F94"},8085:{"value":"1F95","name":"GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F25 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F9D","lowercase_mapping":"","titlecase_mapping":"1F9D","symbol":"\u1F95"},8086:{"value":"1F96","name":"GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F26 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F9E","lowercase_mapping":"","titlecase_mapping":"1F9E","symbol":"\u1F96"},8087:{"value":"1F97","name":"GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F27 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1F9F","lowercase_mapping":"","titlecase_mapping":"1F9F","symbol":"\u1F97"},8096:{"value":"1FA0","name":"GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F60 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FA8","lowercase_mapping":"","titlecase_mapping":"1FA8","symbol":"\u1FA0"},8097:{"value":"1FA1","name":"GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F61 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FA9","lowercase_mapping":"","titlecase_mapping":"1FA9","symbol":"\u1FA1"},8098:{"value":"1FA2","name":"GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F62 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FAA","lowercase_mapping":"","titlecase_mapping":"1FAA","symbol":"\u1FA2"},8099:{"value":"1FA3","name":"GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F63 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FAB","lowercase_mapping":"","titlecase_mapping":"1FAB","symbol":"\u1FA3"},8100:{"value":"1FA4","name":"GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F64 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FAC","lowercase_mapping":"","titlecase_mapping":"1FAC","symbol":"\u1FA4"},8101:{"value":"1FA5","name":"GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F65 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FAD","lowercase_mapping":"","titlecase_mapping":"1FAD","symbol":"\u1FA5"},8102:{"value":"1FA6","name":"GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F66 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FAE","lowercase_mapping":"","titlecase_mapping":"1FAE","symbol":"\u1FA6"},8103:{"value":"1FA7","name":"GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F67 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FAF","lowercase_mapping":"","titlecase_mapping":"1FAF","symbol":"\u1FA7"},8112:{"value":"1FB0","name":"GREEK SMALL LETTER ALPHA WITH VRACHY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B1 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FB8","lowercase_mapping":"","titlecase_mapping":"1FB8","symbol":"\u1FB0"},8113:{"value":"1FB1","name":"GREEK SMALL LETTER ALPHA WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B1 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FB9","lowercase_mapping":"","titlecase_mapping":"1FB9","symbol":"\u1FB1"},8114:{"value":"1FB2","name":"GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F70 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FB2"},8115:{"value":"1FB3","name":"GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B1 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FBC","lowercase_mapping":"","titlecase_mapping":"1FBC","symbol":"\u1FB3"},8116:{"value":"1FB4","name":"GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03AC 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FB4"},8118:{"value":"1FB6","name":"GREEK SMALL LETTER ALPHA WITH PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B1 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FB6"},8119:{"value":"1FB7","name":"GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1FB6 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FB7"},8126:{"value":"1FBE","name":"GREEK PROSGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"0399","lowercase_mapping":"","titlecase_mapping":"0399","symbol":"\u1FBE"},8130:{"value":"1FC2","name":"GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F74 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FC2"},8131:{"value":"1FC3","name":"GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B7 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FCC","lowercase_mapping":"","titlecase_mapping":"1FCC","symbol":"\u1FC3"},8132:{"value":"1FC4","name":"GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03AE 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FC4"},8134:{"value":"1FC6","name":"GREEK SMALL LETTER ETA WITH PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B7 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FC6"},8135:{"value":"1FC7","name":"GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1FC6 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FC7"},8144:{"value":"1FD0","name":"GREEK SMALL LETTER IOTA WITH VRACHY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B9 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FD8","lowercase_mapping":"","titlecase_mapping":"1FD8","symbol":"\u1FD0"},8145:{"value":"1FD1","name":"GREEK SMALL LETTER IOTA WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B9 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FD9","lowercase_mapping":"","titlecase_mapping":"1FD9","symbol":"\u1FD1"},8146:{"value":"1FD2","name":"GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03CA 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FD2"},8147:{"value":"1FD3","name":"GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"0390","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FD3"},8150:{"value":"1FD6","name":"GREEK SMALL LETTER IOTA WITH PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B9 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FD6"},8151:{"value":"1FD7","name":"GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03CA 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FD7"},8160:{"value":"1FE0","name":"GREEK SMALL LETTER UPSILON WITH VRACHY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C5 0306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FE8","lowercase_mapping":"","titlecase_mapping":"1FE8","symbol":"\u1FE0"},8161:{"value":"1FE1","name":"GREEK SMALL LETTER UPSILON WITH MACRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C5 0304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FE9","lowercase_mapping":"","titlecase_mapping":"1FE9","symbol":"\u1FE1"},8162:{"value":"1FE2","name":"GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03CB 0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FE2"},8163:{"value":"1FE3","name":"GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03B0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FE3"},8164:{"value":"1FE4","name":"GREEK SMALL LETTER RHO WITH PSILI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C1 0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FE4"},8165:{"value":"1FE5","name":"GREEK SMALL LETTER RHO WITH DASIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C1 0314","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FEC","lowercase_mapping":"","titlecase_mapping":"1FEC","symbol":"\u1FE5"},8166:{"value":"1FE6","name":"GREEK SMALL LETTER UPSILON WITH PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C5 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FE6"},8167:{"value":"1FE7","name":"GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03CB 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FE7"},8178:{"value":"1FF2","name":"GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1F7C 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FF2"},8179:{"value":"1FF3","name":"GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C9 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1FFC","lowercase_mapping":"","titlecase_mapping":"1FFC","symbol":"\u1FF3"},8180:{"value":"1FF4","name":"GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03CE 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FF4"},8182:{"value":"1FF6","name":"GREEK SMALL LETTER OMEGA WITH PERISPOMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"03C9 0342","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FF6"},8183:{"value":"1FF7","name":"GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"1FF6 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1FF7"},8458:{"value":"210A","name":"SCRIPT SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210A"},8462:{"value":"210E","name":"PLANCK CONSTANT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210E"},8463:{"value":"210F","name":"PLANCK CONSTANT OVER TWO PI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0127","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"PLANCK CONSTANT OVER 2 PI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210F"},8467:{"value":"2113","name":"SCRIPT SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2113"},8495:{"value":"212F","name":"SCRIPT SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u212F"},8500:{"value":"2134","name":"SCRIPT SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2134"},8505:{"value":"2139","name":"INFORMATION SOURCE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2139"},8508:{"value":"213C","name":"DOUBLE-STRUCK SMALL PI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u213C"},8509:{"value":"213D","name":"DOUBLE-STRUCK SMALL GAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u213D"},8518:{"value":"2146","name":"DOUBLE-STRUCK ITALIC SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2146"},8519:{"value":"2147","name":"DOUBLE-STRUCK ITALIC SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2147"},8520:{"value":"2148","name":"DOUBLE-STRUCK ITALIC SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2148"},8521:{"value":"2149","name":"DOUBLE-STRUCK ITALIC SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2149"},8526:{"value":"214E","name":"TURNED SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2132","lowercase_mapping":"","titlecase_mapping":"2132","symbol":"\u214E"},8580:{"value":"2184","name":"LATIN SMALL LETTER REVERSED C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2183","lowercase_mapping":"","titlecase_mapping":"2183","symbol":"\u2184"},11312:{"value":"2C30","name":"GLAGOLITIC SMALL LETTER AZU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C00","lowercase_mapping":"","titlecase_mapping":"2C00","symbol":"\u2C30"},11313:{"value":"2C31","name":"GLAGOLITIC SMALL LETTER BUKY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C01","lowercase_mapping":"","titlecase_mapping":"2C01","symbol":"\u2C31"},11314:{"value":"2C32","name":"GLAGOLITIC SMALL LETTER VEDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C02","lowercase_mapping":"","titlecase_mapping":"2C02","symbol":"\u2C32"},11315:{"value":"2C33","name":"GLAGOLITIC SMALL LETTER GLAGOLI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C03","lowercase_mapping":"","titlecase_mapping":"2C03","symbol":"\u2C33"},11316:{"value":"2C34","name":"GLAGOLITIC SMALL LETTER DOBRO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C04","lowercase_mapping":"","titlecase_mapping":"2C04","symbol":"\u2C34"},11317:{"value":"2C35","name":"GLAGOLITIC SMALL LETTER YESTU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C05","lowercase_mapping":"","titlecase_mapping":"2C05","symbol":"\u2C35"},11318:{"value":"2C36","name":"GLAGOLITIC SMALL LETTER ZHIVETE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C06","lowercase_mapping":"","titlecase_mapping":"2C06","symbol":"\u2C36"},11319:{"value":"2C37","name":"GLAGOLITIC SMALL LETTER DZELO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C07","lowercase_mapping":"","titlecase_mapping":"2C07","symbol":"\u2C37"},11320:{"value":"2C38","name":"GLAGOLITIC SMALL LETTER ZEMLJA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C08","lowercase_mapping":"","titlecase_mapping":"2C08","symbol":"\u2C38"},11321:{"value":"2C39","name":"GLAGOLITIC SMALL LETTER IZHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C09","lowercase_mapping":"","titlecase_mapping":"2C09","symbol":"\u2C39"},11322:{"value":"2C3A","name":"GLAGOLITIC SMALL LETTER INITIAL IZHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C0A","lowercase_mapping":"","titlecase_mapping":"2C0A","symbol":"\u2C3A"},11323:{"value":"2C3B","name":"GLAGOLITIC SMALL LETTER I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C0B","lowercase_mapping":"","titlecase_mapping":"2C0B","symbol":"\u2C3B"},11324:{"value":"2C3C","name":"GLAGOLITIC SMALL LETTER DJERVI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C0C","lowercase_mapping":"","titlecase_mapping":"2C0C","symbol":"\u2C3C"},11325:{"value":"2C3D","name":"GLAGOLITIC SMALL LETTER KAKO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C0D","lowercase_mapping":"","titlecase_mapping":"2C0D","symbol":"\u2C3D"},11326:{"value":"2C3E","name":"GLAGOLITIC SMALL LETTER LJUDIJE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C0E","lowercase_mapping":"","titlecase_mapping":"2C0E","symbol":"\u2C3E"},11327:{"value":"2C3F","name":"GLAGOLITIC SMALL LETTER MYSLITE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C0F","lowercase_mapping":"","titlecase_mapping":"2C0F","symbol":"\u2C3F"},11328:{"value":"2C40","name":"GLAGOLITIC SMALL LETTER NASHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C10","lowercase_mapping":"","titlecase_mapping":"2C10","symbol":"\u2C40"},11329:{"value":"2C41","name":"GLAGOLITIC SMALL LETTER ONU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C11","lowercase_mapping":"","titlecase_mapping":"2C11","symbol":"\u2C41"},11330:{"value":"2C42","name":"GLAGOLITIC SMALL LETTER POKOJI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C12","lowercase_mapping":"","titlecase_mapping":"2C12","symbol":"\u2C42"},11331:{"value":"2C43","name":"GLAGOLITIC SMALL LETTER RITSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C13","lowercase_mapping":"","titlecase_mapping":"2C13","symbol":"\u2C43"},11332:{"value":"2C44","name":"GLAGOLITIC SMALL LETTER SLOVO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C14","lowercase_mapping":"","titlecase_mapping":"2C14","symbol":"\u2C44"},11333:{"value":"2C45","name":"GLAGOLITIC SMALL LETTER TVRIDO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C15","lowercase_mapping":"","titlecase_mapping":"2C15","symbol":"\u2C45"},11334:{"value":"2C46","name":"GLAGOLITIC SMALL LETTER UKU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C16","lowercase_mapping":"","titlecase_mapping":"2C16","symbol":"\u2C46"},11335:{"value":"2C47","name":"GLAGOLITIC SMALL LETTER FRITU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C17","lowercase_mapping":"","titlecase_mapping":"2C17","symbol":"\u2C47"},11336:{"value":"2C48","name":"GLAGOLITIC SMALL LETTER HERU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C18","lowercase_mapping":"","titlecase_mapping":"2C18","symbol":"\u2C48"},11337:{"value":"2C49","name":"GLAGOLITIC SMALL LETTER OTU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C19","lowercase_mapping":"","titlecase_mapping":"2C19","symbol":"\u2C49"},11338:{"value":"2C4A","name":"GLAGOLITIC SMALL LETTER PE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C1A","lowercase_mapping":"","titlecase_mapping":"2C1A","symbol":"\u2C4A"},11339:{"value":"2C4B","name":"GLAGOLITIC SMALL LETTER SHTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C1B","lowercase_mapping":"","titlecase_mapping":"2C1B","symbol":"\u2C4B"},11340:{"value":"2C4C","name":"GLAGOLITIC SMALL LETTER TSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C1C","lowercase_mapping":"","titlecase_mapping":"2C1C","symbol":"\u2C4C"},11341:{"value":"2C4D","name":"GLAGOLITIC SMALL LETTER CHRIVI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C1D","lowercase_mapping":"","titlecase_mapping":"2C1D","symbol":"\u2C4D"},11342:{"value":"2C4E","name":"GLAGOLITIC SMALL LETTER SHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C1E","lowercase_mapping":"","titlecase_mapping":"2C1E","symbol":"\u2C4E"},11343:{"value":"2C4F","name":"GLAGOLITIC SMALL LETTER YERU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C1F","lowercase_mapping":"","titlecase_mapping":"2C1F","symbol":"\u2C4F"},11344:{"value":"2C50","name":"GLAGOLITIC SMALL LETTER YERI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C20","lowercase_mapping":"","titlecase_mapping":"2C20","symbol":"\u2C50"},11345:{"value":"2C51","name":"GLAGOLITIC SMALL LETTER YATI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C21","lowercase_mapping":"","titlecase_mapping":"2C21","symbol":"\u2C51"},11346:{"value":"2C52","name":"GLAGOLITIC SMALL LETTER SPIDERY HA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C22","lowercase_mapping":"","titlecase_mapping":"2C22","symbol":"\u2C52"},11347:{"value":"2C53","name":"GLAGOLITIC SMALL LETTER YU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C23","lowercase_mapping":"","titlecase_mapping":"2C23","symbol":"\u2C53"},11348:{"value":"2C54","name":"GLAGOLITIC SMALL LETTER SMALL YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C24","lowercase_mapping":"","titlecase_mapping":"2C24","symbol":"\u2C54"},11349:{"value":"2C55","name":"GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C25","lowercase_mapping":"","titlecase_mapping":"2C25","symbol":"\u2C55"},11350:{"value":"2C56","name":"GLAGOLITIC SMALL LETTER YO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C26","lowercase_mapping":"","titlecase_mapping":"2C26","symbol":"\u2C56"},11351:{"value":"2C57","name":"GLAGOLITIC SMALL LETTER IOTATED SMALL YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C27","lowercase_mapping":"","titlecase_mapping":"2C27","symbol":"\u2C57"},11352:{"value":"2C58","name":"GLAGOLITIC SMALL LETTER BIG YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C28","lowercase_mapping":"","titlecase_mapping":"2C28","symbol":"\u2C58"},11353:{"value":"2C59","name":"GLAGOLITIC SMALL LETTER IOTATED BIG YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C29","lowercase_mapping":"","titlecase_mapping":"2C29","symbol":"\u2C59"},11354:{"value":"2C5A","name":"GLAGOLITIC SMALL LETTER FITA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C2A","lowercase_mapping":"","titlecase_mapping":"2C2A","symbol":"\u2C5A"},11355:{"value":"2C5B","name":"GLAGOLITIC SMALL LETTER IZHITSA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C2B","lowercase_mapping":"","titlecase_mapping":"2C2B","symbol":"\u2C5B"},11356:{"value":"2C5C","name":"GLAGOLITIC SMALL LETTER SHTAPIC","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C2C","lowercase_mapping":"","titlecase_mapping":"2C2C","symbol":"\u2C5C"},11357:{"value":"2C5D","name":"GLAGOLITIC SMALL LETTER TROKUTASTI A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C2D","lowercase_mapping":"","titlecase_mapping":"2C2D","symbol":"\u2C5D"},11358:{"value":"2C5E","name":"GLAGOLITIC SMALL LETTER LATINATE MYSLITE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C2E","lowercase_mapping":"","titlecase_mapping":"2C2E","symbol":"\u2C5E"},11361:{"value":"2C61","name":"LATIN SMALL LETTER L WITH DOUBLE BAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C60","lowercase_mapping":"","titlecase_mapping":"2C60","symbol":"\u2C61"},11365:{"value":"2C65","name":"LATIN SMALL LETTER A WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"023A","lowercase_mapping":"","titlecase_mapping":"023A","symbol":"\u2C65"},11366:{"value":"2C66","name":"LATIN SMALL LETTER T WITH DIAGONAL STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"023E","lowercase_mapping":"","titlecase_mapping":"023E","symbol":"\u2C66"},11368:{"value":"2C68","name":"LATIN SMALL LETTER H WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C67","lowercase_mapping":"","titlecase_mapping":"2C67","symbol":"\u2C68"},11370:{"value":"2C6A","name":"LATIN SMALL LETTER K WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C69","lowercase_mapping":"","titlecase_mapping":"2C69","symbol":"\u2C6A"},11372:{"value":"2C6C","name":"LATIN SMALL LETTER Z WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C6B","lowercase_mapping":"","titlecase_mapping":"2C6B","symbol":"\u2C6C"},11377:{"value":"2C71","name":"LATIN SMALL LETTER V WITH RIGHT HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2C71"},11379:{"value":"2C73","name":"LATIN SMALL LETTER W WITH HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C72","lowercase_mapping":"","titlecase_mapping":"2C72","symbol":"\u2C73"},11380:{"value":"2C74","name":"LATIN SMALL LETTER V WITH CURL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2C74"},11382:{"value":"2C76","name":"LATIN SMALL LETTER HALF H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C75","lowercase_mapping":"","titlecase_mapping":"2C75","symbol":"\u2C76"},11383:{"value":"2C77","name":"LATIN SMALL LETTER TAILLESS PHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2C77"},11384:{"value":"2C78","name":"LATIN SMALL LETTER E WITH NOTCH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2C78"},11385:{"value":"2C79","name":"LATIN SMALL LETTER TURNED R WITH TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2C79"},11386:{"value":"2C7A","name":"LATIN SMALL LETTER O WITH LOW RING INSIDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2C7A"},11387:{"value":"2C7B","name":"LATIN LETTER SMALL CAPITAL TURNED E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2C7B"},11393:{"value":"2C81","name":"COPTIC SMALL LETTER ALFA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C80","lowercase_mapping":"","titlecase_mapping":"2C80","symbol":"\u2C81"},11395:{"value":"2C83","name":"COPTIC SMALL LETTER VIDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C82","lowercase_mapping":"","titlecase_mapping":"2C82","symbol":"\u2C83"},11397:{"value":"2C85","name":"COPTIC SMALL LETTER GAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C84","lowercase_mapping":"","titlecase_mapping":"2C84","symbol":"\u2C85"},11399:{"value":"2C87","name":"COPTIC SMALL LETTER DALDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C86","lowercase_mapping":"","titlecase_mapping":"2C86","symbol":"\u2C87"},11401:{"value":"2C89","name":"COPTIC SMALL LETTER EIE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C88","lowercase_mapping":"","titlecase_mapping":"2C88","symbol":"\u2C89"},11403:{"value":"2C8B","name":"COPTIC SMALL LETTER SOU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C8A","lowercase_mapping":"","titlecase_mapping":"2C8A","symbol":"\u2C8B"},11405:{"value":"2C8D","name":"COPTIC SMALL LETTER ZATA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C8C","lowercase_mapping":"","titlecase_mapping":"2C8C","symbol":"\u2C8D"},11407:{"value":"2C8F","name":"COPTIC SMALL LETTER HATE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C8E","lowercase_mapping":"","titlecase_mapping":"2C8E","symbol":"\u2C8F"},11409:{"value":"2C91","name":"COPTIC SMALL LETTER THETHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C90","lowercase_mapping":"","titlecase_mapping":"2C90","symbol":"\u2C91"},11411:{"value":"2C93","name":"COPTIC SMALL LETTER IAUDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C92","lowercase_mapping":"","titlecase_mapping":"2C92","symbol":"\u2C93"},11413:{"value":"2C95","name":"COPTIC SMALL LETTER KAPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C94","lowercase_mapping":"","titlecase_mapping":"2C94","symbol":"\u2C95"},11415:{"value":"2C97","name":"COPTIC SMALL LETTER LAULA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C96","lowercase_mapping":"","titlecase_mapping":"2C96","symbol":"\u2C97"},11417:{"value":"2C99","name":"COPTIC SMALL LETTER MI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C98","lowercase_mapping":"","titlecase_mapping":"2C98","symbol":"\u2C99"},11419:{"value":"2C9B","name":"COPTIC SMALL LETTER NI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C9A","lowercase_mapping":"","titlecase_mapping":"2C9A","symbol":"\u2C9B"},11421:{"value":"2C9D","name":"COPTIC SMALL LETTER KSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C9C","lowercase_mapping":"","titlecase_mapping":"2C9C","symbol":"\u2C9D"},11423:{"value":"2C9F","name":"COPTIC SMALL LETTER O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2C9E","lowercase_mapping":"","titlecase_mapping":"2C9E","symbol":"\u2C9F"},11425:{"value":"2CA1","name":"COPTIC SMALL LETTER PI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CA0","lowercase_mapping":"","titlecase_mapping":"2CA0","symbol":"\u2CA1"},11427:{"value":"2CA3","name":"COPTIC SMALL LETTER RO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CA2","lowercase_mapping":"","titlecase_mapping":"2CA2","symbol":"\u2CA3"},11429:{"value":"2CA5","name":"COPTIC SMALL LETTER SIMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CA4","lowercase_mapping":"","titlecase_mapping":"2CA4","symbol":"\u2CA5"},11431:{"value":"2CA7","name":"COPTIC SMALL LETTER TAU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CA6","lowercase_mapping":"","titlecase_mapping":"2CA6","symbol":"\u2CA7"},11433:{"value":"2CA9","name":"COPTIC SMALL LETTER UA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CA8","lowercase_mapping":"","titlecase_mapping":"2CA8","symbol":"\u2CA9"},11435:{"value":"2CAB","name":"COPTIC SMALL LETTER FI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CAA","lowercase_mapping":"","titlecase_mapping":"2CAA","symbol":"\u2CAB"},11437:{"value":"2CAD","name":"COPTIC SMALL LETTER KHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CAC","lowercase_mapping":"","titlecase_mapping":"2CAC","symbol":"\u2CAD"},11439:{"value":"2CAF","name":"COPTIC SMALL LETTER PSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CAE","lowercase_mapping":"","titlecase_mapping":"2CAE","symbol":"\u2CAF"},11441:{"value":"2CB1","name":"COPTIC SMALL LETTER OOU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CB0","lowercase_mapping":"","titlecase_mapping":"2CB0","symbol":"\u2CB1"},11443:{"value":"2CB3","name":"COPTIC SMALL LETTER DIALECT-P ALEF","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CB2","lowercase_mapping":"","titlecase_mapping":"2CB2","symbol":"\u2CB3"},11445:{"value":"2CB5","name":"COPTIC SMALL LETTER OLD COPTIC AIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CB4","lowercase_mapping":"","titlecase_mapping":"2CB4","symbol":"\u2CB5"},11447:{"value":"2CB7","name":"COPTIC SMALL LETTER CRYPTOGRAMMIC EIE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CB6","lowercase_mapping":"","titlecase_mapping":"2CB6","symbol":"\u2CB7"},11449:{"value":"2CB9","name":"COPTIC SMALL LETTER DIALECT-P KAPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CB8","lowercase_mapping":"","titlecase_mapping":"2CB8","symbol":"\u2CB9"},11451:{"value":"2CBB","name":"COPTIC SMALL LETTER DIALECT-P NI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CBA","lowercase_mapping":"","titlecase_mapping":"2CBA","symbol":"\u2CBB"},11453:{"value":"2CBD","name":"COPTIC SMALL LETTER CRYPTOGRAMMIC NI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CBC","lowercase_mapping":"","titlecase_mapping":"2CBC","symbol":"\u2CBD"},11455:{"value":"2CBF","name":"COPTIC SMALL LETTER OLD COPTIC OOU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CBE","lowercase_mapping":"","titlecase_mapping":"2CBE","symbol":"\u2CBF"},11457:{"value":"2CC1","name":"COPTIC SMALL LETTER SAMPI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CC0","lowercase_mapping":"","titlecase_mapping":"2CC0","symbol":"\u2CC1"},11459:{"value":"2CC3","name":"COPTIC SMALL LETTER CROSSED SHEI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CC2","lowercase_mapping":"","titlecase_mapping":"2CC2","symbol":"\u2CC3"},11461:{"value":"2CC5","name":"COPTIC SMALL LETTER OLD COPTIC SHEI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CC4","lowercase_mapping":"","titlecase_mapping":"2CC4","symbol":"\u2CC5"},11463:{"value":"2CC7","name":"COPTIC SMALL LETTER OLD COPTIC ESH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CC6","lowercase_mapping":"","titlecase_mapping":"2CC6","symbol":"\u2CC7"},11465:{"value":"2CC9","name":"COPTIC SMALL LETTER AKHMIMIC KHEI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CC8","lowercase_mapping":"","titlecase_mapping":"2CC8","symbol":"\u2CC9"},11467:{"value":"2CCB","name":"COPTIC SMALL LETTER DIALECT-P HORI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CCA","lowercase_mapping":"","titlecase_mapping":"2CCA","symbol":"\u2CCB"},11469:{"value":"2CCD","name":"COPTIC SMALL LETTER OLD COPTIC HORI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CCC","lowercase_mapping":"","titlecase_mapping":"2CCC","symbol":"\u2CCD"},11471:{"value":"2CCF","name":"COPTIC SMALL LETTER OLD COPTIC HA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CCE","lowercase_mapping":"","titlecase_mapping":"2CCE","symbol":"\u2CCF"},11473:{"value":"2CD1","name":"COPTIC SMALL LETTER L-SHAPED HA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CD0","lowercase_mapping":"","titlecase_mapping":"2CD0","symbol":"\u2CD1"},11475:{"value":"2CD3","name":"COPTIC SMALL LETTER OLD COPTIC HEI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CD2","lowercase_mapping":"","titlecase_mapping":"2CD2","symbol":"\u2CD3"},11477:{"value":"2CD5","name":"COPTIC SMALL LETTER OLD COPTIC HAT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CD4","lowercase_mapping":"","titlecase_mapping":"2CD4","symbol":"\u2CD5"},11479:{"value":"2CD7","name":"COPTIC SMALL LETTER OLD COPTIC GANGIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CD6","lowercase_mapping":"","titlecase_mapping":"2CD6","symbol":"\u2CD7"},11481:{"value":"2CD9","name":"COPTIC SMALL LETTER OLD COPTIC DJA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CD8","lowercase_mapping":"","titlecase_mapping":"2CD8","symbol":"\u2CD9"},11483:{"value":"2CDB","name":"COPTIC SMALL LETTER OLD COPTIC SHIMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CDA","lowercase_mapping":"","titlecase_mapping":"2CDA","symbol":"\u2CDB"},11485:{"value":"2CDD","name":"COPTIC SMALL LETTER OLD NUBIAN SHIMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CDC","lowercase_mapping":"","titlecase_mapping":"2CDC","symbol":"\u2CDD"},11487:{"value":"2CDF","name":"COPTIC SMALL LETTER OLD NUBIAN NGI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CDE","lowercase_mapping":"","titlecase_mapping":"2CDE","symbol":"\u2CDF"},11489:{"value":"2CE1","name":"COPTIC SMALL LETTER OLD NUBIAN NYI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CE0","lowercase_mapping":"","titlecase_mapping":"2CE0","symbol":"\u2CE1"},11491:{"value":"2CE3","name":"COPTIC SMALL LETTER OLD NUBIAN WAU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CE2","lowercase_mapping":"","titlecase_mapping":"2CE2","symbol":"\u2CE3"},11492:{"value":"2CE4","name":"COPTIC SYMBOL KAI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2CE4"},11500:{"value":"2CEC","name":"COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CEB","lowercase_mapping":"","titlecase_mapping":"2CEB","symbol":"\u2CEC"},11502:{"value":"2CEE","name":"COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CED","lowercase_mapping":"","titlecase_mapping":"2CED","symbol":"\u2CEE"},11507:{"value":"2CF3","name":"COPTIC SMALL LETTER BOHAIRIC KHEI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2CF2","lowercase_mapping":"","titlecase_mapping":"2CF2","symbol":"\u2CF3"},11520:{"value":"2D00","name":"GEORGIAN SMALL LETTER AN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10A0","lowercase_mapping":"","titlecase_mapping":"10A0","symbol":"\u2D00"},11521:{"value":"2D01","name":"GEORGIAN SMALL LETTER BAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10A1","lowercase_mapping":"","titlecase_mapping":"10A1","symbol":"\u2D01"},11522:{"value":"2D02","name":"GEORGIAN SMALL LETTER GAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10A2","lowercase_mapping":"","titlecase_mapping":"10A2","symbol":"\u2D02"},11523:{"value":"2D03","name":"GEORGIAN SMALL LETTER DON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10A3","lowercase_mapping":"","titlecase_mapping":"10A3","symbol":"\u2D03"},11524:{"value":"2D04","name":"GEORGIAN SMALL LETTER EN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10A4","lowercase_mapping":"","titlecase_mapping":"10A4","symbol":"\u2D04"},11525:{"value":"2D05","name":"GEORGIAN SMALL LETTER VIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10A5","lowercase_mapping":"","titlecase_mapping":"10A5","symbol":"\u2D05"},11526:{"value":"2D06","name":"GEORGIAN SMALL LETTER ZEN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10A6","lowercase_mapping":"","titlecase_mapping":"10A6","symbol":"\u2D06"},11527:{"value":"2D07","name":"GEORGIAN SMALL LETTER TAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10A7","lowercase_mapping":"","titlecase_mapping":"10A7","symbol":"\u2D07"},11528:{"value":"2D08","name":"GEORGIAN SMALL LETTER IN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10A8","lowercase_mapping":"","titlecase_mapping":"10A8","symbol":"\u2D08"},11529:{"value":"2D09","name":"GEORGIAN SMALL LETTER KAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10A9","lowercase_mapping":"","titlecase_mapping":"10A9","symbol":"\u2D09"},11530:{"value":"2D0A","name":"GEORGIAN SMALL LETTER LAS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10AA","lowercase_mapping":"","titlecase_mapping":"10AA","symbol":"\u2D0A"},11531:{"value":"2D0B","name":"GEORGIAN SMALL LETTER MAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10AB","lowercase_mapping":"","titlecase_mapping":"10AB","symbol":"\u2D0B"},11532:{"value":"2D0C","name":"GEORGIAN SMALL LETTER NAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10AC","lowercase_mapping":"","titlecase_mapping":"10AC","symbol":"\u2D0C"},11533:{"value":"2D0D","name":"GEORGIAN SMALL LETTER ON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10AD","lowercase_mapping":"","titlecase_mapping":"10AD","symbol":"\u2D0D"},11534:{"value":"2D0E","name":"GEORGIAN SMALL LETTER PAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10AE","lowercase_mapping":"","titlecase_mapping":"10AE","symbol":"\u2D0E"},11535:{"value":"2D0F","name":"GEORGIAN SMALL LETTER ZHAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10AF","lowercase_mapping":"","titlecase_mapping":"10AF","symbol":"\u2D0F"},11536:{"value":"2D10","name":"GEORGIAN SMALL LETTER RAE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10B0","lowercase_mapping":"","titlecase_mapping":"10B0","symbol":"\u2D10"},11537:{"value":"2D11","name":"GEORGIAN SMALL LETTER SAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10B1","lowercase_mapping":"","titlecase_mapping":"10B1","symbol":"\u2D11"},11538:{"value":"2D12","name":"GEORGIAN SMALL LETTER TAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10B2","lowercase_mapping":"","titlecase_mapping":"10B2","symbol":"\u2D12"},11539:{"value":"2D13","name":"GEORGIAN SMALL LETTER UN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10B3","lowercase_mapping":"","titlecase_mapping":"10B3","symbol":"\u2D13"},11540:{"value":"2D14","name":"GEORGIAN SMALL LETTER PHAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10B4","lowercase_mapping":"","titlecase_mapping":"10B4","symbol":"\u2D14"},11541:{"value":"2D15","name":"GEORGIAN SMALL LETTER KHAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10B5","lowercase_mapping":"","titlecase_mapping":"10B5","symbol":"\u2D15"},11542:{"value":"2D16","name":"GEORGIAN SMALL LETTER GHAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10B6","lowercase_mapping":"","titlecase_mapping":"10B6","symbol":"\u2D16"},11543:{"value":"2D17","name":"GEORGIAN SMALL LETTER QAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10B7","lowercase_mapping":"","titlecase_mapping":"10B7","symbol":"\u2D17"},11544:{"value":"2D18","name":"GEORGIAN SMALL LETTER SHIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10B8","lowercase_mapping":"","titlecase_mapping":"10B8","symbol":"\u2D18"},11545:{"value":"2D19","name":"GEORGIAN SMALL LETTER CHIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10B9","lowercase_mapping":"","titlecase_mapping":"10B9","symbol":"\u2D19"},11546:{"value":"2D1A","name":"GEORGIAN SMALL LETTER CAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10BA","lowercase_mapping":"","titlecase_mapping":"10BA","symbol":"\u2D1A"},11547:{"value":"2D1B","name":"GEORGIAN SMALL LETTER JIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10BB","lowercase_mapping":"","titlecase_mapping":"10BB","symbol":"\u2D1B"},11548:{"value":"2D1C","name":"GEORGIAN SMALL LETTER CIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10BC","lowercase_mapping":"","titlecase_mapping":"10BC","symbol":"\u2D1C"},11549:{"value":"2D1D","name":"GEORGIAN SMALL LETTER CHAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10BD","lowercase_mapping":"","titlecase_mapping":"10BD","symbol":"\u2D1D"},11550:{"value":"2D1E","name":"GEORGIAN SMALL LETTER XAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10BE","lowercase_mapping":"","titlecase_mapping":"10BE","symbol":"\u2D1E"},11551:{"value":"2D1F","name":"GEORGIAN SMALL LETTER JHAN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10BF","lowercase_mapping":"","titlecase_mapping":"10BF","symbol":"\u2D1F"},11552:{"value":"2D20","name":"GEORGIAN SMALL LETTER HAE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C0","lowercase_mapping":"","titlecase_mapping":"10C0","symbol":"\u2D20"},11553:{"value":"2D21","name":"GEORGIAN SMALL LETTER HE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C1","lowercase_mapping":"","titlecase_mapping":"10C1","symbol":"\u2D21"},11554:{"value":"2D22","name":"GEORGIAN SMALL LETTER HIE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C2","lowercase_mapping":"","titlecase_mapping":"10C2","symbol":"\u2D22"},11555:{"value":"2D23","name":"GEORGIAN SMALL LETTER WE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C3","lowercase_mapping":"","titlecase_mapping":"10C3","symbol":"\u2D23"},11556:{"value":"2D24","name":"GEORGIAN SMALL LETTER HAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C4","lowercase_mapping":"","titlecase_mapping":"10C4","symbol":"\u2D24"},11557:{"value":"2D25","name":"GEORGIAN SMALL LETTER HOE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C5","lowercase_mapping":"","titlecase_mapping":"10C5","symbol":"\u2D25"},11559:{"value":"2D27","name":"GEORGIAN SMALL LETTER YN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C7","lowercase_mapping":"","titlecase_mapping":"10C7","symbol":"\u2D27"},11565:{"value":"2D2D","name":"GEORGIAN SMALL LETTER AEN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CD","lowercase_mapping":"","titlecase_mapping":"10CD","symbol":"\u2D2D"},42561:{"value":"A641","name":"CYRILLIC SMALL LETTER ZEMLYA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A640","lowercase_mapping":"","titlecase_mapping":"A640","symbol":"\uA641"},42563:{"value":"A643","name":"CYRILLIC SMALL LETTER DZELO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A642","lowercase_mapping":"","titlecase_mapping":"A642","symbol":"\uA643"},42565:{"value":"A645","name":"CYRILLIC SMALL LETTER REVERSED DZE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A644","lowercase_mapping":"","titlecase_mapping":"A644","symbol":"\uA645"},42567:{"value":"A647","name":"CYRILLIC SMALL LETTER IOTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A646","lowercase_mapping":"","titlecase_mapping":"A646","symbol":"\uA647"},42569:{"value":"A649","name":"CYRILLIC SMALL LETTER DJERV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A648","lowercase_mapping":"","titlecase_mapping":"A648","symbol":"\uA649"},42571:{"value":"A64B","name":"CYRILLIC SMALL LETTER MONOGRAPH UK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A64A","lowercase_mapping":"","titlecase_mapping":"A64A","symbol":"\uA64B"},42573:{"value":"A64D","name":"CYRILLIC SMALL LETTER BROAD OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A64C","lowercase_mapping":"","titlecase_mapping":"A64C","symbol":"\uA64D"},42575:{"value":"A64F","name":"CYRILLIC SMALL LETTER NEUTRAL YER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A64E","lowercase_mapping":"","titlecase_mapping":"A64E","symbol":"\uA64F"},42577:{"value":"A651","name":"CYRILLIC SMALL LETTER YERU WITH BACK YER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A650","lowercase_mapping":"","titlecase_mapping":"A650","symbol":"\uA651"},42579:{"value":"A653","name":"CYRILLIC SMALL LETTER IOTIFIED YAT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A652","lowercase_mapping":"","titlecase_mapping":"A652","symbol":"\uA653"},42581:{"value":"A655","name":"CYRILLIC SMALL LETTER REVERSED YU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A654","lowercase_mapping":"","titlecase_mapping":"A654","symbol":"\uA655"},42583:{"value":"A657","name":"CYRILLIC SMALL LETTER IOTIFIED A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A656","lowercase_mapping":"","titlecase_mapping":"A656","symbol":"\uA657"},42585:{"value":"A659","name":"CYRILLIC SMALL LETTER CLOSED LITTLE YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A658","lowercase_mapping":"","titlecase_mapping":"A658","symbol":"\uA659"},42587:{"value":"A65B","name":"CYRILLIC SMALL LETTER BLENDED YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A65A","lowercase_mapping":"","titlecase_mapping":"A65A","symbol":"\uA65B"},42589:{"value":"A65D","name":"CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A65C","lowercase_mapping":"","titlecase_mapping":"A65C","symbol":"\uA65D"},42591:{"value":"A65F","name":"CYRILLIC SMALL LETTER YN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A65E","lowercase_mapping":"","titlecase_mapping":"A65E","symbol":"\uA65F"},42593:{"value":"A661","name":"CYRILLIC SMALL LETTER REVERSED TSE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A660","lowercase_mapping":"","titlecase_mapping":"A660","symbol":"\uA661"},42595:{"value":"A663","name":"CYRILLIC SMALL LETTER SOFT DE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A662","lowercase_mapping":"","titlecase_mapping":"A662","symbol":"\uA663"},42597:{"value":"A665","name":"CYRILLIC SMALL LETTER SOFT EL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A664","lowercase_mapping":"","titlecase_mapping":"A664","symbol":"\uA665"},42599:{"value":"A667","name":"CYRILLIC SMALL LETTER SOFT EM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A666","lowercase_mapping":"","titlecase_mapping":"A666","symbol":"\uA667"},42601:{"value":"A669","name":"CYRILLIC SMALL LETTER MONOCULAR O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A668","lowercase_mapping":"","titlecase_mapping":"A668","symbol":"\uA669"},42603:{"value":"A66B","name":"CYRILLIC SMALL LETTER BINOCULAR O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A66A","lowercase_mapping":"","titlecase_mapping":"A66A","symbol":"\uA66B"},42605:{"value":"A66D","name":"CYRILLIC SMALL LETTER DOUBLE MONOCULAR O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A66C","lowercase_mapping":"","titlecase_mapping":"A66C","symbol":"\uA66D"},42625:{"value":"A681","name":"CYRILLIC SMALL LETTER DWE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A680","lowercase_mapping":"","titlecase_mapping":"A680","symbol":"\uA681"},42627:{"value":"A683","name":"CYRILLIC SMALL LETTER DZWE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A682","lowercase_mapping":"","titlecase_mapping":"A682","symbol":"\uA683"},42629:{"value":"A685","name":"CYRILLIC SMALL LETTER ZHWE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A684","lowercase_mapping":"","titlecase_mapping":"A684","symbol":"\uA685"},42631:{"value":"A687","name":"CYRILLIC SMALL LETTER CCHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A686","lowercase_mapping":"","titlecase_mapping":"A686","symbol":"\uA687"},42633:{"value":"A689","name":"CYRILLIC SMALL LETTER DZZE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A688","lowercase_mapping":"","titlecase_mapping":"A688","symbol":"\uA689"},42635:{"value":"A68B","name":"CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A68A","lowercase_mapping":"","titlecase_mapping":"A68A","symbol":"\uA68B"},42637:{"value":"A68D","name":"CYRILLIC SMALL LETTER TWE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A68C","lowercase_mapping":"","titlecase_mapping":"A68C","symbol":"\uA68D"},42639:{"value":"A68F","name":"CYRILLIC SMALL LETTER TSWE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A68E","lowercase_mapping":"","titlecase_mapping":"A68E","symbol":"\uA68F"},42641:{"value":"A691","name":"CYRILLIC SMALL LETTER TSSE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A690","lowercase_mapping":"","titlecase_mapping":"A690","symbol":"\uA691"},42643:{"value":"A693","name":"CYRILLIC SMALL LETTER TCHE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A692","lowercase_mapping":"","titlecase_mapping":"A692","symbol":"\uA693"},42645:{"value":"A695","name":"CYRILLIC SMALL LETTER HWE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A694","lowercase_mapping":"","titlecase_mapping":"A694","symbol":"\uA695"},42647:{"value":"A697","name":"CYRILLIC SMALL LETTER SHWE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A696","lowercase_mapping":"","titlecase_mapping":"A696","symbol":"\uA697"},42649:{"value":"A699","name":"CYRILLIC SMALL LETTER DOUBLE O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A698","lowercase_mapping":"","titlecase_mapping":"A698","symbol":"\uA699"},42651:{"value":"A69B","name":"CYRILLIC SMALL LETTER CROSSED O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A69A","lowercase_mapping":"","titlecase_mapping":"A69A","symbol":"\uA69B"},42787:{"value":"A723","name":"LATIN SMALL LETTER EGYPTOLOGICAL ALEF","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A722","lowercase_mapping":"","titlecase_mapping":"A722","symbol":"\uA723"},42789:{"value":"A725","name":"LATIN SMALL LETTER EGYPTOLOGICAL AIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A724","lowercase_mapping":"","titlecase_mapping":"A724","symbol":"\uA725"},42791:{"value":"A727","name":"LATIN SMALL LETTER HENG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A726","lowercase_mapping":"","titlecase_mapping":"A726","symbol":"\uA727"},42793:{"value":"A729","name":"LATIN SMALL LETTER TZ","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A728","lowercase_mapping":"","titlecase_mapping":"A728","symbol":"\uA729"},42795:{"value":"A72B","name":"LATIN SMALL LETTER TRESILLO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A72A","lowercase_mapping":"","titlecase_mapping":"A72A","symbol":"\uA72B"},42797:{"value":"A72D","name":"LATIN SMALL LETTER CUATRILLO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A72C","lowercase_mapping":"","titlecase_mapping":"A72C","symbol":"\uA72D"},42799:{"value":"A72F","name":"LATIN SMALL LETTER CUATRILLO WITH COMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A72E","lowercase_mapping":"","titlecase_mapping":"A72E","symbol":"\uA72F"},42800:{"value":"A730","name":"LATIN LETTER SMALL CAPITAL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA730"},42801:{"value":"A731","name":"LATIN LETTER SMALL CAPITAL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA731"},42803:{"value":"A733","name":"LATIN SMALL LETTER AA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A732","lowercase_mapping":"","titlecase_mapping":"A732","symbol":"\uA733"},42805:{"value":"A735","name":"LATIN SMALL LETTER AO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A734","lowercase_mapping":"","titlecase_mapping":"A734","symbol":"\uA735"},42807:{"value":"A737","name":"LATIN SMALL LETTER AU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A736","lowercase_mapping":"","titlecase_mapping":"A736","symbol":"\uA737"},42809:{"value":"A739","name":"LATIN SMALL LETTER AV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A738","lowercase_mapping":"","titlecase_mapping":"A738","symbol":"\uA739"},42811:{"value":"A73B","name":"LATIN SMALL LETTER AV WITH HORIZONTAL BAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A73A","lowercase_mapping":"","titlecase_mapping":"A73A","symbol":"\uA73B"},42813:{"value":"A73D","name":"LATIN SMALL LETTER AY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A73C","lowercase_mapping":"","titlecase_mapping":"A73C","symbol":"\uA73D"},42815:{"value":"A73F","name":"LATIN SMALL LETTER REVERSED C WITH DOT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A73E","lowercase_mapping":"","titlecase_mapping":"A73E","symbol":"\uA73F"},42817:{"value":"A741","name":"LATIN SMALL LETTER K WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A740","lowercase_mapping":"","titlecase_mapping":"A740","symbol":"\uA741"},42819:{"value":"A743","name":"LATIN SMALL LETTER K WITH DIAGONAL STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A742","lowercase_mapping":"","titlecase_mapping":"A742","symbol":"\uA743"},42821:{"value":"A745","name":"LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A744","lowercase_mapping":"","titlecase_mapping":"A744","symbol":"\uA745"},42823:{"value":"A747","name":"LATIN SMALL LETTER BROKEN L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A746","lowercase_mapping":"","titlecase_mapping":"A746","symbol":"\uA747"},42825:{"value":"A749","name":"LATIN SMALL LETTER L WITH HIGH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A748","lowercase_mapping":"","titlecase_mapping":"A748","symbol":"\uA749"},42827:{"value":"A74B","name":"LATIN SMALL LETTER O WITH LONG STROKE OVERLAY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A74A","lowercase_mapping":"","titlecase_mapping":"A74A","symbol":"\uA74B"},42829:{"value":"A74D","name":"LATIN SMALL LETTER O WITH LOOP","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A74C","lowercase_mapping":"","titlecase_mapping":"A74C","symbol":"\uA74D"},42831:{"value":"A74F","name":"LATIN SMALL LETTER OO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A74E","lowercase_mapping":"","titlecase_mapping":"A74E","symbol":"\uA74F"},42833:{"value":"A751","name":"LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A750","lowercase_mapping":"","titlecase_mapping":"A750","symbol":"\uA751"},42835:{"value":"A753","name":"LATIN SMALL LETTER P WITH FLOURISH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A752","lowercase_mapping":"","titlecase_mapping":"A752","symbol":"\uA753"},42837:{"value":"A755","name":"LATIN SMALL LETTER P WITH SQUIRREL TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A754","lowercase_mapping":"","titlecase_mapping":"A754","symbol":"\uA755"},42839:{"value":"A757","name":"LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A756","lowercase_mapping":"","titlecase_mapping":"A756","symbol":"\uA757"},42841:{"value":"A759","name":"LATIN SMALL LETTER Q WITH DIAGONAL STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A758","lowercase_mapping":"","titlecase_mapping":"A758","symbol":"\uA759"},42843:{"value":"A75B","name":"LATIN SMALL LETTER R ROTUNDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A75A","lowercase_mapping":"","titlecase_mapping":"A75A","symbol":"\uA75B"},42845:{"value":"A75D","name":"LATIN SMALL LETTER RUM ROTUNDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A75C","lowercase_mapping":"","titlecase_mapping":"A75C","symbol":"\uA75D"},42847:{"value":"A75F","name":"LATIN SMALL LETTER V WITH DIAGONAL STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A75E","lowercase_mapping":"","titlecase_mapping":"A75E","symbol":"\uA75F"},42849:{"value":"A761","name":"LATIN SMALL LETTER VY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A760","lowercase_mapping":"","titlecase_mapping":"A760","symbol":"\uA761"},42851:{"value":"A763","name":"LATIN SMALL LETTER VISIGOTHIC Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A762","lowercase_mapping":"","titlecase_mapping":"A762","symbol":"\uA763"},42853:{"value":"A765","name":"LATIN SMALL LETTER THORN WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A764","lowercase_mapping":"","titlecase_mapping":"A764","symbol":"\uA765"},42855:{"value":"A767","name":"LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A766","lowercase_mapping":"","titlecase_mapping":"A766","symbol":"\uA767"},42857:{"value":"A769","name":"LATIN SMALL LETTER VEND","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A768","lowercase_mapping":"","titlecase_mapping":"A768","symbol":"\uA769"},42859:{"value":"A76B","name":"LATIN SMALL LETTER ET","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A76A","lowercase_mapping":"","titlecase_mapping":"A76A","symbol":"\uA76B"},42861:{"value":"A76D","name":"LATIN SMALL LETTER IS","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A76C","lowercase_mapping":"","titlecase_mapping":"A76C","symbol":"\uA76D"},42863:{"value":"A76F","name":"LATIN SMALL LETTER CON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A76E","lowercase_mapping":"","titlecase_mapping":"A76E","symbol":"\uA76F"},42865:{"value":"A771","name":"LATIN SMALL LETTER DUM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA771"},42866:{"value":"A772","name":"LATIN SMALL LETTER LUM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA772"},42867:{"value":"A773","name":"LATIN SMALL LETTER MUM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA773"},42868:{"value":"A774","name":"LATIN SMALL LETTER NUM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA774"},42869:{"value":"A775","name":"LATIN SMALL LETTER RUM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA775"},42870:{"value":"A776","name":"LATIN LETTER SMALL CAPITAL RUM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA776"},42871:{"value":"A777","name":"LATIN SMALL LETTER TUM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA777"},42872:{"value":"A778","name":"LATIN SMALL LETTER UM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA778"},42874:{"value":"A77A","name":"LATIN SMALL LETTER INSULAR D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A779","lowercase_mapping":"","titlecase_mapping":"A779","symbol":"\uA77A"},42876:{"value":"A77C","name":"LATIN SMALL LETTER INSULAR F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A77B","lowercase_mapping":"","titlecase_mapping":"A77B","symbol":"\uA77C"},42879:{"value":"A77F","name":"LATIN SMALL LETTER TURNED INSULAR G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A77E","lowercase_mapping":"","titlecase_mapping":"A77E","symbol":"\uA77F"},42881:{"value":"A781","name":"LATIN SMALL LETTER TURNED L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A780","lowercase_mapping":"","titlecase_mapping":"A780","symbol":"\uA781"},42883:{"value":"A783","name":"LATIN SMALL LETTER INSULAR R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A782","lowercase_mapping":"","titlecase_mapping":"A782","symbol":"\uA783"},42885:{"value":"A785","name":"LATIN SMALL LETTER INSULAR S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A784","lowercase_mapping":"","titlecase_mapping":"A784","symbol":"\uA785"},42887:{"value":"A787","name":"LATIN SMALL LETTER INSULAR T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A786","lowercase_mapping":"","titlecase_mapping":"A786","symbol":"\uA787"},42892:{"value":"A78C","name":"LATIN SMALL LETTER SALTILLO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A78B","lowercase_mapping":"","titlecase_mapping":"A78B","symbol":"\uA78C"},42894:{"value":"A78E","name":"LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA78E"},42897:{"value":"A791","name":"LATIN SMALL LETTER N WITH DESCENDER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A790","lowercase_mapping":"","titlecase_mapping":"A790","symbol":"\uA791"},42899:{"value":"A793","name":"LATIN SMALL LETTER C WITH BAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A792","lowercase_mapping":"","titlecase_mapping":"A792","symbol":"\uA793"},42900:{"value":"A794","name":"LATIN SMALL LETTER C WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA794"},42901:{"value":"A795","name":"LATIN SMALL LETTER H WITH PALATAL HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA795"},42903:{"value":"A797","name":"LATIN SMALL LETTER B WITH FLOURISH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A796","lowercase_mapping":"","titlecase_mapping":"A796","symbol":"\uA797"},42905:{"value":"A799","name":"LATIN SMALL LETTER F WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A798","lowercase_mapping":"","titlecase_mapping":"A798","symbol":"\uA799"},42907:{"value":"A79B","name":"LATIN SMALL LETTER VOLAPUK AE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A79A","lowercase_mapping":"","titlecase_mapping":"A79A","symbol":"\uA79B"},42909:{"value":"A79D","name":"LATIN SMALL LETTER VOLAPUK OE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A79C","lowercase_mapping":"","titlecase_mapping":"A79C","symbol":"\uA79D"},42911:{"value":"A79F","name":"LATIN SMALL LETTER VOLAPUK UE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A79E","lowercase_mapping":"","titlecase_mapping":"A79E","symbol":"\uA79F"},42913:{"value":"A7A1","name":"LATIN SMALL LETTER G WITH OBLIQUE STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7A0","lowercase_mapping":"","titlecase_mapping":"A7A0","symbol":"\uA7A1"},42915:{"value":"A7A3","name":"LATIN SMALL LETTER K WITH OBLIQUE STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7A2","lowercase_mapping":"","titlecase_mapping":"A7A2","symbol":"\uA7A3"},42917:{"value":"A7A5","name":"LATIN SMALL LETTER N WITH OBLIQUE STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7A4","lowercase_mapping":"","titlecase_mapping":"A7A4","symbol":"\uA7A5"},42919:{"value":"A7A7","name":"LATIN SMALL LETTER R WITH OBLIQUE STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7A6","lowercase_mapping":"","titlecase_mapping":"A7A6","symbol":"\uA7A7"},42921:{"value":"A7A9","name":"LATIN SMALL LETTER S WITH OBLIQUE STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7A8","lowercase_mapping":"","titlecase_mapping":"A7A8","symbol":"\uA7A9"},42927:{"value":"A7AF","name":"LATIN LETTER SMALL CAPITAL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA7AF"},42933:{"value":"A7B5","name":"LATIN SMALL LETTER BETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7B4","lowercase_mapping":"","titlecase_mapping":"A7B4","symbol":"\uA7B5"},42935:{"value":"A7B7","name":"LATIN SMALL LETTER OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7B6","lowercase_mapping":"","titlecase_mapping":"A7B6","symbol":"\uA7B7"},42937:{"value":"A7B9","name":"LATIN SMALL LETTER U WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7B8","lowercase_mapping":"","titlecase_mapping":"A7B8","symbol":"\uA7B9"},43002:{"value":"A7FA","name":"LATIN LETTER SMALL CAPITAL TURNED M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA7FA"},43824:{"value":"AB30","name":"LATIN SMALL LETTER BARRED ALPHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB30"},43825:{"value":"AB31","name":"LATIN SMALL LETTER A REVERSED-SCHWA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB31"},43826:{"value":"AB32","name":"LATIN SMALL LETTER BLACKLETTER E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB32"},43827:{"value":"AB33","name":"LATIN SMALL LETTER BARRED E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB33"},43828:{"value":"AB34","name":"LATIN SMALL LETTER E WITH FLOURISH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB34"},43829:{"value":"AB35","name":"LATIN SMALL LETTER LENIS F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB35"},43830:{"value":"AB36","name":"LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB36"},43831:{"value":"AB37","name":"LATIN SMALL LETTER L WITH INVERTED LAZY S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB37"},43832:{"value":"AB38","name":"LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB38"},43833:{"value":"AB39","name":"LATIN SMALL LETTER L WITH MIDDLE RING","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB39"},43834:{"value":"AB3A","name":"LATIN SMALL LETTER M WITH CROSSED-TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB3A"},43835:{"value":"AB3B","name":"LATIN SMALL LETTER N WITH CROSSED-TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB3B"},43836:{"value":"AB3C","name":"LATIN SMALL LETTER ENG WITH CROSSED-TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB3C"},43837:{"value":"AB3D","name":"LATIN SMALL LETTER BLACKLETTER O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB3D"},43838:{"value":"AB3E","name":"LATIN SMALL LETTER BLACKLETTER O WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB3E"},43839:{"value":"AB3F","name":"LATIN SMALL LETTER OPEN O WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB3F"},43840:{"value":"AB40","name":"LATIN SMALL LETTER INVERTED OE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB40"},43841:{"value":"AB41","name":"LATIN SMALL LETTER TURNED OE WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB41"},43842:{"value":"AB42","name":"LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB42"},43843:{"value":"AB43","name":"LATIN SMALL LETTER TURNED O OPEN-O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB43"},43844:{"value":"AB44","name":"LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB44"},43845:{"value":"AB45","name":"LATIN SMALL LETTER STIRRUP R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB45"},43846:{"value":"AB46","name":"LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB46"},43847:{"value":"AB47","name":"LATIN SMALL LETTER R WITHOUT HANDLE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB47"},43848:{"value":"AB48","name":"LATIN SMALL LETTER DOUBLE R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB48"},43849:{"value":"AB49","name":"LATIN SMALL LETTER R WITH CROSSED-TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB49"},43850:{"value":"AB4A","name":"LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB4A"},43851:{"value":"AB4B","name":"LATIN SMALL LETTER SCRIPT R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB4B"},43852:{"value":"AB4C","name":"LATIN SMALL LETTER SCRIPT R WITH RING","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB4C"},43853:{"value":"AB4D","name":"LATIN SMALL LETTER BASELINE ESH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB4D"},43854:{"value":"AB4E","name":"LATIN SMALL LETTER U WITH SHORT RIGHT LEG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB4E"},43855:{"value":"AB4F","name":"LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB4F"},43856:{"value":"AB50","name":"LATIN SMALL LETTER UI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB50"},43857:{"value":"AB51","name":"LATIN SMALL LETTER TURNED UI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB51"},43858:{"value":"AB52","name":"LATIN SMALL LETTER U WITH LEFT HOOK","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB52"},43859:{"value":"AB53","name":"LATIN SMALL LETTER CHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"A7B3","lowercase_mapping":"","titlecase_mapping":"A7B3","symbol":"\uAB53"},43860:{"value":"AB54","name":"LATIN SMALL LETTER CHI WITH LOW RIGHT RING","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB54"},43861:{"value":"AB55","name":"LATIN SMALL LETTER CHI WITH LOW LEFT SERIF","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB55"},43862:{"value":"AB56","name":"LATIN SMALL LETTER X WITH LOW RIGHT RING","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB56"},43863:{"value":"AB57","name":"LATIN SMALL LETTER X WITH LONG LEFT LEG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB57"},43864:{"value":"AB58","name":"LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB58"},43865:{"value":"AB59","name":"LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB59"},43866:{"value":"AB5A","name":"LATIN SMALL LETTER Y WITH SHORT RIGHT LEG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB5A"},43872:{"value":"AB60","name":"LATIN SMALL LETTER SAKHA YAT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB60"},43873:{"value":"AB61","name":"LATIN SMALL LETTER IOTIFIED E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB61"},43874:{"value":"AB62","name":"LATIN SMALL LETTER OPEN OE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB62"},43875:{"value":"AB63","name":"LATIN SMALL LETTER UO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB63"},43876:{"value":"AB64","name":"LATIN SMALL LETTER INVERTED ALPHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB64"},43877:{"value":"AB65","name":"GREEK LETTER SMALL CAPITAL OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB65"},43888:{"value":"AB70","name":"CHEROKEE SMALL LETTER A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13A0","lowercase_mapping":"","titlecase_mapping":"13A0","symbol":"\uAB70"},43889:{"value":"AB71","name":"CHEROKEE SMALL LETTER E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13A1","lowercase_mapping":"","titlecase_mapping":"13A1","symbol":"\uAB71"},43890:{"value":"AB72","name":"CHEROKEE SMALL LETTER I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13A2","lowercase_mapping":"","titlecase_mapping":"13A2","symbol":"\uAB72"},43891:{"value":"AB73","name":"CHEROKEE SMALL LETTER O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13A3","lowercase_mapping":"","titlecase_mapping":"13A3","symbol":"\uAB73"},43892:{"value":"AB74","name":"CHEROKEE SMALL LETTER U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13A4","lowercase_mapping":"","titlecase_mapping":"13A4","symbol":"\uAB74"},43893:{"value":"AB75","name":"CHEROKEE SMALL LETTER V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13A5","lowercase_mapping":"","titlecase_mapping":"13A5","symbol":"\uAB75"},43894:{"value":"AB76","name":"CHEROKEE SMALL LETTER GA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13A6","lowercase_mapping":"","titlecase_mapping":"13A6","symbol":"\uAB76"},43895:{"value":"AB77","name":"CHEROKEE SMALL LETTER KA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13A7","lowercase_mapping":"","titlecase_mapping":"13A7","symbol":"\uAB77"},43896:{"value":"AB78","name":"CHEROKEE SMALL LETTER GE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13A8","lowercase_mapping":"","titlecase_mapping":"13A8","symbol":"\uAB78"},43897:{"value":"AB79","name":"CHEROKEE SMALL LETTER GI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13A9","lowercase_mapping":"","titlecase_mapping":"13A9","symbol":"\uAB79"},43898:{"value":"AB7A","name":"CHEROKEE SMALL LETTER GO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13AA","lowercase_mapping":"","titlecase_mapping":"13AA","symbol":"\uAB7A"},43899:{"value":"AB7B","name":"CHEROKEE SMALL LETTER GU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13AB","lowercase_mapping":"","titlecase_mapping":"13AB","symbol":"\uAB7B"},43900:{"value":"AB7C","name":"CHEROKEE SMALL LETTER GV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13AC","lowercase_mapping":"","titlecase_mapping":"13AC","symbol":"\uAB7C"},43901:{"value":"AB7D","name":"CHEROKEE SMALL LETTER HA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13AD","lowercase_mapping":"","titlecase_mapping":"13AD","symbol":"\uAB7D"},43902:{"value":"AB7E","name":"CHEROKEE SMALL LETTER HE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13AE","lowercase_mapping":"","titlecase_mapping":"13AE","symbol":"\uAB7E"},43903:{"value":"AB7F","name":"CHEROKEE SMALL LETTER HI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13AF","lowercase_mapping":"","titlecase_mapping":"13AF","symbol":"\uAB7F"},43904:{"value":"AB80","name":"CHEROKEE SMALL LETTER HO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13B0","lowercase_mapping":"","titlecase_mapping":"13B0","symbol":"\uAB80"},43905:{"value":"AB81","name":"CHEROKEE SMALL LETTER HU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13B1","lowercase_mapping":"","titlecase_mapping":"13B1","symbol":"\uAB81"},43906:{"value":"AB82","name":"CHEROKEE SMALL LETTER HV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13B2","lowercase_mapping":"","titlecase_mapping":"13B2","symbol":"\uAB82"},43907:{"value":"AB83","name":"CHEROKEE SMALL LETTER LA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13B3","lowercase_mapping":"","titlecase_mapping":"13B3","symbol":"\uAB83"},43908:{"value":"AB84","name":"CHEROKEE SMALL LETTER LE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13B4","lowercase_mapping":"","titlecase_mapping":"13B4","symbol":"\uAB84"},43909:{"value":"AB85","name":"CHEROKEE SMALL LETTER LI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13B5","lowercase_mapping":"","titlecase_mapping":"13B5","symbol":"\uAB85"},43910:{"value":"AB86","name":"CHEROKEE SMALL LETTER LO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13B6","lowercase_mapping":"","titlecase_mapping":"13B6","symbol":"\uAB86"},43911:{"value":"AB87","name":"CHEROKEE SMALL LETTER LU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13B7","lowercase_mapping":"","titlecase_mapping":"13B7","symbol":"\uAB87"},43912:{"value":"AB88","name":"CHEROKEE SMALL LETTER LV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13B8","lowercase_mapping":"","titlecase_mapping":"13B8","symbol":"\uAB88"},43913:{"value":"AB89","name":"CHEROKEE SMALL LETTER MA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13B9","lowercase_mapping":"","titlecase_mapping":"13B9","symbol":"\uAB89"},43914:{"value":"AB8A","name":"CHEROKEE SMALL LETTER ME","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13BA","lowercase_mapping":"","titlecase_mapping":"13BA","symbol":"\uAB8A"},43915:{"value":"AB8B","name":"CHEROKEE SMALL LETTER MI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13BB","lowercase_mapping":"","titlecase_mapping":"13BB","symbol":"\uAB8B"},43916:{"value":"AB8C","name":"CHEROKEE SMALL LETTER MO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13BC","lowercase_mapping":"","titlecase_mapping":"13BC","symbol":"\uAB8C"},43917:{"value":"AB8D","name":"CHEROKEE SMALL LETTER MU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13BD","lowercase_mapping":"","titlecase_mapping":"13BD","symbol":"\uAB8D"},43918:{"value":"AB8E","name":"CHEROKEE SMALL LETTER NA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13BE","lowercase_mapping":"","titlecase_mapping":"13BE","symbol":"\uAB8E"},43919:{"value":"AB8F","name":"CHEROKEE SMALL LETTER HNA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13BF","lowercase_mapping":"","titlecase_mapping":"13BF","symbol":"\uAB8F"},43920:{"value":"AB90","name":"CHEROKEE SMALL LETTER NAH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13C0","lowercase_mapping":"","titlecase_mapping":"13C0","symbol":"\uAB90"},43921:{"value":"AB91","name":"CHEROKEE SMALL LETTER NE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13C1","lowercase_mapping":"","titlecase_mapping":"13C1","symbol":"\uAB91"},43922:{"value":"AB92","name":"CHEROKEE SMALL LETTER NI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13C2","lowercase_mapping":"","titlecase_mapping":"13C2","symbol":"\uAB92"},43923:{"value":"AB93","name":"CHEROKEE SMALL LETTER NO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13C3","lowercase_mapping":"","titlecase_mapping":"13C3","symbol":"\uAB93"},43924:{"value":"AB94","name":"CHEROKEE SMALL LETTER NU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13C4","lowercase_mapping":"","titlecase_mapping":"13C4","symbol":"\uAB94"},43925:{"value":"AB95","name":"CHEROKEE SMALL LETTER NV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13C5","lowercase_mapping":"","titlecase_mapping":"13C5","symbol":"\uAB95"},43926:{"value":"AB96","name":"CHEROKEE SMALL LETTER QUA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13C6","lowercase_mapping":"","titlecase_mapping":"13C6","symbol":"\uAB96"},43927:{"value":"AB97","name":"CHEROKEE SMALL LETTER QUE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13C7","lowercase_mapping":"","titlecase_mapping":"13C7","symbol":"\uAB97"},43928:{"value":"AB98","name":"CHEROKEE SMALL LETTER QUI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13C8","lowercase_mapping":"","titlecase_mapping":"13C8","symbol":"\uAB98"},43929:{"value":"AB99","name":"CHEROKEE SMALL LETTER QUO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13C9","lowercase_mapping":"","titlecase_mapping":"13C9","symbol":"\uAB99"},43930:{"value":"AB9A","name":"CHEROKEE SMALL LETTER QUU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13CA","lowercase_mapping":"","titlecase_mapping":"13CA","symbol":"\uAB9A"},43931:{"value":"AB9B","name":"CHEROKEE SMALL LETTER QUV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13CB","lowercase_mapping":"","titlecase_mapping":"13CB","symbol":"\uAB9B"},43932:{"value":"AB9C","name":"CHEROKEE SMALL LETTER SA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13CC","lowercase_mapping":"","titlecase_mapping":"13CC","symbol":"\uAB9C"},43933:{"value":"AB9D","name":"CHEROKEE SMALL LETTER S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13CD","lowercase_mapping":"","titlecase_mapping":"13CD","symbol":"\uAB9D"},43934:{"value":"AB9E","name":"CHEROKEE SMALL LETTER SE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13CE","lowercase_mapping":"","titlecase_mapping":"13CE","symbol":"\uAB9E"},43935:{"value":"AB9F","name":"CHEROKEE SMALL LETTER SI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13CF","lowercase_mapping":"","titlecase_mapping":"13CF","symbol":"\uAB9F"},43936:{"value":"ABA0","name":"CHEROKEE SMALL LETTER SO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13D0","lowercase_mapping":"","titlecase_mapping":"13D0","symbol":"\uABA0"},43937:{"value":"ABA1","name":"CHEROKEE SMALL LETTER SU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13D1","lowercase_mapping":"","titlecase_mapping":"13D1","symbol":"\uABA1"},43938:{"value":"ABA2","name":"CHEROKEE SMALL LETTER SV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13D2","lowercase_mapping":"","titlecase_mapping":"13D2","symbol":"\uABA2"},43939:{"value":"ABA3","name":"CHEROKEE SMALL LETTER DA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13D3","lowercase_mapping":"","titlecase_mapping":"13D3","symbol":"\uABA3"},43940:{"value":"ABA4","name":"CHEROKEE SMALL LETTER TA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13D4","lowercase_mapping":"","titlecase_mapping":"13D4","symbol":"\uABA4"},43941:{"value":"ABA5","name":"CHEROKEE SMALL LETTER DE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13D5","lowercase_mapping":"","titlecase_mapping":"13D5","symbol":"\uABA5"},43942:{"value":"ABA6","name":"CHEROKEE SMALL LETTER TE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13D6","lowercase_mapping":"","titlecase_mapping":"13D6","symbol":"\uABA6"},43943:{"value":"ABA7","name":"CHEROKEE SMALL LETTER DI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13D7","lowercase_mapping":"","titlecase_mapping":"13D7","symbol":"\uABA7"},43944:{"value":"ABA8","name":"CHEROKEE SMALL LETTER TI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13D8","lowercase_mapping":"","titlecase_mapping":"13D8","symbol":"\uABA8"},43945:{"value":"ABA9","name":"CHEROKEE SMALL LETTER DO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13D9","lowercase_mapping":"","titlecase_mapping":"13D9","symbol":"\uABA9"},43946:{"value":"ABAA","name":"CHEROKEE SMALL LETTER DU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13DA","lowercase_mapping":"","titlecase_mapping":"13DA","symbol":"\uABAA"},43947:{"value":"ABAB","name":"CHEROKEE SMALL LETTER DV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13DB","lowercase_mapping":"","titlecase_mapping":"13DB","symbol":"\uABAB"},43948:{"value":"ABAC","name":"CHEROKEE SMALL LETTER DLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13DC","lowercase_mapping":"","titlecase_mapping":"13DC","symbol":"\uABAC"},43949:{"value":"ABAD","name":"CHEROKEE SMALL LETTER TLA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13DD","lowercase_mapping":"","titlecase_mapping":"13DD","symbol":"\uABAD"},43950:{"value":"ABAE","name":"CHEROKEE SMALL LETTER TLE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13DE","lowercase_mapping":"","titlecase_mapping":"13DE","symbol":"\uABAE"},43951:{"value":"ABAF","name":"CHEROKEE SMALL LETTER TLI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13DF","lowercase_mapping":"","titlecase_mapping":"13DF","symbol":"\uABAF"},43952:{"value":"ABB0","name":"CHEROKEE SMALL LETTER TLO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13E0","lowercase_mapping":"","titlecase_mapping":"13E0","symbol":"\uABB0"},43953:{"value":"ABB1","name":"CHEROKEE SMALL LETTER TLU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13E1","lowercase_mapping":"","titlecase_mapping":"13E1","symbol":"\uABB1"},43954:{"value":"ABB2","name":"CHEROKEE SMALL LETTER TLV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13E2","lowercase_mapping":"","titlecase_mapping":"13E2","symbol":"\uABB2"},43955:{"value":"ABB3","name":"CHEROKEE SMALL LETTER TSA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13E3","lowercase_mapping":"","titlecase_mapping":"13E3","symbol":"\uABB3"},43956:{"value":"ABB4","name":"CHEROKEE SMALL LETTER TSE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13E4","lowercase_mapping":"","titlecase_mapping":"13E4","symbol":"\uABB4"},43957:{"value":"ABB5","name":"CHEROKEE SMALL LETTER TSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13E5","lowercase_mapping":"","titlecase_mapping":"13E5","symbol":"\uABB5"},43958:{"value":"ABB6","name":"CHEROKEE SMALL LETTER TSO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13E6","lowercase_mapping":"","titlecase_mapping":"13E6","symbol":"\uABB6"},43959:{"value":"ABB7","name":"CHEROKEE SMALL LETTER TSU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13E7","lowercase_mapping":"","titlecase_mapping":"13E7","symbol":"\uABB7"},43960:{"value":"ABB8","name":"CHEROKEE SMALL LETTER TSV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13E8","lowercase_mapping":"","titlecase_mapping":"13E8","symbol":"\uABB8"},43961:{"value":"ABB9","name":"CHEROKEE SMALL LETTER WA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13E9","lowercase_mapping":"","titlecase_mapping":"13E9","symbol":"\uABB9"},43962:{"value":"ABBA","name":"CHEROKEE SMALL LETTER WE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13EA","lowercase_mapping":"","titlecase_mapping":"13EA","symbol":"\uABBA"},43963:{"value":"ABBB","name":"CHEROKEE SMALL LETTER WI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13EB","lowercase_mapping":"","titlecase_mapping":"13EB","symbol":"\uABBB"},43964:{"value":"ABBC","name":"CHEROKEE SMALL LETTER WO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13EC","lowercase_mapping":"","titlecase_mapping":"13EC","symbol":"\uABBC"},43965:{"value":"ABBD","name":"CHEROKEE SMALL LETTER WU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13ED","lowercase_mapping":"","titlecase_mapping":"13ED","symbol":"\uABBD"},43966:{"value":"ABBE","name":"CHEROKEE SMALL LETTER WV","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13EE","lowercase_mapping":"","titlecase_mapping":"13EE","symbol":"\uABBE"},43967:{"value":"ABBF","name":"CHEROKEE SMALL LETTER YA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"13EF","lowercase_mapping":"","titlecase_mapping":"13EF","symbol":"\uABBF"},64256:{"value":"FB00","name":"LATIN SMALL LIGATURE FF","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0066 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB00"},64257:{"value":"FB01","name":"LATIN SMALL LIGATURE FI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0066 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB01"},64258:{"value":"FB02","name":"LATIN SMALL LIGATURE FL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0066 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB02"},64259:{"value":"FB03","name":"LATIN SMALL LIGATURE FFI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0066 0066 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB03"},64260:{"value":"FB04","name":"LATIN SMALL LIGATURE FFL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0066 0066 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB04"},64261:{"value":"FB05","name":"LATIN SMALL LIGATURE LONG S T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 017F 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB05"},64262:{"value":"FB06","name":"LATIN SMALL LIGATURE ST","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0073 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB06"},64275:{"value":"FB13","name":"ARMENIAN SMALL LIGATURE MEN NOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0574 0576","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB13"},64276:{"value":"FB14","name":"ARMENIAN SMALL LIGATURE MEN ECH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0574 0565","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB14"},64277:{"value":"FB15","name":"ARMENIAN SMALL LIGATURE MEN INI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0574 056B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB15"},64278:{"value":"FB16","name":"ARMENIAN SMALL LIGATURE VEW NOW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 057E 0576","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB16"},64279:{"value":"FB17","name":"ARMENIAN SMALL LIGATURE MEN XEH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<compat> 0574 056D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB17"},65345:{"value":"FF41","name":"FULLWIDTH LATIN SMALL LETTER A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF21","lowercase_mapping":"","titlecase_mapping":"FF21","symbol":"\uFF41"},65346:{"value":"FF42","name":"FULLWIDTH LATIN SMALL LETTER B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF22","lowercase_mapping":"","titlecase_mapping":"FF22","symbol":"\uFF42"},65347:{"value":"FF43","name":"FULLWIDTH LATIN SMALL LETTER C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF23","lowercase_mapping":"","titlecase_mapping":"FF23","symbol":"\uFF43"},65348:{"value":"FF44","name":"FULLWIDTH LATIN SMALL LETTER D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF24","lowercase_mapping":"","titlecase_mapping":"FF24","symbol":"\uFF44"},65349:{"value":"FF45","name":"FULLWIDTH LATIN SMALL LETTER E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF25","lowercase_mapping":"","titlecase_mapping":"FF25","symbol":"\uFF45"},65350:{"value":"FF46","name":"FULLWIDTH LATIN SMALL LETTER F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF26","lowercase_mapping":"","titlecase_mapping":"FF26","symbol":"\uFF46"},65351:{"value":"FF47","name":"FULLWIDTH LATIN SMALL LETTER G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF27","lowercase_mapping":"","titlecase_mapping":"FF27","symbol":"\uFF47"},65352:{"value":"FF48","name":"FULLWIDTH LATIN SMALL LETTER H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF28","lowercase_mapping":"","titlecase_mapping":"FF28","symbol":"\uFF48"},65353:{"value":"FF49","name":"FULLWIDTH LATIN SMALL LETTER I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF29","lowercase_mapping":"","titlecase_mapping":"FF29","symbol":"\uFF49"},65354:{"value":"FF4A","name":"FULLWIDTH LATIN SMALL LETTER J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF2A","lowercase_mapping":"","titlecase_mapping":"FF2A","symbol":"\uFF4A"},65355:{"value":"FF4B","name":"FULLWIDTH LATIN SMALL LETTER K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF2B","lowercase_mapping":"","titlecase_mapping":"FF2B","symbol":"\uFF4B"},65356:{"value":"FF4C","name":"FULLWIDTH LATIN SMALL LETTER L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF2C","lowercase_mapping":"","titlecase_mapping":"FF2C","symbol":"\uFF4C"},65357:{"value":"FF4D","name":"FULLWIDTH LATIN SMALL LETTER M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF2D","lowercase_mapping":"","titlecase_mapping":"FF2D","symbol":"\uFF4D"},65358:{"value":"FF4E","name":"FULLWIDTH LATIN SMALL LETTER N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF2E","lowercase_mapping":"","titlecase_mapping":"FF2E","symbol":"\uFF4E"},65359:{"value":"FF4F","name":"FULLWIDTH LATIN SMALL LETTER O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF2F","lowercase_mapping":"","titlecase_mapping":"FF2F","symbol":"\uFF4F"},65360:{"value":"FF50","name":"FULLWIDTH LATIN SMALL LETTER P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF30","lowercase_mapping":"","titlecase_mapping":"FF30","symbol":"\uFF50"},65361:{"value":"FF51","name":"FULLWIDTH LATIN SMALL LETTER Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF31","lowercase_mapping":"","titlecase_mapping":"FF31","symbol":"\uFF51"},65362:{"value":"FF52","name":"FULLWIDTH LATIN SMALL LETTER R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF32","lowercase_mapping":"","titlecase_mapping":"FF32","symbol":"\uFF52"},65363:{"value":"FF53","name":"FULLWIDTH LATIN SMALL LETTER S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF33","lowercase_mapping":"","titlecase_mapping":"FF33","symbol":"\uFF53"},65364:{"value":"FF54","name":"FULLWIDTH LATIN SMALL LETTER T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF34","lowercase_mapping":"","titlecase_mapping":"FF34","symbol":"\uFF54"},65365:{"value":"FF55","name":"FULLWIDTH LATIN SMALL LETTER U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF35","lowercase_mapping":"","titlecase_mapping":"FF35","symbol":"\uFF55"},65366:{"value":"FF56","name":"FULLWIDTH LATIN SMALL LETTER V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF36","lowercase_mapping":"","titlecase_mapping":"FF36","symbol":"\uFF56"},65367:{"value":"FF57","name":"FULLWIDTH LATIN SMALL LETTER W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF37","lowercase_mapping":"","titlecase_mapping":"FF37","symbol":"\uFF57"},65368:{"value":"FF58","name":"FULLWIDTH LATIN SMALL LETTER X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF38","lowercase_mapping":"","titlecase_mapping":"FF38","symbol":"\uFF58"},65369:{"value":"FF59","name":"FULLWIDTH LATIN SMALL LETTER Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF39","lowercase_mapping":"","titlecase_mapping":"FF39","symbol":"\uFF59"},65370:{"value":"FF5A","name":"FULLWIDTH LATIN SMALL LETTER Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<wide> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"FF3A","lowercase_mapping":"","titlecase_mapping":"FF3A","symbol":"\uFF5A"},66600:{"value":"10428","name":"DESERET SMALL LETTER LONG I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10400","lowercase_mapping":"","titlecase_mapping":"10400","symbol":"\u0428"},66601:{"value":"10429","name":"DESERET SMALL LETTER LONG E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10401","lowercase_mapping":"","titlecase_mapping":"10401","symbol":"\u0429"},66602:{"value":"1042A","name":"DESERET SMALL LETTER LONG A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10402","lowercase_mapping":"","titlecase_mapping":"10402","symbol":"\u042A"},66603:{"value":"1042B","name":"DESERET SMALL LETTER LONG AH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10403","lowercase_mapping":"","titlecase_mapping":"10403","symbol":"\u042B"},66604:{"value":"1042C","name":"DESERET SMALL LETTER LONG O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10404","lowercase_mapping":"","titlecase_mapping":"10404","symbol":"\u042C"},66605:{"value":"1042D","name":"DESERET SMALL LETTER LONG OO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10405","lowercase_mapping":"","titlecase_mapping":"10405","symbol":"\u042D"},66606:{"value":"1042E","name":"DESERET SMALL LETTER SHORT I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10406","lowercase_mapping":"","titlecase_mapping":"10406","symbol":"\u042E"},66607:{"value":"1042F","name":"DESERET SMALL LETTER SHORT E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10407","lowercase_mapping":"","titlecase_mapping":"10407","symbol":"\u042F"},66608:{"value":"10430","name":"DESERET SMALL LETTER SHORT A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10408","lowercase_mapping":"","titlecase_mapping":"10408","symbol":"\u0430"},66609:{"value":"10431","name":"DESERET SMALL LETTER SHORT AH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10409","lowercase_mapping":"","titlecase_mapping":"10409","symbol":"\u0431"},66610:{"value":"10432","name":"DESERET SMALL LETTER SHORT O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1040A","lowercase_mapping":"","titlecase_mapping":"1040A","symbol":"\u0432"},66611:{"value":"10433","name":"DESERET SMALL LETTER SHORT OO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1040B","lowercase_mapping":"","titlecase_mapping":"1040B","symbol":"\u0433"},66612:{"value":"10434","name":"DESERET SMALL LETTER AY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1040C","lowercase_mapping":"","titlecase_mapping":"1040C","symbol":"\u0434"},66613:{"value":"10435","name":"DESERET SMALL LETTER OW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1040D","lowercase_mapping":"","titlecase_mapping":"1040D","symbol":"\u0435"},66614:{"value":"10436","name":"DESERET SMALL LETTER WU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1040E","lowercase_mapping":"","titlecase_mapping":"1040E","symbol":"\u0436"},66615:{"value":"10437","name":"DESERET SMALL LETTER YEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1040F","lowercase_mapping":"","titlecase_mapping":"1040F","symbol":"\u0437"},66616:{"value":"10438","name":"DESERET SMALL LETTER H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10410","lowercase_mapping":"","titlecase_mapping":"10410","symbol":"\u0438"},66617:{"value":"10439","name":"DESERET SMALL LETTER PEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10411","lowercase_mapping":"","titlecase_mapping":"10411","symbol":"\u0439"},66618:{"value":"1043A","name":"DESERET SMALL LETTER BEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10412","lowercase_mapping":"","titlecase_mapping":"10412","symbol":"\u043A"},66619:{"value":"1043B","name":"DESERET SMALL LETTER TEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10413","lowercase_mapping":"","titlecase_mapping":"10413","symbol":"\u043B"},66620:{"value":"1043C","name":"DESERET SMALL LETTER DEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10414","lowercase_mapping":"","titlecase_mapping":"10414","symbol":"\u043C"},66621:{"value":"1043D","name":"DESERET SMALL LETTER CHEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10415","lowercase_mapping":"","titlecase_mapping":"10415","symbol":"\u043D"},66622:{"value":"1043E","name":"DESERET SMALL LETTER JEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10416","lowercase_mapping":"","titlecase_mapping":"10416","symbol":"\u043E"},66623:{"value":"1043F","name":"DESERET SMALL LETTER KAY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10417","lowercase_mapping":"","titlecase_mapping":"10417","symbol":"\u043F"},66624:{"value":"10440","name":"DESERET SMALL LETTER GAY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10418","lowercase_mapping":"","titlecase_mapping":"10418","symbol":"\u0440"},66625:{"value":"10441","name":"DESERET SMALL LETTER EF","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10419","lowercase_mapping":"","titlecase_mapping":"10419","symbol":"\u0441"},66626:{"value":"10442","name":"DESERET SMALL LETTER VEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1041A","lowercase_mapping":"","titlecase_mapping":"1041A","symbol":"\u0442"},66627:{"value":"10443","name":"DESERET SMALL LETTER ETH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1041B","lowercase_mapping":"","titlecase_mapping":"1041B","symbol":"\u0443"},66628:{"value":"10444","name":"DESERET SMALL LETTER THEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1041C","lowercase_mapping":"","titlecase_mapping":"1041C","symbol":"\u0444"},66629:{"value":"10445","name":"DESERET SMALL LETTER ES","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1041D","lowercase_mapping":"","titlecase_mapping":"1041D","symbol":"\u0445"},66630:{"value":"10446","name":"DESERET SMALL LETTER ZEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1041E","lowercase_mapping":"","titlecase_mapping":"1041E","symbol":"\u0446"},66631:{"value":"10447","name":"DESERET SMALL LETTER ESH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1041F","lowercase_mapping":"","titlecase_mapping":"1041F","symbol":"\u0447"},66632:{"value":"10448","name":"DESERET SMALL LETTER ZHEE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10420","lowercase_mapping":"","titlecase_mapping":"10420","symbol":"\u0448"},66633:{"value":"10449","name":"DESERET SMALL LETTER ER","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10421","lowercase_mapping":"","titlecase_mapping":"10421","symbol":"\u0449"},66634:{"value":"1044A","name":"DESERET SMALL LETTER EL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10422","lowercase_mapping":"","titlecase_mapping":"10422","symbol":"\u044A"},66635:{"value":"1044B","name":"DESERET SMALL LETTER EM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10423","lowercase_mapping":"","titlecase_mapping":"10423","symbol":"\u044B"},66636:{"value":"1044C","name":"DESERET SMALL LETTER EN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10424","lowercase_mapping":"","titlecase_mapping":"10424","symbol":"\u044C"},66637:{"value":"1044D","name":"DESERET SMALL LETTER ENG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10425","lowercase_mapping":"","titlecase_mapping":"10425","symbol":"\u044D"},66638:{"value":"1044E","name":"DESERET SMALL LETTER OI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10426","lowercase_mapping":"","titlecase_mapping":"10426","symbol":"\u044E"},66639:{"value":"1044F","name":"DESERET SMALL LETTER EW","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10427","lowercase_mapping":"","titlecase_mapping":"10427","symbol":"\u044F"},66776:{"value":"104D8","name":"OSAGE SMALL LETTER A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104B0","lowercase_mapping":"","titlecase_mapping":"104B0","symbol":"\u04D8"},66777:{"value":"104D9","name":"OSAGE SMALL LETTER AI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104B1","lowercase_mapping":"","titlecase_mapping":"104B1","symbol":"\u04D9"},66778:{"value":"104DA","name":"OSAGE SMALL LETTER AIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104B2","lowercase_mapping":"","titlecase_mapping":"104B2","symbol":"\u04DA"},66779:{"value":"104DB","name":"OSAGE SMALL LETTER AH","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104B3","lowercase_mapping":"","titlecase_mapping":"104B3","symbol":"\u04DB"},66780:{"value":"104DC","name":"OSAGE SMALL LETTER BRA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104B4","lowercase_mapping":"","titlecase_mapping":"104B4","symbol":"\u04DC"},66781:{"value":"104DD","name":"OSAGE SMALL LETTER CHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104B5","lowercase_mapping":"","titlecase_mapping":"104B5","symbol":"\u04DD"},66782:{"value":"104DE","name":"OSAGE SMALL LETTER EHCHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104B6","lowercase_mapping":"","titlecase_mapping":"104B6","symbol":"\u04DE"},66783:{"value":"104DF","name":"OSAGE SMALL LETTER E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104B7","lowercase_mapping":"","titlecase_mapping":"104B7","symbol":"\u04DF"},66784:{"value":"104E0","name":"OSAGE SMALL LETTER EIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104B8","lowercase_mapping":"","titlecase_mapping":"104B8","symbol":"\u04E0"},66785:{"value":"104E1","name":"OSAGE SMALL LETTER HA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104B9","lowercase_mapping":"","titlecase_mapping":"104B9","symbol":"\u04E1"},66786:{"value":"104E2","name":"OSAGE SMALL LETTER HYA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104BA","lowercase_mapping":"","titlecase_mapping":"104BA","symbol":"\u04E2"},66787:{"value":"104E3","name":"OSAGE SMALL LETTER I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104BB","lowercase_mapping":"","titlecase_mapping":"104BB","symbol":"\u04E3"},66788:{"value":"104E4","name":"OSAGE SMALL LETTER KA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104BC","lowercase_mapping":"","titlecase_mapping":"104BC","symbol":"\u04E4"},66789:{"value":"104E5","name":"OSAGE SMALL LETTER EHKA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104BD","lowercase_mapping":"","titlecase_mapping":"104BD","symbol":"\u04E5"},66790:{"value":"104E6","name":"OSAGE SMALL LETTER KYA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104BE","lowercase_mapping":"","titlecase_mapping":"104BE","symbol":"\u04E6"},66791:{"value":"104E7","name":"OSAGE SMALL LETTER LA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104BF","lowercase_mapping":"","titlecase_mapping":"104BF","symbol":"\u04E7"},66792:{"value":"104E8","name":"OSAGE SMALL LETTER MA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104C0","lowercase_mapping":"","titlecase_mapping":"104C0","symbol":"\u04E8"},66793:{"value":"104E9","name":"OSAGE SMALL LETTER NA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104C1","lowercase_mapping":"","titlecase_mapping":"104C1","symbol":"\u04E9"},66794:{"value":"104EA","name":"OSAGE SMALL LETTER O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104C2","lowercase_mapping":"","titlecase_mapping":"104C2","symbol":"\u04EA"},66795:{"value":"104EB","name":"OSAGE SMALL LETTER OIN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104C3","lowercase_mapping":"","titlecase_mapping":"104C3","symbol":"\u04EB"},66796:{"value":"104EC","name":"OSAGE SMALL LETTER PA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104C4","lowercase_mapping":"","titlecase_mapping":"104C4","symbol":"\u04EC"},66797:{"value":"104ED","name":"OSAGE SMALL LETTER EHPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104C5","lowercase_mapping":"","titlecase_mapping":"104C5","symbol":"\u04ED"},66798:{"value":"104EE","name":"OSAGE SMALL LETTER SA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104C6","lowercase_mapping":"","titlecase_mapping":"104C6","symbol":"\u04EE"},66799:{"value":"104EF","name":"OSAGE SMALL LETTER SHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104C7","lowercase_mapping":"","titlecase_mapping":"104C7","symbol":"\u04EF"},66800:{"value":"104F0","name":"OSAGE SMALL LETTER TA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104C8","lowercase_mapping":"","titlecase_mapping":"104C8","symbol":"\u04F0"},66801:{"value":"104F1","name":"OSAGE SMALL LETTER EHTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104C9","lowercase_mapping":"","titlecase_mapping":"104C9","symbol":"\u04F1"},66802:{"value":"104F2","name":"OSAGE SMALL LETTER TSA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104CA","lowercase_mapping":"","titlecase_mapping":"104CA","symbol":"\u04F2"},66803:{"value":"104F3","name":"OSAGE SMALL LETTER EHTSA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104CB","lowercase_mapping":"","titlecase_mapping":"104CB","symbol":"\u04F3"},66804:{"value":"104F4","name":"OSAGE SMALL LETTER TSHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104CC","lowercase_mapping":"","titlecase_mapping":"104CC","symbol":"\u04F4"},66805:{"value":"104F5","name":"OSAGE SMALL LETTER DHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104CD","lowercase_mapping":"","titlecase_mapping":"104CD","symbol":"\u04F5"},66806:{"value":"104F6","name":"OSAGE SMALL LETTER U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104CE","lowercase_mapping":"","titlecase_mapping":"104CE","symbol":"\u04F6"},66807:{"value":"104F7","name":"OSAGE SMALL LETTER WA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104CF","lowercase_mapping":"","titlecase_mapping":"104CF","symbol":"\u04F7"},66808:{"value":"104F8","name":"OSAGE SMALL LETTER KHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104D0","lowercase_mapping":"","titlecase_mapping":"104D0","symbol":"\u04F8"},66809:{"value":"104F9","name":"OSAGE SMALL LETTER GHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104D1","lowercase_mapping":"","titlecase_mapping":"104D1","symbol":"\u04F9"},66810:{"value":"104FA","name":"OSAGE SMALL LETTER ZA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104D2","lowercase_mapping":"","titlecase_mapping":"104D2","symbol":"\u04FA"},66811:{"value":"104FB","name":"OSAGE SMALL LETTER ZHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"104D3","lowercase_mapping":"","titlecase_mapping":"104D3","symbol":"\u04FB"},68800:{"value":"10CC0","name":"OLD HUNGARIAN SMALL LETTER A","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C80","lowercase_mapping":"","titlecase_mapping":"10C80","symbol":"\u0CC0"},68801:{"value":"10CC1","name":"OLD HUNGARIAN SMALL LETTER AA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C81","lowercase_mapping":"","titlecase_mapping":"10C81","symbol":"\u0CC1"},68802:{"value":"10CC2","name":"OLD HUNGARIAN SMALL LETTER EB","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C82","lowercase_mapping":"","titlecase_mapping":"10C82","symbol":"\u0CC2"},68803:{"value":"10CC3","name":"OLD HUNGARIAN SMALL LETTER AMB","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C83","lowercase_mapping":"","titlecase_mapping":"10C83","symbol":"\u0CC3"},68804:{"value":"10CC4","name":"OLD HUNGARIAN SMALL LETTER EC","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C84","lowercase_mapping":"","titlecase_mapping":"10C84","symbol":"\u0CC4"},68805:{"value":"10CC5","name":"OLD HUNGARIAN SMALL LETTER ENC","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C85","lowercase_mapping":"","titlecase_mapping":"10C85","symbol":"\u0CC5"},68806:{"value":"10CC6","name":"OLD HUNGARIAN SMALL LETTER ECS","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C86","lowercase_mapping":"","titlecase_mapping":"10C86","symbol":"\u0CC6"},68807:{"value":"10CC7","name":"OLD HUNGARIAN SMALL LETTER ED","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C87","lowercase_mapping":"","titlecase_mapping":"10C87","symbol":"\u0CC7"},68808:{"value":"10CC8","name":"OLD HUNGARIAN SMALL LETTER AND","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C88","lowercase_mapping":"","titlecase_mapping":"10C88","symbol":"\u0CC8"},68809:{"value":"10CC9","name":"OLD HUNGARIAN SMALL LETTER E","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C89","lowercase_mapping":"","titlecase_mapping":"10C89","symbol":"\u0CC9"},68810:{"value":"10CCA","name":"OLD HUNGARIAN SMALL LETTER CLOSE E","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C8A","lowercase_mapping":"","titlecase_mapping":"10C8A","symbol":"\u0CCA"},68811:{"value":"10CCB","name":"OLD HUNGARIAN SMALL LETTER EE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C8B","lowercase_mapping":"","titlecase_mapping":"10C8B","symbol":"\u0CCB"},68812:{"value":"10CCC","name":"OLD HUNGARIAN SMALL LETTER EF","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C8C","lowercase_mapping":"","titlecase_mapping":"10C8C","symbol":"\u0CCC"},68813:{"value":"10CCD","name":"OLD HUNGARIAN SMALL LETTER EG","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C8D","lowercase_mapping":"","titlecase_mapping":"10C8D","symbol":"\u0CCD"},68814:{"value":"10CCE","name":"OLD HUNGARIAN SMALL LETTER EGY","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C8E","lowercase_mapping":"","titlecase_mapping":"10C8E","symbol":"\u0CCE"},68815:{"value":"10CCF","name":"OLD HUNGARIAN SMALL LETTER EH","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C8F","lowercase_mapping":"","titlecase_mapping":"10C8F","symbol":"\u0CCF"},68816:{"value":"10CD0","name":"OLD HUNGARIAN SMALL LETTER I","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C90","lowercase_mapping":"","titlecase_mapping":"10C90","symbol":"\u0CD0"},68817:{"value":"10CD1","name":"OLD HUNGARIAN SMALL LETTER II","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C91","lowercase_mapping":"","titlecase_mapping":"10C91","symbol":"\u0CD1"},68818:{"value":"10CD2","name":"OLD HUNGARIAN SMALL LETTER EJ","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C92","lowercase_mapping":"","titlecase_mapping":"10C92","symbol":"\u0CD2"},68819:{"value":"10CD3","name":"OLD HUNGARIAN SMALL LETTER EK","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C93","lowercase_mapping":"","titlecase_mapping":"10C93","symbol":"\u0CD3"},68820:{"value":"10CD4","name":"OLD HUNGARIAN SMALL LETTER AK","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C94","lowercase_mapping":"","titlecase_mapping":"10C94","symbol":"\u0CD4"},68821:{"value":"10CD5","name":"OLD HUNGARIAN SMALL LETTER UNK","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C95","lowercase_mapping":"","titlecase_mapping":"10C95","symbol":"\u0CD5"},68822:{"value":"10CD6","name":"OLD HUNGARIAN SMALL LETTER EL","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C96","lowercase_mapping":"","titlecase_mapping":"10C96","symbol":"\u0CD6"},68823:{"value":"10CD7","name":"OLD HUNGARIAN SMALL LETTER ELY","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C97","lowercase_mapping":"","titlecase_mapping":"10C97","symbol":"\u0CD7"},68824:{"value":"10CD8","name":"OLD HUNGARIAN SMALL LETTER EM","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C98","lowercase_mapping":"","titlecase_mapping":"10C98","symbol":"\u0CD8"},68825:{"value":"10CD9","name":"OLD HUNGARIAN SMALL LETTER EN","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C99","lowercase_mapping":"","titlecase_mapping":"10C99","symbol":"\u0CD9"},68826:{"value":"10CDA","name":"OLD HUNGARIAN SMALL LETTER ENY","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C9A","lowercase_mapping":"","titlecase_mapping":"10C9A","symbol":"\u0CDA"},68827:{"value":"10CDB","name":"OLD HUNGARIAN SMALL LETTER O","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C9B","lowercase_mapping":"","titlecase_mapping":"10C9B","symbol":"\u0CDB"},68828:{"value":"10CDC","name":"OLD HUNGARIAN SMALL LETTER OO","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C9C","lowercase_mapping":"","titlecase_mapping":"10C9C","symbol":"\u0CDC"},68829:{"value":"10CDD","name":"OLD HUNGARIAN SMALL LETTER NIKOLSBURG OE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C9D","lowercase_mapping":"","titlecase_mapping":"10C9D","symbol":"\u0CDD"},68830:{"value":"10CDE","name":"OLD HUNGARIAN SMALL LETTER RUDIMENTA OE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C9E","lowercase_mapping":"","titlecase_mapping":"10C9E","symbol":"\u0CDE"},68831:{"value":"10CDF","name":"OLD HUNGARIAN SMALL LETTER OEE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10C9F","lowercase_mapping":"","titlecase_mapping":"10C9F","symbol":"\u0CDF"},68832:{"value":"10CE0","name":"OLD HUNGARIAN SMALL LETTER EP","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CA0","lowercase_mapping":"","titlecase_mapping":"10CA0","symbol":"\u0CE0"},68833:{"value":"10CE1","name":"OLD HUNGARIAN SMALL LETTER EMP","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CA1","lowercase_mapping":"","titlecase_mapping":"10CA1","symbol":"\u0CE1"},68834:{"value":"10CE2","name":"OLD HUNGARIAN SMALL LETTER ER","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CA2","lowercase_mapping":"","titlecase_mapping":"10CA2","symbol":"\u0CE2"},68835:{"value":"10CE3","name":"OLD HUNGARIAN SMALL LETTER SHORT ER","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CA3","lowercase_mapping":"","titlecase_mapping":"10CA3","symbol":"\u0CE3"},68836:{"value":"10CE4","name":"OLD HUNGARIAN SMALL LETTER ES","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CA4","lowercase_mapping":"","titlecase_mapping":"10CA4","symbol":"\u0CE4"},68837:{"value":"10CE5","name":"OLD HUNGARIAN SMALL LETTER ESZ","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CA5","lowercase_mapping":"","titlecase_mapping":"10CA5","symbol":"\u0CE5"},68838:{"value":"10CE6","name":"OLD HUNGARIAN SMALL LETTER ET","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CA6","lowercase_mapping":"","titlecase_mapping":"10CA6","symbol":"\u0CE6"},68839:{"value":"10CE7","name":"OLD HUNGARIAN SMALL LETTER ENT","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CA7","lowercase_mapping":"","titlecase_mapping":"10CA7","symbol":"\u0CE7"},68840:{"value":"10CE8","name":"OLD HUNGARIAN SMALL LETTER ETY","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CA8","lowercase_mapping":"","titlecase_mapping":"10CA8","symbol":"\u0CE8"},68841:{"value":"10CE9","name":"OLD HUNGARIAN SMALL LETTER ECH","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CA9","lowercase_mapping":"","titlecase_mapping":"10CA9","symbol":"\u0CE9"},68842:{"value":"10CEA","name":"OLD HUNGARIAN SMALL LETTER U","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CAA","lowercase_mapping":"","titlecase_mapping":"10CAA","symbol":"\u0CEA"},68843:{"value":"10CEB","name":"OLD HUNGARIAN SMALL LETTER UU","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CAB","lowercase_mapping":"","titlecase_mapping":"10CAB","symbol":"\u0CEB"},68844:{"value":"10CEC","name":"OLD HUNGARIAN SMALL LETTER NIKOLSBURG UE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CAC","lowercase_mapping":"","titlecase_mapping":"10CAC","symbol":"\u0CEC"},68845:{"value":"10CED","name":"OLD HUNGARIAN SMALL LETTER RUDIMENTA UE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CAD","lowercase_mapping":"","titlecase_mapping":"10CAD","symbol":"\u0CED"},68846:{"value":"10CEE","name":"OLD HUNGARIAN SMALL LETTER EV","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CAE","lowercase_mapping":"","titlecase_mapping":"10CAE","symbol":"\u0CEE"},68847:{"value":"10CEF","name":"OLD HUNGARIAN SMALL LETTER EZ","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CAF","lowercase_mapping":"","titlecase_mapping":"10CAF","symbol":"\u0CEF"},68848:{"value":"10CF0","name":"OLD HUNGARIAN SMALL LETTER EZS","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CB0","lowercase_mapping":"","titlecase_mapping":"10CB0","symbol":"\u0CF0"},68849:{"value":"10CF1","name":"OLD HUNGARIAN SMALL LETTER ENT-SHAPED SIGN","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CB1","lowercase_mapping":"","titlecase_mapping":"10CB1","symbol":"\u0CF1"},68850:{"value":"10CF2","name":"OLD HUNGARIAN SMALL LETTER US","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"10CB2","lowercase_mapping":"","titlecase_mapping":"10CB2","symbol":"\u0CF2"},71872:{"value":"118C0","name":"WARANG CITI SMALL LETTER NGAA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118A0","lowercase_mapping":"","titlecase_mapping":"118A0","symbol":"\u18C0"},71873:{"value":"118C1","name":"WARANG CITI SMALL LETTER A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118A1","lowercase_mapping":"","titlecase_mapping":"118A1","symbol":"\u18C1"},71874:{"value":"118C2","name":"WARANG CITI SMALL LETTER WI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118A2","lowercase_mapping":"","titlecase_mapping":"118A2","symbol":"\u18C2"},71875:{"value":"118C3","name":"WARANG CITI SMALL LETTER YU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118A3","lowercase_mapping":"","titlecase_mapping":"118A3","symbol":"\u18C3"},71876:{"value":"118C4","name":"WARANG CITI SMALL LETTER YA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118A4","lowercase_mapping":"","titlecase_mapping":"118A4","symbol":"\u18C4"},71877:{"value":"118C5","name":"WARANG CITI SMALL LETTER YO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118A5","lowercase_mapping":"","titlecase_mapping":"118A5","symbol":"\u18C5"},71878:{"value":"118C6","name":"WARANG CITI SMALL LETTER II","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118A6","lowercase_mapping":"","titlecase_mapping":"118A6","symbol":"\u18C6"},71879:{"value":"118C7","name":"WARANG CITI SMALL LETTER UU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118A7","lowercase_mapping":"","titlecase_mapping":"118A7","symbol":"\u18C7"},71880:{"value":"118C8","name":"WARANG CITI SMALL LETTER E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118A8","lowercase_mapping":"","titlecase_mapping":"118A8","symbol":"\u18C8"},71881:{"value":"118C9","name":"WARANG CITI SMALL LETTER O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118A9","lowercase_mapping":"","titlecase_mapping":"118A9","symbol":"\u18C9"},71882:{"value":"118CA","name":"WARANG CITI SMALL LETTER ANG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118AA","lowercase_mapping":"","titlecase_mapping":"118AA","symbol":"\u18CA"},71883:{"value":"118CB","name":"WARANG CITI SMALL LETTER GA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118AB","lowercase_mapping":"","titlecase_mapping":"118AB","symbol":"\u18CB"},71884:{"value":"118CC","name":"WARANG CITI SMALL LETTER KO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118AC","lowercase_mapping":"","titlecase_mapping":"118AC","symbol":"\u18CC"},71885:{"value":"118CD","name":"WARANG CITI SMALL LETTER ENY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118AD","lowercase_mapping":"","titlecase_mapping":"118AD","symbol":"\u18CD"},71886:{"value":"118CE","name":"WARANG CITI SMALL LETTER YUJ","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118AE","lowercase_mapping":"","titlecase_mapping":"118AE","symbol":"\u18CE"},71887:{"value":"118CF","name":"WARANG CITI SMALL LETTER UC","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118AF","lowercase_mapping":"","titlecase_mapping":"118AF","symbol":"\u18CF"},71888:{"value":"118D0","name":"WARANG CITI SMALL LETTER ENN","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118B0","lowercase_mapping":"","titlecase_mapping":"118B0","symbol":"\u18D0"},71889:{"value":"118D1","name":"WARANG CITI SMALL LETTER ODD","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118B1","lowercase_mapping":"","titlecase_mapping":"118B1","symbol":"\u18D1"},71890:{"value":"118D2","name":"WARANG CITI SMALL LETTER TTE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118B2","lowercase_mapping":"","titlecase_mapping":"118B2","symbol":"\u18D2"},71891:{"value":"118D3","name":"WARANG CITI SMALL LETTER NUNG","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118B3","lowercase_mapping":"","titlecase_mapping":"118B3","symbol":"\u18D3"},71892:{"value":"118D4","name":"WARANG CITI SMALL LETTER DA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118B4","lowercase_mapping":"","titlecase_mapping":"118B4","symbol":"\u18D4"},71893:{"value":"118D5","name":"WARANG CITI SMALL LETTER AT","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118B5","lowercase_mapping":"","titlecase_mapping":"118B5","symbol":"\u18D5"},71894:{"value":"118D6","name":"WARANG CITI SMALL LETTER AM","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118B6","lowercase_mapping":"","titlecase_mapping":"118B6","symbol":"\u18D6"},71895:{"value":"118D7","name":"WARANG CITI SMALL LETTER BU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118B7","lowercase_mapping":"","titlecase_mapping":"118B7","symbol":"\u18D7"},71896:{"value":"118D8","name":"WARANG CITI SMALL LETTER PU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118B8","lowercase_mapping":"","titlecase_mapping":"118B8","symbol":"\u18D8"},71897:{"value":"118D9","name":"WARANG CITI SMALL LETTER HIYO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118B9","lowercase_mapping":"","titlecase_mapping":"118B9","symbol":"\u18D9"},71898:{"value":"118DA","name":"WARANG CITI SMALL LETTER HOLO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118BA","lowercase_mapping":"","titlecase_mapping":"118BA","symbol":"\u18DA"},71899:{"value":"118DB","name":"WARANG CITI SMALL LETTER HORR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118BB","lowercase_mapping":"","titlecase_mapping":"118BB","symbol":"\u18DB"},71900:{"value":"118DC","name":"WARANG CITI SMALL LETTER HAR","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118BC","lowercase_mapping":"","titlecase_mapping":"118BC","symbol":"\u18DC"},71901:{"value":"118DD","name":"WARANG CITI SMALL LETTER SSUU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118BD","lowercase_mapping":"","titlecase_mapping":"118BD","symbol":"\u18DD"},71902:{"value":"118DE","name":"WARANG CITI SMALL LETTER SII","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118BE","lowercase_mapping":"","titlecase_mapping":"118BE","symbol":"\u18DE"},71903:{"value":"118DF","name":"WARANG CITI SMALL LETTER VIYO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"118BF","lowercase_mapping":"","titlecase_mapping":"118BF","symbol":"\u18DF"},93792:{"value":"16E60","name":"MEDEFAIDRIN SMALL LETTER M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E40","lowercase_mapping":"","titlecase_mapping":"16E40","symbol":"\u6E60"},93793:{"value":"16E61","name":"MEDEFAIDRIN SMALL LETTER S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E41","lowercase_mapping":"","titlecase_mapping":"16E41","symbol":"\u6E61"},93794:{"value":"16E62","name":"MEDEFAIDRIN SMALL LETTER V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E42","lowercase_mapping":"","titlecase_mapping":"16E42","symbol":"\u6E62"},93795:{"value":"16E63","name":"MEDEFAIDRIN SMALL LETTER W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E43","lowercase_mapping":"","titlecase_mapping":"16E43","symbol":"\u6E63"},93796:{"value":"16E64","name":"MEDEFAIDRIN SMALL LETTER ATIU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E44","lowercase_mapping":"","titlecase_mapping":"16E44","symbol":"\u6E64"},93797:{"value":"16E65","name":"MEDEFAIDRIN SMALL LETTER Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E45","lowercase_mapping":"","titlecase_mapping":"16E45","symbol":"\u6E65"},93798:{"value":"16E66","name":"MEDEFAIDRIN SMALL LETTER KP","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E46","lowercase_mapping":"","titlecase_mapping":"16E46","symbol":"\u6E66"},93799:{"value":"16E67","name":"MEDEFAIDRIN SMALL LETTER P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E47","lowercase_mapping":"","titlecase_mapping":"16E47","symbol":"\u6E67"},93800:{"value":"16E68","name":"MEDEFAIDRIN SMALL LETTER T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E48","lowercase_mapping":"","titlecase_mapping":"16E48","symbol":"\u6E68"},93801:{"value":"16E69","name":"MEDEFAIDRIN SMALL LETTER G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E49","lowercase_mapping":"","titlecase_mapping":"16E49","symbol":"\u6E69"},93802:{"value":"16E6A","name":"MEDEFAIDRIN SMALL LETTER F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E4A","lowercase_mapping":"","titlecase_mapping":"16E4A","symbol":"\u6E6A"},93803:{"value":"16E6B","name":"MEDEFAIDRIN SMALL LETTER I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E4B","lowercase_mapping":"","titlecase_mapping":"16E4B","symbol":"\u6E6B"},93804:{"value":"16E6C","name":"MEDEFAIDRIN SMALL LETTER K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E4C","lowercase_mapping":"","titlecase_mapping":"16E4C","symbol":"\u6E6C"},93805:{"value":"16E6D","name":"MEDEFAIDRIN SMALL LETTER A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E4D","lowercase_mapping":"","titlecase_mapping":"16E4D","symbol":"\u6E6D"},93806:{"value":"16E6E","name":"MEDEFAIDRIN SMALL LETTER J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E4E","lowercase_mapping":"","titlecase_mapping":"16E4E","symbol":"\u6E6E"},93807:{"value":"16E6F","name":"MEDEFAIDRIN SMALL LETTER E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E4F","lowercase_mapping":"","titlecase_mapping":"16E4F","symbol":"\u6E6F"},93808:{"value":"16E70","name":"MEDEFAIDRIN SMALL LETTER B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E50","lowercase_mapping":"","titlecase_mapping":"16E50","symbol":"\u6E70"},93809:{"value":"16E71","name":"MEDEFAIDRIN SMALL LETTER C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E51","lowercase_mapping":"","titlecase_mapping":"16E51","symbol":"\u6E71"},93810:{"value":"16E72","name":"MEDEFAIDRIN SMALL LETTER U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E52","lowercase_mapping":"","titlecase_mapping":"16E52","symbol":"\u6E72"},93811:{"value":"16E73","name":"MEDEFAIDRIN SMALL LETTER YU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E53","lowercase_mapping":"","titlecase_mapping":"16E53","symbol":"\u6E73"},93812:{"value":"16E74","name":"MEDEFAIDRIN SMALL LETTER L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E54","lowercase_mapping":"","titlecase_mapping":"16E54","symbol":"\u6E74"},93813:{"value":"16E75","name":"MEDEFAIDRIN SMALL LETTER Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E55","lowercase_mapping":"","titlecase_mapping":"16E55","symbol":"\u6E75"},93814:{"value":"16E76","name":"MEDEFAIDRIN SMALL LETTER HP","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E56","lowercase_mapping":"","titlecase_mapping":"16E56","symbol":"\u6E76"},93815:{"value":"16E77","name":"MEDEFAIDRIN SMALL LETTER NY","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E57","lowercase_mapping":"","titlecase_mapping":"16E57","symbol":"\u6E77"},93816:{"value":"16E78","name":"MEDEFAIDRIN SMALL LETTER X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E58","lowercase_mapping":"","titlecase_mapping":"16E58","symbol":"\u6E78"},93817:{"value":"16E79","name":"MEDEFAIDRIN SMALL LETTER D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E59","lowercase_mapping":"","titlecase_mapping":"16E59","symbol":"\u6E79"},93818:{"value":"16E7A","name":"MEDEFAIDRIN SMALL LETTER OE","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E5A","lowercase_mapping":"","titlecase_mapping":"16E5A","symbol":"\u6E7A"},93819:{"value":"16E7B","name":"MEDEFAIDRIN SMALL LETTER N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E5B","lowercase_mapping":"","titlecase_mapping":"16E5B","symbol":"\u6E7B"},93820:{"value":"16E7C","name":"MEDEFAIDRIN SMALL LETTER R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E5C","lowercase_mapping":"","titlecase_mapping":"16E5C","symbol":"\u6E7C"},93821:{"value":"16E7D","name":"MEDEFAIDRIN SMALL LETTER O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E5D","lowercase_mapping":"","titlecase_mapping":"16E5D","symbol":"\u6E7D"},93822:{"value":"16E7E","name":"MEDEFAIDRIN SMALL LETTER AI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E5E","lowercase_mapping":"","titlecase_mapping":"16E5E","symbol":"\u6E7E"},93823:{"value":"16E7F","name":"MEDEFAIDRIN SMALL LETTER Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"16E5F","lowercase_mapping":"","titlecase_mapping":"16E5F","symbol":"\u6E7F"},119834:{"value":"1D41A","name":"MATHEMATICAL BOLD SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD41A"},119835:{"value":"1D41B","name":"MATHEMATICAL BOLD SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD41B"},119836:{"value":"1D41C","name":"MATHEMATICAL BOLD SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD41C"},119837:{"value":"1D41D","name":"MATHEMATICAL BOLD SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD41D"},119838:{"value":"1D41E","name":"MATHEMATICAL BOLD SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD41E"},119839:{"value":"1D41F","name":"MATHEMATICAL BOLD SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD41F"},119840:{"value":"1D420","name":"MATHEMATICAL BOLD SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD420"},119841:{"value":"1D421","name":"MATHEMATICAL BOLD SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD421"},119842:{"value":"1D422","name":"MATHEMATICAL BOLD SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD422"},119843:{"value":"1D423","name":"MATHEMATICAL BOLD SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD423"},119844:{"value":"1D424","name":"MATHEMATICAL BOLD SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD424"},119845:{"value":"1D425","name":"MATHEMATICAL BOLD SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD425"},119846:{"value":"1D426","name":"MATHEMATICAL BOLD SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD426"},119847:{"value":"1D427","name":"MATHEMATICAL BOLD SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD427"},119848:{"value":"1D428","name":"MATHEMATICAL BOLD SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD428"},119849:{"value":"1D429","name":"MATHEMATICAL BOLD SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD429"},119850:{"value":"1D42A","name":"MATHEMATICAL BOLD SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD42A"},119851:{"value":"1D42B","name":"MATHEMATICAL BOLD SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD42B"},119852:{"value":"1D42C","name":"MATHEMATICAL BOLD SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD42C"},119853:{"value":"1D42D","name":"MATHEMATICAL BOLD SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD42D"},119854:{"value":"1D42E","name":"MATHEMATICAL BOLD SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD42E"},119855:{"value":"1D42F","name":"MATHEMATICAL BOLD SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD42F"},119856:{"value":"1D430","name":"MATHEMATICAL BOLD SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD430"},119857:{"value":"1D431","name":"MATHEMATICAL BOLD SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD431"},119858:{"value":"1D432","name":"MATHEMATICAL BOLD SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD432"},119859:{"value":"1D433","name":"MATHEMATICAL BOLD SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD433"},119886:{"value":"1D44E","name":"MATHEMATICAL ITALIC SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD44E"},119887:{"value":"1D44F","name":"MATHEMATICAL ITALIC SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD44F"},119888:{"value":"1D450","name":"MATHEMATICAL ITALIC SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD450"},119889:{"value":"1D451","name":"MATHEMATICAL ITALIC SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD451"},119890:{"value":"1D452","name":"MATHEMATICAL ITALIC SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD452"},119891:{"value":"1D453","name":"MATHEMATICAL ITALIC SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD453"},119892:{"value":"1D454","name":"MATHEMATICAL ITALIC SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD454"},119894:{"value":"1D456","name":"MATHEMATICAL ITALIC SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD456"},119895:{"value":"1D457","name":"MATHEMATICAL ITALIC SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD457"},119896:{"value":"1D458","name":"MATHEMATICAL ITALIC SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD458"},119897:{"value":"1D459","name":"MATHEMATICAL ITALIC SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD459"},119898:{"value":"1D45A","name":"MATHEMATICAL ITALIC SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD45A"},119899:{"value":"1D45B","name":"MATHEMATICAL ITALIC SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD45B"},119900:{"value":"1D45C","name":"MATHEMATICAL ITALIC SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD45C"},119901:{"value":"1D45D","name":"MATHEMATICAL ITALIC SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD45D"},119902:{"value":"1D45E","name":"MATHEMATICAL ITALIC SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD45E"},119903:{"value":"1D45F","name":"MATHEMATICAL ITALIC SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD45F"},119904:{"value":"1D460","name":"MATHEMATICAL ITALIC SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD460"},119905:{"value":"1D461","name":"MATHEMATICAL ITALIC SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD461"},119906:{"value":"1D462","name":"MATHEMATICAL ITALIC SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD462"},119907:{"value":"1D463","name":"MATHEMATICAL ITALIC SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD463"},119908:{"value":"1D464","name":"MATHEMATICAL ITALIC SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD464"},119909:{"value":"1D465","name":"MATHEMATICAL ITALIC SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD465"},119910:{"value":"1D466","name":"MATHEMATICAL ITALIC SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD466"},119911:{"value":"1D467","name":"MATHEMATICAL ITALIC SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD467"},119938:{"value":"1D482","name":"MATHEMATICAL BOLD ITALIC SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD482"},119939:{"value":"1D483","name":"MATHEMATICAL BOLD ITALIC SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD483"},119940:{"value":"1D484","name":"MATHEMATICAL BOLD ITALIC SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD484"},119941:{"value":"1D485","name":"MATHEMATICAL BOLD ITALIC SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD485"},119942:{"value":"1D486","name":"MATHEMATICAL BOLD ITALIC SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD486"},119943:{"value":"1D487","name":"MATHEMATICAL BOLD ITALIC SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD487"},119944:{"value":"1D488","name":"MATHEMATICAL BOLD ITALIC SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD488"},119945:{"value":"1D489","name":"MATHEMATICAL BOLD ITALIC SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD489"},119946:{"value":"1D48A","name":"MATHEMATICAL BOLD ITALIC SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD48A"},119947:{"value":"1D48B","name":"MATHEMATICAL BOLD ITALIC SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD48B"},119948:{"value":"1D48C","name":"MATHEMATICAL BOLD ITALIC SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD48C"},119949:{"value":"1D48D","name":"MATHEMATICAL BOLD ITALIC SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD48D"},119950:{"value":"1D48E","name":"MATHEMATICAL BOLD ITALIC SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD48E"},119951:{"value":"1D48F","name":"MATHEMATICAL BOLD ITALIC SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD48F"},119952:{"value":"1D490","name":"MATHEMATICAL BOLD ITALIC SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD490"},119953:{"value":"1D491","name":"MATHEMATICAL BOLD ITALIC SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD491"},119954:{"value":"1D492","name":"MATHEMATICAL BOLD ITALIC SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD492"},119955:{"value":"1D493","name":"MATHEMATICAL BOLD ITALIC SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD493"},119956:{"value":"1D494","name":"MATHEMATICAL BOLD ITALIC SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD494"},119957:{"value":"1D495","name":"MATHEMATICAL BOLD ITALIC SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD495"},119958:{"value":"1D496","name":"MATHEMATICAL BOLD ITALIC SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD496"},119959:{"value":"1D497","name":"MATHEMATICAL BOLD ITALIC SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD497"},119960:{"value":"1D498","name":"MATHEMATICAL BOLD ITALIC SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD498"},119961:{"value":"1D499","name":"MATHEMATICAL BOLD ITALIC SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD499"},119962:{"value":"1D49A","name":"MATHEMATICAL BOLD ITALIC SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD49A"},119963:{"value":"1D49B","name":"MATHEMATICAL BOLD ITALIC SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD49B"},119990:{"value":"1D4B6","name":"MATHEMATICAL SCRIPT SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4B6"},119991:{"value":"1D4B7","name":"MATHEMATICAL SCRIPT SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4B7"},119992:{"value":"1D4B8","name":"MATHEMATICAL SCRIPT SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4B8"},119993:{"value":"1D4B9","name":"MATHEMATICAL SCRIPT SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4B9"},119995:{"value":"1D4BB","name":"MATHEMATICAL SCRIPT SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4BB"},119997:{"value":"1D4BD","name":"MATHEMATICAL SCRIPT SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4BD"},119998:{"value":"1D4BE","name":"MATHEMATICAL SCRIPT SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4BE"},119999:{"value":"1D4BF","name":"MATHEMATICAL SCRIPT SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4BF"},120000:{"value":"1D4C0","name":"MATHEMATICAL SCRIPT SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4C0"},120001:{"value":"1D4C1","name":"MATHEMATICAL SCRIPT SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4C1"},120002:{"value":"1D4C2","name":"MATHEMATICAL SCRIPT SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4C2"},120003:{"value":"1D4C3","name":"MATHEMATICAL SCRIPT SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4C3"},120005:{"value":"1D4C5","name":"MATHEMATICAL SCRIPT SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4C5"},120006:{"value":"1D4C6","name":"MATHEMATICAL SCRIPT SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4C6"},120007:{"value":"1D4C7","name":"MATHEMATICAL SCRIPT SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4C7"},120008:{"value":"1D4C8","name":"MATHEMATICAL SCRIPT SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4C8"},120009:{"value":"1D4C9","name":"MATHEMATICAL SCRIPT SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4C9"},120010:{"value":"1D4CA","name":"MATHEMATICAL SCRIPT SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4CA"},120011:{"value":"1D4CB","name":"MATHEMATICAL SCRIPT SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4CB"},120012:{"value":"1D4CC","name":"MATHEMATICAL SCRIPT SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4CC"},120013:{"value":"1D4CD","name":"MATHEMATICAL SCRIPT SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4CD"},120014:{"value":"1D4CE","name":"MATHEMATICAL SCRIPT SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4CE"},120015:{"value":"1D4CF","name":"MATHEMATICAL SCRIPT SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4CF"},120042:{"value":"1D4EA","name":"MATHEMATICAL BOLD SCRIPT SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4EA"},120043:{"value":"1D4EB","name":"MATHEMATICAL BOLD SCRIPT SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4EB"},120044:{"value":"1D4EC","name":"MATHEMATICAL BOLD SCRIPT SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4EC"},120045:{"value":"1D4ED","name":"MATHEMATICAL BOLD SCRIPT SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4ED"},120046:{"value":"1D4EE","name":"MATHEMATICAL BOLD SCRIPT SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4EE"},120047:{"value":"1D4EF","name":"MATHEMATICAL BOLD SCRIPT SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4EF"},120048:{"value":"1D4F0","name":"MATHEMATICAL BOLD SCRIPT SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4F0"},120049:{"value":"1D4F1","name":"MATHEMATICAL BOLD SCRIPT SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4F1"},120050:{"value":"1D4F2","name":"MATHEMATICAL BOLD SCRIPT SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4F2"},120051:{"value":"1D4F3","name":"MATHEMATICAL BOLD SCRIPT SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4F3"},120052:{"value":"1D4F4","name":"MATHEMATICAL BOLD SCRIPT SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4F4"},120053:{"value":"1D4F5","name":"MATHEMATICAL BOLD SCRIPT SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4F5"},120054:{"value":"1D4F6","name":"MATHEMATICAL BOLD SCRIPT SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4F6"},120055:{"value":"1D4F7","name":"MATHEMATICAL BOLD SCRIPT SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4F7"},120056:{"value":"1D4F8","name":"MATHEMATICAL BOLD SCRIPT SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4F8"},120057:{"value":"1D4F9","name":"MATHEMATICAL BOLD SCRIPT SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4F9"},120058:{"value":"1D4FA","name":"MATHEMATICAL BOLD SCRIPT SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4FA"},120059:{"value":"1D4FB","name":"MATHEMATICAL BOLD SCRIPT SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4FB"},120060:{"value":"1D4FC","name":"MATHEMATICAL BOLD SCRIPT SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4FC"},120061:{"value":"1D4FD","name":"MATHEMATICAL BOLD SCRIPT SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4FD"},120062:{"value":"1D4FE","name":"MATHEMATICAL BOLD SCRIPT SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4FE"},120063:{"value":"1D4FF","name":"MATHEMATICAL BOLD SCRIPT SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD4FF"},120064:{"value":"1D500","name":"MATHEMATICAL BOLD SCRIPT SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD500"},120065:{"value":"1D501","name":"MATHEMATICAL BOLD SCRIPT SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD501"},120066:{"value":"1D502","name":"MATHEMATICAL BOLD SCRIPT SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD502"},120067:{"value":"1D503","name":"MATHEMATICAL BOLD SCRIPT SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD503"},120094:{"value":"1D51E","name":"MATHEMATICAL FRAKTUR SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD51E"},120095:{"value":"1D51F","name":"MATHEMATICAL FRAKTUR SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD51F"},120096:{"value":"1D520","name":"MATHEMATICAL FRAKTUR SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD520"},120097:{"value":"1D521","name":"MATHEMATICAL FRAKTUR SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD521"},120098:{"value":"1D522","name":"MATHEMATICAL FRAKTUR SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD522"},120099:{"value":"1D523","name":"MATHEMATICAL FRAKTUR SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD523"},120100:{"value":"1D524","name":"MATHEMATICAL FRAKTUR SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD524"},120101:{"value":"1D525","name":"MATHEMATICAL FRAKTUR SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD525"},120102:{"value":"1D526","name":"MATHEMATICAL FRAKTUR SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD526"},120103:{"value":"1D527","name":"MATHEMATICAL FRAKTUR SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD527"},120104:{"value":"1D528","name":"MATHEMATICAL FRAKTUR SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD528"},120105:{"value":"1D529","name":"MATHEMATICAL FRAKTUR SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD529"},120106:{"value":"1D52A","name":"MATHEMATICAL FRAKTUR SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD52A"},120107:{"value":"1D52B","name":"MATHEMATICAL FRAKTUR SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD52B"},120108:{"value":"1D52C","name":"MATHEMATICAL FRAKTUR SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD52C"},120109:{"value":"1D52D","name":"MATHEMATICAL FRAKTUR SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD52D"},120110:{"value":"1D52E","name":"MATHEMATICAL FRAKTUR SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD52E"},120111:{"value":"1D52F","name":"MATHEMATICAL FRAKTUR SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD52F"},120112:{"value":"1D530","name":"MATHEMATICAL FRAKTUR SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD530"},120113:{"value":"1D531","name":"MATHEMATICAL FRAKTUR SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD531"},120114:{"value":"1D532","name":"MATHEMATICAL FRAKTUR SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD532"},120115:{"value":"1D533","name":"MATHEMATICAL FRAKTUR SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD533"},120116:{"value":"1D534","name":"MATHEMATICAL FRAKTUR SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD534"},120117:{"value":"1D535","name":"MATHEMATICAL FRAKTUR SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD535"},120118:{"value":"1D536","name":"MATHEMATICAL FRAKTUR SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD536"},120119:{"value":"1D537","name":"MATHEMATICAL FRAKTUR SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD537"},120146:{"value":"1D552","name":"MATHEMATICAL DOUBLE-STRUCK SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD552"},120147:{"value":"1D553","name":"MATHEMATICAL DOUBLE-STRUCK SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD553"},120148:{"value":"1D554","name":"MATHEMATICAL DOUBLE-STRUCK SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD554"},120149:{"value":"1D555","name":"MATHEMATICAL DOUBLE-STRUCK SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD555"},120150:{"value":"1D556","name":"MATHEMATICAL DOUBLE-STRUCK SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD556"},120151:{"value":"1D557","name":"MATHEMATICAL DOUBLE-STRUCK SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD557"},120152:{"value":"1D558","name":"MATHEMATICAL DOUBLE-STRUCK SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD558"},120153:{"value":"1D559","name":"MATHEMATICAL DOUBLE-STRUCK SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD559"},120154:{"value":"1D55A","name":"MATHEMATICAL DOUBLE-STRUCK SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD55A"},120155:{"value":"1D55B","name":"MATHEMATICAL DOUBLE-STRUCK SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD55B"},120156:{"value":"1D55C","name":"MATHEMATICAL DOUBLE-STRUCK SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD55C"},120157:{"value":"1D55D","name":"MATHEMATICAL DOUBLE-STRUCK SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD55D"},120158:{"value":"1D55E","name":"MATHEMATICAL DOUBLE-STRUCK SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD55E"},120159:{"value":"1D55F","name":"MATHEMATICAL DOUBLE-STRUCK SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD55F"},120160:{"value":"1D560","name":"MATHEMATICAL DOUBLE-STRUCK SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD560"},120161:{"value":"1D561","name":"MATHEMATICAL DOUBLE-STRUCK SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD561"},120162:{"value":"1D562","name":"MATHEMATICAL DOUBLE-STRUCK SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD562"},120163:{"value":"1D563","name":"MATHEMATICAL DOUBLE-STRUCK SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD563"},120164:{"value":"1D564","name":"MATHEMATICAL DOUBLE-STRUCK SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD564"},120165:{"value":"1D565","name":"MATHEMATICAL DOUBLE-STRUCK SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD565"},120166:{"value":"1D566","name":"MATHEMATICAL DOUBLE-STRUCK SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD566"},120167:{"value":"1D567","name":"MATHEMATICAL DOUBLE-STRUCK SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD567"},120168:{"value":"1D568","name":"MATHEMATICAL DOUBLE-STRUCK SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD568"},120169:{"value":"1D569","name":"MATHEMATICAL DOUBLE-STRUCK SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD569"},120170:{"value":"1D56A","name":"MATHEMATICAL DOUBLE-STRUCK SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD56A"},120171:{"value":"1D56B","name":"MATHEMATICAL DOUBLE-STRUCK SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD56B"},120198:{"value":"1D586","name":"MATHEMATICAL BOLD FRAKTUR SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD586"},120199:{"value":"1D587","name":"MATHEMATICAL BOLD FRAKTUR SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD587"},120200:{"value":"1D588","name":"MATHEMATICAL BOLD FRAKTUR SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD588"},120201:{"value":"1D589","name":"MATHEMATICAL BOLD FRAKTUR SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD589"},120202:{"value":"1D58A","name":"MATHEMATICAL BOLD FRAKTUR SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD58A"},120203:{"value":"1D58B","name":"MATHEMATICAL BOLD FRAKTUR SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD58B"},120204:{"value":"1D58C","name":"MATHEMATICAL BOLD FRAKTUR SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD58C"},120205:{"value":"1D58D","name":"MATHEMATICAL BOLD FRAKTUR SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD58D"},120206:{"value":"1D58E","name":"MATHEMATICAL BOLD FRAKTUR SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD58E"},120207:{"value":"1D58F","name":"MATHEMATICAL BOLD FRAKTUR SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD58F"},120208:{"value":"1D590","name":"MATHEMATICAL BOLD FRAKTUR SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD590"},120209:{"value":"1D591","name":"MATHEMATICAL BOLD FRAKTUR SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD591"},120210:{"value":"1D592","name":"MATHEMATICAL BOLD FRAKTUR SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD592"},120211:{"value":"1D593","name":"MATHEMATICAL BOLD FRAKTUR SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD593"},120212:{"value":"1D594","name":"MATHEMATICAL BOLD FRAKTUR SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD594"},120213:{"value":"1D595","name":"MATHEMATICAL BOLD FRAKTUR SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD595"},120214:{"value":"1D596","name":"MATHEMATICAL BOLD FRAKTUR SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD596"},120215:{"value":"1D597","name":"MATHEMATICAL BOLD FRAKTUR SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD597"},120216:{"value":"1D598","name":"MATHEMATICAL BOLD FRAKTUR SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD598"},120217:{"value":"1D599","name":"MATHEMATICAL BOLD FRAKTUR SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD599"},120218:{"value":"1D59A","name":"MATHEMATICAL BOLD FRAKTUR SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD59A"},120219:{"value":"1D59B","name":"MATHEMATICAL BOLD FRAKTUR SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD59B"},120220:{"value":"1D59C","name":"MATHEMATICAL BOLD FRAKTUR SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD59C"},120221:{"value":"1D59D","name":"MATHEMATICAL BOLD FRAKTUR SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD59D"},120222:{"value":"1D59E","name":"MATHEMATICAL BOLD FRAKTUR SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD59E"},120223:{"value":"1D59F","name":"MATHEMATICAL BOLD FRAKTUR SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD59F"},120250:{"value":"1D5BA","name":"MATHEMATICAL SANS-SERIF SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5BA"},120251:{"value":"1D5BB","name":"MATHEMATICAL SANS-SERIF SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5BB"},120252:{"value":"1D5BC","name":"MATHEMATICAL SANS-SERIF SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5BC"},120253:{"value":"1D5BD","name":"MATHEMATICAL SANS-SERIF SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5BD"},120254:{"value":"1D5BE","name":"MATHEMATICAL SANS-SERIF SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5BE"},120255:{"value":"1D5BF","name":"MATHEMATICAL SANS-SERIF SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5BF"},120256:{"value":"1D5C0","name":"MATHEMATICAL SANS-SERIF SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5C0"},120257:{"value":"1D5C1","name":"MATHEMATICAL SANS-SERIF SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5C1"},120258:{"value":"1D5C2","name":"MATHEMATICAL SANS-SERIF SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5C2"},120259:{"value":"1D5C3","name":"MATHEMATICAL SANS-SERIF SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5C3"},120260:{"value":"1D5C4","name":"MATHEMATICAL SANS-SERIF SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5C4"},120261:{"value":"1D5C5","name":"MATHEMATICAL SANS-SERIF SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5C5"},120262:{"value":"1D5C6","name":"MATHEMATICAL SANS-SERIF SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5C6"},120263:{"value":"1D5C7","name":"MATHEMATICAL SANS-SERIF SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5C7"},120264:{"value":"1D5C8","name":"MATHEMATICAL SANS-SERIF SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5C8"},120265:{"value":"1D5C9","name":"MATHEMATICAL SANS-SERIF SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5C9"},120266:{"value":"1D5CA","name":"MATHEMATICAL SANS-SERIF SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5CA"},120267:{"value":"1D5CB","name":"MATHEMATICAL SANS-SERIF SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5CB"},120268:{"value":"1D5CC","name":"MATHEMATICAL SANS-SERIF SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5CC"},120269:{"value":"1D5CD","name":"MATHEMATICAL SANS-SERIF SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5CD"},120270:{"value":"1D5CE","name":"MATHEMATICAL SANS-SERIF SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5CE"},120271:{"value":"1D5CF","name":"MATHEMATICAL SANS-SERIF SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5CF"},120272:{"value":"1D5D0","name":"MATHEMATICAL SANS-SERIF SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5D0"},120273:{"value":"1D5D1","name":"MATHEMATICAL SANS-SERIF SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5D1"},120274:{"value":"1D5D2","name":"MATHEMATICAL SANS-SERIF SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5D2"},120275:{"value":"1D5D3","name":"MATHEMATICAL SANS-SERIF SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5D3"},120302:{"value":"1D5EE","name":"MATHEMATICAL SANS-SERIF BOLD SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5EE"},120303:{"value":"1D5EF","name":"MATHEMATICAL SANS-SERIF BOLD SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5EF"},120304:{"value":"1D5F0","name":"MATHEMATICAL SANS-SERIF BOLD SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5F0"},120305:{"value":"1D5F1","name":"MATHEMATICAL SANS-SERIF BOLD SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5F1"},120306:{"value":"1D5F2","name":"MATHEMATICAL SANS-SERIF BOLD SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5F2"},120307:{"value":"1D5F3","name":"MATHEMATICAL SANS-SERIF BOLD SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5F3"},120308:{"value":"1D5F4","name":"MATHEMATICAL SANS-SERIF BOLD SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5F4"},120309:{"value":"1D5F5","name":"MATHEMATICAL SANS-SERIF BOLD SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5F5"},120310:{"value":"1D5F6","name":"MATHEMATICAL SANS-SERIF BOLD SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5F6"},120311:{"value":"1D5F7","name":"MATHEMATICAL SANS-SERIF BOLD SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5F7"},120312:{"value":"1D5F8","name":"MATHEMATICAL SANS-SERIF BOLD SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5F8"},120313:{"value":"1D5F9","name":"MATHEMATICAL SANS-SERIF BOLD SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5F9"},120314:{"value":"1D5FA","name":"MATHEMATICAL SANS-SERIF BOLD SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5FA"},120315:{"value":"1D5FB","name":"MATHEMATICAL SANS-SERIF BOLD SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5FB"},120316:{"value":"1D5FC","name":"MATHEMATICAL SANS-SERIF BOLD SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5FC"},120317:{"value":"1D5FD","name":"MATHEMATICAL SANS-SERIF BOLD SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5FD"},120318:{"value":"1D5FE","name":"MATHEMATICAL SANS-SERIF BOLD SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5FE"},120319:{"value":"1D5FF","name":"MATHEMATICAL SANS-SERIF BOLD SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD5FF"},120320:{"value":"1D600","name":"MATHEMATICAL SANS-SERIF BOLD SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD600"},120321:{"value":"1D601","name":"MATHEMATICAL SANS-SERIF BOLD SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD601"},120322:{"value":"1D602","name":"MATHEMATICAL SANS-SERIF BOLD SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD602"},120323:{"value":"1D603","name":"MATHEMATICAL SANS-SERIF BOLD SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD603"},120324:{"value":"1D604","name":"MATHEMATICAL SANS-SERIF BOLD SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD604"},120325:{"value":"1D605","name":"MATHEMATICAL SANS-SERIF BOLD SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD605"},120326:{"value":"1D606","name":"MATHEMATICAL SANS-SERIF BOLD SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD606"},120327:{"value":"1D607","name":"MATHEMATICAL SANS-SERIF BOLD SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD607"},120354:{"value":"1D622","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD622"},120355:{"value":"1D623","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD623"},120356:{"value":"1D624","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD624"},120357:{"value":"1D625","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD625"},120358:{"value":"1D626","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD626"},120359:{"value":"1D627","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD627"},120360:{"value":"1D628","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD628"},120361:{"value":"1D629","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD629"},120362:{"value":"1D62A","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD62A"},120363:{"value":"1D62B","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD62B"},120364:{"value":"1D62C","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD62C"},120365:{"value":"1D62D","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD62D"},120366:{"value":"1D62E","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD62E"},120367:{"value":"1D62F","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD62F"},120368:{"value":"1D630","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD630"},120369:{"value":"1D631","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD631"},120370:{"value":"1D632","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD632"},120371:{"value":"1D633","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD633"},120372:{"value":"1D634","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD634"},120373:{"value":"1D635","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD635"},120374:{"value":"1D636","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD636"},120375:{"value":"1D637","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD637"},120376:{"value":"1D638","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD638"},120377:{"value":"1D639","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD639"},120378:{"value":"1D63A","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD63A"},120379:{"value":"1D63B","name":"MATHEMATICAL SANS-SERIF ITALIC SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD63B"},120406:{"value":"1D656","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD656"},120407:{"value":"1D657","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD657"},120408:{"value":"1D658","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD658"},120409:{"value":"1D659","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD659"},120410:{"value":"1D65A","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD65A"},120411:{"value":"1D65B","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD65B"},120412:{"value":"1D65C","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD65C"},120413:{"value":"1D65D","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD65D"},120414:{"value":"1D65E","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD65E"},120415:{"value":"1D65F","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD65F"},120416:{"value":"1D660","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD660"},120417:{"value":"1D661","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD661"},120418:{"value":"1D662","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD662"},120419:{"value":"1D663","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD663"},120420:{"value":"1D664","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD664"},120421:{"value":"1D665","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD665"},120422:{"value":"1D666","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD666"},120423:{"value":"1D667","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD667"},120424:{"value":"1D668","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD668"},120425:{"value":"1D669","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD669"},120426:{"value":"1D66A","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD66A"},120427:{"value":"1D66B","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD66B"},120428:{"value":"1D66C","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD66C"},120429:{"value":"1D66D","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD66D"},120430:{"value":"1D66E","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD66E"},120431:{"value":"1D66F","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD66F"},120458:{"value":"1D68A","name":"MATHEMATICAL MONOSPACE SMALL A","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD68A"},120459:{"value":"1D68B","name":"MATHEMATICAL MONOSPACE SMALL B","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD68B"},120460:{"value":"1D68C","name":"MATHEMATICAL MONOSPACE SMALL C","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD68C"},120461:{"value":"1D68D","name":"MATHEMATICAL MONOSPACE SMALL D","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD68D"},120462:{"value":"1D68E","name":"MATHEMATICAL MONOSPACE SMALL E","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD68E"},120463:{"value":"1D68F","name":"MATHEMATICAL MONOSPACE SMALL F","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD68F"},120464:{"value":"1D690","name":"MATHEMATICAL MONOSPACE SMALL G","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD690"},120465:{"value":"1D691","name":"MATHEMATICAL MONOSPACE SMALL H","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD691"},120466:{"value":"1D692","name":"MATHEMATICAL MONOSPACE SMALL I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD692"},120467:{"value":"1D693","name":"MATHEMATICAL MONOSPACE SMALL J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD693"},120468:{"value":"1D694","name":"MATHEMATICAL MONOSPACE SMALL K","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD694"},120469:{"value":"1D695","name":"MATHEMATICAL MONOSPACE SMALL L","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD695"},120470:{"value":"1D696","name":"MATHEMATICAL MONOSPACE SMALL M","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD696"},120471:{"value":"1D697","name":"MATHEMATICAL MONOSPACE SMALL N","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD697"},120472:{"value":"1D698","name":"MATHEMATICAL MONOSPACE SMALL O","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD698"},120473:{"value":"1D699","name":"MATHEMATICAL MONOSPACE SMALL P","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD699"},120474:{"value":"1D69A","name":"MATHEMATICAL MONOSPACE SMALL Q","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0071","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD69A"},120475:{"value":"1D69B","name":"MATHEMATICAL MONOSPACE SMALL R","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD69B"},120476:{"value":"1D69C","name":"MATHEMATICAL MONOSPACE SMALL S","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD69C"},120477:{"value":"1D69D","name":"MATHEMATICAL MONOSPACE SMALL T","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD69D"},120478:{"value":"1D69E","name":"MATHEMATICAL MONOSPACE SMALL U","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD69E"},120479:{"value":"1D69F","name":"MATHEMATICAL MONOSPACE SMALL V","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD69F"},120480:{"value":"1D6A0","name":"MATHEMATICAL MONOSPACE SMALL W","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6A0"},120481:{"value":"1D6A1","name":"MATHEMATICAL MONOSPACE SMALL X","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6A1"},120482:{"value":"1D6A2","name":"MATHEMATICAL MONOSPACE SMALL Y","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6A2"},120483:{"value":"1D6A3","name":"MATHEMATICAL MONOSPACE SMALL Z","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6A3"},120484:{"value":"1D6A4","name":"MATHEMATICAL ITALIC SMALL DOTLESS I","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0131","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6A4"},120485:{"value":"1D6A5","name":"MATHEMATICAL ITALIC SMALL DOTLESS J","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 0237","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6A5"},120514:{"value":"1D6C2","name":"MATHEMATICAL BOLD SMALL ALPHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6C2"},120515:{"value":"1D6C3","name":"MATHEMATICAL BOLD SMALL BETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6C3"},120516:{"value":"1D6C4","name":"MATHEMATICAL BOLD SMALL GAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6C4"},120517:{"value":"1D6C5","name":"MATHEMATICAL BOLD SMALL DELTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6C5"},120518:{"value":"1D6C6","name":"MATHEMATICAL BOLD SMALL EPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6C6"},120519:{"value":"1D6C7","name":"MATHEMATICAL BOLD SMALL ZETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6C7"},120520:{"value":"1D6C8","name":"MATHEMATICAL BOLD SMALL ETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6C8"},120521:{"value":"1D6C9","name":"MATHEMATICAL BOLD SMALL THETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6C9"},120522:{"value":"1D6CA","name":"MATHEMATICAL BOLD SMALL IOTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6CA"},120523:{"value":"1D6CB","name":"MATHEMATICAL BOLD SMALL KAPPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6CB"},120524:{"value":"1D6CC","name":"MATHEMATICAL BOLD SMALL LAMDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6CC"},120525:{"value":"1D6CD","name":"MATHEMATICAL BOLD SMALL MU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6CD"},120526:{"value":"1D6CE","name":"MATHEMATICAL BOLD SMALL NU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6CE"},120527:{"value":"1D6CF","name":"MATHEMATICAL BOLD SMALL XI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6CF"},120528:{"value":"1D6D0","name":"MATHEMATICAL BOLD SMALL OMICRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6D0"},120529:{"value":"1D6D1","name":"MATHEMATICAL BOLD SMALL PI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6D1"},120530:{"value":"1D6D2","name":"MATHEMATICAL BOLD SMALL RHO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6D2"},120531:{"value":"1D6D3","name":"MATHEMATICAL BOLD SMALL FINAL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6D3"},120532:{"value":"1D6D4","name":"MATHEMATICAL BOLD SMALL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6D4"},120533:{"value":"1D6D5","name":"MATHEMATICAL BOLD SMALL TAU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6D5"},120534:{"value":"1D6D6","name":"MATHEMATICAL BOLD SMALL UPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6D6"},120535:{"value":"1D6D7","name":"MATHEMATICAL BOLD SMALL PHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6D7"},120536:{"value":"1D6D8","name":"MATHEMATICAL BOLD SMALL CHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6D8"},120537:{"value":"1D6D9","name":"MATHEMATICAL BOLD SMALL PSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6D9"},120538:{"value":"1D6DA","name":"MATHEMATICAL BOLD SMALL OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6DA"},120540:{"value":"1D6DC","name":"MATHEMATICAL BOLD EPSILON SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6DC"},120541:{"value":"1D6DD","name":"MATHEMATICAL BOLD THETA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6DD"},120542:{"value":"1D6DE","name":"MATHEMATICAL BOLD KAPPA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6DE"},120543:{"value":"1D6DF","name":"MATHEMATICAL BOLD PHI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6DF"},120544:{"value":"1D6E0","name":"MATHEMATICAL BOLD RHO SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6E0"},120545:{"value":"1D6E1","name":"MATHEMATICAL BOLD PI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6E1"},120572:{"value":"1D6FC","name":"MATHEMATICAL ITALIC SMALL ALPHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6FC"},120573:{"value":"1D6FD","name":"MATHEMATICAL ITALIC SMALL BETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6FD"},120574:{"value":"1D6FE","name":"MATHEMATICAL ITALIC SMALL GAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6FE"},120575:{"value":"1D6FF","name":"MATHEMATICAL ITALIC SMALL DELTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD6FF"},120576:{"value":"1D700","name":"MATHEMATICAL ITALIC SMALL EPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD700"},120577:{"value":"1D701","name":"MATHEMATICAL ITALIC SMALL ZETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD701"},120578:{"value":"1D702","name":"MATHEMATICAL ITALIC SMALL ETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD702"},120579:{"value":"1D703","name":"MATHEMATICAL ITALIC SMALL THETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD703"},120580:{"value":"1D704","name":"MATHEMATICAL ITALIC SMALL IOTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD704"},120581:{"value":"1D705","name":"MATHEMATICAL ITALIC SMALL KAPPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD705"},120582:{"value":"1D706","name":"MATHEMATICAL ITALIC SMALL LAMDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD706"},120583:{"value":"1D707","name":"MATHEMATICAL ITALIC SMALL MU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD707"},120584:{"value":"1D708","name":"MATHEMATICAL ITALIC SMALL NU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD708"},120585:{"value":"1D709","name":"MATHEMATICAL ITALIC SMALL XI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD709"},120586:{"value":"1D70A","name":"MATHEMATICAL ITALIC SMALL OMICRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD70A"},120587:{"value":"1D70B","name":"MATHEMATICAL ITALIC SMALL PI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD70B"},120588:{"value":"1D70C","name":"MATHEMATICAL ITALIC SMALL RHO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD70C"},120589:{"value":"1D70D","name":"MATHEMATICAL ITALIC SMALL FINAL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD70D"},120590:{"value":"1D70E","name":"MATHEMATICAL ITALIC SMALL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD70E"},120591:{"value":"1D70F","name":"MATHEMATICAL ITALIC SMALL TAU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD70F"},120592:{"value":"1D710","name":"MATHEMATICAL ITALIC SMALL UPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD710"},120593:{"value":"1D711","name":"MATHEMATICAL ITALIC SMALL PHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD711"},120594:{"value":"1D712","name":"MATHEMATICAL ITALIC SMALL CHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD712"},120595:{"value":"1D713","name":"MATHEMATICAL ITALIC SMALL PSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD713"},120596:{"value":"1D714","name":"MATHEMATICAL ITALIC SMALL OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD714"},120598:{"value":"1D716","name":"MATHEMATICAL ITALIC EPSILON SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD716"},120599:{"value":"1D717","name":"MATHEMATICAL ITALIC THETA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD717"},120600:{"value":"1D718","name":"MATHEMATICAL ITALIC KAPPA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD718"},120601:{"value":"1D719","name":"MATHEMATICAL ITALIC PHI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD719"},120602:{"value":"1D71A","name":"MATHEMATICAL ITALIC RHO SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD71A"},120603:{"value":"1D71B","name":"MATHEMATICAL ITALIC PI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD71B"},120630:{"value":"1D736","name":"MATHEMATICAL BOLD ITALIC SMALL ALPHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD736"},120631:{"value":"1D737","name":"MATHEMATICAL BOLD ITALIC SMALL BETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD737"},120632:{"value":"1D738","name":"MATHEMATICAL BOLD ITALIC SMALL GAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD738"},120633:{"value":"1D739","name":"MATHEMATICAL BOLD ITALIC SMALL DELTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD739"},120634:{"value":"1D73A","name":"MATHEMATICAL BOLD ITALIC SMALL EPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD73A"},120635:{"value":"1D73B","name":"MATHEMATICAL BOLD ITALIC SMALL ZETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD73B"},120636:{"value":"1D73C","name":"MATHEMATICAL BOLD ITALIC SMALL ETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD73C"},120637:{"value":"1D73D","name":"MATHEMATICAL BOLD ITALIC SMALL THETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD73D"},120638:{"value":"1D73E","name":"MATHEMATICAL BOLD ITALIC SMALL IOTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD73E"},120639:{"value":"1D73F","name":"MATHEMATICAL BOLD ITALIC SMALL KAPPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD73F"},120640:{"value":"1D740","name":"MATHEMATICAL BOLD ITALIC SMALL LAMDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD740"},120641:{"value":"1D741","name":"MATHEMATICAL BOLD ITALIC SMALL MU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD741"},120642:{"value":"1D742","name":"MATHEMATICAL BOLD ITALIC SMALL NU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD742"},120643:{"value":"1D743","name":"MATHEMATICAL BOLD ITALIC SMALL XI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD743"},120644:{"value":"1D744","name":"MATHEMATICAL BOLD ITALIC SMALL OMICRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD744"},120645:{"value":"1D745","name":"MATHEMATICAL BOLD ITALIC SMALL PI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD745"},120646:{"value":"1D746","name":"MATHEMATICAL BOLD ITALIC SMALL RHO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD746"},120647:{"value":"1D747","name":"MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD747"},120648:{"value":"1D748","name":"MATHEMATICAL BOLD ITALIC SMALL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD748"},120649:{"value":"1D749","name":"MATHEMATICAL BOLD ITALIC SMALL TAU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD749"},120650:{"value":"1D74A","name":"MATHEMATICAL BOLD ITALIC SMALL UPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD74A"},120651:{"value":"1D74B","name":"MATHEMATICAL BOLD ITALIC SMALL PHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD74B"},120652:{"value":"1D74C","name":"MATHEMATICAL BOLD ITALIC SMALL CHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD74C"},120653:{"value":"1D74D","name":"MATHEMATICAL BOLD ITALIC SMALL PSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD74D"},120654:{"value":"1D74E","name":"MATHEMATICAL BOLD ITALIC SMALL OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD74E"},120656:{"value":"1D750","name":"MATHEMATICAL BOLD ITALIC EPSILON SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD750"},120657:{"value":"1D751","name":"MATHEMATICAL BOLD ITALIC THETA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD751"},120658:{"value":"1D752","name":"MATHEMATICAL BOLD ITALIC KAPPA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD752"},120659:{"value":"1D753","name":"MATHEMATICAL BOLD ITALIC PHI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD753"},120660:{"value":"1D754","name":"MATHEMATICAL BOLD ITALIC RHO SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD754"},120661:{"value":"1D755","name":"MATHEMATICAL BOLD ITALIC PI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD755"},120688:{"value":"1D770","name":"MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD770"},120689:{"value":"1D771","name":"MATHEMATICAL SANS-SERIF BOLD SMALL BETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD771"},120690:{"value":"1D772","name":"MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD772"},120691:{"value":"1D773","name":"MATHEMATICAL SANS-SERIF BOLD SMALL DELTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD773"},120692:{"value":"1D774","name":"MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD774"},120693:{"value":"1D775","name":"MATHEMATICAL SANS-SERIF BOLD SMALL ZETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD775"},120694:{"value":"1D776","name":"MATHEMATICAL SANS-SERIF BOLD SMALL ETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD776"},120695:{"value":"1D777","name":"MATHEMATICAL SANS-SERIF BOLD SMALL THETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD777"},120696:{"value":"1D778","name":"MATHEMATICAL SANS-SERIF BOLD SMALL IOTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD778"},120697:{"value":"1D779","name":"MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD779"},120698:{"value":"1D77A","name":"MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD77A"},120699:{"value":"1D77B","name":"MATHEMATICAL SANS-SERIF BOLD SMALL MU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD77B"},120700:{"value":"1D77C","name":"MATHEMATICAL SANS-SERIF BOLD SMALL NU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD77C"},120701:{"value":"1D77D","name":"MATHEMATICAL SANS-SERIF BOLD SMALL XI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD77D"},120702:{"value":"1D77E","name":"MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD77E"},120703:{"value":"1D77F","name":"MATHEMATICAL SANS-SERIF BOLD SMALL PI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD77F"},120704:{"value":"1D780","name":"MATHEMATICAL SANS-SERIF BOLD SMALL RHO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD780"},120705:{"value":"1D781","name":"MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD781"},120706:{"value":"1D782","name":"MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD782"},120707:{"value":"1D783","name":"MATHEMATICAL SANS-SERIF BOLD SMALL TAU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD783"},120708:{"value":"1D784","name":"MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD784"},120709:{"value":"1D785","name":"MATHEMATICAL SANS-SERIF BOLD SMALL PHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD785"},120710:{"value":"1D786","name":"MATHEMATICAL SANS-SERIF BOLD SMALL CHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD786"},120711:{"value":"1D787","name":"MATHEMATICAL SANS-SERIF BOLD SMALL PSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD787"},120712:{"value":"1D788","name":"MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD788"},120714:{"value":"1D78A","name":"MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD78A"},120715:{"value":"1D78B","name":"MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD78B"},120716:{"value":"1D78C","name":"MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD78C"},120717:{"value":"1D78D","name":"MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD78D"},120718:{"value":"1D78E","name":"MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD78E"},120719:{"value":"1D78F","name":"MATHEMATICAL SANS-SERIF BOLD PI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD78F"},120746:{"value":"1D7AA","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7AA"},120747:{"value":"1D7AB","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7AB"},120748:{"value":"1D7AC","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7AC"},120749:{"value":"1D7AD","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7AD"},120750:{"value":"1D7AE","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7AE"},120751:{"value":"1D7AF","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7AF"},120752:{"value":"1D7B0","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B0"},120753:{"value":"1D7B1","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B1"},120754:{"value":"1D7B2","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03B9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B2"},120755:{"value":"1D7B3","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B3"},120756:{"value":"1D7B4","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B4"},120757:{"value":"1D7B5","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B5"},120758:{"value":"1D7B6","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B6"},120759:{"value":"1D7B7","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B7"},120760:{"value":"1D7B8","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03BF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B8"},120761:{"value":"1D7B9","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B9"},120762:{"value":"1D7BA","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BA"},120763:{"value":"1D7BB","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BB"},120764:{"value":"1D7BC","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BC"},120765:{"value":"1D7BD","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BD"},120766:{"value":"1D7BE","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BE"},120767:{"value":"1D7BF","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BF"},120768:{"value":"1D7C0","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C0"},120769:{"value":"1D7C1","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C1"},120770:{"value":"1D7C2","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C2"},120772:{"value":"1D7C4","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C4"},120773:{"value":"1D7C5","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C5"},120774:{"value":"1D7C6","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C6"},120775:{"value":"1D7C7","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C7"},120776:{"value":"1D7C8","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C8"},120777:{"value":"1D7C9","name":"MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03D6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C9"},120779:{"value":"1D7CB","name":"MATHEMATICAL BOLD SMALL DIGAMMA","category":"Ll","class":"0","bidirectional_category":"L","mapping":"<font> 03DD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7CB"},125218:{"value":"1E922","name":"ADLAM SMALL LETTER ALIF","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E900","lowercase_mapping":"","titlecase_mapping":"1E900","symbol":"\uE922"},125219:{"value":"1E923","name":"ADLAM SMALL LETTER DAALI","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E901","lowercase_mapping":"","titlecase_mapping":"1E901","symbol":"\uE923"},125220:{"value":"1E924","name":"ADLAM SMALL LETTER LAAM","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E902","lowercase_mapping":"","titlecase_mapping":"1E902","symbol":"\uE924"},125221:{"value":"1E925","name":"ADLAM SMALL LETTER MIIM","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E903","lowercase_mapping":"","titlecase_mapping":"1E903","symbol":"\uE925"},125222:{"value":"1E926","name":"ADLAM SMALL LETTER BA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E904","lowercase_mapping":"","titlecase_mapping":"1E904","symbol":"\uE926"},125223:{"value":"1E927","name":"ADLAM SMALL LETTER SINNYIIYHE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E905","lowercase_mapping":"","titlecase_mapping":"1E905","symbol":"\uE927"},125224:{"value":"1E928","name":"ADLAM SMALL LETTER PE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E906","lowercase_mapping":"","titlecase_mapping":"1E906","symbol":"\uE928"},125225:{"value":"1E929","name":"ADLAM SMALL LETTER BHE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E907","lowercase_mapping":"","titlecase_mapping":"1E907","symbol":"\uE929"},125226:{"value":"1E92A","name":"ADLAM SMALL LETTER RA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E908","lowercase_mapping":"","titlecase_mapping":"1E908","symbol":"\uE92A"},125227:{"value":"1E92B","name":"ADLAM SMALL LETTER E","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E909","lowercase_mapping":"","titlecase_mapping":"1E909","symbol":"\uE92B"},125228:{"value":"1E92C","name":"ADLAM SMALL LETTER FA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E90A","lowercase_mapping":"","titlecase_mapping":"1E90A","symbol":"\uE92C"},125229:{"value":"1E92D","name":"ADLAM SMALL LETTER I","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E90B","lowercase_mapping":"","titlecase_mapping":"1E90B","symbol":"\uE92D"},125230:{"value":"1E92E","name":"ADLAM SMALL LETTER O","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E90C","lowercase_mapping":"","titlecase_mapping":"1E90C","symbol":"\uE92E"},125231:{"value":"1E92F","name":"ADLAM SMALL LETTER DHA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E90D","lowercase_mapping":"","titlecase_mapping":"1E90D","symbol":"\uE92F"},125232:{"value":"1E930","name":"ADLAM SMALL LETTER YHE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E90E","lowercase_mapping":"","titlecase_mapping":"1E90E","symbol":"\uE930"},125233:{"value":"1E931","name":"ADLAM SMALL LETTER WAW","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E90F","lowercase_mapping":"","titlecase_mapping":"1E90F","symbol":"\uE931"},125234:{"value":"1E932","name":"ADLAM SMALL LETTER NUN","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E910","lowercase_mapping":"","titlecase_mapping":"1E910","symbol":"\uE932"},125235:{"value":"1E933","name":"ADLAM SMALL LETTER KAF","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E911","lowercase_mapping":"","titlecase_mapping":"1E911","symbol":"\uE933"},125236:{"value":"1E934","name":"ADLAM SMALL LETTER YA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E912","lowercase_mapping":"","titlecase_mapping":"1E912","symbol":"\uE934"},125237:{"value":"1E935","name":"ADLAM SMALL LETTER U","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E913","lowercase_mapping":"","titlecase_mapping":"1E913","symbol":"\uE935"},125238:{"value":"1E936","name":"ADLAM SMALL LETTER JIIM","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E914","lowercase_mapping":"","titlecase_mapping":"1E914","symbol":"\uE936"},125239:{"value":"1E937","name":"ADLAM SMALL LETTER CHI","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E915","lowercase_mapping":"","titlecase_mapping":"1E915","symbol":"\uE937"},125240:{"value":"1E938","name":"ADLAM SMALL LETTER HA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E916","lowercase_mapping":"","titlecase_mapping":"1E916","symbol":"\uE938"},125241:{"value":"1E939","name":"ADLAM SMALL LETTER QAAF","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E917","lowercase_mapping":"","titlecase_mapping":"1E917","symbol":"\uE939"},125242:{"value":"1E93A","name":"ADLAM SMALL LETTER GA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E918","lowercase_mapping":"","titlecase_mapping":"1E918","symbol":"\uE93A"},125243:{"value":"1E93B","name":"ADLAM SMALL LETTER NYA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E919","lowercase_mapping":"","titlecase_mapping":"1E919","symbol":"\uE93B"},125244:{"value":"1E93C","name":"ADLAM SMALL LETTER TU","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E91A","lowercase_mapping":"","titlecase_mapping":"1E91A","symbol":"\uE93C"},125245:{"value":"1E93D","name":"ADLAM SMALL LETTER NHA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E91B","lowercase_mapping":"","titlecase_mapping":"1E91B","symbol":"\uE93D"},125246:{"value":"1E93E","name":"ADLAM SMALL LETTER VA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E91C","lowercase_mapping":"","titlecase_mapping":"1E91C","symbol":"\uE93E"},125247:{"value":"1E93F","name":"ADLAM SMALL LETTER KHA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E91D","lowercase_mapping":"","titlecase_mapping":"1E91D","symbol":"\uE93F"},125248:{"value":"1E940","name":"ADLAM SMALL LETTER GBE","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E91E","lowercase_mapping":"","titlecase_mapping":"1E91E","symbol":"\uE940"},125249:{"value":"1E941","name":"ADLAM SMALL LETTER ZAL","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E91F","lowercase_mapping":"","titlecase_mapping":"1E91F","symbol":"\uE941"},125250:{"value":"1E942","name":"ADLAM SMALL LETTER KPO","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E920","lowercase_mapping":"","titlecase_mapping":"1E920","symbol":"\uE942"},125251:{"value":"1E943","name":"ADLAM SMALL LETTER SHA","category":"Ll","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"1E921","lowercase_mapping":"","titlecase_mapping":"1E921","symbol":"\uE943"}};

/***/ }),
/* 175 */
/***/ (function(module, exports) {

module.exports={453:{"value":"01C5","name":"LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON","category":"Lt","class":"0","bidirectional_category":"L","mapping":"<compat> 0044 017E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER CAPITAL D SMALL Z HACEK","comment":"","uppercase_mapping":"01C4","lowercase_mapping":"01C6","titlecase_mapping":"01C5","symbol":"\u01C5"},456:{"value":"01C8","name":"LATIN CAPITAL LETTER L WITH SMALL LETTER J","category":"Lt","class":"0","bidirectional_category":"L","mapping":"<compat> 004C 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER CAPITAL L SMALL J","comment":"","uppercase_mapping":"01C7","lowercase_mapping":"01C9","titlecase_mapping":"01C8","symbol":"\u01C8"},459:{"value":"01CB","name":"LATIN CAPITAL LETTER N WITH SMALL LETTER J","category":"Lt","class":"0","bidirectional_category":"L","mapping":"<compat> 004E 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER CAPITAL N SMALL J","comment":"","uppercase_mapping":"01CA","lowercase_mapping":"01CC","titlecase_mapping":"01CB","symbol":"\u01CB"},498:{"value":"01F2","name":"LATIN CAPITAL LETTER D WITH SMALL LETTER Z","category":"Lt","class":"0","bidirectional_category":"L","mapping":"<compat> 0044 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"01F1","lowercase_mapping":"01F3","titlecase_mapping":"01F2","symbol":"\u01F2"},8072:{"value":"1F88","name":"GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F08 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F80","titlecase_mapping":"","symbol":"\u1F88"},8073:{"value":"1F89","name":"GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F09 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F81","titlecase_mapping":"","symbol":"\u1F89"},8074:{"value":"1F8A","name":"GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F0A 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F82","titlecase_mapping":"","symbol":"\u1F8A"},8075:{"value":"1F8B","name":"GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F0B 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F83","titlecase_mapping":"","symbol":"\u1F8B"},8076:{"value":"1F8C","name":"GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F0C 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F84","titlecase_mapping":"","symbol":"\u1F8C"},8077:{"value":"1F8D","name":"GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F0D 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F85","titlecase_mapping":"","symbol":"\u1F8D"},8078:{"value":"1F8E","name":"GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F0E 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F86","titlecase_mapping":"","symbol":"\u1F8E"},8079:{"value":"1F8F","name":"GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F0F 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F87","titlecase_mapping":"","symbol":"\u1F8F"},8088:{"value":"1F98","name":"GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F28 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F90","titlecase_mapping":"","symbol":"\u1F98"},8089:{"value":"1F99","name":"GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F29 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F91","titlecase_mapping":"","symbol":"\u1F99"},8090:{"value":"1F9A","name":"GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F2A 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F92","titlecase_mapping":"","symbol":"\u1F9A"},8091:{"value":"1F9B","name":"GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F2B 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F93","titlecase_mapping":"","symbol":"\u1F9B"},8092:{"value":"1F9C","name":"GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F2C 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F94","titlecase_mapping":"","symbol":"\u1F9C"},8093:{"value":"1F9D","name":"GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F2D 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F95","titlecase_mapping":"","symbol":"\u1F9D"},8094:{"value":"1F9E","name":"GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F2E 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F96","titlecase_mapping":"","symbol":"\u1F9E"},8095:{"value":"1F9F","name":"GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F2F 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1F97","titlecase_mapping":"","symbol":"\u1F9F"},8104:{"value":"1FA8","name":"GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F68 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FA0","titlecase_mapping":"","symbol":"\u1FA8"},8105:{"value":"1FA9","name":"GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F69 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FA1","titlecase_mapping":"","symbol":"\u1FA9"},8106:{"value":"1FAA","name":"GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F6A 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FA2","titlecase_mapping":"","symbol":"\u1FAA"},8107:{"value":"1FAB","name":"GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F6B 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FA3","titlecase_mapping":"","symbol":"\u1FAB"},8108:{"value":"1FAC","name":"GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F6C 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FA4","titlecase_mapping":"","symbol":"\u1FAC"},8109:{"value":"1FAD","name":"GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F6D 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FA5","titlecase_mapping":"","symbol":"\u1FAD"},8110:{"value":"1FAE","name":"GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F6E 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FA6","titlecase_mapping":"","symbol":"\u1FAE"},8111:{"value":"1FAF","name":"GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"1F6F 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FA7","titlecase_mapping":"","symbol":"\u1FAF"},8124:{"value":"1FBC","name":"GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"0391 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FB3","titlecase_mapping":"","symbol":"\u1FBC"},8140:{"value":"1FCC","name":"GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"0397 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FC3","titlecase_mapping":"","symbol":"\u1FCC"},8188:{"value":"1FFC","name":"GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI","category":"Lt","class":"0","bidirectional_category":"L","mapping":"03A9 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"1FF3","titlecase_mapping":"","symbol":"\u1FFC"}};

/***/ }),
/* 176 */
/***/ (function(module, exports) {

module.exports={170:{"value":"00AA","name":"FEMININE ORDINAL INDICATOR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<super> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\xAA"},186:{"value":"00BA","name":"MASCULINE ORDINAL INDICATOR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<super> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\xBA"},443:{"value":"01BB","name":"LATIN LETTER TWO WITH STROKE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER TWO BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01BB"},448:{"value":"01C0","name":"LATIN LETTER DENTAL CLICK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER PIPE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C0"},449:{"value":"01C1","name":"LATIN LETTER LATERAL CLICK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER DOUBLE PIPE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C1"},450:{"value":"01C2","name":"LATIN LETTER ALVEOLAR CLICK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER PIPE DOUBLE BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C2"},451:{"value":"01C3","name":"LATIN LETTER RETROFLEX CLICK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"LATIN LETTER EXCLAMATION MARK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C3"},660:{"value":"0294","name":"LATIN LETTER GLOTTAL STOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0294"},1488:{"value":"05D0","name":"HEBREW LETTER ALEF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05D0"},1489:{"value":"05D1","name":"HEBREW LETTER BET","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05D1"},1490:{"value":"05D2","name":"HEBREW LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05D2"},1491:{"value":"05D3","name":"HEBREW LETTER DALET","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05D3"},1492:{"value":"05D4","name":"HEBREW LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05D4"},1493:{"value":"05D5","name":"HEBREW LETTER VAV","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05D5"},1494:{"value":"05D6","name":"HEBREW LETTER ZAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05D6"},1495:{"value":"05D7","name":"HEBREW LETTER HET","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05D7"},1496:{"value":"05D8","name":"HEBREW LETTER TET","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05D8"},1497:{"value":"05D9","name":"HEBREW LETTER YOD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05D9"},1498:{"value":"05DA","name":"HEBREW LETTER FINAL KAF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05DA"},1499:{"value":"05DB","name":"HEBREW LETTER KAF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05DB"},1500:{"value":"05DC","name":"HEBREW LETTER LAMED","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05DC"},1501:{"value":"05DD","name":"HEBREW LETTER FINAL MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05DD"},1502:{"value":"05DE","name":"HEBREW LETTER MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05DE"},1503:{"value":"05DF","name":"HEBREW LETTER FINAL NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05DF"},1504:{"value":"05E0","name":"HEBREW LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05E0"},1505:{"value":"05E1","name":"HEBREW LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05E1"},1506:{"value":"05E2","name":"HEBREW LETTER AYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05E2"},1507:{"value":"05E3","name":"HEBREW LETTER FINAL PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05E3"},1508:{"value":"05E4","name":"HEBREW LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05E4"},1509:{"value":"05E5","name":"HEBREW LETTER FINAL TSADI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05E5"},1510:{"value":"05E6","name":"HEBREW LETTER TSADI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05E6"},1511:{"value":"05E7","name":"HEBREW LETTER QOF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05E7"},1512:{"value":"05E8","name":"HEBREW LETTER RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05E8"},1513:{"value":"05E9","name":"HEBREW LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05E9"},1514:{"value":"05EA","name":"HEBREW LETTER TAV","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05EA"},1519:{"value":"05EF","name":"HEBREW YOD TRIANGLE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05EF"},1520:{"value":"05F0","name":"HEBREW LIGATURE YIDDISH DOUBLE VAV","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HEBREW LETTER DOUBLE VAV","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05F0"},1521:{"value":"05F1","name":"HEBREW LIGATURE YIDDISH VAV YOD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HEBREW LETTER VAV YOD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05F1"},1522:{"value":"05F2","name":"HEBREW LIGATURE YIDDISH DOUBLE YOD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HEBREW LETTER DOUBLE YOD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05F2"},1568:{"value":"0620","name":"ARABIC LETTER KASHMIRI YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0620"},1569:{"value":"0621","name":"ARABIC LETTER HAMZA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAMZAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0621"},1570:{"value":"0622","name":"ARABIC LETTER ALEF WITH MADDA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"0627 0653","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER MADDAH ON ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0622"},1571:{"value":"0623","name":"ARABIC LETTER ALEF WITH HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"0627 0654","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAMZAH ON ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0623"},1572:{"value":"0624","name":"ARABIC LETTER WAW WITH HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"0648 0654","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAMZAH ON WAW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0624"},1573:{"value":"0625","name":"ARABIC LETTER ALEF WITH HAMZA BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"0627 0655","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAMZAH UNDER ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0625"},1574:{"value":"0626","name":"ARABIC LETTER YEH WITH HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"064A 0654","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAMZAH ON YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0626"},1575:{"value":"0627","name":"ARABIC LETTER ALEF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0627"},1576:{"value":"0628","name":"ARABIC LETTER BEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER BAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0628"},1577:{"value":"0629","name":"ARABIC LETTER TEH MARBUTA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER TAA MARBUTAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0629"},1578:{"value":"062A","name":"ARABIC LETTER TEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER TAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062A"},1579:{"value":"062B","name":"ARABIC LETTER THEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER THAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062B"},1580:{"value":"062C","name":"ARABIC LETTER JEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062C"},1581:{"value":"062D","name":"ARABIC LETTER HAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062D"},1582:{"value":"062E","name":"ARABIC LETTER KHAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER KHAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062E"},1583:{"value":"062F","name":"ARABIC LETTER DAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062F"},1584:{"value":"0630","name":"ARABIC LETTER THAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0630"},1585:{"value":"0631","name":"ARABIC LETTER REH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER RA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0631"},1586:{"value":"0632","name":"ARABIC LETTER ZAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0632"},1587:{"value":"0633","name":"ARABIC LETTER SEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0633"},1588:{"value":"0634","name":"ARABIC LETTER SHEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0634"},1589:{"value":"0635","name":"ARABIC LETTER SAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0635"},1590:{"value":"0636","name":"ARABIC LETTER DAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0636"},1591:{"value":"0637","name":"ARABIC LETTER TAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0637"},1592:{"value":"0638","name":"ARABIC LETTER ZAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER DHAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0638"},1593:{"value":"0639","name":"ARABIC LETTER AIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0639"},1594:{"value":"063A","name":"ARABIC LETTER GHAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063A"},1595:{"value":"063B","name":"ARABIC LETTER KEHEH WITH TWO DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063B"},1596:{"value":"063C","name":"ARABIC LETTER KEHEH WITH THREE DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063C"},1597:{"value":"063D","name":"ARABIC LETTER FARSI YEH WITH INVERTED V","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063D"},1598:{"value":"063E","name":"ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063E"},1599:{"value":"063F","name":"ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063F"},1601:{"value":"0641","name":"ARABIC LETTER FEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER FA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0641"},1602:{"value":"0642","name":"ARABIC LETTER QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0642"},1603:{"value":"0643","name":"ARABIC LETTER KAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER CAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0643"},1604:{"value":"0644","name":"ARABIC LETTER LAM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0644"},1605:{"value":"0645","name":"ARABIC LETTER MEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0645"},1606:{"value":"0646","name":"ARABIC LETTER NOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0646"},1607:{"value":"0647","name":"ARABIC LETTER HEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0647"},1608:{"value":"0648","name":"ARABIC LETTER WAW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0648"},1609:{"value":"0649","name":"ARABIC LETTER ALEF MAKSURA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER ALEF MAQSURAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0649"},1610:{"value":"064A","name":"ARABIC LETTER YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064A"},1646:{"value":"066E","name":"ARABIC LETTER DOTLESS BEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u066E"},1647:{"value":"066F","name":"ARABIC LETTER DOTLESS QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u066F"},1649:{"value":"0671","name":"ARABIC LETTER ALEF WASLA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAMZAT WASL ON ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0671"},1650:{"value":"0672","name":"ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER WAVY HAMZAH ON ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0672"},1651:{"value":"0673","name":"ARABIC LETTER ALEF WITH WAVY HAMZA BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER WAVY HAMZAH UNDER ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0673"},1652:{"value":"0674","name":"ARABIC LETTER HIGH HAMZA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HIGH HAMZAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0674"},1653:{"value":"0675","name":"ARABIC LETTER HIGH HAMZA ALEF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<compat> 0627 0674","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HIGH HAMZAH ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0675"},1654:{"value":"0676","name":"ARABIC LETTER HIGH HAMZA WAW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<compat> 0648 0674","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HIGH HAMZAH WAW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0676"},1655:{"value":"0677","name":"ARABIC LETTER U WITH HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<compat> 06C7 0674","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0677"},1656:{"value":"0678","name":"ARABIC LETTER HIGH HAMZA YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<compat> 064A 0674","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HIGH HAMZAH YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0678"},1657:{"value":"0679","name":"ARABIC LETTER TTEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER TAA WITH SMALL TAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0679"},1658:{"value":"067A","name":"ARABIC LETTER TTEHEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067A"},1659:{"value":"067B","name":"ARABIC LETTER BEEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067B"},1660:{"value":"067C","name":"ARABIC LETTER TEH WITH RING","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER TAA WITH RING","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067C"},1661:{"value":"067D","name":"ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067D"},1662:{"value":"067E","name":"ARABIC LETTER PEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER TAA WITH THREE DOTS BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067E"},1663:{"value":"067F","name":"ARABIC LETTER TEHEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER TAA WITH FOUR DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067F"},1664:{"value":"0680","name":"ARABIC LETTER BEHEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER BAA WITH FOUR DOTS BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0680"},1665:{"value":"0681","name":"ARABIC LETTER HAH WITH HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAMZAH ON HAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0681"},1666:{"value":"0682","name":"ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0682"},1667:{"value":"0683","name":"ARABIC LETTER NYEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAA WITH MIDDLE TWO DOTS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0683"},1668:{"value":"0684","name":"ARABIC LETTER DYEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0684"},1669:{"value":"0685","name":"ARABIC LETTER HAH WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAA WITH THREE DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0685"},1670:{"value":"0686","name":"ARABIC LETTER TCHEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0686"},1671:{"value":"0687","name":"ARABIC LETTER TCHEHEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAA WITH MIDDLE FOUR DOTS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0687"},1672:{"value":"0688","name":"ARABIC LETTER DDAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER DAL WITH SMALL TAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0688"},1673:{"value":"0689","name":"ARABIC LETTER DAL WITH RING","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0689"},1674:{"value":"068A","name":"ARABIC LETTER DAL WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068A"},1675:{"value":"068B","name":"ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068B"},1676:{"value":"068C","name":"ARABIC LETTER DAHAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER DAL WITH TWO DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068C"},1677:{"value":"068D","name":"ARABIC LETTER DDAHAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER DAL WITH TWO DOTS BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068D"},1678:{"value":"068E","name":"ARABIC LETTER DUL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER DAL WITH THREE DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068E"},1679:{"value":"068F","name":"ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068F"},1680:{"value":"0690","name":"ARABIC LETTER DAL WITH FOUR DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0690"},1681:{"value":"0691","name":"ARABIC LETTER RREH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER RA WITH SMALL TAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0691"},1682:{"value":"0692","name":"ARABIC LETTER REH WITH SMALL V","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER RA WITH SMALL V","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0692"},1683:{"value":"0693","name":"ARABIC LETTER REH WITH RING","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER RA WITH RING","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0693"},1684:{"value":"0694","name":"ARABIC LETTER REH WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER RA WITH DOT BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0694"},1685:{"value":"0695","name":"ARABIC LETTER REH WITH SMALL V BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER RA WITH SMALL V BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0695"},1686:{"value":"0696","name":"ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0696"},1687:{"value":"0697","name":"ARABIC LETTER REH WITH TWO DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER RA WITH TWO DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0697"},1688:{"value":"0698","name":"ARABIC LETTER JEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER RA WITH THREE DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0698"},1689:{"value":"0699","name":"ARABIC LETTER REH WITH FOUR DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER RA WITH FOUR DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0699"},1690:{"value":"069A","name":"ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069A"},1691:{"value":"069B","name":"ARABIC LETTER SEEN WITH THREE DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069B"},1692:{"value":"069C","name":"ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069C"},1693:{"value":"069D","name":"ARABIC LETTER SAD WITH TWO DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069D"},1694:{"value":"069E","name":"ARABIC LETTER SAD WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069E"},1695:{"value":"069F","name":"ARABIC LETTER TAH WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069F"},1696:{"value":"06A0","name":"ARABIC LETTER AIN WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A0"},1697:{"value":"06A1","name":"ARABIC LETTER DOTLESS FEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER DOTLESS FA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A1"},1698:{"value":"06A2","name":"ARABIC LETTER FEH WITH DOT MOVED BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER FA WITH DOT MOVED BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A2"},1699:{"value":"06A3","name":"ARABIC LETTER FEH WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER FA WITH DOT BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A3"},1700:{"value":"06A4","name":"ARABIC LETTER VEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER FA WITH THREE DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A4"},1701:{"value":"06A5","name":"ARABIC LETTER FEH WITH THREE DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER FA WITH THREE DOTS BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A5"},1702:{"value":"06A6","name":"ARABIC LETTER PEHEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER FA WITH FOUR DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A6"},1703:{"value":"06A7","name":"ARABIC LETTER QAF WITH DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A7"},1704:{"value":"06A8","name":"ARABIC LETTER QAF WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A8"},1705:{"value":"06A9","name":"ARABIC LETTER KEHEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER OPEN CAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A9"},1706:{"value":"06AA","name":"ARABIC LETTER SWASH KAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER SWASH CAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AA"},1707:{"value":"06AB","name":"ARABIC LETTER KAF WITH RING","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER CAF WITH RING","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AB"},1708:{"value":"06AC","name":"ARABIC LETTER KAF WITH DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER CAF WITH DOT ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AC"},1709:{"value":"06AD","name":"ARABIC LETTER NG","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER CAF WITH THREE DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AD"},1710:{"value":"06AE","name":"ARABIC LETTER KAF WITH THREE DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER CAF WITH THREE DOTS BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AE"},1711:{"value":"06AF","name":"ARABIC LETTER GAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AF"},1712:{"value":"06B0","name":"ARABIC LETTER GAF WITH RING","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B0"},1713:{"value":"06B1","name":"ARABIC LETTER NGOEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER GAF WITH TWO DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B1"},1714:{"value":"06B2","name":"ARABIC LETTER GAF WITH TWO DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B2"},1715:{"value":"06B3","name":"ARABIC LETTER GUEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B3"},1716:{"value":"06B4","name":"ARABIC LETTER GAF WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B4"},1717:{"value":"06B5","name":"ARABIC LETTER LAM WITH SMALL V","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B5"},1718:{"value":"06B6","name":"ARABIC LETTER LAM WITH DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B6"},1719:{"value":"06B7","name":"ARABIC LETTER LAM WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B7"},1720:{"value":"06B8","name":"ARABIC LETTER LAM WITH THREE DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B8"},1721:{"value":"06B9","name":"ARABIC LETTER NOON WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B9"},1722:{"value":"06BA","name":"ARABIC LETTER NOON GHUNNA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER DOTLESS NOON","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BA"},1723:{"value":"06BB","name":"ARABIC LETTER RNOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER DOTLESS NOON WITH SMALL TAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BB"},1724:{"value":"06BC","name":"ARABIC LETTER NOON WITH RING","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BC"},1725:{"value":"06BD","name":"ARABIC LETTER NOON WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BD"},1726:{"value":"06BE","name":"ARABIC LETTER HEH DOACHASHMEE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER KNOTTED HA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BE"},1727:{"value":"06BF","name":"ARABIC LETTER TCHEH WITH DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BF"},1728:{"value":"06C0","name":"ARABIC LETTER HEH WITH YEH ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"06D5 0654","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAMZAH ON HA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C0"},1729:{"value":"06C1","name":"ARABIC LETTER HEH GOAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HA GOAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C1"},1730:{"value":"06C2","name":"ARABIC LETTER HEH GOAL WITH HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"06C1 0654","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAMZAH ON HA GOAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C2"},1731:{"value":"06C3","name":"ARABIC LETTER TEH MARBUTA GOAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER TAA MARBUTAH GOAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C3"},1732:{"value":"06C4","name":"ARABIC LETTER WAW WITH RING","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C4"},1733:{"value":"06C5","name":"ARABIC LETTER KIRGHIZ OE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER WAW WITH BAR","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C5"},1734:{"value":"06C6","name":"ARABIC LETTER OE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER WAW WITH SMALL V","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C6"},1735:{"value":"06C7","name":"ARABIC LETTER U","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER WAW WITH DAMMAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C7"},1736:{"value":"06C8","name":"ARABIC LETTER YU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER WAW WITH ALEF ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C8"},1737:{"value":"06C9","name":"ARABIC LETTER KIRGHIZ YU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER WAW WITH INVERTED SMALL V","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C9"},1738:{"value":"06CA","name":"ARABIC LETTER WAW WITH TWO DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CA"},1739:{"value":"06CB","name":"ARABIC LETTER VE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER WAW WITH THREE DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CB"},1740:{"value":"06CC","name":"ARABIC LETTER FARSI YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER DOTLESS YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CC"},1741:{"value":"06CD","name":"ARABIC LETTER YEH WITH TAIL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER YA WITH TAIL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CD"},1742:{"value":"06CE","name":"ARABIC LETTER YEH WITH SMALL V","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER YA WITH SMALL V","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CE"},1743:{"value":"06CF","name":"ARABIC LETTER WAW WITH DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CF"},1744:{"value":"06D0","name":"ARABIC LETTER E","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D0"},1745:{"value":"06D1","name":"ARABIC LETTER YEH WITH THREE DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER YA WITH THREE DOTS BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D1"},1746:{"value":"06D2","name":"ARABIC LETTER YEH BARREE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER YA BARREE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D2"},1747:{"value":"06D3","name":"ARABIC LETTER YEH BARREE WITH HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"06D2 0654","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER HAMZAH ON YA BARREE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D3"},1749:{"value":"06D5","name":"ARABIC LETTER AE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D5"},1774:{"value":"06EE","name":"ARABIC LETTER DAL WITH INVERTED V","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06EE"},1775:{"value":"06EF","name":"ARABIC LETTER REH WITH INVERTED V","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06EF"},1786:{"value":"06FA","name":"ARABIC LETTER SHEEN WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06FA"},1787:{"value":"06FB","name":"ARABIC LETTER DAD WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06FB"},1788:{"value":"06FC","name":"ARABIC LETTER GHAIN WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06FC"},1791:{"value":"06FF","name":"ARABIC LETTER HEH WITH INVERTED V","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06FF"},1808:{"value":"0710","name":"SYRIAC LETTER ALAPH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0710"},1810:{"value":"0712","name":"SYRIAC LETTER BETH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0712"},1811:{"value":"0713","name":"SYRIAC LETTER GAMAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0713"},1812:{"value":"0714","name":"SYRIAC LETTER GAMAL GARSHUNI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0714"},1813:{"value":"0715","name":"SYRIAC LETTER DALATH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0715"},1814:{"value":"0716","name":"SYRIAC LETTER DOTLESS DALATH RISH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0716"},1815:{"value":"0717","name":"SYRIAC LETTER HE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0717"},1816:{"value":"0718","name":"SYRIAC LETTER WAW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0718"},1817:{"value":"0719","name":"SYRIAC LETTER ZAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0719"},1818:{"value":"071A","name":"SYRIAC LETTER HETH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071A"},1819:{"value":"071B","name":"SYRIAC LETTER TETH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071B"},1820:{"value":"071C","name":"SYRIAC LETTER TETH GARSHUNI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071C"},1821:{"value":"071D","name":"SYRIAC LETTER YUDH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071D"},1822:{"value":"071E","name":"SYRIAC LETTER YUDH HE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071E"},1823:{"value":"071F","name":"SYRIAC LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071F"},1824:{"value":"0720","name":"SYRIAC LETTER LAMADH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0720"},1825:{"value":"0721","name":"SYRIAC LETTER MIM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0721"},1826:{"value":"0722","name":"SYRIAC LETTER NUN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0722"},1827:{"value":"0723","name":"SYRIAC LETTER SEMKATH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0723"},1828:{"value":"0724","name":"SYRIAC LETTER FINAL SEMKATH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0724"},1829:{"value":"0725","name":"SYRIAC LETTER E","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0725"},1830:{"value":"0726","name":"SYRIAC LETTER PE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0726"},1831:{"value":"0727","name":"SYRIAC LETTER REVERSED PE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0727"},1832:{"value":"0728","name":"SYRIAC LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0728"},1833:{"value":"0729","name":"SYRIAC LETTER QAPH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0729"},1834:{"value":"072A","name":"SYRIAC LETTER RISH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072A"},1835:{"value":"072B","name":"SYRIAC LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072B"},1836:{"value":"072C","name":"SYRIAC LETTER TAW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072C"},1837:{"value":"072D","name":"SYRIAC LETTER PERSIAN BHETH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072D"},1838:{"value":"072E","name":"SYRIAC LETTER PERSIAN GHAMAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072E"},1839:{"value":"072F","name":"SYRIAC LETTER PERSIAN DHALATH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072F"},1869:{"value":"074D","name":"SYRIAC LETTER SOGDIAN ZHAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u074D"},1870:{"value":"074E","name":"SYRIAC LETTER SOGDIAN KHAPH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u074E"},1871:{"value":"074F","name":"SYRIAC LETTER SOGDIAN FE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u074F"},1872:{"value":"0750","name":"ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0750"},1873:{"value":"0751","name":"ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0751"},1874:{"value":"0752","name":"ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0752"},1875:{"value":"0753","name":"ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0753"},1876:{"value":"0754","name":"ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0754"},1877:{"value":"0755","name":"ARABIC LETTER BEH WITH INVERTED SMALL V BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0755"},1878:{"value":"0756","name":"ARABIC LETTER BEH WITH SMALL V","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0756"},1879:{"value":"0757","name":"ARABIC LETTER HAH WITH TWO DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0757"},1880:{"value":"0758","name":"ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0758"},1881:{"value":"0759","name":"ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0759"},1882:{"value":"075A","name":"ARABIC LETTER DAL WITH INVERTED SMALL V BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u075A"},1883:{"value":"075B","name":"ARABIC LETTER REH WITH STROKE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u075B"},1884:{"value":"075C","name":"ARABIC LETTER SEEN WITH FOUR DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u075C"},1885:{"value":"075D","name":"ARABIC LETTER AIN WITH TWO DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u075D"},1886:{"value":"075E","name":"ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u075E"},1887:{"value":"075F","name":"ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u075F"},1888:{"value":"0760","name":"ARABIC LETTER FEH WITH TWO DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0760"},1889:{"value":"0761","name":"ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0761"},1890:{"value":"0762","name":"ARABIC LETTER KEHEH WITH DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0762"},1891:{"value":"0763","name":"ARABIC LETTER KEHEH WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0763"},1892:{"value":"0764","name":"ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0764"},1893:{"value":"0765","name":"ARABIC LETTER MEEM WITH DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0765"},1894:{"value":"0766","name":"ARABIC LETTER MEEM WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0766"},1895:{"value":"0767","name":"ARABIC LETTER NOON WITH TWO DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0767"},1896:{"value":"0768","name":"ARABIC LETTER NOON WITH SMALL TAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0768"},1897:{"value":"0769","name":"ARABIC LETTER NOON WITH SMALL V","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0769"},1898:{"value":"076A","name":"ARABIC LETTER LAM WITH BAR","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u076A"},1899:{"value":"076B","name":"ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u076B"},1900:{"value":"076C","name":"ARABIC LETTER REH WITH HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u076C"},1901:{"value":"076D","name":"ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u076D"},1902:{"value":"076E","name":"ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u076E"},1903:{"value":"076F","name":"ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u076F"},1904:{"value":"0770","name":"ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0770"},1905:{"value":"0771","name":"ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0771"},1906:{"value":"0772","name":"ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0772"},1907:{"value":"0773","name":"ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0773"},1908:{"value":"0774","name":"ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0774"},1909:{"value":"0775","name":"ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0775"},1910:{"value":"0776","name":"ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0776"},1911:{"value":"0777","name":"ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0777"},1912:{"value":"0778","name":"ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0778"},1913:{"value":"0779","name":"ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0779"},1914:{"value":"077A","name":"ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u077A"},1915:{"value":"077B","name":"ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u077B"},1916:{"value":"077C","name":"ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u077C"},1917:{"value":"077D","name":"ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u077D"},1918:{"value":"077E","name":"ARABIC LETTER SEEN WITH INVERTED V","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u077E"},1919:{"value":"077F","name":"ARABIC LETTER KAF WITH TWO DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u077F"},1920:{"value":"0780","name":"THAANA LETTER HAA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0780"},1921:{"value":"0781","name":"THAANA LETTER SHAVIYANI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0781"},1922:{"value":"0782","name":"THAANA LETTER NOONU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0782"},1923:{"value":"0783","name":"THAANA LETTER RAA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0783"},1924:{"value":"0784","name":"THAANA LETTER BAA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0784"},1925:{"value":"0785","name":"THAANA LETTER LHAVIYANI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0785"},1926:{"value":"0786","name":"THAANA LETTER KAAFU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0786"},1927:{"value":"0787","name":"THAANA LETTER ALIFU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0787"},1928:{"value":"0788","name":"THAANA LETTER VAAVU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0788"},1929:{"value":"0789","name":"THAANA LETTER MEEMU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0789"},1930:{"value":"078A","name":"THAANA LETTER FAAFU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u078A"},1931:{"value":"078B","name":"THAANA LETTER DHAALU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u078B"},1932:{"value":"078C","name":"THAANA LETTER THAA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u078C"},1933:{"value":"078D","name":"THAANA LETTER LAAMU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u078D"},1934:{"value":"078E","name":"THAANA LETTER GAAFU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u078E"},1935:{"value":"078F","name":"THAANA LETTER GNAVIYANI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u078F"},1936:{"value":"0790","name":"THAANA LETTER SEENU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0790"},1937:{"value":"0791","name":"THAANA LETTER DAVIYANI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0791"},1938:{"value":"0792","name":"THAANA LETTER ZAVIYANI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0792"},1939:{"value":"0793","name":"THAANA LETTER TAVIYANI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0793"},1940:{"value":"0794","name":"THAANA LETTER YAA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0794"},1941:{"value":"0795","name":"THAANA LETTER PAVIYANI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0795"},1942:{"value":"0796","name":"THAANA LETTER JAVIYANI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0796"},1943:{"value":"0797","name":"THAANA LETTER CHAVIYANI","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0797"},1944:{"value":"0798","name":"THAANA LETTER TTAA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0798"},1945:{"value":"0799","name":"THAANA LETTER HHAA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0799"},1946:{"value":"079A","name":"THAANA LETTER KHAA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u079A"},1947:{"value":"079B","name":"THAANA LETTER THAALU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u079B"},1948:{"value":"079C","name":"THAANA LETTER ZAA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u079C"},1949:{"value":"079D","name":"THAANA LETTER SHEENU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u079D"},1950:{"value":"079E","name":"THAANA LETTER SAADHU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u079E"},1951:{"value":"079F","name":"THAANA LETTER DAADHU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u079F"},1952:{"value":"07A0","name":"THAANA LETTER TO","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07A0"},1953:{"value":"07A1","name":"THAANA LETTER ZO","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07A1"},1954:{"value":"07A2","name":"THAANA LETTER AINU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07A2"},1955:{"value":"07A3","name":"THAANA LETTER GHAINU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07A3"},1956:{"value":"07A4","name":"THAANA LETTER QAAFU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07A4"},1957:{"value":"07A5","name":"THAANA LETTER WAAVU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07A5"},1969:{"value":"07B1","name":"THAANA LETTER NAA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07B1"},1994:{"value":"07CA","name":"NKO LETTER A","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07CA"},1995:{"value":"07CB","name":"NKO LETTER EE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07CB"},1996:{"value":"07CC","name":"NKO LETTER I","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07CC"},1997:{"value":"07CD","name":"NKO LETTER E","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07CD"},1998:{"value":"07CE","name":"NKO LETTER U","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07CE"},1999:{"value":"07CF","name":"NKO LETTER OO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07CF"},2000:{"value":"07D0","name":"NKO LETTER O","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07D0"},2001:{"value":"07D1","name":"NKO LETTER DAGBASINNA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07D1"},2002:{"value":"07D2","name":"NKO LETTER N","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07D2"},2003:{"value":"07D3","name":"NKO LETTER BA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07D3"},2004:{"value":"07D4","name":"NKO LETTER PA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07D4"},2005:{"value":"07D5","name":"NKO LETTER TA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07D5"},2006:{"value":"07D6","name":"NKO LETTER JA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07D6"},2007:{"value":"07D7","name":"NKO LETTER CHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07D7"},2008:{"value":"07D8","name":"NKO LETTER DA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07D8"},2009:{"value":"07D9","name":"NKO LETTER RA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07D9"},2010:{"value":"07DA","name":"NKO LETTER RRA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07DA"},2011:{"value":"07DB","name":"NKO LETTER SA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07DB"},2012:{"value":"07DC","name":"NKO LETTER GBA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07DC"},2013:{"value":"07DD","name":"NKO LETTER FA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07DD"},2014:{"value":"07DE","name":"NKO LETTER KA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07DE"},2015:{"value":"07DF","name":"NKO LETTER LA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07DF"},2016:{"value":"07E0","name":"NKO LETTER NA WOLOSO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07E0"},2017:{"value":"07E1","name":"NKO LETTER MA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07E1"},2018:{"value":"07E2","name":"NKO LETTER NYA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07E2"},2019:{"value":"07E3","name":"NKO LETTER NA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07E3"},2020:{"value":"07E4","name":"NKO LETTER HA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07E4"},2021:{"value":"07E5","name":"NKO LETTER WA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07E5"},2022:{"value":"07E6","name":"NKO LETTER YA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07E6"},2023:{"value":"07E7","name":"NKO LETTER NYA WOLOSO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07E7"},2024:{"value":"07E8","name":"NKO LETTER JONA JA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07E8"},2025:{"value":"07E9","name":"NKO LETTER JONA CHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07E9"},2026:{"value":"07EA","name":"NKO LETTER JONA RA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07EA"},2048:{"value":"0800","name":"SAMARITAN LETTER ALAF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0800"},2049:{"value":"0801","name":"SAMARITAN LETTER BIT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0801"},2050:{"value":"0802","name":"SAMARITAN LETTER GAMAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0802"},2051:{"value":"0803","name":"SAMARITAN LETTER DALAT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0803"},2052:{"value":"0804","name":"SAMARITAN LETTER IY","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0804"},2053:{"value":"0805","name":"SAMARITAN LETTER BAA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0805"},2054:{"value":"0806","name":"SAMARITAN LETTER ZEN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0806"},2055:{"value":"0807","name":"SAMARITAN LETTER IT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0807"},2056:{"value":"0808","name":"SAMARITAN LETTER TIT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0808"},2057:{"value":"0809","name":"SAMARITAN LETTER YUT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0809"},2058:{"value":"080A","name":"SAMARITAN LETTER KAAF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080A"},2059:{"value":"080B","name":"SAMARITAN LETTER LABAT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080B"},2060:{"value":"080C","name":"SAMARITAN LETTER MIM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080C"},2061:{"value":"080D","name":"SAMARITAN LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080D"},2062:{"value":"080E","name":"SAMARITAN LETTER SINGAAT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080E"},2063:{"value":"080F","name":"SAMARITAN LETTER IN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080F"},2064:{"value":"0810","name":"SAMARITAN LETTER FI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0810"},2065:{"value":"0811","name":"SAMARITAN LETTER TSAADIY","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0811"},2066:{"value":"0812","name":"SAMARITAN LETTER QUF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0812"},2067:{"value":"0813","name":"SAMARITAN LETTER RISH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0813"},2068:{"value":"0814","name":"SAMARITAN LETTER SHAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0814"},2069:{"value":"0815","name":"SAMARITAN LETTER TAAF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0815"},2112:{"value":"0840","name":"MANDAIC LETTER HALQA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0840"},2113:{"value":"0841","name":"MANDAIC LETTER AB","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0841"},2114:{"value":"0842","name":"MANDAIC LETTER AG","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0842"},2115:{"value":"0843","name":"MANDAIC LETTER AD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0843"},2116:{"value":"0844","name":"MANDAIC LETTER AH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0844"},2117:{"value":"0845","name":"MANDAIC LETTER USHENNA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0845"},2118:{"value":"0846","name":"MANDAIC LETTER AZ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0846"},2119:{"value":"0847","name":"MANDAIC LETTER IT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0847"},2120:{"value":"0848","name":"MANDAIC LETTER ATT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0848"},2121:{"value":"0849","name":"MANDAIC LETTER AKSA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0849"},2122:{"value":"084A","name":"MANDAIC LETTER AK","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084A"},2123:{"value":"084B","name":"MANDAIC LETTER AL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084B"},2124:{"value":"084C","name":"MANDAIC LETTER AM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084C"},2125:{"value":"084D","name":"MANDAIC LETTER AN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084D"},2126:{"value":"084E","name":"MANDAIC LETTER AS","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084E"},2127:{"value":"084F","name":"MANDAIC LETTER IN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084F"},2128:{"value":"0850","name":"MANDAIC LETTER AP","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0850"},2129:{"value":"0851","name":"MANDAIC LETTER ASZ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0851"},2130:{"value":"0852","name":"MANDAIC LETTER AQ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0852"},2131:{"value":"0853","name":"MANDAIC LETTER AR","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0853"},2132:{"value":"0854","name":"MANDAIC LETTER ASH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0854"},2133:{"value":"0855","name":"MANDAIC LETTER AT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0855"},2134:{"value":"0856","name":"MANDAIC LETTER DUSHENNA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0856"},2135:{"value":"0857","name":"MANDAIC LETTER KAD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0857"},2136:{"value":"0858","name":"MANDAIC LETTER AIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0858"},2144:{"value":"0860","name":"SYRIAC LETTER MALAYALAM NGA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0860"},2145:{"value":"0861","name":"SYRIAC LETTER MALAYALAM JA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0861"},2146:{"value":"0862","name":"SYRIAC LETTER MALAYALAM NYA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0862"},2147:{"value":"0863","name":"SYRIAC LETTER MALAYALAM TTA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0863"},2148:{"value":"0864","name":"SYRIAC LETTER MALAYALAM NNA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0864"},2149:{"value":"0865","name":"SYRIAC LETTER MALAYALAM NNNA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0865"},2150:{"value":"0866","name":"SYRIAC LETTER MALAYALAM BHA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0866"},2151:{"value":"0867","name":"SYRIAC LETTER MALAYALAM RA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0867"},2152:{"value":"0868","name":"SYRIAC LETTER MALAYALAM LLA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0868"},2153:{"value":"0869","name":"SYRIAC LETTER MALAYALAM LLLA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0869"},2154:{"value":"086A","name":"SYRIAC LETTER MALAYALAM SSA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u086A"},2208:{"value":"08A0","name":"ARABIC LETTER BEH WITH SMALL V BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08A0"},2209:{"value":"08A1","name":"ARABIC LETTER BEH WITH HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08A1"},2210:{"value":"08A2","name":"ARABIC LETTER JEEM WITH TWO DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08A2"},2211:{"value":"08A3","name":"ARABIC LETTER TAH WITH TWO DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08A3"},2212:{"value":"08A4","name":"ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08A4"},2213:{"value":"08A5","name":"ARABIC LETTER QAF WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08A5"},2214:{"value":"08A6","name":"ARABIC LETTER LAM WITH DOUBLE BAR","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08A6"},2215:{"value":"08A7","name":"ARABIC LETTER MEEM WITH THREE DOTS ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08A7"},2216:{"value":"08A8","name":"ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08A8"},2217:{"value":"08A9","name":"ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08A9"},2218:{"value":"08AA","name":"ARABIC LETTER REH WITH LOOP","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08AA"},2219:{"value":"08AB","name":"ARABIC LETTER WAW WITH DOT WITHIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08AB"},2220:{"value":"08AC","name":"ARABIC LETTER ROHINGYA YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08AC"},2221:{"value":"08AD","name":"ARABIC LETTER LOW ALEF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08AD"},2222:{"value":"08AE","name":"ARABIC LETTER DAL WITH THREE DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08AE"},2223:{"value":"08AF","name":"ARABIC LETTER SAD WITH THREE DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08AF"},2224:{"value":"08B0","name":"ARABIC LETTER GAF WITH INVERTED STROKE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08B0"},2225:{"value":"08B1","name":"ARABIC LETTER STRAIGHT WAW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08B1"},2226:{"value":"08B2","name":"ARABIC LETTER ZAIN WITH INVERTED V ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08B2"},2227:{"value":"08B3","name":"ARABIC LETTER AIN WITH THREE DOTS BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08B3"},2228:{"value":"08B4","name":"ARABIC LETTER KAF WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08B4"},2230:{"value":"08B6","name":"ARABIC LETTER BEH WITH SMALL MEEM ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08B6"},2231:{"value":"08B7","name":"ARABIC LETTER PEH WITH SMALL MEEM ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08B7"},2232:{"value":"08B8","name":"ARABIC LETTER TEH WITH SMALL TEH ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08B8"},2233:{"value":"08B9","name":"ARABIC LETTER REH WITH SMALL NOON ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08B9"},2234:{"value":"08BA","name":"ARABIC LETTER YEH WITH TWO DOTS BELOW AND SMALL NOON ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08BA"},2235:{"value":"08BB","name":"ARABIC LETTER AFRICAN FEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08BB"},2236:{"value":"08BC","name":"ARABIC LETTER AFRICAN QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08BC"},2237:{"value":"08BD","name":"ARABIC LETTER AFRICAN NOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08BD"},2308:{"value":"0904","name":"DEVANAGARI LETTER SHORT A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0904"},2309:{"value":"0905","name":"DEVANAGARI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0905"},2310:{"value":"0906","name":"DEVANAGARI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0906"},2311:{"value":"0907","name":"DEVANAGARI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0907"},2312:{"value":"0908","name":"DEVANAGARI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0908"},2313:{"value":"0909","name":"DEVANAGARI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0909"},2314:{"value":"090A","name":"DEVANAGARI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090A"},2315:{"value":"090B","name":"DEVANAGARI LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090B"},2316:{"value":"090C","name":"DEVANAGARI LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090C"},2317:{"value":"090D","name":"DEVANAGARI LETTER CANDRA E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090D"},2318:{"value":"090E","name":"DEVANAGARI LETTER SHORT E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090E"},2319:{"value":"090F","name":"DEVANAGARI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090F"},2320:{"value":"0910","name":"DEVANAGARI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0910"},2321:{"value":"0911","name":"DEVANAGARI LETTER CANDRA O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0911"},2322:{"value":"0912","name":"DEVANAGARI LETTER SHORT O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0912"},2323:{"value":"0913","name":"DEVANAGARI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0913"},2324:{"value":"0914","name":"DEVANAGARI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0914"},2325:{"value":"0915","name":"DEVANAGARI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0915"},2326:{"value":"0916","name":"DEVANAGARI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0916"},2327:{"value":"0917","name":"DEVANAGARI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0917"},2328:{"value":"0918","name":"DEVANAGARI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0918"},2329:{"value":"0919","name":"DEVANAGARI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0919"},2330:{"value":"091A","name":"DEVANAGARI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u091A"},2331:{"value":"091B","name":"DEVANAGARI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u091B"},2332:{"value":"091C","name":"DEVANAGARI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u091C"},2333:{"value":"091D","name":"DEVANAGARI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u091D"},2334:{"value":"091E","name":"DEVANAGARI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u091E"},2335:{"value":"091F","name":"DEVANAGARI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u091F"},2336:{"value":"0920","name":"DEVANAGARI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0920"},2337:{"value":"0921","name":"DEVANAGARI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0921"},2338:{"value":"0922","name":"DEVANAGARI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0922"},2339:{"value":"0923","name":"DEVANAGARI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0923"},2340:{"value":"0924","name":"DEVANAGARI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0924"},2341:{"value":"0925","name":"DEVANAGARI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0925"},2342:{"value":"0926","name":"DEVANAGARI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0926"},2343:{"value":"0927","name":"DEVANAGARI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0927"},2344:{"value":"0928","name":"DEVANAGARI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0928"},2345:{"value":"0929","name":"DEVANAGARI LETTER NNNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0928 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0929"},2346:{"value":"092A","name":"DEVANAGARI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092A"},2347:{"value":"092B","name":"DEVANAGARI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092B"},2348:{"value":"092C","name":"DEVANAGARI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092C"},2349:{"value":"092D","name":"DEVANAGARI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092D"},2350:{"value":"092E","name":"DEVANAGARI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092E"},2351:{"value":"092F","name":"DEVANAGARI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092F"},2352:{"value":"0930","name":"DEVANAGARI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0930"},2353:{"value":"0931","name":"DEVANAGARI LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0930 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0931"},2354:{"value":"0932","name":"DEVANAGARI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0932"},2355:{"value":"0933","name":"DEVANAGARI LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0933"},2356:{"value":"0934","name":"DEVANAGARI LETTER LLLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0933 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0934"},2357:{"value":"0935","name":"DEVANAGARI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0935"},2358:{"value":"0936","name":"DEVANAGARI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0936"},2359:{"value":"0937","name":"DEVANAGARI LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0937"},2360:{"value":"0938","name":"DEVANAGARI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0938"},2361:{"value":"0939","name":"DEVANAGARI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0939"},2365:{"value":"093D","name":"DEVANAGARI SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u093D"},2384:{"value":"0950","name":"DEVANAGARI OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0950"},2392:{"value":"0958","name":"DEVANAGARI LETTER QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0915 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0958"},2393:{"value":"0959","name":"DEVANAGARI LETTER KHHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0916 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0959"},2394:{"value":"095A","name":"DEVANAGARI LETTER GHHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0917 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u095A"},2395:{"value":"095B","name":"DEVANAGARI LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"091C 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u095B"},2396:{"value":"095C","name":"DEVANAGARI LETTER DDDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0921 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u095C"},2397:{"value":"095D","name":"DEVANAGARI LETTER RHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0922 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u095D"},2398:{"value":"095E","name":"DEVANAGARI LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"092B 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u095E"},2399:{"value":"095F","name":"DEVANAGARI LETTER YYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"092F 093C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u095F"},2400:{"value":"0960","name":"DEVANAGARI LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0960"},2401:{"value":"0961","name":"DEVANAGARI LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0961"},2418:{"value":"0972","name":"DEVANAGARI LETTER CANDRA A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0972"},2419:{"value":"0973","name":"DEVANAGARI LETTER OE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0973"},2420:{"value":"0974","name":"DEVANAGARI LETTER OOE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0974"},2421:{"value":"0975","name":"DEVANAGARI LETTER AW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0975"},2422:{"value":"0976","name":"DEVANAGARI LETTER UE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0976"},2423:{"value":"0977","name":"DEVANAGARI LETTER UUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0977"},2424:{"value":"0978","name":"DEVANAGARI LETTER MARWARI DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0978"},2425:{"value":"0979","name":"DEVANAGARI LETTER ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0979"},2426:{"value":"097A","name":"DEVANAGARI LETTER HEAVY YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u097A"},2427:{"value":"097B","name":"DEVANAGARI LETTER GGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u097B"},2428:{"value":"097C","name":"DEVANAGARI LETTER JJA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u097C"},2429:{"value":"097D","name":"DEVANAGARI LETTER GLOTTAL STOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u097D"},2430:{"value":"097E","name":"DEVANAGARI LETTER DDDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u097E"},2431:{"value":"097F","name":"DEVANAGARI LETTER BBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u097F"},2432:{"value":"0980","name":"BENGALI ANJI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0980"},2437:{"value":"0985","name":"BENGALI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0985"},2438:{"value":"0986","name":"BENGALI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0986"},2439:{"value":"0987","name":"BENGALI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0987"},2440:{"value":"0988","name":"BENGALI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0988"},2441:{"value":"0989","name":"BENGALI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0989"},2442:{"value":"098A","name":"BENGALI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u098A"},2443:{"value":"098B","name":"BENGALI LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u098B"},2444:{"value":"098C","name":"BENGALI LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u098C"},2447:{"value":"098F","name":"BENGALI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u098F"},2448:{"value":"0990","name":"BENGALI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0990"},2451:{"value":"0993","name":"BENGALI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0993"},2452:{"value":"0994","name":"BENGALI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0994"},2453:{"value":"0995","name":"BENGALI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0995"},2454:{"value":"0996","name":"BENGALI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0996"},2455:{"value":"0997","name":"BENGALI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0997"},2456:{"value":"0998","name":"BENGALI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0998"},2457:{"value":"0999","name":"BENGALI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0999"},2458:{"value":"099A","name":"BENGALI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099A"},2459:{"value":"099B","name":"BENGALI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099B"},2460:{"value":"099C","name":"BENGALI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099C"},2461:{"value":"099D","name":"BENGALI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099D"},2462:{"value":"099E","name":"BENGALI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099E"},2463:{"value":"099F","name":"BENGALI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099F"},2464:{"value":"09A0","name":"BENGALI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A0"},2465:{"value":"09A1","name":"BENGALI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A1"},2466:{"value":"09A2","name":"BENGALI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A2"},2467:{"value":"09A3","name":"BENGALI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A3"},2468:{"value":"09A4","name":"BENGALI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A4"},2469:{"value":"09A5","name":"BENGALI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A5"},2470:{"value":"09A6","name":"BENGALI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A6"},2471:{"value":"09A7","name":"BENGALI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A7"},2472:{"value":"09A8","name":"BENGALI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A8"},2474:{"value":"09AA","name":"BENGALI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AA"},2475:{"value":"09AB","name":"BENGALI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AB"},2476:{"value":"09AC","name":"BENGALI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AC"},2477:{"value":"09AD","name":"BENGALI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AD"},2478:{"value":"09AE","name":"BENGALI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AE"},2479:{"value":"09AF","name":"BENGALI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AF"},2480:{"value":"09B0","name":"BENGALI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B0"},2482:{"value":"09B2","name":"BENGALI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B2"},2486:{"value":"09B6","name":"BENGALI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B6"},2487:{"value":"09B7","name":"BENGALI LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B7"},2488:{"value":"09B8","name":"BENGALI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B8"},2489:{"value":"09B9","name":"BENGALI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B9"},2493:{"value":"09BD","name":"BENGALI SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09BD"},2510:{"value":"09CE","name":"BENGALI LETTER KHANDA TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09CE"},2524:{"value":"09DC","name":"BENGALI LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"09A1 09BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09DC"},2525:{"value":"09DD","name":"BENGALI LETTER RHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"09A2 09BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09DD"},2527:{"value":"09DF","name":"BENGALI LETTER YYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"09AF 09BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09DF"},2528:{"value":"09E0","name":"BENGALI LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09E0"},2529:{"value":"09E1","name":"BENGALI LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09E1"},2544:{"value":"09F0","name":"BENGALI LETTER RA WITH MIDDLE DIAGONAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09F0"},2545:{"value":"09F1","name":"BENGALI LETTER RA WITH LOWER DIAGONAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"BENGALI LETTER VA WITH LOWER DIAGONAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09F1"},2556:{"value":"09FC","name":"BENGALI LETTER VEDIC ANUSVARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09FC"},2565:{"value":"0A05","name":"GURMUKHI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A05"},2566:{"value":"0A06","name":"GURMUKHI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A06"},2567:{"value":"0A07","name":"GURMUKHI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A07"},2568:{"value":"0A08","name":"GURMUKHI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A08"},2569:{"value":"0A09","name":"GURMUKHI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A09"},2570:{"value":"0A0A","name":"GURMUKHI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A0A"},2575:{"value":"0A0F","name":"GURMUKHI LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A0F"},2576:{"value":"0A10","name":"GURMUKHI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A10"},2579:{"value":"0A13","name":"GURMUKHI LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A13"},2580:{"value":"0A14","name":"GURMUKHI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A14"},2581:{"value":"0A15","name":"GURMUKHI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A15"},2582:{"value":"0A16","name":"GURMUKHI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A16"},2583:{"value":"0A17","name":"GURMUKHI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A17"},2584:{"value":"0A18","name":"GURMUKHI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A18"},2585:{"value":"0A19","name":"GURMUKHI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A19"},2586:{"value":"0A1A","name":"GURMUKHI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1A"},2587:{"value":"0A1B","name":"GURMUKHI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1B"},2588:{"value":"0A1C","name":"GURMUKHI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1C"},2589:{"value":"0A1D","name":"GURMUKHI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1D"},2590:{"value":"0A1E","name":"GURMUKHI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1E"},2591:{"value":"0A1F","name":"GURMUKHI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1F"},2592:{"value":"0A20","name":"GURMUKHI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A20"},2593:{"value":"0A21","name":"GURMUKHI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A21"},2594:{"value":"0A22","name":"GURMUKHI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A22"},2595:{"value":"0A23","name":"GURMUKHI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A23"},2596:{"value":"0A24","name":"GURMUKHI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A24"},2597:{"value":"0A25","name":"GURMUKHI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A25"},2598:{"value":"0A26","name":"GURMUKHI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A26"},2599:{"value":"0A27","name":"GURMUKHI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A27"},2600:{"value":"0A28","name":"GURMUKHI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A28"},2602:{"value":"0A2A","name":"GURMUKHI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2A"},2603:{"value":"0A2B","name":"GURMUKHI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2B"},2604:{"value":"0A2C","name":"GURMUKHI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2C"},2605:{"value":"0A2D","name":"GURMUKHI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2D"},2606:{"value":"0A2E","name":"GURMUKHI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2E"},2607:{"value":"0A2F","name":"GURMUKHI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2F"},2608:{"value":"0A30","name":"GURMUKHI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A30"},2610:{"value":"0A32","name":"GURMUKHI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A32"},2611:{"value":"0A33","name":"GURMUKHI LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0A32 0A3C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A33"},2613:{"value":"0A35","name":"GURMUKHI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A35"},2614:{"value":"0A36","name":"GURMUKHI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0A38 0A3C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A36"},2616:{"value":"0A38","name":"GURMUKHI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A38"},2617:{"value":"0A39","name":"GURMUKHI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A39"},2649:{"value":"0A59","name":"GURMUKHI LETTER KHHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0A16 0A3C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A59"},2650:{"value":"0A5A","name":"GURMUKHI LETTER GHHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0A17 0A3C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A5A"},2651:{"value":"0A5B","name":"GURMUKHI LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0A1C 0A3C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A5B"},2652:{"value":"0A5C","name":"GURMUKHI LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A5C"},2654:{"value":"0A5E","name":"GURMUKHI LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0A2B 0A3C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A5E"},2674:{"value":"0A72","name":"GURMUKHI IRI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A72"},2675:{"value":"0A73","name":"GURMUKHI URA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A73"},2676:{"value":"0A74","name":"GURMUKHI EK ONKAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A74"},2693:{"value":"0A85","name":"GUJARATI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A85"},2694:{"value":"0A86","name":"GUJARATI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A86"},2695:{"value":"0A87","name":"GUJARATI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A87"},2696:{"value":"0A88","name":"GUJARATI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A88"},2697:{"value":"0A89","name":"GUJARATI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A89"},2698:{"value":"0A8A","name":"GUJARATI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8A"},2699:{"value":"0A8B","name":"GUJARATI LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8B"},2700:{"value":"0A8C","name":"GUJARATI LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8C"},2701:{"value":"0A8D","name":"GUJARATI VOWEL CANDRA E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8D"},2703:{"value":"0A8F","name":"GUJARATI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8F"},2704:{"value":"0A90","name":"GUJARATI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A90"},2705:{"value":"0A91","name":"GUJARATI VOWEL CANDRA O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A91"},2707:{"value":"0A93","name":"GUJARATI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A93"},2708:{"value":"0A94","name":"GUJARATI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A94"},2709:{"value":"0A95","name":"GUJARATI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A95"},2710:{"value":"0A96","name":"GUJARATI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A96"},2711:{"value":"0A97","name":"GUJARATI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A97"},2712:{"value":"0A98","name":"GUJARATI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A98"},2713:{"value":"0A99","name":"GUJARATI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A99"},2714:{"value":"0A9A","name":"GUJARATI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A9A"},2715:{"value":"0A9B","name":"GUJARATI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A9B"},2716:{"value":"0A9C","name":"GUJARATI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A9C"},2717:{"value":"0A9D","name":"GUJARATI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A9D"},2718:{"value":"0A9E","name":"GUJARATI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A9E"},2719:{"value":"0A9F","name":"GUJARATI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A9F"},2720:{"value":"0AA0","name":"GUJARATI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AA0"},2721:{"value":"0AA1","name":"GUJARATI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AA1"},2722:{"value":"0AA2","name":"GUJARATI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AA2"},2723:{"value":"0AA3","name":"GUJARATI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AA3"},2724:{"value":"0AA4","name":"GUJARATI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AA4"},2725:{"value":"0AA5","name":"GUJARATI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AA5"},2726:{"value":"0AA6","name":"GUJARATI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AA6"},2727:{"value":"0AA7","name":"GUJARATI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AA7"},2728:{"value":"0AA8","name":"GUJARATI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AA8"},2730:{"value":"0AAA","name":"GUJARATI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AAA"},2731:{"value":"0AAB","name":"GUJARATI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AAB"},2732:{"value":"0AAC","name":"GUJARATI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AAC"},2733:{"value":"0AAD","name":"GUJARATI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AAD"},2734:{"value":"0AAE","name":"GUJARATI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AAE"},2735:{"value":"0AAF","name":"GUJARATI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AAF"},2736:{"value":"0AB0","name":"GUJARATI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AB0"},2738:{"value":"0AB2","name":"GUJARATI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AB2"},2739:{"value":"0AB3","name":"GUJARATI LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AB3"},2741:{"value":"0AB5","name":"GUJARATI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AB5"},2742:{"value":"0AB6","name":"GUJARATI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AB6"},2743:{"value":"0AB7","name":"GUJARATI LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AB7"},2744:{"value":"0AB8","name":"GUJARATI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AB8"},2745:{"value":"0AB9","name":"GUJARATI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AB9"},2749:{"value":"0ABD","name":"GUJARATI SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ABD"},2768:{"value":"0AD0","name":"GUJARATI OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD0"},2784:{"value":"0AE0","name":"GUJARATI LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE0"},2785:{"value":"0AE1","name":"GUJARATI LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE1"},2809:{"value":"0AF9","name":"GUJARATI LETTER ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AF9"},2821:{"value":"0B05","name":"ORIYA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B05"},2822:{"value":"0B06","name":"ORIYA LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B06"},2823:{"value":"0B07","name":"ORIYA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B07"},2824:{"value":"0B08","name":"ORIYA LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B08"},2825:{"value":"0B09","name":"ORIYA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B09"},2826:{"value":"0B0A","name":"ORIYA LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B0A"},2827:{"value":"0B0B","name":"ORIYA LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B0B"},2828:{"value":"0B0C","name":"ORIYA LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B0C"},2831:{"value":"0B0F","name":"ORIYA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B0F"},2832:{"value":"0B10","name":"ORIYA LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B10"},2835:{"value":"0B13","name":"ORIYA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B13"},2836:{"value":"0B14","name":"ORIYA LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B14"},2837:{"value":"0B15","name":"ORIYA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B15"},2838:{"value":"0B16","name":"ORIYA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B16"},2839:{"value":"0B17","name":"ORIYA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B17"},2840:{"value":"0B18","name":"ORIYA LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B18"},2841:{"value":"0B19","name":"ORIYA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B19"},2842:{"value":"0B1A","name":"ORIYA LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1A"},2843:{"value":"0B1B","name":"ORIYA LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1B"},2844:{"value":"0B1C","name":"ORIYA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1C"},2845:{"value":"0B1D","name":"ORIYA LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1D"},2846:{"value":"0B1E","name":"ORIYA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1E"},2847:{"value":"0B1F","name":"ORIYA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1F"},2848:{"value":"0B20","name":"ORIYA LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B20"},2849:{"value":"0B21","name":"ORIYA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B21"},2850:{"value":"0B22","name":"ORIYA LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B22"},2851:{"value":"0B23","name":"ORIYA LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B23"},2852:{"value":"0B24","name":"ORIYA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B24"},2853:{"value":"0B25","name":"ORIYA LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B25"},2854:{"value":"0B26","name":"ORIYA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B26"},2855:{"value":"0B27","name":"ORIYA LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B27"},2856:{"value":"0B28","name":"ORIYA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B28"},2858:{"value":"0B2A","name":"ORIYA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2A"},2859:{"value":"0B2B","name":"ORIYA LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2B"},2860:{"value":"0B2C","name":"ORIYA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2C"},2861:{"value":"0B2D","name":"ORIYA LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2D"},2862:{"value":"0B2E","name":"ORIYA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2E"},2863:{"value":"0B2F","name":"ORIYA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2F"},2864:{"value":"0B30","name":"ORIYA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B30"},2866:{"value":"0B32","name":"ORIYA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B32"},2867:{"value":"0B33","name":"ORIYA LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B33"},2869:{"value":"0B35","name":"ORIYA LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B35"},2870:{"value":"0B36","name":"ORIYA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B36"},2871:{"value":"0B37","name":"ORIYA LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B37"},2872:{"value":"0B38","name":"ORIYA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B38"},2873:{"value":"0B39","name":"ORIYA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B39"},2877:{"value":"0B3D","name":"ORIYA SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B3D"},2908:{"value":"0B5C","name":"ORIYA LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0B21 0B3C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B5C"},2909:{"value":"0B5D","name":"ORIYA LETTER RHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0B22 0B3C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B5D"},2911:{"value":"0B5F","name":"ORIYA LETTER YYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B5F"},2912:{"value":"0B60","name":"ORIYA LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B60"},2913:{"value":"0B61","name":"ORIYA LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B61"},2929:{"value":"0B71","name":"ORIYA LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B71"},2947:{"value":"0B83","name":"TAMIL SIGN VISARGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B83"},2949:{"value":"0B85","name":"TAMIL LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B85"},2950:{"value":"0B86","name":"TAMIL LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B86"},2951:{"value":"0B87","name":"TAMIL LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B87"},2952:{"value":"0B88","name":"TAMIL LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B88"},2953:{"value":"0B89","name":"TAMIL LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B89"},2954:{"value":"0B8A","name":"TAMIL LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B8A"},2958:{"value":"0B8E","name":"TAMIL LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B8E"},2959:{"value":"0B8F","name":"TAMIL LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B8F"},2960:{"value":"0B90","name":"TAMIL LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B90"},2962:{"value":"0B92","name":"TAMIL LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B92"},2963:{"value":"0B93","name":"TAMIL LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B93"},2964:{"value":"0B94","name":"TAMIL LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0B92 0BD7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B94"},2965:{"value":"0B95","name":"TAMIL LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B95"},2969:{"value":"0B99","name":"TAMIL LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B99"},2970:{"value":"0B9A","name":"TAMIL LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B9A"},2972:{"value":"0B9C","name":"TAMIL LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B9C"},2974:{"value":"0B9E","name":"TAMIL LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B9E"},2975:{"value":"0B9F","name":"TAMIL LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B9F"},2979:{"value":"0BA3","name":"TAMIL LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BA3"},2980:{"value":"0BA4","name":"TAMIL LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BA4"},2984:{"value":"0BA8","name":"TAMIL LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BA8"},2985:{"value":"0BA9","name":"TAMIL LETTER NNNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BA9"},2986:{"value":"0BAA","name":"TAMIL LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BAA"},2990:{"value":"0BAE","name":"TAMIL LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BAE"},2991:{"value":"0BAF","name":"TAMIL LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BAF"},2992:{"value":"0BB0","name":"TAMIL LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BB0"},2993:{"value":"0BB1","name":"TAMIL LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BB1"},2994:{"value":"0BB2","name":"TAMIL LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BB2"},2995:{"value":"0BB3","name":"TAMIL LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BB3"},2996:{"value":"0BB4","name":"TAMIL LETTER LLLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BB4"},2997:{"value":"0BB5","name":"TAMIL LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BB5"},2998:{"value":"0BB6","name":"TAMIL LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BB6"},2999:{"value":"0BB7","name":"TAMIL LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BB7"},3000:{"value":"0BB8","name":"TAMIL LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BB8"},3001:{"value":"0BB9","name":"TAMIL LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BB9"},3024:{"value":"0BD0","name":"TAMIL OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BD0"},3077:{"value":"0C05","name":"TELUGU LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C05"},3078:{"value":"0C06","name":"TELUGU LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C06"},3079:{"value":"0C07","name":"TELUGU LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C07"},3080:{"value":"0C08","name":"TELUGU LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C08"},3081:{"value":"0C09","name":"TELUGU LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C09"},3082:{"value":"0C0A","name":"TELUGU LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0A"},3083:{"value":"0C0B","name":"TELUGU LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0B"},3084:{"value":"0C0C","name":"TELUGU LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0C"},3086:{"value":"0C0E","name":"TELUGU LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0E"},3087:{"value":"0C0F","name":"TELUGU LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0F"},3088:{"value":"0C10","name":"TELUGU LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C10"},3090:{"value":"0C12","name":"TELUGU LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C12"},3091:{"value":"0C13","name":"TELUGU LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C13"},3092:{"value":"0C14","name":"TELUGU LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C14"},3093:{"value":"0C15","name":"TELUGU LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C15"},3094:{"value":"0C16","name":"TELUGU LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C16"},3095:{"value":"0C17","name":"TELUGU LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C17"},3096:{"value":"0C18","name":"TELUGU LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C18"},3097:{"value":"0C19","name":"TELUGU LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C19"},3098:{"value":"0C1A","name":"TELUGU LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1A"},3099:{"value":"0C1B","name":"TELUGU LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1B"},3100:{"value":"0C1C","name":"TELUGU LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1C"},3101:{"value":"0C1D","name":"TELUGU LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1D"},3102:{"value":"0C1E","name":"TELUGU LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1E"},3103:{"value":"0C1F","name":"TELUGU LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1F"},3104:{"value":"0C20","name":"TELUGU LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C20"},3105:{"value":"0C21","name":"TELUGU LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C21"},3106:{"value":"0C22","name":"TELUGU LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C22"},3107:{"value":"0C23","name":"TELUGU LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C23"},3108:{"value":"0C24","name":"TELUGU LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C24"},3109:{"value":"0C25","name":"TELUGU LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C25"},3110:{"value":"0C26","name":"TELUGU LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C26"},3111:{"value":"0C27","name":"TELUGU LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C27"},3112:{"value":"0C28","name":"TELUGU LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C28"},3114:{"value":"0C2A","name":"TELUGU LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2A"},3115:{"value":"0C2B","name":"TELUGU LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2B"},3116:{"value":"0C2C","name":"TELUGU LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2C"},3117:{"value":"0C2D","name":"TELUGU LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2D"},3118:{"value":"0C2E","name":"TELUGU LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2E"},3119:{"value":"0C2F","name":"TELUGU LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2F"},3120:{"value":"0C30","name":"TELUGU LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C30"},3121:{"value":"0C31","name":"TELUGU LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C31"},3122:{"value":"0C32","name":"TELUGU LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C32"},3123:{"value":"0C33","name":"TELUGU LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C33"},3124:{"value":"0C34","name":"TELUGU LETTER LLLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C34"},3125:{"value":"0C35","name":"TELUGU LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C35"},3126:{"value":"0C36","name":"TELUGU LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C36"},3127:{"value":"0C37","name":"TELUGU LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C37"},3128:{"value":"0C38","name":"TELUGU LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C38"},3129:{"value":"0C39","name":"TELUGU LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C39"},3133:{"value":"0C3D","name":"TELUGU SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C3D"},3160:{"value":"0C58","name":"TELUGU LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C58"},3161:{"value":"0C59","name":"TELUGU LETTER DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C59"},3162:{"value":"0C5A","name":"TELUGU LETTER RRRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C5A"},3168:{"value":"0C60","name":"TELUGU LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C60"},3169:{"value":"0C61","name":"TELUGU LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C61"},3200:{"value":"0C80","name":"KANNADA SIGN SPACING CANDRABINDU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C80"},3205:{"value":"0C85","name":"KANNADA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C85"},3206:{"value":"0C86","name":"KANNADA LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C86"},3207:{"value":"0C87","name":"KANNADA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C87"},3208:{"value":"0C88","name":"KANNADA LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C88"},3209:{"value":"0C89","name":"KANNADA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C89"},3210:{"value":"0C8A","name":"KANNADA LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C8A"},3211:{"value":"0C8B","name":"KANNADA LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C8B"},3212:{"value":"0C8C","name":"KANNADA LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C8C"},3214:{"value":"0C8E","name":"KANNADA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C8E"},3215:{"value":"0C8F","name":"KANNADA LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C8F"},3216:{"value":"0C90","name":"KANNADA LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C90"},3218:{"value":"0C92","name":"KANNADA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C92"},3219:{"value":"0C93","name":"KANNADA LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C93"},3220:{"value":"0C94","name":"KANNADA LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C94"},3221:{"value":"0C95","name":"KANNADA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C95"},3222:{"value":"0C96","name":"KANNADA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C96"},3223:{"value":"0C97","name":"KANNADA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C97"},3224:{"value":"0C98","name":"KANNADA LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C98"},3225:{"value":"0C99","name":"KANNADA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C99"},3226:{"value":"0C9A","name":"KANNADA LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C9A"},3227:{"value":"0C9B","name":"KANNADA LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C9B"},3228:{"value":"0C9C","name":"KANNADA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C9C"},3229:{"value":"0C9D","name":"KANNADA LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C9D"},3230:{"value":"0C9E","name":"KANNADA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C9E"},3231:{"value":"0C9F","name":"KANNADA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C9F"},3232:{"value":"0CA0","name":"KANNADA LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CA0"},3233:{"value":"0CA1","name":"KANNADA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CA1"},3234:{"value":"0CA2","name":"KANNADA LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CA2"},3235:{"value":"0CA3","name":"KANNADA LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CA3"},3236:{"value":"0CA4","name":"KANNADA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CA4"},3237:{"value":"0CA5","name":"KANNADA LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CA5"},3238:{"value":"0CA6","name":"KANNADA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CA6"},3239:{"value":"0CA7","name":"KANNADA LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CA7"},3240:{"value":"0CA8","name":"KANNADA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CA8"},3242:{"value":"0CAA","name":"KANNADA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CAA"},3243:{"value":"0CAB","name":"KANNADA LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CAB"},3244:{"value":"0CAC","name":"KANNADA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CAC"},3245:{"value":"0CAD","name":"KANNADA LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CAD"},3246:{"value":"0CAE","name":"KANNADA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CAE"},3247:{"value":"0CAF","name":"KANNADA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CAF"},3248:{"value":"0CB0","name":"KANNADA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CB0"},3249:{"value":"0CB1","name":"KANNADA LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CB1"},3250:{"value":"0CB2","name":"KANNADA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CB2"},3251:{"value":"0CB3","name":"KANNADA LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CB3"},3253:{"value":"0CB5","name":"KANNADA LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CB5"},3254:{"value":"0CB6","name":"KANNADA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CB6"},3255:{"value":"0CB7","name":"KANNADA LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CB7"},3256:{"value":"0CB8","name":"KANNADA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CB8"},3257:{"value":"0CB9","name":"KANNADA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CB9"},3261:{"value":"0CBD","name":"KANNADA SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CBD"},3294:{"value":"0CDE","name":"KANNADA LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CDE"},3296:{"value":"0CE0","name":"KANNADA LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CE0"},3297:{"value":"0CE1","name":"KANNADA LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CE1"},3313:{"value":"0CF1","name":"KANNADA SIGN JIHVAMULIYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CF1"},3314:{"value":"0CF2","name":"KANNADA SIGN UPADHMANIYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CF2"},3333:{"value":"0D05","name":"MALAYALAM LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D05"},3334:{"value":"0D06","name":"MALAYALAM LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D06"},3335:{"value":"0D07","name":"MALAYALAM LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D07"},3336:{"value":"0D08","name":"MALAYALAM LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D08"},3337:{"value":"0D09","name":"MALAYALAM LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D09"},3338:{"value":"0D0A","name":"MALAYALAM LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0A"},3339:{"value":"0D0B","name":"MALAYALAM LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0B"},3340:{"value":"0D0C","name":"MALAYALAM LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0C"},3342:{"value":"0D0E","name":"MALAYALAM LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0E"},3343:{"value":"0D0F","name":"MALAYALAM LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0F"},3344:{"value":"0D10","name":"MALAYALAM LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D10"},3346:{"value":"0D12","name":"MALAYALAM LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D12"},3347:{"value":"0D13","name":"MALAYALAM LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D13"},3348:{"value":"0D14","name":"MALAYALAM LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D14"},3349:{"value":"0D15","name":"MALAYALAM LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D15"},3350:{"value":"0D16","name":"MALAYALAM LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D16"},3351:{"value":"0D17","name":"MALAYALAM LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D17"},3352:{"value":"0D18","name":"MALAYALAM LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D18"},3353:{"value":"0D19","name":"MALAYALAM LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D19"},3354:{"value":"0D1A","name":"MALAYALAM LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1A"},3355:{"value":"0D1B","name":"MALAYALAM LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1B"},3356:{"value":"0D1C","name":"MALAYALAM LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1C"},3357:{"value":"0D1D","name":"MALAYALAM LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1D"},3358:{"value":"0D1E","name":"MALAYALAM LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1E"},3359:{"value":"0D1F","name":"MALAYALAM LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1F"},3360:{"value":"0D20","name":"MALAYALAM LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D20"},3361:{"value":"0D21","name":"MALAYALAM LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D21"},3362:{"value":"0D22","name":"MALAYALAM LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D22"},3363:{"value":"0D23","name":"MALAYALAM LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D23"},3364:{"value":"0D24","name":"MALAYALAM LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D24"},3365:{"value":"0D25","name":"MALAYALAM LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D25"},3366:{"value":"0D26","name":"MALAYALAM LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D26"},3367:{"value":"0D27","name":"MALAYALAM LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D27"},3368:{"value":"0D28","name":"MALAYALAM LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D28"},3369:{"value":"0D29","name":"MALAYALAM LETTER NNNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D29"},3370:{"value":"0D2A","name":"MALAYALAM LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D2A"},3371:{"value":"0D2B","name":"MALAYALAM LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D2B"},3372:{"value":"0D2C","name":"MALAYALAM LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D2C"},3373:{"value":"0D2D","name":"MALAYALAM LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D2D"},3374:{"value":"0D2E","name":"MALAYALAM LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D2E"},3375:{"value":"0D2F","name":"MALAYALAM LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D2F"},3376:{"value":"0D30","name":"MALAYALAM LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D30"},3377:{"value":"0D31","name":"MALAYALAM LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D31"},3378:{"value":"0D32","name":"MALAYALAM LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D32"},3379:{"value":"0D33","name":"MALAYALAM LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D33"},3380:{"value":"0D34","name":"MALAYALAM LETTER LLLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D34"},3381:{"value":"0D35","name":"MALAYALAM LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D35"},3382:{"value":"0D36","name":"MALAYALAM LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D36"},3383:{"value":"0D37","name":"MALAYALAM LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D37"},3384:{"value":"0D38","name":"MALAYALAM LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D38"},3385:{"value":"0D39","name":"MALAYALAM LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D39"},3386:{"value":"0D3A","name":"MALAYALAM LETTER TTTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D3A"},3389:{"value":"0D3D","name":"MALAYALAM SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D3D"},3406:{"value":"0D4E","name":"MALAYALAM LETTER DOT REPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D4E"},3412:{"value":"0D54","name":"MALAYALAM LETTER CHILLU M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D54"},3413:{"value":"0D55","name":"MALAYALAM LETTER CHILLU Y","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D55"},3414:{"value":"0D56","name":"MALAYALAM LETTER CHILLU LLL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D56"},3423:{"value":"0D5F","name":"MALAYALAM LETTER ARCHAIC II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D5F"},3424:{"value":"0D60","name":"MALAYALAM LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D60"},3425:{"value":"0D61","name":"MALAYALAM LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D61"},3450:{"value":"0D7A","name":"MALAYALAM LETTER CHILLU NN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D7A"},3451:{"value":"0D7B","name":"MALAYALAM LETTER CHILLU N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D7B"},3452:{"value":"0D7C","name":"MALAYALAM LETTER CHILLU RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D7C"},3453:{"value":"0D7D","name":"MALAYALAM LETTER CHILLU L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D7D"},3454:{"value":"0D7E","name":"MALAYALAM LETTER CHILLU LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D7E"},3455:{"value":"0D7F","name":"MALAYALAM LETTER CHILLU K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D7F"},3461:{"value":"0D85","name":"SINHALA LETTER AYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D85"},3462:{"value":"0D86","name":"SINHALA LETTER AAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D86"},3463:{"value":"0D87","name":"SINHALA LETTER AEYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D87"},3464:{"value":"0D88","name":"SINHALA LETTER AEEYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D88"},3465:{"value":"0D89","name":"SINHALA LETTER IYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D89"},3466:{"value":"0D8A","name":"SINHALA LETTER IIYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D8A"},3467:{"value":"0D8B","name":"SINHALA LETTER UYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D8B"},3468:{"value":"0D8C","name":"SINHALA LETTER UUYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D8C"},3469:{"value":"0D8D","name":"SINHALA LETTER IRUYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D8D"},3470:{"value":"0D8E","name":"SINHALA LETTER IRUUYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D8E"},3471:{"value":"0D8F","name":"SINHALA LETTER ILUYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D8F"},3472:{"value":"0D90","name":"SINHALA LETTER ILUUYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D90"},3473:{"value":"0D91","name":"SINHALA LETTER EYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D91"},3474:{"value":"0D92","name":"SINHALA LETTER EEYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D92"},3475:{"value":"0D93","name":"SINHALA LETTER AIYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D93"},3476:{"value":"0D94","name":"SINHALA LETTER OYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D94"},3477:{"value":"0D95","name":"SINHALA LETTER OOYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D95"},3478:{"value":"0D96","name":"SINHALA LETTER AUYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D96"},3482:{"value":"0D9A","name":"SINHALA LETTER ALPAPRAANA KAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D9A"},3483:{"value":"0D9B","name":"SINHALA LETTER MAHAAPRAANA KAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D9B"},3484:{"value":"0D9C","name":"SINHALA LETTER ALPAPRAANA GAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D9C"},3485:{"value":"0D9D","name":"SINHALA LETTER MAHAAPRAANA GAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D9D"},3486:{"value":"0D9E","name":"SINHALA LETTER KANTAJA NAASIKYAYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D9E"},3487:{"value":"0D9F","name":"SINHALA LETTER SANYAKA GAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D9F"},3488:{"value":"0DA0","name":"SINHALA LETTER ALPAPRAANA CAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DA0"},3489:{"value":"0DA1","name":"SINHALA LETTER MAHAAPRAANA CAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DA1"},3490:{"value":"0DA2","name":"SINHALA LETTER ALPAPRAANA JAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DA2"},3491:{"value":"0DA3","name":"SINHALA LETTER MAHAAPRAANA JAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DA3"},3492:{"value":"0DA4","name":"SINHALA LETTER TAALUJA NAASIKYAYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DA4"},3493:{"value":"0DA5","name":"SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DA5"},3494:{"value":"0DA6","name":"SINHALA LETTER SANYAKA JAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DA6"},3495:{"value":"0DA7","name":"SINHALA LETTER ALPAPRAANA TTAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DA7"},3496:{"value":"0DA8","name":"SINHALA LETTER MAHAAPRAANA TTAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DA8"},3497:{"value":"0DA9","name":"SINHALA LETTER ALPAPRAANA DDAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DA9"},3498:{"value":"0DAA","name":"SINHALA LETTER MAHAAPRAANA DDAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DAA"},3499:{"value":"0DAB","name":"SINHALA LETTER MUURDHAJA NAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DAB"},3500:{"value":"0DAC","name":"SINHALA LETTER SANYAKA DDAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DAC"},3501:{"value":"0DAD","name":"SINHALA LETTER ALPAPRAANA TAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DAD"},3502:{"value":"0DAE","name":"SINHALA LETTER MAHAAPRAANA TAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DAE"},3503:{"value":"0DAF","name":"SINHALA LETTER ALPAPRAANA DAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DAF"},3504:{"value":"0DB0","name":"SINHALA LETTER MAHAAPRAANA DAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DB0"},3505:{"value":"0DB1","name":"SINHALA LETTER DANTAJA NAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DB1"},3507:{"value":"0DB3","name":"SINHALA LETTER SANYAKA DAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DB3"},3508:{"value":"0DB4","name":"SINHALA LETTER ALPAPRAANA PAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DB4"},3509:{"value":"0DB5","name":"SINHALA LETTER MAHAAPRAANA PAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DB5"},3510:{"value":"0DB6","name":"SINHALA LETTER ALPAPRAANA BAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DB6"},3511:{"value":"0DB7","name":"SINHALA LETTER MAHAAPRAANA BAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DB7"},3512:{"value":"0DB8","name":"SINHALA LETTER MAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DB8"},3513:{"value":"0DB9","name":"SINHALA LETTER AMBA BAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DB9"},3514:{"value":"0DBA","name":"SINHALA LETTER YAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DBA"},3515:{"value":"0DBB","name":"SINHALA LETTER RAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DBB"},3517:{"value":"0DBD","name":"SINHALA LETTER DANTAJA LAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DBD"},3520:{"value":"0DC0","name":"SINHALA LETTER VAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DC0"},3521:{"value":"0DC1","name":"SINHALA LETTER TAALUJA SAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DC1"},3522:{"value":"0DC2","name":"SINHALA LETTER MUURDHAJA SAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DC2"},3523:{"value":"0DC3","name":"SINHALA LETTER DANTAJA SAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DC3"},3524:{"value":"0DC4","name":"SINHALA LETTER HAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DC4"},3525:{"value":"0DC5","name":"SINHALA LETTER MUURDHAJA LAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DC5"},3526:{"value":"0DC6","name":"SINHALA LETTER FAYANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DC6"},3585:{"value":"0E01","name":"THAI CHARACTER KO KAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER KO KAI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E01"},3586:{"value":"0E02","name":"THAI CHARACTER KHO KHAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER KHO KHAI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E02"},3587:{"value":"0E03","name":"THAI CHARACTER KHO KHUAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER KHO KHUAT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E03"},3588:{"value":"0E04","name":"THAI CHARACTER KHO KHWAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER KHO KHWAI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E04"},3589:{"value":"0E05","name":"THAI CHARACTER KHO KHON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER KHO KHON","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E05"},3590:{"value":"0E06","name":"THAI CHARACTER KHO RAKHANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER KHO RAKHANG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E06"},3591:{"value":"0E07","name":"THAI CHARACTER NGO NGU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER NGO NGU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E07"},3592:{"value":"0E08","name":"THAI CHARACTER CHO CHAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER CHO CHAN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E08"},3593:{"value":"0E09","name":"THAI CHARACTER CHO CHING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER CHO CHING","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E09"},3594:{"value":"0E0A","name":"THAI CHARACTER CHO CHANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER CHO CHANG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E0A"},3595:{"value":"0E0B","name":"THAI CHARACTER SO SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER SO SO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E0B"},3596:{"value":"0E0C","name":"THAI CHARACTER CHO CHOE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER CHO CHOE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E0C"},3597:{"value":"0E0D","name":"THAI CHARACTER YO YING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER YO YING","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E0D"},3598:{"value":"0E0E","name":"THAI CHARACTER DO CHADA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER DO CHADA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E0E"},3599:{"value":"0E0F","name":"THAI CHARACTER TO PATAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER TO PATAK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E0F"},3600:{"value":"0E10","name":"THAI CHARACTER THO THAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER THO THAN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E10"},3601:{"value":"0E11","name":"THAI CHARACTER THO NANGMONTHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER THO NANGMONTHO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E11"},3602:{"value":"0E12","name":"THAI CHARACTER THO PHUTHAO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER THO PHUTHAO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E12"},3603:{"value":"0E13","name":"THAI CHARACTER NO NEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER NO NEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E13"},3604:{"value":"0E14","name":"THAI CHARACTER DO DEK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER DO DEK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E14"},3605:{"value":"0E15","name":"THAI CHARACTER TO TAO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER TO TAO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E15"},3606:{"value":"0E16","name":"THAI CHARACTER THO THUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER THO THUNG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E16"},3607:{"value":"0E17","name":"THAI CHARACTER THO THAHAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER THO THAHAN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E17"},3608:{"value":"0E18","name":"THAI CHARACTER THO THONG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER THO THONG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E18"},3609:{"value":"0E19","name":"THAI CHARACTER NO NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER NO NU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E19"},3610:{"value":"0E1A","name":"THAI CHARACTER BO BAIMAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER BO BAIMAI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E1A"},3611:{"value":"0E1B","name":"THAI CHARACTER PO PLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER PO PLA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E1B"},3612:{"value":"0E1C","name":"THAI CHARACTER PHO PHUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER PHO PHUNG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E1C"},3613:{"value":"0E1D","name":"THAI CHARACTER FO FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER FO FA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E1D"},3614:{"value":"0E1E","name":"THAI CHARACTER PHO PHAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER PHO PHAN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E1E"},3615:{"value":"0E1F","name":"THAI CHARACTER FO FAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER FO FAN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E1F"},3616:{"value":"0E20","name":"THAI CHARACTER PHO SAMPHAO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER PHO SAMPHAO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E20"},3617:{"value":"0E21","name":"THAI CHARACTER MO MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER MO MA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E21"},3618:{"value":"0E22","name":"THAI CHARACTER YO YAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER YO YAK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E22"},3619:{"value":"0E23","name":"THAI CHARACTER RO RUA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER RO RUA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E23"},3620:{"value":"0E24","name":"THAI CHARACTER RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER RU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E24"},3621:{"value":"0E25","name":"THAI CHARACTER LO LING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER LO LING","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E25"},3622:{"value":"0E26","name":"THAI CHARACTER LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER LU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E26"},3623:{"value":"0E27","name":"THAI CHARACTER WO WAEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER WO WAEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E27"},3624:{"value":"0E28","name":"THAI CHARACTER SO SALA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER SO SALA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E28"},3625:{"value":"0E29","name":"THAI CHARACTER SO RUSI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER SO RUSI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E29"},3626:{"value":"0E2A","name":"THAI CHARACTER SO SUA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER SO SUA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E2A"},3627:{"value":"0E2B","name":"THAI CHARACTER HO HIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER HO HIP","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E2B"},3628:{"value":"0E2C","name":"THAI CHARACTER LO CHULA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER LO CHULA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E2C"},3629:{"value":"0E2D","name":"THAI CHARACTER O ANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER O ANG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E2D"},3630:{"value":"0E2E","name":"THAI CHARACTER HO NOKHUK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LETTER HO NOK HUK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E2E"},3631:{"value":"0E2F","name":"THAI CHARACTER PAIYANNOI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI PAI YAN NOI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E2F"},3632:{"value":"0E30","name":"THAI CHARACTER SARA A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA A","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E30"},3634:{"value":"0E32","name":"THAI CHARACTER SARA AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA AA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E32"},3635:{"value":"0E33","name":"THAI CHARACTER SARA AM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 0E4D 0E32","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA AM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E33"},3648:{"value":"0E40","name":"THAI CHARACTER SARA E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA E","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E40"},3649:{"value":"0E41","name":"THAI CHARACTER SARA AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA AE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E41"},3650:{"value":"0E42","name":"THAI CHARACTER SARA O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA O","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E42"},3651:{"value":"0E43","name":"THAI CHARACTER SARA AI MAIMUAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA MAI MUAN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E43"},3652:{"value":"0E44","name":"THAI CHARACTER SARA AI MAIMALAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA MAI MALAI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E44"},3653:{"value":"0E45","name":"THAI CHARACTER LAKKHANGYAO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI LAK KHANG YAO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E45"},3713:{"value":"0E81","name":"LAO LETTER KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E81"},3714:{"value":"0E82","name":"LAO LETTER KHO SUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E82"},3716:{"value":"0E84","name":"LAO LETTER KHO TAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E84"},3719:{"value":"0E87","name":"LAO LETTER NGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E87"},3720:{"value":"0E88","name":"LAO LETTER CO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E88"},3722:{"value":"0E8A","name":"LAO LETTER SO TAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E8A"},3725:{"value":"0E8D","name":"LAO LETTER NYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E8D"},3732:{"value":"0E94","name":"LAO LETTER DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E94"},3733:{"value":"0E95","name":"LAO LETTER TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E95"},3734:{"value":"0E96","name":"LAO LETTER THO SUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E96"},3735:{"value":"0E97","name":"LAO LETTER THO TAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E97"},3737:{"value":"0E99","name":"LAO LETTER NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E99"},3738:{"value":"0E9A","name":"LAO LETTER BO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E9A"},3739:{"value":"0E9B","name":"LAO LETTER PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E9B"},3740:{"value":"0E9C","name":"LAO LETTER PHO SUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E9C"},3741:{"value":"0E9D","name":"LAO LETTER FO TAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E9D"},3742:{"value":"0E9E","name":"LAO LETTER PHO TAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E9E"},3743:{"value":"0E9F","name":"LAO LETTER FO SUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E9F"},3745:{"value":"0EA1","name":"LAO LETTER MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EA1"},3746:{"value":"0EA2","name":"LAO LETTER YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EA2"},3747:{"value":"0EA3","name":"LAO LETTER LO LING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EA3"},3749:{"value":"0EA5","name":"LAO LETTER LO LOOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EA5"},3751:{"value":"0EA7","name":"LAO LETTER WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EA7"},3754:{"value":"0EAA","name":"LAO LETTER SO SUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EAA"},3755:{"value":"0EAB","name":"LAO LETTER HO SUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EAB"},3757:{"value":"0EAD","name":"LAO LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EAD"},3758:{"value":"0EAE","name":"LAO LETTER HO TAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EAE"},3759:{"value":"0EAF","name":"LAO ELLIPSIS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EAF"},3760:{"value":"0EB0","name":"LAO VOWEL SIGN A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EB0"},3762:{"value":"0EB2","name":"LAO VOWEL SIGN AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EB2"},3763:{"value":"0EB3","name":"LAO VOWEL SIGN AM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 0ECD 0EB2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EB3"},3773:{"value":"0EBD","name":"LAO SEMIVOWEL SIGN NYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EBD"},3776:{"value":"0EC0","name":"LAO VOWEL SIGN E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EC0"},3777:{"value":"0EC1","name":"LAO VOWEL SIGN EI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EC1"},3778:{"value":"0EC2","name":"LAO VOWEL SIGN O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EC2"},3779:{"value":"0EC3","name":"LAO VOWEL SIGN AY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EC3"},3780:{"value":"0EC4","name":"LAO VOWEL SIGN AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EC4"},3804:{"value":"0EDC","name":"LAO HO NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 0EAB 0E99","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EDC"},3805:{"value":"0EDD","name":"LAO HO MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 0EAB 0EA1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EDD"},3806:{"value":"0EDE","name":"LAO LETTER KHMU GO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EDE"},3807:{"value":"0EDF","name":"LAO LETTER KHMU NYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EDF"},3840:{"value":"0F00","name":"TIBETAN SYLLABLE OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F00"},3904:{"value":"0F40","name":"TIBETAN LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F40"},3905:{"value":"0F41","name":"TIBETAN LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F41"},3906:{"value":"0F42","name":"TIBETAN LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F42"},3907:{"value":"0F43","name":"TIBETAN LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0F42 0FB7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F43"},3908:{"value":"0F44","name":"TIBETAN LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F44"},3909:{"value":"0F45","name":"TIBETAN LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F45"},3910:{"value":"0F46","name":"TIBETAN LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F46"},3911:{"value":"0F47","name":"TIBETAN LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F47"},3913:{"value":"0F49","name":"TIBETAN LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F49"},3914:{"value":"0F4A","name":"TIBETAN LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN LETTER REVERSED TA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4A"},3915:{"value":"0F4B","name":"TIBETAN LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN LETTER REVERSED THA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4B"},3916:{"value":"0F4C","name":"TIBETAN LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN LETTER REVERSED DA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4C"},3917:{"value":"0F4D","name":"TIBETAN LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0F4C 0FB7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4D"},3918:{"value":"0F4E","name":"TIBETAN LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN LETTER REVERSED NA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4E"},3919:{"value":"0F4F","name":"TIBETAN LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4F"},3920:{"value":"0F50","name":"TIBETAN LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F50"},3921:{"value":"0F51","name":"TIBETAN LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F51"},3922:{"value":"0F52","name":"TIBETAN LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0F51 0FB7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F52"},3923:{"value":"0F53","name":"TIBETAN LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F53"},3924:{"value":"0F54","name":"TIBETAN LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F54"},3925:{"value":"0F55","name":"TIBETAN LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F55"},3926:{"value":"0F56","name":"TIBETAN LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F56"},3927:{"value":"0F57","name":"TIBETAN LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0F56 0FB7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F57"},3928:{"value":"0F58","name":"TIBETAN LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F58"},3929:{"value":"0F59","name":"TIBETAN LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F59"},3930:{"value":"0F5A","name":"TIBETAN LETTER TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F5A"},3931:{"value":"0F5B","name":"TIBETAN LETTER DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F5B"},3932:{"value":"0F5C","name":"TIBETAN LETTER DZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0F5B 0FB7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F5C"},3933:{"value":"0F5D","name":"TIBETAN LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F5D"},3934:{"value":"0F5E","name":"TIBETAN LETTER ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F5E"},3935:{"value":"0F5F","name":"TIBETAN LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F5F"},3936:{"value":"0F60","name":"TIBETAN LETTER -A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN LETTER AA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F60"},3937:{"value":"0F61","name":"TIBETAN LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F61"},3938:{"value":"0F62","name":"TIBETAN LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F62"},3939:{"value":"0F63","name":"TIBETAN LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F63"},3940:{"value":"0F64","name":"TIBETAN LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F64"},3941:{"value":"0F65","name":"TIBETAN LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN LETTER REVERSED SHA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F65"},3942:{"value":"0F66","name":"TIBETAN LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F66"},3943:{"value":"0F67","name":"TIBETAN LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F67"},3944:{"value":"0F68","name":"TIBETAN LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F68"},3945:{"value":"0F69","name":"TIBETAN LETTER KSSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"0F40 0FB5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F69"},3946:{"value":"0F6A","name":"TIBETAN LETTER FIXED-FORM RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F6A"},3947:{"value":"0F6B","name":"TIBETAN LETTER KKA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F6B"},3948:{"value":"0F6C","name":"TIBETAN LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F6C"},3976:{"value":"0F88","name":"TIBETAN SIGN LCE TSA CAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F88"},3977:{"value":"0F89","name":"TIBETAN SIGN MCHU CAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F89"},3978:{"value":"0F8A","name":"TIBETAN SIGN GRU CAN RGYINGS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F8A"},3979:{"value":"0F8B","name":"TIBETAN SIGN GRU MED RGYINGS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F8B"},3980:{"value":"0F8C","name":"TIBETAN SIGN INVERTED MCHU CAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F8C"},4096:{"value":"1000","name":"MYANMAR LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1000"},4097:{"value":"1001","name":"MYANMAR LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1001"},4098:{"value":"1002","name":"MYANMAR LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1002"},4099:{"value":"1003","name":"MYANMAR LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1003"},4100:{"value":"1004","name":"MYANMAR LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1004"},4101:{"value":"1005","name":"MYANMAR LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1005"},4102:{"value":"1006","name":"MYANMAR LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1006"},4103:{"value":"1007","name":"MYANMAR LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1007"},4104:{"value":"1008","name":"MYANMAR LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1008"},4105:{"value":"1009","name":"MYANMAR LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1009"},4106:{"value":"100A","name":"MYANMAR LETTER NNYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100A"},4107:{"value":"100B","name":"MYANMAR LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100B"},4108:{"value":"100C","name":"MYANMAR LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100C"},4109:{"value":"100D","name":"MYANMAR LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100D"},4110:{"value":"100E","name":"MYANMAR LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100E"},4111:{"value":"100F","name":"MYANMAR LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100F"},4112:{"value":"1010","name":"MYANMAR LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1010"},4113:{"value":"1011","name":"MYANMAR LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1011"},4114:{"value":"1012","name":"MYANMAR LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1012"},4115:{"value":"1013","name":"MYANMAR LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1013"},4116:{"value":"1014","name":"MYANMAR LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1014"},4117:{"value":"1015","name":"MYANMAR LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1015"},4118:{"value":"1016","name":"MYANMAR LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1016"},4119:{"value":"1017","name":"MYANMAR LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1017"},4120:{"value":"1018","name":"MYANMAR LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1018"},4121:{"value":"1019","name":"MYANMAR LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1019"},4122:{"value":"101A","name":"MYANMAR LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101A"},4123:{"value":"101B","name":"MYANMAR LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101B"},4124:{"value":"101C","name":"MYANMAR LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101C"},4125:{"value":"101D","name":"MYANMAR LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101D"},4126:{"value":"101E","name":"MYANMAR LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101E"},4127:{"value":"101F","name":"MYANMAR LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101F"},4128:{"value":"1020","name":"MYANMAR LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1020"},4129:{"value":"1021","name":"MYANMAR LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1021"},4130:{"value":"1022","name":"MYANMAR LETTER SHAN A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1022"},4131:{"value":"1023","name":"MYANMAR LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1023"},4132:{"value":"1024","name":"MYANMAR LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1024"},4133:{"value":"1025","name":"MYANMAR LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1025"},4134:{"value":"1026","name":"MYANMAR LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"1025 102E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1026"},4135:{"value":"1027","name":"MYANMAR LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1027"},4136:{"value":"1028","name":"MYANMAR LETTER MON E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1028"},4137:{"value":"1029","name":"MYANMAR LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1029"},4138:{"value":"102A","name":"MYANMAR LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102A"},4159:{"value":"103F","name":"MYANMAR LETTER GREAT SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103F"},4176:{"value":"1050","name":"MYANMAR LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1050"},4177:{"value":"1051","name":"MYANMAR LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1051"},4178:{"value":"1052","name":"MYANMAR LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1052"},4179:{"value":"1053","name":"MYANMAR LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1053"},4180:{"value":"1054","name":"MYANMAR LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1054"},4181:{"value":"1055","name":"MYANMAR LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1055"},4186:{"value":"105A","name":"MYANMAR LETTER MON NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u105A"},4187:{"value":"105B","name":"MYANMAR LETTER MON JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u105B"},4188:{"value":"105C","name":"MYANMAR LETTER MON BBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u105C"},4189:{"value":"105D","name":"MYANMAR LETTER MON BBE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u105D"},4193:{"value":"1061","name":"MYANMAR LETTER SGAW KAREN SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1061"},4197:{"value":"1065","name":"MYANMAR LETTER WESTERN PWO KAREN THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1065"},4198:{"value":"1066","name":"MYANMAR LETTER WESTERN PWO KAREN PWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1066"},4206:{"value":"106E","name":"MYANMAR LETTER EASTERN PWO KAREN NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106E"},4207:{"value":"106F","name":"MYANMAR LETTER EASTERN PWO KAREN YWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106F"},4208:{"value":"1070","name":"MYANMAR LETTER EASTERN PWO KAREN GHWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1070"},4213:{"value":"1075","name":"MYANMAR LETTER SHAN KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1075"},4214:{"value":"1076","name":"MYANMAR LETTER SHAN KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1076"},4215:{"value":"1077","name":"MYANMAR LETTER SHAN GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1077"},4216:{"value":"1078","name":"MYANMAR LETTER SHAN CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1078"},4217:{"value":"1079","name":"MYANMAR LETTER SHAN ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1079"},4218:{"value":"107A","name":"MYANMAR LETTER SHAN NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u107A"},4219:{"value":"107B","name":"MYANMAR LETTER SHAN DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u107B"},4220:{"value":"107C","name":"MYANMAR LETTER SHAN NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u107C"},4221:{"value":"107D","name":"MYANMAR LETTER SHAN PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u107D"},4222:{"value":"107E","name":"MYANMAR LETTER SHAN FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u107E"},4223:{"value":"107F","name":"MYANMAR LETTER SHAN BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u107F"},4224:{"value":"1080","name":"MYANMAR LETTER SHAN THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1080"},4225:{"value":"1081","name":"MYANMAR LETTER SHAN HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1081"},4238:{"value":"108E","name":"MYANMAR LETTER RUMAI PALAUNG FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108E"},4352:{"value":"1100","name":"HANGUL CHOSEONG KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1100"},4353:{"value":"1101","name":"HANGUL CHOSEONG SSANGKIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1101"},4354:{"value":"1102","name":"HANGUL CHOSEONG NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1102"},4355:{"value":"1103","name":"HANGUL CHOSEONG TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1103"},4356:{"value":"1104","name":"HANGUL CHOSEONG SSANGTIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1104"},4357:{"value":"1105","name":"HANGUL CHOSEONG RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1105"},4358:{"value":"1106","name":"HANGUL CHOSEONG MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1106"},4359:{"value":"1107","name":"HANGUL CHOSEONG PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1107"},4360:{"value":"1108","name":"HANGUL CHOSEONG SSANGPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1108"},4361:{"value":"1109","name":"HANGUL CHOSEONG SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1109"},4362:{"value":"110A","name":"HANGUL CHOSEONG SSANGSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110A"},4363:{"value":"110B","name":"HANGUL CHOSEONG IEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110B"},4364:{"value":"110C","name":"HANGUL CHOSEONG CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110C"},4365:{"value":"110D","name":"HANGUL CHOSEONG SSANGCIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110D"},4366:{"value":"110E","name":"HANGUL CHOSEONG CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110E"},4367:{"value":"110F","name":"HANGUL CHOSEONG KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110F"},4368:{"value":"1110","name":"HANGUL CHOSEONG THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1110"},4369:{"value":"1111","name":"HANGUL CHOSEONG PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1111"},4370:{"value":"1112","name":"HANGUL CHOSEONG HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1112"},4371:{"value":"1113","name":"HANGUL CHOSEONG NIEUN-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1113"},4372:{"value":"1114","name":"HANGUL CHOSEONG SSANGNIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1114"},4373:{"value":"1115","name":"HANGUL CHOSEONG NIEUN-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1115"},4374:{"value":"1116","name":"HANGUL CHOSEONG NIEUN-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1116"},4375:{"value":"1117","name":"HANGUL CHOSEONG TIKEUT-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1117"},4376:{"value":"1118","name":"HANGUL CHOSEONG RIEUL-NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1118"},4377:{"value":"1119","name":"HANGUL CHOSEONG SSANGRIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1119"},4378:{"value":"111A","name":"HANGUL CHOSEONG RIEUL-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111A"},4379:{"value":"111B","name":"HANGUL CHOSEONG KAPYEOUNRIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111B"},4380:{"value":"111C","name":"HANGUL CHOSEONG MIEUM-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111C"},4381:{"value":"111D","name":"HANGUL CHOSEONG KAPYEOUNMIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111D"},4382:{"value":"111E","name":"HANGUL CHOSEONG PIEUP-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111E"},4383:{"value":"111F","name":"HANGUL CHOSEONG PIEUP-NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111F"},4384:{"value":"1120","name":"HANGUL CHOSEONG PIEUP-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1120"},4385:{"value":"1121","name":"HANGUL CHOSEONG PIEUP-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1121"},4386:{"value":"1122","name":"HANGUL CHOSEONG PIEUP-SIOS-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1122"},4387:{"value":"1123","name":"HANGUL CHOSEONG PIEUP-SIOS-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1123"},4388:{"value":"1124","name":"HANGUL CHOSEONG PIEUP-SIOS-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1124"},4389:{"value":"1125","name":"HANGUL CHOSEONG PIEUP-SSANGSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1125"},4390:{"value":"1126","name":"HANGUL CHOSEONG PIEUP-SIOS-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1126"},4391:{"value":"1127","name":"HANGUL CHOSEONG PIEUP-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1127"},4392:{"value":"1128","name":"HANGUL CHOSEONG PIEUP-CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1128"},4393:{"value":"1129","name":"HANGUL CHOSEONG PIEUP-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1129"},4394:{"value":"112A","name":"HANGUL CHOSEONG PIEUP-PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112A"},4395:{"value":"112B","name":"HANGUL CHOSEONG KAPYEOUNPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112B"},4396:{"value":"112C","name":"HANGUL CHOSEONG KAPYEOUNSSANGPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112C"},4397:{"value":"112D","name":"HANGUL CHOSEONG SIOS-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112D"},4398:{"value":"112E","name":"HANGUL CHOSEONG SIOS-NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112E"},4399:{"value":"112F","name":"HANGUL CHOSEONG SIOS-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112F"},4400:{"value":"1130","name":"HANGUL CHOSEONG SIOS-RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1130"},4401:{"value":"1131","name":"HANGUL CHOSEONG SIOS-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1131"},4402:{"value":"1132","name":"HANGUL CHOSEONG SIOS-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1132"},4403:{"value":"1133","name":"HANGUL CHOSEONG SIOS-PIEUP-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1133"},4404:{"value":"1134","name":"HANGUL CHOSEONG SIOS-SSANGSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1134"},4405:{"value":"1135","name":"HANGUL CHOSEONG SIOS-IEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1135"},4406:{"value":"1136","name":"HANGUL CHOSEONG SIOS-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1136"},4407:{"value":"1137","name":"HANGUL CHOSEONG SIOS-CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1137"},4408:{"value":"1138","name":"HANGUL CHOSEONG SIOS-KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1138"},4409:{"value":"1139","name":"HANGUL CHOSEONG SIOS-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1139"},4410:{"value":"113A","name":"HANGUL CHOSEONG SIOS-PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113A"},4411:{"value":"113B","name":"HANGUL CHOSEONG SIOS-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113B"},4412:{"value":"113C","name":"HANGUL CHOSEONG CHITUEUMSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113C"},4413:{"value":"113D","name":"HANGUL CHOSEONG CHITUEUMSSANGSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113D"},4414:{"value":"113E","name":"HANGUL CHOSEONG CEONGCHIEUMSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113E"},4415:{"value":"113F","name":"HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113F"},4416:{"value":"1140","name":"HANGUL CHOSEONG PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1140"},4417:{"value":"1141","name":"HANGUL CHOSEONG IEUNG-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1141"},4418:{"value":"1142","name":"HANGUL CHOSEONG IEUNG-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1142"},4419:{"value":"1143","name":"HANGUL CHOSEONG IEUNG-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1143"},4420:{"value":"1144","name":"HANGUL CHOSEONG IEUNG-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1144"},4421:{"value":"1145","name":"HANGUL CHOSEONG IEUNG-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1145"},4422:{"value":"1146","name":"HANGUL CHOSEONG IEUNG-PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1146"},4423:{"value":"1147","name":"HANGUL CHOSEONG SSANGIEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1147"},4424:{"value":"1148","name":"HANGUL CHOSEONG IEUNG-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1148"},4425:{"value":"1149","name":"HANGUL CHOSEONG IEUNG-CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1149"},4426:{"value":"114A","name":"HANGUL CHOSEONG IEUNG-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u114A"},4427:{"value":"114B","name":"HANGUL CHOSEONG IEUNG-PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u114B"},4428:{"value":"114C","name":"HANGUL CHOSEONG YESIEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u114C"},4429:{"value":"114D","name":"HANGUL CHOSEONG CIEUC-IEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u114D"},4430:{"value":"114E","name":"HANGUL CHOSEONG CHITUEUMCIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u114E"},4431:{"value":"114F","name":"HANGUL CHOSEONG CHITUEUMSSANGCIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u114F"},4432:{"value":"1150","name":"HANGUL CHOSEONG CEONGCHIEUMCIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1150"},4433:{"value":"1151","name":"HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1151"},4434:{"value":"1152","name":"HANGUL CHOSEONG CHIEUCH-KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1152"},4435:{"value":"1153","name":"HANGUL CHOSEONG CHIEUCH-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1153"},4436:{"value":"1154","name":"HANGUL CHOSEONG CHITUEUMCHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1154"},4437:{"value":"1155","name":"HANGUL CHOSEONG CEONGCHIEUMCHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1155"},4438:{"value":"1156","name":"HANGUL CHOSEONG PHIEUPH-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1156"},4439:{"value":"1157","name":"HANGUL CHOSEONG KAPYEOUNPHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1157"},4440:{"value":"1158","name":"HANGUL CHOSEONG SSANGHIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1158"},4441:{"value":"1159","name":"HANGUL CHOSEONG YEORINHIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1159"},4442:{"value":"115A","name":"HANGUL CHOSEONG KIYEOK-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115A"},4443:{"value":"115B","name":"HANGUL CHOSEONG NIEUN-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115B"},4444:{"value":"115C","name":"HANGUL CHOSEONG NIEUN-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115C"},4445:{"value":"115D","name":"HANGUL CHOSEONG NIEUN-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115D"},4446:{"value":"115E","name":"HANGUL CHOSEONG TIKEUT-RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115E"},4447:{"value":"115F","name":"HANGUL CHOSEONG FILLER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115F"},4448:{"value":"1160","name":"HANGUL JUNGSEONG FILLER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1160"},4449:{"value":"1161","name":"HANGUL JUNGSEONG A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1161"},4450:{"value":"1162","name":"HANGUL JUNGSEONG AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1162"},4451:{"value":"1163","name":"HANGUL JUNGSEONG YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1163"},4452:{"value":"1164","name":"HANGUL JUNGSEONG YAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1164"},4453:{"value":"1165","name":"HANGUL JUNGSEONG EO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1165"},4454:{"value":"1166","name":"HANGUL JUNGSEONG E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1166"},4455:{"value":"1167","name":"HANGUL JUNGSEONG YEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1167"},4456:{"value":"1168","name":"HANGUL JUNGSEONG YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1168"},4457:{"value":"1169","name":"HANGUL JUNGSEONG O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1169"},4458:{"value":"116A","name":"HANGUL JUNGSEONG WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116A"},4459:{"value":"116B","name":"HANGUL JUNGSEONG WAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116B"},4460:{"value":"116C","name":"HANGUL JUNGSEONG OE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116C"},4461:{"value":"116D","name":"HANGUL JUNGSEONG YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116D"},4462:{"value":"116E","name":"HANGUL JUNGSEONG U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116E"},4463:{"value":"116F","name":"HANGUL JUNGSEONG WEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116F"},4464:{"value":"1170","name":"HANGUL JUNGSEONG WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1170"},4465:{"value":"1171","name":"HANGUL JUNGSEONG WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1171"},4466:{"value":"1172","name":"HANGUL JUNGSEONG YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1172"},4467:{"value":"1173","name":"HANGUL JUNGSEONG EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1173"},4468:{"value":"1174","name":"HANGUL JUNGSEONG YI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1174"},4469:{"value":"1175","name":"HANGUL JUNGSEONG I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1175"},4470:{"value":"1176","name":"HANGUL JUNGSEONG A-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1176"},4471:{"value":"1177","name":"HANGUL JUNGSEONG A-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1177"},4472:{"value":"1178","name":"HANGUL JUNGSEONG YA-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1178"},4473:{"value":"1179","name":"HANGUL JUNGSEONG YA-YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1179"},4474:{"value":"117A","name":"HANGUL JUNGSEONG EO-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u117A"},4475:{"value":"117B","name":"HANGUL JUNGSEONG EO-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u117B"},4476:{"value":"117C","name":"HANGUL JUNGSEONG EO-EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u117C"},4477:{"value":"117D","name":"HANGUL JUNGSEONG YEO-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u117D"},4478:{"value":"117E","name":"HANGUL JUNGSEONG YEO-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u117E"},4479:{"value":"117F","name":"HANGUL JUNGSEONG O-EO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u117F"},4480:{"value":"1180","name":"HANGUL JUNGSEONG O-E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1180"},4481:{"value":"1181","name":"HANGUL JUNGSEONG O-YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1181"},4482:{"value":"1182","name":"HANGUL JUNGSEONG O-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1182"},4483:{"value":"1183","name":"HANGUL JUNGSEONG O-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1183"},4484:{"value":"1184","name":"HANGUL JUNGSEONG YO-YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1184"},4485:{"value":"1185","name":"HANGUL JUNGSEONG YO-YAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1185"},4486:{"value":"1186","name":"HANGUL JUNGSEONG YO-YEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1186"},4487:{"value":"1187","name":"HANGUL JUNGSEONG YO-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1187"},4488:{"value":"1188","name":"HANGUL JUNGSEONG YO-I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1188"},4489:{"value":"1189","name":"HANGUL JUNGSEONG U-A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1189"},4490:{"value":"118A","name":"HANGUL JUNGSEONG U-AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118A"},4491:{"value":"118B","name":"HANGUL JUNGSEONG U-EO-EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118B"},4492:{"value":"118C","name":"HANGUL JUNGSEONG U-YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118C"},4493:{"value":"118D","name":"HANGUL JUNGSEONG U-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118D"},4494:{"value":"118E","name":"HANGUL JUNGSEONG YU-A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118E"},4495:{"value":"118F","name":"HANGUL JUNGSEONG YU-EO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118F"},4496:{"value":"1190","name":"HANGUL JUNGSEONG YU-E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1190"},4497:{"value":"1191","name":"HANGUL JUNGSEONG YU-YEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1191"},4498:{"value":"1192","name":"HANGUL JUNGSEONG YU-YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1192"},4499:{"value":"1193","name":"HANGUL JUNGSEONG YU-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1193"},4500:{"value":"1194","name":"HANGUL JUNGSEONG YU-I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1194"},4501:{"value":"1195","name":"HANGUL JUNGSEONG EU-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1195"},4502:{"value":"1196","name":"HANGUL JUNGSEONG EU-EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1196"},4503:{"value":"1197","name":"HANGUL JUNGSEONG YI-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1197"},4504:{"value":"1198","name":"HANGUL JUNGSEONG I-A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1198"},4505:{"value":"1199","name":"HANGUL JUNGSEONG I-YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1199"},4506:{"value":"119A","name":"HANGUL JUNGSEONG I-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119A"},4507:{"value":"119B","name":"HANGUL JUNGSEONG I-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119B"},4508:{"value":"119C","name":"HANGUL JUNGSEONG I-EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119C"},4509:{"value":"119D","name":"HANGUL JUNGSEONG I-ARAEA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119D"},4510:{"value":"119E","name":"HANGUL JUNGSEONG ARAEA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119E"},4511:{"value":"119F","name":"HANGUL JUNGSEONG ARAEA-EO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119F"},4512:{"value":"11A0","name":"HANGUL JUNGSEONG ARAEA-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A0"},4513:{"value":"11A1","name":"HANGUL JUNGSEONG ARAEA-I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A1"},4514:{"value":"11A2","name":"HANGUL JUNGSEONG SSANGARAEA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A2"},4515:{"value":"11A3","name":"HANGUL JUNGSEONG A-EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A3"},4516:{"value":"11A4","name":"HANGUL JUNGSEONG YA-U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A4"},4517:{"value":"11A5","name":"HANGUL JUNGSEONG YEO-YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A5"},4518:{"value":"11A6","name":"HANGUL JUNGSEONG O-YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A6"},4519:{"value":"11A7","name":"HANGUL JUNGSEONG O-YAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A7"},4520:{"value":"11A8","name":"HANGUL JONGSEONG KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A8"},4521:{"value":"11A9","name":"HANGUL JONGSEONG SSANGKIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A9"},4522:{"value":"11AA","name":"HANGUL JONGSEONG KIYEOK-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AA"},4523:{"value":"11AB","name":"HANGUL JONGSEONG NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AB"},4524:{"value":"11AC","name":"HANGUL JONGSEONG NIEUN-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AC"},4525:{"value":"11AD","name":"HANGUL JONGSEONG NIEUN-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AD"},4526:{"value":"11AE","name":"HANGUL JONGSEONG TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AE"},4527:{"value":"11AF","name":"HANGUL JONGSEONG RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AF"},4528:{"value":"11B0","name":"HANGUL JONGSEONG RIEUL-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B0"},4529:{"value":"11B1","name":"HANGUL JONGSEONG RIEUL-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B1"},4530:{"value":"11B2","name":"HANGUL JONGSEONG RIEUL-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B2"},4531:{"value":"11B3","name":"HANGUL JONGSEONG RIEUL-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B3"},4532:{"value":"11B4","name":"HANGUL JONGSEONG RIEUL-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B4"},4533:{"value":"11B5","name":"HANGUL JONGSEONG RIEUL-PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B5"},4534:{"value":"11B6","name":"HANGUL JONGSEONG RIEUL-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B6"},4535:{"value":"11B7","name":"HANGUL JONGSEONG MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B7"},4536:{"value":"11B8","name":"HANGUL JONGSEONG PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B8"},4537:{"value":"11B9","name":"HANGUL JONGSEONG PIEUP-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B9"},4538:{"value":"11BA","name":"HANGUL JONGSEONG SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BA"},4539:{"value":"11BB","name":"HANGUL JONGSEONG SSANGSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BB"},4540:{"value":"11BC","name":"HANGUL JONGSEONG IEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BC"},4541:{"value":"11BD","name":"HANGUL JONGSEONG CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BD"},4542:{"value":"11BE","name":"HANGUL JONGSEONG CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BE"},4543:{"value":"11BF","name":"HANGUL JONGSEONG KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BF"},4544:{"value":"11C0","name":"HANGUL JONGSEONG THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C0"},4545:{"value":"11C1","name":"HANGUL JONGSEONG PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C1"},4546:{"value":"11C2","name":"HANGUL JONGSEONG HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C2"},4547:{"value":"11C3","name":"HANGUL JONGSEONG KIYEOK-RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C3"},4548:{"value":"11C4","name":"HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C4"},4549:{"value":"11C5","name":"HANGUL JONGSEONG NIEUN-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C5"},4550:{"value":"11C6","name":"HANGUL JONGSEONG NIEUN-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C6"},4551:{"value":"11C7","name":"HANGUL JONGSEONG NIEUN-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C7"},4552:{"value":"11C8","name":"HANGUL JONGSEONG NIEUN-PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C8"},4553:{"value":"11C9","name":"HANGUL JONGSEONG NIEUN-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C9"},4554:{"value":"11CA","name":"HANGUL JONGSEONG TIKEUT-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11CA"},4555:{"value":"11CB","name":"HANGUL JONGSEONG TIKEUT-RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11CB"},4556:{"value":"11CC","name":"HANGUL JONGSEONG RIEUL-KIYEOK-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11CC"},4557:{"value":"11CD","name":"HANGUL JONGSEONG RIEUL-NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11CD"},4558:{"value":"11CE","name":"HANGUL JONGSEONG RIEUL-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11CE"},4559:{"value":"11CF","name":"HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11CF"},4560:{"value":"11D0","name":"HANGUL JONGSEONG SSANGRIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D0"},4561:{"value":"11D1","name":"HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D1"},4562:{"value":"11D2","name":"HANGUL JONGSEONG RIEUL-MIEUM-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D2"},4563:{"value":"11D3","name":"HANGUL JONGSEONG RIEUL-PIEUP-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D3"},4564:{"value":"11D4","name":"HANGUL JONGSEONG RIEUL-PIEUP-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D4"},4565:{"value":"11D5","name":"HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D5"},4566:{"value":"11D6","name":"HANGUL JONGSEONG RIEUL-SSANGSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D6"},4567:{"value":"11D7","name":"HANGUL JONGSEONG RIEUL-PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D7"},4568:{"value":"11D8","name":"HANGUL JONGSEONG RIEUL-KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D8"},4569:{"value":"11D9","name":"HANGUL JONGSEONG RIEUL-YEORINHIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D9"},4570:{"value":"11DA","name":"HANGUL JONGSEONG MIEUM-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11DA"},4571:{"value":"11DB","name":"HANGUL JONGSEONG MIEUM-RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11DB"},4572:{"value":"11DC","name":"HANGUL JONGSEONG MIEUM-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11DC"},4573:{"value":"11DD","name":"HANGUL JONGSEONG MIEUM-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11DD"},4574:{"value":"11DE","name":"HANGUL JONGSEONG MIEUM-SSANGSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11DE"},4575:{"value":"11DF","name":"HANGUL JONGSEONG MIEUM-PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11DF"},4576:{"value":"11E0","name":"HANGUL JONGSEONG MIEUM-CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11E0"},4577:{"value":"11E1","name":"HANGUL JONGSEONG MIEUM-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11E1"},4578:{"value":"11E2","name":"HANGUL JONGSEONG KAPYEOUNMIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11E2"},4579:{"value":"11E3","name":"HANGUL JONGSEONG PIEUP-RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11E3"},4580:{"value":"11E4","name":"HANGUL JONGSEONG PIEUP-PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11E4"},4581:{"value":"11E5","name":"HANGUL JONGSEONG PIEUP-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11E5"},4582:{"value":"11E6","name":"HANGUL JONGSEONG KAPYEOUNPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11E6"},4583:{"value":"11E7","name":"HANGUL JONGSEONG SIOS-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11E7"},4584:{"value":"11E8","name":"HANGUL JONGSEONG SIOS-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11E8"},4585:{"value":"11E9","name":"HANGUL JONGSEONG SIOS-RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11E9"},4586:{"value":"11EA","name":"HANGUL JONGSEONG SIOS-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11EA"},4587:{"value":"11EB","name":"HANGUL JONGSEONG PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11EB"},4588:{"value":"11EC","name":"HANGUL JONGSEONG IEUNG-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11EC"},4589:{"value":"11ED","name":"HANGUL JONGSEONG IEUNG-SSANGKIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11ED"},4590:{"value":"11EE","name":"HANGUL JONGSEONG SSANGIEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11EE"},4591:{"value":"11EF","name":"HANGUL JONGSEONG IEUNG-KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11EF"},4592:{"value":"11F0","name":"HANGUL JONGSEONG YESIEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11F0"},4593:{"value":"11F1","name":"HANGUL JONGSEONG YESIEUNG-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11F1"},4594:{"value":"11F2","name":"HANGUL JONGSEONG YESIEUNG-PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11F2"},4595:{"value":"11F3","name":"HANGUL JONGSEONG PHIEUPH-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11F3"},4596:{"value":"11F4","name":"HANGUL JONGSEONG KAPYEOUNPHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11F4"},4597:{"value":"11F5","name":"HANGUL JONGSEONG HIEUH-NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11F5"},4598:{"value":"11F6","name":"HANGUL JONGSEONG HIEUH-RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11F6"},4599:{"value":"11F7","name":"HANGUL JONGSEONG HIEUH-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11F7"},4600:{"value":"11F8","name":"HANGUL JONGSEONG HIEUH-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11F8"},4601:{"value":"11F9","name":"HANGUL JONGSEONG YEORINHIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11F9"},4602:{"value":"11FA","name":"HANGUL JONGSEONG KIYEOK-NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11FA"},4603:{"value":"11FB","name":"HANGUL JONGSEONG KIYEOK-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11FB"},4604:{"value":"11FC","name":"HANGUL JONGSEONG KIYEOK-CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11FC"},4605:{"value":"11FD","name":"HANGUL JONGSEONG KIYEOK-KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11FD"},4606:{"value":"11FE","name":"HANGUL JONGSEONG KIYEOK-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11FE"},4607:{"value":"11FF","name":"HANGUL JONGSEONG SSANGNIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11FF"},4608:{"value":"1200","name":"ETHIOPIC SYLLABLE HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1200"},4609:{"value":"1201","name":"ETHIOPIC SYLLABLE HU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1201"},4610:{"value":"1202","name":"ETHIOPIC SYLLABLE HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1202"},4611:{"value":"1203","name":"ETHIOPIC SYLLABLE HAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1203"},4612:{"value":"1204","name":"ETHIOPIC SYLLABLE HEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1204"},4613:{"value":"1205","name":"ETHIOPIC SYLLABLE HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1205"},4614:{"value":"1206","name":"ETHIOPIC SYLLABLE HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1206"},4615:{"value":"1207","name":"ETHIOPIC SYLLABLE HOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1207"},4616:{"value":"1208","name":"ETHIOPIC SYLLABLE LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1208"},4617:{"value":"1209","name":"ETHIOPIC SYLLABLE LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1209"},4618:{"value":"120A","name":"ETHIOPIC SYLLABLE LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120A"},4619:{"value":"120B","name":"ETHIOPIC SYLLABLE LAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120B"},4620:{"value":"120C","name":"ETHIOPIC SYLLABLE LEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120C"},4621:{"value":"120D","name":"ETHIOPIC SYLLABLE LE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120D"},4622:{"value":"120E","name":"ETHIOPIC SYLLABLE LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120E"},4623:{"value":"120F","name":"ETHIOPIC SYLLABLE LWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120F"},4624:{"value":"1210","name":"ETHIOPIC SYLLABLE HHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1210"},4625:{"value":"1211","name":"ETHIOPIC SYLLABLE HHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1211"},4626:{"value":"1212","name":"ETHIOPIC SYLLABLE HHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1212"},4627:{"value":"1213","name":"ETHIOPIC SYLLABLE HHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1213"},4628:{"value":"1214","name":"ETHIOPIC SYLLABLE HHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1214"},4629:{"value":"1215","name":"ETHIOPIC SYLLABLE HHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1215"},4630:{"value":"1216","name":"ETHIOPIC SYLLABLE HHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1216"},4631:{"value":"1217","name":"ETHIOPIC SYLLABLE HHWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1217"},4632:{"value":"1218","name":"ETHIOPIC SYLLABLE MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1218"},4633:{"value":"1219","name":"ETHIOPIC SYLLABLE MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1219"},4634:{"value":"121A","name":"ETHIOPIC SYLLABLE MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121A"},4635:{"value":"121B","name":"ETHIOPIC SYLLABLE MAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121B"},4636:{"value":"121C","name":"ETHIOPIC SYLLABLE MEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121C"},4637:{"value":"121D","name":"ETHIOPIC SYLLABLE ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121D"},4638:{"value":"121E","name":"ETHIOPIC SYLLABLE MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121E"},4639:{"value":"121F","name":"ETHIOPIC SYLLABLE MWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121F"},4640:{"value":"1220","name":"ETHIOPIC SYLLABLE SZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1220"},4641:{"value":"1221","name":"ETHIOPIC SYLLABLE SZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1221"},4642:{"value":"1222","name":"ETHIOPIC SYLLABLE SZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1222"},4643:{"value":"1223","name":"ETHIOPIC SYLLABLE SZAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1223"},4644:{"value":"1224","name":"ETHIOPIC SYLLABLE SZEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1224"},4645:{"value":"1225","name":"ETHIOPIC SYLLABLE SZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1225"},4646:{"value":"1226","name":"ETHIOPIC SYLLABLE SZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1226"},4647:{"value":"1227","name":"ETHIOPIC SYLLABLE SZWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1227"},4648:{"value":"1228","name":"ETHIOPIC SYLLABLE RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1228"},4649:{"value":"1229","name":"ETHIOPIC SYLLABLE RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1229"},4650:{"value":"122A","name":"ETHIOPIC SYLLABLE RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122A"},4651:{"value":"122B","name":"ETHIOPIC SYLLABLE RAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122B"},4652:{"value":"122C","name":"ETHIOPIC SYLLABLE REE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122C"},4653:{"value":"122D","name":"ETHIOPIC SYLLABLE RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122D"},4654:{"value":"122E","name":"ETHIOPIC SYLLABLE RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122E"},4655:{"value":"122F","name":"ETHIOPIC SYLLABLE RWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122F"},4656:{"value":"1230","name":"ETHIOPIC SYLLABLE SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1230"},4657:{"value":"1231","name":"ETHIOPIC SYLLABLE SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1231"},4658:{"value":"1232","name":"ETHIOPIC SYLLABLE SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1232"},4659:{"value":"1233","name":"ETHIOPIC SYLLABLE SAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1233"},4660:{"value":"1234","name":"ETHIOPIC SYLLABLE SEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1234"},4661:{"value":"1235","name":"ETHIOPIC SYLLABLE SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1235"},4662:{"value":"1236","name":"ETHIOPIC SYLLABLE SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1236"},4663:{"value":"1237","name":"ETHIOPIC SYLLABLE SWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1237"},4664:{"value":"1238","name":"ETHIOPIC SYLLABLE SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1238"},4665:{"value":"1239","name":"ETHIOPIC SYLLABLE SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1239"},4666:{"value":"123A","name":"ETHIOPIC SYLLABLE SHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u123A"},4667:{"value":"123B","name":"ETHIOPIC SYLLABLE SHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u123B"},4668:{"value":"123C","name":"ETHIOPIC SYLLABLE SHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u123C"},4669:{"value":"123D","name":"ETHIOPIC SYLLABLE SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u123D"},4670:{"value":"123E","name":"ETHIOPIC SYLLABLE SHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u123E"},4671:{"value":"123F","name":"ETHIOPIC SYLLABLE SHWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u123F"},4672:{"value":"1240","name":"ETHIOPIC SYLLABLE QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1240"},4673:{"value":"1241","name":"ETHIOPIC SYLLABLE QU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1241"},4674:{"value":"1242","name":"ETHIOPIC SYLLABLE QI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1242"},4675:{"value":"1243","name":"ETHIOPIC SYLLABLE QAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1243"},4676:{"value":"1244","name":"ETHIOPIC SYLLABLE QEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1244"},4677:{"value":"1245","name":"ETHIOPIC SYLLABLE QE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1245"},4678:{"value":"1246","name":"ETHIOPIC SYLLABLE QO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1246"},4679:{"value":"1247","name":"ETHIOPIC SYLLABLE QOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1247"},4680:{"value":"1248","name":"ETHIOPIC SYLLABLE QWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1248"},4682:{"value":"124A","name":"ETHIOPIC SYLLABLE QWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u124A"},4683:{"value":"124B","name":"ETHIOPIC SYLLABLE QWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u124B"},4684:{"value":"124C","name":"ETHIOPIC SYLLABLE QWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u124C"},4685:{"value":"124D","name":"ETHIOPIC SYLLABLE QWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u124D"},4688:{"value":"1250","name":"ETHIOPIC SYLLABLE QHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1250"},4689:{"value":"1251","name":"ETHIOPIC SYLLABLE QHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1251"},4690:{"value":"1252","name":"ETHIOPIC SYLLABLE QHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1252"},4691:{"value":"1253","name":"ETHIOPIC SYLLABLE QHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1253"},4692:{"value":"1254","name":"ETHIOPIC SYLLABLE QHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1254"},4693:{"value":"1255","name":"ETHIOPIC SYLLABLE QHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1255"},4694:{"value":"1256","name":"ETHIOPIC SYLLABLE QHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1256"},4696:{"value":"1258","name":"ETHIOPIC SYLLABLE QHWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1258"},4698:{"value":"125A","name":"ETHIOPIC SYLLABLE QHWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u125A"},4699:{"value":"125B","name":"ETHIOPIC SYLLABLE QHWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u125B"},4700:{"value":"125C","name":"ETHIOPIC SYLLABLE QHWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u125C"},4701:{"value":"125D","name":"ETHIOPIC SYLLABLE QHWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u125D"},4704:{"value":"1260","name":"ETHIOPIC SYLLABLE BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1260"},4705:{"value":"1261","name":"ETHIOPIC SYLLABLE BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1261"},4706:{"value":"1262","name":"ETHIOPIC SYLLABLE BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1262"},4707:{"value":"1263","name":"ETHIOPIC SYLLABLE BAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1263"},4708:{"value":"1264","name":"ETHIOPIC SYLLABLE BEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1264"},4709:{"value":"1265","name":"ETHIOPIC SYLLABLE BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1265"},4710:{"value":"1266","name":"ETHIOPIC SYLLABLE BO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1266"},4711:{"value":"1267","name":"ETHIOPIC SYLLABLE BWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1267"},4712:{"value":"1268","name":"ETHIOPIC SYLLABLE VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1268"},4713:{"value":"1269","name":"ETHIOPIC SYLLABLE VU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1269"},4714:{"value":"126A","name":"ETHIOPIC SYLLABLE VI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u126A"},4715:{"value":"126B","name":"ETHIOPIC SYLLABLE VAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u126B"},4716:{"value":"126C","name":"ETHIOPIC SYLLABLE VEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u126C"},4717:{"value":"126D","name":"ETHIOPIC SYLLABLE VE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u126D"},4718:{"value":"126E","name":"ETHIOPIC SYLLABLE VO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u126E"},4719:{"value":"126F","name":"ETHIOPIC SYLLABLE VWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u126F"},4720:{"value":"1270","name":"ETHIOPIC SYLLABLE TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1270"},4721:{"value":"1271","name":"ETHIOPIC SYLLABLE TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1271"},4722:{"value":"1272","name":"ETHIOPIC SYLLABLE TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1272"},4723:{"value":"1273","name":"ETHIOPIC SYLLABLE TAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1273"},4724:{"value":"1274","name":"ETHIOPIC SYLLABLE TEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1274"},4725:{"value":"1275","name":"ETHIOPIC SYLLABLE TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1275"},4726:{"value":"1276","name":"ETHIOPIC SYLLABLE TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1276"},4727:{"value":"1277","name":"ETHIOPIC SYLLABLE TWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1277"},4728:{"value":"1278","name":"ETHIOPIC SYLLABLE CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1278"},4729:{"value":"1279","name":"ETHIOPIC SYLLABLE CU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1279"},4730:{"value":"127A","name":"ETHIOPIC SYLLABLE CI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u127A"},4731:{"value":"127B","name":"ETHIOPIC SYLLABLE CAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u127B"},4732:{"value":"127C","name":"ETHIOPIC SYLLABLE CEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u127C"},4733:{"value":"127D","name":"ETHIOPIC SYLLABLE CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u127D"},4734:{"value":"127E","name":"ETHIOPIC SYLLABLE CO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u127E"},4735:{"value":"127F","name":"ETHIOPIC SYLLABLE CWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u127F"},4736:{"value":"1280","name":"ETHIOPIC SYLLABLE XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1280"},4737:{"value":"1281","name":"ETHIOPIC SYLLABLE XU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1281"},4738:{"value":"1282","name":"ETHIOPIC SYLLABLE XI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1282"},4739:{"value":"1283","name":"ETHIOPIC SYLLABLE XAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1283"},4740:{"value":"1284","name":"ETHIOPIC SYLLABLE XEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1284"},4741:{"value":"1285","name":"ETHIOPIC SYLLABLE XE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1285"},4742:{"value":"1286","name":"ETHIOPIC SYLLABLE XO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1286"},4743:{"value":"1287","name":"ETHIOPIC SYLLABLE XOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1287"},4744:{"value":"1288","name":"ETHIOPIC SYLLABLE XWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1288"},4746:{"value":"128A","name":"ETHIOPIC SYLLABLE XWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u128A"},4747:{"value":"128B","name":"ETHIOPIC SYLLABLE XWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u128B"},4748:{"value":"128C","name":"ETHIOPIC SYLLABLE XWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u128C"},4749:{"value":"128D","name":"ETHIOPIC SYLLABLE XWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u128D"},4752:{"value":"1290","name":"ETHIOPIC SYLLABLE NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1290"},4753:{"value":"1291","name":"ETHIOPIC SYLLABLE NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1291"},4754:{"value":"1292","name":"ETHIOPIC SYLLABLE NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1292"},4755:{"value":"1293","name":"ETHIOPIC SYLLABLE NAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1293"},4756:{"value":"1294","name":"ETHIOPIC SYLLABLE NEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1294"},4757:{"value":"1295","name":"ETHIOPIC SYLLABLE NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1295"},4758:{"value":"1296","name":"ETHIOPIC SYLLABLE NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1296"},4759:{"value":"1297","name":"ETHIOPIC SYLLABLE NWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1297"},4760:{"value":"1298","name":"ETHIOPIC SYLLABLE NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1298"},4761:{"value":"1299","name":"ETHIOPIC SYLLABLE NYU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1299"},4762:{"value":"129A","name":"ETHIOPIC SYLLABLE NYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129A"},4763:{"value":"129B","name":"ETHIOPIC SYLLABLE NYAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129B"},4764:{"value":"129C","name":"ETHIOPIC SYLLABLE NYEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129C"},4765:{"value":"129D","name":"ETHIOPIC SYLLABLE NYE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129D"},4766:{"value":"129E","name":"ETHIOPIC SYLLABLE NYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129E"},4767:{"value":"129F","name":"ETHIOPIC SYLLABLE NYWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129F"},4768:{"value":"12A0","name":"ETHIOPIC SYLLABLE GLOTTAL A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A0"},4769:{"value":"12A1","name":"ETHIOPIC SYLLABLE GLOTTAL U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A1"},4770:{"value":"12A2","name":"ETHIOPIC SYLLABLE GLOTTAL I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A2"},4771:{"value":"12A3","name":"ETHIOPIC SYLLABLE GLOTTAL AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A3"},4772:{"value":"12A4","name":"ETHIOPIC SYLLABLE GLOTTAL EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A4"},4773:{"value":"12A5","name":"ETHIOPIC SYLLABLE GLOTTAL E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A5"},4774:{"value":"12A6","name":"ETHIOPIC SYLLABLE GLOTTAL O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A6"},4775:{"value":"12A7","name":"ETHIOPIC SYLLABLE GLOTTAL WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A7"},4776:{"value":"12A8","name":"ETHIOPIC SYLLABLE KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A8"},4777:{"value":"12A9","name":"ETHIOPIC SYLLABLE KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A9"},4778:{"value":"12AA","name":"ETHIOPIC SYLLABLE KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12AA"},4779:{"value":"12AB","name":"ETHIOPIC SYLLABLE KAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12AB"},4780:{"value":"12AC","name":"ETHIOPIC SYLLABLE KEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12AC"},4781:{"value":"12AD","name":"ETHIOPIC SYLLABLE KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12AD"},4782:{"value":"12AE","name":"ETHIOPIC SYLLABLE KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12AE"},4783:{"value":"12AF","name":"ETHIOPIC SYLLABLE KOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12AF"},4784:{"value":"12B0","name":"ETHIOPIC SYLLABLE KWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B0"},4786:{"value":"12B2","name":"ETHIOPIC SYLLABLE KWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B2"},4787:{"value":"12B3","name":"ETHIOPIC SYLLABLE KWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B3"},4788:{"value":"12B4","name":"ETHIOPIC SYLLABLE KWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B4"},4789:{"value":"12B5","name":"ETHIOPIC SYLLABLE KWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B5"},4792:{"value":"12B8","name":"ETHIOPIC SYLLABLE KXA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B8"},4793:{"value":"12B9","name":"ETHIOPIC SYLLABLE KXU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B9"},4794:{"value":"12BA","name":"ETHIOPIC SYLLABLE KXI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BA"},4795:{"value":"12BB","name":"ETHIOPIC SYLLABLE KXAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BB"},4796:{"value":"12BC","name":"ETHIOPIC SYLLABLE KXEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BC"},4797:{"value":"12BD","name":"ETHIOPIC SYLLABLE KXE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BD"},4798:{"value":"12BE","name":"ETHIOPIC SYLLABLE KXO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BE"},4800:{"value":"12C0","name":"ETHIOPIC SYLLABLE KXWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C0"},4802:{"value":"12C2","name":"ETHIOPIC SYLLABLE KXWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C2"},4803:{"value":"12C3","name":"ETHIOPIC SYLLABLE KXWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C3"},4804:{"value":"12C4","name":"ETHIOPIC SYLLABLE KXWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C4"},4805:{"value":"12C5","name":"ETHIOPIC SYLLABLE KXWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C5"},4808:{"value":"12C8","name":"ETHIOPIC SYLLABLE WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C8"},4809:{"value":"12C9","name":"ETHIOPIC SYLLABLE WU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C9"},4810:{"value":"12CA","name":"ETHIOPIC SYLLABLE WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CA"},4811:{"value":"12CB","name":"ETHIOPIC SYLLABLE WAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CB"},4812:{"value":"12CC","name":"ETHIOPIC SYLLABLE WEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CC"},4813:{"value":"12CD","name":"ETHIOPIC SYLLABLE WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CD"},4814:{"value":"12CE","name":"ETHIOPIC SYLLABLE WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CE"},4815:{"value":"12CF","name":"ETHIOPIC SYLLABLE WOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CF"},4816:{"value":"12D0","name":"ETHIOPIC SYLLABLE PHARYNGEAL A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D0"},4817:{"value":"12D1","name":"ETHIOPIC SYLLABLE PHARYNGEAL U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D1"},4818:{"value":"12D2","name":"ETHIOPIC SYLLABLE PHARYNGEAL I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D2"},4819:{"value":"12D3","name":"ETHIOPIC SYLLABLE PHARYNGEAL AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D3"},4820:{"value":"12D4","name":"ETHIOPIC SYLLABLE PHARYNGEAL EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D4"},4821:{"value":"12D5","name":"ETHIOPIC SYLLABLE PHARYNGEAL E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D5"},4822:{"value":"12D6","name":"ETHIOPIC SYLLABLE PHARYNGEAL O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D6"},4824:{"value":"12D8","name":"ETHIOPIC SYLLABLE ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D8"},4825:{"value":"12D9","name":"ETHIOPIC SYLLABLE ZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D9"},4826:{"value":"12DA","name":"ETHIOPIC SYLLABLE ZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DA"},4827:{"value":"12DB","name":"ETHIOPIC SYLLABLE ZAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DB"},4828:{"value":"12DC","name":"ETHIOPIC SYLLABLE ZEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DC"},4829:{"value":"12DD","name":"ETHIOPIC SYLLABLE ZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DD"},4830:{"value":"12DE","name":"ETHIOPIC SYLLABLE ZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DE"},4831:{"value":"12DF","name":"ETHIOPIC SYLLABLE ZWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DF"},4832:{"value":"12E0","name":"ETHIOPIC SYLLABLE ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E0"},4833:{"value":"12E1","name":"ETHIOPIC SYLLABLE ZHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E1"},4834:{"value":"12E2","name":"ETHIOPIC SYLLABLE ZHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E2"},4835:{"value":"12E3","name":"ETHIOPIC SYLLABLE ZHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E3"},4836:{"value":"12E4","name":"ETHIOPIC SYLLABLE ZHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E4"},4837:{"value":"12E5","name":"ETHIOPIC SYLLABLE ZHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E5"},4838:{"value":"12E6","name":"ETHIOPIC SYLLABLE ZHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E6"},4839:{"value":"12E7","name":"ETHIOPIC SYLLABLE ZHWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E7"},4840:{"value":"12E8","name":"ETHIOPIC SYLLABLE YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E8"},4841:{"value":"12E9","name":"ETHIOPIC SYLLABLE YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E9"},4842:{"value":"12EA","name":"ETHIOPIC SYLLABLE YI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12EA"},4843:{"value":"12EB","name":"ETHIOPIC SYLLABLE YAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12EB"},4844:{"value":"12EC","name":"ETHIOPIC SYLLABLE YEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12EC"},4845:{"value":"12ED","name":"ETHIOPIC SYLLABLE YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12ED"},4846:{"value":"12EE","name":"ETHIOPIC SYLLABLE YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12EE"},4847:{"value":"12EF","name":"ETHIOPIC SYLLABLE YOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12EF"},4848:{"value":"12F0","name":"ETHIOPIC SYLLABLE DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F0"},4849:{"value":"12F1","name":"ETHIOPIC SYLLABLE DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F1"},4850:{"value":"12F2","name":"ETHIOPIC SYLLABLE DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F2"},4851:{"value":"12F3","name":"ETHIOPIC SYLLABLE DAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F3"},4852:{"value":"12F4","name":"ETHIOPIC SYLLABLE DEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F4"},4853:{"value":"12F5","name":"ETHIOPIC SYLLABLE DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F5"},4854:{"value":"12F6","name":"ETHIOPIC SYLLABLE DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F6"},4855:{"value":"12F7","name":"ETHIOPIC SYLLABLE DWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F7"},4856:{"value":"12F8","name":"ETHIOPIC SYLLABLE DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F8"},4857:{"value":"12F9","name":"ETHIOPIC SYLLABLE DDU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F9"},4858:{"value":"12FA","name":"ETHIOPIC SYLLABLE DDI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12FA"},4859:{"value":"12FB","name":"ETHIOPIC SYLLABLE DDAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12FB"},4860:{"value":"12FC","name":"ETHIOPIC SYLLABLE DDEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12FC"},4861:{"value":"12FD","name":"ETHIOPIC SYLLABLE DDE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12FD"},4862:{"value":"12FE","name":"ETHIOPIC SYLLABLE DDO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12FE"},4863:{"value":"12FF","name":"ETHIOPIC SYLLABLE DDWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12FF"},4864:{"value":"1300","name":"ETHIOPIC SYLLABLE JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1300"},4865:{"value":"1301","name":"ETHIOPIC SYLLABLE JU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1301"},4866:{"value":"1302","name":"ETHIOPIC SYLLABLE JI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1302"},4867:{"value":"1303","name":"ETHIOPIC SYLLABLE JAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1303"},4868:{"value":"1304","name":"ETHIOPIC SYLLABLE JEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1304"},4869:{"value":"1305","name":"ETHIOPIC SYLLABLE JE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1305"},4870:{"value":"1306","name":"ETHIOPIC SYLLABLE JO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1306"},4871:{"value":"1307","name":"ETHIOPIC SYLLABLE JWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1307"},4872:{"value":"1308","name":"ETHIOPIC SYLLABLE GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1308"},4873:{"value":"1309","name":"ETHIOPIC SYLLABLE GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1309"},4874:{"value":"130A","name":"ETHIOPIC SYLLABLE GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u130A"},4875:{"value":"130B","name":"ETHIOPIC SYLLABLE GAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u130B"},4876:{"value":"130C","name":"ETHIOPIC SYLLABLE GEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u130C"},4877:{"value":"130D","name":"ETHIOPIC SYLLABLE GE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u130D"},4878:{"value":"130E","name":"ETHIOPIC SYLLABLE GO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u130E"},4879:{"value":"130F","name":"ETHIOPIC SYLLABLE GOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u130F"},4880:{"value":"1310","name":"ETHIOPIC SYLLABLE GWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1310"},4882:{"value":"1312","name":"ETHIOPIC SYLLABLE GWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1312"},4883:{"value":"1313","name":"ETHIOPIC SYLLABLE GWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1313"},4884:{"value":"1314","name":"ETHIOPIC SYLLABLE GWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1314"},4885:{"value":"1315","name":"ETHIOPIC SYLLABLE GWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1315"},4888:{"value":"1318","name":"ETHIOPIC SYLLABLE GGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1318"},4889:{"value":"1319","name":"ETHIOPIC SYLLABLE GGU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1319"},4890:{"value":"131A","name":"ETHIOPIC SYLLABLE GGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131A"},4891:{"value":"131B","name":"ETHIOPIC SYLLABLE GGAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131B"},4892:{"value":"131C","name":"ETHIOPIC SYLLABLE GGEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131C"},4893:{"value":"131D","name":"ETHIOPIC SYLLABLE GGE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131D"},4894:{"value":"131E","name":"ETHIOPIC SYLLABLE GGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131E"},4895:{"value":"131F","name":"ETHIOPIC SYLLABLE GGWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131F"},4896:{"value":"1320","name":"ETHIOPIC SYLLABLE THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1320"},4897:{"value":"1321","name":"ETHIOPIC SYLLABLE THU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1321"},4898:{"value":"1322","name":"ETHIOPIC SYLLABLE THI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1322"},4899:{"value":"1323","name":"ETHIOPIC SYLLABLE THAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1323"},4900:{"value":"1324","name":"ETHIOPIC SYLLABLE THEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1324"},4901:{"value":"1325","name":"ETHIOPIC SYLLABLE THE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1325"},4902:{"value":"1326","name":"ETHIOPIC SYLLABLE THO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1326"},4903:{"value":"1327","name":"ETHIOPIC SYLLABLE THWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1327"},4904:{"value":"1328","name":"ETHIOPIC SYLLABLE CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1328"},4905:{"value":"1329","name":"ETHIOPIC SYLLABLE CHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1329"},4906:{"value":"132A","name":"ETHIOPIC SYLLABLE CHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132A"},4907:{"value":"132B","name":"ETHIOPIC SYLLABLE CHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132B"},4908:{"value":"132C","name":"ETHIOPIC SYLLABLE CHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132C"},4909:{"value":"132D","name":"ETHIOPIC SYLLABLE CHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132D"},4910:{"value":"132E","name":"ETHIOPIC SYLLABLE CHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132E"},4911:{"value":"132F","name":"ETHIOPIC SYLLABLE CHWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132F"},4912:{"value":"1330","name":"ETHIOPIC SYLLABLE PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1330"},4913:{"value":"1331","name":"ETHIOPIC SYLLABLE PHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1331"},4914:{"value":"1332","name":"ETHIOPIC SYLLABLE PHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1332"},4915:{"value":"1333","name":"ETHIOPIC SYLLABLE PHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1333"},4916:{"value":"1334","name":"ETHIOPIC SYLLABLE PHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1334"},4917:{"value":"1335","name":"ETHIOPIC SYLLABLE PHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1335"},4918:{"value":"1336","name":"ETHIOPIC SYLLABLE PHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1336"},4919:{"value":"1337","name":"ETHIOPIC SYLLABLE PHWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1337"},4920:{"value":"1338","name":"ETHIOPIC SYLLABLE TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1338"},4921:{"value":"1339","name":"ETHIOPIC SYLLABLE TSU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1339"},4922:{"value":"133A","name":"ETHIOPIC SYLLABLE TSI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133A"},4923:{"value":"133B","name":"ETHIOPIC SYLLABLE TSAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133B"},4924:{"value":"133C","name":"ETHIOPIC SYLLABLE TSEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133C"},4925:{"value":"133D","name":"ETHIOPIC SYLLABLE TSE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133D"},4926:{"value":"133E","name":"ETHIOPIC SYLLABLE TSO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133E"},4927:{"value":"133F","name":"ETHIOPIC SYLLABLE TSWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133F"},4928:{"value":"1340","name":"ETHIOPIC SYLLABLE TZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1340"},4929:{"value":"1341","name":"ETHIOPIC SYLLABLE TZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1341"},4930:{"value":"1342","name":"ETHIOPIC SYLLABLE TZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1342"},4931:{"value":"1343","name":"ETHIOPIC SYLLABLE TZAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1343"},4932:{"value":"1344","name":"ETHIOPIC SYLLABLE TZEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1344"},4933:{"value":"1345","name":"ETHIOPIC SYLLABLE TZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1345"},4934:{"value":"1346","name":"ETHIOPIC SYLLABLE TZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1346"},4935:{"value":"1347","name":"ETHIOPIC SYLLABLE TZOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1347"},4936:{"value":"1348","name":"ETHIOPIC SYLLABLE FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1348"},4937:{"value":"1349","name":"ETHIOPIC SYLLABLE FU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1349"},4938:{"value":"134A","name":"ETHIOPIC SYLLABLE FI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u134A"},4939:{"value":"134B","name":"ETHIOPIC SYLLABLE FAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u134B"},4940:{"value":"134C","name":"ETHIOPIC SYLLABLE FEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u134C"},4941:{"value":"134D","name":"ETHIOPIC SYLLABLE FE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u134D"},4942:{"value":"134E","name":"ETHIOPIC SYLLABLE FO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u134E"},4943:{"value":"134F","name":"ETHIOPIC SYLLABLE FWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u134F"},4944:{"value":"1350","name":"ETHIOPIC SYLLABLE PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1350"},4945:{"value":"1351","name":"ETHIOPIC SYLLABLE PU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1351"},4946:{"value":"1352","name":"ETHIOPIC SYLLABLE PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1352"},4947:{"value":"1353","name":"ETHIOPIC SYLLABLE PAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1353"},4948:{"value":"1354","name":"ETHIOPIC SYLLABLE PEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1354"},4949:{"value":"1355","name":"ETHIOPIC SYLLABLE PE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1355"},4950:{"value":"1356","name":"ETHIOPIC SYLLABLE PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1356"},4951:{"value":"1357","name":"ETHIOPIC SYLLABLE PWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1357"},4952:{"value":"1358","name":"ETHIOPIC SYLLABLE RYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1358"},4953:{"value":"1359","name":"ETHIOPIC SYLLABLE MYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1359"},4954:{"value":"135A","name":"ETHIOPIC SYLLABLE FYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u135A"},4992:{"value":"1380","name":"ETHIOPIC SYLLABLE SEBATBEIT MWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1380"},4993:{"value":"1381","name":"ETHIOPIC SYLLABLE MWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1381"},4994:{"value":"1382","name":"ETHIOPIC SYLLABLE MWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1382"},4995:{"value":"1383","name":"ETHIOPIC SYLLABLE MWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1383"},4996:{"value":"1384","name":"ETHIOPIC SYLLABLE SEBATBEIT BWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1384"},4997:{"value":"1385","name":"ETHIOPIC SYLLABLE BWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1385"},4998:{"value":"1386","name":"ETHIOPIC SYLLABLE BWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1386"},4999:{"value":"1387","name":"ETHIOPIC SYLLABLE BWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1387"},5000:{"value":"1388","name":"ETHIOPIC SYLLABLE SEBATBEIT FWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1388"},5001:{"value":"1389","name":"ETHIOPIC SYLLABLE FWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1389"},5002:{"value":"138A","name":"ETHIOPIC SYLLABLE FWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u138A"},5003:{"value":"138B","name":"ETHIOPIC SYLLABLE FWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u138B"},5004:{"value":"138C","name":"ETHIOPIC SYLLABLE SEBATBEIT PWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u138C"},5005:{"value":"138D","name":"ETHIOPIC SYLLABLE PWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u138D"},5006:{"value":"138E","name":"ETHIOPIC SYLLABLE PWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u138E"},5007:{"value":"138F","name":"ETHIOPIC SYLLABLE PWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u138F"},5121:{"value":"1401","name":"CANADIAN SYLLABICS E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1401"},5122:{"value":"1402","name":"CANADIAN SYLLABICS AAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1402"},5123:{"value":"1403","name":"CANADIAN SYLLABICS I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1403"},5124:{"value":"1404","name":"CANADIAN SYLLABICS II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1404"},5125:{"value":"1405","name":"CANADIAN SYLLABICS O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1405"},5126:{"value":"1406","name":"CANADIAN SYLLABICS OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1406"},5127:{"value":"1407","name":"CANADIAN SYLLABICS Y-CREE OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1407"},5128:{"value":"1408","name":"CANADIAN SYLLABICS CARRIER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1408"},5129:{"value":"1409","name":"CANADIAN SYLLABICS CARRIER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1409"},5130:{"value":"140A","name":"CANADIAN SYLLABICS A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140A"},5131:{"value":"140B","name":"CANADIAN SYLLABICS AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140B"},5132:{"value":"140C","name":"CANADIAN SYLLABICS WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140C"},5133:{"value":"140D","name":"CANADIAN SYLLABICS WEST-CREE WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140D"},5134:{"value":"140E","name":"CANADIAN SYLLABICS WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140E"},5135:{"value":"140F","name":"CANADIAN SYLLABICS WEST-CREE WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140F"},5136:{"value":"1410","name":"CANADIAN SYLLABICS WII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1410"},5137:{"value":"1411","name":"CANADIAN SYLLABICS WEST-CREE WII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1411"},5138:{"value":"1412","name":"CANADIAN SYLLABICS WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1412"},5139:{"value":"1413","name":"CANADIAN SYLLABICS WEST-CREE WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1413"},5140:{"value":"1414","name":"CANADIAN SYLLABICS WOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1414"},5141:{"value":"1415","name":"CANADIAN SYLLABICS WEST-CREE WOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1415"},5142:{"value":"1416","name":"CANADIAN SYLLABICS NASKAPI WOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1416"},5143:{"value":"1417","name":"CANADIAN SYLLABICS WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1417"},5144:{"value":"1418","name":"CANADIAN SYLLABICS WEST-CREE WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1418"},5145:{"value":"1419","name":"CANADIAN SYLLABICS WAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1419"},5146:{"value":"141A","name":"CANADIAN SYLLABICS WEST-CREE WAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141A"},5147:{"value":"141B","name":"CANADIAN SYLLABICS NASKAPI WAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141B"},5148:{"value":"141C","name":"CANADIAN SYLLABICS AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141C"},5149:{"value":"141D","name":"CANADIAN SYLLABICS Y-CREE W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141D"},5150:{"value":"141E","name":"CANADIAN SYLLABICS GLOTTAL STOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141E"},5151:{"value":"141F","name":"CANADIAN SYLLABICS FINAL ACUTE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141F"},5152:{"value":"1420","name":"CANADIAN SYLLABICS FINAL GRAVE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1420"},5153:{"value":"1421","name":"CANADIAN SYLLABICS FINAL BOTTOM HALF RING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1421"},5154:{"value":"1422","name":"CANADIAN SYLLABICS FINAL TOP HALF RING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1422"},5155:{"value":"1423","name":"CANADIAN SYLLABICS FINAL RIGHT HALF RING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1423"},5156:{"value":"1424","name":"CANADIAN SYLLABICS FINAL RING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1424"},5157:{"value":"1425","name":"CANADIAN SYLLABICS FINAL DOUBLE ACUTE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1425"},5158:{"value":"1426","name":"CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1426"},5159:{"value":"1427","name":"CANADIAN SYLLABICS FINAL MIDDLE DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1427"},5160:{"value":"1428","name":"CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1428"},5161:{"value":"1429","name":"CANADIAN SYLLABICS FINAL PLUS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1429"},5162:{"value":"142A","name":"CANADIAN SYLLABICS FINAL DOWN TACK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142A"},5163:{"value":"142B","name":"CANADIAN SYLLABICS EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142B"},5164:{"value":"142C","name":"CANADIAN SYLLABICS IN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142C"},5165:{"value":"142D","name":"CANADIAN SYLLABICS ON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142D"},5166:{"value":"142E","name":"CANADIAN SYLLABICS AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142E"},5167:{"value":"142F","name":"CANADIAN SYLLABICS PE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142F"},5168:{"value":"1430","name":"CANADIAN SYLLABICS PAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1430"},5169:{"value":"1431","name":"CANADIAN SYLLABICS PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1431"},5170:{"value":"1432","name":"CANADIAN SYLLABICS PII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1432"},5171:{"value":"1433","name":"CANADIAN SYLLABICS PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1433"},5172:{"value":"1434","name":"CANADIAN SYLLABICS POO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1434"},5173:{"value":"1435","name":"CANADIAN SYLLABICS Y-CREE POO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1435"},5174:{"value":"1436","name":"CANADIAN SYLLABICS CARRIER HEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1436"},5175:{"value":"1437","name":"CANADIAN SYLLABICS CARRIER HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1437"},5176:{"value":"1438","name":"CANADIAN SYLLABICS PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1438"},5177:{"value":"1439","name":"CANADIAN SYLLABICS PAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1439"},5178:{"value":"143A","name":"CANADIAN SYLLABICS PWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143A"},5179:{"value":"143B","name":"CANADIAN SYLLABICS WEST-CREE PWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143B"},5180:{"value":"143C","name":"CANADIAN SYLLABICS PWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143C"},5181:{"value":"143D","name":"CANADIAN SYLLABICS WEST-CREE PWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143D"},5182:{"value":"143E","name":"CANADIAN SYLLABICS PWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143E"},5183:{"value":"143F","name":"CANADIAN SYLLABICS WEST-CREE PWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143F"},5184:{"value":"1440","name":"CANADIAN SYLLABICS PWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1440"},5185:{"value":"1441","name":"CANADIAN SYLLABICS WEST-CREE PWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1441"},5186:{"value":"1442","name":"CANADIAN SYLLABICS PWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1442"},5187:{"value":"1443","name":"CANADIAN SYLLABICS WEST-CREE PWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1443"},5188:{"value":"1444","name":"CANADIAN SYLLABICS PWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1444"},5189:{"value":"1445","name":"CANADIAN SYLLABICS WEST-CREE PWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1445"},5190:{"value":"1446","name":"CANADIAN SYLLABICS PWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1446"},5191:{"value":"1447","name":"CANADIAN SYLLABICS WEST-CREE PWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1447"},5192:{"value":"1448","name":"CANADIAN SYLLABICS Y-CREE PWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1448"},5193:{"value":"1449","name":"CANADIAN SYLLABICS P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1449"},5194:{"value":"144A","name":"CANADIAN SYLLABICS WEST-CREE P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u144A"},5195:{"value":"144B","name":"CANADIAN SYLLABICS CARRIER H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u144B"},5196:{"value":"144C","name":"CANADIAN SYLLABICS TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u144C"},5197:{"value":"144D","name":"CANADIAN SYLLABICS TAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u144D"},5198:{"value":"144E","name":"CANADIAN SYLLABICS TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u144E"},5199:{"value":"144F","name":"CANADIAN SYLLABICS TII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u144F"},5200:{"value":"1450","name":"CANADIAN SYLLABICS TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1450"},5201:{"value":"1451","name":"CANADIAN SYLLABICS TOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1451"},5202:{"value":"1452","name":"CANADIAN SYLLABICS Y-CREE TOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1452"},5203:{"value":"1453","name":"CANADIAN SYLLABICS CARRIER DEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1453"},5204:{"value":"1454","name":"CANADIAN SYLLABICS CARRIER DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1454"},5205:{"value":"1455","name":"CANADIAN SYLLABICS TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1455"},5206:{"value":"1456","name":"CANADIAN SYLLABICS TAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1456"},5207:{"value":"1457","name":"CANADIAN SYLLABICS TWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1457"},5208:{"value":"1458","name":"CANADIAN SYLLABICS WEST-CREE TWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1458"},5209:{"value":"1459","name":"CANADIAN SYLLABICS TWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1459"},5210:{"value":"145A","name":"CANADIAN SYLLABICS WEST-CREE TWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u145A"},5211:{"value":"145B","name":"CANADIAN SYLLABICS TWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u145B"},5212:{"value":"145C","name":"CANADIAN SYLLABICS WEST-CREE TWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u145C"},5213:{"value":"145D","name":"CANADIAN SYLLABICS TWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u145D"},5214:{"value":"145E","name":"CANADIAN SYLLABICS WEST-CREE TWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u145E"},5215:{"value":"145F","name":"CANADIAN SYLLABICS TWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u145F"},5216:{"value":"1460","name":"CANADIAN SYLLABICS WEST-CREE TWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1460"},5217:{"value":"1461","name":"CANADIAN SYLLABICS TWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1461"},5218:{"value":"1462","name":"CANADIAN SYLLABICS WEST-CREE TWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1462"},5219:{"value":"1463","name":"CANADIAN SYLLABICS TWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1463"},5220:{"value":"1464","name":"CANADIAN SYLLABICS WEST-CREE TWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1464"},5221:{"value":"1465","name":"CANADIAN SYLLABICS NASKAPI TWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1465"},5222:{"value":"1466","name":"CANADIAN SYLLABICS T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1466"},5223:{"value":"1467","name":"CANADIAN SYLLABICS TTE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1467"},5224:{"value":"1468","name":"CANADIAN SYLLABICS TTI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1468"},5225:{"value":"1469","name":"CANADIAN SYLLABICS TTO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1469"},5226:{"value":"146A","name":"CANADIAN SYLLABICS TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u146A"},5227:{"value":"146B","name":"CANADIAN SYLLABICS KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u146B"},5228:{"value":"146C","name":"CANADIAN SYLLABICS KAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u146C"},5229:{"value":"146D","name":"CANADIAN SYLLABICS KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u146D"},5230:{"value":"146E","name":"CANADIAN SYLLABICS KII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u146E"},5231:{"value":"146F","name":"CANADIAN SYLLABICS KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u146F"},5232:{"value":"1470","name":"CANADIAN SYLLABICS KOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1470"},5233:{"value":"1471","name":"CANADIAN SYLLABICS Y-CREE KOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1471"},5234:{"value":"1472","name":"CANADIAN SYLLABICS KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1472"},5235:{"value":"1473","name":"CANADIAN SYLLABICS KAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1473"},5236:{"value":"1474","name":"CANADIAN SYLLABICS KWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1474"},5237:{"value":"1475","name":"CANADIAN SYLLABICS WEST-CREE KWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1475"},5238:{"value":"1476","name":"CANADIAN SYLLABICS KWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1476"},5239:{"value":"1477","name":"CANADIAN SYLLABICS WEST-CREE KWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1477"},5240:{"value":"1478","name":"CANADIAN SYLLABICS KWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1478"},5241:{"value":"1479","name":"CANADIAN SYLLABICS WEST-CREE KWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1479"},5242:{"value":"147A","name":"CANADIAN SYLLABICS KWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u147A"},5243:{"value":"147B","name":"CANADIAN SYLLABICS WEST-CREE KWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u147B"},5244:{"value":"147C","name":"CANADIAN SYLLABICS KWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u147C"},5245:{"value":"147D","name":"CANADIAN SYLLABICS WEST-CREE KWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u147D"},5246:{"value":"147E","name":"CANADIAN SYLLABICS KWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u147E"},5247:{"value":"147F","name":"CANADIAN SYLLABICS WEST-CREE KWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u147F"},5248:{"value":"1480","name":"CANADIAN SYLLABICS KWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1480"},5249:{"value":"1481","name":"CANADIAN SYLLABICS WEST-CREE KWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1481"},5250:{"value":"1482","name":"CANADIAN SYLLABICS NASKAPI KWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1482"},5251:{"value":"1483","name":"CANADIAN SYLLABICS K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1483"},5252:{"value":"1484","name":"CANADIAN SYLLABICS KW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1484"},5253:{"value":"1485","name":"CANADIAN SYLLABICS SOUTH-SLAVEY KEH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1485"},5254:{"value":"1486","name":"CANADIAN SYLLABICS SOUTH-SLAVEY KIH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1486"},5255:{"value":"1487","name":"CANADIAN SYLLABICS SOUTH-SLAVEY KOH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1487"},5256:{"value":"1488","name":"CANADIAN SYLLABICS SOUTH-SLAVEY KAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1488"},5257:{"value":"1489","name":"CANADIAN SYLLABICS CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1489"},5258:{"value":"148A","name":"CANADIAN SYLLABICS CAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148A"},5259:{"value":"148B","name":"CANADIAN SYLLABICS CI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148B"},5260:{"value":"148C","name":"CANADIAN SYLLABICS CII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148C"},5261:{"value":"148D","name":"CANADIAN SYLLABICS CO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148D"},5262:{"value":"148E","name":"CANADIAN SYLLABICS COO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148E"},5263:{"value":"148F","name":"CANADIAN SYLLABICS Y-CREE COO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148F"},5264:{"value":"1490","name":"CANADIAN SYLLABICS CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1490"},5265:{"value":"1491","name":"CANADIAN SYLLABICS CAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1491"},5266:{"value":"1492","name":"CANADIAN SYLLABICS CWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1492"},5267:{"value":"1493","name":"CANADIAN SYLLABICS WEST-CREE CWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1493"},5268:{"value":"1494","name":"CANADIAN SYLLABICS CWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1494"},5269:{"value":"1495","name":"CANADIAN SYLLABICS WEST-CREE CWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1495"},5270:{"value":"1496","name":"CANADIAN SYLLABICS CWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1496"},5271:{"value":"1497","name":"CANADIAN SYLLABICS WEST-CREE CWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1497"},5272:{"value":"1498","name":"CANADIAN SYLLABICS CWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1498"},5273:{"value":"1499","name":"CANADIAN SYLLABICS WEST-CREE CWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1499"},5274:{"value":"149A","name":"CANADIAN SYLLABICS CWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149A"},5275:{"value":"149B","name":"CANADIAN SYLLABICS WEST-CREE CWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149B"},5276:{"value":"149C","name":"CANADIAN SYLLABICS CWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149C"},5277:{"value":"149D","name":"CANADIAN SYLLABICS WEST-CREE CWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149D"},5278:{"value":"149E","name":"CANADIAN SYLLABICS CWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149E"},5279:{"value":"149F","name":"CANADIAN SYLLABICS WEST-CREE CWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149F"},5280:{"value":"14A0","name":"CANADIAN SYLLABICS NASKAPI CWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A0"},5281:{"value":"14A1","name":"CANADIAN SYLLABICS C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A1"},5282:{"value":"14A2","name":"CANADIAN SYLLABICS SAYISI TH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A2"},5283:{"value":"14A3","name":"CANADIAN SYLLABICS ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A3"},5284:{"value":"14A4","name":"CANADIAN SYLLABICS MAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A4"},5285:{"value":"14A5","name":"CANADIAN SYLLABICS MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A5"},5286:{"value":"14A6","name":"CANADIAN SYLLABICS MII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A6"},5287:{"value":"14A7","name":"CANADIAN SYLLABICS MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A7"},5288:{"value":"14A8","name":"CANADIAN SYLLABICS MOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A8"},5289:{"value":"14A9","name":"CANADIAN SYLLABICS Y-CREE MOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A9"},5290:{"value":"14AA","name":"CANADIAN SYLLABICS MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AA"},5291:{"value":"14AB","name":"CANADIAN SYLLABICS MAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AB"},5292:{"value":"14AC","name":"CANADIAN SYLLABICS MWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AC"},5293:{"value":"14AD","name":"CANADIAN SYLLABICS WEST-CREE MWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AD"},5294:{"value":"14AE","name":"CANADIAN SYLLABICS MWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AE"},5295:{"value":"14AF","name":"CANADIAN SYLLABICS WEST-CREE MWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AF"},5296:{"value":"14B0","name":"CANADIAN SYLLABICS MWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B0"},5297:{"value":"14B1","name":"CANADIAN SYLLABICS WEST-CREE MWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B1"},5298:{"value":"14B2","name":"CANADIAN SYLLABICS MWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B2"},5299:{"value":"14B3","name":"CANADIAN SYLLABICS WEST-CREE MWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B3"},5300:{"value":"14B4","name":"CANADIAN SYLLABICS MWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B4"},5301:{"value":"14B5","name":"CANADIAN SYLLABICS WEST-CREE MWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B5"},5302:{"value":"14B6","name":"CANADIAN SYLLABICS MWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B6"},5303:{"value":"14B7","name":"CANADIAN SYLLABICS WEST-CREE MWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B7"},5304:{"value":"14B8","name":"CANADIAN SYLLABICS MWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B8"},5305:{"value":"14B9","name":"CANADIAN SYLLABICS WEST-CREE MWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B9"},5306:{"value":"14BA","name":"CANADIAN SYLLABICS NASKAPI MWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BA"},5307:{"value":"14BB","name":"CANADIAN SYLLABICS M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BB"},5308:{"value":"14BC","name":"CANADIAN SYLLABICS WEST-CREE M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BC"},5309:{"value":"14BD","name":"CANADIAN SYLLABICS MH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BD"},5310:{"value":"14BE","name":"CANADIAN SYLLABICS ATHAPASCAN M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BE"},5311:{"value":"14BF","name":"CANADIAN SYLLABICS SAYISI M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BF"},5312:{"value":"14C0","name":"CANADIAN SYLLABICS NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C0"},5313:{"value":"14C1","name":"CANADIAN SYLLABICS NAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C1"},5314:{"value":"14C2","name":"CANADIAN SYLLABICS NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C2"},5315:{"value":"14C3","name":"CANADIAN SYLLABICS NII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C3"},5316:{"value":"14C4","name":"CANADIAN SYLLABICS NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C4"},5317:{"value":"14C5","name":"CANADIAN SYLLABICS NOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C5"},5318:{"value":"14C6","name":"CANADIAN SYLLABICS Y-CREE NOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C6"},5319:{"value":"14C7","name":"CANADIAN SYLLABICS NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C7"},5320:{"value":"14C8","name":"CANADIAN SYLLABICS NAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C8"},5321:{"value":"14C9","name":"CANADIAN SYLLABICS NWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C9"},5322:{"value":"14CA","name":"CANADIAN SYLLABICS WEST-CREE NWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14CA"},5323:{"value":"14CB","name":"CANADIAN SYLLABICS NWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14CB"},5324:{"value":"14CC","name":"CANADIAN SYLLABICS WEST-CREE NWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14CC"},5325:{"value":"14CD","name":"CANADIAN SYLLABICS NWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14CD"},5326:{"value":"14CE","name":"CANADIAN SYLLABICS WEST-CREE NWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14CE"},5327:{"value":"14CF","name":"CANADIAN SYLLABICS NASKAPI NWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14CF"},5328:{"value":"14D0","name":"CANADIAN SYLLABICS N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D0"},5329:{"value":"14D1","name":"CANADIAN SYLLABICS CARRIER NG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D1"},5330:{"value":"14D2","name":"CANADIAN SYLLABICS NH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D2"},5331:{"value":"14D3","name":"CANADIAN SYLLABICS LE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D3"},5332:{"value":"14D4","name":"CANADIAN SYLLABICS LAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D4"},5333:{"value":"14D5","name":"CANADIAN SYLLABICS LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D5"},5334:{"value":"14D6","name":"CANADIAN SYLLABICS LII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D6"},5335:{"value":"14D7","name":"CANADIAN SYLLABICS LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D7"},5336:{"value":"14D8","name":"CANADIAN SYLLABICS LOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D8"},5337:{"value":"14D9","name":"CANADIAN SYLLABICS Y-CREE LOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D9"},5338:{"value":"14DA","name":"CANADIAN SYLLABICS LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14DA"},5339:{"value":"14DB","name":"CANADIAN SYLLABICS LAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14DB"},5340:{"value":"14DC","name":"CANADIAN SYLLABICS LWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14DC"},5341:{"value":"14DD","name":"CANADIAN SYLLABICS WEST-CREE LWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14DD"},5342:{"value":"14DE","name":"CANADIAN SYLLABICS LWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14DE"},5343:{"value":"14DF","name":"CANADIAN SYLLABICS WEST-CREE LWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14DF"},5344:{"value":"14E0","name":"CANADIAN SYLLABICS LWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14E0"},5345:{"value":"14E1","name":"CANADIAN SYLLABICS WEST-CREE LWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14E1"},5346:{"value":"14E2","name":"CANADIAN SYLLABICS LWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14E2"},5347:{"value":"14E3","name":"CANADIAN SYLLABICS WEST-CREE LWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14E3"},5348:{"value":"14E4","name":"CANADIAN SYLLABICS LWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14E4"},5349:{"value":"14E5","name":"CANADIAN SYLLABICS WEST-CREE LWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14E5"},5350:{"value":"14E6","name":"CANADIAN SYLLABICS LWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14E6"},5351:{"value":"14E7","name":"CANADIAN SYLLABICS WEST-CREE LWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14E7"},5352:{"value":"14E8","name":"CANADIAN SYLLABICS LWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14E8"},5353:{"value":"14E9","name":"CANADIAN SYLLABICS WEST-CREE LWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14E9"},5354:{"value":"14EA","name":"CANADIAN SYLLABICS L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14EA"},5355:{"value":"14EB","name":"CANADIAN SYLLABICS WEST-CREE L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14EB"},5356:{"value":"14EC","name":"CANADIAN SYLLABICS MEDIAL L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14EC"},5357:{"value":"14ED","name":"CANADIAN SYLLABICS SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14ED"},5358:{"value":"14EE","name":"CANADIAN SYLLABICS SAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14EE"},5359:{"value":"14EF","name":"CANADIAN SYLLABICS SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14EF"},5360:{"value":"14F0","name":"CANADIAN SYLLABICS SII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14F0"},5361:{"value":"14F1","name":"CANADIAN SYLLABICS SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14F1"},5362:{"value":"14F2","name":"CANADIAN SYLLABICS SOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14F2"},5363:{"value":"14F3","name":"CANADIAN SYLLABICS Y-CREE SOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14F3"},5364:{"value":"14F4","name":"CANADIAN SYLLABICS SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14F4"},5365:{"value":"14F5","name":"CANADIAN SYLLABICS SAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14F5"},5366:{"value":"14F6","name":"CANADIAN SYLLABICS SWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14F6"},5367:{"value":"14F7","name":"CANADIAN SYLLABICS WEST-CREE SWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14F7"},5368:{"value":"14F8","name":"CANADIAN SYLLABICS SWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14F8"},5369:{"value":"14F9","name":"CANADIAN SYLLABICS WEST-CREE SWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14F9"},5370:{"value":"14FA","name":"CANADIAN SYLLABICS SWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14FA"},5371:{"value":"14FB","name":"CANADIAN SYLLABICS WEST-CREE SWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14FB"},5372:{"value":"14FC","name":"CANADIAN SYLLABICS SWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14FC"},5373:{"value":"14FD","name":"CANADIAN SYLLABICS WEST-CREE SWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14FD"},5374:{"value":"14FE","name":"CANADIAN SYLLABICS SWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14FE"},5375:{"value":"14FF","name":"CANADIAN SYLLABICS WEST-CREE SWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14FF"},5376:{"value":"1500","name":"CANADIAN SYLLABICS SWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1500"},5377:{"value":"1501","name":"CANADIAN SYLLABICS WEST-CREE SWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1501"},5378:{"value":"1502","name":"CANADIAN SYLLABICS SWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1502"},5379:{"value":"1503","name":"CANADIAN SYLLABICS WEST-CREE SWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1503"},5380:{"value":"1504","name":"CANADIAN SYLLABICS NASKAPI SWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1504"},5381:{"value":"1505","name":"CANADIAN SYLLABICS S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1505"},5382:{"value":"1506","name":"CANADIAN SYLLABICS ATHAPASCAN S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1506"},5383:{"value":"1507","name":"CANADIAN SYLLABICS SW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1507"},5384:{"value":"1508","name":"CANADIAN SYLLABICS BLACKFOOT S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1508"},5385:{"value":"1509","name":"CANADIAN SYLLABICS MOOSE-CREE SK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1509"},5386:{"value":"150A","name":"CANADIAN SYLLABICS NASKAPI SKW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u150A"},5387:{"value":"150B","name":"CANADIAN SYLLABICS NASKAPI S-W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u150B"},5388:{"value":"150C","name":"CANADIAN SYLLABICS NASKAPI SPWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u150C"},5389:{"value":"150D","name":"CANADIAN SYLLABICS NASKAPI STWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u150D"},5390:{"value":"150E","name":"CANADIAN SYLLABICS NASKAPI SKWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u150E"},5391:{"value":"150F","name":"CANADIAN SYLLABICS NASKAPI SCWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u150F"},5392:{"value":"1510","name":"CANADIAN SYLLABICS SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1510"},5393:{"value":"1511","name":"CANADIAN SYLLABICS SHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1511"},5394:{"value":"1512","name":"CANADIAN SYLLABICS SHII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1512"},5395:{"value":"1513","name":"CANADIAN SYLLABICS SHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1513"},5396:{"value":"1514","name":"CANADIAN SYLLABICS SHOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1514"},5397:{"value":"1515","name":"CANADIAN SYLLABICS SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1515"},5398:{"value":"1516","name":"CANADIAN SYLLABICS SHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1516"},5399:{"value":"1517","name":"CANADIAN SYLLABICS SHWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1517"},5400:{"value":"1518","name":"CANADIAN SYLLABICS WEST-CREE SHWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1518"},5401:{"value":"1519","name":"CANADIAN SYLLABICS SHWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1519"},5402:{"value":"151A","name":"CANADIAN SYLLABICS WEST-CREE SHWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u151A"},5403:{"value":"151B","name":"CANADIAN SYLLABICS SHWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u151B"},5404:{"value":"151C","name":"CANADIAN SYLLABICS WEST-CREE SHWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u151C"},5405:{"value":"151D","name":"CANADIAN SYLLABICS SHWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u151D"},5406:{"value":"151E","name":"CANADIAN SYLLABICS WEST-CREE SHWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u151E"},5407:{"value":"151F","name":"CANADIAN SYLLABICS SHWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u151F"},5408:{"value":"1520","name":"CANADIAN SYLLABICS WEST-CREE SHWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1520"},5409:{"value":"1521","name":"CANADIAN SYLLABICS SHWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1521"},5410:{"value":"1522","name":"CANADIAN SYLLABICS WEST-CREE SHWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1522"},5411:{"value":"1523","name":"CANADIAN SYLLABICS SHWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1523"},5412:{"value":"1524","name":"CANADIAN SYLLABICS WEST-CREE SHWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1524"},5413:{"value":"1525","name":"CANADIAN SYLLABICS SH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1525"},5414:{"value":"1526","name":"CANADIAN SYLLABICS YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1526"},5415:{"value":"1527","name":"CANADIAN SYLLABICS YAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1527"},5416:{"value":"1528","name":"CANADIAN SYLLABICS YI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1528"},5417:{"value":"1529","name":"CANADIAN SYLLABICS YII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1529"},5418:{"value":"152A","name":"CANADIAN SYLLABICS YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u152A"},5419:{"value":"152B","name":"CANADIAN SYLLABICS YOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u152B"},5420:{"value":"152C","name":"CANADIAN SYLLABICS Y-CREE YOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u152C"},5421:{"value":"152D","name":"CANADIAN SYLLABICS YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u152D"},5422:{"value":"152E","name":"CANADIAN SYLLABICS YAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u152E"},5423:{"value":"152F","name":"CANADIAN SYLLABICS YWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u152F"},5424:{"value":"1530","name":"CANADIAN SYLLABICS WEST-CREE YWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1530"},5425:{"value":"1531","name":"CANADIAN SYLLABICS YWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1531"},5426:{"value":"1532","name":"CANADIAN SYLLABICS WEST-CREE YWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1532"},5427:{"value":"1533","name":"CANADIAN SYLLABICS YWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1533"},5428:{"value":"1534","name":"CANADIAN SYLLABICS WEST-CREE YWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1534"},5429:{"value":"1535","name":"CANADIAN SYLLABICS YWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1535"},5430:{"value":"1536","name":"CANADIAN SYLLABICS WEST-CREE YWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1536"},5431:{"value":"1537","name":"CANADIAN SYLLABICS YWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1537"},5432:{"value":"1538","name":"CANADIAN SYLLABICS WEST-CREE YWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1538"},5433:{"value":"1539","name":"CANADIAN SYLLABICS YWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1539"},5434:{"value":"153A","name":"CANADIAN SYLLABICS WEST-CREE YWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u153A"},5435:{"value":"153B","name":"CANADIAN SYLLABICS YWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u153B"},5436:{"value":"153C","name":"CANADIAN SYLLABICS WEST-CREE YWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u153C"},5437:{"value":"153D","name":"CANADIAN SYLLABICS NASKAPI YWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u153D"},5438:{"value":"153E","name":"CANADIAN SYLLABICS Y","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u153E"},5439:{"value":"153F","name":"CANADIAN SYLLABICS BIBLE-CREE Y","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u153F"},5440:{"value":"1540","name":"CANADIAN SYLLABICS WEST-CREE Y","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1540"},5441:{"value":"1541","name":"CANADIAN SYLLABICS SAYISI YI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1541"},5442:{"value":"1542","name":"CANADIAN SYLLABICS RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1542"},5443:{"value":"1543","name":"CANADIAN SYLLABICS R-CREE RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1543"},5444:{"value":"1544","name":"CANADIAN SYLLABICS WEST-CREE LE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1544"},5445:{"value":"1545","name":"CANADIAN SYLLABICS RAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1545"},5446:{"value":"1546","name":"CANADIAN SYLLABICS RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1546"},5447:{"value":"1547","name":"CANADIAN SYLLABICS RII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1547"},5448:{"value":"1548","name":"CANADIAN SYLLABICS RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1548"},5449:{"value":"1549","name":"CANADIAN SYLLABICS ROO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1549"},5450:{"value":"154A","name":"CANADIAN SYLLABICS WEST-CREE LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u154A"},5451:{"value":"154B","name":"CANADIAN SYLLABICS RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u154B"},5452:{"value":"154C","name":"CANADIAN SYLLABICS RAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u154C"},5453:{"value":"154D","name":"CANADIAN SYLLABICS WEST-CREE LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u154D"},5454:{"value":"154E","name":"CANADIAN SYLLABICS RWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u154E"},5455:{"value":"154F","name":"CANADIAN SYLLABICS WEST-CREE RWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u154F"},5456:{"value":"1550","name":"CANADIAN SYLLABICS R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1550"},5457:{"value":"1551","name":"CANADIAN SYLLABICS WEST-CREE R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1551"},5458:{"value":"1552","name":"CANADIAN SYLLABICS MEDIAL R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1552"},5459:{"value":"1553","name":"CANADIAN SYLLABICS FE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1553"},5460:{"value":"1554","name":"CANADIAN SYLLABICS FAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1554"},5461:{"value":"1555","name":"CANADIAN SYLLABICS FI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1555"},5462:{"value":"1556","name":"CANADIAN SYLLABICS FII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1556"},5463:{"value":"1557","name":"CANADIAN SYLLABICS FO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1557"},5464:{"value":"1558","name":"CANADIAN SYLLABICS FOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1558"},5465:{"value":"1559","name":"CANADIAN SYLLABICS FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1559"},5466:{"value":"155A","name":"CANADIAN SYLLABICS FAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u155A"},5467:{"value":"155B","name":"CANADIAN SYLLABICS FWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u155B"},5468:{"value":"155C","name":"CANADIAN SYLLABICS WEST-CREE FWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u155C"},5469:{"value":"155D","name":"CANADIAN SYLLABICS F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u155D"},5470:{"value":"155E","name":"CANADIAN SYLLABICS THE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u155E"},5471:{"value":"155F","name":"CANADIAN SYLLABICS N-CREE THE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u155F"},5472:{"value":"1560","name":"CANADIAN SYLLABICS THI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1560"},5473:{"value":"1561","name":"CANADIAN SYLLABICS N-CREE THI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1561"},5474:{"value":"1562","name":"CANADIAN SYLLABICS THII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1562"},5475:{"value":"1563","name":"CANADIAN SYLLABICS N-CREE THII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1563"},5476:{"value":"1564","name":"CANADIAN SYLLABICS THO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1564"},5477:{"value":"1565","name":"CANADIAN SYLLABICS THOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1565"},5478:{"value":"1566","name":"CANADIAN SYLLABICS THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1566"},5479:{"value":"1567","name":"CANADIAN SYLLABICS THAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1567"},5480:{"value":"1568","name":"CANADIAN SYLLABICS THWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1568"},5481:{"value":"1569","name":"CANADIAN SYLLABICS WEST-CREE THWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1569"},5482:{"value":"156A","name":"CANADIAN SYLLABICS TH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u156A"},5483:{"value":"156B","name":"CANADIAN SYLLABICS TTHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u156B"},5484:{"value":"156C","name":"CANADIAN SYLLABICS TTHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u156C"},5485:{"value":"156D","name":"CANADIAN SYLLABICS TTHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u156D"},5486:{"value":"156E","name":"CANADIAN SYLLABICS TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u156E"},5487:{"value":"156F","name":"CANADIAN SYLLABICS TTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u156F"},5488:{"value":"1570","name":"CANADIAN SYLLABICS TYE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1570"},5489:{"value":"1571","name":"CANADIAN SYLLABICS TYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1571"},5490:{"value":"1572","name":"CANADIAN SYLLABICS TYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1572"},5491:{"value":"1573","name":"CANADIAN SYLLABICS TYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1573"},5492:{"value":"1574","name":"CANADIAN SYLLABICS NUNAVIK HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1574"},5493:{"value":"1575","name":"CANADIAN SYLLABICS NUNAVIK HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1575"},5494:{"value":"1576","name":"CANADIAN SYLLABICS NUNAVIK HII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1576"},5495:{"value":"1577","name":"CANADIAN SYLLABICS NUNAVIK HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1577"},5496:{"value":"1578","name":"CANADIAN SYLLABICS NUNAVIK HOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1578"},5497:{"value":"1579","name":"CANADIAN SYLLABICS NUNAVIK HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1579"},5498:{"value":"157A","name":"CANADIAN SYLLABICS NUNAVIK HAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u157A"},5499:{"value":"157B","name":"CANADIAN SYLLABICS NUNAVIK H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u157B"},5500:{"value":"157C","name":"CANADIAN SYLLABICS NUNAVUT H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u157C"},5501:{"value":"157D","name":"CANADIAN SYLLABICS HK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u157D"},5502:{"value":"157E","name":"CANADIAN SYLLABICS QAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u157E"},5503:{"value":"157F","name":"CANADIAN SYLLABICS QI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u157F"},5504:{"value":"1580","name":"CANADIAN SYLLABICS QII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1580"},5505:{"value":"1581","name":"CANADIAN SYLLABICS QO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1581"},5506:{"value":"1582","name":"CANADIAN SYLLABICS QOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1582"},5507:{"value":"1583","name":"CANADIAN SYLLABICS QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1583"},5508:{"value":"1584","name":"CANADIAN SYLLABICS QAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1584"},5509:{"value":"1585","name":"CANADIAN SYLLABICS Q","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1585"},5510:{"value":"1586","name":"CANADIAN SYLLABICS TLHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1586"},5511:{"value":"1587","name":"CANADIAN SYLLABICS TLHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1587"},5512:{"value":"1588","name":"CANADIAN SYLLABICS TLHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1588"},5513:{"value":"1589","name":"CANADIAN SYLLABICS TLHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1589"},5514:{"value":"158A","name":"CANADIAN SYLLABICS WEST-CREE RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158A"},5515:{"value":"158B","name":"CANADIAN SYLLABICS WEST-CREE RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158B"},5516:{"value":"158C","name":"CANADIAN SYLLABICS WEST-CREE RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158C"},5517:{"value":"158D","name":"CANADIAN SYLLABICS WEST-CREE RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158D"},5518:{"value":"158E","name":"CANADIAN SYLLABICS NGAAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158E"},5519:{"value":"158F","name":"CANADIAN SYLLABICS NGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158F"},5520:{"value":"1590","name":"CANADIAN SYLLABICS NGII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1590"},5521:{"value":"1591","name":"CANADIAN SYLLABICS NGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1591"},5522:{"value":"1592","name":"CANADIAN SYLLABICS NGOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1592"},5523:{"value":"1593","name":"CANADIAN SYLLABICS NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1593"},5524:{"value":"1594","name":"CANADIAN SYLLABICS NGAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1594"},5525:{"value":"1595","name":"CANADIAN SYLLABICS NG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1595"},5526:{"value":"1596","name":"CANADIAN SYLLABICS NNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1596"},5527:{"value":"1597","name":"CANADIAN SYLLABICS SAYISI SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1597"},5528:{"value":"1598","name":"CANADIAN SYLLABICS SAYISI SHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1598"},5529:{"value":"1599","name":"CANADIAN SYLLABICS SAYISI SHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1599"},5530:{"value":"159A","name":"CANADIAN SYLLABICS SAYISI SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159A"},5531:{"value":"159B","name":"CANADIAN SYLLABICS WOODS-CREE THE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159B"},5532:{"value":"159C","name":"CANADIAN SYLLABICS WOODS-CREE THI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159C"},5533:{"value":"159D","name":"CANADIAN SYLLABICS WOODS-CREE THO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159D"},5534:{"value":"159E","name":"CANADIAN SYLLABICS WOODS-CREE THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159E"},5535:{"value":"159F","name":"CANADIAN SYLLABICS WOODS-CREE TH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159F"},5536:{"value":"15A0","name":"CANADIAN SYLLABICS LHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A0"},5537:{"value":"15A1","name":"CANADIAN SYLLABICS LHII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A1"},5538:{"value":"15A2","name":"CANADIAN SYLLABICS LHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A2"},5539:{"value":"15A3","name":"CANADIAN SYLLABICS LHOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A3"},5540:{"value":"15A4","name":"CANADIAN SYLLABICS LHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A4"},5541:{"value":"15A5","name":"CANADIAN SYLLABICS LHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A5"},5542:{"value":"15A6","name":"CANADIAN SYLLABICS LH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A6"},5543:{"value":"15A7","name":"CANADIAN SYLLABICS TH-CREE THE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A7"},5544:{"value":"15A8","name":"CANADIAN SYLLABICS TH-CREE THI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A8"},5545:{"value":"15A9","name":"CANADIAN SYLLABICS TH-CREE THII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A9"},5546:{"value":"15AA","name":"CANADIAN SYLLABICS TH-CREE THO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AA"},5547:{"value":"15AB","name":"CANADIAN SYLLABICS TH-CREE THOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AB"},5548:{"value":"15AC","name":"CANADIAN SYLLABICS TH-CREE THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AC"},5549:{"value":"15AD","name":"CANADIAN SYLLABICS TH-CREE THAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AD"},5550:{"value":"15AE","name":"CANADIAN SYLLABICS TH-CREE TH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AE"},5551:{"value":"15AF","name":"CANADIAN SYLLABICS AIVILIK B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AF"},5552:{"value":"15B0","name":"CANADIAN SYLLABICS BLACKFOOT E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B0"},5553:{"value":"15B1","name":"CANADIAN SYLLABICS BLACKFOOT I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B1"},5554:{"value":"15B2","name":"CANADIAN SYLLABICS BLACKFOOT O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B2"},5555:{"value":"15B3","name":"CANADIAN SYLLABICS BLACKFOOT A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B3"},5556:{"value":"15B4","name":"CANADIAN SYLLABICS BLACKFOOT WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B4"},5557:{"value":"15B5","name":"CANADIAN SYLLABICS BLACKFOOT WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B5"},5558:{"value":"15B6","name":"CANADIAN SYLLABICS BLACKFOOT WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B6"},5559:{"value":"15B7","name":"CANADIAN SYLLABICS BLACKFOOT WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B7"},5560:{"value":"15B8","name":"CANADIAN SYLLABICS BLACKFOOT NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B8"},5561:{"value":"15B9","name":"CANADIAN SYLLABICS BLACKFOOT NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B9"},5562:{"value":"15BA","name":"CANADIAN SYLLABICS BLACKFOOT NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BA"},5563:{"value":"15BB","name":"CANADIAN SYLLABICS BLACKFOOT NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BB"},5564:{"value":"15BC","name":"CANADIAN SYLLABICS BLACKFOOT KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BC"},5565:{"value":"15BD","name":"CANADIAN SYLLABICS BLACKFOOT KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BD"},5566:{"value":"15BE","name":"CANADIAN SYLLABICS BLACKFOOT KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BE"},5567:{"value":"15BF","name":"CANADIAN SYLLABICS BLACKFOOT KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BF"},5568:{"value":"15C0","name":"CANADIAN SYLLABICS SAYISI HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C0"},5569:{"value":"15C1","name":"CANADIAN SYLLABICS SAYISI HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C1"},5570:{"value":"15C2","name":"CANADIAN SYLLABICS SAYISI HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C2"},5571:{"value":"15C3","name":"CANADIAN SYLLABICS SAYISI HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C3"},5572:{"value":"15C4","name":"CANADIAN SYLLABICS CARRIER GHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C4"},5573:{"value":"15C5","name":"CANADIAN SYLLABICS CARRIER GHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C5"},5574:{"value":"15C6","name":"CANADIAN SYLLABICS CARRIER GHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C6"},5575:{"value":"15C7","name":"CANADIAN SYLLABICS CARRIER GHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C7"},5576:{"value":"15C8","name":"CANADIAN SYLLABICS CARRIER GHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C8"},5577:{"value":"15C9","name":"CANADIAN SYLLABICS CARRIER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C9"},5578:{"value":"15CA","name":"CANADIAN SYLLABICS CARRIER RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15CA"},5579:{"value":"15CB","name":"CANADIAN SYLLABICS CARRIER RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15CB"},5580:{"value":"15CC","name":"CANADIAN SYLLABICS CARRIER RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15CC"},5581:{"value":"15CD","name":"CANADIAN SYLLABICS CARRIER REE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15CD"},5582:{"value":"15CE","name":"CANADIAN SYLLABICS CARRIER RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15CE"},5583:{"value":"15CF","name":"CANADIAN SYLLABICS CARRIER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15CF"},5584:{"value":"15D0","name":"CANADIAN SYLLABICS CARRIER WU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D0"},5585:{"value":"15D1","name":"CANADIAN SYLLABICS CARRIER WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D1"},5586:{"value":"15D2","name":"CANADIAN SYLLABICS CARRIER WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D2"},5587:{"value":"15D3","name":"CANADIAN SYLLABICS CARRIER WEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D3"},5588:{"value":"15D4","name":"CANADIAN SYLLABICS CARRIER WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D4"},5589:{"value":"15D5","name":"CANADIAN SYLLABICS CARRIER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D5"},5590:{"value":"15D6","name":"CANADIAN SYLLABICS CARRIER HWU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D6"},5591:{"value":"15D7","name":"CANADIAN SYLLABICS CARRIER HWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D7"},5592:{"value":"15D8","name":"CANADIAN SYLLABICS CARRIER HWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D8"},5593:{"value":"15D9","name":"CANADIAN SYLLABICS CARRIER HWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D9"},5594:{"value":"15DA","name":"CANADIAN SYLLABICS CARRIER HWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15DA"},5595:{"value":"15DB","name":"CANADIAN SYLLABICS CARRIER HWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15DB"},5596:{"value":"15DC","name":"CANADIAN SYLLABICS CARRIER THU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15DC"},5597:{"value":"15DD","name":"CANADIAN SYLLABICS CARRIER THO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15DD"},5598:{"value":"15DE","name":"CANADIAN SYLLABICS CARRIER THE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15DE"},5599:{"value":"15DF","name":"CANADIAN SYLLABICS CARRIER THEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15DF"},5600:{"value":"15E0","name":"CANADIAN SYLLABICS CARRIER THI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15E0"},5601:{"value":"15E1","name":"CANADIAN SYLLABICS CARRIER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15E1"},5602:{"value":"15E2","name":"CANADIAN SYLLABICS CARRIER TTU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15E2"},5603:{"value":"15E3","name":"CANADIAN SYLLABICS CARRIER TTO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15E3"},5604:{"value":"15E4","name":"CANADIAN SYLLABICS CARRIER TTE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15E4"},5605:{"value":"15E5","name":"CANADIAN SYLLABICS CARRIER TTEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15E5"},5606:{"value":"15E6","name":"CANADIAN SYLLABICS CARRIER TTI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15E6"},5607:{"value":"15E7","name":"CANADIAN SYLLABICS CARRIER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15E7"},5608:{"value":"15E8","name":"CANADIAN SYLLABICS CARRIER PU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15E8"},5609:{"value":"15E9","name":"CANADIAN SYLLABICS CARRIER PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15E9"},5610:{"value":"15EA","name":"CANADIAN SYLLABICS CARRIER PE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15EA"},5611:{"value":"15EB","name":"CANADIAN SYLLABICS CARRIER PEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15EB"},5612:{"value":"15EC","name":"CANADIAN SYLLABICS CARRIER PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15EC"},5613:{"value":"15ED","name":"CANADIAN SYLLABICS CARRIER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15ED"},5614:{"value":"15EE","name":"CANADIAN SYLLABICS CARRIER P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15EE"},5615:{"value":"15EF","name":"CANADIAN SYLLABICS CARRIER GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15EF"},5616:{"value":"15F0","name":"CANADIAN SYLLABICS CARRIER GO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15F0"},5617:{"value":"15F1","name":"CANADIAN SYLLABICS CARRIER GE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15F1"},5618:{"value":"15F2","name":"CANADIAN SYLLABICS CARRIER GEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15F2"},5619:{"value":"15F3","name":"CANADIAN SYLLABICS CARRIER GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15F3"},5620:{"value":"15F4","name":"CANADIAN SYLLABICS CARRIER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15F4"},5621:{"value":"15F5","name":"CANADIAN SYLLABICS CARRIER KHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15F5"},5622:{"value":"15F6","name":"CANADIAN SYLLABICS CARRIER KHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15F6"},5623:{"value":"15F7","name":"CANADIAN SYLLABICS CARRIER KHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15F7"},5624:{"value":"15F8","name":"CANADIAN SYLLABICS CARRIER KHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15F8"},5625:{"value":"15F9","name":"CANADIAN SYLLABICS CARRIER KHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15F9"},5626:{"value":"15FA","name":"CANADIAN SYLLABICS CARRIER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15FA"},5627:{"value":"15FB","name":"CANADIAN SYLLABICS CARRIER KKU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15FB"},5628:{"value":"15FC","name":"CANADIAN SYLLABICS CARRIER KKO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15FC"},5629:{"value":"15FD","name":"CANADIAN SYLLABICS CARRIER KKE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15FD"},5630:{"value":"15FE","name":"CANADIAN SYLLABICS CARRIER KKEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15FE"},5631:{"value":"15FF","name":"CANADIAN SYLLABICS CARRIER KKI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15FF"},5632:{"value":"1600","name":"CANADIAN SYLLABICS CARRIER KKA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1600"},5633:{"value":"1601","name":"CANADIAN SYLLABICS CARRIER KK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1601"},5634:{"value":"1602","name":"CANADIAN SYLLABICS CARRIER NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1602"},5635:{"value":"1603","name":"CANADIAN SYLLABICS CARRIER NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1603"},5636:{"value":"1604","name":"CANADIAN SYLLABICS CARRIER NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1604"},5637:{"value":"1605","name":"CANADIAN SYLLABICS CARRIER NEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1605"},5638:{"value":"1606","name":"CANADIAN SYLLABICS CARRIER NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1606"},5639:{"value":"1607","name":"CANADIAN SYLLABICS CARRIER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1607"},5640:{"value":"1608","name":"CANADIAN SYLLABICS CARRIER MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1608"},5641:{"value":"1609","name":"CANADIAN SYLLABICS CARRIER MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1609"},5642:{"value":"160A","name":"CANADIAN SYLLABICS CARRIER ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160A"},5643:{"value":"160B","name":"CANADIAN SYLLABICS CARRIER MEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160B"},5644:{"value":"160C","name":"CANADIAN SYLLABICS CARRIER MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160C"},5645:{"value":"160D","name":"CANADIAN SYLLABICS CARRIER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160D"},5646:{"value":"160E","name":"CANADIAN SYLLABICS CARRIER YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160E"},5647:{"value":"160F","name":"CANADIAN SYLLABICS CARRIER YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160F"},5648:{"value":"1610","name":"CANADIAN SYLLABICS CARRIER YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1610"},5649:{"value":"1611","name":"CANADIAN SYLLABICS CARRIER YEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1611"},5650:{"value":"1612","name":"CANADIAN SYLLABICS CARRIER YI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1612"},5651:{"value":"1613","name":"CANADIAN SYLLABICS CARRIER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1613"},5652:{"value":"1614","name":"CANADIAN SYLLABICS CARRIER JU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1614"},5653:{"value":"1615","name":"CANADIAN SYLLABICS SAYISI JU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1615"},5654:{"value":"1616","name":"CANADIAN SYLLABICS CARRIER JO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1616"},5655:{"value":"1617","name":"CANADIAN SYLLABICS CARRIER JE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1617"},5656:{"value":"1618","name":"CANADIAN SYLLABICS CARRIER JEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1618"},5657:{"value":"1619","name":"CANADIAN SYLLABICS CARRIER JI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1619"},5658:{"value":"161A","name":"CANADIAN SYLLABICS SAYISI JI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161A"},5659:{"value":"161B","name":"CANADIAN SYLLABICS CARRIER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161B"},5660:{"value":"161C","name":"CANADIAN SYLLABICS CARRIER JJU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161C"},5661:{"value":"161D","name":"CANADIAN SYLLABICS CARRIER JJO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161D"},5662:{"value":"161E","name":"CANADIAN SYLLABICS CARRIER JJE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161E"},5663:{"value":"161F","name":"CANADIAN SYLLABICS CARRIER JJEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161F"},5664:{"value":"1620","name":"CANADIAN SYLLABICS CARRIER JJI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1620"},5665:{"value":"1621","name":"CANADIAN SYLLABICS CARRIER JJA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1621"},5666:{"value":"1622","name":"CANADIAN SYLLABICS CARRIER LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1622"},5667:{"value":"1623","name":"CANADIAN SYLLABICS CARRIER LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1623"},5668:{"value":"1624","name":"CANADIAN SYLLABICS CARRIER LE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1624"},5669:{"value":"1625","name":"CANADIAN SYLLABICS CARRIER LEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1625"},5670:{"value":"1626","name":"CANADIAN SYLLABICS CARRIER LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1626"},5671:{"value":"1627","name":"CANADIAN SYLLABICS CARRIER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1627"},5672:{"value":"1628","name":"CANADIAN SYLLABICS CARRIER DLU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1628"},5673:{"value":"1629","name":"CANADIAN SYLLABICS CARRIER DLO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1629"},5674:{"value":"162A","name":"CANADIAN SYLLABICS CARRIER DLE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162A"},5675:{"value":"162B","name":"CANADIAN SYLLABICS CARRIER DLEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162B"},5676:{"value":"162C","name":"CANADIAN SYLLABICS CARRIER DLI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162C"},5677:{"value":"162D","name":"CANADIAN SYLLABICS CARRIER DLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162D"},5678:{"value":"162E","name":"CANADIAN SYLLABICS CARRIER LHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162E"},5679:{"value":"162F","name":"CANADIAN SYLLABICS CARRIER LHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162F"},5680:{"value":"1630","name":"CANADIAN SYLLABICS CARRIER LHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1630"},5681:{"value":"1631","name":"CANADIAN SYLLABICS CARRIER LHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1631"},5682:{"value":"1632","name":"CANADIAN SYLLABICS CARRIER LHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1632"},5683:{"value":"1633","name":"CANADIAN SYLLABICS CARRIER LHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1633"},5684:{"value":"1634","name":"CANADIAN SYLLABICS CARRIER TLHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1634"},5685:{"value":"1635","name":"CANADIAN SYLLABICS CARRIER TLHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1635"},5686:{"value":"1636","name":"CANADIAN SYLLABICS CARRIER TLHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1636"},5687:{"value":"1637","name":"CANADIAN SYLLABICS CARRIER TLHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1637"},5688:{"value":"1638","name":"CANADIAN SYLLABICS CARRIER TLHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1638"},5689:{"value":"1639","name":"CANADIAN SYLLABICS CARRIER TLHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1639"},5690:{"value":"163A","name":"CANADIAN SYLLABICS CARRIER TLU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163A"},5691:{"value":"163B","name":"CANADIAN SYLLABICS CARRIER TLO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163B"},5692:{"value":"163C","name":"CANADIAN SYLLABICS CARRIER TLE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163C"},5693:{"value":"163D","name":"CANADIAN SYLLABICS CARRIER TLEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163D"},5694:{"value":"163E","name":"CANADIAN SYLLABICS CARRIER TLI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163E"},5695:{"value":"163F","name":"CANADIAN SYLLABICS CARRIER TLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163F"},5696:{"value":"1640","name":"CANADIAN SYLLABICS CARRIER ZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1640"},5697:{"value":"1641","name":"CANADIAN SYLLABICS CARRIER ZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1641"},5698:{"value":"1642","name":"CANADIAN SYLLABICS CARRIER ZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1642"},5699:{"value":"1643","name":"CANADIAN SYLLABICS CARRIER ZEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1643"},5700:{"value":"1644","name":"CANADIAN SYLLABICS CARRIER ZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1644"},5701:{"value":"1645","name":"CANADIAN SYLLABICS CARRIER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1645"},5702:{"value":"1646","name":"CANADIAN SYLLABICS CARRIER Z","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1646"},5703:{"value":"1647","name":"CANADIAN SYLLABICS CARRIER INITIAL Z","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1647"},5704:{"value":"1648","name":"CANADIAN SYLLABICS CARRIER DZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1648"},5705:{"value":"1649","name":"CANADIAN SYLLABICS CARRIER DZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1649"},5706:{"value":"164A","name":"CANADIAN SYLLABICS CARRIER DZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u164A"},5707:{"value":"164B","name":"CANADIAN SYLLABICS CARRIER DZEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u164B"},5708:{"value":"164C","name":"CANADIAN SYLLABICS CARRIER DZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u164C"},5709:{"value":"164D","name":"CANADIAN SYLLABICS CARRIER DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u164D"},5710:{"value":"164E","name":"CANADIAN SYLLABICS CARRIER SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u164E"},5711:{"value":"164F","name":"CANADIAN SYLLABICS CARRIER SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u164F"},5712:{"value":"1650","name":"CANADIAN SYLLABICS CARRIER SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1650"},5713:{"value":"1651","name":"CANADIAN SYLLABICS CARRIER SEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1651"},5714:{"value":"1652","name":"CANADIAN SYLLABICS CARRIER SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1652"},5715:{"value":"1653","name":"CANADIAN SYLLABICS CARRIER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1653"},5716:{"value":"1654","name":"CANADIAN SYLLABICS CARRIER SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1654"},5717:{"value":"1655","name":"CANADIAN SYLLABICS CARRIER SHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1655"},5718:{"value":"1656","name":"CANADIAN SYLLABICS CARRIER SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1656"},5719:{"value":"1657","name":"CANADIAN SYLLABICS CARRIER SHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1657"},5720:{"value":"1658","name":"CANADIAN SYLLABICS CARRIER SHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1658"},5721:{"value":"1659","name":"CANADIAN SYLLABICS CARRIER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1659"},5722:{"value":"165A","name":"CANADIAN SYLLABICS CARRIER SH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u165A"},5723:{"value":"165B","name":"CANADIAN SYLLABICS CARRIER TSU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u165B"},5724:{"value":"165C","name":"CANADIAN SYLLABICS CARRIER TSO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u165C"},5725:{"value":"165D","name":"CANADIAN SYLLABICS CARRIER TSE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u165D"},5726:{"value":"165E","name":"CANADIAN SYLLABICS CARRIER TSEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u165E"},5727:{"value":"165F","name":"CANADIAN SYLLABICS CARRIER TSI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u165F"},5728:{"value":"1660","name":"CANADIAN SYLLABICS CARRIER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1660"},5729:{"value":"1661","name":"CANADIAN SYLLABICS CARRIER CHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1661"},5730:{"value":"1662","name":"CANADIAN SYLLABICS CARRIER CHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1662"},5731:{"value":"1663","name":"CANADIAN SYLLABICS CARRIER CHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1663"},5732:{"value":"1664","name":"CANADIAN SYLLABICS CARRIER CHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1664"},5733:{"value":"1665","name":"CANADIAN SYLLABICS CARRIER CHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1665"},5734:{"value":"1666","name":"CANADIAN SYLLABICS CARRIER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1666"},5735:{"value":"1667","name":"CANADIAN SYLLABICS CARRIER TTSU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1667"},5736:{"value":"1668","name":"CANADIAN SYLLABICS CARRIER TTSO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1668"},5737:{"value":"1669","name":"CANADIAN SYLLABICS CARRIER TTSE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1669"},5738:{"value":"166A","name":"CANADIAN SYLLABICS CARRIER TTSEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u166A"},5739:{"value":"166B","name":"CANADIAN SYLLABICS CARRIER TTSI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u166B"},5740:{"value":"166C","name":"CANADIAN SYLLABICS CARRIER TTSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u166C"},5743:{"value":"166F","name":"CANADIAN SYLLABICS QAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u166F"},5744:{"value":"1670","name":"CANADIAN SYLLABICS NGAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1670"},5745:{"value":"1671","name":"CANADIAN SYLLABICS NNGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1671"},5746:{"value":"1672","name":"CANADIAN SYLLABICS NNGII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1672"},5747:{"value":"1673","name":"CANADIAN SYLLABICS NNGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1673"},5748:{"value":"1674","name":"CANADIAN SYLLABICS NNGOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1674"},5749:{"value":"1675","name":"CANADIAN SYLLABICS NNGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1675"},5750:{"value":"1676","name":"CANADIAN SYLLABICS NNGAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1676"},5751:{"value":"1677","name":"CANADIAN SYLLABICS WOODS-CREE THWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1677"},5752:{"value":"1678","name":"CANADIAN SYLLABICS WOODS-CREE THWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1678"},5753:{"value":"1679","name":"CANADIAN SYLLABICS WOODS-CREE THWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1679"},5754:{"value":"167A","name":"CANADIAN SYLLABICS WOODS-CREE THWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u167A"},5755:{"value":"167B","name":"CANADIAN SYLLABICS WOODS-CREE THWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u167B"},5756:{"value":"167C","name":"CANADIAN SYLLABICS WOODS-CREE THWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u167C"},5757:{"value":"167D","name":"CANADIAN SYLLABICS WOODS-CREE THWAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u167D"},5758:{"value":"167E","name":"CANADIAN SYLLABICS WOODS-CREE FINAL TH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u167E"},5759:{"value":"167F","name":"CANADIAN SYLLABICS BLACKFOOT W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u167F"},5761:{"value":"1681","name":"OGHAM LETTER BEITH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1681"},5762:{"value":"1682","name":"OGHAM LETTER LUIS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1682"},5763:{"value":"1683","name":"OGHAM LETTER FEARN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1683"},5764:{"value":"1684","name":"OGHAM LETTER SAIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1684"},5765:{"value":"1685","name":"OGHAM LETTER NION","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1685"},5766:{"value":"1686","name":"OGHAM LETTER UATH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1686"},5767:{"value":"1687","name":"OGHAM LETTER DAIR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1687"},5768:{"value":"1688","name":"OGHAM LETTER TINNE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1688"},5769:{"value":"1689","name":"OGHAM LETTER COLL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1689"},5770:{"value":"168A","name":"OGHAM LETTER CEIRT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168A"},5771:{"value":"168B","name":"OGHAM LETTER MUIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168B"},5772:{"value":"168C","name":"OGHAM LETTER GORT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168C"},5773:{"value":"168D","name":"OGHAM LETTER NGEADAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168D"},5774:{"value":"168E","name":"OGHAM LETTER STRAIF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168E"},5775:{"value":"168F","name":"OGHAM LETTER RUIS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168F"},5776:{"value":"1690","name":"OGHAM LETTER AILM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1690"},5777:{"value":"1691","name":"OGHAM LETTER ONN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1691"},5778:{"value":"1692","name":"OGHAM LETTER UR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1692"},5779:{"value":"1693","name":"OGHAM LETTER EADHADH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1693"},5780:{"value":"1694","name":"OGHAM LETTER IODHADH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1694"},5781:{"value":"1695","name":"OGHAM LETTER EABHADH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1695"},5782:{"value":"1696","name":"OGHAM LETTER OR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1696"},5783:{"value":"1697","name":"OGHAM LETTER UILLEANN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1697"},5784:{"value":"1698","name":"OGHAM LETTER IFIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1698"},5785:{"value":"1699","name":"OGHAM LETTER EAMHANCHOLL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1699"},5786:{"value":"169A","name":"OGHAM LETTER PEITH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u169A"},5792:{"value":"16A0","name":"RUNIC LETTER FEHU FEOH FE F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A0"},5793:{"value":"16A1","name":"RUNIC LETTER V","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A1"},5794:{"value":"16A2","name":"RUNIC LETTER URUZ UR U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A2"},5795:{"value":"16A3","name":"RUNIC LETTER YR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A3"},5796:{"value":"16A4","name":"RUNIC LETTER Y","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A4"},5797:{"value":"16A5","name":"RUNIC LETTER W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A5"},5798:{"value":"16A6","name":"RUNIC LETTER THURISAZ THURS THORN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A6"},5799:{"value":"16A7","name":"RUNIC LETTER ETH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A7"},5800:{"value":"16A8","name":"RUNIC LETTER ANSUZ A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A8"},5801:{"value":"16A9","name":"RUNIC LETTER OS O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A9"},5802:{"value":"16AA","name":"RUNIC LETTER AC A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AA"},5803:{"value":"16AB","name":"RUNIC LETTER AESC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AB"},5804:{"value":"16AC","name":"RUNIC LETTER LONG-BRANCH-OSS O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AC"},5805:{"value":"16AD","name":"RUNIC LETTER SHORT-TWIG-OSS O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AD"},5806:{"value":"16AE","name":"RUNIC LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AE"},5807:{"value":"16AF","name":"RUNIC LETTER OE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AF"},5808:{"value":"16B0","name":"RUNIC LETTER ON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B0"},5809:{"value":"16B1","name":"RUNIC LETTER RAIDO RAD REID R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B1"},5810:{"value":"16B2","name":"RUNIC LETTER KAUNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B2"},5811:{"value":"16B3","name":"RUNIC LETTER CEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B3"},5812:{"value":"16B4","name":"RUNIC LETTER KAUN K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B4"},5813:{"value":"16B5","name":"RUNIC LETTER G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B5"},5814:{"value":"16B6","name":"RUNIC LETTER ENG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B6"},5815:{"value":"16B7","name":"RUNIC LETTER GEBO GYFU G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B7"},5816:{"value":"16B8","name":"RUNIC LETTER GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B8"},5817:{"value":"16B9","name":"RUNIC LETTER WUNJO WYNN W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B9"},5818:{"value":"16BA","name":"RUNIC LETTER HAGLAZ H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16BA"},5819:{"value":"16BB","name":"RUNIC LETTER HAEGL H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16BB"},5820:{"value":"16BC","name":"RUNIC LETTER LONG-BRANCH-HAGALL H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16BC"},5821:{"value":"16BD","name":"RUNIC LETTER SHORT-TWIG-HAGALL H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16BD"},5822:{"value":"16BE","name":"RUNIC LETTER NAUDIZ NYD NAUD N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16BE"},5823:{"value":"16BF","name":"RUNIC LETTER SHORT-TWIG-NAUD N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16BF"},5824:{"value":"16C0","name":"RUNIC LETTER DOTTED-N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C0"},5825:{"value":"16C1","name":"RUNIC LETTER ISAZ IS ISS I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C1"},5826:{"value":"16C2","name":"RUNIC LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C2"},5827:{"value":"16C3","name":"RUNIC LETTER JERAN J","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C3"},5828:{"value":"16C4","name":"RUNIC LETTER GER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C4"},5829:{"value":"16C5","name":"RUNIC LETTER LONG-BRANCH-AR AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C5"},5830:{"value":"16C6","name":"RUNIC LETTER SHORT-TWIG-AR A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C6"},5831:{"value":"16C7","name":"RUNIC LETTER IWAZ EOH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C7"},5832:{"value":"16C8","name":"RUNIC LETTER PERTHO PEORTH P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C8"},5833:{"value":"16C9","name":"RUNIC LETTER ALGIZ EOLHX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C9"},5834:{"value":"16CA","name":"RUNIC LETTER SOWILO S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16CA"},5835:{"value":"16CB","name":"RUNIC LETTER SIGEL LONG-BRANCH-SOL S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16CB"},5836:{"value":"16CC","name":"RUNIC LETTER SHORT-TWIG-SOL S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16CC"},5837:{"value":"16CD","name":"RUNIC LETTER C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16CD"},5838:{"value":"16CE","name":"RUNIC LETTER Z","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16CE"},5839:{"value":"16CF","name":"RUNIC LETTER TIWAZ TIR TYR T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16CF"},5840:{"value":"16D0","name":"RUNIC LETTER SHORT-TWIG-TYR T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16D0"},5841:{"value":"16D1","name":"RUNIC LETTER D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16D1"},5842:{"value":"16D2","name":"RUNIC LETTER BERKANAN BEORC BJARKAN B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16D2"},5843:{"value":"16D3","name":"RUNIC LETTER SHORT-TWIG-BJARKAN B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16D3"},5844:{"value":"16D4","name":"RUNIC LETTER DOTTED-P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16D4"},5845:{"value":"16D5","name":"RUNIC LETTER OPEN-P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16D5"},5846:{"value":"16D6","name":"RUNIC LETTER EHWAZ EH E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16D6"},5847:{"value":"16D7","name":"RUNIC LETTER MANNAZ MAN M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16D7"},5848:{"value":"16D8","name":"RUNIC LETTER LONG-BRANCH-MADR M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16D8"},5849:{"value":"16D9","name":"RUNIC LETTER SHORT-TWIG-MADR M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16D9"},5850:{"value":"16DA","name":"RUNIC LETTER LAUKAZ LAGU LOGR L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16DA"},5851:{"value":"16DB","name":"RUNIC LETTER DOTTED-L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16DB"},5852:{"value":"16DC","name":"RUNIC LETTER INGWAZ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16DC"},5853:{"value":"16DD","name":"RUNIC LETTER ING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16DD"},5854:{"value":"16DE","name":"RUNIC LETTER DAGAZ DAEG D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16DE"},5855:{"value":"16DF","name":"RUNIC LETTER OTHALAN ETHEL O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16DF"},5856:{"value":"16E0","name":"RUNIC LETTER EAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16E0"},5857:{"value":"16E1","name":"RUNIC LETTER IOR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16E1"},5858:{"value":"16E2","name":"RUNIC LETTER CWEORTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16E2"},5859:{"value":"16E3","name":"RUNIC LETTER CALC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16E3"},5860:{"value":"16E4","name":"RUNIC LETTER CEALC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16E4"},5861:{"value":"16E5","name":"RUNIC LETTER STAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16E5"},5862:{"value":"16E6","name":"RUNIC LETTER LONG-BRANCH-YR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16E6"},5863:{"value":"16E7","name":"RUNIC LETTER SHORT-TWIG-YR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16E7"},5864:{"value":"16E8","name":"RUNIC LETTER ICELANDIC-YR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16E8"},5865:{"value":"16E9","name":"RUNIC LETTER Q","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16E9"},5866:{"value":"16EA","name":"RUNIC LETTER X","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16EA"},5873:{"value":"16F1","name":"RUNIC LETTER K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16F1"},5874:{"value":"16F2","name":"RUNIC LETTER SH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16F2"},5875:{"value":"16F3","name":"RUNIC LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16F3"},5876:{"value":"16F4","name":"RUNIC LETTER FRANKS CASKET OS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16F4"},5877:{"value":"16F5","name":"RUNIC LETTER FRANKS CASKET IS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16F5"},5878:{"value":"16F6","name":"RUNIC LETTER FRANKS CASKET EH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16F6"},5879:{"value":"16F7","name":"RUNIC LETTER FRANKS CASKET AC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16F7"},5880:{"value":"16F8","name":"RUNIC LETTER FRANKS CASKET AESC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16F8"},5888:{"value":"1700","name":"TAGALOG LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1700"},5889:{"value":"1701","name":"TAGALOG LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1701"},5890:{"value":"1702","name":"TAGALOG LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1702"},5891:{"value":"1703","name":"TAGALOG LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1703"},5892:{"value":"1704","name":"TAGALOG LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1704"},5893:{"value":"1705","name":"TAGALOG LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1705"},5894:{"value":"1706","name":"TAGALOG LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1706"},5895:{"value":"1707","name":"TAGALOG LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1707"},5896:{"value":"1708","name":"TAGALOG LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1708"},5897:{"value":"1709","name":"TAGALOG LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1709"},5898:{"value":"170A","name":"TAGALOG LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170A"},5899:{"value":"170B","name":"TAGALOG LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170B"},5900:{"value":"170C","name":"TAGALOG LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170C"},5902:{"value":"170E","name":"TAGALOG LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170E"},5903:{"value":"170F","name":"TAGALOG LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170F"},5904:{"value":"1710","name":"TAGALOG LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1710"},5905:{"value":"1711","name":"TAGALOG LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1711"},5920:{"value":"1720","name":"HANUNOO LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1720"},5921:{"value":"1721","name":"HANUNOO LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1721"},5922:{"value":"1722","name":"HANUNOO LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1722"},5923:{"value":"1723","name":"HANUNOO LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1723"},5924:{"value":"1724","name":"HANUNOO LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1724"},5925:{"value":"1725","name":"HANUNOO LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1725"},5926:{"value":"1726","name":"HANUNOO LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1726"},5927:{"value":"1727","name":"HANUNOO LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1727"},5928:{"value":"1728","name":"HANUNOO LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1728"},5929:{"value":"1729","name":"HANUNOO LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1729"},5930:{"value":"172A","name":"HANUNOO LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u172A"},5931:{"value":"172B","name":"HANUNOO LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u172B"},5932:{"value":"172C","name":"HANUNOO LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u172C"},5933:{"value":"172D","name":"HANUNOO LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u172D"},5934:{"value":"172E","name":"HANUNOO LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u172E"},5935:{"value":"172F","name":"HANUNOO LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u172F"},5936:{"value":"1730","name":"HANUNOO LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1730"},5937:{"value":"1731","name":"HANUNOO LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1731"},5952:{"value":"1740","name":"BUHID LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1740"},5953:{"value":"1741","name":"BUHID LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1741"},5954:{"value":"1742","name":"BUHID LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1742"},5955:{"value":"1743","name":"BUHID LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1743"},5956:{"value":"1744","name":"BUHID LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1744"},5957:{"value":"1745","name":"BUHID LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1745"},5958:{"value":"1746","name":"BUHID LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1746"},5959:{"value":"1747","name":"BUHID LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1747"},5960:{"value":"1748","name":"BUHID LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1748"},5961:{"value":"1749","name":"BUHID LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1749"},5962:{"value":"174A","name":"BUHID LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u174A"},5963:{"value":"174B","name":"BUHID LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u174B"},5964:{"value":"174C","name":"BUHID LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u174C"},5965:{"value":"174D","name":"BUHID LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u174D"},5966:{"value":"174E","name":"BUHID LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u174E"},5967:{"value":"174F","name":"BUHID LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u174F"},5968:{"value":"1750","name":"BUHID LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1750"},5969:{"value":"1751","name":"BUHID LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1751"},5984:{"value":"1760","name":"TAGBANWA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1760"},5985:{"value":"1761","name":"TAGBANWA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1761"},5986:{"value":"1762","name":"TAGBANWA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1762"},5987:{"value":"1763","name":"TAGBANWA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1763"},5988:{"value":"1764","name":"TAGBANWA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1764"},5989:{"value":"1765","name":"TAGBANWA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1765"},5990:{"value":"1766","name":"TAGBANWA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1766"},5991:{"value":"1767","name":"TAGBANWA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1767"},5992:{"value":"1768","name":"TAGBANWA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1768"},5993:{"value":"1769","name":"TAGBANWA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1769"},5994:{"value":"176A","name":"TAGBANWA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u176A"},5995:{"value":"176B","name":"TAGBANWA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u176B"},5996:{"value":"176C","name":"TAGBANWA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u176C"},5998:{"value":"176E","name":"TAGBANWA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u176E"},5999:{"value":"176F","name":"TAGBANWA LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u176F"},6000:{"value":"1770","name":"TAGBANWA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1770"},6016:{"value":"1780","name":"KHMER LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1780"},6017:{"value":"1781","name":"KHMER LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1781"},6018:{"value":"1782","name":"KHMER LETTER KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1782"},6019:{"value":"1783","name":"KHMER LETTER KHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1783"},6020:{"value":"1784","name":"KHMER LETTER NGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1784"},6021:{"value":"1785","name":"KHMER LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1785"},6022:{"value":"1786","name":"KHMER LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1786"},6023:{"value":"1787","name":"KHMER LETTER CO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1787"},6024:{"value":"1788","name":"KHMER LETTER CHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1788"},6025:{"value":"1789","name":"KHMER LETTER NYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1789"},6026:{"value":"178A","name":"KHMER LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u178A"},6027:{"value":"178B","name":"KHMER LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u178B"},6028:{"value":"178C","name":"KHMER LETTER DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u178C"},6029:{"value":"178D","name":"KHMER LETTER TTHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u178D"},6030:{"value":"178E","name":"KHMER LETTER NNO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u178E"},6031:{"value":"178F","name":"KHMER LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u178F"},6032:{"value":"1790","name":"KHMER LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1790"},6033:{"value":"1791","name":"KHMER LETTER TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1791"},6034:{"value":"1792","name":"KHMER LETTER THO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1792"},6035:{"value":"1793","name":"KHMER LETTER NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1793"},6036:{"value":"1794","name":"KHMER LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1794"},6037:{"value":"1795","name":"KHMER LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1795"},6038:{"value":"1796","name":"KHMER LETTER PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1796"},6039:{"value":"1797","name":"KHMER LETTER PHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1797"},6040:{"value":"1798","name":"KHMER LETTER MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1798"},6041:{"value":"1799","name":"KHMER LETTER YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1799"},6042:{"value":"179A","name":"KHMER LETTER RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u179A"},6043:{"value":"179B","name":"KHMER LETTER LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u179B"},6044:{"value":"179C","name":"KHMER LETTER VO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u179C"},6045:{"value":"179D","name":"KHMER LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u179D"},6046:{"value":"179E","name":"KHMER LETTER SSO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u179E"},6047:{"value":"179F","name":"KHMER LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u179F"},6048:{"value":"17A0","name":"KHMER LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17A0"},6049:{"value":"17A1","name":"KHMER LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17A1"},6050:{"value":"17A2","name":"KHMER LETTER QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17A2"},6051:{"value":"17A3","name":"KHMER INDEPENDENT VOWEL QAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17A3"},6052:{"value":"17A4","name":"KHMER INDEPENDENT VOWEL QAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17A4"},6053:{"value":"17A5","name":"KHMER INDEPENDENT VOWEL QI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17A5"},6054:{"value":"17A6","name":"KHMER INDEPENDENT VOWEL QII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17A6"},6055:{"value":"17A7","name":"KHMER INDEPENDENT VOWEL QU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17A7"},6056:{"value":"17A8","name":"KHMER INDEPENDENT VOWEL QUK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17A8"},6057:{"value":"17A9","name":"KHMER INDEPENDENT VOWEL QUU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17A9"},6058:{"value":"17AA","name":"KHMER INDEPENDENT VOWEL QUUV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17AA"},6059:{"value":"17AB","name":"KHMER INDEPENDENT VOWEL RY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17AB"},6060:{"value":"17AC","name":"KHMER INDEPENDENT VOWEL RYY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17AC"},6061:{"value":"17AD","name":"KHMER INDEPENDENT VOWEL LY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17AD"},6062:{"value":"17AE","name":"KHMER INDEPENDENT VOWEL LYY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17AE"},6063:{"value":"17AF","name":"KHMER INDEPENDENT VOWEL QE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17AF"},6064:{"value":"17B0","name":"KHMER INDEPENDENT VOWEL QAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17B0"},6065:{"value":"17B1","name":"KHMER INDEPENDENT VOWEL QOO TYPE ONE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17B1"},6066:{"value":"17B2","name":"KHMER INDEPENDENT VOWEL QOO TYPE TWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17B2"},6067:{"value":"17B3","name":"KHMER INDEPENDENT VOWEL QAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17B3"},6108:{"value":"17DC","name":"KHMER SIGN AVAKRAHASANYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17DC"},6176:{"value":"1820","name":"MONGOLIAN LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1820"},6177:{"value":"1821","name":"MONGOLIAN LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1821"},6178:{"value":"1822","name":"MONGOLIAN LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1822"},6179:{"value":"1823","name":"MONGOLIAN LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1823"},6180:{"value":"1824","name":"MONGOLIAN LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1824"},6181:{"value":"1825","name":"MONGOLIAN LETTER OE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1825"},6182:{"value":"1826","name":"MONGOLIAN LETTER UE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1826"},6183:{"value":"1827","name":"MONGOLIAN LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1827"},6184:{"value":"1828","name":"MONGOLIAN LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1828"},6185:{"value":"1829","name":"MONGOLIAN LETTER ANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1829"},6186:{"value":"182A","name":"MONGOLIAN LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182A"},6187:{"value":"182B","name":"MONGOLIAN LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182B"},6188:{"value":"182C","name":"MONGOLIAN LETTER QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182C"},6189:{"value":"182D","name":"MONGOLIAN LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182D"},6190:{"value":"182E","name":"MONGOLIAN LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182E"},6191:{"value":"182F","name":"MONGOLIAN LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182F"},6192:{"value":"1830","name":"MONGOLIAN LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1830"},6193:{"value":"1831","name":"MONGOLIAN LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1831"},6194:{"value":"1832","name":"MONGOLIAN LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1832"},6195:{"value":"1833","name":"MONGOLIAN LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1833"},6196:{"value":"1834","name":"MONGOLIAN LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1834"},6197:{"value":"1835","name":"MONGOLIAN LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1835"},6198:{"value":"1836","name":"MONGOLIAN LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1836"},6199:{"value":"1837","name":"MONGOLIAN LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1837"},6200:{"value":"1838","name":"MONGOLIAN LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1838"},6201:{"value":"1839","name":"MONGOLIAN LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1839"},6202:{"value":"183A","name":"MONGOLIAN LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u183A"},6203:{"value":"183B","name":"MONGOLIAN LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u183B"},6204:{"value":"183C","name":"MONGOLIAN LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u183C"},6205:{"value":"183D","name":"MONGOLIAN LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u183D"},6206:{"value":"183E","name":"MONGOLIAN LETTER HAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u183E"},6207:{"value":"183F","name":"MONGOLIAN LETTER ZRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u183F"},6208:{"value":"1840","name":"MONGOLIAN LETTER LHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1840"},6209:{"value":"1841","name":"MONGOLIAN LETTER ZHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1841"},6210:{"value":"1842","name":"MONGOLIAN LETTER CHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1842"},6212:{"value":"1844","name":"MONGOLIAN LETTER TODO E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1844"},6213:{"value":"1845","name":"MONGOLIAN LETTER TODO I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1845"},6214:{"value":"1846","name":"MONGOLIAN LETTER TODO O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1846"},6215:{"value":"1847","name":"MONGOLIAN LETTER TODO U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1847"},6216:{"value":"1848","name":"MONGOLIAN LETTER TODO OE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1848"},6217:{"value":"1849","name":"MONGOLIAN LETTER TODO UE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1849"},6218:{"value":"184A","name":"MONGOLIAN LETTER TODO ANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u184A"},6219:{"value":"184B","name":"MONGOLIAN LETTER TODO BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u184B"},6220:{"value":"184C","name":"MONGOLIAN LETTER TODO PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u184C"},6221:{"value":"184D","name":"MONGOLIAN LETTER TODO QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u184D"},6222:{"value":"184E","name":"MONGOLIAN LETTER TODO GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u184E"},6223:{"value":"184F","name":"MONGOLIAN LETTER TODO MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u184F"},6224:{"value":"1850","name":"MONGOLIAN LETTER TODO TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1850"},6225:{"value":"1851","name":"MONGOLIAN LETTER TODO DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1851"},6226:{"value":"1852","name":"MONGOLIAN LETTER TODO CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1852"},6227:{"value":"1853","name":"MONGOLIAN LETTER TODO JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1853"},6228:{"value":"1854","name":"MONGOLIAN LETTER TODO TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1854"},6229:{"value":"1855","name":"MONGOLIAN LETTER TODO YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1855"},6230:{"value":"1856","name":"MONGOLIAN LETTER TODO WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1856"},6231:{"value":"1857","name":"MONGOLIAN LETTER TODO KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1857"},6232:{"value":"1858","name":"MONGOLIAN LETTER TODO GAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1858"},6233:{"value":"1859","name":"MONGOLIAN LETTER TODO HAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1859"},6234:{"value":"185A","name":"MONGOLIAN LETTER TODO JIA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u185A"},6235:{"value":"185B","name":"MONGOLIAN LETTER TODO NIA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u185B"},6236:{"value":"185C","name":"MONGOLIAN LETTER TODO DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u185C"},6237:{"value":"185D","name":"MONGOLIAN LETTER SIBE E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u185D"},6238:{"value":"185E","name":"MONGOLIAN LETTER SIBE I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u185E"},6239:{"value":"185F","name":"MONGOLIAN LETTER SIBE IY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u185F"},6240:{"value":"1860","name":"MONGOLIAN LETTER SIBE UE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1860"},6241:{"value":"1861","name":"MONGOLIAN LETTER SIBE U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1861"},6242:{"value":"1862","name":"MONGOLIAN LETTER SIBE ANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1862"},6243:{"value":"1863","name":"MONGOLIAN LETTER SIBE KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1863"},6244:{"value":"1864","name":"MONGOLIAN LETTER SIBE GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1864"},6245:{"value":"1865","name":"MONGOLIAN LETTER SIBE HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1865"},6246:{"value":"1866","name":"MONGOLIAN LETTER SIBE PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1866"},6247:{"value":"1867","name":"MONGOLIAN LETTER SIBE SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1867"},6248:{"value":"1868","name":"MONGOLIAN LETTER SIBE TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1868"},6249:{"value":"1869","name":"MONGOLIAN LETTER SIBE DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1869"},6250:{"value":"186A","name":"MONGOLIAN LETTER SIBE JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u186A"},6251:{"value":"186B","name":"MONGOLIAN LETTER SIBE FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u186B"},6252:{"value":"186C","name":"MONGOLIAN LETTER SIBE GAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u186C"},6253:{"value":"186D","name":"MONGOLIAN LETTER SIBE HAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u186D"},6254:{"value":"186E","name":"MONGOLIAN LETTER SIBE TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u186E"},6255:{"value":"186F","name":"MONGOLIAN LETTER SIBE ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u186F"},6256:{"value":"1870","name":"MONGOLIAN LETTER SIBE RAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1870"},6257:{"value":"1871","name":"MONGOLIAN LETTER SIBE CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1871"},6258:{"value":"1872","name":"MONGOLIAN LETTER SIBE ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1872"},6259:{"value":"1873","name":"MONGOLIAN LETTER MANCHU I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1873"},6260:{"value":"1874","name":"MONGOLIAN LETTER MANCHU KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1874"},6261:{"value":"1875","name":"MONGOLIAN LETTER MANCHU RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1875"},6262:{"value":"1876","name":"MONGOLIAN LETTER MANCHU FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1876"},6263:{"value":"1877","name":"MONGOLIAN LETTER MANCHU ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1877"},6264:{"value":"1878","name":"MONGOLIAN LETTER CHA WITH TWO DOTS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1878"},6272:{"value":"1880","name":"MONGOLIAN LETTER ALI GALI ANUSVARA ONE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1880"},6273:{"value":"1881","name":"MONGOLIAN LETTER ALI GALI VISARGA ONE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1881"},6274:{"value":"1882","name":"MONGOLIAN LETTER ALI GALI DAMARU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1882"},6275:{"value":"1883","name":"MONGOLIAN LETTER ALI GALI UBADAMA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1883"},6276:{"value":"1884","name":"MONGOLIAN LETTER ALI GALI INVERTED UBADAMA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1884"},6279:{"value":"1887","name":"MONGOLIAN LETTER ALI GALI A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1887"},6280:{"value":"1888","name":"MONGOLIAN LETTER ALI GALI I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1888"},6281:{"value":"1889","name":"MONGOLIAN LETTER ALI GALI KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1889"},6282:{"value":"188A","name":"MONGOLIAN LETTER ALI GALI NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u188A"},6283:{"value":"188B","name":"MONGOLIAN LETTER ALI GALI CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u188B"},6284:{"value":"188C","name":"MONGOLIAN LETTER ALI GALI TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u188C"},6285:{"value":"188D","name":"MONGOLIAN LETTER ALI GALI TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u188D"},6286:{"value":"188E","name":"MONGOLIAN LETTER ALI GALI DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u188E"},6287:{"value":"188F","name":"MONGOLIAN LETTER ALI GALI NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u188F"},6288:{"value":"1890","name":"MONGOLIAN LETTER ALI GALI TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1890"},6289:{"value":"1891","name":"MONGOLIAN LETTER ALI GALI DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1891"},6290:{"value":"1892","name":"MONGOLIAN LETTER ALI GALI PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1892"},6291:{"value":"1893","name":"MONGOLIAN LETTER ALI GALI PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1893"},6292:{"value":"1894","name":"MONGOLIAN LETTER ALI GALI SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1894"},6293:{"value":"1895","name":"MONGOLIAN LETTER ALI GALI ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1895"},6294:{"value":"1896","name":"MONGOLIAN LETTER ALI GALI ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1896"},6295:{"value":"1897","name":"MONGOLIAN LETTER ALI GALI AH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1897"},6296:{"value":"1898","name":"MONGOLIAN LETTER TODO ALI GALI TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1898"},6297:{"value":"1899","name":"MONGOLIAN LETTER TODO ALI GALI ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1899"},6298:{"value":"189A","name":"MONGOLIAN LETTER MANCHU ALI GALI GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u189A"},6299:{"value":"189B","name":"MONGOLIAN LETTER MANCHU ALI GALI NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u189B"},6300:{"value":"189C","name":"MONGOLIAN LETTER MANCHU ALI GALI CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u189C"},6301:{"value":"189D","name":"MONGOLIAN LETTER MANCHU ALI GALI JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u189D"},6302:{"value":"189E","name":"MONGOLIAN LETTER MANCHU ALI GALI TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u189E"},6303:{"value":"189F","name":"MONGOLIAN LETTER MANCHU ALI GALI DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u189F"},6304:{"value":"18A0","name":"MONGOLIAN LETTER MANCHU ALI GALI TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18A0"},6305:{"value":"18A1","name":"MONGOLIAN LETTER MANCHU ALI GALI DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18A1"},6306:{"value":"18A2","name":"MONGOLIAN LETTER MANCHU ALI GALI SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18A2"},6307:{"value":"18A3","name":"MONGOLIAN LETTER MANCHU ALI GALI CYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18A3"},6308:{"value":"18A4","name":"MONGOLIAN LETTER MANCHU ALI GALI ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18A4"},6309:{"value":"18A5","name":"MONGOLIAN LETTER MANCHU ALI GALI ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18A5"},6310:{"value":"18A6","name":"MONGOLIAN LETTER ALI GALI HALF U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18A6"},6311:{"value":"18A7","name":"MONGOLIAN LETTER ALI GALI HALF YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18A7"},6312:{"value":"18A8","name":"MONGOLIAN LETTER MANCHU ALI GALI BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18A8"},6314:{"value":"18AA","name":"MONGOLIAN LETTER MANCHU ALI GALI LHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18AA"},6320:{"value":"18B0","name":"CANADIAN SYLLABICS OY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18B0"},6321:{"value":"18B1","name":"CANADIAN SYLLABICS AY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18B1"},6322:{"value":"18B2","name":"CANADIAN SYLLABICS AAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18B2"},6323:{"value":"18B3","name":"CANADIAN SYLLABICS WAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18B3"},6324:{"value":"18B4","name":"CANADIAN SYLLABICS POY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18B4"},6325:{"value":"18B5","name":"CANADIAN SYLLABICS PAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18B5"},6326:{"value":"18B6","name":"CANADIAN SYLLABICS PWOY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18B6"},6327:{"value":"18B7","name":"CANADIAN SYLLABICS TAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18B7"},6328:{"value":"18B8","name":"CANADIAN SYLLABICS KAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18B8"},6329:{"value":"18B9","name":"CANADIAN SYLLABICS KWAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18B9"},6330:{"value":"18BA","name":"CANADIAN SYLLABICS MAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18BA"},6331:{"value":"18BB","name":"CANADIAN SYLLABICS NOY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18BB"},6332:{"value":"18BC","name":"CANADIAN SYLLABICS NAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18BC"},6333:{"value":"18BD","name":"CANADIAN SYLLABICS LAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18BD"},6334:{"value":"18BE","name":"CANADIAN SYLLABICS SOY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18BE"},6335:{"value":"18BF","name":"CANADIAN SYLLABICS SAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18BF"},6336:{"value":"18C0","name":"CANADIAN SYLLABICS SHOY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18C0"},6337:{"value":"18C1","name":"CANADIAN SYLLABICS SHAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18C1"},6338:{"value":"18C2","name":"CANADIAN SYLLABICS SHWOY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18C2"},6339:{"value":"18C3","name":"CANADIAN SYLLABICS YOY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18C3"},6340:{"value":"18C4","name":"CANADIAN SYLLABICS YAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18C4"},6341:{"value":"18C5","name":"CANADIAN SYLLABICS RAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18C5"},6342:{"value":"18C6","name":"CANADIAN SYLLABICS NWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18C6"},6343:{"value":"18C7","name":"CANADIAN SYLLABICS OJIBWAY NWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18C7"},6344:{"value":"18C8","name":"CANADIAN SYLLABICS NWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18C8"},6345:{"value":"18C9","name":"CANADIAN SYLLABICS OJIBWAY NWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18C9"},6346:{"value":"18CA","name":"CANADIAN SYLLABICS NWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18CA"},6347:{"value":"18CB","name":"CANADIAN SYLLABICS OJIBWAY NWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18CB"},6348:{"value":"18CC","name":"CANADIAN SYLLABICS NWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18CC"},6349:{"value":"18CD","name":"CANADIAN SYLLABICS OJIBWAY NWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18CD"},6350:{"value":"18CE","name":"CANADIAN SYLLABICS RWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18CE"},6351:{"value":"18CF","name":"CANADIAN SYLLABICS RWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18CF"},6352:{"value":"18D0","name":"CANADIAN SYLLABICS RWII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18D0"},6353:{"value":"18D1","name":"CANADIAN SYLLABICS RWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18D1"},6354:{"value":"18D2","name":"CANADIAN SYLLABICS RWOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18D2"},6355:{"value":"18D3","name":"CANADIAN SYLLABICS RWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18D3"},6356:{"value":"18D4","name":"CANADIAN SYLLABICS OJIBWAY P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18D4"},6357:{"value":"18D5","name":"CANADIAN SYLLABICS OJIBWAY T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18D5"},6358:{"value":"18D6","name":"CANADIAN SYLLABICS OJIBWAY K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18D6"},6359:{"value":"18D7","name":"CANADIAN SYLLABICS OJIBWAY C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18D7"},6360:{"value":"18D8","name":"CANADIAN SYLLABICS OJIBWAY M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18D8"},6361:{"value":"18D9","name":"CANADIAN SYLLABICS OJIBWAY N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18D9"},6362:{"value":"18DA","name":"CANADIAN SYLLABICS OJIBWAY S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18DA"},6363:{"value":"18DB","name":"CANADIAN SYLLABICS OJIBWAY SH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18DB"},6364:{"value":"18DC","name":"CANADIAN SYLLABICS EASTERN W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18DC"},6365:{"value":"18DD","name":"CANADIAN SYLLABICS WESTERN W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18DD"},6366:{"value":"18DE","name":"CANADIAN SYLLABICS FINAL SMALL RING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18DE"},6367:{"value":"18DF","name":"CANADIAN SYLLABICS FINAL RAISED DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18DF"},6368:{"value":"18E0","name":"CANADIAN SYLLABICS R-CREE RWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E0"},6369:{"value":"18E1","name":"CANADIAN SYLLABICS WEST-CREE LOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E1"},6370:{"value":"18E2","name":"CANADIAN SYLLABICS WEST-CREE LAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E2"},6371:{"value":"18E3","name":"CANADIAN SYLLABICS THWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E3"},6372:{"value":"18E4","name":"CANADIAN SYLLABICS THWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E4"},6373:{"value":"18E5","name":"CANADIAN SYLLABICS TTHWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E5"},6374:{"value":"18E6","name":"CANADIAN SYLLABICS TTHOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E6"},6375:{"value":"18E7","name":"CANADIAN SYLLABICS TTHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E7"},6376:{"value":"18E8","name":"CANADIAN SYLLABICS TLHWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E8"},6377:{"value":"18E9","name":"CANADIAN SYLLABICS TLHOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E9"},6378:{"value":"18EA","name":"CANADIAN SYLLABICS SAYISI SHWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18EA"},6379:{"value":"18EB","name":"CANADIAN SYLLABICS SAYISI SHOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18EB"},6380:{"value":"18EC","name":"CANADIAN SYLLABICS SAYISI HOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18EC"},6381:{"value":"18ED","name":"CANADIAN SYLLABICS CARRIER GWU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18ED"},6382:{"value":"18EE","name":"CANADIAN SYLLABICS CARRIER DENE GEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18EE"},6383:{"value":"18EF","name":"CANADIAN SYLLABICS CARRIER GAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18EF"},6384:{"value":"18F0","name":"CANADIAN SYLLABICS CARRIER GWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18F0"},6385:{"value":"18F1","name":"CANADIAN SYLLABICS SAYISI JUU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18F1"},6386:{"value":"18F2","name":"CANADIAN SYLLABICS CARRIER JWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18F2"},6387:{"value":"18F3","name":"CANADIAN SYLLABICS BEAVER DENE L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18F3"},6388:{"value":"18F4","name":"CANADIAN SYLLABICS BEAVER DENE R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18F4"},6389:{"value":"18F5","name":"CANADIAN SYLLABICS CARRIER DENTAL S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18F5"},6400:{"value":"1900","name":"LIMBU VOWEL-CARRIER LETTER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1900"},6401:{"value":"1901","name":"LIMBU LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1901"},6402:{"value":"1902","name":"LIMBU LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1902"},6403:{"value":"1903","name":"LIMBU LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1903"},6404:{"value":"1904","name":"LIMBU LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1904"},6405:{"value":"1905","name":"LIMBU LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1905"},6406:{"value":"1906","name":"LIMBU LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1906"},6407:{"value":"1907","name":"LIMBU LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1907"},6408:{"value":"1908","name":"LIMBU LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1908"},6409:{"value":"1909","name":"LIMBU LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1909"},6410:{"value":"190A","name":"LIMBU LETTER YAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u190A"},6411:{"value":"190B","name":"LIMBU LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u190B"},6412:{"value":"190C","name":"LIMBU LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u190C"},6413:{"value":"190D","name":"LIMBU LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u190D"},6414:{"value":"190E","name":"LIMBU LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u190E"},6415:{"value":"190F","name":"LIMBU LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u190F"},6416:{"value":"1910","name":"LIMBU LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1910"},6417:{"value":"1911","name":"LIMBU LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1911"},6418:{"value":"1912","name":"LIMBU LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1912"},6419:{"value":"1913","name":"LIMBU LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1913"},6420:{"value":"1914","name":"LIMBU LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1914"},6421:{"value":"1915","name":"LIMBU LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1915"},6422:{"value":"1916","name":"LIMBU LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1916"},6423:{"value":"1917","name":"LIMBU LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1917"},6424:{"value":"1918","name":"LIMBU LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1918"},6425:{"value":"1919","name":"LIMBU LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1919"},6426:{"value":"191A","name":"LIMBU LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u191A"},6427:{"value":"191B","name":"LIMBU LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u191B"},6428:{"value":"191C","name":"LIMBU LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u191C"},6429:{"value":"191D","name":"LIMBU LETTER GYAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u191D"},6430:{"value":"191E","name":"LIMBU LETTER TRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u191E"},6480:{"value":"1950","name":"TAI LE LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1950"},6481:{"value":"1951","name":"TAI LE LETTER XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1951"},6482:{"value":"1952","name":"TAI LE LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1952"},6483:{"value":"1953","name":"TAI LE LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1953"},6484:{"value":"1954","name":"TAI LE LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1954"},6485:{"value":"1955","name":"TAI LE LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1955"},6486:{"value":"1956","name":"TAI LE LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1956"},6487:{"value":"1957","name":"TAI LE LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1957"},6488:{"value":"1958","name":"TAI LE LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1958"},6489:{"value":"1959","name":"TAI LE LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1959"},6490:{"value":"195A","name":"TAI LE LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u195A"},6491:{"value":"195B","name":"TAI LE LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u195B"},6492:{"value":"195C","name":"TAI LE LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u195C"},6493:{"value":"195D","name":"TAI LE LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u195D"},6494:{"value":"195E","name":"TAI LE LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u195E"},6495:{"value":"195F","name":"TAI LE LETTER QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u195F"},6496:{"value":"1960","name":"TAI LE LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1960"},6497:{"value":"1961","name":"TAI LE LETTER TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1961"},6498:{"value":"1962","name":"TAI LE LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1962"},6499:{"value":"1963","name":"TAI LE LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1963"},6500:{"value":"1964","name":"TAI LE LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1964"},6501:{"value":"1965","name":"TAI LE LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1965"},6502:{"value":"1966","name":"TAI LE LETTER EH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1966"},6503:{"value":"1967","name":"TAI LE LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1967"},6504:{"value":"1968","name":"TAI LE LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1968"},6505:{"value":"1969","name":"TAI LE LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1969"},6506:{"value":"196A","name":"TAI LE LETTER UE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u196A"},6507:{"value":"196B","name":"TAI LE LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u196B"},6508:{"value":"196C","name":"TAI LE LETTER AUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u196C"},6509:{"value":"196D","name":"TAI LE LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u196D"},6512:{"value":"1970","name":"TAI LE LETTER TONE-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1970"},6513:{"value":"1971","name":"TAI LE LETTER TONE-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1971"},6514:{"value":"1972","name":"TAI LE LETTER TONE-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1972"},6515:{"value":"1973","name":"TAI LE LETTER TONE-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1973"},6516:{"value":"1974","name":"TAI LE LETTER TONE-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1974"},6528:{"value":"1980","name":"NEW TAI LUE LETTER HIGH QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1980"},6529:{"value":"1981","name":"NEW TAI LUE LETTER LOW QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1981"},6530:{"value":"1982","name":"NEW TAI LUE LETTER HIGH KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1982"},6531:{"value":"1983","name":"NEW TAI LUE LETTER HIGH XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1983"},6532:{"value":"1984","name":"NEW TAI LUE LETTER HIGH NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1984"},6533:{"value":"1985","name":"NEW TAI LUE LETTER LOW KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1985"},6534:{"value":"1986","name":"NEW TAI LUE LETTER LOW XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1986"},6535:{"value":"1987","name":"NEW TAI LUE LETTER LOW NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1987"},6536:{"value":"1988","name":"NEW TAI LUE LETTER HIGH TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1988"},6537:{"value":"1989","name":"NEW TAI LUE LETTER HIGH SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1989"},6538:{"value":"198A","name":"NEW TAI LUE LETTER HIGH YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u198A"},6539:{"value":"198B","name":"NEW TAI LUE LETTER LOW TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u198B"},6540:{"value":"198C","name":"NEW TAI LUE LETTER LOW SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u198C"},6541:{"value":"198D","name":"NEW TAI LUE LETTER LOW YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u198D"},6542:{"value":"198E","name":"NEW TAI LUE LETTER HIGH TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u198E"},6543:{"value":"198F","name":"NEW TAI LUE LETTER HIGH THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u198F"},6544:{"value":"1990","name":"NEW TAI LUE LETTER HIGH NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1990"},6545:{"value":"1991","name":"NEW TAI LUE LETTER LOW TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1991"},6546:{"value":"1992","name":"NEW TAI LUE LETTER LOW THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1992"},6547:{"value":"1993","name":"NEW TAI LUE LETTER LOW NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1993"},6548:{"value":"1994","name":"NEW TAI LUE LETTER HIGH PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1994"},6549:{"value":"1995","name":"NEW TAI LUE LETTER HIGH PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1995"},6550:{"value":"1996","name":"NEW TAI LUE LETTER HIGH MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1996"},6551:{"value":"1997","name":"NEW TAI LUE LETTER LOW PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1997"},6552:{"value":"1998","name":"NEW TAI LUE LETTER LOW PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1998"},6553:{"value":"1999","name":"NEW TAI LUE LETTER LOW MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1999"},6554:{"value":"199A","name":"NEW TAI LUE LETTER HIGH FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u199A"},6555:{"value":"199B","name":"NEW TAI LUE LETTER HIGH VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u199B"},6556:{"value":"199C","name":"NEW TAI LUE LETTER HIGH LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u199C"},6557:{"value":"199D","name":"NEW TAI LUE LETTER LOW FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u199D"},6558:{"value":"199E","name":"NEW TAI LUE LETTER LOW VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u199E"},6559:{"value":"199F","name":"NEW TAI LUE LETTER LOW LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u199F"},6560:{"value":"19A0","name":"NEW TAI LUE LETTER HIGH HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19A0"},6561:{"value":"19A1","name":"NEW TAI LUE LETTER HIGH DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19A1"},6562:{"value":"19A2","name":"NEW TAI LUE LETTER HIGH BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19A2"},6563:{"value":"19A3","name":"NEW TAI LUE LETTER LOW HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19A3"},6564:{"value":"19A4","name":"NEW TAI LUE LETTER LOW DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19A4"},6565:{"value":"19A5","name":"NEW TAI LUE LETTER LOW BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19A5"},6566:{"value":"19A6","name":"NEW TAI LUE LETTER HIGH KVA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19A6"},6567:{"value":"19A7","name":"NEW TAI LUE LETTER HIGH XVA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19A7"},6568:{"value":"19A8","name":"NEW TAI LUE LETTER LOW KVA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19A8"},6569:{"value":"19A9","name":"NEW TAI LUE LETTER LOW XVA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19A9"},6570:{"value":"19AA","name":"NEW TAI LUE LETTER HIGH SUA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19AA"},6571:{"value":"19AB","name":"NEW TAI LUE LETTER LOW SUA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19AB"},6576:{"value":"19B0","name":"NEW TAI LUE VOWEL SIGN VOWEL SHORTENER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19B0"},6577:{"value":"19B1","name":"NEW TAI LUE VOWEL SIGN AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19B1"},6578:{"value":"19B2","name":"NEW TAI LUE VOWEL SIGN II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19B2"},6579:{"value":"19B3","name":"NEW TAI LUE VOWEL SIGN U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19B3"},6580:{"value":"19B4","name":"NEW TAI LUE VOWEL SIGN UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19B4"},6581:{"value":"19B5","name":"NEW TAI LUE VOWEL SIGN E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19B5"},6582:{"value":"19B6","name":"NEW TAI LUE VOWEL SIGN AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19B6"},6583:{"value":"19B7","name":"NEW TAI LUE VOWEL SIGN O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19B7"},6584:{"value":"19B8","name":"NEW TAI LUE VOWEL SIGN OA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19B8"},6585:{"value":"19B9","name":"NEW TAI LUE VOWEL SIGN UE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19B9"},6586:{"value":"19BA","name":"NEW TAI LUE VOWEL SIGN AY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19BA"},6587:{"value":"19BB","name":"NEW TAI LUE VOWEL SIGN AAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19BB"},6588:{"value":"19BC","name":"NEW TAI LUE VOWEL SIGN UY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19BC"},6589:{"value":"19BD","name":"NEW TAI LUE VOWEL SIGN OY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19BD"},6590:{"value":"19BE","name":"NEW TAI LUE VOWEL SIGN OAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19BE"},6591:{"value":"19BF","name":"NEW TAI LUE VOWEL SIGN UEY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19BF"},6592:{"value":"19C0","name":"NEW TAI LUE VOWEL SIGN IY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19C0"},6593:{"value":"19C1","name":"NEW TAI LUE LETTER FINAL V","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19C1"},6594:{"value":"19C2","name":"NEW TAI LUE LETTER FINAL NG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19C2"},6595:{"value":"19C3","name":"NEW TAI LUE LETTER FINAL N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19C3"},6596:{"value":"19C4","name":"NEW TAI LUE LETTER FINAL M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19C4"},6597:{"value":"19C5","name":"NEW TAI LUE LETTER FINAL K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19C5"},6598:{"value":"19C6","name":"NEW TAI LUE LETTER FINAL D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19C6"},6599:{"value":"19C7","name":"NEW TAI LUE LETTER FINAL B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19C7"},6600:{"value":"19C8","name":"NEW TAI LUE TONE MARK-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19C8"},6601:{"value":"19C9","name":"NEW TAI LUE TONE MARK-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19C9"},6656:{"value":"1A00","name":"BUGINESE LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A00"},6657:{"value":"1A01","name":"BUGINESE LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A01"},6658:{"value":"1A02","name":"BUGINESE LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A02"},6659:{"value":"1A03","name":"BUGINESE LETTER NGKA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A03"},6660:{"value":"1A04","name":"BUGINESE LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A04"},6661:{"value":"1A05","name":"BUGINESE LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A05"},6662:{"value":"1A06","name":"BUGINESE LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A06"},6663:{"value":"1A07","name":"BUGINESE LETTER MPA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A07"},6664:{"value":"1A08","name":"BUGINESE LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A08"},6665:{"value":"1A09","name":"BUGINESE LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A09"},6666:{"value":"1A0A","name":"BUGINESE LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0A"},6667:{"value":"1A0B","name":"BUGINESE LETTER NRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0B"},6668:{"value":"1A0C","name":"BUGINESE LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0C"},6669:{"value":"1A0D","name":"BUGINESE LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0D"},6670:{"value":"1A0E","name":"BUGINESE LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0E"},6671:{"value":"1A0F","name":"BUGINESE LETTER NYCA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0F"},6672:{"value":"1A10","name":"BUGINESE LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A10"},6673:{"value":"1A11","name":"BUGINESE LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A11"},6674:{"value":"1A12","name":"BUGINESE LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A12"},6675:{"value":"1A13","name":"BUGINESE LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A13"},6676:{"value":"1A14","name":"BUGINESE LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A14"},6677:{"value":"1A15","name":"BUGINESE LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A15"},6678:{"value":"1A16","name":"BUGINESE LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A16"},6688:{"value":"1A20","name":"TAI THAM LETTER HIGH KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A20"},6689:{"value":"1A21","name":"TAI THAM LETTER HIGH KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A21"},6690:{"value":"1A22","name":"TAI THAM LETTER HIGH KXA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A22"},6691:{"value":"1A23","name":"TAI THAM LETTER LOW KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A23"},6692:{"value":"1A24","name":"TAI THAM LETTER LOW KXA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A24"},6693:{"value":"1A25","name":"TAI THAM LETTER LOW KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A25"},6694:{"value":"1A26","name":"TAI THAM LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A26"},6695:{"value":"1A27","name":"TAI THAM LETTER HIGH CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A27"},6696:{"value":"1A28","name":"TAI THAM LETTER HIGH CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A28"},6697:{"value":"1A29","name":"TAI THAM LETTER LOW CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A29"},6698:{"value":"1A2A","name":"TAI THAM LETTER LOW SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2A"},6699:{"value":"1A2B","name":"TAI THAM LETTER LOW CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2B"},6700:{"value":"1A2C","name":"TAI THAM LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2C"},6701:{"value":"1A2D","name":"TAI THAM LETTER RATA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2D"},6702:{"value":"1A2E","name":"TAI THAM LETTER HIGH RATHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2E"},6703:{"value":"1A2F","name":"TAI THAM LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2F"},6704:{"value":"1A30","name":"TAI THAM LETTER LOW RATHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A30"},6705:{"value":"1A31","name":"TAI THAM LETTER RANA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A31"},6706:{"value":"1A32","name":"TAI THAM LETTER HIGH TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A32"},6707:{"value":"1A33","name":"TAI THAM LETTER HIGH THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A33"},6708:{"value":"1A34","name":"TAI THAM LETTER LOW TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A34"},6709:{"value":"1A35","name":"TAI THAM LETTER LOW THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A35"},6710:{"value":"1A36","name":"TAI THAM LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A36"},6711:{"value":"1A37","name":"TAI THAM LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A37"},6712:{"value":"1A38","name":"TAI THAM LETTER HIGH PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A38"},6713:{"value":"1A39","name":"TAI THAM LETTER HIGH PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A39"},6714:{"value":"1A3A","name":"TAI THAM LETTER HIGH FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3A"},6715:{"value":"1A3B","name":"TAI THAM LETTER LOW PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3B"},6716:{"value":"1A3C","name":"TAI THAM LETTER LOW FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3C"},6717:{"value":"1A3D","name":"TAI THAM LETTER LOW PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3D"},6718:{"value":"1A3E","name":"TAI THAM LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3E"},6719:{"value":"1A3F","name":"TAI THAM LETTER LOW YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3F"},6720:{"value":"1A40","name":"TAI THAM LETTER HIGH YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A40"},6721:{"value":"1A41","name":"TAI THAM LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A41"},6722:{"value":"1A42","name":"TAI THAM LETTER RUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A42"},6723:{"value":"1A43","name":"TAI THAM LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A43"},6724:{"value":"1A44","name":"TAI THAM LETTER LUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A44"},6725:{"value":"1A45","name":"TAI THAM LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A45"},6726:{"value":"1A46","name":"TAI THAM LETTER HIGH SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A46"},6727:{"value":"1A47","name":"TAI THAM LETTER HIGH SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A47"},6728:{"value":"1A48","name":"TAI THAM LETTER HIGH SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A48"},6729:{"value":"1A49","name":"TAI THAM LETTER HIGH HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A49"},6730:{"value":"1A4A","name":"TAI THAM LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A4A"},6731:{"value":"1A4B","name":"TAI THAM LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A4B"},6732:{"value":"1A4C","name":"TAI THAM LETTER LOW HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A4C"},6733:{"value":"1A4D","name":"TAI THAM LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A4D"},6734:{"value":"1A4E","name":"TAI THAM LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A4E"},6735:{"value":"1A4F","name":"TAI THAM LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A4F"},6736:{"value":"1A50","name":"TAI THAM LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A50"},6737:{"value":"1A51","name":"TAI THAM LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A51"},6738:{"value":"1A52","name":"TAI THAM LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A52"},6739:{"value":"1A53","name":"TAI THAM LETTER LAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A53"},6740:{"value":"1A54","name":"TAI THAM LETTER GREAT SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A54"},6917:{"value":"1B05","name":"BALINESE LETTER AKARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B05"},6918:{"value":"1B06","name":"BALINESE LETTER AKARA TEDUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"1B05 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B06"},6919:{"value":"1B07","name":"BALINESE LETTER IKARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B07"},6920:{"value":"1B08","name":"BALINESE LETTER IKARA TEDUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"1B07 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B08"},6921:{"value":"1B09","name":"BALINESE LETTER UKARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B09"},6922:{"value":"1B0A","name":"BALINESE LETTER UKARA TEDUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"1B09 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B0A"},6923:{"value":"1B0B","name":"BALINESE LETTER RA REPA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B0B"},6924:{"value":"1B0C","name":"BALINESE LETTER RA REPA TEDUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"1B0B 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B0C"},6925:{"value":"1B0D","name":"BALINESE LETTER LA LENGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B0D"},6926:{"value":"1B0E","name":"BALINESE LETTER LA LENGA TEDUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"1B0D 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B0E"},6927:{"value":"1B0F","name":"BALINESE LETTER EKARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B0F"},6928:{"value":"1B10","name":"BALINESE LETTER AIKARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B10"},6929:{"value":"1B11","name":"BALINESE LETTER OKARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B11"},6930:{"value":"1B12","name":"BALINESE LETTER OKARA TEDUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"1B11 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B12"},6931:{"value":"1B13","name":"BALINESE LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B13"},6932:{"value":"1B14","name":"BALINESE LETTER KA MAHAPRANA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B14"},6933:{"value":"1B15","name":"BALINESE LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B15"},6934:{"value":"1B16","name":"BALINESE LETTER GA GORA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B16"},6935:{"value":"1B17","name":"BALINESE LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B17"},6936:{"value":"1B18","name":"BALINESE LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B18"},6937:{"value":"1B19","name":"BALINESE LETTER CA LACA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B19"},6938:{"value":"1B1A","name":"BALINESE LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B1A"},6939:{"value":"1B1B","name":"BALINESE LETTER JA JERA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B1B"},6940:{"value":"1B1C","name":"BALINESE LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B1C"},6941:{"value":"1B1D","name":"BALINESE LETTER TA LATIK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B1D"},6942:{"value":"1B1E","name":"BALINESE LETTER TA MURDA MAHAPRANA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B1E"},6943:{"value":"1B1F","name":"BALINESE LETTER DA MURDA ALPAPRANA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B1F"},6944:{"value":"1B20","name":"BALINESE LETTER DA MURDA MAHAPRANA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B20"},6945:{"value":"1B21","name":"BALINESE LETTER NA RAMBAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B21"},6946:{"value":"1B22","name":"BALINESE LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B22"},6947:{"value":"1B23","name":"BALINESE LETTER TA TAWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B23"},6948:{"value":"1B24","name":"BALINESE LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B24"},6949:{"value":"1B25","name":"BALINESE LETTER DA MADU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B25"},6950:{"value":"1B26","name":"BALINESE LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B26"},6951:{"value":"1B27","name":"BALINESE LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B27"},6952:{"value":"1B28","name":"BALINESE LETTER PA KAPAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B28"},6953:{"value":"1B29","name":"BALINESE LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B29"},6954:{"value":"1B2A","name":"BALINESE LETTER BA KEMBANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B2A"},6955:{"value":"1B2B","name":"BALINESE LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B2B"},6956:{"value":"1B2C","name":"BALINESE LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B2C"},6957:{"value":"1B2D","name":"BALINESE LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B2D"},6958:{"value":"1B2E","name":"BALINESE LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B2E"},6959:{"value":"1B2F","name":"BALINESE LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B2F"},6960:{"value":"1B30","name":"BALINESE LETTER SA SAGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B30"},6961:{"value":"1B31","name":"BALINESE LETTER SA SAPA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B31"},6962:{"value":"1B32","name":"BALINESE LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B32"},6963:{"value":"1B33","name":"BALINESE LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B33"},6981:{"value":"1B45","name":"BALINESE LETTER KAF SASAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B45"},6982:{"value":"1B46","name":"BALINESE LETTER KHOT SASAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B46"},6983:{"value":"1B47","name":"BALINESE LETTER TZIR SASAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B47"},6984:{"value":"1B48","name":"BALINESE LETTER EF SASAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B48"},6985:{"value":"1B49","name":"BALINESE LETTER VE SASAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B49"},6986:{"value":"1B4A","name":"BALINESE LETTER ZAL SASAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B4A"},6987:{"value":"1B4B","name":"BALINESE LETTER ASYURA SASAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B4B"},7043:{"value":"1B83","name":"SUNDANESE LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B83"},7044:{"value":"1B84","name":"SUNDANESE LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B84"},7045:{"value":"1B85","name":"SUNDANESE LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B85"},7046:{"value":"1B86","name":"SUNDANESE LETTER AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B86"},7047:{"value":"1B87","name":"SUNDANESE LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B87"},7048:{"value":"1B88","name":"SUNDANESE LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B88"},7049:{"value":"1B89","name":"SUNDANESE LETTER EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B89"},7050:{"value":"1B8A","name":"SUNDANESE LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B8A"},7051:{"value":"1B8B","name":"SUNDANESE LETTER QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B8B"},7052:{"value":"1B8C","name":"SUNDANESE LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B8C"},7053:{"value":"1B8D","name":"SUNDANESE LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B8D"},7054:{"value":"1B8E","name":"SUNDANESE LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B8E"},7055:{"value":"1B8F","name":"SUNDANESE LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B8F"},7056:{"value":"1B90","name":"SUNDANESE LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B90"},7057:{"value":"1B91","name":"SUNDANESE LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B91"},7058:{"value":"1B92","name":"SUNDANESE LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B92"},7059:{"value":"1B93","name":"SUNDANESE LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B93"},7060:{"value":"1B94","name":"SUNDANESE LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B94"},7061:{"value":"1B95","name":"SUNDANESE LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B95"},7062:{"value":"1B96","name":"SUNDANESE LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B96"},7063:{"value":"1B97","name":"SUNDANESE LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B97"},7064:{"value":"1B98","name":"SUNDANESE LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B98"},7065:{"value":"1B99","name":"SUNDANESE LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B99"},7066:{"value":"1B9A","name":"SUNDANESE LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B9A"},7067:{"value":"1B9B","name":"SUNDANESE LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B9B"},7068:{"value":"1B9C","name":"SUNDANESE LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B9C"},7069:{"value":"1B9D","name":"SUNDANESE LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B9D"},7070:{"value":"1B9E","name":"SUNDANESE LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B9E"},7071:{"value":"1B9F","name":"SUNDANESE LETTER XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B9F"},7072:{"value":"1BA0","name":"SUNDANESE LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BA0"},7086:{"value":"1BAE","name":"SUNDANESE LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BAE"},7087:{"value":"1BAF","name":"SUNDANESE LETTER SYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BAF"},7098:{"value":"1BBA","name":"SUNDANESE AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BBA"},7099:{"value":"1BBB","name":"SUNDANESE LETTER REU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BBB"},7100:{"value":"1BBC","name":"SUNDANESE LETTER LEU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BBC"},7101:{"value":"1BBD","name":"SUNDANESE LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BBD"},7102:{"value":"1BBE","name":"SUNDANESE LETTER FINAL K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BBE"},7103:{"value":"1BBF","name":"SUNDANESE LETTER FINAL M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BBF"},7104:{"value":"1BC0","name":"BATAK LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BC0"},7105:{"value":"1BC1","name":"BATAK LETTER SIMALUNGUN A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BC1"},7106:{"value":"1BC2","name":"BATAK LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BC2"},7107:{"value":"1BC3","name":"BATAK LETTER SIMALUNGUN HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BC3"},7108:{"value":"1BC4","name":"BATAK LETTER MANDAILING HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BC4"},7109:{"value":"1BC5","name":"BATAK LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BC5"},7110:{"value":"1BC6","name":"BATAK LETTER KARO BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BC6"},7111:{"value":"1BC7","name":"BATAK LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BC7"},7112:{"value":"1BC8","name":"BATAK LETTER SIMALUNGUN PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BC8"},7113:{"value":"1BC9","name":"BATAK LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BC9"},7114:{"value":"1BCA","name":"BATAK LETTER MANDAILING NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BCA"},7115:{"value":"1BCB","name":"BATAK LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BCB"},7116:{"value":"1BCC","name":"BATAK LETTER SIMALUNGUN WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BCC"},7117:{"value":"1BCD","name":"BATAK LETTER PAKPAK WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BCD"},7118:{"value":"1BCE","name":"BATAK LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BCE"},7119:{"value":"1BCF","name":"BATAK LETTER SIMALUNGUN GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BCF"},7120:{"value":"1BD0","name":"BATAK LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BD0"},7121:{"value":"1BD1","name":"BATAK LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BD1"},7122:{"value":"1BD2","name":"BATAK LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BD2"},7123:{"value":"1BD3","name":"BATAK LETTER SIMALUNGUN RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BD3"},7124:{"value":"1BD4","name":"BATAK LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BD4"},7125:{"value":"1BD5","name":"BATAK LETTER SIMALUNGUN MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BD5"},7126:{"value":"1BD6","name":"BATAK LETTER SOUTHERN TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BD6"},7127:{"value":"1BD7","name":"BATAK LETTER NORTHERN TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BD7"},7128:{"value":"1BD8","name":"BATAK LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BD8"},7129:{"value":"1BD9","name":"BATAK LETTER SIMALUNGUN SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BD9"},7130:{"value":"1BDA","name":"BATAK LETTER MANDAILING SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BDA"},7131:{"value":"1BDB","name":"BATAK LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BDB"},7132:{"value":"1BDC","name":"BATAK LETTER SIMALUNGUN YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BDC"},7133:{"value":"1BDD","name":"BATAK LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BDD"},7134:{"value":"1BDE","name":"BATAK LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BDE"},7135:{"value":"1BDF","name":"BATAK LETTER SIMALUNGUN LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BDF"},7136:{"value":"1BE0","name":"BATAK LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BE0"},7137:{"value":"1BE1","name":"BATAK LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BE1"},7138:{"value":"1BE2","name":"BATAK LETTER NDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BE2"},7139:{"value":"1BE3","name":"BATAK LETTER MBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BE3"},7140:{"value":"1BE4","name":"BATAK LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BE4"},7141:{"value":"1BE5","name":"BATAK LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BE5"},7168:{"value":"1C00","name":"LEPCHA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C00"},7169:{"value":"1C01","name":"LEPCHA LETTER KLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C01"},7170:{"value":"1C02","name":"LEPCHA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C02"},7171:{"value":"1C03","name":"LEPCHA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C03"},7172:{"value":"1C04","name":"LEPCHA LETTER GLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C04"},7173:{"value":"1C05","name":"LEPCHA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C05"},7174:{"value":"1C06","name":"LEPCHA LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C06"},7175:{"value":"1C07","name":"LEPCHA LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C07"},7176:{"value":"1C08","name":"LEPCHA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C08"},7177:{"value":"1C09","name":"LEPCHA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C09"},7178:{"value":"1C0A","name":"LEPCHA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0A"},7179:{"value":"1C0B","name":"LEPCHA LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0B"},7180:{"value":"1C0C","name":"LEPCHA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0C"},7181:{"value":"1C0D","name":"LEPCHA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0D"},7182:{"value":"1C0E","name":"LEPCHA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0E"},7183:{"value":"1C0F","name":"LEPCHA LETTER PLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0F"},7184:{"value":"1C10","name":"LEPCHA LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C10"},7185:{"value":"1C11","name":"LEPCHA LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C11"},7186:{"value":"1C12","name":"LEPCHA LETTER FLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C12"},7187:{"value":"1C13","name":"LEPCHA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C13"},7188:{"value":"1C14","name":"LEPCHA LETTER BLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C14"},7189:{"value":"1C15","name":"LEPCHA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C15"},7190:{"value":"1C16","name":"LEPCHA LETTER MLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C16"},7191:{"value":"1C17","name":"LEPCHA LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C17"},7192:{"value":"1C18","name":"LEPCHA LETTER TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C18"},7193:{"value":"1C19","name":"LEPCHA LETTER DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C19"},7194:{"value":"1C1A","name":"LEPCHA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1A"},7195:{"value":"1C1B","name":"LEPCHA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1B"},7196:{"value":"1C1C","name":"LEPCHA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1C"},7197:{"value":"1C1D","name":"LEPCHA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1D"},7198:{"value":"1C1E","name":"LEPCHA LETTER HLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1E"},7199:{"value":"1C1F","name":"LEPCHA LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1F"},7200:{"value":"1C20","name":"LEPCHA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C20"},7201:{"value":"1C21","name":"LEPCHA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C21"},7202:{"value":"1C22","name":"LEPCHA LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C22"},7203:{"value":"1C23","name":"LEPCHA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C23"},7245:{"value":"1C4D","name":"LEPCHA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C4D"},7246:{"value":"1C4E","name":"LEPCHA LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C4E"},7247:{"value":"1C4F","name":"LEPCHA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C4F"},7258:{"value":"1C5A","name":"OL CHIKI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C5A"},7259:{"value":"1C5B","name":"OL CHIKI LETTER AT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C5B"},7260:{"value":"1C5C","name":"OL CHIKI LETTER AG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C5C"},7261:{"value":"1C5D","name":"OL CHIKI LETTER ANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C5D"},7262:{"value":"1C5E","name":"OL CHIKI LETTER AL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C5E"},7263:{"value":"1C5F","name":"OL CHIKI LETTER LAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C5F"},7264:{"value":"1C60","name":"OL CHIKI LETTER AAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C60"},7265:{"value":"1C61","name":"OL CHIKI LETTER AAJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C61"},7266:{"value":"1C62","name":"OL CHIKI LETTER AAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C62"},7267:{"value":"1C63","name":"OL CHIKI LETTER AAW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C63"},7268:{"value":"1C64","name":"OL CHIKI LETTER LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C64"},7269:{"value":"1C65","name":"OL CHIKI LETTER IS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C65"},7270:{"value":"1C66","name":"OL CHIKI LETTER IH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C66"},7271:{"value":"1C67","name":"OL CHIKI LETTER INY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C67"},7272:{"value":"1C68","name":"OL CHIKI LETTER IR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C68"},7273:{"value":"1C69","name":"OL CHIKI LETTER LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C69"},7274:{"value":"1C6A","name":"OL CHIKI LETTER UC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C6A"},7275:{"value":"1C6B","name":"OL CHIKI LETTER UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C6B"},7276:{"value":"1C6C","name":"OL CHIKI LETTER UNN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C6C"},7277:{"value":"1C6D","name":"OL CHIKI LETTER UY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C6D"},7278:{"value":"1C6E","name":"OL CHIKI LETTER LE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C6E"},7279:{"value":"1C6F","name":"OL CHIKI LETTER EP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C6F"},7280:{"value":"1C70","name":"OL CHIKI LETTER EDD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C70"},7281:{"value":"1C71","name":"OL CHIKI LETTER EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C71"},7282:{"value":"1C72","name":"OL CHIKI LETTER ERR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C72"},7283:{"value":"1C73","name":"OL CHIKI LETTER LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C73"},7284:{"value":"1C74","name":"OL CHIKI LETTER OTT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C74"},7285:{"value":"1C75","name":"OL CHIKI LETTER OB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C75"},7286:{"value":"1C76","name":"OL CHIKI LETTER OV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C76"},7287:{"value":"1C77","name":"OL CHIKI LETTER OH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C77"},7401:{"value":"1CE9","name":"VEDIC SIGN ANUSVARA ANTARGOMUKHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CE9"},7402:{"value":"1CEA","name":"VEDIC SIGN ANUSVARA BAHIRGOMUKHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CEA"},7403:{"value":"1CEB","name":"VEDIC SIGN ANUSVARA VAMAGOMUKHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CEB"},7404:{"value":"1CEC","name":"VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CEC"},7406:{"value":"1CEE","name":"VEDIC SIGN HEXIFORM LONG ANUSVARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CEE"},7407:{"value":"1CEF","name":"VEDIC SIGN LONG ANUSVARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CEF"},7408:{"value":"1CF0","name":"VEDIC SIGN RTHANG LONG ANUSVARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CF0"},7409:{"value":"1CF1","name":"VEDIC SIGN ANUSVARA UBHAYATO MUKHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CF1"},7413:{"value":"1CF5","name":"VEDIC SIGN JIHVAMULIYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CF5"},7414:{"value":"1CF6","name":"VEDIC SIGN UPADHMANIYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CF6"},8501:{"value":"2135","name":"ALEF SYMBOL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 05D0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"FIRST TRANSFINITE CARDINAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2135"},8502:{"value":"2136","name":"BET SYMBOL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 05D1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SECOND TRANSFINITE CARDINAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2136"},8503:{"value":"2137","name":"GIMEL SYMBOL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 05D2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THIRD TRANSFINITE CARDINAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2137"},8504:{"value":"2138","name":"DALET SYMBOL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 05D3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"FOURTH TRANSFINITE CARDINAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2138"},11568:{"value":"2D30","name":"TIFINAGH LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D30"},11569:{"value":"2D31","name":"TIFINAGH LETTER YAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D31"},11570:{"value":"2D32","name":"TIFINAGH LETTER YABH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D32"},11571:{"value":"2D33","name":"TIFINAGH LETTER YAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D33"},11572:{"value":"2D34","name":"TIFINAGH LETTER YAGHH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D34"},11573:{"value":"2D35","name":"TIFINAGH LETTER BERBER ACADEMY YAJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D35"},11574:{"value":"2D36","name":"TIFINAGH LETTER YAJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D36"},11575:{"value":"2D37","name":"TIFINAGH LETTER YAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D37"},11576:{"value":"2D38","name":"TIFINAGH LETTER YADH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D38"},11577:{"value":"2D39","name":"TIFINAGH LETTER YADD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D39"},11578:{"value":"2D3A","name":"TIFINAGH LETTER YADDH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D3A"},11579:{"value":"2D3B","name":"TIFINAGH LETTER YEY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D3B"},11580:{"value":"2D3C","name":"TIFINAGH LETTER YAF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D3C"},11581:{"value":"2D3D","name":"TIFINAGH LETTER YAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D3D"},11582:{"value":"2D3E","name":"TIFINAGH LETTER TUAREG YAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D3E"},11583:{"value":"2D3F","name":"TIFINAGH LETTER YAKHH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D3F"},11584:{"value":"2D40","name":"TIFINAGH LETTER YAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D40"},11585:{"value":"2D41","name":"TIFINAGH LETTER BERBER ACADEMY YAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D41"},11586:{"value":"2D42","name":"TIFINAGH LETTER TUAREG YAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D42"},11587:{"value":"2D43","name":"TIFINAGH LETTER YAHH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D43"},11588:{"value":"2D44","name":"TIFINAGH LETTER YAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D44"},11589:{"value":"2D45","name":"TIFINAGH LETTER YAKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D45"},11590:{"value":"2D46","name":"TIFINAGH LETTER TUAREG YAKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D46"},11591:{"value":"2D47","name":"TIFINAGH LETTER YAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D47"},11592:{"value":"2D48","name":"TIFINAGH LETTER TUAREG YAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D48"},11593:{"value":"2D49","name":"TIFINAGH LETTER YI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D49"},11594:{"value":"2D4A","name":"TIFINAGH LETTER YAZH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D4A"},11595:{"value":"2D4B","name":"TIFINAGH LETTER AHAGGAR YAZH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D4B"},11596:{"value":"2D4C","name":"TIFINAGH LETTER TUAREG YAZH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D4C"},11597:{"value":"2D4D","name":"TIFINAGH LETTER YAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D4D"},11598:{"value":"2D4E","name":"TIFINAGH LETTER YAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D4E"},11599:{"value":"2D4F","name":"TIFINAGH LETTER YAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D4F"},11600:{"value":"2D50","name":"TIFINAGH LETTER TUAREG YAGN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D50"},11601:{"value":"2D51","name":"TIFINAGH LETTER TUAREG YANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D51"},11602:{"value":"2D52","name":"TIFINAGH LETTER YAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D52"},11603:{"value":"2D53","name":"TIFINAGH LETTER YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D53"},11604:{"value":"2D54","name":"TIFINAGH LETTER YAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D54"},11605:{"value":"2D55","name":"TIFINAGH LETTER YARR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D55"},11606:{"value":"2D56","name":"TIFINAGH LETTER YAGH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D56"},11607:{"value":"2D57","name":"TIFINAGH LETTER TUAREG YAGH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D57"},11608:{"value":"2D58","name":"TIFINAGH LETTER AYER YAGH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D58"},11609:{"value":"2D59","name":"TIFINAGH LETTER YAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D59"},11610:{"value":"2D5A","name":"TIFINAGH LETTER YASS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D5A"},11611:{"value":"2D5B","name":"TIFINAGH LETTER YASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D5B"},11612:{"value":"2D5C","name":"TIFINAGH LETTER YAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D5C"},11613:{"value":"2D5D","name":"TIFINAGH LETTER YATH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D5D"},11614:{"value":"2D5E","name":"TIFINAGH LETTER YACH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D5E"},11615:{"value":"2D5F","name":"TIFINAGH LETTER YATT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D5F"},11616:{"value":"2D60","name":"TIFINAGH LETTER YAV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D60"},11617:{"value":"2D61","name":"TIFINAGH LETTER YAW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D61"},11618:{"value":"2D62","name":"TIFINAGH LETTER YAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D62"},11619:{"value":"2D63","name":"TIFINAGH LETTER YAZ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D63"},11620:{"value":"2D64","name":"TIFINAGH LETTER TAWELLEMET YAZ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D64"},11621:{"value":"2D65","name":"TIFINAGH LETTER YAZZ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D65"},11622:{"value":"2D66","name":"TIFINAGH LETTER YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D66"},11623:{"value":"2D67","name":"TIFINAGH LETTER YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D67"},11648:{"value":"2D80","name":"ETHIOPIC SYLLABLE LOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D80"},11649:{"value":"2D81","name":"ETHIOPIC SYLLABLE MOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D81"},11650:{"value":"2D82","name":"ETHIOPIC SYLLABLE ROA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D82"},11651:{"value":"2D83","name":"ETHIOPIC SYLLABLE SOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D83"},11652:{"value":"2D84","name":"ETHIOPIC SYLLABLE SHOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D84"},11653:{"value":"2D85","name":"ETHIOPIC SYLLABLE BOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D85"},11654:{"value":"2D86","name":"ETHIOPIC SYLLABLE TOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D86"},11655:{"value":"2D87","name":"ETHIOPIC SYLLABLE COA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D87"},11656:{"value":"2D88","name":"ETHIOPIC SYLLABLE NOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D88"},11657:{"value":"2D89","name":"ETHIOPIC SYLLABLE NYOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D89"},11658:{"value":"2D8A","name":"ETHIOPIC SYLLABLE GLOTTAL OA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D8A"},11659:{"value":"2D8B","name":"ETHIOPIC SYLLABLE ZOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D8B"},11660:{"value":"2D8C","name":"ETHIOPIC SYLLABLE DOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D8C"},11661:{"value":"2D8D","name":"ETHIOPIC SYLLABLE DDOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D8D"},11662:{"value":"2D8E","name":"ETHIOPIC SYLLABLE JOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D8E"},11663:{"value":"2D8F","name":"ETHIOPIC SYLLABLE THOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D8F"},11664:{"value":"2D90","name":"ETHIOPIC SYLLABLE CHOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D90"},11665:{"value":"2D91","name":"ETHIOPIC SYLLABLE PHOA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D91"},11666:{"value":"2D92","name":"ETHIOPIC SYLLABLE POA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D92"},11667:{"value":"2D93","name":"ETHIOPIC SYLLABLE GGWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D93"},11668:{"value":"2D94","name":"ETHIOPIC SYLLABLE GGWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D94"},11669:{"value":"2D95","name":"ETHIOPIC SYLLABLE GGWEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D95"},11670:{"value":"2D96","name":"ETHIOPIC SYLLABLE GGWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D96"},11680:{"value":"2DA0","name":"ETHIOPIC SYLLABLE SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DA0"},11681:{"value":"2DA1","name":"ETHIOPIC SYLLABLE SSU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DA1"},11682:{"value":"2DA2","name":"ETHIOPIC SYLLABLE SSI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DA2"},11683:{"value":"2DA3","name":"ETHIOPIC SYLLABLE SSAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DA3"},11684:{"value":"2DA4","name":"ETHIOPIC SYLLABLE SSEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DA4"},11685:{"value":"2DA5","name":"ETHIOPIC SYLLABLE SSE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DA5"},11686:{"value":"2DA6","name":"ETHIOPIC SYLLABLE SSO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DA6"},11688:{"value":"2DA8","name":"ETHIOPIC SYLLABLE CCA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DA8"},11689:{"value":"2DA9","name":"ETHIOPIC SYLLABLE CCU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DA9"},11690:{"value":"2DAA","name":"ETHIOPIC SYLLABLE CCI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DAA"},11691:{"value":"2DAB","name":"ETHIOPIC SYLLABLE CCAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DAB"},11692:{"value":"2DAC","name":"ETHIOPIC SYLLABLE CCEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DAC"},11693:{"value":"2DAD","name":"ETHIOPIC SYLLABLE CCE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DAD"},11694:{"value":"2DAE","name":"ETHIOPIC SYLLABLE CCO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DAE"},11696:{"value":"2DB0","name":"ETHIOPIC SYLLABLE ZZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DB0"},11697:{"value":"2DB1","name":"ETHIOPIC SYLLABLE ZZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DB1"},11698:{"value":"2DB2","name":"ETHIOPIC SYLLABLE ZZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DB2"},11699:{"value":"2DB3","name":"ETHIOPIC SYLLABLE ZZAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DB3"},11700:{"value":"2DB4","name":"ETHIOPIC SYLLABLE ZZEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DB4"},11701:{"value":"2DB5","name":"ETHIOPIC SYLLABLE ZZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DB5"},11702:{"value":"2DB6","name":"ETHIOPIC SYLLABLE ZZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DB6"},11704:{"value":"2DB8","name":"ETHIOPIC SYLLABLE CCHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DB8"},11705:{"value":"2DB9","name":"ETHIOPIC SYLLABLE CCHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DB9"},11706:{"value":"2DBA","name":"ETHIOPIC SYLLABLE CCHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DBA"},11707:{"value":"2DBB","name":"ETHIOPIC SYLLABLE CCHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DBB"},11708:{"value":"2DBC","name":"ETHIOPIC SYLLABLE CCHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DBC"},11709:{"value":"2DBD","name":"ETHIOPIC SYLLABLE CCHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DBD"},11710:{"value":"2DBE","name":"ETHIOPIC SYLLABLE CCHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DBE"},11712:{"value":"2DC0","name":"ETHIOPIC SYLLABLE QYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DC0"},11713:{"value":"2DC1","name":"ETHIOPIC SYLLABLE QYU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DC1"},11714:{"value":"2DC2","name":"ETHIOPIC SYLLABLE QYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DC2"},11715:{"value":"2DC3","name":"ETHIOPIC SYLLABLE QYAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DC3"},11716:{"value":"2DC4","name":"ETHIOPIC SYLLABLE QYEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DC4"},11717:{"value":"2DC5","name":"ETHIOPIC SYLLABLE QYE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DC5"},11718:{"value":"2DC6","name":"ETHIOPIC SYLLABLE QYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DC6"},11720:{"value":"2DC8","name":"ETHIOPIC SYLLABLE KYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DC8"},11721:{"value":"2DC9","name":"ETHIOPIC SYLLABLE KYU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DC9"},11722:{"value":"2DCA","name":"ETHIOPIC SYLLABLE KYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DCA"},11723:{"value":"2DCB","name":"ETHIOPIC SYLLABLE KYAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DCB"},11724:{"value":"2DCC","name":"ETHIOPIC SYLLABLE KYEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DCC"},11725:{"value":"2DCD","name":"ETHIOPIC SYLLABLE KYE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DCD"},11726:{"value":"2DCE","name":"ETHIOPIC SYLLABLE KYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DCE"},11728:{"value":"2DD0","name":"ETHIOPIC SYLLABLE XYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DD0"},11729:{"value":"2DD1","name":"ETHIOPIC SYLLABLE XYU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DD1"},11730:{"value":"2DD2","name":"ETHIOPIC SYLLABLE XYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DD2"},11731:{"value":"2DD3","name":"ETHIOPIC SYLLABLE XYAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DD3"},11732:{"value":"2DD4","name":"ETHIOPIC SYLLABLE XYEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DD4"},11733:{"value":"2DD5","name":"ETHIOPIC SYLLABLE XYE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DD5"},11734:{"value":"2DD6","name":"ETHIOPIC SYLLABLE XYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DD6"},11736:{"value":"2DD8","name":"ETHIOPIC SYLLABLE GYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DD8"},11737:{"value":"2DD9","name":"ETHIOPIC SYLLABLE GYU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DD9"},11738:{"value":"2DDA","name":"ETHIOPIC SYLLABLE GYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DDA"},11739:{"value":"2DDB","name":"ETHIOPIC SYLLABLE GYAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DDB"},11740:{"value":"2DDC","name":"ETHIOPIC SYLLABLE GYEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DDC"},11741:{"value":"2DDD","name":"ETHIOPIC SYLLABLE GYE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DDD"},11742:{"value":"2DDE","name":"ETHIOPIC SYLLABLE GYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DDE"},12294:{"value":"3006","name":"IDEOGRAPHIC CLOSING MARK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3006"},12348:{"value":"303C","name":"MASU MARK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u303C"},12353:{"value":"3041","name":"HIRAGANA LETTER SMALL A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3041"},12354:{"value":"3042","name":"HIRAGANA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3042"},12355:{"value":"3043","name":"HIRAGANA LETTER SMALL I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3043"},12356:{"value":"3044","name":"HIRAGANA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3044"},12357:{"value":"3045","name":"HIRAGANA LETTER SMALL U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3045"},12358:{"value":"3046","name":"HIRAGANA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3046"},12359:{"value":"3047","name":"HIRAGANA LETTER SMALL E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3047"},12360:{"value":"3048","name":"HIRAGANA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3048"},12361:{"value":"3049","name":"HIRAGANA LETTER SMALL O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3049"},12362:{"value":"304A","name":"HIRAGANA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304A"},12363:{"value":"304B","name":"HIRAGANA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304B"},12364:{"value":"304C","name":"HIRAGANA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"304B 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304C"},12365:{"value":"304D","name":"HIRAGANA LETTER KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304D"},12366:{"value":"304E","name":"HIRAGANA LETTER GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"304D 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304E"},12367:{"value":"304F","name":"HIRAGANA LETTER KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304F"},12368:{"value":"3050","name":"HIRAGANA LETTER GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"304F 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3050"},12369:{"value":"3051","name":"HIRAGANA LETTER KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3051"},12370:{"value":"3052","name":"HIRAGANA LETTER GE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3051 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3052"},12371:{"value":"3053","name":"HIRAGANA LETTER KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3053"},12372:{"value":"3054","name":"HIRAGANA LETTER GO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3053 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3054"},12373:{"value":"3055","name":"HIRAGANA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3055"},12374:{"value":"3056","name":"HIRAGANA LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3055 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3056"},12375:{"value":"3057","name":"HIRAGANA LETTER SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3057"},12376:{"value":"3058","name":"HIRAGANA LETTER ZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3057 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3058"},12377:{"value":"3059","name":"HIRAGANA LETTER SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3059"},12378:{"value":"305A","name":"HIRAGANA LETTER ZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3059 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305A"},12379:{"value":"305B","name":"HIRAGANA LETTER SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305B"},12380:{"value":"305C","name":"HIRAGANA LETTER ZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"305B 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305C"},12381:{"value":"305D","name":"HIRAGANA LETTER SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305D"},12382:{"value":"305E","name":"HIRAGANA LETTER ZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"305D 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305E"},12383:{"value":"305F","name":"HIRAGANA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305F"},12384:{"value":"3060","name":"HIRAGANA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"305F 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3060"},12385:{"value":"3061","name":"HIRAGANA LETTER TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3061"},12386:{"value":"3062","name":"HIRAGANA LETTER DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3061 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3062"},12387:{"value":"3063","name":"HIRAGANA LETTER SMALL TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3063"},12388:{"value":"3064","name":"HIRAGANA LETTER TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3064"},12389:{"value":"3065","name":"HIRAGANA LETTER DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3064 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3065"},12390:{"value":"3066","name":"HIRAGANA LETTER TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3066"},12391:{"value":"3067","name":"HIRAGANA LETTER DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3066 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3067"},12392:{"value":"3068","name":"HIRAGANA LETTER TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3068"},12393:{"value":"3069","name":"HIRAGANA LETTER DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3068 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3069"},12394:{"value":"306A","name":"HIRAGANA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306A"},12395:{"value":"306B","name":"HIRAGANA LETTER NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306B"},12396:{"value":"306C","name":"HIRAGANA LETTER NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306C"},12397:{"value":"306D","name":"HIRAGANA LETTER NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306D"},12398:{"value":"306E","name":"HIRAGANA LETTER NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306E"},12399:{"value":"306F","name":"HIRAGANA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306F"},12400:{"value":"3070","name":"HIRAGANA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"306F 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3070"},12401:{"value":"3071","name":"HIRAGANA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"306F 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3071"},12402:{"value":"3072","name":"HIRAGANA LETTER HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3072"},12403:{"value":"3073","name":"HIRAGANA LETTER BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3072 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3073"},12404:{"value":"3074","name":"HIRAGANA LETTER PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3072 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3074"},12405:{"value":"3075","name":"HIRAGANA LETTER HU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3075"},12406:{"value":"3076","name":"HIRAGANA LETTER BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3075 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3076"},12407:{"value":"3077","name":"HIRAGANA LETTER PU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3075 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3077"},12408:{"value":"3078","name":"HIRAGANA LETTER HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3078"},12409:{"value":"3079","name":"HIRAGANA LETTER BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3078 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3079"},12410:{"value":"307A","name":"HIRAGANA LETTER PE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3078 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307A"},12411:{"value":"307B","name":"HIRAGANA LETTER HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307B"},12412:{"value":"307C","name":"HIRAGANA LETTER BO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"307B 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307C"},12413:{"value":"307D","name":"HIRAGANA LETTER PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"307B 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307D"},12414:{"value":"307E","name":"HIRAGANA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307E"},12415:{"value":"307F","name":"HIRAGANA LETTER MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307F"},12416:{"value":"3080","name":"HIRAGANA LETTER MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3080"},12417:{"value":"3081","name":"HIRAGANA LETTER ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3081"},12418:{"value":"3082","name":"HIRAGANA LETTER MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3082"},12419:{"value":"3083","name":"HIRAGANA LETTER SMALL YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3083"},12420:{"value":"3084","name":"HIRAGANA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3084"},12421:{"value":"3085","name":"HIRAGANA LETTER SMALL YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3085"},12422:{"value":"3086","name":"HIRAGANA LETTER YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3086"},12423:{"value":"3087","name":"HIRAGANA LETTER SMALL YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3087"},12424:{"value":"3088","name":"HIRAGANA LETTER YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3088"},12425:{"value":"3089","name":"HIRAGANA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3089"},12426:{"value":"308A","name":"HIRAGANA LETTER RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308A"},12427:{"value":"308B","name":"HIRAGANA LETTER RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308B"},12428:{"value":"308C","name":"HIRAGANA LETTER RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308C"},12429:{"value":"308D","name":"HIRAGANA LETTER RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308D"},12430:{"value":"308E","name":"HIRAGANA LETTER SMALL WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308E"},12431:{"value":"308F","name":"HIRAGANA LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308F"},12432:{"value":"3090","name":"HIRAGANA LETTER WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3090"},12433:{"value":"3091","name":"HIRAGANA LETTER WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3091"},12434:{"value":"3092","name":"HIRAGANA LETTER WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3092"},12435:{"value":"3093","name":"HIRAGANA LETTER N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3093"},12436:{"value":"3094","name":"HIRAGANA LETTER VU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3046 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3094"},12437:{"value":"3095","name":"HIRAGANA LETTER SMALL KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3095"},12438:{"value":"3096","name":"HIRAGANA LETTER SMALL KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3096"},12447:{"value":"309F","name":"HIRAGANA DIGRAPH YORI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<vertical> 3088 308A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u309F"},12449:{"value":"30A1","name":"KATAKANA LETTER SMALL A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A1"},12450:{"value":"30A2","name":"KATAKANA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A2"},12451:{"value":"30A3","name":"KATAKANA LETTER SMALL I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A3"},12452:{"value":"30A4","name":"KATAKANA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A4"},12453:{"value":"30A5","name":"KATAKANA LETTER SMALL U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A5"},12454:{"value":"30A6","name":"KATAKANA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A6"},12455:{"value":"30A7","name":"KATAKANA LETTER SMALL E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A7"},12456:{"value":"30A8","name":"KATAKANA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A8"},12457:{"value":"30A9","name":"KATAKANA LETTER SMALL O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A9"},12458:{"value":"30AA","name":"KATAKANA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AA"},12459:{"value":"30AB","name":"KATAKANA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AB"},12460:{"value":"30AC","name":"KATAKANA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30AB 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AC"},12461:{"value":"30AD","name":"KATAKANA LETTER KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AD"},12462:{"value":"30AE","name":"KATAKANA LETTER GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30AD 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AE"},12463:{"value":"30AF","name":"KATAKANA LETTER KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AF"},12464:{"value":"30B0","name":"KATAKANA LETTER GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30AF 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B0"},12465:{"value":"30B1","name":"KATAKANA LETTER KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B1"},12466:{"value":"30B2","name":"KATAKANA LETTER GE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30B1 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B2"},12467:{"value":"30B3","name":"KATAKANA LETTER KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B3"},12468:{"value":"30B4","name":"KATAKANA LETTER GO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30B3 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B4"},12469:{"value":"30B5","name":"KATAKANA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B5"},12470:{"value":"30B6","name":"KATAKANA LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30B5 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B6"},12471:{"value":"30B7","name":"KATAKANA LETTER SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B7"},12472:{"value":"30B8","name":"KATAKANA LETTER ZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30B7 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B8"},12473:{"value":"30B9","name":"KATAKANA LETTER SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B9"},12474:{"value":"30BA","name":"KATAKANA LETTER ZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30B9 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BA"},12475:{"value":"30BB","name":"KATAKANA LETTER SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BB"},12476:{"value":"30BC","name":"KATAKANA LETTER ZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30BB 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BC"},12477:{"value":"30BD","name":"KATAKANA LETTER SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BD"},12478:{"value":"30BE","name":"KATAKANA LETTER ZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30BD 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BE"},12479:{"value":"30BF","name":"KATAKANA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BF"},12480:{"value":"30C0","name":"KATAKANA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30BF 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C0"},12481:{"value":"30C1","name":"KATAKANA LETTER TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C1"},12482:{"value":"30C2","name":"KATAKANA LETTER DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30C1 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C2"},12483:{"value":"30C3","name":"KATAKANA LETTER SMALL TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C3"},12484:{"value":"30C4","name":"KATAKANA LETTER TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C4"},12485:{"value":"30C5","name":"KATAKANA LETTER DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30C4 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C5"},12486:{"value":"30C6","name":"KATAKANA LETTER TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C6"},12487:{"value":"30C7","name":"KATAKANA LETTER DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30C6 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C7"},12488:{"value":"30C8","name":"KATAKANA LETTER TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C8"},12489:{"value":"30C9","name":"KATAKANA LETTER DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30C8 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C9"},12490:{"value":"30CA","name":"KATAKANA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CA"},12491:{"value":"30CB","name":"KATAKANA LETTER NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CB"},12492:{"value":"30CC","name":"KATAKANA LETTER NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CC"},12493:{"value":"30CD","name":"KATAKANA LETTER NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CD"},12494:{"value":"30CE","name":"KATAKANA LETTER NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CE"},12495:{"value":"30CF","name":"KATAKANA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CF"},12496:{"value":"30D0","name":"KATAKANA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30CF 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D0"},12497:{"value":"30D1","name":"KATAKANA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30CF 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D1"},12498:{"value":"30D2","name":"KATAKANA LETTER HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D2"},12499:{"value":"30D3","name":"KATAKANA LETTER BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30D2 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D3"},12500:{"value":"30D4","name":"KATAKANA LETTER PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30D2 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D4"},12501:{"value":"30D5","name":"KATAKANA LETTER HU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D5"},12502:{"value":"30D6","name":"KATAKANA LETTER BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30D5 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D6"},12503:{"value":"30D7","name":"KATAKANA LETTER PU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30D5 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D7"},12504:{"value":"30D8","name":"KATAKANA LETTER HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D8"},12505:{"value":"30D9","name":"KATAKANA LETTER BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30D8 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D9"},12506:{"value":"30DA","name":"KATAKANA LETTER PE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30D8 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DA"},12507:{"value":"30DB","name":"KATAKANA LETTER HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DB"},12508:{"value":"30DC","name":"KATAKANA LETTER BO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30DB 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DC"},12509:{"value":"30DD","name":"KATAKANA LETTER PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30DB 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DD"},12510:{"value":"30DE","name":"KATAKANA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DE"},12511:{"value":"30DF","name":"KATAKANA LETTER MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DF"},12512:{"value":"30E0","name":"KATAKANA LETTER MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E0"},12513:{"value":"30E1","name":"KATAKANA LETTER ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E1"},12514:{"value":"30E2","name":"KATAKANA LETTER MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E2"},12515:{"value":"30E3","name":"KATAKANA LETTER SMALL YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E3"},12516:{"value":"30E4","name":"KATAKANA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E4"},12517:{"value":"30E5","name":"KATAKANA LETTER SMALL YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E5"},12518:{"value":"30E6","name":"KATAKANA LETTER YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E6"},12519:{"value":"30E7","name":"KATAKANA LETTER SMALL YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E7"},12520:{"value":"30E8","name":"KATAKANA LETTER YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E8"},12521:{"value":"30E9","name":"KATAKANA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E9"},12522:{"value":"30EA","name":"KATAKANA LETTER RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30EA"},12523:{"value":"30EB","name":"KATAKANA LETTER RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30EB"},12524:{"value":"30EC","name":"KATAKANA LETTER RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30EC"},12525:{"value":"30ED","name":"KATAKANA LETTER RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30ED"},12526:{"value":"30EE","name":"KATAKANA LETTER SMALL WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30EE"},12527:{"value":"30EF","name":"KATAKANA LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30EF"},12528:{"value":"30F0","name":"KATAKANA LETTER WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F0"},12529:{"value":"30F1","name":"KATAKANA LETTER WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F1"},12530:{"value":"30F2","name":"KATAKANA LETTER WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F2"},12531:{"value":"30F3","name":"KATAKANA LETTER N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F3"},12532:{"value":"30F4","name":"KATAKANA LETTER VU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30A6 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F4"},12533:{"value":"30F5","name":"KATAKANA LETTER SMALL KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F5"},12534:{"value":"30F6","name":"KATAKANA LETTER SMALL KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F6"},12535:{"value":"30F7","name":"KATAKANA LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30EF 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F7"},12536:{"value":"30F8","name":"KATAKANA LETTER VI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30F0 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F8"},12537:{"value":"30F9","name":"KATAKANA LETTER VE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30F1 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F9"},12538:{"value":"30FA","name":"KATAKANA LETTER VO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"30F2 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FA"},12543:{"value":"30FF","name":"KATAKANA DIGRAPH KOTO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<vertical> 30B3 30C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FF"},12549:{"value":"3105","name":"BOPOMOFO LETTER B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3105"},12550:{"value":"3106","name":"BOPOMOFO LETTER P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3106"},12551:{"value":"3107","name":"BOPOMOFO LETTER M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3107"},12552:{"value":"3108","name":"BOPOMOFO LETTER F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3108"},12553:{"value":"3109","name":"BOPOMOFO LETTER D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3109"},12554:{"value":"310A","name":"BOPOMOFO LETTER T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310A"},12555:{"value":"310B","name":"BOPOMOFO LETTER N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310B"},12556:{"value":"310C","name":"BOPOMOFO LETTER L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310C"},12557:{"value":"310D","name":"BOPOMOFO LETTER G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310D"},12558:{"value":"310E","name":"BOPOMOFO LETTER K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310E"},12559:{"value":"310F","name":"BOPOMOFO LETTER H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310F"},12560:{"value":"3110","name":"BOPOMOFO LETTER J","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3110"},12561:{"value":"3111","name":"BOPOMOFO LETTER Q","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3111"},12562:{"value":"3112","name":"BOPOMOFO LETTER X","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3112"},12563:{"value":"3113","name":"BOPOMOFO LETTER ZH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3113"},12564:{"value":"3114","name":"BOPOMOFO LETTER CH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3114"},12565:{"value":"3115","name":"BOPOMOFO LETTER SH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3115"},12566:{"value":"3116","name":"BOPOMOFO LETTER R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3116"},12567:{"value":"3117","name":"BOPOMOFO LETTER Z","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3117"},12568:{"value":"3118","name":"BOPOMOFO LETTER C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3118"},12569:{"value":"3119","name":"BOPOMOFO LETTER S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3119"},12570:{"value":"311A","name":"BOPOMOFO LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311A"},12571:{"value":"311B","name":"BOPOMOFO LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311B"},12572:{"value":"311C","name":"BOPOMOFO LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311C"},12573:{"value":"311D","name":"BOPOMOFO LETTER EH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311D"},12574:{"value":"311E","name":"BOPOMOFO LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311E"},12575:{"value":"311F","name":"BOPOMOFO LETTER EI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311F"},12576:{"value":"3120","name":"BOPOMOFO LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3120"},12577:{"value":"3121","name":"BOPOMOFO LETTER OU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3121"},12578:{"value":"3122","name":"BOPOMOFO LETTER AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3122"},12579:{"value":"3123","name":"BOPOMOFO LETTER EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3123"},12580:{"value":"3124","name":"BOPOMOFO LETTER ANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3124"},12581:{"value":"3125","name":"BOPOMOFO LETTER ENG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3125"},12582:{"value":"3126","name":"BOPOMOFO LETTER ER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3126"},12583:{"value":"3127","name":"BOPOMOFO LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3127"},12584:{"value":"3128","name":"BOPOMOFO LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3128"},12585:{"value":"3129","name":"BOPOMOFO LETTER IU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3129"},12586:{"value":"312A","name":"BOPOMOFO LETTER V","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312A"},12587:{"value":"312B","name":"BOPOMOFO LETTER NG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312B"},12588:{"value":"312C","name":"BOPOMOFO LETTER GN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312C"},12589:{"value":"312D","name":"BOPOMOFO LETTER IH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312D"},12590:{"value":"312E","name":"BOPOMOFO LETTER O WITH DOT ABOVE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312E"},12591:{"value":"312F","name":"BOPOMOFO LETTER NN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312F"},12593:{"value":"3131","name":"HANGUL LETTER KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1100","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER GIYEOG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3131"},12594:{"value":"3132","name":"HANGUL LETTER SSANGKIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1101","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SSANG GIYEOG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3132"},12595:{"value":"3133","name":"HANGUL LETTER KIYEOK-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11AA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER GIYEOG SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3133"},12596:{"value":"3134","name":"HANGUL LETTER NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1102","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3134"},12597:{"value":"3135","name":"HANGUL LETTER NIEUN-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11AC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER NIEUN JIEUJ","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3135"},12598:{"value":"3136","name":"HANGUL LETTER NIEUN-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER NIEUN HIEUH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3136"},12599:{"value":"3137","name":"HANGUL LETTER TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1103","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER DIGEUD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3137"},12600:{"value":"3138","name":"HANGUL LETTER SSANGTIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1104","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SSANG DIGEUD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3138"},12601:{"value":"3139","name":"HANGUL LETTER RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1105","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3139"},12602:{"value":"313A","name":"HANGUL LETTER RIEUL-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11B0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL GIYEOG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313A"},12603:{"value":"313B","name":"HANGUL LETTER RIEUL-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL MIEUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313B"},12604:{"value":"313C","name":"HANGUL LETTER RIEUL-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL BIEUB","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313C"},12605:{"value":"313D","name":"HANGUL LETTER RIEUL-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313D"},12606:{"value":"313E","name":"HANGUL LETTER RIEUL-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11B4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL TIEUT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313E"},12607:{"value":"313F","name":"HANGUL LETTER RIEUL-PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL PIEUP","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313F"},12608:{"value":"3140","name":"HANGUL LETTER RIEUL-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 111A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL HIEUH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3140"},12609:{"value":"3141","name":"HANGUL LETTER MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1106","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3141"},12610:{"value":"3142","name":"HANGUL LETTER PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1107","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BIEUB","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3142"},12611:{"value":"3143","name":"HANGUL LETTER SSANGPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1108","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SSANG BIEUB","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3143"},12612:{"value":"3144","name":"HANGUL LETTER PIEUP-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1121","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BIEUB SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3144"},12613:{"value":"3145","name":"HANGUL LETTER SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1109","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3145"},12614:{"value":"3146","name":"HANGUL LETTER SSANGSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 110A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SSANG SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3146"},12615:{"value":"3147","name":"HANGUL LETTER IEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 110B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3147"},12616:{"value":"3148","name":"HANGUL LETTER CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 110C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER JIEUJ","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3148"},12617:{"value":"3149","name":"HANGUL LETTER SSANGCIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 110D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SSANG JIEUJ","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3149"},12618:{"value":"314A","name":"HANGUL LETTER CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 110E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER CIEUC","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314A"},12619:{"value":"314B","name":"HANGUL LETTER KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 110F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER KIYEOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314B"},12620:{"value":"314C","name":"HANGUL LETTER THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1110","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER TIEUT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314C"},12621:{"value":"314D","name":"HANGUL LETTER PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1111","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER PIEUP","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314D"},12622:{"value":"314E","name":"HANGUL LETTER HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1112","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314E"},12623:{"value":"314F","name":"HANGUL LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1161","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314F"},12624:{"value":"3150","name":"HANGUL LETTER AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1162","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3150"},12625:{"value":"3151","name":"HANGUL LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1163","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3151"},12626:{"value":"3152","name":"HANGUL LETTER YAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1164","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3152"},12627:{"value":"3153","name":"HANGUL LETTER EO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1165","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3153"},12628:{"value":"3154","name":"HANGUL LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1166","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3154"},12629:{"value":"3155","name":"HANGUL LETTER YEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1167","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3155"},12630:{"value":"3156","name":"HANGUL LETTER YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1168","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3156"},12631:{"value":"3157","name":"HANGUL LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1169","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3157"},12632:{"value":"3158","name":"HANGUL LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 116A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3158"},12633:{"value":"3159","name":"HANGUL LETTER WAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 116B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3159"},12634:{"value":"315A","name":"HANGUL LETTER OE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 116C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315A"},12635:{"value":"315B","name":"HANGUL LETTER YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 116D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315B"},12636:{"value":"315C","name":"HANGUL LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 116E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315C"},12637:{"value":"315D","name":"HANGUL LETTER WEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 116F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315D"},12638:{"value":"315E","name":"HANGUL LETTER WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1170","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315E"},12639:{"value":"315F","name":"HANGUL LETTER WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1171","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315F"},12640:{"value":"3160","name":"HANGUL LETTER YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1172","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3160"},12641:{"value":"3161","name":"HANGUL LETTER EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1173","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3161"},12642:{"value":"3162","name":"HANGUL LETTER YI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1174","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3162"},12643:{"value":"3163","name":"HANGUL LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1175","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3163"},12644:{"value":"3164","name":"HANGUL FILLER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1160","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL CAE OM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3164"},12645:{"value":"3165","name":"HANGUL LETTER SSANGNIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1114","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SSANG NIEUN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3165"},12646:{"value":"3166","name":"HANGUL LETTER NIEUN-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1115","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER NIEUN DIGEUD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3166"},12647:{"value":"3167","name":"HANGUL LETTER NIEUN-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER NIEUN SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3167"},12648:{"value":"3168","name":"HANGUL LETTER NIEUN-PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER NIEUN BAN CHI EUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3168"},12649:{"value":"3169","name":"HANGUL LETTER RIEUL-KIYEOK-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL GIYEOG SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3169"},12650:{"value":"316A","name":"HANGUL LETTER RIEUL-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11CE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL DIGEUD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316A"},12651:{"value":"316B","name":"HANGUL LETTER RIEUL-PIEUP-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11D3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL BIEUB SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316B"},12652:{"value":"316C","name":"HANGUL LETTER RIEUL-PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11D7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL BAN CHI EUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316C"},12653:{"value":"316D","name":"HANGUL LETTER RIEUL-YEORINHIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11D9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER LIEUL YEOLIN HIEUH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316D"},12654:{"value":"316E","name":"HANGUL LETTER MIEUM-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 111C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER MIEUM BIEUB","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316E"},12655:{"value":"316F","name":"HANGUL LETTER MIEUM-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11DD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER MIEUM SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316F"},12656:{"value":"3170","name":"HANGUL LETTER MIEUM-PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11DF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BIEUB BAN CHI EUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3170"},12657:{"value":"3171","name":"HANGUL LETTER KAPYEOUNMIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 111D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER MIEUM SUN GYEONG EUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3171"},12658:{"value":"3172","name":"HANGUL LETTER PIEUP-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 111E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BIEUB GIYEOG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3172"},12659:{"value":"3173","name":"HANGUL LETTER PIEUP-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1120","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BIEUB DIGEUD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3173"},12660:{"value":"3174","name":"HANGUL LETTER PIEUP-SIOS-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1122","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BIEUB SIOS GIYEOG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3174"},12661:{"value":"3175","name":"HANGUL LETTER PIEUP-SIOS-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1123","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BIEUB SIOS DIGEUD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3175"},12662:{"value":"3176","name":"HANGUL LETTER PIEUP-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1127","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BIEUB JIEUJ","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3176"},12663:{"value":"3177","name":"HANGUL LETTER PIEUP-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1129","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BIEUB TIEUT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3177"},12664:{"value":"3178","name":"HANGUL LETTER KAPYEOUNPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 112B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BIEUB SUN GYEONG EUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3178"},12665:{"value":"3179","name":"HANGUL LETTER KAPYEOUNSSANGPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 112C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SSANG BIEUB SUN GYEONG EUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3179"},12666:{"value":"317A","name":"HANGUL LETTER SIOS-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 112D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SIOS GIYEOG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317A"},12667:{"value":"317B","name":"HANGUL LETTER SIOS-NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 112E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SIOS NIEUN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317B"},12668:{"value":"317C","name":"HANGUL LETTER SIOS-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 112F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SIOS DIGEUD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317C"},12669:{"value":"317D","name":"HANGUL LETTER SIOS-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1132","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SIOS BIEUB","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317D"},12670:{"value":"317E","name":"HANGUL LETTER SIOS-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1136","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SIOS JIEUJ","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317E"},12671:{"value":"317F","name":"HANGUL LETTER PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1140","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER BAN CHI EUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317F"},12672:{"value":"3180","name":"HANGUL LETTER SSANGIEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1147","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SSANG IEUNG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3180"},12673:{"value":"3181","name":"HANGUL LETTER YESIEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 114C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER NGIEUNG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3181"},12674:{"value":"3182","name":"HANGUL LETTER YESIEUNG-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER NGIEUNG SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3182"},12675:{"value":"3183","name":"HANGUL LETTER YESIEUNG-PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11F2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER NGIEUNG BAN CHI EUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3183"},12676:{"value":"3184","name":"HANGUL LETTER KAPYEOUNPHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1157","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER PIEUP SUN GYEONG EUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3184"},12677:{"value":"3185","name":"HANGUL LETTER SSANGHIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1158","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER SSANG HIEUH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3185"},12678:{"value":"3186","name":"HANGUL LETTER YEORINHIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1159","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER YEOLIN HIEUH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3186"},12679:{"value":"3187","name":"HANGUL LETTER YO-YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1184","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER YOYA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3187"},12680:{"value":"3188","name":"HANGUL LETTER YO-YAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1185","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER YOYAE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3188"},12681:{"value":"3189","name":"HANGUL LETTER YO-I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1188","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER YOI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3189"},12682:{"value":"318A","name":"HANGUL LETTER YU-YEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1191","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER YUYEO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318A"},12683:{"value":"318B","name":"HANGUL LETTER YU-YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1192","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER YUYE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318B"},12684:{"value":"318C","name":"HANGUL LETTER YU-I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 1194","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER YUI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318C"},12685:{"value":"318D","name":"HANGUL LETTER ARAEA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 119E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER ALAE A","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318D"},12686:{"value":"318E","name":"HANGUL LETTER ARAEAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<compat> 11A1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HANGUL LETTER ALAE AE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318E"},12704:{"value":"31A0","name":"BOPOMOFO LETTER BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A0"},12705:{"value":"31A1","name":"BOPOMOFO LETTER ZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A1"},12706:{"value":"31A2","name":"BOPOMOFO LETTER JI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A2"},12707:{"value":"31A3","name":"BOPOMOFO LETTER GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A3"},12708:{"value":"31A4","name":"BOPOMOFO LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A4"},12709:{"value":"31A5","name":"BOPOMOFO LETTER ENN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A5"},12710:{"value":"31A6","name":"BOPOMOFO LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A6"},12711:{"value":"31A7","name":"BOPOMOFO LETTER ONN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A7"},12712:{"value":"31A8","name":"BOPOMOFO LETTER IR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A8"},12713:{"value":"31A9","name":"BOPOMOFO LETTER ANN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A9"},12714:{"value":"31AA","name":"BOPOMOFO LETTER INN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AA"},12715:{"value":"31AB","name":"BOPOMOFO LETTER UNN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AB"},12716:{"value":"31AC","name":"BOPOMOFO LETTER IM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AC"},12717:{"value":"31AD","name":"BOPOMOFO LETTER NGG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AD"},12718:{"value":"31AE","name":"BOPOMOFO LETTER AINN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AE"},12719:{"value":"31AF","name":"BOPOMOFO LETTER AUNN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AF"},12720:{"value":"31B0","name":"BOPOMOFO LETTER AM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B0"},12721:{"value":"31B1","name":"BOPOMOFO LETTER OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B1"},12722:{"value":"31B2","name":"BOPOMOFO LETTER ONG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B2"},12723:{"value":"31B3","name":"BOPOMOFO LETTER INNN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B3"},12724:{"value":"31B4","name":"BOPOMOFO FINAL LETTER P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B4"},12725:{"value":"31B5","name":"BOPOMOFO FINAL LETTER T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B5"},12726:{"value":"31B6","name":"BOPOMOFO FINAL LETTER K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B6"},12727:{"value":"31B7","name":"BOPOMOFO FINAL LETTER H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B7"},12728:{"value":"31B8","name":"BOPOMOFO LETTER GH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B8"},12729:{"value":"31B9","name":"BOPOMOFO LETTER LH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B9"},12730:{"value":"31BA","name":"BOPOMOFO LETTER ZY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31BA"},12784:{"value":"31F0","name":"KATAKANA LETTER SMALL KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F0"},12785:{"value":"31F1","name":"KATAKANA LETTER SMALL SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F1"},12786:{"value":"31F2","name":"KATAKANA LETTER SMALL SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F2"},12787:{"value":"31F3","name":"KATAKANA LETTER SMALL TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F3"},12788:{"value":"31F4","name":"KATAKANA LETTER SMALL NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F4"},12789:{"value":"31F5","name":"KATAKANA LETTER SMALL HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F5"},12790:{"value":"31F6","name":"KATAKANA LETTER SMALL HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F6"},12791:{"value":"31F7","name":"KATAKANA LETTER SMALL HU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F7"},12792:{"value":"31F8","name":"KATAKANA LETTER SMALL HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F8"},12793:{"value":"31F9","name":"KATAKANA LETTER SMALL HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F9"},12794:{"value":"31FA","name":"KATAKANA LETTER SMALL MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FA"},12795:{"value":"31FB","name":"KATAKANA LETTER SMALL RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FB"},12796:{"value":"31FC","name":"KATAKANA LETTER SMALL RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FC"},12797:{"value":"31FD","name":"KATAKANA LETTER SMALL RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FD"},12798:{"value":"31FE","name":"KATAKANA LETTER SMALL RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FE"},12799:{"value":"31FF","name":"KATAKANA LETTER SMALL RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FF"},13312:{"value":"3400","name":"<CJK Ideograph Extension A, First>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3400"},19893:{"value":"4DB5","name":"<CJK Ideograph Extension A, Last>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4DB5"},19968:{"value":"4E00","name":"<CJK Ideograph, First>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4E00"},40943:{"value":"9FEF","name":"<CJK Ideograph, Last>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u9FEF"},40960:{"value":"A000","name":"YI SYLLABLE IT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA000"},40961:{"value":"A001","name":"YI SYLLABLE IX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA001"},40962:{"value":"A002","name":"YI SYLLABLE I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA002"},40963:{"value":"A003","name":"YI SYLLABLE IP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA003"},40964:{"value":"A004","name":"YI SYLLABLE IET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA004"},40965:{"value":"A005","name":"YI SYLLABLE IEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA005"},40966:{"value":"A006","name":"YI SYLLABLE IE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA006"},40967:{"value":"A007","name":"YI SYLLABLE IEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA007"},40968:{"value":"A008","name":"YI SYLLABLE AT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA008"},40969:{"value":"A009","name":"YI SYLLABLE AX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA009"},40970:{"value":"A00A","name":"YI SYLLABLE A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA00A"},40971:{"value":"A00B","name":"YI SYLLABLE AP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA00B"},40972:{"value":"A00C","name":"YI SYLLABLE UOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA00C"},40973:{"value":"A00D","name":"YI SYLLABLE UO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA00D"},40974:{"value":"A00E","name":"YI SYLLABLE UOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA00E"},40975:{"value":"A00F","name":"YI SYLLABLE OT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA00F"},40976:{"value":"A010","name":"YI SYLLABLE OX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA010"},40977:{"value":"A011","name":"YI SYLLABLE O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA011"},40978:{"value":"A012","name":"YI SYLLABLE OP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA012"},40979:{"value":"A013","name":"YI SYLLABLE EX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA013"},40980:{"value":"A014","name":"YI SYLLABLE E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA014"},40982:{"value":"A016","name":"YI SYLLABLE BIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA016"},40983:{"value":"A017","name":"YI SYLLABLE BIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA017"},40984:{"value":"A018","name":"YI SYLLABLE BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA018"},40985:{"value":"A019","name":"YI SYLLABLE BIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA019"},40986:{"value":"A01A","name":"YI SYLLABLE BIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA01A"},40987:{"value":"A01B","name":"YI SYLLABLE BIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA01B"},40988:{"value":"A01C","name":"YI SYLLABLE BIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA01C"},40989:{"value":"A01D","name":"YI SYLLABLE BIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA01D"},40990:{"value":"A01E","name":"YI SYLLABLE BAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA01E"},40991:{"value":"A01F","name":"YI SYLLABLE BAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA01F"},40992:{"value":"A020","name":"YI SYLLABLE BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA020"},40993:{"value":"A021","name":"YI SYLLABLE BAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA021"},40994:{"value":"A022","name":"YI SYLLABLE BUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA022"},40995:{"value":"A023","name":"YI SYLLABLE BUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA023"},40996:{"value":"A024","name":"YI SYLLABLE BUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA024"},40997:{"value":"A025","name":"YI SYLLABLE BOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA025"},40998:{"value":"A026","name":"YI SYLLABLE BOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA026"},40999:{"value":"A027","name":"YI SYLLABLE BO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA027"},41000:{"value":"A028","name":"YI SYLLABLE BOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA028"},41001:{"value":"A029","name":"YI SYLLABLE BEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA029"},41002:{"value":"A02A","name":"YI SYLLABLE BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA02A"},41003:{"value":"A02B","name":"YI SYLLABLE BEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA02B"},41004:{"value":"A02C","name":"YI SYLLABLE BUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA02C"},41005:{"value":"A02D","name":"YI SYLLABLE BUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA02D"},41006:{"value":"A02E","name":"YI SYLLABLE BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA02E"},41007:{"value":"A02F","name":"YI SYLLABLE BUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA02F"},41008:{"value":"A030","name":"YI SYLLABLE BURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA030"},41009:{"value":"A031","name":"YI SYLLABLE BUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA031"},41010:{"value":"A032","name":"YI SYLLABLE BYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA032"},41011:{"value":"A033","name":"YI SYLLABLE BYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA033"},41012:{"value":"A034","name":"YI SYLLABLE BY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA034"},41013:{"value":"A035","name":"YI SYLLABLE BYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA035"},41014:{"value":"A036","name":"YI SYLLABLE BYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA036"},41015:{"value":"A037","name":"YI SYLLABLE BYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA037"},41016:{"value":"A038","name":"YI SYLLABLE PIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA038"},41017:{"value":"A039","name":"YI SYLLABLE PIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA039"},41018:{"value":"A03A","name":"YI SYLLABLE PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA03A"},41019:{"value":"A03B","name":"YI SYLLABLE PIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA03B"},41020:{"value":"A03C","name":"YI SYLLABLE PIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA03C"},41021:{"value":"A03D","name":"YI SYLLABLE PIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA03D"},41022:{"value":"A03E","name":"YI SYLLABLE PIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA03E"},41023:{"value":"A03F","name":"YI SYLLABLE PAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA03F"},41024:{"value":"A040","name":"YI SYLLABLE PAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA040"},41025:{"value":"A041","name":"YI SYLLABLE PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA041"},41026:{"value":"A042","name":"YI SYLLABLE PAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA042"},41027:{"value":"A043","name":"YI SYLLABLE PUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA043"},41028:{"value":"A044","name":"YI SYLLABLE PUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA044"},41029:{"value":"A045","name":"YI SYLLABLE PUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA045"},41030:{"value":"A046","name":"YI SYLLABLE POT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA046"},41031:{"value":"A047","name":"YI SYLLABLE POX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA047"},41032:{"value":"A048","name":"YI SYLLABLE PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA048"},41033:{"value":"A049","name":"YI SYLLABLE POP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA049"},41034:{"value":"A04A","name":"YI SYLLABLE PUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA04A"},41035:{"value":"A04B","name":"YI SYLLABLE PUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA04B"},41036:{"value":"A04C","name":"YI SYLLABLE PU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA04C"},41037:{"value":"A04D","name":"YI SYLLABLE PUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA04D"},41038:{"value":"A04E","name":"YI SYLLABLE PURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA04E"},41039:{"value":"A04F","name":"YI SYLLABLE PUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA04F"},41040:{"value":"A050","name":"YI SYLLABLE PYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA050"},41041:{"value":"A051","name":"YI SYLLABLE PYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA051"},41042:{"value":"A052","name":"YI SYLLABLE PY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA052"},41043:{"value":"A053","name":"YI SYLLABLE PYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA053"},41044:{"value":"A054","name":"YI SYLLABLE PYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA054"},41045:{"value":"A055","name":"YI SYLLABLE PYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA055"},41046:{"value":"A056","name":"YI SYLLABLE BBIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA056"},41047:{"value":"A057","name":"YI SYLLABLE BBIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA057"},41048:{"value":"A058","name":"YI SYLLABLE BBI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA058"},41049:{"value":"A059","name":"YI SYLLABLE BBIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA059"},41050:{"value":"A05A","name":"YI SYLLABLE BBIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA05A"},41051:{"value":"A05B","name":"YI SYLLABLE BBIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA05B"},41052:{"value":"A05C","name":"YI SYLLABLE BBIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA05C"},41053:{"value":"A05D","name":"YI SYLLABLE BBIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA05D"},41054:{"value":"A05E","name":"YI SYLLABLE BBAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA05E"},41055:{"value":"A05F","name":"YI SYLLABLE BBAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA05F"},41056:{"value":"A060","name":"YI SYLLABLE BBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA060"},41057:{"value":"A061","name":"YI SYLLABLE BBAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA061"},41058:{"value":"A062","name":"YI SYLLABLE BBUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA062"},41059:{"value":"A063","name":"YI SYLLABLE BBUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA063"},41060:{"value":"A064","name":"YI SYLLABLE BBUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA064"},41061:{"value":"A065","name":"YI SYLLABLE BBOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA065"},41062:{"value":"A066","name":"YI SYLLABLE BBOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA066"},41063:{"value":"A067","name":"YI SYLLABLE BBO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA067"},41064:{"value":"A068","name":"YI SYLLABLE BBOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA068"},41065:{"value":"A069","name":"YI SYLLABLE BBEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA069"},41066:{"value":"A06A","name":"YI SYLLABLE BBE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA06A"},41067:{"value":"A06B","name":"YI SYLLABLE BBEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA06B"},41068:{"value":"A06C","name":"YI SYLLABLE BBUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA06C"},41069:{"value":"A06D","name":"YI SYLLABLE BBUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA06D"},41070:{"value":"A06E","name":"YI SYLLABLE BBU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA06E"},41071:{"value":"A06F","name":"YI SYLLABLE BBUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA06F"},41072:{"value":"A070","name":"YI SYLLABLE BBURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA070"},41073:{"value":"A071","name":"YI SYLLABLE BBUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA071"},41074:{"value":"A072","name":"YI SYLLABLE BBYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA072"},41075:{"value":"A073","name":"YI SYLLABLE BBYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA073"},41076:{"value":"A074","name":"YI SYLLABLE BBY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA074"},41077:{"value":"A075","name":"YI SYLLABLE BBYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA075"},41078:{"value":"A076","name":"YI SYLLABLE NBIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA076"},41079:{"value":"A077","name":"YI SYLLABLE NBIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA077"},41080:{"value":"A078","name":"YI SYLLABLE NBI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA078"},41081:{"value":"A079","name":"YI SYLLABLE NBIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA079"},41082:{"value":"A07A","name":"YI SYLLABLE NBIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA07A"},41083:{"value":"A07B","name":"YI SYLLABLE NBIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA07B"},41084:{"value":"A07C","name":"YI SYLLABLE NBIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA07C"},41085:{"value":"A07D","name":"YI SYLLABLE NBAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA07D"},41086:{"value":"A07E","name":"YI SYLLABLE NBAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA07E"},41087:{"value":"A07F","name":"YI SYLLABLE NBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA07F"},41088:{"value":"A080","name":"YI SYLLABLE NBAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA080"},41089:{"value":"A081","name":"YI SYLLABLE NBOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA081"},41090:{"value":"A082","name":"YI SYLLABLE NBOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA082"},41091:{"value":"A083","name":"YI SYLLABLE NBO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA083"},41092:{"value":"A084","name":"YI SYLLABLE NBOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA084"},41093:{"value":"A085","name":"YI SYLLABLE NBUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA085"},41094:{"value":"A086","name":"YI SYLLABLE NBUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA086"},41095:{"value":"A087","name":"YI SYLLABLE NBU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA087"},41096:{"value":"A088","name":"YI SYLLABLE NBUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA088"},41097:{"value":"A089","name":"YI SYLLABLE NBURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA089"},41098:{"value":"A08A","name":"YI SYLLABLE NBUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA08A"},41099:{"value":"A08B","name":"YI SYLLABLE NBYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA08B"},41100:{"value":"A08C","name":"YI SYLLABLE NBYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA08C"},41101:{"value":"A08D","name":"YI SYLLABLE NBY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA08D"},41102:{"value":"A08E","name":"YI SYLLABLE NBYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA08E"},41103:{"value":"A08F","name":"YI SYLLABLE NBYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA08F"},41104:{"value":"A090","name":"YI SYLLABLE NBYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA090"},41105:{"value":"A091","name":"YI SYLLABLE HMIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA091"},41106:{"value":"A092","name":"YI SYLLABLE HMIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA092"},41107:{"value":"A093","name":"YI SYLLABLE HMI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA093"},41108:{"value":"A094","name":"YI SYLLABLE HMIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA094"},41109:{"value":"A095","name":"YI SYLLABLE HMIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA095"},41110:{"value":"A096","name":"YI SYLLABLE HMIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA096"},41111:{"value":"A097","name":"YI SYLLABLE HMIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA097"},41112:{"value":"A098","name":"YI SYLLABLE HMAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA098"},41113:{"value":"A099","name":"YI SYLLABLE HMAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA099"},41114:{"value":"A09A","name":"YI SYLLABLE HMA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA09A"},41115:{"value":"A09B","name":"YI SYLLABLE HMAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA09B"},41116:{"value":"A09C","name":"YI SYLLABLE HMUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA09C"},41117:{"value":"A09D","name":"YI SYLLABLE HMUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA09D"},41118:{"value":"A09E","name":"YI SYLLABLE HMUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA09E"},41119:{"value":"A09F","name":"YI SYLLABLE HMOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA09F"},41120:{"value":"A0A0","name":"YI SYLLABLE HMOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0A0"},41121:{"value":"A0A1","name":"YI SYLLABLE HMO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0A1"},41122:{"value":"A0A2","name":"YI SYLLABLE HMOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0A2"},41123:{"value":"A0A3","name":"YI SYLLABLE HMUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0A3"},41124:{"value":"A0A4","name":"YI SYLLABLE HMUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0A4"},41125:{"value":"A0A5","name":"YI SYLLABLE HMU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0A5"},41126:{"value":"A0A6","name":"YI SYLLABLE HMUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0A6"},41127:{"value":"A0A7","name":"YI SYLLABLE HMURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0A7"},41128:{"value":"A0A8","name":"YI SYLLABLE HMUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0A8"},41129:{"value":"A0A9","name":"YI SYLLABLE HMYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0A9"},41130:{"value":"A0AA","name":"YI SYLLABLE HMY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0AA"},41131:{"value":"A0AB","name":"YI SYLLABLE HMYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0AB"},41132:{"value":"A0AC","name":"YI SYLLABLE HMYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0AC"},41133:{"value":"A0AD","name":"YI SYLLABLE HMYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0AD"},41134:{"value":"A0AE","name":"YI SYLLABLE MIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0AE"},41135:{"value":"A0AF","name":"YI SYLLABLE MIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0AF"},41136:{"value":"A0B0","name":"YI SYLLABLE MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0B0"},41137:{"value":"A0B1","name":"YI SYLLABLE MIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0B1"},41138:{"value":"A0B2","name":"YI SYLLABLE MIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0B2"},41139:{"value":"A0B3","name":"YI SYLLABLE MIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0B3"},41140:{"value":"A0B4","name":"YI SYLLABLE MIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0B4"},41141:{"value":"A0B5","name":"YI SYLLABLE MAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0B5"},41142:{"value":"A0B6","name":"YI SYLLABLE MAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0B6"},41143:{"value":"A0B7","name":"YI SYLLABLE MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0B7"},41144:{"value":"A0B8","name":"YI SYLLABLE MAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0B8"},41145:{"value":"A0B9","name":"YI SYLLABLE MUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0B9"},41146:{"value":"A0BA","name":"YI SYLLABLE MUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0BA"},41147:{"value":"A0BB","name":"YI SYLLABLE MUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0BB"},41148:{"value":"A0BC","name":"YI SYLLABLE MUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0BC"},41149:{"value":"A0BD","name":"YI SYLLABLE MOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0BD"},41150:{"value":"A0BE","name":"YI SYLLABLE MOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0BE"},41151:{"value":"A0BF","name":"YI SYLLABLE MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0BF"},41152:{"value":"A0C0","name":"YI SYLLABLE MOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0C0"},41153:{"value":"A0C1","name":"YI SYLLABLE MEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0C1"},41154:{"value":"A0C2","name":"YI SYLLABLE ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0C2"},41155:{"value":"A0C3","name":"YI SYLLABLE MUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0C3"},41156:{"value":"A0C4","name":"YI SYLLABLE MUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0C4"},41157:{"value":"A0C5","name":"YI SYLLABLE MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0C5"},41158:{"value":"A0C6","name":"YI SYLLABLE MUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0C6"},41159:{"value":"A0C7","name":"YI SYLLABLE MURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0C7"},41160:{"value":"A0C8","name":"YI SYLLABLE MUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0C8"},41161:{"value":"A0C9","name":"YI SYLLABLE MYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0C9"},41162:{"value":"A0CA","name":"YI SYLLABLE MYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0CA"},41163:{"value":"A0CB","name":"YI SYLLABLE MY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0CB"},41164:{"value":"A0CC","name":"YI SYLLABLE MYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0CC"},41165:{"value":"A0CD","name":"YI SYLLABLE FIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0CD"},41166:{"value":"A0CE","name":"YI SYLLABLE FIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0CE"},41167:{"value":"A0CF","name":"YI SYLLABLE FI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0CF"},41168:{"value":"A0D0","name":"YI SYLLABLE FIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0D0"},41169:{"value":"A0D1","name":"YI SYLLABLE FAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0D1"},41170:{"value":"A0D2","name":"YI SYLLABLE FAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0D2"},41171:{"value":"A0D3","name":"YI SYLLABLE FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0D3"},41172:{"value":"A0D4","name":"YI SYLLABLE FAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0D4"},41173:{"value":"A0D5","name":"YI SYLLABLE FOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0D5"},41174:{"value":"A0D6","name":"YI SYLLABLE FO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0D6"},41175:{"value":"A0D7","name":"YI SYLLABLE FOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0D7"},41176:{"value":"A0D8","name":"YI SYLLABLE FUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0D8"},41177:{"value":"A0D9","name":"YI SYLLABLE FUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0D9"},41178:{"value":"A0DA","name":"YI SYLLABLE FU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0DA"},41179:{"value":"A0DB","name":"YI SYLLABLE FUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0DB"},41180:{"value":"A0DC","name":"YI SYLLABLE FURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0DC"},41181:{"value":"A0DD","name":"YI SYLLABLE FUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0DD"},41182:{"value":"A0DE","name":"YI SYLLABLE FYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0DE"},41183:{"value":"A0DF","name":"YI SYLLABLE FYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0DF"},41184:{"value":"A0E0","name":"YI SYLLABLE FY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0E0"},41185:{"value":"A0E1","name":"YI SYLLABLE FYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0E1"},41186:{"value":"A0E2","name":"YI SYLLABLE VIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0E2"},41187:{"value":"A0E3","name":"YI SYLLABLE VIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0E3"},41188:{"value":"A0E4","name":"YI SYLLABLE VI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0E4"},41189:{"value":"A0E5","name":"YI SYLLABLE VIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0E5"},41190:{"value":"A0E6","name":"YI SYLLABLE VIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0E6"},41191:{"value":"A0E7","name":"YI SYLLABLE VIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0E7"},41192:{"value":"A0E8","name":"YI SYLLABLE VIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0E8"},41193:{"value":"A0E9","name":"YI SYLLABLE VIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0E9"},41194:{"value":"A0EA","name":"YI SYLLABLE VAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0EA"},41195:{"value":"A0EB","name":"YI SYLLABLE VAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0EB"},41196:{"value":"A0EC","name":"YI SYLLABLE VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0EC"},41197:{"value":"A0ED","name":"YI SYLLABLE VAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0ED"},41198:{"value":"A0EE","name":"YI SYLLABLE VOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0EE"},41199:{"value":"A0EF","name":"YI SYLLABLE VOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0EF"},41200:{"value":"A0F0","name":"YI SYLLABLE VO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0F0"},41201:{"value":"A0F1","name":"YI SYLLABLE VOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0F1"},41202:{"value":"A0F2","name":"YI SYLLABLE VEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0F2"},41203:{"value":"A0F3","name":"YI SYLLABLE VEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0F3"},41204:{"value":"A0F4","name":"YI SYLLABLE VUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0F4"},41205:{"value":"A0F5","name":"YI SYLLABLE VUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0F5"},41206:{"value":"A0F6","name":"YI SYLLABLE VU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0F6"},41207:{"value":"A0F7","name":"YI SYLLABLE VUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0F7"},41208:{"value":"A0F8","name":"YI SYLLABLE VURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0F8"},41209:{"value":"A0F9","name":"YI SYLLABLE VUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0F9"},41210:{"value":"A0FA","name":"YI SYLLABLE VYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0FA"},41211:{"value":"A0FB","name":"YI SYLLABLE VYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0FB"},41212:{"value":"A0FC","name":"YI SYLLABLE VY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0FC"},41213:{"value":"A0FD","name":"YI SYLLABLE VYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0FD"},41214:{"value":"A0FE","name":"YI SYLLABLE VYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0FE"},41215:{"value":"A0FF","name":"YI SYLLABLE VYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA0FF"},41216:{"value":"A100","name":"YI SYLLABLE DIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA100"},41217:{"value":"A101","name":"YI SYLLABLE DIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA101"},41218:{"value":"A102","name":"YI SYLLABLE DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA102"},41219:{"value":"A103","name":"YI SYLLABLE DIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA103"},41220:{"value":"A104","name":"YI SYLLABLE DIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA104"},41221:{"value":"A105","name":"YI SYLLABLE DIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA105"},41222:{"value":"A106","name":"YI SYLLABLE DIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA106"},41223:{"value":"A107","name":"YI SYLLABLE DAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA107"},41224:{"value":"A108","name":"YI SYLLABLE DAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA108"},41225:{"value":"A109","name":"YI SYLLABLE DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA109"},41226:{"value":"A10A","name":"YI SYLLABLE DAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA10A"},41227:{"value":"A10B","name":"YI SYLLABLE DUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA10B"},41228:{"value":"A10C","name":"YI SYLLABLE DUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA10C"},41229:{"value":"A10D","name":"YI SYLLABLE DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA10D"},41230:{"value":"A10E","name":"YI SYLLABLE DOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA10E"},41231:{"value":"A10F","name":"YI SYLLABLE DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA10F"},41232:{"value":"A110","name":"YI SYLLABLE DOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA110"},41233:{"value":"A111","name":"YI SYLLABLE DEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA111"},41234:{"value":"A112","name":"YI SYLLABLE DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA112"},41235:{"value":"A113","name":"YI SYLLABLE DEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA113"},41236:{"value":"A114","name":"YI SYLLABLE DUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA114"},41237:{"value":"A115","name":"YI SYLLABLE DUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA115"},41238:{"value":"A116","name":"YI SYLLABLE DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA116"},41239:{"value":"A117","name":"YI SYLLABLE DUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA117"},41240:{"value":"A118","name":"YI SYLLABLE DURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA118"},41241:{"value":"A119","name":"YI SYLLABLE DUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA119"},41242:{"value":"A11A","name":"YI SYLLABLE TIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA11A"},41243:{"value":"A11B","name":"YI SYLLABLE TIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA11B"},41244:{"value":"A11C","name":"YI SYLLABLE TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA11C"},41245:{"value":"A11D","name":"YI SYLLABLE TIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA11D"},41246:{"value":"A11E","name":"YI SYLLABLE TIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA11E"},41247:{"value":"A11F","name":"YI SYLLABLE TIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA11F"},41248:{"value":"A120","name":"YI SYLLABLE TIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA120"},41249:{"value":"A121","name":"YI SYLLABLE TAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA121"},41250:{"value":"A122","name":"YI SYLLABLE TAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA122"},41251:{"value":"A123","name":"YI SYLLABLE TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA123"},41252:{"value":"A124","name":"YI SYLLABLE TAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA124"},41253:{"value":"A125","name":"YI SYLLABLE TUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA125"},41254:{"value":"A126","name":"YI SYLLABLE TUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA126"},41255:{"value":"A127","name":"YI SYLLABLE TUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA127"},41256:{"value":"A128","name":"YI SYLLABLE TUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA128"},41257:{"value":"A129","name":"YI SYLLABLE TOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA129"},41258:{"value":"A12A","name":"YI SYLLABLE TOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA12A"},41259:{"value":"A12B","name":"YI SYLLABLE TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA12B"},41260:{"value":"A12C","name":"YI SYLLABLE TOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA12C"},41261:{"value":"A12D","name":"YI SYLLABLE TEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA12D"},41262:{"value":"A12E","name":"YI SYLLABLE TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA12E"},41263:{"value":"A12F","name":"YI SYLLABLE TEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA12F"},41264:{"value":"A130","name":"YI SYLLABLE TUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA130"},41265:{"value":"A131","name":"YI SYLLABLE TUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA131"},41266:{"value":"A132","name":"YI SYLLABLE TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA132"},41267:{"value":"A133","name":"YI SYLLABLE TUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA133"},41268:{"value":"A134","name":"YI SYLLABLE TURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA134"},41269:{"value":"A135","name":"YI SYLLABLE TUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA135"},41270:{"value":"A136","name":"YI SYLLABLE DDIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA136"},41271:{"value":"A137","name":"YI SYLLABLE DDIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA137"},41272:{"value":"A138","name":"YI SYLLABLE DDI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA138"},41273:{"value":"A139","name":"YI SYLLABLE DDIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA139"},41274:{"value":"A13A","name":"YI SYLLABLE DDIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA13A"},41275:{"value":"A13B","name":"YI SYLLABLE DDIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA13B"},41276:{"value":"A13C","name":"YI SYLLABLE DDIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA13C"},41277:{"value":"A13D","name":"YI SYLLABLE DDAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA13D"},41278:{"value":"A13E","name":"YI SYLLABLE DDAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA13E"},41279:{"value":"A13F","name":"YI SYLLABLE DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA13F"},41280:{"value":"A140","name":"YI SYLLABLE DDAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA140"},41281:{"value":"A141","name":"YI SYLLABLE DDUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA141"},41282:{"value":"A142","name":"YI SYLLABLE DDUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA142"},41283:{"value":"A143","name":"YI SYLLABLE DDUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA143"},41284:{"value":"A144","name":"YI SYLLABLE DDOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA144"},41285:{"value":"A145","name":"YI SYLLABLE DDOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA145"},41286:{"value":"A146","name":"YI SYLLABLE DDO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA146"},41287:{"value":"A147","name":"YI SYLLABLE DDOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA147"},41288:{"value":"A148","name":"YI SYLLABLE DDEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA148"},41289:{"value":"A149","name":"YI SYLLABLE DDE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA149"},41290:{"value":"A14A","name":"YI SYLLABLE DDEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA14A"},41291:{"value":"A14B","name":"YI SYLLABLE DDUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA14B"},41292:{"value":"A14C","name":"YI SYLLABLE DDUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA14C"},41293:{"value":"A14D","name":"YI SYLLABLE DDU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA14D"},41294:{"value":"A14E","name":"YI SYLLABLE DDUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA14E"},41295:{"value":"A14F","name":"YI SYLLABLE DDURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA14F"},41296:{"value":"A150","name":"YI SYLLABLE DDUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA150"},41297:{"value":"A151","name":"YI SYLLABLE NDIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA151"},41298:{"value":"A152","name":"YI SYLLABLE NDIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA152"},41299:{"value":"A153","name":"YI SYLLABLE NDI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA153"},41300:{"value":"A154","name":"YI SYLLABLE NDIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA154"},41301:{"value":"A155","name":"YI SYLLABLE NDIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA155"},41302:{"value":"A156","name":"YI SYLLABLE NDIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA156"},41303:{"value":"A157","name":"YI SYLLABLE NDAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA157"},41304:{"value":"A158","name":"YI SYLLABLE NDAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA158"},41305:{"value":"A159","name":"YI SYLLABLE NDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA159"},41306:{"value":"A15A","name":"YI SYLLABLE NDAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA15A"},41307:{"value":"A15B","name":"YI SYLLABLE NDOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA15B"},41308:{"value":"A15C","name":"YI SYLLABLE NDOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA15C"},41309:{"value":"A15D","name":"YI SYLLABLE NDO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA15D"},41310:{"value":"A15E","name":"YI SYLLABLE NDOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA15E"},41311:{"value":"A15F","name":"YI SYLLABLE NDEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA15F"},41312:{"value":"A160","name":"YI SYLLABLE NDE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA160"},41313:{"value":"A161","name":"YI SYLLABLE NDEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA161"},41314:{"value":"A162","name":"YI SYLLABLE NDUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA162"},41315:{"value":"A163","name":"YI SYLLABLE NDUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA163"},41316:{"value":"A164","name":"YI SYLLABLE NDU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA164"},41317:{"value":"A165","name":"YI SYLLABLE NDUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA165"},41318:{"value":"A166","name":"YI SYLLABLE NDURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA166"},41319:{"value":"A167","name":"YI SYLLABLE NDUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA167"},41320:{"value":"A168","name":"YI SYLLABLE HNIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA168"},41321:{"value":"A169","name":"YI SYLLABLE HNIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA169"},41322:{"value":"A16A","name":"YI SYLLABLE HNI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA16A"},41323:{"value":"A16B","name":"YI SYLLABLE HNIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA16B"},41324:{"value":"A16C","name":"YI SYLLABLE HNIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA16C"},41325:{"value":"A16D","name":"YI SYLLABLE HNIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA16D"},41326:{"value":"A16E","name":"YI SYLLABLE HNIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA16E"},41327:{"value":"A16F","name":"YI SYLLABLE HNIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA16F"},41328:{"value":"A170","name":"YI SYLLABLE HNAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA170"},41329:{"value":"A171","name":"YI SYLLABLE HNAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA171"},41330:{"value":"A172","name":"YI SYLLABLE HNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA172"},41331:{"value":"A173","name":"YI SYLLABLE HNAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA173"},41332:{"value":"A174","name":"YI SYLLABLE HNUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA174"},41333:{"value":"A175","name":"YI SYLLABLE HNUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA175"},41334:{"value":"A176","name":"YI SYLLABLE HNOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA176"},41335:{"value":"A177","name":"YI SYLLABLE HNOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA177"},41336:{"value":"A178","name":"YI SYLLABLE HNOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA178"},41337:{"value":"A179","name":"YI SYLLABLE HNEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA179"},41338:{"value":"A17A","name":"YI SYLLABLE HNE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA17A"},41339:{"value":"A17B","name":"YI SYLLABLE HNEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA17B"},41340:{"value":"A17C","name":"YI SYLLABLE HNUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA17C"},41341:{"value":"A17D","name":"YI SYLLABLE NIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA17D"},41342:{"value":"A17E","name":"YI SYLLABLE NIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA17E"},41343:{"value":"A17F","name":"YI SYLLABLE NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA17F"},41344:{"value":"A180","name":"YI SYLLABLE NIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA180"},41345:{"value":"A181","name":"YI SYLLABLE NIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA181"},41346:{"value":"A182","name":"YI SYLLABLE NIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA182"},41347:{"value":"A183","name":"YI SYLLABLE NIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA183"},41348:{"value":"A184","name":"YI SYLLABLE NAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA184"},41349:{"value":"A185","name":"YI SYLLABLE NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA185"},41350:{"value":"A186","name":"YI SYLLABLE NAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA186"},41351:{"value":"A187","name":"YI SYLLABLE NUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA187"},41352:{"value":"A188","name":"YI SYLLABLE NUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA188"},41353:{"value":"A189","name":"YI SYLLABLE NUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA189"},41354:{"value":"A18A","name":"YI SYLLABLE NOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA18A"},41355:{"value":"A18B","name":"YI SYLLABLE NOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA18B"},41356:{"value":"A18C","name":"YI SYLLABLE NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA18C"},41357:{"value":"A18D","name":"YI SYLLABLE NOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA18D"},41358:{"value":"A18E","name":"YI SYLLABLE NEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA18E"},41359:{"value":"A18F","name":"YI SYLLABLE NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA18F"},41360:{"value":"A190","name":"YI SYLLABLE NEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA190"},41361:{"value":"A191","name":"YI SYLLABLE NUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA191"},41362:{"value":"A192","name":"YI SYLLABLE NUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA192"},41363:{"value":"A193","name":"YI SYLLABLE NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA193"},41364:{"value":"A194","name":"YI SYLLABLE NUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA194"},41365:{"value":"A195","name":"YI SYLLABLE NURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA195"},41366:{"value":"A196","name":"YI SYLLABLE NUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA196"},41367:{"value":"A197","name":"YI SYLLABLE HLIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA197"},41368:{"value":"A198","name":"YI SYLLABLE HLIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA198"},41369:{"value":"A199","name":"YI SYLLABLE HLI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA199"},41370:{"value":"A19A","name":"YI SYLLABLE HLIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA19A"},41371:{"value":"A19B","name":"YI SYLLABLE HLIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA19B"},41372:{"value":"A19C","name":"YI SYLLABLE HLIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA19C"},41373:{"value":"A19D","name":"YI SYLLABLE HLIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA19D"},41374:{"value":"A19E","name":"YI SYLLABLE HLAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA19E"},41375:{"value":"A19F","name":"YI SYLLABLE HLAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA19F"},41376:{"value":"A1A0","name":"YI SYLLABLE HLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1A0"},41377:{"value":"A1A1","name":"YI SYLLABLE HLAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1A1"},41378:{"value":"A1A2","name":"YI SYLLABLE HLUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1A2"},41379:{"value":"A1A3","name":"YI SYLLABLE HLUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1A3"},41380:{"value":"A1A4","name":"YI SYLLABLE HLUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1A4"},41381:{"value":"A1A5","name":"YI SYLLABLE HLOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1A5"},41382:{"value":"A1A6","name":"YI SYLLABLE HLO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1A6"},41383:{"value":"A1A7","name":"YI SYLLABLE HLOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1A7"},41384:{"value":"A1A8","name":"YI SYLLABLE HLEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1A8"},41385:{"value":"A1A9","name":"YI SYLLABLE HLE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1A9"},41386:{"value":"A1AA","name":"YI SYLLABLE HLEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1AA"},41387:{"value":"A1AB","name":"YI SYLLABLE HLUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1AB"},41388:{"value":"A1AC","name":"YI SYLLABLE HLUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1AC"},41389:{"value":"A1AD","name":"YI SYLLABLE HLU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1AD"},41390:{"value":"A1AE","name":"YI SYLLABLE HLUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1AE"},41391:{"value":"A1AF","name":"YI SYLLABLE HLURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1AF"},41392:{"value":"A1B0","name":"YI SYLLABLE HLUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1B0"},41393:{"value":"A1B1","name":"YI SYLLABLE HLYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1B1"},41394:{"value":"A1B2","name":"YI SYLLABLE HLYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1B2"},41395:{"value":"A1B3","name":"YI SYLLABLE HLY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1B3"},41396:{"value":"A1B4","name":"YI SYLLABLE HLYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1B4"},41397:{"value":"A1B5","name":"YI SYLLABLE HLYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1B5"},41398:{"value":"A1B6","name":"YI SYLLABLE HLYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1B6"},41399:{"value":"A1B7","name":"YI SYLLABLE LIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1B7"},41400:{"value":"A1B8","name":"YI SYLLABLE LIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1B8"},41401:{"value":"A1B9","name":"YI SYLLABLE LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1B9"},41402:{"value":"A1BA","name":"YI SYLLABLE LIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1BA"},41403:{"value":"A1BB","name":"YI SYLLABLE LIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1BB"},41404:{"value":"A1BC","name":"YI SYLLABLE LIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1BC"},41405:{"value":"A1BD","name":"YI SYLLABLE LIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1BD"},41406:{"value":"A1BE","name":"YI SYLLABLE LIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1BE"},41407:{"value":"A1BF","name":"YI SYLLABLE LAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1BF"},41408:{"value":"A1C0","name":"YI SYLLABLE LAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1C0"},41409:{"value":"A1C1","name":"YI SYLLABLE LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1C1"},41410:{"value":"A1C2","name":"YI SYLLABLE LAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1C2"},41411:{"value":"A1C3","name":"YI SYLLABLE LUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1C3"},41412:{"value":"A1C4","name":"YI SYLLABLE LUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1C4"},41413:{"value":"A1C5","name":"YI SYLLABLE LUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1C5"},41414:{"value":"A1C6","name":"YI SYLLABLE LUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1C6"},41415:{"value":"A1C7","name":"YI SYLLABLE LOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1C7"},41416:{"value":"A1C8","name":"YI SYLLABLE LOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1C8"},41417:{"value":"A1C9","name":"YI SYLLABLE LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1C9"},41418:{"value":"A1CA","name":"YI SYLLABLE LOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1CA"},41419:{"value":"A1CB","name":"YI SYLLABLE LEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1CB"},41420:{"value":"A1CC","name":"YI SYLLABLE LE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1CC"},41421:{"value":"A1CD","name":"YI SYLLABLE LEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1CD"},41422:{"value":"A1CE","name":"YI SYLLABLE LUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1CE"},41423:{"value":"A1CF","name":"YI SYLLABLE LUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1CF"},41424:{"value":"A1D0","name":"YI SYLLABLE LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1D0"},41425:{"value":"A1D1","name":"YI SYLLABLE LUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1D1"},41426:{"value":"A1D2","name":"YI SYLLABLE LURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1D2"},41427:{"value":"A1D3","name":"YI SYLLABLE LUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1D3"},41428:{"value":"A1D4","name":"YI SYLLABLE LYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1D4"},41429:{"value":"A1D5","name":"YI SYLLABLE LYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1D5"},41430:{"value":"A1D6","name":"YI SYLLABLE LY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1D6"},41431:{"value":"A1D7","name":"YI SYLLABLE LYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1D7"},41432:{"value":"A1D8","name":"YI SYLLABLE LYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1D8"},41433:{"value":"A1D9","name":"YI SYLLABLE LYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1D9"},41434:{"value":"A1DA","name":"YI SYLLABLE GIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1DA"},41435:{"value":"A1DB","name":"YI SYLLABLE GIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1DB"},41436:{"value":"A1DC","name":"YI SYLLABLE GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1DC"},41437:{"value":"A1DD","name":"YI SYLLABLE GIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1DD"},41438:{"value":"A1DE","name":"YI SYLLABLE GIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1DE"},41439:{"value":"A1DF","name":"YI SYLLABLE GIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1DF"},41440:{"value":"A1E0","name":"YI SYLLABLE GIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1E0"},41441:{"value":"A1E1","name":"YI SYLLABLE GIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1E1"},41442:{"value":"A1E2","name":"YI SYLLABLE GAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1E2"},41443:{"value":"A1E3","name":"YI SYLLABLE GAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1E3"},41444:{"value":"A1E4","name":"YI SYLLABLE GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1E4"},41445:{"value":"A1E5","name":"YI SYLLABLE GAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1E5"},41446:{"value":"A1E6","name":"YI SYLLABLE GUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1E6"},41447:{"value":"A1E7","name":"YI SYLLABLE GUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1E7"},41448:{"value":"A1E8","name":"YI SYLLABLE GUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1E8"},41449:{"value":"A1E9","name":"YI SYLLABLE GUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1E9"},41450:{"value":"A1EA","name":"YI SYLLABLE GOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1EA"},41451:{"value":"A1EB","name":"YI SYLLABLE GOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1EB"},41452:{"value":"A1EC","name":"YI SYLLABLE GO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1EC"},41453:{"value":"A1ED","name":"YI SYLLABLE GOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1ED"},41454:{"value":"A1EE","name":"YI SYLLABLE GET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1EE"},41455:{"value":"A1EF","name":"YI SYLLABLE GEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1EF"},41456:{"value":"A1F0","name":"YI SYLLABLE GE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1F0"},41457:{"value":"A1F1","name":"YI SYLLABLE GEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1F1"},41458:{"value":"A1F2","name":"YI SYLLABLE GUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1F2"},41459:{"value":"A1F3","name":"YI SYLLABLE GUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1F3"},41460:{"value":"A1F4","name":"YI SYLLABLE GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1F4"},41461:{"value":"A1F5","name":"YI SYLLABLE GUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1F5"},41462:{"value":"A1F6","name":"YI SYLLABLE GURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1F6"},41463:{"value":"A1F7","name":"YI SYLLABLE GUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1F7"},41464:{"value":"A1F8","name":"YI SYLLABLE KIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1F8"},41465:{"value":"A1F9","name":"YI SYLLABLE KIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1F9"},41466:{"value":"A1FA","name":"YI SYLLABLE KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1FA"},41467:{"value":"A1FB","name":"YI SYLLABLE KIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1FB"},41468:{"value":"A1FC","name":"YI SYLLABLE KIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1FC"},41469:{"value":"A1FD","name":"YI SYLLABLE KIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1FD"},41470:{"value":"A1FE","name":"YI SYLLABLE KIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1FE"},41471:{"value":"A1FF","name":"YI SYLLABLE KAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA1FF"},41472:{"value":"A200","name":"YI SYLLABLE KAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA200"},41473:{"value":"A201","name":"YI SYLLABLE KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA201"},41474:{"value":"A202","name":"YI SYLLABLE KAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA202"},41475:{"value":"A203","name":"YI SYLLABLE KUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA203"},41476:{"value":"A204","name":"YI SYLLABLE KUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA204"},41477:{"value":"A205","name":"YI SYLLABLE KUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA205"},41478:{"value":"A206","name":"YI SYLLABLE KOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA206"},41479:{"value":"A207","name":"YI SYLLABLE KOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA207"},41480:{"value":"A208","name":"YI SYLLABLE KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA208"},41481:{"value":"A209","name":"YI SYLLABLE KOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA209"},41482:{"value":"A20A","name":"YI SYLLABLE KET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA20A"},41483:{"value":"A20B","name":"YI SYLLABLE KEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA20B"},41484:{"value":"A20C","name":"YI SYLLABLE KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA20C"},41485:{"value":"A20D","name":"YI SYLLABLE KEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA20D"},41486:{"value":"A20E","name":"YI SYLLABLE KUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA20E"},41487:{"value":"A20F","name":"YI SYLLABLE KUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA20F"},41488:{"value":"A210","name":"YI SYLLABLE KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA210"},41489:{"value":"A211","name":"YI SYLLABLE KUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA211"},41490:{"value":"A212","name":"YI SYLLABLE KURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA212"},41491:{"value":"A213","name":"YI SYLLABLE KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA213"},41492:{"value":"A214","name":"YI SYLLABLE GGIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA214"},41493:{"value":"A215","name":"YI SYLLABLE GGIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA215"},41494:{"value":"A216","name":"YI SYLLABLE GGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA216"},41495:{"value":"A217","name":"YI SYLLABLE GGIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA217"},41496:{"value":"A218","name":"YI SYLLABLE GGIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA218"},41497:{"value":"A219","name":"YI SYLLABLE GGIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA219"},41498:{"value":"A21A","name":"YI SYLLABLE GGAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA21A"},41499:{"value":"A21B","name":"YI SYLLABLE GGAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA21B"},41500:{"value":"A21C","name":"YI SYLLABLE GGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA21C"},41501:{"value":"A21D","name":"YI SYLLABLE GGAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA21D"},41502:{"value":"A21E","name":"YI SYLLABLE GGUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA21E"},41503:{"value":"A21F","name":"YI SYLLABLE GGUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA21F"},41504:{"value":"A220","name":"YI SYLLABLE GGUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA220"},41505:{"value":"A221","name":"YI SYLLABLE GGUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA221"},41506:{"value":"A222","name":"YI SYLLABLE GGOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA222"},41507:{"value":"A223","name":"YI SYLLABLE GGOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA223"},41508:{"value":"A224","name":"YI SYLLABLE GGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA224"},41509:{"value":"A225","name":"YI SYLLABLE GGOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA225"},41510:{"value":"A226","name":"YI SYLLABLE GGET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA226"},41511:{"value":"A227","name":"YI SYLLABLE GGEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA227"},41512:{"value":"A228","name":"YI SYLLABLE GGE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA228"},41513:{"value":"A229","name":"YI SYLLABLE GGEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA229"},41514:{"value":"A22A","name":"YI SYLLABLE GGUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA22A"},41515:{"value":"A22B","name":"YI SYLLABLE GGUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA22B"},41516:{"value":"A22C","name":"YI SYLLABLE GGU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA22C"},41517:{"value":"A22D","name":"YI SYLLABLE GGUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA22D"},41518:{"value":"A22E","name":"YI SYLLABLE GGURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA22E"},41519:{"value":"A22F","name":"YI SYLLABLE GGUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA22F"},41520:{"value":"A230","name":"YI SYLLABLE MGIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA230"},41521:{"value":"A231","name":"YI SYLLABLE MGIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA231"},41522:{"value":"A232","name":"YI SYLLABLE MGAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA232"},41523:{"value":"A233","name":"YI SYLLABLE MGAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA233"},41524:{"value":"A234","name":"YI SYLLABLE MGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA234"},41525:{"value":"A235","name":"YI SYLLABLE MGAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA235"},41526:{"value":"A236","name":"YI SYLLABLE MGUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA236"},41527:{"value":"A237","name":"YI SYLLABLE MGUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA237"},41528:{"value":"A238","name":"YI SYLLABLE MGUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA238"},41529:{"value":"A239","name":"YI SYLLABLE MGOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA239"},41530:{"value":"A23A","name":"YI SYLLABLE MGOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA23A"},41531:{"value":"A23B","name":"YI SYLLABLE MGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA23B"},41532:{"value":"A23C","name":"YI SYLLABLE MGOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA23C"},41533:{"value":"A23D","name":"YI SYLLABLE MGEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA23D"},41534:{"value":"A23E","name":"YI SYLLABLE MGE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA23E"},41535:{"value":"A23F","name":"YI SYLLABLE MGEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA23F"},41536:{"value":"A240","name":"YI SYLLABLE MGUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA240"},41537:{"value":"A241","name":"YI SYLLABLE MGUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA241"},41538:{"value":"A242","name":"YI SYLLABLE MGU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA242"},41539:{"value":"A243","name":"YI SYLLABLE MGUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA243"},41540:{"value":"A244","name":"YI SYLLABLE MGURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA244"},41541:{"value":"A245","name":"YI SYLLABLE MGUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA245"},41542:{"value":"A246","name":"YI SYLLABLE HXIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA246"},41543:{"value":"A247","name":"YI SYLLABLE HXIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA247"},41544:{"value":"A248","name":"YI SYLLABLE HXI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA248"},41545:{"value":"A249","name":"YI SYLLABLE HXIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA249"},41546:{"value":"A24A","name":"YI SYLLABLE HXIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA24A"},41547:{"value":"A24B","name":"YI SYLLABLE HXIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA24B"},41548:{"value":"A24C","name":"YI SYLLABLE HXIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA24C"},41549:{"value":"A24D","name":"YI SYLLABLE HXIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA24D"},41550:{"value":"A24E","name":"YI SYLLABLE HXAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA24E"},41551:{"value":"A24F","name":"YI SYLLABLE HXAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA24F"},41552:{"value":"A250","name":"YI SYLLABLE HXA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA250"},41553:{"value":"A251","name":"YI SYLLABLE HXAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA251"},41554:{"value":"A252","name":"YI SYLLABLE HXUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA252"},41555:{"value":"A253","name":"YI SYLLABLE HXUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA253"},41556:{"value":"A254","name":"YI SYLLABLE HXUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA254"},41557:{"value":"A255","name":"YI SYLLABLE HXUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA255"},41558:{"value":"A256","name":"YI SYLLABLE HXOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA256"},41559:{"value":"A257","name":"YI SYLLABLE HXOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA257"},41560:{"value":"A258","name":"YI SYLLABLE HXO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA258"},41561:{"value":"A259","name":"YI SYLLABLE HXOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA259"},41562:{"value":"A25A","name":"YI SYLLABLE HXEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA25A"},41563:{"value":"A25B","name":"YI SYLLABLE HXE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA25B"},41564:{"value":"A25C","name":"YI SYLLABLE HXEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA25C"},41565:{"value":"A25D","name":"YI SYLLABLE NGIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA25D"},41566:{"value":"A25E","name":"YI SYLLABLE NGIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA25E"},41567:{"value":"A25F","name":"YI SYLLABLE NGIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA25F"},41568:{"value":"A260","name":"YI SYLLABLE NGAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA260"},41569:{"value":"A261","name":"YI SYLLABLE NGAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA261"},41570:{"value":"A262","name":"YI SYLLABLE NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA262"},41571:{"value":"A263","name":"YI SYLLABLE NGAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA263"},41572:{"value":"A264","name":"YI SYLLABLE NGUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA264"},41573:{"value":"A265","name":"YI SYLLABLE NGUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA265"},41574:{"value":"A266","name":"YI SYLLABLE NGUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA266"},41575:{"value":"A267","name":"YI SYLLABLE NGOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA267"},41576:{"value":"A268","name":"YI SYLLABLE NGOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA268"},41577:{"value":"A269","name":"YI SYLLABLE NGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA269"},41578:{"value":"A26A","name":"YI SYLLABLE NGOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA26A"},41579:{"value":"A26B","name":"YI SYLLABLE NGEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA26B"},41580:{"value":"A26C","name":"YI SYLLABLE NGE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA26C"},41581:{"value":"A26D","name":"YI SYLLABLE NGEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA26D"},41582:{"value":"A26E","name":"YI SYLLABLE HIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA26E"},41583:{"value":"A26F","name":"YI SYLLABLE HIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA26F"},41584:{"value":"A270","name":"YI SYLLABLE HIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA270"},41585:{"value":"A271","name":"YI SYLLABLE HAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA271"},41586:{"value":"A272","name":"YI SYLLABLE HAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA272"},41587:{"value":"A273","name":"YI SYLLABLE HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA273"},41588:{"value":"A274","name":"YI SYLLABLE HAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA274"},41589:{"value":"A275","name":"YI SYLLABLE HUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA275"},41590:{"value":"A276","name":"YI SYLLABLE HUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA276"},41591:{"value":"A277","name":"YI SYLLABLE HUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA277"},41592:{"value":"A278","name":"YI SYLLABLE HUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA278"},41593:{"value":"A279","name":"YI SYLLABLE HOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA279"},41594:{"value":"A27A","name":"YI SYLLABLE HOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA27A"},41595:{"value":"A27B","name":"YI SYLLABLE HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA27B"},41596:{"value":"A27C","name":"YI SYLLABLE HOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA27C"},41597:{"value":"A27D","name":"YI SYLLABLE HEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA27D"},41598:{"value":"A27E","name":"YI SYLLABLE HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA27E"},41599:{"value":"A27F","name":"YI SYLLABLE HEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA27F"},41600:{"value":"A280","name":"YI SYLLABLE WAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA280"},41601:{"value":"A281","name":"YI SYLLABLE WAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA281"},41602:{"value":"A282","name":"YI SYLLABLE WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA282"},41603:{"value":"A283","name":"YI SYLLABLE WAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA283"},41604:{"value":"A284","name":"YI SYLLABLE WUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA284"},41605:{"value":"A285","name":"YI SYLLABLE WUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA285"},41606:{"value":"A286","name":"YI SYLLABLE WUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA286"},41607:{"value":"A287","name":"YI SYLLABLE WOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA287"},41608:{"value":"A288","name":"YI SYLLABLE WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA288"},41609:{"value":"A289","name":"YI SYLLABLE WOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA289"},41610:{"value":"A28A","name":"YI SYLLABLE WEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA28A"},41611:{"value":"A28B","name":"YI SYLLABLE WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA28B"},41612:{"value":"A28C","name":"YI SYLLABLE WEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA28C"},41613:{"value":"A28D","name":"YI SYLLABLE ZIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA28D"},41614:{"value":"A28E","name":"YI SYLLABLE ZIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA28E"},41615:{"value":"A28F","name":"YI SYLLABLE ZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA28F"},41616:{"value":"A290","name":"YI SYLLABLE ZIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA290"},41617:{"value":"A291","name":"YI SYLLABLE ZIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA291"},41618:{"value":"A292","name":"YI SYLLABLE ZIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA292"},41619:{"value":"A293","name":"YI SYLLABLE ZIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA293"},41620:{"value":"A294","name":"YI SYLLABLE ZAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA294"},41621:{"value":"A295","name":"YI SYLLABLE ZAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA295"},41622:{"value":"A296","name":"YI SYLLABLE ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA296"},41623:{"value":"A297","name":"YI SYLLABLE ZAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA297"},41624:{"value":"A298","name":"YI SYLLABLE ZUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA298"},41625:{"value":"A299","name":"YI SYLLABLE ZUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA299"},41626:{"value":"A29A","name":"YI SYLLABLE ZUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA29A"},41627:{"value":"A29B","name":"YI SYLLABLE ZOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA29B"},41628:{"value":"A29C","name":"YI SYLLABLE ZOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA29C"},41629:{"value":"A29D","name":"YI SYLLABLE ZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA29D"},41630:{"value":"A29E","name":"YI SYLLABLE ZOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA29E"},41631:{"value":"A29F","name":"YI SYLLABLE ZEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA29F"},41632:{"value":"A2A0","name":"YI SYLLABLE ZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2A0"},41633:{"value":"A2A1","name":"YI SYLLABLE ZEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2A1"},41634:{"value":"A2A2","name":"YI SYLLABLE ZUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2A2"},41635:{"value":"A2A3","name":"YI SYLLABLE ZUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2A3"},41636:{"value":"A2A4","name":"YI SYLLABLE ZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2A4"},41637:{"value":"A2A5","name":"YI SYLLABLE ZUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2A5"},41638:{"value":"A2A6","name":"YI SYLLABLE ZURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2A6"},41639:{"value":"A2A7","name":"YI SYLLABLE ZUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2A7"},41640:{"value":"A2A8","name":"YI SYLLABLE ZYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2A8"},41641:{"value":"A2A9","name":"YI SYLLABLE ZYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2A9"},41642:{"value":"A2AA","name":"YI SYLLABLE ZY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2AA"},41643:{"value":"A2AB","name":"YI SYLLABLE ZYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2AB"},41644:{"value":"A2AC","name":"YI SYLLABLE ZYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2AC"},41645:{"value":"A2AD","name":"YI SYLLABLE ZYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2AD"},41646:{"value":"A2AE","name":"YI SYLLABLE CIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2AE"},41647:{"value":"A2AF","name":"YI SYLLABLE CIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2AF"},41648:{"value":"A2B0","name":"YI SYLLABLE CI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2B0"},41649:{"value":"A2B1","name":"YI SYLLABLE CIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2B1"},41650:{"value":"A2B2","name":"YI SYLLABLE CIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2B2"},41651:{"value":"A2B3","name":"YI SYLLABLE CIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2B3"},41652:{"value":"A2B4","name":"YI SYLLABLE CIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2B4"},41653:{"value":"A2B5","name":"YI SYLLABLE CIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2B5"},41654:{"value":"A2B6","name":"YI SYLLABLE CAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2B6"},41655:{"value":"A2B7","name":"YI SYLLABLE CAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2B7"},41656:{"value":"A2B8","name":"YI SYLLABLE CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2B8"},41657:{"value":"A2B9","name":"YI SYLLABLE CAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2B9"},41658:{"value":"A2BA","name":"YI SYLLABLE CUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2BA"},41659:{"value":"A2BB","name":"YI SYLLABLE CUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2BB"},41660:{"value":"A2BC","name":"YI SYLLABLE CUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2BC"},41661:{"value":"A2BD","name":"YI SYLLABLE COT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2BD"},41662:{"value":"A2BE","name":"YI SYLLABLE COX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2BE"},41663:{"value":"A2BF","name":"YI SYLLABLE CO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2BF"},41664:{"value":"A2C0","name":"YI SYLLABLE COP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2C0"},41665:{"value":"A2C1","name":"YI SYLLABLE CEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2C1"},41666:{"value":"A2C2","name":"YI SYLLABLE CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2C2"},41667:{"value":"A2C3","name":"YI SYLLABLE CEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2C3"},41668:{"value":"A2C4","name":"YI SYLLABLE CUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2C4"},41669:{"value":"A2C5","name":"YI SYLLABLE CUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2C5"},41670:{"value":"A2C6","name":"YI SYLLABLE CU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2C6"},41671:{"value":"A2C7","name":"YI SYLLABLE CUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2C7"},41672:{"value":"A2C8","name":"YI SYLLABLE CURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2C8"},41673:{"value":"A2C9","name":"YI SYLLABLE CUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2C9"},41674:{"value":"A2CA","name":"YI SYLLABLE CYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2CA"},41675:{"value":"A2CB","name":"YI SYLLABLE CYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2CB"},41676:{"value":"A2CC","name":"YI SYLLABLE CY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2CC"},41677:{"value":"A2CD","name":"YI SYLLABLE CYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2CD"},41678:{"value":"A2CE","name":"YI SYLLABLE CYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2CE"},41679:{"value":"A2CF","name":"YI SYLLABLE CYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2CF"},41680:{"value":"A2D0","name":"YI SYLLABLE ZZIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2D0"},41681:{"value":"A2D1","name":"YI SYLLABLE ZZIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2D1"},41682:{"value":"A2D2","name":"YI SYLLABLE ZZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2D2"},41683:{"value":"A2D3","name":"YI SYLLABLE ZZIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2D3"},41684:{"value":"A2D4","name":"YI SYLLABLE ZZIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2D4"},41685:{"value":"A2D5","name":"YI SYLLABLE ZZIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2D5"},41686:{"value":"A2D6","name":"YI SYLLABLE ZZIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2D6"},41687:{"value":"A2D7","name":"YI SYLLABLE ZZIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2D7"},41688:{"value":"A2D8","name":"YI SYLLABLE ZZAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2D8"},41689:{"value":"A2D9","name":"YI SYLLABLE ZZAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2D9"},41690:{"value":"A2DA","name":"YI SYLLABLE ZZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2DA"},41691:{"value":"A2DB","name":"YI SYLLABLE ZZAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2DB"},41692:{"value":"A2DC","name":"YI SYLLABLE ZZOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2DC"},41693:{"value":"A2DD","name":"YI SYLLABLE ZZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2DD"},41694:{"value":"A2DE","name":"YI SYLLABLE ZZOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2DE"},41695:{"value":"A2DF","name":"YI SYLLABLE ZZEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2DF"},41696:{"value":"A2E0","name":"YI SYLLABLE ZZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2E0"},41697:{"value":"A2E1","name":"YI SYLLABLE ZZEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2E1"},41698:{"value":"A2E2","name":"YI SYLLABLE ZZUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2E2"},41699:{"value":"A2E3","name":"YI SYLLABLE ZZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2E3"},41700:{"value":"A2E4","name":"YI SYLLABLE ZZUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2E4"},41701:{"value":"A2E5","name":"YI SYLLABLE ZZURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2E5"},41702:{"value":"A2E6","name":"YI SYLLABLE ZZUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2E6"},41703:{"value":"A2E7","name":"YI SYLLABLE ZZYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2E7"},41704:{"value":"A2E8","name":"YI SYLLABLE ZZYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2E8"},41705:{"value":"A2E9","name":"YI SYLLABLE ZZY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2E9"},41706:{"value":"A2EA","name":"YI SYLLABLE ZZYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2EA"},41707:{"value":"A2EB","name":"YI SYLLABLE ZZYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2EB"},41708:{"value":"A2EC","name":"YI SYLLABLE ZZYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2EC"},41709:{"value":"A2ED","name":"YI SYLLABLE NZIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2ED"},41710:{"value":"A2EE","name":"YI SYLLABLE NZIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2EE"},41711:{"value":"A2EF","name":"YI SYLLABLE NZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2EF"},41712:{"value":"A2F0","name":"YI SYLLABLE NZIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2F0"},41713:{"value":"A2F1","name":"YI SYLLABLE NZIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2F1"},41714:{"value":"A2F2","name":"YI SYLLABLE NZIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2F2"},41715:{"value":"A2F3","name":"YI SYLLABLE NZIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2F3"},41716:{"value":"A2F4","name":"YI SYLLABLE NZAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2F4"},41717:{"value":"A2F5","name":"YI SYLLABLE NZAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2F5"},41718:{"value":"A2F6","name":"YI SYLLABLE NZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2F6"},41719:{"value":"A2F7","name":"YI SYLLABLE NZAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2F7"},41720:{"value":"A2F8","name":"YI SYLLABLE NZUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2F8"},41721:{"value":"A2F9","name":"YI SYLLABLE NZUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2F9"},41722:{"value":"A2FA","name":"YI SYLLABLE NZOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2FA"},41723:{"value":"A2FB","name":"YI SYLLABLE NZOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2FB"},41724:{"value":"A2FC","name":"YI SYLLABLE NZEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2FC"},41725:{"value":"A2FD","name":"YI SYLLABLE NZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2FD"},41726:{"value":"A2FE","name":"YI SYLLABLE NZUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2FE"},41727:{"value":"A2FF","name":"YI SYLLABLE NZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA2FF"},41728:{"value":"A300","name":"YI SYLLABLE NZUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA300"},41729:{"value":"A301","name":"YI SYLLABLE NZURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA301"},41730:{"value":"A302","name":"YI SYLLABLE NZUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA302"},41731:{"value":"A303","name":"YI SYLLABLE NZYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA303"},41732:{"value":"A304","name":"YI SYLLABLE NZYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA304"},41733:{"value":"A305","name":"YI SYLLABLE NZY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA305"},41734:{"value":"A306","name":"YI SYLLABLE NZYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA306"},41735:{"value":"A307","name":"YI SYLLABLE NZYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA307"},41736:{"value":"A308","name":"YI SYLLABLE NZYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA308"},41737:{"value":"A309","name":"YI SYLLABLE SIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA309"},41738:{"value":"A30A","name":"YI SYLLABLE SIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA30A"},41739:{"value":"A30B","name":"YI SYLLABLE SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA30B"},41740:{"value":"A30C","name":"YI SYLLABLE SIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA30C"},41741:{"value":"A30D","name":"YI SYLLABLE SIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA30D"},41742:{"value":"A30E","name":"YI SYLLABLE SIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA30E"},41743:{"value":"A30F","name":"YI SYLLABLE SIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA30F"},41744:{"value":"A310","name":"YI SYLLABLE SAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA310"},41745:{"value":"A311","name":"YI SYLLABLE SAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA311"},41746:{"value":"A312","name":"YI SYLLABLE SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA312"},41747:{"value":"A313","name":"YI SYLLABLE SAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA313"},41748:{"value":"A314","name":"YI SYLLABLE SUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA314"},41749:{"value":"A315","name":"YI SYLLABLE SUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA315"},41750:{"value":"A316","name":"YI SYLLABLE SUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA316"},41751:{"value":"A317","name":"YI SYLLABLE SOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA317"},41752:{"value":"A318","name":"YI SYLLABLE SOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA318"},41753:{"value":"A319","name":"YI SYLLABLE SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA319"},41754:{"value":"A31A","name":"YI SYLLABLE SOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA31A"},41755:{"value":"A31B","name":"YI SYLLABLE SEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA31B"},41756:{"value":"A31C","name":"YI SYLLABLE SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA31C"},41757:{"value":"A31D","name":"YI SYLLABLE SEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA31D"},41758:{"value":"A31E","name":"YI SYLLABLE SUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA31E"},41759:{"value":"A31F","name":"YI SYLLABLE SUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA31F"},41760:{"value":"A320","name":"YI SYLLABLE SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA320"},41761:{"value":"A321","name":"YI SYLLABLE SUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA321"},41762:{"value":"A322","name":"YI SYLLABLE SURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA322"},41763:{"value":"A323","name":"YI SYLLABLE SUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA323"},41764:{"value":"A324","name":"YI SYLLABLE SYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA324"},41765:{"value":"A325","name":"YI SYLLABLE SYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA325"},41766:{"value":"A326","name":"YI SYLLABLE SY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA326"},41767:{"value":"A327","name":"YI SYLLABLE SYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA327"},41768:{"value":"A328","name":"YI SYLLABLE SYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA328"},41769:{"value":"A329","name":"YI SYLLABLE SYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA329"},41770:{"value":"A32A","name":"YI SYLLABLE SSIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA32A"},41771:{"value":"A32B","name":"YI SYLLABLE SSIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA32B"},41772:{"value":"A32C","name":"YI SYLLABLE SSI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA32C"},41773:{"value":"A32D","name":"YI SYLLABLE SSIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA32D"},41774:{"value":"A32E","name":"YI SYLLABLE SSIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA32E"},41775:{"value":"A32F","name":"YI SYLLABLE SSIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA32F"},41776:{"value":"A330","name":"YI SYLLABLE SSIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA330"},41777:{"value":"A331","name":"YI SYLLABLE SSAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA331"},41778:{"value":"A332","name":"YI SYLLABLE SSAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA332"},41779:{"value":"A333","name":"YI SYLLABLE SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA333"},41780:{"value":"A334","name":"YI SYLLABLE SSAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA334"},41781:{"value":"A335","name":"YI SYLLABLE SSOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA335"},41782:{"value":"A336","name":"YI SYLLABLE SSOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA336"},41783:{"value":"A337","name":"YI SYLLABLE SSO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA337"},41784:{"value":"A338","name":"YI SYLLABLE SSOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA338"},41785:{"value":"A339","name":"YI SYLLABLE SSEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA339"},41786:{"value":"A33A","name":"YI SYLLABLE SSE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA33A"},41787:{"value":"A33B","name":"YI SYLLABLE SSEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA33B"},41788:{"value":"A33C","name":"YI SYLLABLE SSUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA33C"},41789:{"value":"A33D","name":"YI SYLLABLE SSUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA33D"},41790:{"value":"A33E","name":"YI SYLLABLE SSU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA33E"},41791:{"value":"A33F","name":"YI SYLLABLE SSUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA33F"},41792:{"value":"A340","name":"YI SYLLABLE SSYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA340"},41793:{"value":"A341","name":"YI SYLLABLE SSYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA341"},41794:{"value":"A342","name":"YI SYLLABLE SSY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA342"},41795:{"value":"A343","name":"YI SYLLABLE SSYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA343"},41796:{"value":"A344","name":"YI SYLLABLE SSYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA344"},41797:{"value":"A345","name":"YI SYLLABLE SSYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA345"},41798:{"value":"A346","name":"YI SYLLABLE ZHAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA346"},41799:{"value":"A347","name":"YI SYLLABLE ZHAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA347"},41800:{"value":"A348","name":"YI SYLLABLE ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA348"},41801:{"value":"A349","name":"YI SYLLABLE ZHAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA349"},41802:{"value":"A34A","name":"YI SYLLABLE ZHUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA34A"},41803:{"value":"A34B","name":"YI SYLLABLE ZHUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA34B"},41804:{"value":"A34C","name":"YI SYLLABLE ZHUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA34C"},41805:{"value":"A34D","name":"YI SYLLABLE ZHOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA34D"},41806:{"value":"A34E","name":"YI SYLLABLE ZHOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA34E"},41807:{"value":"A34F","name":"YI SYLLABLE ZHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA34F"},41808:{"value":"A350","name":"YI SYLLABLE ZHOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA350"},41809:{"value":"A351","name":"YI SYLLABLE ZHET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA351"},41810:{"value":"A352","name":"YI SYLLABLE ZHEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA352"},41811:{"value":"A353","name":"YI SYLLABLE ZHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA353"},41812:{"value":"A354","name":"YI SYLLABLE ZHEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA354"},41813:{"value":"A355","name":"YI SYLLABLE ZHUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA355"},41814:{"value":"A356","name":"YI SYLLABLE ZHUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA356"},41815:{"value":"A357","name":"YI SYLLABLE ZHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA357"},41816:{"value":"A358","name":"YI SYLLABLE ZHUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA358"},41817:{"value":"A359","name":"YI SYLLABLE ZHURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA359"},41818:{"value":"A35A","name":"YI SYLLABLE ZHUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA35A"},41819:{"value":"A35B","name":"YI SYLLABLE ZHYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA35B"},41820:{"value":"A35C","name":"YI SYLLABLE ZHYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA35C"},41821:{"value":"A35D","name":"YI SYLLABLE ZHY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA35D"},41822:{"value":"A35E","name":"YI SYLLABLE ZHYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA35E"},41823:{"value":"A35F","name":"YI SYLLABLE ZHYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA35F"},41824:{"value":"A360","name":"YI SYLLABLE ZHYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA360"},41825:{"value":"A361","name":"YI SYLLABLE CHAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA361"},41826:{"value":"A362","name":"YI SYLLABLE CHAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA362"},41827:{"value":"A363","name":"YI SYLLABLE CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA363"},41828:{"value":"A364","name":"YI SYLLABLE CHAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA364"},41829:{"value":"A365","name":"YI SYLLABLE CHUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA365"},41830:{"value":"A366","name":"YI SYLLABLE CHUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA366"},41831:{"value":"A367","name":"YI SYLLABLE CHUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA367"},41832:{"value":"A368","name":"YI SYLLABLE CHUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA368"},41833:{"value":"A369","name":"YI SYLLABLE CHOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA369"},41834:{"value":"A36A","name":"YI SYLLABLE CHOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA36A"},41835:{"value":"A36B","name":"YI SYLLABLE CHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA36B"},41836:{"value":"A36C","name":"YI SYLLABLE CHOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA36C"},41837:{"value":"A36D","name":"YI SYLLABLE CHET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA36D"},41838:{"value":"A36E","name":"YI SYLLABLE CHEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA36E"},41839:{"value":"A36F","name":"YI SYLLABLE CHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA36F"},41840:{"value":"A370","name":"YI SYLLABLE CHEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA370"},41841:{"value":"A371","name":"YI SYLLABLE CHUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA371"},41842:{"value":"A372","name":"YI SYLLABLE CHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA372"},41843:{"value":"A373","name":"YI SYLLABLE CHUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA373"},41844:{"value":"A374","name":"YI SYLLABLE CHURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA374"},41845:{"value":"A375","name":"YI SYLLABLE CHUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA375"},41846:{"value":"A376","name":"YI SYLLABLE CHYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA376"},41847:{"value":"A377","name":"YI SYLLABLE CHYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA377"},41848:{"value":"A378","name":"YI SYLLABLE CHY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA378"},41849:{"value":"A379","name":"YI SYLLABLE CHYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA379"},41850:{"value":"A37A","name":"YI SYLLABLE CHYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA37A"},41851:{"value":"A37B","name":"YI SYLLABLE CHYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA37B"},41852:{"value":"A37C","name":"YI SYLLABLE RRAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA37C"},41853:{"value":"A37D","name":"YI SYLLABLE RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA37D"},41854:{"value":"A37E","name":"YI SYLLABLE RRUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA37E"},41855:{"value":"A37F","name":"YI SYLLABLE RRUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA37F"},41856:{"value":"A380","name":"YI SYLLABLE RROT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA380"},41857:{"value":"A381","name":"YI SYLLABLE RROX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA381"},41858:{"value":"A382","name":"YI SYLLABLE RRO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA382"},41859:{"value":"A383","name":"YI SYLLABLE RROP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA383"},41860:{"value":"A384","name":"YI SYLLABLE RRET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA384"},41861:{"value":"A385","name":"YI SYLLABLE RREX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA385"},41862:{"value":"A386","name":"YI SYLLABLE RRE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA386"},41863:{"value":"A387","name":"YI SYLLABLE RREP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA387"},41864:{"value":"A388","name":"YI SYLLABLE RRUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA388"},41865:{"value":"A389","name":"YI SYLLABLE RRUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA389"},41866:{"value":"A38A","name":"YI SYLLABLE RRU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA38A"},41867:{"value":"A38B","name":"YI SYLLABLE RRUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA38B"},41868:{"value":"A38C","name":"YI SYLLABLE RRURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA38C"},41869:{"value":"A38D","name":"YI SYLLABLE RRUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA38D"},41870:{"value":"A38E","name":"YI SYLLABLE RRYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA38E"},41871:{"value":"A38F","name":"YI SYLLABLE RRYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA38F"},41872:{"value":"A390","name":"YI SYLLABLE RRY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA390"},41873:{"value":"A391","name":"YI SYLLABLE RRYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA391"},41874:{"value":"A392","name":"YI SYLLABLE RRYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA392"},41875:{"value":"A393","name":"YI SYLLABLE RRYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA393"},41876:{"value":"A394","name":"YI SYLLABLE NRAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA394"},41877:{"value":"A395","name":"YI SYLLABLE NRAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA395"},41878:{"value":"A396","name":"YI SYLLABLE NRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA396"},41879:{"value":"A397","name":"YI SYLLABLE NRAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA397"},41880:{"value":"A398","name":"YI SYLLABLE NROX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA398"},41881:{"value":"A399","name":"YI SYLLABLE NRO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA399"},41882:{"value":"A39A","name":"YI SYLLABLE NROP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA39A"},41883:{"value":"A39B","name":"YI SYLLABLE NRET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA39B"},41884:{"value":"A39C","name":"YI SYLLABLE NREX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA39C"},41885:{"value":"A39D","name":"YI SYLLABLE NRE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA39D"},41886:{"value":"A39E","name":"YI SYLLABLE NREP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA39E"},41887:{"value":"A39F","name":"YI SYLLABLE NRUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA39F"},41888:{"value":"A3A0","name":"YI SYLLABLE NRUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3A0"},41889:{"value":"A3A1","name":"YI SYLLABLE NRU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3A1"},41890:{"value":"A3A2","name":"YI SYLLABLE NRUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3A2"},41891:{"value":"A3A3","name":"YI SYLLABLE NRURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3A3"},41892:{"value":"A3A4","name":"YI SYLLABLE NRUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3A4"},41893:{"value":"A3A5","name":"YI SYLLABLE NRYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3A5"},41894:{"value":"A3A6","name":"YI SYLLABLE NRYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3A6"},41895:{"value":"A3A7","name":"YI SYLLABLE NRY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3A7"},41896:{"value":"A3A8","name":"YI SYLLABLE NRYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3A8"},41897:{"value":"A3A9","name":"YI SYLLABLE NRYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3A9"},41898:{"value":"A3AA","name":"YI SYLLABLE NRYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3AA"},41899:{"value":"A3AB","name":"YI SYLLABLE SHAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3AB"},41900:{"value":"A3AC","name":"YI SYLLABLE SHAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3AC"},41901:{"value":"A3AD","name":"YI SYLLABLE SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3AD"},41902:{"value":"A3AE","name":"YI SYLLABLE SHAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3AE"},41903:{"value":"A3AF","name":"YI SYLLABLE SHUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3AF"},41904:{"value":"A3B0","name":"YI SYLLABLE SHUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3B0"},41905:{"value":"A3B1","name":"YI SYLLABLE SHUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3B1"},41906:{"value":"A3B2","name":"YI SYLLABLE SHOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3B2"},41907:{"value":"A3B3","name":"YI SYLLABLE SHOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3B3"},41908:{"value":"A3B4","name":"YI SYLLABLE SHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3B4"},41909:{"value":"A3B5","name":"YI SYLLABLE SHOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3B5"},41910:{"value":"A3B6","name":"YI SYLLABLE SHET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3B6"},41911:{"value":"A3B7","name":"YI SYLLABLE SHEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3B7"},41912:{"value":"A3B8","name":"YI SYLLABLE SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3B8"},41913:{"value":"A3B9","name":"YI SYLLABLE SHEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3B9"},41914:{"value":"A3BA","name":"YI SYLLABLE SHUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3BA"},41915:{"value":"A3BB","name":"YI SYLLABLE SHUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3BB"},41916:{"value":"A3BC","name":"YI SYLLABLE SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3BC"},41917:{"value":"A3BD","name":"YI SYLLABLE SHUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3BD"},41918:{"value":"A3BE","name":"YI SYLLABLE SHURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3BE"},41919:{"value":"A3BF","name":"YI SYLLABLE SHUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3BF"},41920:{"value":"A3C0","name":"YI SYLLABLE SHYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3C0"},41921:{"value":"A3C1","name":"YI SYLLABLE SHYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3C1"},41922:{"value":"A3C2","name":"YI SYLLABLE SHY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3C2"},41923:{"value":"A3C3","name":"YI SYLLABLE SHYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3C3"},41924:{"value":"A3C4","name":"YI SYLLABLE SHYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3C4"},41925:{"value":"A3C5","name":"YI SYLLABLE SHYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3C5"},41926:{"value":"A3C6","name":"YI SYLLABLE RAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3C6"},41927:{"value":"A3C7","name":"YI SYLLABLE RAX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3C7"},41928:{"value":"A3C8","name":"YI SYLLABLE RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3C8"},41929:{"value":"A3C9","name":"YI SYLLABLE RAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3C9"},41930:{"value":"A3CA","name":"YI SYLLABLE RUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3CA"},41931:{"value":"A3CB","name":"YI SYLLABLE RUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3CB"},41932:{"value":"A3CC","name":"YI SYLLABLE RUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3CC"},41933:{"value":"A3CD","name":"YI SYLLABLE ROT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3CD"},41934:{"value":"A3CE","name":"YI SYLLABLE ROX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3CE"},41935:{"value":"A3CF","name":"YI SYLLABLE RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3CF"},41936:{"value":"A3D0","name":"YI SYLLABLE ROP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3D0"},41937:{"value":"A3D1","name":"YI SYLLABLE REX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3D1"},41938:{"value":"A3D2","name":"YI SYLLABLE RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3D2"},41939:{"value":"A3D3","name":"YI SYLLABLE REP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3D3"},41940:{"value":"A3D4","name":"YI SYLLABLE RUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3D4"},41941:{"value":"A3D5","name":"YI SYLLABLE RUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3D5"},41942:{"value":"A3D6","name":"YI SYLLABLE RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3D6"},41943:{"value":"A3D7","name":"YI SYLLABLE RUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3D7"},41944:{"value":"A3D8","name":"YI SYLLABLE RURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3D8"},41945:{"value":"A3D9","name":"YI SYLLABLE RUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3D9"},41946:{"value":"A3DA","name":"YI SYLLABLE RYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3DA"},41947:{"value":"A3DB","name":"YI SYLLABLE RYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3DB"},41948:{"value":"A3DC","name":"YI SYLLABLE RY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3DC"},41949:{"value":"A3DD","name":"YI SYLLABLE RYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3DD"},41950:{"value":"A3DE","name":"YI SYLLABLE RYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3DE"},41951:{"value":"A3DF","name":"YI SYLLABLE RYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3DF"},41952:{"value":"A3E0","name":"YI SYLLABLE JIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3E0"},41953:{"value":"A3E1","name":"YI SYLLABLE JIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3E1"},41954:{"value":"A3E2","name":"YI SYLLABLE JI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3E2"},41955:{"value":"A3E3","name":"YI SYLLABLE JIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3E3"},41956:{"value":"A3E4","name":"YI SYLLABLE JIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3E4"},41957:{"value":"A3E5","name":"YI SYLLABLE JIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3E5"},41958:{"value":"A3E6","name":"YI SYLLABLE JIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3E6"},41959:{"value":"A3E7","name":"YI SYLLABLE JIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3E7"},41960:{"value":"A3E8","name":"YI SYLLABLE JUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3E8"},41961:{"value":"A3E9","name":"YI SYLLABLE JUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3E9"},41962:{"value":"A3EA","name":"YI SYLLABLE JUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3EA"},41963:{"value":"A3EB","name":"YI SYLLABLE JUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3EB"},41964:{"value":"A3EC","name":"YI SYLLABLE JOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3EC"},41965:{"value":"A3ED","name":"YI SYLLABLE JOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3ED"},41966:{"value":"A3EE","name":"YI SYLLABLE JO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3EE"},41967:{"value":"A3EF","name":"YI SYLLABLE JOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3EF"},41968:{"value":"A3F0","name":"YI SYLLABLE JUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3F0"},41969:{"value":"A3F1","name":"YI SYLLABLE JUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3F1"},41970:{"value":"A3F2","name":"YI SYLLABLE JU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3F2"},41971:{"value":"A3F3","name":"YI SYLLABLE JUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3F3"},41972:{"value":"A3F4","name":"YI SYLLABLE JURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3F4"},41973:{"value":"A3F5","name":"YI SYLLABLE JUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3F5"},41974:{"value":"A3F6","name":"YI SYLLABLE JYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3F6"},41975:{"value":"A3F7","name":"YI SYLLABLE JYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3F7"},41976:{"value":"A3F8","name":"YI SYLLABLE JY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3F8"},41977:{"value":"A3F9","name":"YI SYLLABLE JYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3F9"},41978:{"value":"A3FA","name":"YI SYLLABLE JYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3FA"},41979:{"value":"A3FB","name":"YI SYLLABLE JYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3FB"},41980:{"value":"A3FC","name":"YI SYLLABLE QIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3FC"},41981:{"value":"A3FD","name":"YI SYLLABLE QIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3FD"},41982:{"value":"A3FE","name":"YI SYLLABLE QI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3FE"},41983:{"value":"A3FF","name":"YI SYLLABLE QIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA3FF"},41984:{"value":"A400","name":"YI SYLLABLE QIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA400"},41985:{"value":"A401","name":"YI SYLLABLE QIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA401"},41986:{"value":"A402","name":"YI SYLLABLE QIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA402"},41987:{"value":"A403","name":"YI SYLLABLE QIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA403"},41988:{"value":"A404","name":"YI SYLLABLE QUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA404"},41989:{"value":"A405","name":"YI SYLLABLE QUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA405"},41990:{"value":"A406","name":"YI SYLLABLE QUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA406"},41991:{"value":"A407","name":"YI SYLLABLE QUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA407"},41992:{"value":"A408","name":"YI SYLLABLE QOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA408"},41993:{"value":"A409","name":"YI SYLLABLE QOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA409"},41994:{"value":"A40A","name":"YI SYLLABLE QO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA40A"},41995:{"value":"A40B","name":"YI SYLLABLE QOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA40B"},41996:{"value":"A40C","name":"YI SYLLABLE QUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA40C"},41997:{"value":"A40D","name":"YI SYLLABLE QUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA40D"},41998:{"value":"A40E","name":"YI SYLLABLE QU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA40E"},41999:{"value":"A40F","name":"YI SYLLABLE QUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA40F"},42000:{"value":"A410","name":"YI SYLLABLE QURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA410"},42001:{"value":"A411","name":"YI SYLLABLE QUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA411"},42002:{"value":"A412","name":"YI SYLLABLE QYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA412"},42003:{"value":"A413","name":"YI SYLLABLE QYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA413"},42004:{"value":"A414","name":"YI SYLLABLE QY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA414"},42005:{"value":"A415","name":"YI SYLLABLE QYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA415"},42006:{"value":"A416","name":"YI SYLLABLE QYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA416"},42007:{"value":"A417","name":"YI SYLLABLE QYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA417"},42008:{"value":"A418","name":"YI SYLLABLE JJIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA418"},42009:{"value":"A419","name":"YI SYLLABLE JJIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA419"},42010:{"value":"A41A","name":"YI SYLLABLE JJI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA41A"},42011:{"value":"A41B","name":"YI SYLLABLE JJIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA41B"},42012:{"value":"A41C","name":"YI SYLLABLE JJIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA41C"},42013:{"value":"A41D","name":"YI SYLLABLE JJIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA41D"},42014:{"value":"A41E","name":"YI SYLLABLE JJIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA41E"},42015:{"value":"A41F","name":"YI SYLLABLE JJIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA41F"},42016:{"value":"A420","name":"YI SYLLABLE JJUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA420"},42017:{"value":"A421","name":"YI SYLLABLE JJUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA421"},42018:{"value":"A422","name":"YI SYLLABLE JJUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA422"},42019:{"value":"A423","name":"YI SYLLABLE JJOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA423"},42020:{"value":"A424","name":"YI SYLLABLE JJOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA424"},42021:{"value":"A425","name":"YI SYLLABLE JJO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA425"},42022:{"value":"A426","name":"YI SYLLABLE JJOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA426"},42023:{"value":"A427","name":"YI SYLLABLE JJUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA427"},42024:{"value":"A428","name":"YI SYLLABLE JJUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA428"},42025:{"value":"A429","name":"YI SYLLABLE JJU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA429"},42026:{"value":"A42A","name":"YI SYLLABLE JJUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA42A"},42027:{"value":"A42B","name":"YI SYLLABLE JJURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA42B"},42028:{"value":"A42C","name":"YI SYLLABLE JJUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA42C"},42029:{"value":"A42D","name":"YI SYLLABLE JJYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA42D"},42030:{"value":"A42E","name":"YI SYLLABLE JJYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA42E"},42031:{"value":"A42F","name":"YI SYLLABLE JJY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA42F"},42032:{"value":"A430","name":"YI SYLLABLE JJYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA430"},42033:{"value":"A431","name":"YI SYLLABLE NJIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA431"},42034:{"value":"A432","name":"YI SYLLABLE NJIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA432"},42035:{"value":"A433","name":"YI SYLLABLE NJI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA433"},42036:{"value":"A434","name":"YI SYLLABLE NJIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA434"},42037:{"value":"A435","name":"YI SYLLABLE NJIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA435"},42038:{"value":"A436","name":"YI SYLLABLE NJIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA436"},42039:{"value":"A437","name":"YI SYLLABLE NJIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA437"},42040:{"value":"A438","name":"YI SYLLABLE NJIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA438"},42041:{"value":"A439","name":"YI SYLLABLE NJUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA439"},42042:{"value":"A43A","name":"YI SYLLABLE NJUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA43A"},42043:{"value":"A43B","name":"YI SYLLABLE NJOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA43B"},42044:{"value":"A43C","name":"YI SYLLABLE NJOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA43C"},42045:{"value":"A43D","name":"YI SYLLABLE NJO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA43D"},42046:{"value":"A43E","name":"YI SYLLABLE NJOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA43E"},42047:{"value":"A43F","name":"YI SYLLABLE NJUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA43F"},42048:{"value":"A440","name":"YI SYLLABLE NJU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA440"},42049:{"value":"A441","name":"YI SYLLABLE NJUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA441"},42050:{"value":"A442","name":"YI SYLLABLE NJURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA442"},42051:{"value":"A443","name":"YI SYLLABLE NJUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA443"},42052:{"value":"A444","name":"YI SYLLABLE NJYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA444"},42053:{"value":"A445","name":"YI SYLLABLE NJYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA445"},42054:{"value":"A446","name":"YI SYLLABLE NJY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA446"},42055:{"value":"A447","name":"YI SYLLABLE NJYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA447"},42056:{"value":"A448","name":"YI SYLLABLE NJYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA448"},42057:{"value":"A449","name":"YI SYLLABLE NJYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA449"},42058:{"value":"A44A","name":"YI SYLLABLE NYIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA44A"},42059:{"value":"A44B","name":"YI SYLLABLE NYIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA44B"},42060:{"value":"A44C","name":"YI SYLLABLE NYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA44C"},42061:{"value":"A44D","name":"YI SYLLABLE NYIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA44D"},42062:{"value":"A44E","name":"YI SYLLABLE NYIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA44E"},42063:{"value":"A44F","name":"YI SYLLABLE NYIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA44F"},42064:{"value":"A450","name":"YI SYLLABLE NYIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA450"},42065:{"value":"A451","name":"YI SYLLABLE NYIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA451"},42066:{"value":"A452","name":"YI SYLLABLE NYUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA452"},42067:{"value":"A453","name":"YI SYLLABLE NYUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA453"},42068:{"value":"A454","name":"YI SYLLABLE NYUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA454"},42069:{"value":"A455","name":"YI SYLLABLE NYOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA455"},42070:{"value":"A456","name":"YI SYLLABLE NYOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA456"},42071:{"value":"A457","name":"YI SYLLABLE NYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA457"},42072:{"value":"A458","name":"YI SYLLABLE NYOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA458"},42073:{"value":"A459","name":"YI SYLLABLE NYUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA459"},42074:{"value":"A45A","name":"YI SYLLABLE NYUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA45A"},42075:{"value":"A45B","name":"YI SYLLABLE NYU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA45B"},42076:{"value":"A45C","name":"YI SYLLABLE NYUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA45C"},42077:{"value":"A45D","name":"YI SYLLABLE XIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA45D"},42078:{"value":"A45E","name":"YI SYLLABLE XIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA45E"},42079:{"value":"A45F","name":"YI SYLLABLE XI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA45F"},42080:{"value":"A460","name":"YI SYLLABLE XIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA460"},42081:{"value":"A461","name":"YI SYLLABLE XIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA461"},42082:{"value":"A462","name":"YI SYLLABLE XIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA462"},42083:{"value":"A463","name":"YI SYLLABLE XIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA463"},42084:{"value":"A464","name":"YI SYLLABLE XIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA464"},42085:{"value":"A465","name":"YI SYLLABLE XUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA465"},42086:{"value":"A466","name":"YI SYLLABLE XUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA466"},42087:{"value":"A467","name":"YI SYLLABLE XOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA467"},42088:{"value":"A468","name":"YI SYLLABLE XOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA468"},42089:{"value":"A469","name":"YI SYLLABLE XO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA469"},42090:{"value":"A46A","name":"YI SYLLABLE XOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA46A"},42091:{"value":"A46B","name":"YI SYLLABLE XYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA46B"},42092:{"value":"A46C","name":"YI SYLLABLE XYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA46C"},42093:{"value":"A46D","name":"YI SYLLABLE XY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA46D"},42094:{"value":"A46E","name":"YI SYLLABLE XYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA46E"},42095:{"value":"A46F","name":"YI SYLLABLE XYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA46F"},42096:{"value":"A470","name":"YI SYLLABLE XYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA470"},42097:{"value":"A471","name":"YI SYLLABLE YIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA471"},42098:{"value":"A472","name":"YI SYLLABLE YIX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA472"},42099:{"value":"A473","name":"YI SYLLABLE YI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA473"},42100:{"value":"A474","name":"YI SYLLABLE YIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA474"},42101:{"value":"A475","name":"YI SYLLABLE YIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA475"},42102:{"value":"A476","name":"YI SYLLABLE YIEX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA476"},42103:{"value":"A477","name":"YI SYLLABLE YIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA477"},42104:{"value":"A478","name":"YI SYLLABLE YIEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA478"},42105:{"value":"A479","name":"YI SYLLABLE YUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA479"},42106:{"value":"A47A","name":"YI SYLLABLE YUOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA47A"},42107:{"value":"A47B","name":"YI SYLLABLE YUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA47B"},42108:{"value":"A47C","name":"YI SYLLABLE YUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA47C"},42109:{"value":"A47D","name":"YI SYLLABLE YOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA47D"},42110:{"value":"A47E","name":"YI SYLLABLE YOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA47E"},42111:{"value":"A47F","name":"YI SYLLABLE YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA47F"},42112:{"value":"A480","name":"YI SYLLABLE YOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA480"},42113:{"value":"A481","name":"YI SYLLABLE YUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA481"},42114:{"value":"A482","name":"YI SYLLABLE YUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA482"},42115:{"value":"A483","name":"YI SYLLABLE YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA483"},42116:{"value":"A484","name":"YI SYLLABLE YUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA484"},42117:{"value":"A485","name":"YI SYLLABLE YURX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA485"},42118:{"value":"A486","name":"YI SYLLABLE YUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA486"},42119:{"value":"A487","name":"YI SYLLABLE YYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA487"},42120:{"value":"A488","name":"YI SYLLABLE YYX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA488"},42121:{"value":"A489","name":"YI SYLLABLE YY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA489"},42122:{"value":"A48A","name":"YI SYLLABLE YYP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA48A"},42123:{"value":"A48B","name":"YI SYLLABLE YYRX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA48B"},42124:{"value":"A48C","name":"YI SYLLABLE YYR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA48C"},42192:{"value":"A4D0","name":"LISU LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4D0"},42193:{"value":"A4D1","name":"LISU LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4D1"},42194:{"value":"A4D2","name":"LISU LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4D2"},42195:{"value":"A4D3","name":"LISU LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4D3"},42196:{"value":"A4D4","name":"LISU LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4D4"},42197:{"value":"A4D5","name":"LISU LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4D5"},42198:{"value":"A4D6","name":"LISU LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4D6"},42199:{"value":"A4D7","name":"LISU LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4D7"},42200:{"value":"A4D8","name":"LISU LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4D8"},42201:{"value":"A4D9","name":"LISU LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4D9"},42202:{"value":"A4DA","name":"LISU LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4DA"},42203:{"value":"A4DB","name":"LISU LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4DB"},42204:{"value":"A4DC","name":"LISU LETTER DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4DC"},42205:{"value":"A4DD","name":"LISU LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4DD"},42206:{"value":"A4DE","name":"LISU LETTER TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4DE"},42207:{"value":"A4DF","name":"LISU LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4DF"},42208:{"value":"A4E0","name":"LISU LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4E0"},42209:{"value":"A4E1","name":"LISU LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4E1"},42210:{"value":"A4E2","name":"LISU LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4E2"},42211:{"value":"A4E3","name":"LISU LETTER ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4E3"},42212:{"value":"A4E4","name":"LISU LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4E4"},42213:{"value":"A4E5","name":"LISU LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4E5"},42214:{"value":"A4E6","name":"LISU LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4E6"},42215:{"value":"A4E7","name":"LISU LETTER XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4E7"},42216:{"value":"A4E8","name":"LISU LETTER HHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4E8"},42217:{"value":"A4E9","name":"LISU LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4E9"},42218:{"value":"A4EA","name":"LISU LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4EA"},42219:{"value":"A4EB","name":"LISU LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4EB"},42220:{"value":"A4EC","name":"LISU LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4EC"},42221:{"value":"A4ED","name":"LISU LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4ED"},42222:{"value":"A4EE","name":"LISU LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4EE"},42223:{"value":"A4EF","name":"LISU LETTER AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4EF"},42224:{"value":"A4F0","name":"LISU LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4F0"},42225:{"value":"A4F1","name":"LISU LETTER EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4F1"},42226:{"value":"A4F2","name":"LISU LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4F2"},42227:{"value":"A4F3","name":"LISU LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4F3"},42228:{"value":"A4F4","name":"LISU LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4F4"},42229:{"value":"A4F5","name":"LISU LETTER UE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4F5"},42230:{"value":"A4F6","name":"LISU LETTER UH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4F6"},42231:{"value":"A4F7","name":"LISU LETTER OE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4F7"},42240:{"value":"A500","name":"VAI SYLLABLE EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA500"},42241:{"value":"A501","name":"VAI SYLLABLE EEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA501"},42242:{"value":"A502","name":"VAI SYLLABLE HEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA502"},42243:{"value":"A503","name":"VAI SYLLABLE WEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA503"},42244:{"value":"A504","name":"VAI SYLLABLE WEEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA504"},42245:{"value":"A505","name":"VAI SYLLABLE PEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA505"},42246:{"value":"A506","name":"VAI SYLLABLE BHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA506"},42247:{"value":"A507","name":"VAI SYLLABLE BEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA507"},42248:{"value":"A508","name":"VAI SYLLABLE MBEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA508"},42249:{"value":"A509","name":"VAI SYLLABLE KPEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA509"},42250:{"value":"A50A","name":"VAI SYLLABLE MGBEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA50A"},42251:{"value":"A50B","name":"VAI SYLLABLE GBEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA50B"},42252:{"value":"A50C","name":"VAI SYLLABLE FEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA50C"},42253:{"value":"A50D","name":"VAI SYLLABLE VEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA50D"},42254:{"value":"A50E","name":"VAI SYLLABLE TEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA50E"},42255:{"value":"A50F","name":"VAI SYLLABLE THEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA50F"},42256:{"value":"A510","name":"VAI SYLLABLE DHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA510"},42257:{"value":"A511","name":"VAI SYLLABLE DHHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA511"},42258:{"value":"A512","name":"VAI SYLLABLE LEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA512"},42259:{"value":"A513","name":"VAI SYLLABLE REE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA513"},42260:{"value":"A514","name":"VAI SYLLABLE DEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA514"},42261:{"value":"A515","name":"VAI SYLLABLE NDEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA515"},42262:{"value":"A516","name":"VAI SYLLABLE SEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA516"},42263:{"value":"A517","name":"VAI SYLLABLE SHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA517"},42264:{"value":"A518","name":"VAI SYLLABLE ZEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA518"},42265:{"value":"A519","name":"VAI SYLLABLE ZHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA519"},42266:{"value":"A51A","name":"VAI SYLLABLE CEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA51A"},42267:{"value":"A51B","name":"VAI SYLLABLE JEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA51B"},42268:{"value":"A51C","name":"VAI SYLLABLE NJEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA51C"},42269:{"value":"A51D","name":"VAI SYLLABLE YEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA51D"},42270:{"value":"A51E","name":"VAI SYLLABLE KEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA51E"},42271:{"value":"A51F","name":"VAI SYLLABLE NGGEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA51F"},42272:{"value":"A520","name":"VAI SYLLABLE GEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA520"},42273:{"value":"A521","name":"VAI SYLLABLE MEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA521"},42274:{"value":"A522","name":"VAI SYLLABLE NEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA522"},42275:{"value":"A523","name":"VAI SYLLABLE NYEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA523"},42276:{"value":"A524","name":"VAI SYLLABLE I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA524"},42277:{"value":"A525","name":"VAI SYLLABLE IN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA525"},42278:{"value":"A526","name":"VAI SYLLABLE HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA526"},42279:{"value":"A527","name":"VAI SYLLABLE HIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA527"},42280:{"value":"A528","name":"VAI SYLLABLE WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA528"},42281:{"value":"A529","name":"VAI SYLLABLE WIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA529"},42282:{"value":"A52A","name":"VAI SYLLABLE PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA52A"},42283:{"value":"A52B","name":"VAI SYLLABLE BHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA52B"},42284:{"value":"A52C","name":"VAI SYLLABLE BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA52C"},42285:{"value":"A52D","name":"VAI SYLLABLE MBI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA52D"},42286:{"value":"A52E","name":"VAI SYLLABLE KPI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA52E"},42287:{"value":"A52F","name":"VAI SYLLABLE MGBI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA52F"},42288:{"value":"A530","name":"VAI SYLLABLE GBI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA530"},42289:{"value":"A531","name":"VAI SYLLABLE FI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA531"},42290:{"value":"A532","name":"VAI SYLLABLE VI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA532"},42291:{"value":"A533","name":"VAI SYLLABLE TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA533"},42292:{"value":"A534","name":"VAI SYLLABLE THI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA534"},42293:{"value":"A535","name":"VAI SYLLABLE DHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA535"},42294:{"value":"A536","name":"VAI SYLLABLE DHHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA536"},42295:{"value":"A537","name":"VAI SYLLABLE LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA537"},42296:{"value":"A538","name":"VAI SYLLABLE RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA538"},42297:{"value":"A539","name":"VAI SYLLABLE DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA539"},42298:{"value":"A53A","name":"VAI SYLLABLE NDI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA53A"},42299:{"value":"A53B","name":"VAI SYLLABLE SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA53B"},42300:{"value":"A53C","name":"VAI SYLLABLE SHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA53C"},42301:{"value":"A53D","name":"VAI SYLLABLE ZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA53D"},42302:{"value":"A53E","name":"VAI SYLLABLE ZHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA53E"},42303:{"value":"A53F","name":"VAI SYLLABLE CI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA53F"},42304:{"value":"A540","name":"VAI SYLLABLE JI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA540"},42305:{"value":"A541","name":"VAI SYLLABLE NJI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA541"},42306:{"value":"A542","name":"VAI SYLLABLE YI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA542"},42307:{"value":"A543","name":"VAI SYLLABLE KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA543"},42308:{"value":"A544","name":"VAI SYLLABLE NGGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA544"},42309:{"value":"A545","name":"VAI SYLLABLE GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA545"},42310:{"value":"A546","name":"VAI SYLLABLE MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA546"},42311:{"value":"A547","name":"VAI SYLLABLE NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA547"},42312:{"value":"A548","name":"VAI SYLLABLE NYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA548"},42313:{"value":"A549","name":"VAI SYLLABLE A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA549"},42314:{"value":"A54A","name":"VAI SYLLABLE AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA54A"},42315:{"value":"A54B","name":"VAI SYLLABLE NGAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA54B"},42316:{"value":"A54C","name":"VAI SYLLABLE HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA54C"},42317:{"value":"A54D","name":"VAI SYLLABLE HAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA54D"},42318:{"value":"A54E","name":"VAI SYLLABLE WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA54E"},42319:{"value":"A54F","name":"VAI SYLLABLE WAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA54F"},42320:{"value":"A550","name":"VAI SYLLABLE PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA550"},42321:{"value":"A551","name":"VAI SYLLABLE BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA551"},42322:{"value":"A552","name":"VAI SYLLABLE BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA552"},42323:{"value":"A553","name":"VAI SYLLABLE MBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA553"},42324:{"value":"A554","name":"VAI SYLLABLE KPA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA554"},42325:{"value":"A555","name":"VAI SYLLABLE KPAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA555"},42326:{"value":"A556","name":"VAI SYLLABLE MGBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA556"},42327:{"value":"A557","name":"VAI SYLLABLE GBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA557"},42328:{"value":"A558","name":"VAI SYLLABLE FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA558"},42329:{"value":"A559","name":"VAI SYLLABLE VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA559"},42330:{"value":"A55A","name":"VAI SYLLABLE TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA55A"},42331:{"value":"A55B","name":"VAI SYLLABLE THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA55B"},42332:{"value":"A55C","name":"VAI SYLLABLE DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA55C"},42333:{"value":"A55D","name":"VAI SYLLABLE DHHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA55D"},42334:{"value":"A55E","name":"VAI SYLLABLE LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA55E"},42335:{"value":"A55F","name":"VAI SYLLABLE RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA55F"},42336:{"value":"A560","name":"VAI SYLLABLE DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA560"},42337:{"value":"A561","name":"VAI SYLLABLE NDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA561"},42338:{"value":"A562","name":"VAI SYLLABLE SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA562"},42339:{"value":"A563","name":"VAI SYLLABLE SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA563"},42340:{"value":"A564","name":"VAI SYLLABLE ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA564"},42341:{"value":"A565","name":"VAI SYLLABLE ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA565"},42342:{"value":"A566","name":"VAI SYLLABLE CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA566"},42343:{"value":"A567","name":"VAI SYLLABLE JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA567"},42344:{"value":"A568","name":"VAI SYLLABLE NJA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA568"},42345:{"value":"A569","name":"VAI SYLLABLE YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA569"},42346:{"value":"A56A","name":"VAI SYLLABLE KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA56A"},42347:{"value":"A56B","name":"VAI SYLLABLE KAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA56B"},42348:{"value":"A56C","name":"VAI SYLLABLE NGGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA56C"},42349:{"value":"A56D","name":"VAI SYLLABLE GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA56D"},42350:{"value":"A56E","name":"VAI SYLLABLE MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA56E"},42351:{"value":"A56F","name":"VAI SYLLABLE NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA56F"},42352:{"value":"A570","name":"VAI SYLLABLE NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA570"},42353:{"value":"A571","name":"VAI SYLLABLE OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA571"},42354:{"value":"A572","name":"VAI SYLLABLE OON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA572"},42355:{"value":"A573","name":"VAI SYLLABLE HOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA573"},42356:{"value":"A574","name":"VAI SYLLABLE WOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA574"},42357:{"value":"A575","name":"VAI SYLLABLE WOON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA575"},42358:{"value":"A576","name":"VAI SYLLABLE POO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA576"},42359:{"value":"A577","name":"VAI SYLLABLE BHOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA577"},42360:{"value":"A578","name":"VAI SYLLABLE BOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA578"},42361:{"value":"A579","name":"VAI SYLLABLE MBOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA579"},42362:{"value":"A57A","name":"VAI SYLLABLE KPOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA57A"},42363:{"value":"A57B","name":"VAI SYLLABLE MGBOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA57B"},42364:{"value":"A57C","name":"VAI SYLLABLE GBOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA57C"},42365:{"value":"A57D","name":"VAI SYLLABLE FOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA57D"},42366:{"value":"A57E","name":"VAI SYLLABLE VOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA57E"},42367:{"value":"A57F","name":"VAI SYLLABLE TOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA57F"},42368:{"value":"A580","name":"VAI SYLLABLE THOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA580"},42369:{"value":"A581","name":"VAI SYLLABLE DHOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA581"},42370:{"value":"A582","name":"VAI SYLLABLE DHHOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA582"},42371:{"value":"A583","name":"VAI SYLLABLE LOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA583"},42372:{"value":"A584","name":"VAI SYLLABLE ROO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA584"},42373:{"value":"A585","name":"VAI SYLLABLE DOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA585"},42374:{"value":"A586","name":"VAI SYLLABLE NDOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA586"},42375:{"value":"A587","name":"VAI SYLLABLE SOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA587"},42376:{"value":"A588","name":"VAI SYLLABLE SHOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA588"},42377:{"value":"A589","name":"VAI SYLLABLE ZOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA589"},42378:{"value":"A58A","name":"VAI SYLLABLE ZHOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA58A"},42379:{"value":"A58B","name":"VAI SYLLABLE COO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA58B"},42380:{"value":"A58C","name":"VAI SYLLABLE JOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA58C"},42381:{"value":"A58D","name":"VAI SYLLABLE NJOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA58D"},42382:{"value":"A58E","name":"VAI SYLLABLE YOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA58E"},42383:{"value":"A58F","name":"VAI SYLLABLE KOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA58F"},42384:{"value":"A590","name":"VAI SYLLABLE NGGOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA590"},42385:{"value":"A591","name":"VAI SYLLABLE GOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA591"},42386:{"value":"A592","name":"VAI SYLLABLE MOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA592"},42387:{"value":"A593","name":"VAI SYLLABLE NOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA593"},42388:{"value":"A594","name":"VAI SYLLABLE NYOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA594"},42389:{"value":"A595","name":"VAI SYLLABLE U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA595"},42390:{"value":"A596","name":"VAI SYLLABLE UN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA596"},42391:{"value":"A597","name":"VAI SYLLABLE HU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA597"},42392:{"value":"A598","name":"VAI SYLLABLE HUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA598"},42393:{"value":"A599","name":"VAI SYLLABLE WU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA599"},42394:{"value":"A59A","name":"VAI SYLLABLE WUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA59A"},42395:{"value":"A59B","name":"VAI SYLLABLE PU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA59B"},42396:{"value":"A59C","name":"VAI SYLLABLE BHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA59C"},42397:{"value":"A59D","name":"VAI SYLLABLE BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA59D"},42398:{"value":"A59E","name":"VAI SYLLABLE MBU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA59E"},42399:{"value":"A59F","name":"VAI SYLLABLE KPU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA59F"},42400:{"value":"A5A0","name":"VAI SYLLABLE MGBU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5A0"},42401:{"value":"A5A1","name":"VAI SYLLABLE GBU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5A1"},42402:{"value":"A5A2","name":"VAI SYLLABLE FU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5A2"},42403:{"value":"A5A3","name":"VAI SYLLABLE VU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5A3"},42404:{"value":"A5A4","name":"VAI SYLLABLE TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5A4"},42405:{"value":"A5A5","name":"VAI SYLLABLE THU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5A5"},42406:{"value":"A5A6","name":"VAI SYLLABLE DHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5A6"},42407:{"value":"A5A7","name":"VAI SYLLABLE DHHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5A7"},42408:{"value":"A5A8","name":"VAI SYLLABLE LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5A8"},42409:{"value":"A5A9","name":"VAI SYLLABLE RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5A9"},42410:{"value":"A5AA","name":"VAI SYLLABLE DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5AA"},42411:{"value":"A5AB","name":"VAI SYLLABLE NDU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5AB"},42412:{"value":"A5AC","name":"VAI SYLLABLE SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5AC"},42413:{"value":"A5AD","name":"VAI SYLLABLE SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5AD"},42414:{"value":"A5AE","name":"VAI SYLLABLE ZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5AE"},42415:{"value":"A5AF","name":"VAI SYLLABLE ZHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5AF"},42416:{"value":"A5B0","name":"VAI SYLLABLE CU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5B0"},42417:{"value":"A5B1","name":"VAI SYLLABLE JU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5B1"},42418:{"value":"A5B2","name":"VAI SYLLABLE NJU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5B2"},42419:{"value":"A5B3","name":"VAI SYLLABLE YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5B3"},42420:{"value":"A5B4","name":"VAI SYLLABLE KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5B4"},42421:{"value":"A5B5","name":"VAI SYLLABLE NGGU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5B5"},42422:{"value":"A5B6","name":"VAI SYLLABLE GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5B6"},42423:{"value":"A5B7","name":"VAI SYLLABLE MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5B7"},42424:{"value":"A5B8","name":"VAI SYLLABLE NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5B8"},42425:{"value":"A5B9","name":"VAI SYLLABLE NYU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5B9"},42426:{"value":"A5BA","name":"VAI SYLLABLE O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5BA"},42427:{"value":"A5BB","name":"VAI SYLLABLE ON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5BB"},42428:{"value":"A5BC","name":"VAI SYLLABLE NGON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5BC"},42429:{"value":"A5BD","name":"VAI SYLLABLE HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5BD"},42430:{"value":"A5BE","name":"VAI SYLLABLE HON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5BE"},42431:{"value":"A5BF","name":"VAI SYLLABLE WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5BF"},42432:{"value":"A5C0","name":"VAI SYLLABLE WON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5C0"},42433:{"value":"A5C1","name":"VAI SYLLABLE PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5C1"},42434:{"value":"A5C2","name":"VAI SYLLABLE BHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5C2"},42435:{"value":"A5C3","name":"VAI SYLLABLE BO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5C3"},42436:{"value":"A5C4","name":"VAI SYLLABLE MBO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5C4"},42437:{"value":"A5C5","name":"VAI SYLLABLE KPO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5C5"},42438:{"value":"A5C6","name":"VAI SYLLABLE MGBO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5C6"},42439:{"value":"A5C7","name":"VAI SYLLABLE GBO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5C7"},42440:{"value":"A5C8","name":"VAI SYLLABLE GBON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5C8"},42441:{"value":"A5C9","name":"VAI SYLLABLE FO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5C9"},42442:{"value":"A5CA","name":"VAI SYLLABLE VO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5CA"},42443:{"value":"A5CB","name":"VAI SYLLABLE TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5CB"},42444:{"value":"A5CC","name":"VAI SYLLABLE THO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5CC"},42445:{"value":"A5CD","name":"VAI SYLLABLE DHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5CD"},42446:{"value":"A5CE","name":"VAI SYLLABLE DHHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5CE"},42447:{"value":"A5CF","name":"VAI SYLLABLE LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5CF"},42448:{"value":"A5D0","name":"VAI SYLLABLE RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5D0"},42449:{"value":"A5D1","name":"VAI SYLLABLE DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5D1"},42450:{"value":"A5D2","name":"VAI SYLLABLE NDO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5D2"},42451:{"value":"A5D3","name":"VAI SYLLABLE SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5D3"},42452:{"value":"A5D4","name":"VAI SYLLABLE SHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5D4"},42453:{"value":"A5D5","name":"VAI SYLLABLE ZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5D5"},42454:{"value":"A5D6","name":"VAI SYLLABLE ZHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5D6"},42455:{"value":"A5D7","name":"VAI SYLLABLE CO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5D7"},42456:{"value":"A5D8","name":"VAI SYLLABLE JO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5D8"},42457:{"value":"A5D9","name":"VAI SYLLABLE NJO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5D9"},42458:{"value":"A5DA","name":"VAI SYLLABLE YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5DA"},42459:{"value":"A5DB","name":"VAI SYLLABLE KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5DB"},42460:{"value":"A5DC","name":"VAI SYLLABLE NGGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5DC"},42461:{"value":"A5DD","name":"VAI SYLLABLE GO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5DD"},42462:{"value":"A5DE","name":"VAI SYLLABLE MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5DE"},42463:{"value":"A5DF","name":"VAI SYLLABLE NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5DF"},42464:{"value":"A5E0","name":"VAI SYLLABLE NYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5E0"},42465:{"value":"A5E1","name":"VAI SYLLABLE E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5E1"},42466:{"value":"A5E2","name":"VAI SYLLABLE EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5E2"},42467:{"value":"A5E3","name":"VAI SYLLABLE NGEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5E3"},42468:{"value":"A5E4","name":"VAI SYLLABLE HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5E4"},42469:{"value":"A5E5","name":"VAI SYLLABLE HEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5E5"},42470:{"value":"A5E6","name":"VAI SYLLABLE WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5E6"},42471:{"value":"A5E7","name":"VAI SYLLABLE WEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5E7"},42472:{"value":"A5E8","name":"VAI SYLLABLE PE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5E8"},42473:{"value":"A5E9","name":"VAI SYLLABLE BHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5E9"},42474:{"value":"A5EA","name":"VAI SYLLABLE BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5EA"},42475:{"value":"A5EB","name":"VAI SYLLABLE MBE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5EB"},42476:{"value":"A5EC","name":"VAI SYLLABLE KPE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5EC"},42477:{"value":"A5ED","name":"VAI SYLLABLE KPEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5ED"},42478:{"value":"A5EE","name":"VAI SYLLABLE MGBE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5EE"},42479:{"value":"A5EF","name":"VAI SYLLABLE GBE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5EF"},42480:{"value":"A5F0","name":"VAI SYLLABLE GBEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5F0"},42481:{"value":"A5F1","name":"VAI SYLLABLE FE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5F1"},42482:{"value":"A5F2","name":"VAI SYLLABLE VE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5F2"},42483:{"value":"A5F3","name":"VAI SYLLABLE TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5F3"},42484:{"value":"A5F4","name":"VAI SYLLABLE THE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5F4"},42485:{"value":"A5F5","name":"VAI SYLLABLE DHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5F5"},42486:{"value":"A5F6","name":"VAI SYLLABLE DHHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5F6"},42487:{"value":"A5F7","name":"VAI SYLLABLE LE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5F7"},42488:{"value":"A5F8","name":"VAI SYLLABLE RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5F8"},42489:{"value":"A5F9","name":"VAI SYLLABLE DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5F9"},42490:{"value":"A5FA","name":"VAI SYLLABLE NDE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5FA"},42491:{"value":"A5FB","name":"VAI SYLLABLE SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5FB"},42492:{"value":"A5FC","name":"VAI SYLLABLE SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5FC"},42493:{"value":"A5FD","name":"VAI SYLLABLE ZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5FD"},42494:{"value":"A5FE","name":"VAI SYLLABLE ZHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5FE"},42495:{"value":"A5FF","name":"VAI SYLLABLE CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA5FF"},42496:{"value":"A600","name":"VAI SYLLABLE JE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA600"},42497:{"value":"A601","name":"VAI SYLLABLE NJE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA601"},42498:{"value":"A602","name":"VAI SYLLABLE YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA602"},42499:{"value":"A603","name":"VAI SYLLABLE KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA603"},42500:{"value":"A604","name":"VAI SYLLABLE NGGE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA604"},42501:{"value":"A605","name":"VAI SYLLABLE NGGEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA605"},42502:{"value":"A606","name":"VAI SYLLABLE GE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA606"},42503:{"value":"A607","name":"VAI SYLLABLE GEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA607"},42504:{"value":"A608","name":"VAI SYLLABLE ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA608"},42505:{"value":"A609","name":"VAI SYLLABLE NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA609"},42506:{"value":"A60A","name":"VAI SYLLABLE NYE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA60A"},42507:{"value":"A60B","name":"VAI SYLLABLE NG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA60B"},42512:{"value":"A610","name":"VAI SYLLABLE NDOLE FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA610"},42513:{"value":"A611","name":"VAI SYLLABLE NDOLE KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA611"},42514:{"value":"A612","name":"VAI SYLLABLE NDOLE SOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA612"},42515:{"value":"A613","name":"VAI SYMBOL FEENG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA613"},42516:{"value":"A614","name":"VAI SYMBOL KEENG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA614"},42517:{"value":"A615","name":"VAI SYMBOL TING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA615"},42518:{"value":"A616","name":"VAI SYMBOL NII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA616"},42519:{"value":"A617","name":"VAI SYMBOL BANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA617"},42520:{"value":"A618","name":"VAI SYMBOL FAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA618"},42521:{"value":"A619","name":"VAI SYMBOL TAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA619"},42522:{"value":"A61A","name":"VAI SYMBOL DANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA61A"},42523:{"value":"A61B","name":"VAI SYMBOL DOONG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA61B"},42524:{"value":"A61C","name":"VAI SYMBOL KUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA61C"},42525:{"value":"A61D","name":"VAI SYMBOL TONG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA61D"},42526:{"value":"A61E","name":"VAI SYMBOL DO-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA61E"},42527:{"value":"A61F","name":"VAI SYMBOL JONG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA61F"},42538:{"value":"A62A","name":"VAI SYLLABLE NDOLE MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA62A"},42539:{"value":"A62B","name":"VAI SYLLABLE NDOLE DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA62B"},42606:{"value":"A66E","name":"CYRILLIC LETTER MULTIOCULAR O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA66E"},42656:{"value":"A6A0","name":"BAMUM LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6A0"},42657:{"value":"A6A1","name":"BAMUM LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6A1"},42658:{"value":"A6A2","name":"BAMUM LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6A2"},42659:{"value":"A6A3","name":"BAMUM LETTER KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6A3"},42660:{"value":"A6A4","name":"BAMUM LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6A4"},42661:{"value":"A6A5","name":"BAMUM LETTER REE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6A5"},42662:{"value":"A6A6","name":"BAMUM LETTER TAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6A6"},42663:{"value":"A6A7","name":"BAMUM LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6A7"},42664:{"value":"A6A8","name":"BAMUM LETTER NYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6A8"},42665:{"value":"A6A9","name":"BAMUM LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6A9"},42666:{"value":"A6AA","name":"BAMUM LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6AA"},42667:{"value":"A6AB","name":"BAMUM LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6AB"},42668:{"value":"A6AC","name":"BAMUM LETTER RII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6AC"},42669:{"value":"A6AD","name":"BAMUM LETTER RIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6AD"},42670:{"value":"A6AE","name":"BAMUM LETTER LEEEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6AE"},42671:{"value":"A6AF","name":"BAMUM LETTER MEEEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6AF"},42672:{"value":"A6B0","name":"BAMUM LETTER TAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6B0"},42673:{"value":"A6B1","name":"BAMUM LETTER NDAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6B1"},42674:{"value":"A6B2","name":"BAMUM LETTER NJAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6B2"},42675:{"value":"A6B3","name":"BAMUM LETTER M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6B3"},42676:{"value":"A6B4","name":"BAMUM LETTER SUU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6B4"},42677:{"value":"A6B5","name":"BAMUM LETTER MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6B5"},42678:{"value":"A6B6","name":"BAMUM LETTER SHII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6B6"},42679:{"value":"A6B7","name":"BAMUM LETTER SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6B7"},42680:{"value":"A6B8","name":"BAMUM LETTER SHEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6B8"},42681:{"value":"A6B9","name":"BAMUM LETTER SEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6B9"},42682:{"value":"A6BA","name":"BAMUM LETTER KYEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6BA"},42683:{"value":"A6BB","name":"BAMUM LETTER KET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6BB"},42684:{"value":"A6BC","name":"BAMUM LETTER NUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6BC"},42685:{"value":"A6BD","name":"BAMUM LETTER NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6BD"},42686:{"value":"A6BE","name":"BAMUM LETTER NJUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6BE"},42687:{"value":"A6BF","name":"BAMUM LETTER YOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6BF"},42688:{"value":"A6C0","name":"BAMUM LETTER SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6C0"},42689:{"value":"A6C1","name":"BAMUM LETTER YUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6C1"},42690:{"value":"A6C2","name":"BAMUM LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6C2"},42691:{"value":"A6C3","name":"BAMUM LETTER NSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6C3"},42692:{"value":"A6C4","name":"BAMUM LETTER KEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6C4"},42693:{"value":"A6C5","name":"BAMUM LETTER PEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6C5"},42694:{"value":"A6C6","name":"BAMUM LETTER NJEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6C6"},42695:{"value":"A6C7","name":"BAMUM LETTER NTEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6C7"},42696:{"value":"A6C8","name":"BAMUM LETTER PUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6C8"},42697:{"value":"A6C9","name":"BAMUM LETTER WUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6C9"},42698:{"value":"A6CA","name":"BAMUM LETTER PEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6CA"},42699:{"value":"A6CB","name":"BAMUM LETTER FEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6CB"},42700:{"value":"A6CC","name":"BAMUM LETTER RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6CC"},42701:{"value":"A6CD","name":"BAMUM LETTER LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6CD"},42702:{"value":"A6CE","name":"BAMUM LETTER MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6CE"},42703:{"value":"A6CF","name":"BAMUM LETTER NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6CF"},42704:{"value":"A6D0","name":"BAMUM LETTER REUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D0"},42705:{"value":"A6D1","name":"BAMUM LETTER RAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D1"},42706:{"value":"A6D2","name":"BAMUM LETTER KEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D2"},42707:{"value":"A6D3","name":"BAMUM LETTER NGKWAEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D3"},42708:{"value":"A6D4","name":"BAMUM LETTER NGGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D4"},42709:{"value":"A6D5","name":"BAMUM LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D5"},42710:{"value":"A6D6","name":"BAMUM LETTER SHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D6"},42711:{"value":"A6D7","name":"BAMUM LETTER PUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D7"},42712:{"value":"A6D8","name":"BAMUM LETTER FU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D8"},42713:{"value":"A6D9","name":"BAMUM LETTER FOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D9"},42714:{"value":"A6DA","name":"BAMUM LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6DA"},42715:{"value":"A6DB","name":"BAMUM LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6DB"},42716:{"value":"A6DC","name":"BAMUM LETTER LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6DC"},42717:{"value":"A6DD","name":"BAMUM LETTER PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6DD"},42718:{"value":"A6DE","name":"BAMUM LETTER LOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6DE"},42719:{"value":"A6DF","name":"BAMUM LETTER KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6DF"},42720:{"value":"A6E0","name":"BAMUM LETTER MBEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6E0"},42721:{"value":"A6E1","name":"BAMUM LETTER REN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6E1"},42722:{"value":"A6E2","name":"BAMUM LETTER MEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6E2"},42723:{"value":"A6E3","name":"BAMUM LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6E3"},42724:{"value":"A6E4","name":"BAMUM LETTER TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6E4"},42725:{"value":"A6E5","name":"BAMUM LETTER KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6E5"},42895:{"value":"A78F","name":"LATIN LETTER SINOLOGICAL DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA78F"},42999:{"value":"A7F7","name":"LATIN EPIGRAPHIC LETTER SIDEWAYS I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA7F7"},43003:{"value":"A7FB","name":"LATIN EPIGRAPHIC LETTER REVERSED F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA7FB"},43004:{"value":"A7FC","name":"LATIN EPIGRAPHIC LETTER REVERSED P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA7FC"},43005:{"value":"A7FD","name":"LATIN EPIGRAPHIC LETTER INVERTED M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA7FD"},43006:{"value":"A7FE","name":"LATIN EPIGRAPHIC LETTER I LONGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA7FE"},43007:{"value":"A7FF","name":"LATIN EPIGRAPHIC LETTER ARCHAIC M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA7FF"},43008:{"value":"A800","name":"SYLOTI NAGRI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA800"},43009:{"value":"A801","name":"SYLOTI NAGRI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA801"},43011:{"value":"A803","name":"SYLOTI NAGRI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA803"},43012:{"value":"A804","name":"SYLOTI NAGRI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA804"},43013:{"value":"A805","name":"SYLOTI NAGRI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA805"},43015:{"value":"A807","name":"SYLOTI NAGRI LETTER KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA807"},43016:{"value":"A808","name":"SYLOTI NAGRI LETTER KHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA808"},43017:{"value":"A809","name":"SYLOTI NAGRI LETTER GO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA809"},43018:{"value":"A80A","name":"SYLOTI NAGRI LETTER GHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA80A"},43020:{"value":"A80C","name":"SYLOTI NAGRI LETTER CO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA80C"},43021:{"value":"A80D","name":"SYLOTI NAGRI LETTER CHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA80D"},43022:{"value":"A80E","name":"SYLOTI NAGRI LETTER JO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA80E"},43023:{"value":"A80F","name":"SYLOTI NAGRI LETTER JHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA80F"},43024:{"value":"A810","name":"SYLOTI NAGRI LETTER TTO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA810"},43025:{"value":"A811","name":"SYLOTI NAGRI LETTER TTHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA811"},43026:{"value":"A812","name":"SYLOTI NAGRI LETTER DDO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA812"},43027:{"value":"A813","name":"SYLOTI NAGRI LETTER DDHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA813"},43028:{"value":"A814","name":"SYLOTI NAGRI LETTER TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA814"},43029:{"value":"A815","name":"SYLOTI NAGRI LETTER THO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA815"},43030:{"value":"A816","name":"SYLOTI NAGRI LETTER DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA816"},43031:{"value":"A817","name":"SYLOTI NAGRI LETTER DHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA817"},43032:{"value":"A818","name":"SYLOTI NAGRI LETTER NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA818"},43033:{"value":"A819","name":"SYLOTI NAGRI LETTER PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA819"},43034:{"value":"A81A","name":"SYLOTI NAGRI LETTER PHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA81A"},43035:{"value":"A81B","name":"SYLOTI NAGRI LETTER BO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA81B"},43036:{"value":"A81C","name":"SYLOTI NAGRI LETTER BHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA81C"},43037:{"value":"A81D","name":"SYLOTI NAGRI LETTER MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA81D"},43038:{"value":"A81E","name":"SYLOTI NAGRI LETTER RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA81E"},43039:{"value":"A81F","name":"SYLOTI NAGRI LETTER LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA81F"},43040:{"value":"A820","name":"SYLOTI NAGRI LETTER RRO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA820"},43041:{"value":"A821","name":"SYLOTI NAGRI LETTER SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA821"},43042:{"value":"A822","name":"SYLOTI NAGRI LETTER HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA822"},43072:{"value":"A840","name":"PHAGS-PA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA840"},43073:{"value":"A841","name":"PHAGS-PA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA841"},43074:{"value":"A842","name":"PHAGS-PA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA842"},43075:{"value":"A843","name":"PHAGS-PA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA843"},43076:{"value":"A844","name":"PHAGS-PA LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA844"},43077:{"value":"A845","name":"PHAGS-PA LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA845"},43078:{"value":"A846","name":"PHAGS-PA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA846"},43079:{"value":"A847","name":"PHAGS-PA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA847"},43080:{"value":"A848","name":"PHAGS-PA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA848"},43081:{"value":"A849","name":"PHAGS-PA LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA849"},43082:{"value":"A84A","name":"PHAGS-PA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA84A"},43083:{"value":"A84B","name":"PHAGS-PA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA84B"},43084:{"value":"A84C","name":"PHAGS-PA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA84C"},43085:{"value":"A84D","name":"PHAGS-PA LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA84D"},43086:{"value":"A84E","name":"PHAGS-PA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA84E"},43087:{"value":"A84F","name":"PHAGS-PA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA84F"},43088:{"value":"A850","name":"PHAGS-PA LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA850"},43089:{"value":"A851","name":"PHAGS-PA LETTER TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA851"},43090:{"value":"A852","name":"PHAGS-PA LETTER DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA852"},43091:{"value":"A853","name":"PHAGS-PA LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA853"},43092:{"value":"A854","name":"PHAGS-PA LETTER ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA854"},43093:{"value":"A855","name":"PHAGS-PA LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA855"},43094:{"value":"A856","name":"PHAGS-PA LETTER SMALL A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA856"},43095:{"value":"A857","name":"PHAGS-PA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA857"},43096:{"value":"A858","name":"PHAGS-PA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA858"},43097:{"value":"A859","name":"PHAGS-PA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA859"},43098:{"value":"A85A","name":"PHAGS-PA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA85A"},43099:{"value":"A85B","name":"PHAGS-PA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA85B"},43100:{"value":"A85C","name":"PHAGS-PA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA85C"},43101:{"value":"A85D","name":"PHAGS-PA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA85D"},43102:{"value":"A85E","name":"PHAGS-PA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA85E"},43103:{"value":"A85F","name":"PHAGS-PA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA85F"},43104:{"value":"A860","name":"PHAGS-PA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA860"},43105:{"value":"A861","name":"PHAGS-PA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA861"},43106:{"value":"A862","name":"PHAGS-PA LETTER QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA862"},43107:{"value":"A863","name":"PHAGS-PA LETTER XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA863"},43108:{"value":"A864","name":"PHAGS-PA LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA864"},43109:{"value":"A865","name":"PHAGS-PA LETTER GGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA865"},43110:{"value":"A866","name":"PHAGS-PA LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA866"},43111:{"value":"A867","name":"PHAGS-PA SUBJOINED LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA867"},43112:{"value":"A868","name":"PHAGS-PA SUBJOINED LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA868"},43113:{"value":"A869","name":"PHAGS-PA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA869"},43114:{"value":"A86A","name":"PHAGS-PA LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA86A"},43115:{"value":"A86B","name":"PHAGS-PA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA86B"},43116:{"value":"A86C","name":"PHAGS-PA LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA86C"},43117:{"value":"A86D","name":"PHAGS-PA LETTER ALTERNATE YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA86D"},43118:{"value":"A86E","name":"PHAGS-PA LETTER VOICELESS SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA86E"},43119:{"value":"A86F","name":"PHAGS-PA LETTER VOICED HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA86F"},43120:{"value":"A870","name":"PHAGS-PA LETTER ASPIRATED FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA870"},43121:{"value":"A871","name":"PHAGS-PA SUBJOINED LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA871"},43122:{"value":"A872","name":"PHAGS-PA SUPERFIXED LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA872"},43123:{"value":"A873","name":"PHAGS-PA LETTER CANDRABINDU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA873"},43138:{"value":"A882","name":"SAURASHTRA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA882"},43139:{"value":"A883","name":"SAURASHTRA LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA883"},43140:{"value":"A884","name":"SAURASHTRA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA884"},43141:{"value":"A885","name":"SAURASHTRA LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA885"},43142:{"value":"A886","name":"SAURASHTRA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA886"},43143:{"value":"A887","name":"SAURASHTRA LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA887"},43144:{"value":"A888","name":"SAURASHTRA LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA888"},43145:{"value":"A889","name":"SAURASHTRA LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA889"},43146:{"value":"A88A","name":"SAURASHTRA LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA88A"},43147:{"value":"A88B","name":"SAURASHTRA LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA88B"},43148:{"value":"A88C","name":"SAURASHTRA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA88C"},43149:{"value":"A88D","name":"SAURASHTRA LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA88D"},43150:{"value":"A88E","name":"SAURASHTRA LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA88E"},43151:{"value":"A88F","name":"SAURASHTRA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA88F"},43152:{"value":"A890","name":"SAURASHTRA LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA890"},43153:{"value":"A891","name":"SAURASHTRA LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA891"},43154:{"value":"A892","name":"SAURASHTRA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA892"},43155:{"value":"A893","name":"SAURASHTRA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA893"},43156:{"value":"A894","name":"SAURASHTRA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA894"},43157:{"value":"A895","name":"SAURASHTRA LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA895"},43158:{"value":"A896","name":"SAURASHTRA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA896"},43159:{"value":"A897","name":"SAURASHTRA LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA897"},43160:{"value":"A898","name":"SAURASHTRA LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA898"},43161:{"value":"A899","name":"SAURASHTRA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA899"},43162:{"value":"A89A","name":"SAURASHTRA LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA89A"},43163:{"value":"A89B","name":"SAURASHTRA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA89B"},43164:{"value":"A89C","name":"SAURASHTRA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA89C"},43165:{"value":"A89D","name":"SAURASHTRA LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA89D"},43166:{"value":"A89E","name":"SAURASHTRA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA89E"},43167:{"value":"A89F","name":"SAURASHTRA LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA89F"},43168:{"value":"A8A0","name":"SAURASHTRA LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8A0"},43169:{"value":"A8A1","name":"SAURASHTRA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8A1"},43170:{"value":"A8A2","name":"SAURASHTRA LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8A2"},43171:{"value":"A8A3","name":"SAURASHTRA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8A3"},43172:{"value":"A8A4","name":"SAURASHTRA LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8A4"},43173:{"value":"A8A5","name":"SAURASHTRA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8A5"},43174:{"value":"A8A6","name":"SAURASHTRA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8A6"},43175:{"value":"A8A7","name":"SAURASHTRA LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8A7"},43176:{"value":"A8A8","name":"SAURASHTRA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8A8"},43177:{"value":"A8A9","name":"SAURASHTRA LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8A9"},43178:{"value":"A8AA","name":"SAURASHTRA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8AA"},43179:{"value":"A8AB","name":"SAURASHTRA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8AB"},43180:{"value":"A8AC","name":"SAURASHTRA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8AC"},43181:{"value":"A8AD","name":"SAURASHTRA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8AD"},43182:{"value":"A8AE","name":"SAURASHTRA LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8AE"},43183:{"value":"A8AF","name":"SAURASHTRA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8AF"},43184:{"value":"A8B0","name":"SAURASHTRA LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8B0"},43185:{"value":"A8B1","name":"SAURASHTRA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8B1"},43186:{"value":"A8B2","name":"SAURASHTRA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8B2"},43187:{"value":"A8B3","name":"SAURASHTRA LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8B3"},43250:{"value":"A8F2","name":"DEVANAGARI SIGN SPACING CANDRABINDU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8F2"},43251:{"value":"A8F3","name":"DEVANAGARI SIGN CANDRABINDU VIRAMA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8F3"},43252:{"value":"A8F4","name":"DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8F4"},43253:{"value":"A8F5","name":"DEVANAGARI SIGN CANDRABINDU TWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8F5"},43254:{"value":"A8F6","name":"DEVANAGARI SIGN CANDRABINDU THREE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8F6"},43255:{"value":"A8F7","name":"DEVANAGARI SIGN CANDRABINDU AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8F7"},43259:{"value":"A8FB","name":"DEVANAGARI HEADSTROKE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8FB"},43261:{"value":"A8FD","name":"DEVANAGARI JAIN OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8FD"},43262:{"value":"A8FE","name":"DEVANAGARI LETTER AY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8FE"},43274:{"value":"A90A","name":"KAYAH LI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA90A"},43275:{"value":"A90B","name":"KAYAH LI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA90B"},43276:{"value":"A90C","name":"KAYAH LI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA90C"},43277:{"value":"A90D","name":"KAYAH LI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA90D"},43278:{"value":"A90E","name":"KAYAH LI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA90E"},43279:{"value":"A90F","name":"KAYAH LI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA90F"},43280:{"value":"A910","name":"KAYAH LI LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA910"},43281:{"value":"A911","name":"KAYAH LI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA911"},43282:{"value":"A912","name":"KAYAH LI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA912"},43283:{"value":"A913","name":"KAYAH LI LETTER HTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA913"},43284:{"value":"A914","name":"KAYAH LI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA914"},43285:{"value":"A915","name":"KAYAH LI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA915"},43286:{"value":"A916","name":"KAYAH LI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA916"},43287:{"value":"A917","name":"KAYAH LI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA917"},43288:{"value":"A918","name":"KAYAH LI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA918"},43289:{"value":"A919","name":"KAYAH LI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA919"},43290:{"value":"A91A","name":"KAYAH LI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA91A"},43291:{"value":"A91B","name":"KAYAH LI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA91B"},43292:{"value":"A91C","name":"KAYAH LI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA91C"},43293:{"value":"A91D","name":"KAYAH LI LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA91D"},43294:{"value":"A91E","name":"KAYAH LI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA91E"},43295:{"value":"A91F","name":"KAYAH LI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA91F"},43296:{"value":"A920","name":"KAYAH LI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA920"},43297:{"value":"A921","name":"KAYAH LI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA921"},43298:{"value":"A922","name":"KAYAH LI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA922"},43299:{"value":"A923","name":"KAYAH LI LETTER OE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA923"},43300:{"value":"A924","name":"KAYAH LI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA924"},43301:{"value":"A925","name":"KAYAH LI LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA925"},43312:{"value":"A930","name":"REJANG LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA930"},43313:{"value":"A931","name":"REJANG LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA931"},43314:{"value":"A932","name":"REJANG LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA932"},43315:{"value":"A933","name":"REJANG LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA933"},43316:{"value":"A934","name":"REJANG LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA934"},43317:{"value":"A935","name":"REJANG LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA935"},43318:{"value":"A936","name":"REJANG LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA936"},43319:{"value":"A937","name":"REJANG LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA937"},43320:{"value":"A938","name":"REJANG LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA938"},43321:{"value":"A939","name":"REJANG LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA939"},43322:{"value":"A93A","name":"REJANG LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA93A"},43323:{"value":"A93B","name":"REJANG LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA93B"},43324:{"value":"A93C","name":"REJANG LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA93C"},43325:{"value":"A93D","name":"REJANG LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA93D"},43326:{"value":"A93E","name":"REJANG LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA93E"},43327:{"value":"A93F","name":"REJANG LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA93F"},43328:{"value":"A940","name":"REJANG LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA940"},43329:{"value":"A941","name":"REJANG LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA941"},43330:{"value":"A942","name":"REJANG LETTER MBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA942"},43331:{"value":"A943","name":"REJANG LETTER NGGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA943"},43332:{"value":"A944","name":"REJANG LETTER NDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA944"},43333:{"value":"A945","name":"REJANG LETTER NYJA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA945"},43334:{"value":"A946","name":"REJANG LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA946"},43360:{"value":"A960","name":"HANGUL CHOSEONG TIKEUT-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA960"},43361:{"value":"A961","name":"HANGUL CHOSEONG TIKEUT-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA961"},43362:{"value":"A962","name":"HANGUL CHOSEONG TIKEUT-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA962"},43363:{"value":"A963","name":"HANGUL CHOSEONG TIKEUT-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA963"},43364:{"value":"A964","name":"HANGUL CHOSEONG RIEUL-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA964"},43365:{"value":"A965","name":"HANGUL CHOSEONG RIEUL-SSANGKIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA965"},43366:{"value":"A966","name":"HANGUL CHOSEONG RIEUL-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA966"},43367:{"value":"A967","name":"HANGUL CHOSEONG RIEUL-SSANGTIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA967"},43368:{"value":"A968","name":"HANGUL CHOSEONG RIEUL-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA968"},43369:{"value":"A969","name":"HANGUL CHOSEONG RIEUL-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA969"},43370:{"value":"A96A","name":"HANGUL CHOSEONG RIEUL-SSANGPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA96A"},43371:{"value":"A96B","name":"HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA96B"},43372:{"value":"A96C","name":"HANGUL CHOSEONG RIEUL-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA96C"},43373:{"value":"A96D","name":"HANGUL CHOSEONG RIEUL-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA96D"},43374:{"value":"A96E","name":"HANGUL CHOSEONG RIEUL-KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA96E"},43375:{"value":"A96F","name":"HANGUL CHOSEONG MIEUM-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA96F"},43376:{"value":"A970","name":"HANGUL CHOSEONG MIEUM-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA970"},43377:{"value":"A971","name":"HANGUL CHOSEONG MIEUM-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA971"},43378:{"value":"A972","name":"HANGUL CHOSEONG PIEUP-SIOS-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA972"},43379:{"value":"A973","name":"HANGUL CHOSEONG PIEUP-KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA973"},43380:{"value":"A974","name":"HANGUL CHOSEONG PIEUP-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA974"},43381:{"value":"A975","name":"HANGUL CHOSEONG SSANGSIOS-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA975"},43382:{"value":"A976","name":"HANGUL CHOSEONG IEUNG-RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA976"},43383:{"value":"A977","name":"HANGUL CHOSEONG IEUNG-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA977"},43384:{"value":"A978","name":"HANGUL CHOSEONG SSANGCIEUC-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA978"},43385:{"value":"A979","name":"HANGUL CHOSEONG SSANGTHIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA979"},43386:{"value":"A97A","name":"HANGUL CHOSEONG PHIEUPH-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA97A"},43387:{"value":"A97B","name":"HANGUL CHOSEONG HIEUH-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA97B"},43388:{"value":"A97C","name":"HANGUL CHOSEONG SSANGYEORINHIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA97C"},43396:{"value":"A984","name":"JAVANESE LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA984"},43397:{"value":"A985","name":"JAVANESE LETTER I KAWI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA985"},43398:{"value":"A986","name":"JAVANESE LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA986"},43399:{"value":"A987","name":"JAVANESE LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA987"},43400:{"value":"A988","name":"JAVANESE LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA988"},43401:{"value":"A989","name":"JAVANESE LETTER PA CEREK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA989"},43402:{"value":"A98A","name":"JAVANESE LETTER NGA LELET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA98A"},43403:{"value":"A98B","name":"JAVANESE LETTER NGA LELET RASWADI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA98B"},43404:{"value":"A98C","name":"JAVANESE LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA98C"},43405:{"value":"A98D","name":"JAVANESE LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA98D"},43406:{"value":"A98E","name":"JAVANESE LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA98E"},43407:{"value":"A98F","name":"JAVANESE LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA98F"},43408:{"value":"A990","name":"JAVANESE LETTER KA SASAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA990"},43409:{"value":"A991","name":"JAVANESE LETTER KA MURDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA991"},43410:{"value":"A992","name":"JAVANESE LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA992"},43411:{"value":"A993","name":"JAVANESE LETTER GA MURDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA993"},43412:{"value":"A994","name":"JAVANESE LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA994"},43413:{"value":"A995","name":"JAVANESE LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA995"},43414:{"value":"A996","name":"JAVANESE LETTER CA MURDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA996"},43415:{"value":"A997","name":"JAVANESE LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA997"},43416:{"value":"A998","name":"JAVANESE LETTER NYA MURDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA998"},43417:{"value":"A999","name":"JAVANESE LETTER JA MAHAPRANA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA999"},43418:{"value":"A99A","name":"JAVANESE LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA99A"},43419:{"value":"A99B","name":"JAVANESE LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA99B"},43420:{"value":"A99C","name":"JAVANESE LETTER TTA MAHAPRANA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA99C"},43421:{"value":"A99D","name":"JAVANESE LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA99D"},43422:{"value":"A99E","name":"JAVANESE LETTER DDA MAHAPRANA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA99E"},43423:{"value":"A99F","name":"JAVANESE LETTER NA MURDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA99F"},43424:{"value":"A9A0","name":"JAVANESE LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9A0"},43425:{"value":"A9A1","name":"JAVANESE LETTER TA MURDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9A1"},43426:{"value":"A9A2","name":"JAVANESE LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9A2"},43427:{"value":"A9A3","name":"JAVANESE LETTER DA MAHAPRANA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9A3"},43428:{"value":"A9A4","name":"JAVANESE LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9A4"},43429:{"value":"A9A5","name":"JAVANESE LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9A5"},43430:{"value":"A9A6","name":"JAVANESE LETTER PA MURDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9A6"},43431:{"value":"A9A7","name":"JAVANESE LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9A7"},43432:{"value":"A9A8","name":"JAVANESE LETTER BA MURDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9A8"},43433:{"value":"A9A9","name":"JAVANESE LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9A9"},43434:{"value":"A9AA","name":"JAVANESE LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9AA"},43435:{"value":"A9AB","name":"JAVANESE LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9AB"},43436:{"value":"A9AC","name":"JAVANESE LETTER RA AGUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9AC"},43437:{"value":"A9AD","name":"JAVANESE LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9AD"},43438:{"value":"A9AE","name":"JAVANESE LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9AE"},43439:{"value":"A9AF","name":"JAVANESE LETTER SA MURDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9AF"},43440:{"value":"A9B0","name":"JAVANESE LETTER SA MAHAPRANA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9B0"},43441:{"value":"A9B1","name":"JAVANESE LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9B1"},43442:{"value":"A9B2","name":"JAVANESE LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9B2"},43488:{"value":"A9E0","name":"MYANMAR LETTER SHAN GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9E0"},43489:{"value":"A9E1","name":"MYANMAR LETTER SHAN CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9E1"},43490:{"value":"A9E2","name":"MYANMAR LETTER SHAN JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9E2"},43491:{"value":"A9E3","name":"MYANMAR LETTER SHAN NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9E3"},43492:{"value":"A9E4","name":"MYANMAR LETTER SHAN BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9E4"},43495:{"value":"A9E7","name":"MYANMAR LETTER TAI LAING NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9E7"},43496:{"value":"A9E8","name":"MYANMAR LETTER TAI LAING FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9E8"},43497:{"value":"A9E9","name":"MYANMAR LETTER TAI LAING GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9E9"},43498:{"value":"A9EA","name":"MYANMAR LETTER TAI LAING GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9EA"},43499:{"value":"A9EB","name":"MYANMAR LETTER TAI LAING JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9EB"},43500:{"value":"A9EC","name":"MYANMAR LETTER TAI LAING JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9EC"},43501:{"value":"A9ED","name":"MYANMAR LETTER TAI LAING DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9ED"},43502:{"value":"A9EE","name":"MYANMAR LETTER TAI LAING DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9EE"},43503:{"value":"A9EF","name":"MYANMAR LETTER TAI LAING NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9EF"},43514:{"value":"A9FA","name":"MYANMAR LETTER TAI LAING LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9FA"},43515:{"value":"A9FB","name":"MYANMAR LETTER TAI LAING DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9FB"},43516:{"value":"A9FC","name":"MYANMAR LETTER TAI LAING DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9FC"},43517:{"value":"A9FD","name":"MYANMAR LETTER TAI LAING BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9FD"},43518:{"value":"A9FE","name":"MYANMAR LETTER TAI LAING BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9FE"},43520:{"value":"AA00","name":"CHAM LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA00"},43521:{"value":"AA01","name":"CHAM LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA01"},43522:{"value":"AA02","name":"CHAM LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA02"},43523:{"value":"AA03","name":"CHAM LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA03"},43524:{"value":"AA04","name":"CHAM LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA04"},43525:{"value":"AA05","name":"CHAM LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA05"},43526:{"value":"AA06","name":"CHAM LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA06"},43527:{"value":"AA07","name":"CHAM LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA07"},43528:{"value":"AA08","name":"CHAM LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA08"},43529:{"value":"AA09","name":"CHAM LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA09"},43530:{"value":"AA0A","name":"CHAM LETTER NGUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA0A"},43531:{"value":"AA0B","name":"CHAM LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA0B"},43532:{"value":"AA0C","name":"CHAM LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA0C"},43533:{"value":"AA0D","name":"CHAM LETTER CHHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA0D"},43534:{"value":"AA0E","name":"CHAM LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA0E"},43535:{"value":"AA0F","name":"CHAM LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA0F"},43536:{"value":"AA10","name":"CHAM LETTER NHUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA10"},43537:{"value":"AA11","name":"CHAM LETTER NHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA11"},43538:{"value":"AA12","name":"CHAM LETTER NHJA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA12"},43539:{"value":"AA13","name":"CHAM LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA13"},43540:{"value":"AA14","name":"CHAM LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA14"},43541:{"value":"AA15","name":"CHAM LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA15"},43542:{"value":"AA16","name":"CHAM LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA16"},43543:{"value":"AA17","name":"CHAM LETTER NUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA17"},43544:{"value":"AA18","name":"CHAM LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA18"},43545:{"value":"AA19","name":"CHAM LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA19"},43546:{"value":"AA1A","name":"CHAM LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA1A"},43547:{"value":"AA1B","name":"CHAM LETTER PPA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA1B"},43548:{"value":"AA1C","name":"CHAM LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA1C"},43549:{"value":"AA1D","name":"CHAM LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA1D"},43550:{"value":"AA1E","name":"CHAM LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA1E"},43551:{"value":"AA1F","name":"CHAM LETTER MUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA1F"},43552:{"value":"AA20","name":"CHAM LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA20"},43553:{"value":"AA21","name":"CHAM LETTER BBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA21"},43554:{"value":"AA22","name":"CHAM LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA22"},43555:{"value":"AA23","name":"CHAM LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA23"},43556:{"value":"AA24","name":"CHAM LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA24"},43557:{"value":"AA25","name":"CHAM LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA25"},43558:{"value":"AA26","name":"CHAM LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA26"},43559:{"value":"AA27","name":"CHAM LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA27"},43560:{"value":"AA28","name":"CHAM LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA28"},43584:{"value":"AA40","name":"CHAM LETTER FINAL K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA40"},43585:{"value":"AA41","name":"CHAM LETTER FINAL G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA41"},43586:{"value":"AA42","name":"CHAM LETTER FINAL NG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA42"},43588:{"value":"AA44","name":"CHAM LETTER FINAL CH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA44"},43589:{"value":"AA45","name":"CHAM LETTER FINAL T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA45"},43590:{"value":"AA46","name":"CHAM LETTER FINAL N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA46"},43591:{"value":"AA47","name":"CHAM LETTER FINAL P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA47"},43592:{"value":"AA48","name":"CHAM LETTER FINAL Y","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA48"},43593:{"value":"AA49","name":"CHAM LETTER FINAL R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA49"},43594:{"value":"AA4A","name":"CHAM LETTER FINAL L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA4A"},43595:{"value":"AA4B","name":"CHAM LETTER FINAL SS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA4B"},43616:{"value":"AA60","name":"MYANMAR LETTER KHAMTI GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA60"},43617:{"value":"AA61","name":"MYANMAR LETTER KHAMTI CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA61"},43618:{"value":"AA62","name":"MYANMAR LETTER KHAMTI CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA62"},43619:{"value":"AA63","name":"MYANMAR LETTER KHAMTI JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA63"},43620:{"value":"AA64","name":"MYANMAR LETTER KHAMTI JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA64"},43621:{"value":"AA65","name":"MYANMAR LETTER KHAMTI NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA65"},43622:{"value":"AA66","name":"MYANMAR LETTER KHAMTI TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA66"},43623:{"value":"AA67","name":"MYANMAR LETTER KHAMTI TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA67"},43624:{"value":"AA68","name":"MYANMAR LETTER KHAMTI DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA68"},43625:{"value":"AA69","name":"MYANMAR LETTER KHAMTI DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA69"},43626:{"value":"AA6A","name":"MYANMAR LETTER KHAMTI DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA6A"},43627:{"value":"AA6B","name":"MYANMAR LETTER KHAMTI NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA6B"},43628:{"value":"AA6C","name":"MYANMAR LETTER KHAMTI SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA6C"},43629:{"value":"AA6D","name":"MYANMAR LETTER KHAMTI HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA6D"},43630:{"value":"AA6E","name":"MYANMAR LETTER KHAMTI HHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA6E"},43631:{"value":"AA6F","name":"MYANMAR LETTER KHAMTI FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA6F"},43633:{"value":"AA71","name":"MYANMAR LETTER KHAMTI XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA71"},43634:{"value":"AA72","name":"MYANMAR LETTER KHAMTI ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA72"},43635:{"value":"AA73","name":"MYANMAR LETTER KHAMTI RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA73"},43636:{"value":"AA74","name":"MYANMAR LOGOGRAM KHAMTI OAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA74"},43637:{"value":"AA75","name":"MYANMAR LOGOGRAM KHAMTI QN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA75"},43638:{"value":"AA76","name":"MYANMAR LOGOGRAM KHAMTI HM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA76"},43642:{"value":"AA7A","name":"MYANMAR LETTER AITON RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA7A"},43646:{"value":"AA7E","name":"MYANMAR LETTER SHWE PALAUNG CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA7E"},43647:{"value":"AA7F","name":"MYANMAR LETTER SHWE PALAUNG SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA7F"},43648:{"value":"AA80","name":"TAI VIET LETTER LOW KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA80"},43649:{"value":"AA81","name":"TAI VIET LETTER HIGH KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA81"},43650:{"value":"AA82","name":"TAI VIET LETTER LOW KHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA82"},43651:{"value":"AA83","name":"TAI VIET LETTER HIGH KHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA83"},43652:{"value":"AA84","name":"TAI VIET LETTER LOW KHHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA84"},43653:{"value":"AA85","name":"TAI VIET LETTER HIGH KHHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA85"},43654:{"value":"AA86","name":"TAI VIET LETTER LOW GO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA86"},43655:{"value":"AA87","name":"TAI VIET LETTER HIGH GO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA87"},43656:{"value":"AA88","name":"TAI VIET LETTER LOW NGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA88"},43657:{"value":"AA89","name":"TAI VIET LETTER HIGH NGO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA89"},43658:{"value":"AA8A","name":"TAI VIET LETTER LOW CO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA8A"},43659:{"value":"AA8B","name":"TAI VIET LETTER HIGH CO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA8B"},43660:{"value":"AA8C","name":"TAI VIET LETTER LOW CHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA8C"},43661:{"value":"AA8D","name":"TAI VIET LETTER HIGH CHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA8D"},43662:{"value":"AA8E","name":"TAI VIET LETTER LOW SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA8E"},43663:{"value":"AA8F","name":"TAI VIET LETTER HIGH SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA8F"},43664:{"value":"AA90","name":"TAI VIET LETTER LOW NYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA90"},43665:{"value":"AA91","name":"TAI VIET LETTER HIGH NYO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA91"},43666:{"value":"AA92","name":"TAI VIET LETTER LOW DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA92"},43667:{"value":"AA93","name":"TAI VIET LETTER HIGH DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA93"},43668:{"value":"AA94","name":"TAI VIET LETTER LOW TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA94"},43669:{"value":"AA95","name":"TAI VIET LETTER HIGH TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA95"},43670:{"value":"AA96","name":"TAI VIET LETTER LOW THO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA96"},43671:{"value":"AA97","name":"TAI VIET LETTER HIGH THO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA97"},43672:{"value":"AA98","name":"TAI VIET LETTER LOW NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA98"},43673:{"value":"AA99","name":"TAI VIET LETTER HIGH NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA99"},43674:{"value":"AA9A","name":"TAI VIET LETTER LOW BO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA9A"},43675:{"value":"AA9B","name":"TAI VIET LETTER HIGH BO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA9B"},43676:{"value":"AA9C","name":"TAI VIET LETTER LOW PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA9C"},43677:{"value":"AA9D","name":"TAI VIET LETTER HIGH PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA9D"},43678:{"value":"AA9E","name":"TAI VIET LETTER LOW PHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA9E"},43679:{"value":"AA9F","name":"TAI VIET LETTER HIGH PHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA9F"},43680:{"value":"AAA0","name":"TAI VIET LETTER LOW FO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAA0"},43681:{"value":"AAA1","name":"TAI VIET LETTER HIGH FO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAA1"},43682:{"value":"AAA2","name":"TAI VIET LETTER LOW MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAA2"},43683:{"value":"AAA3","name":"TAI VIET LETTER HIGH MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAA3"},43684:{"value":"AAA4","name":"TAI VIET LETTER LOW YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAA4"},43685:{"value":"AAA5","name":"TAI VIET LETTER HIGH YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAA5"},43686:{"value":"AAA6","name":"TAI VIET LETTER LOW RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAA6"},43687:{"value":"AAA7","name":"TAI VIET LETTER HIGH RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAA7"},43688:{"value":"AAA8","name":"TAI VIET LETTER LOW LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAA8"},43689:{"value":"AAA9","name":"TAI VIET LETTER HIGH LO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAA9"},43690:{"value":"AAAA","name":"TAI VIET LETTER LOW VO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAAA"},43691:{"value":"AAAB","name":"TAI VIET LETTER HIGH VO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAAB"},43692:{"value":"AAAC","name":"TAI VIET LETTER LOW HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAAC"},43693:{"value":"AAAD","name":"TAI VIET LETTER HIGH HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAAD"},43694:{"value":"AAAE","name":"TAI VIET LETTER LOW O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAAE"},43695:{"value":"AAAF","name":"TAI VIET LETTER HIGH O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAAF"},43697:{"value":"AAB1","name":"TAI VIET VOWEL AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAB1"},43701:{"value":"AAB5","name":"TAI VIET VOWEL E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAB5"},43702:{"value":"AAB6","name":"TAI VIET VOWEL O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAB6"},43705:{"value":"AAB9","name":"TAI VIET VOWEL UEA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAB9"},43706:{"value":"AABA","name":"TAI VIET VOWEL UA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAABA"},43707:{"value":"AABB","name":"TAI VIET VOWEL AUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAABB"},43708:{"value":"AABC","name":"TAI VIET VOWEL AY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAABC"},43709:{"value":"AABD","name":"TAI VIET VOWEL AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAABD"},43712:{"value":"AAC0","name":"TAI VIET TONE MAI NUENG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAC0"},43714:{"value":"AAC2","name":"TAI VIET TONE MAI SONG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAC2"},43739:{"value":"AADB","name":"TAI VIET SYMBOL KON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAADB"},43740:{"value":"AADC","name":"TAI VIET SYMBOL NUENG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAADC"},43744:{"value":"AAE0","name":"MEETEI MAYEK LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAE0"},43745:{"value":"AAE1","name":"MEETEI MAYEK LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAE1"},43746:{"value":"AAE2","name":"MEETEI MAYEK LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAE2"},43747:{"value":"AAE3","name":"MEETEI MAYEK LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAE3"},43748:{"value":"AAE4","name":"MEETEI MAYEK LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAE4"},43749:{"value":"AAE5","name":"MEETEI MAYEK LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAE5"},43750:{"value":"AAE6","name":"MEETEI MAYEK LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAE6"},43751:{"value":"AAE7","name":"MEETEI MAYEK LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAE7"},43752:{"value":"AAE8","name":"MEETEI MAYEK LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAE8"},43753:{"value":"AAE9","name":"MEETEI MAYEK LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAE9"},43754:{"value":"AAEA","name":"MEETEI MAYEK LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAEA"},43762:{"value":"AAF2","name":"MEETEI MAYEK ANJI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAF2"},43777:{"value":"AB01","name":"ETHIOPIC SYLLABLE TTHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB01"},43778:{"value":"AB02","name":"ETHIOPIC SYLLABLE TTHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB02"},43779:{"value":"AB03","name":"ETHIOPIC SYLLABLE TTHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB03"},43780:{"value":"AB04","name":"ETHIOPIC SYLLABLE TTHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB04"},43781:{"value":"AB05","name":"ETHIOPIC SYLLABLE TTHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB05"},43782:{"value":"AB06","name":"ETHIOPIC SYLLABLE TTHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB06"},43785:{"value":"AB09","name":"ETHIOPIC SYLLABLE DDHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB09"},43786:{"value":"AB0A","name":"ETHIOPIC SYLLABLE DDHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB0A"},43787:{"value":"AB0B","name":"ETHIOPIC SYLLABLE DDHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB0B"},43788:{"value":"AB0C","name":"ETHIOPIC SYLLABLE DDHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB0C"},43789:{"value":"AB0D","name":"ETHIOPIC SYLLABLE DDHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB0D"},43790:{"value":"AB0E","name":"ETHIOPIC SYLLABLE DDHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB0E"},43793:{"value":"AB11","name":"ETHIOPIC SYLLABLE DZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB11"},43794:{"value":"AB12","name":"ETHIOPIC SYLLABLE DZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB12"},43795:{"value":"AB13","name":"ETHIOPIC SYLLABLE DZAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB13"},43796:{"value":"AB14","name":"ETHIOPIC SYLLABLE DZEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB14"},43797:{"value":"AB15","name":"ETHIOPIC SYLLABLE DZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB15"},43798:{"value":"AB16","name":"ETHIOPIC SYLLABLE DZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB16"},43808:{"value":"AB20","name":"ETHIOPIC SYLLABLE CCHHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB20"},43809:{"value":"AB21","name":"ETHIOPIC SYLLABLE CCHHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB21"},43810:{"value":"AB22","name":"ETHIOPIC SYLLABLE CCHHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB22"},43811:{"value":"AB23","name":"ETHIOPIC SYLLABLE CCHHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB23"},43812:{"value":"AB24","name":"ETHIOPIC SYLLABLE CCHHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB24"},43813:{"value":"AB25","name":"ETHIOPIC SYLLABLE CCHHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB25"},43814:{"value":"AB26","name":"ETHIOPIC SYLLABLE CCHHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB26"},43816:{"value":"AB28","name":"ETHIOPIC SYLLABLE BBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB28"},43817:{"value":"AB29","name":"ETHIOPIC SYLLABLE BBU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB29"},43818:{"value":"AB2A","name":"ETHIOPIC SYLLABLE BBI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB2A"},43819:{"value":"AB2B","name":"ETHIOPIC SYLLABLE BBAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB2B"},43820:{"value":"AB2C","name":"ETHIOPIC SYLLABLE BBEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB2C"},43821:{"value":"AB2D","name":"ETHIOPIC SYLLABLE BBE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB2D"},43822:{"value":"AB2E","name":"ETHIOPIC SYLLABLE BBO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB2E"},43968:{"value":"ABC0","name":"MEETEI MAYEK LETTER KOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABC0"},43969:{"value":"ABC1","name":"MEETEI MAYEK LETTER SAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABC1"},43970:{"value":"ABC2","name":"MEETEI MAYEK LETTER LAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABC2"},43971:{"value":"ABC3","name":"MEETEI MAYEK LETTER MIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABC3"},43972:{"value":"ABC4","name":"MEETEI MAYEK LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABC4"},43973:{"value":"ABC5","name":"MEETEI MAYEK LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABC5"},43974:{"value":"ABC6","name":"MEETEI MAYEK LETTER CHIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABC6"},43975:{"value":"ABC7","name":"MEETEI MAYEK LETTER TIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABC7"},43976:{"value":"ABC8","name":"MEETEI MAYEK LETTER KHOU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABC8"},43977:{"value":"ABC9","name":"MEETEI MAYEK LETTER NGOU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABC9"},43978:{"value":"ABCA","name":"MEETEI MAYEK LETTER THOU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABCA"},43979:{"value":"ABCB","name":"MEETEI MAYEK LETTER WAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABCB"},43980:{"value":"ABCC","name":"MEETEI MAYEK LETTER YANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABCC"},43981:{"value":"ABCD","name":"MEETEI MAYEK LETTER HUK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABCD"},43982:{"value":"ABCE","name":"MEETEI MAYEK LETTER UN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABCE"},43983:{"value":"ABCF","name":"MEETEI MAYEK LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABCF"},43984:{"value":"ABD0","name":"MEETEI MAYEK LETTER PHAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABD0"},43985:{"value":"ABD1","name":"MEETEI MAYEK LETTER ATIYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABD1"},43986:{"value":"ABD2","name":"MEETEI MAYEK LETTER GOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABD2"},43987:{"value":"ABD3","name":"MEETEI MAYEK LETTER JHAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABD3"},43988:{"value":"ABD4","name":"MEETEI MAYEK LETTER RAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABD4"},43989:{"value":"ABD5","name":"MEETEI MAYEK LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABD5"},43990:{"value":"ABD6","name":"MEETEI MAYEK LETTER JIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABD6"},43991:{"value":"ABD7","name":"MEETEI MAYEK LETTER DIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABD7"},43992:{"value":"ABD8","name":"MEETEI MAYEK LETTER GHOU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABD8"},43993:{"value":"ABD9","name":"MEETEI MAYEK LETTER DHOU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABD9"},43994:{"value":"ABDA","name":"MEETEI MAYEK LETTER BHAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABDA"},43995:{"value":"ABDB","name":"MEETEI MAYEK LETTER KOK LONSUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABDB"},43996:{"value":"ABDC","name":"MEETEI MAYEK LETTER LAI LONSUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABDC"},43997:{"value":"ABDD","name":"MEETEI MAYEK LETTER MIT LONSUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABDD"},43998:{"value":"ABDE","name":"MEETEI MAYEK LETTER PA LONSUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABDE"},43999:{"value":"ABDF","name":"MEETEI MAYEK LETTER NA LONSUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABDF"},44000:{"value":"ABE0","name":"MEETEI MAYEK LETTER TIL LONSUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABE0"},44001:{"value":"ABE1","name":"MEETEI MAYEK LETTER NGOU LONSUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABE1"},44002:{"value":"ABE2","name":"MEETEI MAYEK LETTER I LONSUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABE2"},44032:{"value":"AC00","name":"<Hangul Syllable, First>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAC00"},55203:{"value":"D7A3","name":"<Hangul Syllable, Last>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7A3"},55216:{"value":"D7B0","name":"HANGUL JUNGSEONG O-YEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B0"},55217:{"value":"D7B1","name":"HANGUL JUNGSEONG O-O-I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B1"},55218:{"value":"D7B2","name":"HANGUL JUNGSEONG YO-A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B2"},55219:{"value":"D7B3","name":"HANGUL JUNGSEONG YO-AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B3"},55220:{"value":"D7B4","name":"HANGUL JUNGSEONG YO-EO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B4"},55221:{"value":"D7B5","name":"HANGUL JUNGSEONG U-YEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B5"},55222:{"value":"D7B6","name":"HANGUL JUNGSEONG U-I-I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B6"},55223:{"value":"D7B7","name":"HANGUL JUNGSEONG YU-AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B7"},55224:{"value":"D7B8","name":"HANGUL JUNGSEONG YU-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B8"},55225:{"value":"D7B9","name":"HANGUL JUNGSEONG EU-A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7B9"},55226:{"value":"D7BA","name":"HANGUL JUNGSEONG EU-EO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BA"},55227:{"value":"D7BB","name":"HANGUL JUNGSEONG EU-E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BB"},55228:{"value":"D7BC","name":"HANGUL JUNGSEONG EU-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BC"},55229:{"value":"D7BD","name":"HANGUL JUNGSEONG I-YA-O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BD"},55230:{"value":"D7BE","name":"HANGUL JUNGSEONG I-YAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BE"},55231:{"value":"D7BF","name":"HANGUL JUNGSEONG I-YEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7BF"},55232:{"value":"D7C0","name":"HANGUL JUNGSEONG I-YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C0"},55233:{"value":"D7C1","name":"HANGUL JUNGSEONG I-O-I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C1"},55234:{"value":"D7C2","name":"HANGUL JUNGSEONG I-YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C2"},55235:{"value":"D7C3","name":"HANGUL JUNGSEONG I-YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C3"},55236:{"value":"D7C4","name":"HANGUL JUNGSEONG I-I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C4"},55237:{"value":"D7C5","name":"HANGUL JUNGSEONG ARAEA-A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C5"},55238:{"value":"D7C6","name":"HANGUL JUNGSEONG ARAEA-E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7C6"},55243:{"value":"D7CB","name":"HANGUL JONGSEONG NIEUN-RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7CB"},55244:{"value":"D7CC","name":"HANGUL JONGSEONG NIEUN-CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7CC"},55245:{"value":"D7CD","name":"HANGUL JONGSEONG SSANGTIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7CD"},55246:{"value":"D7CE","name":"HANGUL JONGSEONG SSANGTIKEUT-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7CE"},55247:{"value":"D7CF","name":"HANGUL JONGSEONG TIKEUT-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7CF"},55248:{"value":"D7D0","name":"HANGUL JONGSEONG TIKEUT-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D0"},55249:{"value":"D7D1","name":"HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D1"},55250:{"value":"D7D2","name":"HANGUL JONGSEONG TIKEUT-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D2"},55251:{"value":"D7D3","name":"HANGUL JONGSEONG TIKEUT-CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D3"},55252:{"value":"D7D4","name":"HANGUL JONGSEONG TIKEUT-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D4"},55253:{"value":"D7D5","name":"HANGUL JONGSEONG RIEUL-SSANGKIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D5"},55254:{"value":"D7D6","name":"HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D6"},55255:{"value":"D7D7","name":"HANGUL JONGSEONG SSANGRIEUL-KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D7"},55256:{"value":"D7D8","name":"HANGUL JONGSEONG RIEUL-MIEUM-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D8"},55257:{"value":"D7D9","name":"HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D9"},55258:{"value":"D7DA","name":"HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DA"},55259:{"value":"D7DB","name":"HANGUL JONGSEONG RIEUL-YESIEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DB"},55260:{"value":"D7DC","name":"HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DC"},55261:{"value":"D7DD","name":"HANGUL JONGSEONG KAPYEOUNRIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DD"},55262:{"value":"D7DE","name":"HANGUL JONGSEONG MIEUM-NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DE"},55263:{"value":"D7DF","name":"HANGUL JONGSEONG MIEUM-SSANGNIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DF"},55264:{"value":"D7E0","name":"HANGUL JONGSEONG SSANGMIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E0"},55265:{"value":"D7E1","name":"HANGUL JONGSEONG MIEUM-PIEUP-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E1"},55266:{"value":"D7E2","name":"HANGUL JONGSEONG MIEUM-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E2"},55267:{"value":"D7E3","name":"HANGUL JONGSEONG PIEUP-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E3"},55268:{"value":"D7E4","name":"HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E4"},55269:{"value":"D7E5","name":"HANGUL JONGSEONG PIEUP-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E5"},55270:{"value":"D7E6","name":"HANGUL JONGSEONG SSANGPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E6"},55271:{"value":"D7E7","name":"HANGUL JONGSEONG PIEUP-SIOS-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E7"},55272:{"value":"D7E8","name":"HANGUL JONGSEONG PIEUP-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E8"},55273:{"value":"D7E9","name":"HANGUL JONGSEONG PIEUP-CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E9"},55274:{"value":"D7EA","name":"HANGUL JONGSEONG SIOS-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7EA"},55275:{"value":"D7EB","name":"HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7EB"},55276:{"value":"D7EC","name":"HANGUL JONGSEONG SSANGSIOS-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7EC"},55277:{"value":"D7ED","name":"HANGUL JONGSEONG SSANGSIOS-TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7ED"},55278:{"value":"D7EE","name":"HANGUL JONGSEONG SIOS-PANSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7EE"},55279:{"value":"D7EF","name":"HANGUL JONGSEONG SIOS-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7EF"},55280:{"value":"D7F0","name":"HANGUL JONGSEONG SIOS-CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F0"},55281:{"value":"D7F1","name":"HANGUL JONGSEONG SIOS-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F1"},55282:{"value":"D7F2","name":"HANGUL JONGSEONG SIOS-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F2"},55283:{"value":"D7F3","name":"HANGUL JONGSEONG PANSIOS-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F3"},55284:{"value":"D7F4","name":"HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F4"},55285:{"value":"D7F5","name":"HANGUL JONGSEONG YESIEUNG-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F5"},55286:{"value":"D7F6","name":"HANGUL JONGSEONG YESIEUNG-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F6"},55287:{"value":"D7F7","name":"HANGUL JONGSEONG CIEUC-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F7"},55288:{"value":"D7F8","name":"HANGUL JONGSEONG CIEUC-SSANGPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F8"},55289:{"value":"D7F9","name":"HANGUL JONGSEONG SSANGCIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F9"},55290:{"value":"D7FA","name":"HANGUL JONGSEONG PHIEUPH-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7FA"},55291:{"value":"D7FB","name":"HANGUL JONGSEONG PHIEUPH-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7FB"},63744:{"value":"F900","name":"CJK COMPATIBILITY IDEOGRAPH-F900","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8C48","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF900"},63745:{"value":"F901","name":"CJK COMPATIBILITY IDEOGRAPH-F901","category":"Lo","class":"0","bidirectional_category":"L","mapping":"66F4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF901"},63746:{"value":"F902","name":"CJK COMPATIBILITY IDEOGRAPH-F902","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8ECA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF902"},63747:{"value":"F903","name":"CJK COMPATIBILITY IDEOGRAPH-F903","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8CC8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF903"},63748:{"value":"F904","name":"CJK COMPATIBILITY IDEOGRAPH-F904","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6ED1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF904"},63749:{"value":"F905","name":"CJK COMPATIBILITY IDEOGRAPH-F905","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4E32","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF905"},63750:{"value":"F906","name":"CJK COMPATIBILITY IDEOGRAPH-F906","category":"Lo","class":"0","bidirectional_category":"L","mapping":"53E5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF906"},63751:{"value":"F907","name":"CJK COMPATIBILITY IDEOGRAPH-F907","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9F9C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF907"},63752:{"value":"F908","name":"CJK COMPATIBILITY IDEOGRAPH-F908","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9F9C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF908"},63753:{"value":"F909","name":"CJK COMPATIBILITY IDEOGRAPH-F909","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5951","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF909"},63754:{"value":"F90A","name":"CJK COMPATIBILITY IDEOGRAPH-F90A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"91D1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90A"},63755:{"value":"F90B","name":"CJK COMPATIBILITY IDEOGRAPH-F90B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5587","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90B"},63756:{"value":"F90C","name":"CJK COMPATIBILITY IDEOGRAPH-F90C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5948","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90C"},63757:{"value":"F90D","name":"CJK COMPATIBILITY IDEOGRAPH-F90D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"61F6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90D"},63758:{"value":"F90E","name":"CJK COMPATIBILITY IDEOGRAPH-F90E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7669","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90E"},63759:{"value":"F90F","name":"CJK COMPATIBILITY IDEOGRAPH-F90F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7F85","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90F"},63760:{"value":"F910","name":"CJK COMPATIBILITY IDEOGRAPH-F910","category":"Lo","class":"0","bidirectional_category":"L","mapping":"863F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF910"},63761:{"value":"F911","name":"CJK COMPATIBILITY IDEOGRAPH-F911","category":"Lo","class":"0","bidirectional_category":"L","mapping":"87BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF911"},63762:{"value":"F912","name":"CJK COMPATIBILITY IDEOGRAPH-F912","category":"Lo","class":"0","bidirectional_category":"L","mapping":"88F8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF912"},63763:{"value":"F913","name":"CJK COMPATIBILITY IDEOGRAPH-F913","category":"Lo","class":"0","bidirectional_category":"L","mapping":"908F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF913"},63764:{"value":"F914","name":"CJK COMPATIBILITY IDEOGRAPH-F914","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6A02","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF914"},63765:{"value":"F915","name":"CJK COMPATIBILITY IDEOGRAPH-F915","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D1B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF915"},63766:{"value":"F916","name":"CJK COMPATIBILITY IDEOGRAPH-F916","category":"Lo","class":"0","bidirectional_category":"L","mapping":"70D9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF916"},63767:{"value":"F917","name":"CJK COMPATIBILITY IDEOGRAPH-F917","category":"Lo","class":"0","bidirectional_category":"L","mapping":"73DE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF917"},63768:{"value":"F918","name":"CJK COMPATIBILITY IDEOGRAPH-F918","category":"Lo","class":"0","bidirectional_category":"L","mapping":"843D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF918"},63769:{"value":"F919","name":"CJK COMPATIBILITY IDEOGRAPH-F919","category":"Lo","class":"0","bidirectional_category":"L","mapping":"916A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF919"},63770:{"value":"F91A","name":"CJK COMPATIBILITY IDEOGRAPH-F91A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"99F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91A"},63771:{"value":"F91B","name":"CJK COMPATIBILITY IDEOGRAPH-F91B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4E82","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91B"},63772:{"value":"F91C","name":"CJK COMPATIBILITY IDEOGRAPH-F91C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5375","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91C"},63773:{"value":"F91D","name":"CJK COMPATIBILITY IDEOGRAPH-F91D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6B04","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91D"},63774:{"value":"F91E","name":"CJK COMPATIBILITY IDEOGRAPH-F91E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"721B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91E"},63775:{"value":"F91F","name":"CJK COMPATIBILITY IDEOGRAPH-F91F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"862D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91F"},63776:{"value":"F920","name":"CJK COMPATIBILITY IDEOGRAPH-F920","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9E1E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF920"},63777:{"value":"F921","name":"CJK COMPATIBILITY IDEOGRAPH-F921","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5D50","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF921"},63778:{"value":"F922","name":"CJK COMPATIBILITY IDEOGRAPH-F922","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6FEB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF922"},63779:{"value":"F923","name":"CJK COMPATIBILITY IDEOGRAPH-F923","category":"Lo","class":"0","bidirectional_category":"L","mapping":"85CD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF923"},63780:{"value":"F924","name":"CJK COMPATIBILITY IDEOGRAPH-F924","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8964","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF924"},63781:{"value":"F925","name":"CJK COMPATIBILITY IDEOGRAPH-F925","category":"Lo","class":"0","bidirectional_category":"L","mapping":"62C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF925"},63782:{"value":"F926","name":"CJK COMPATIBILITY IDEOGRAPH-F926","category":"Lo","class":"0","bidirectional_category":"L","mapping":"81D8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF926"},63783:{"value":"F927","name":"CJK COMPATIBILITY IDEOGRAPH-F927","category":"Lo","class":"0","bidirectional_category":"L","mapping":"881F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF927"},63784:{"value":"F928","name":"CJK COMPATIBILITY IDEOGRAPH-F928","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5ECA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF928"},63785:{"value":"F929","name":"CJK COMPATIBILITY IDEOGRAPH-F929","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6717","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF929"},63786:{"value":"F92A","name":"CJK COMPATIBILITY IDEOGRAPH-F92A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D6A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92A"},63787:{"value":"F92B","name":"CJK COMPATIBILITY IDEOGRAPH-F92B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"72FC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92B"},63788:{"value":"F92C","name":"CJK COMPATIBILITY IDEOGRAPH-F92C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"90CE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92C"},63789:{"value":"F92D","name":"CJK COMPATIBILITY IDEOGRAPH-F92D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4F86","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92D"},63790:{"value":"F92E","name":"CJK COMPATIBILITY IDEOGRAPH-F92E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"51B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92E"},63791:{"value":"F92F","name":"CJK COMPATIBILITY IDEOGRAPH-F92F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52DE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92F"},63792:{"value":"F930","name":"CJK COMPATIBILITY IDEOGRAPH-F930","category":"Lo","class":"0","bidirectional_category":"L","mapping":"64C4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF930"},63793:{"value":"F931","name":"CJK COMPATIBILITY IDEOGRAPH-F931","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6AD3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF931"},63794:{"value":"F932","name":"CJK COMPATIBILITY IDEOGRAPH-F932","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7210","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF932"},63795:{"value":"F933","name":"CJK COMPATIBILITY IDEOGRAPH-F933","category":"Lo","class":"0","bidirectional_category":"L","mapping":"76E7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF933"},63796:{"value":"F934","name":"CJK COMPATIBILITY IDEOGRAPH-F934","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8001","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF934"},63797:{"value":"F935","name":"CJK COMPATIBILITY IDEOGRAPH-F935","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8606","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF935"},63798:{"value":"F936","name":"CJK COMPATIBILITY IDEOGRAPH-F936","category":"Lo","class":"0","bidirectional_category":"L","mapping":"865C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF936"},63799:{"value":"F937","name":"CJK COMPATIBILITY IDEOGRAPH-F937","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8DEF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF937"},63800:{"value":"F938","name":"CJK COMPATIBILITY IDEOGRAPH-F938","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9732","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF938"},63801:{"value":"F939","name":"CJK COMPATIBILITY IDEOGRAPH-F939","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9B6F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF939"},63802:{"value":"F93A","name":"CJK COMPATIBILITY IDEOGRAPH-F93A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9DFA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93A"},63803:{"value":"F93B","name":"CJK COMPATIBILITY IDEOGRAPH-F93B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"788C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93B"},63804:{"value":"F93C","name":"CJK COMPATIBILITY IDEOGRAPH-F93C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"797F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93C"},63805:{"value":"F93D","name":"CJK COMPATIBILITY IDEOGRAPH-F93D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7DA0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93D"},63806:{"value":"F93E","name":"CJK COMPATIBILITY IDEOGRAPH-F93E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"83C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93E"},63807:{"value":"F93F","name":"CJK COMPATIBILITY IDEOGRAPH-F93F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9304","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93F"},63808:{"value":"F940","name":"CJK COMPATIBILITY IDEOGRAPH-F940","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9E7F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF940"},63809:{"value":"F941","name":"CJK COMPATIBILITY IDEOGRAPH-F941","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AD6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF941"},63810:{"value":"F942","name":"CJK COMPATIBILITY IDEOGRAPH-F942","category":"Lo","class":"0","bidirectional_category":"L","mapping":"58DF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF942"},63811:{"value":"F943","name":"CJK COMPATIBILITY IDEOGRAPH-F943","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5F04","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF943"},63812:{"value":"F944","name":"CJK COMPATIBILITY IDEOGRAPH-F944","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7C60","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF944"},63813:{"value":"F945","name":"CJK COMPATIBILITY IDEOGRAPH-F945","category":"Lo","class":"0","bidirectional_category":"L","mapping":"807E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF945"},63814:{"value":"F946","name":"CJK COMPATIBILITY IDEOGRAPH-F946","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7262","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF946"},63815:{"value":"F947","name":"CJK COMPATIBILITY IDEOGRAPH-F947","category":"Lo","class":"0","bidirectional_category":"L","mapping":"78CA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF947"},63816:{"value":"F948","name":"CJK COMPATIBILITY IDEOGRAPH-F948","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8CC2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF948"},63817:{"value":"F949","name":"CJK COMPATIBILITY IDEOGRAPH-F949","category":"Lo","class":"0","bidirectional_category":"L","mapping":"96F7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF949"},63818:{"value":"F94A","name":"CJK COMPATIBILITY IDEOGRAPH-F94A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"58D8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94A"},63819:{"value":"F94B","name":"CJK COMPATIBILITY IDEOGRAPH-F94B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5C62","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94B"},63820:{"value":"F94C","name":"CJK COMPATIBILITY IDEOGRAPH-F94C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6A13","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94C"},63821:{"value":"F94D","name":"CJK COMPATIBILITY IDEOGRAPH-F94D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6DDA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94D"},63822:{"value":"F94E","name":"CJK COMPATIBILITY IDEOGRAPH-F94E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6F0F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94E"},63823:{"value":"F94F","name":"CJK COMPATIBILITY IDEOGRAPH-F94F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7D2F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94F"},63824:{"value":"F950","name":"CJK COMPATIBILITY IDEOGRAPH-F950","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7E37","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF950"},63825:{"value":"F951","name":"CJK COMPATIBILITY IDEOGRAPH-F951","category":"Lo","class":"0","bidirectional_category":"L","mapping":"964B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF951"},63826:{"value":"F952","name":"CJK COMPATIBILITY IDEOGRAPH-F952","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52D2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF952"},63827:{"value":"F953","name":"CJK COMPATIBILITY IDEOGRAPH-F953","category":"Lo","class":"0","bidirectional_category":"L","mapping":"808B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF953"},63828:{"value":"F954","name":"CJK COMPATIBILITY IDEOGRAPH-F954","category":"Lo","class":"0","bidirectional_category":"L","mapping":"51DC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF954"},63829:{"value":"F955","name":"CJK COMPATIBILITY IDEOGRAPH-F955","category":"Lo","class":"0","bidirectional_category":"L","mapping":"51CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF955"},63830:{"value":"F956","name":"CJK COMPATIBILITY IDEOGRAPH-F956","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7A1C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF956"},63831:{"value":"F957","name":"CJK COMPATIBILITY IDEOGRAPH-F957","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7DBE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF957"},63832:{"value":"F958","name":"CJK COMPATIBILITY IDEOGRAPH-F958","category":"Lo","class":"0","bidirectional_category":"L","mapping":"83F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF958"},63833:{"value":"F959","name":"CJK COMPATIBILITY IDEOGRAPH-F959","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9675","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF959"},63834:{"value":"F95A","name":"CJK COMPATIBILITY IDEOGRAPH-F95A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8B80","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95A"},63835:{"value":"F95B","name":"CJK COMPATIBILITY IDEOGRAPH-F95B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"62CF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95B"},63836:{"value":"F95C","name":"CJK COMPATIBILITY IDEOGRAPH-F95C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6A02","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95C"},63837:{"value":"F95D","name":"CJK COMPATIBILITY IDEOGRAPH-F95D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AFE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95D"},63838:{"value":"F95E","name":"CJK COMPATIBILITY IDEOGRAPH-F95E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4E39","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95E"},63839:{"value":"F95F","name":"CJK COMPATIBILITY IDEOGRAPH-F95F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5BE7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95F"},63840:{"value":"F960","name":"CJK COMPATIBILITY IDEOGRAPH-F960","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6012","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF960"},63841:{"value":"F961","name":"CJK COMPATIBILITY IDEOGRAPH-F961","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7387","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF961"},63842:{"value":"F962","name":"CJK COMPATIBILITY IDEOGRAPH-F962","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7570","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF962"},63843:{"value":"F963","name":"CJK COMPATIBILITY IDEOGRAPH-F963","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5317","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF963"},63844:{"value":"F964","name":"CJK COMPATIBILITY IDEOGRAPH-F964","category":"Lo","class":"0","bidirectional_category":"L","mapping":"78FB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF964"},63845:{"value":"F965","name":"CJK COMPATIBILITY IDEOGRAPH-F965","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4FBF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF965"},63846:{"value":"F966","name":"CJK COMPATIBILITY IDEOGRAPH-F966","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5FA9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF966"},63847:{"value":"F967","name":"CJK COMPATIBILITY IDEOGRAPH-F967","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4E0D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF967"},63848:{"value":"F968","name":"CJK COMPATIBILITY IDEOGRAPH-F968","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6CCC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF968"},63849:{"value":"F969","name":"CJK COMPATIBILITY IDEOGRAPH-F969","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6578","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF969"},63850:{"value":"F96A","name":"CJK COMPATIBILITY IDEOGRAPH-F96A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7D22","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96A"},63851:{"value":"F96B","name":"CJK COMPATIBILITY IDEOGRAPH-F96B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"53C3","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96B"},63852:{"value":"F96C","name":"CJK COMPATIBILITY IDEOGRAPH-F96C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"585E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96C"},63853:{"value":"F96D","name":"CJK COMPATIBILITY IDEOGRAPH-F96D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7701","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96D"},63854:{"value":"F96E","name":"CJK COMPATIBILITY IDEOGRAPH-F96E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8449","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96E"},63855:{"value":"F96F","name":"CJK COMPATIBILITY IDEOGRAPH-F96F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AAA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96F"},63856:{"value":"F970","name":"CJK COMPATIBILITY IDEOGRAPH-F970","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6BBA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF970"},63857:{"value":"F971","name":"CJK COMPATIBILITY IDEOGRAPH-F971","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8FB0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF971"},63858:{"value":"F972","name":"CJK COMPATIBILITY IDEOGRAPH-F972","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6C88","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF972"},63859:{"value":"F973","name":"CJK COMPATIBILITY IDEOGRAPH-F973","category":"Lo","class":"0","bidirectional_category":"L","mapping":"62FE","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF973"},63860:{"value":"F974","name":"CJK COMPATIBILITY IDEOGRAPH-F974","category":"Lo","class":"0","bidirectional_category":"L","mapping":"82E5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF974"},63861:{"value":"F975","name":"CJK COMPATIBILITY IDEOGRAPH-F975","category":"Lo","class":"0","bidirectional_category":"L","mapping":"63A0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF975"},63862:{"value":"F976","name":"CJK COMPATIBILITY IDEOGRAPH-F976","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7565","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF976"},63863:{"value":"F977","name":"CJK COMPATIBILITY IDEOGRAPH-F977","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4EAE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF977"},63864:{"value":"F978","name":"CJK COMPATIBILITY IDEOGRAPH-F978","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5169","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF978"},63865:{"value":"F979","name":"CJK COMPATIBILITY IDEOGRAPH-F979","category":"Lo","class":"0","bidirectional_category":"L","mapping":"51C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF979"},63866:{"value":"F97A","name":"CJK COMPATIBILITY IDEOGRAPH-F97A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6881","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97A"},63867:{"value":"F97B","name":"CJK COMPATIBILITY IDEOGRAPH-F97B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7CE7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97B"},63868:{"value":"F97C","name":"CJK COMPATIBILITY IDEOGRAPH-F97C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"826F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97C"},63869:{"value":"F97D","name":"CJK COMPATIBILITY IDEOGRAPH-F97D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AD2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97D"},63870:{"value":"F97E","name":"CJK COMPATIBILITY IDEOGRAPH-F97E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"91CF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97E"},63871:{"value":"F97F","name":"CJK COMPATIBILITY IDEOGRAPH-F97F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52F5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97F"},63872:{"value":"F980","name":"CJK COMPATIBILITY IDEOGRAPH-F980","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5442","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF980"},63873:{"value":"F981","name":"CJK COMPATIBILITY IDEOGRAPH-F981","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5973","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF981"},63874:{"value":"F982","name":"CJK COMPATIBILITY IDEOGRAPH-F982","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5EEC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF982"},63875:{"value":"F983","name":"CJK COMPATIBILITY IDEOGRAPH-F983","category":"Lo","class":"0","bidirectional_category":"L","mapping":"65C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF983"},63876:{"value":"F984","name":"CJK COMPATIBILITY IDEOGRAPH-F984","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6FFE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF984"},63877:{"value":"F985","name":"CJK COMPATIBILITY IDEOGRAPH-F985","category":"Lo","class":"0","bidirectional_category":"L","mapping":"792A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF985"},63878:{"value":"F986","name":"CJK COMPATIBILITY IDEOGRAPH-F986","category":"Lo","class":"0","bidirectional_category":"L","mapping":"95AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF986"},63879:{"value":"F987","name":"CJK COMPATIBILITY IDEOGRAPH-F987","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9A6A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF987"},63880:{"value":"F988","name":"CJK COMPATIBILITY IDEOGRAPH-F988","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9E97","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF988"},63881:{"value":"F989","name":"CJK COMPATIBILITY IDEOGRAPH-F989","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9ECE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF989"},63882:{"value":"F98A","name":"CJK COMPATIBILITY IDEOGRAPH-F98A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"529B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98A"},63883:{"value":"F98B","name":"CJK COMPATIBILITY IDEOGRAPH-F98B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"66C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98B"},63884:{"value":"F98C","name":"CJK COMPATIBILITY IDEOGRAPH-F98C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6B77","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98C"},63885:{"value":"F98D","name":"CJK COMPATIBILITY IDEOGRAPH-F98D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8F62","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98D"},63886:{"value":"F98E","name":"CJK COMPATIBILITY IDEOGRAPH-F98E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5E74","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98E"},63887:{"value":"F98F","name":"CJK COMPATIBILITY IDEOGRAPH-F98F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6190","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98F"},63888:{"value":"F990","name":"CJK COMPATIBILITY IDEOGRAPH-F990","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6200","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF990"},63889:{"value":"F991","name":"CJK COMPATIBILITY IDEOGRAPH-F991","category":"Lo","class":"0","bidirectional_category":"L","mapping":"649A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF991"},63890:{"value":"F992","name":"CJK COMPATIBILITY IDEOGRAPH-F992","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6F23","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF992"},63891:{"value":"F993","name":"CJK COMPATIBILITY IDEOGRAPH-F993","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7149","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF993"},63892:{"value":"F994","name":"CJK COMPATIBILITY IDEOGRAPH-F994","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7489","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF994"},63893:{"value":"F995","name":"CJK COMPATIBILITY IDEOGRAPH-F995","category":"Lo","class":"0","bidirectional_category":"L","mapping":"79CA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF995"},63894:{"value":"F996","name":"CJK COMPATIBILITY IDEOGRAPH-F996","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7DF4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF996"},63895:{"value":"F997","name":"CJK COMPATIBILITY IDEOGRAPH-F997","category":"Lo","class":"0","bidirectional_category":"L","mapping":"806F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF997"},63896:{"value":"F998","name":"CJK COMPATIBILITY IDEOGRAPH-F998","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8F26","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF998"},63897:{"value":"F999","name":"CJK COMPATIBILITY IDEOGRAPH-F999","category":"Lo","class":"0","bidirectional_category":"L","mapping":"84EE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF999"},63898:{"value":"F99A","name":"CJK COMPATIBILITY IDEOGRAPH-F99A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9023","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99A"},63899:{"value":"F99B","name":"CJK COMPATIBILITY IDEOGRAPH-F99B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"934A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99B"},63900:{"value":"F99C","name":"CJK COMPATIBILITY IDEOGRAPH-F99C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5217","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99C"},63901:{"value":"F99D","name":"CJK COMPATIBILITY IDEOGRAPH-F99D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99D"},63902:{"value":"F99E","name":"CJK COMPATIBILITY IDEOGRAPH-F99E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"54BD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99E"},63903:{"value":"F99F","name":"CJK COMPATIBILITY IDEOGRAPH-F99F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"70C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99F"},63904:{"value":"F9A0","name":"CJK COMPATIBILITY IDEOGRAPH-F9A0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"88C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A0"},63905:{"value":"F9A1","name":"CJK COMPATIBILITY IDEOGRAPH-F9A1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AAA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A1"},63906:{"value":"F9A2","name":"CJK COMPATIBILITY IDEOGRAPH-F9A2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5EC9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A2"},63907:{"value":"F9A3","name":"CJK COMPATIBILITY IDEOGRAPH-F9A3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5FF5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A3"},63908:{"value":"F9A4","name":"CJK COMPATIBILITY IDEOGRAPH-F9A4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"637B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A4"},63909:{"value":"F9A5","name":"CJK COMPATIBILITY IDEOGRAPH-F9A5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6BAE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A5"},63910:{"value":"F9A6","name":"CJK COMPATIBILITY IDEOGRAPH-F9A6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7C3E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A6"},63911:{"value":"F9A7","name":"CJK COMPATIBILITY IDEOGRAPH-F9A7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7375","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A7"},63912:{"value":"F9A8","name":"CJK COMPATIBILITY IDEOGRAPH-F9A8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4EE4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A8"},63913:{"value":"F9A9","name":"CJK COMPATIBILITY IDEOGRAPH-F9A9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"56F9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A9"},63914:{"value":"F9AA","name":"CJK COMPATIBILITY IDEOGRAPH-F9AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5BE7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AA"},63915:{"value":"F9AB","name":"CJK COMPATIBILITY IDEOGRAPH-F9AB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5DBA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AB"},63916:{"value":"F9AC","name":"CJK COMPATIBILITY IDEOGRAPH-F9AC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"601C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AC"},63917:{"value":"F9AD","name":"CJK COMPATIBILITY IDEOGRAPH-F9AD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"73B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AD"},63918:{"value":"F9AE","name":"CJK COMPATIBILITY IDEOGRAPH-F9AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7469","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AE"},63919:{"value":"F9AF","name":"CJK COMPATIBILITY IDEOGRAPH-F9AF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7F9A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AF"},63920:{"value":"F9B0","name":"CJK COMPATIBILITY IDEOGRAPH-F9B0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B0"},63921:{"value":"F9B1","name":"CJK COMPATIBILITY IDEOGRAPH-F9B1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9234","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B1"},63922:{"value":"F9B2","name":"CJK COMPATIBILITY IDEOGRAPH-F9B2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"96F6","decimal_digit_value":"","digit_value":"","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B2"},63923:{"value":"F9B3","name":"CJK COMPATIBILITY IDEOGRAPH-F9B3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9748","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B3"},63924:{"value":"F9B4","name":"CJK COMPATIBILITY IDEOGRAPH-F9B4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9818","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B4"},63925:{"value":"F9B5","name":"CJK COMPATIBILITY IDEOGRAPH-F9B5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4F8B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B5"},63926:{"value":"F9B6","name":"CJK COMPATIBILITY IDEOGRAPH-F9B6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"79AE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B6"},63927:{"value":"F9B7","name":"CJK COMPATIBILITY IDEOGRAPH-F9B7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"91B4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B7"},63928:{"value":"F9B8","name":"CJK COMPATIBILITY IDEOGRAPH-F9B8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"96B8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B8"},63929:{"value":"F9B9","name":"CJK COMPATIBILITY IDEOGRAPH-F9B9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"60E1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B9"},63930:{"value":"F9BA","name":"CJK COMPATIBILITY IDEOGRAPH-F9BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4E86","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BA"},63931:{"value":"F9BB","name":"CJK COMPATIBILITY IDEOGRAPH-F9BB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"50DA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BB"},63932:{"value":"F9BC","name":"CJK COMPATIBILITY IDEOGRAPH-F9BC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5BEE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BC"},63933:{"value":"F9BD","name":"CJK COMPATIBILITY IDEOGRAPH-F9BD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5C3F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BD"},63934:{"value":"F9BE","name":"CJK COMPATIBILITY IDEOGRAPH-F9BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6599","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BE"},63935:{"value":"F9BF","name":"CJK COMPATIBILITY IDEOGRAPH-F9BF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6A02","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BF"},63936:{"value":"F9C0","name":"CJK COMPATIBILITY IDEOGRAPH-F9C0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"71CE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C0"},63937:{"value":"F9C1","name":"CJK COMPATIBILITY IDEOGRAPH-F9C1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C1"},63938:{"value":"F9C2","name":"CJK COMPATIBILITY IDEOGRAPH-F9C2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"84FC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C2"},63939:{"value":"F9C3","name":"CJK COMPATIBILITY IDEOGRAPH-F9C3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"907C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C3"},63940:{"value":"F9C4","name":"CJK COMPATIBILITY IDEOGRAPH-F9C4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9F8D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C4"},63941:{"value":"F9C5","name":"CJK COMPATIBILITY IDEOGRAPH-F9C5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6688","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C5"},63942:{"value":"F9C6","name":"CJK COMPATIBILITY IDEOGRAPH-F9C6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"962E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C6"},63943:{"value":"F9C7","name":"CJK COMPATIBILITY IDEOGRAPH-F9C7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5289","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C7"},63944:{"value":"F9C8","name":"CJK COMPATIBILITY IDEOGRAPH-F9C8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"677B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C8"},63945:{"value":"F9C9","name":"CJK COMPATIBILITY IDEOGRAPH-F9C9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"67F3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C9"},63946:{"value":"F9CA","name":"CJK COMPATIBILITY IDEOGRAPH-F9CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D41","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CA"},63947:{"value":"F9CB","name":"CJK COMPATIBILITY IDEOGRAPH-F9CB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6E9C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CB"},63948:{"value":"F9CC","name":"CJK COMPATIBILITY IDEOGRAPH-F9CC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7409","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CC"},63949:{"value":"F9CD","name":"CJK COMPATIBILITY IDEOGRAPH-F9CD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7559","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CD"},63950:{"value":"F9CE","name":"CJK COMPATIBILITY IDEOGRAPH-F9CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"786B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CE"},63951:{"value":"F9CF","name":"CJK COMPATIBILITY IDEOGRAPH-F9CF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7D10","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CF"},63952:{"value":"F9D0","name":"CJK COMPATIBILITY IDEOGRAPH-F9D0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"985E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D0"},63953:{"value":"F9D1","name":"CJK COMPATIBILITY IDEOGRAPH-F9D1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"516D","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D1"},63954:{"value":"F9D2","name":"CJK COMPATIBILITY IDEOGRAPH-F9D2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"622E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D2"},63955:{"value":"F9D3","name":"CJK COMPATIBILITY IDEOGRAPH-F9D3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9678","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D3"},63956:{"value":"F9D4","name":"CJK COMPATIBILITY IDEOGRAPH-F9D4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"502B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D4"},63957:{"value":"F9D5","name":"CJK COMPATIBILITY IDEOGRAPH-F9D5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5D19","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D5"},63958:{"value":"F9D6","name":"CJK COMPATIBILITY IDEOGRAPH-F9D6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6DEA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D6"},63959:{"value":"F9D7","name":"CJK COMPATIBILITY IDEOGRAPH-F9D7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8F2A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D7"},63960:{"value":"F9D8","name":"CJK COMPATIBILITY IDEOGRAPH-F9D8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5F8B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D8"},63961:{"value":"F9D9","name":"CJK COMPATIBILITY IDEOGRAPH-F9D9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6144","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D9"},63962:{"value":"F9DA","name":"CJK COMPATIBILITY IDEOGRAPH-F9DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6817","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DA"},63963:{"value":"F9DB","name":"CJK COMPATIBILITY IDEOGRAPH-F9DB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7387","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DB"},63964:{"value":"F9DC","name":"CJK COMPATIBILITY IDEOGRAPH-F9DC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9686","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DC"},63965:{"value":"F9DD","name":"CJK COMPATIBILITY IDEOGRAPH-F9DD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5229","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DD"},63966:{"value":"F9DE","name":"CJK COMPATIBILITY IDEOGRAPH-F9DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"540F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DE"},63967:{"value":"F9DF","name":"CJK COMPATIBILITY IDEOGRAPH-F9DF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5C65","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DF"},63968:{"value":"F9E0","name":"CJK COMPATIBILITY IDEOGRAPH-F9E0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6613","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E0"},63969:{"value":"F9E1","name":"CJK COMPATIBILITY IDEOGRAPH-F9E1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"674E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E1"},63970:{"value":"F9E2","name":"CJK COMPATIBILITY IDEOGRAPH-F9E2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"68A8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E2"},63971:{"value":"F9E3","name":"CJK COMPATIBILITY IDEOGRAPH-F9E3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6CE5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E3"},63972:{"value":"F9E4","name":"CJK COMPATIBILITY IDEOGRAPH-F9E4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7406","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E4"},63973:{"value":"F9E5","name":"CJK COMPATIBILITY IDEOGRAPH-F9E5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"75E2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E5"},63974:{"value":"F9E6","name":"CJK COMPATIBILITY IDEOGRAPH-F9E6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7F79","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E6"},63975:{"value":"F9E7","name":"CJK COMPATIBILITY IDEOGRAPH-F9E7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"88CF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E7"},63976:{"value":"F9E8","name":"CJK COMPATIBILITY IDEOGRAPH-F9E8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"88E1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E8"},63977:{"value":"F9E9","name":"CJK COMPATIBILITY IDEOGRAPH-F9E9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"91CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E9"},63978:{"value":"F9EA","name":"CJK COMPATIBILITY IDEOGRAPH-F9EA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"96E2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9EA"},63979:{"value":"F9EB","name":"CJK COMPATIBILITY IDEOGRAPH-F9EB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"533F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9EB"},63980:{"value":"F9EC","name":"CJK COMPATIBILITY IDEOGRAPH-F9EC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6EBA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9EC"},63981:{"value":"F9ED","name":"CJK COMPATIBILITY IDEOGRAPH-F9ED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"541D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9ED"},63982:{"value":"F9EE","name":"CJK COMPATIBILITY IDEOGRAPH-F9EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"71D0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9EE"},63983:{"value":"F9EF","name":"CJK COMPATIBILITY IDEOGRAPH-F9EF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7498","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9EF"},63984:{"value":"F9F0","name":"CJK COMPATIBILITY IDEOGRAPH-F9F0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"85FA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F0"},63985:{"value":"F9F1","name":"CJK COMPATIBILITY IDEOGRAPH-F9F1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"96A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F1"},63986:{"value":"F9F2","name":"CJK COMPATIBILITY IDEOGRAPH-F9F2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9C57","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F2"},63987:{"value":"F9F3","name":"CJK COMPATIBILITY IDEOGRAPH-F9F3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9E9F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F3"},63988:{"value":"F9F4","name":"CJK COMPATIBILITY IDEOGRAPH-F9F4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6797","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F4"},63989:{"value":"F9F5","name":"CJK COMPATIBILITY IDEOGRAPH-F9F5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6DCB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F5"},63990:{"value":"F9F6","name":"CJK COMPATIBILITY IDEOGRAPH-F9F6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"81E8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F6"},63991:{"value":"F9F7","name":"CJK COMPATIBILITY IDEOGRAPH-F9F7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7ACB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F7"},63992:{"value":"F9F8","name":"CJK COMPATIBILITY IDEOGRAPH-F9F8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7B20","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F8"},63993:{"value":"F9F9","name":"CJK COMPATIBILITY IDEOGRAPH-F9F9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7C92","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F9"},63994:{"value":"F9FA","name":"CJK COMPATIBILITY IDEOGRAPH-F9FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"72C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FA"},63995:{"value":"F9FB","name":"CJK COMPATIBILITY IDEOGRAPH-F9FB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FB"},63996:{"value":"F9FC","name":"CJK COMPATIBILITY IDEOGRAPH-F9FC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8B58","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FC"},63997:{"value":"F9FD","name":"CJK COMPATIBILITY IDEOGRAPH-F9FD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4EC0","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FD"},63998:{"value":"F9FE","name":"CJK COMPATIBILITY IDEOGRAPH-F9FE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8336","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FE"},63999:{"value":"F9FF","name":"CJK COMPATIBILITY IDEOGRAPH-F9FF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"523A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FF"},64000:{"value":"FA00","name":"CJK COMPATIBILITY IDEOGRAPH-FA00","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5207","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA00"},64001:{"value":"FA01","name":"CJK COMPATIBILITY IDEOGRAPH-FA01","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5EA6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA01"},64002:{"value":"FA02","name":"CJK COMPATIBILITY IDEOGRAPH-FA02","category":"Lo","class":"0","bidirectional_category":"L","mapping":"62D3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA02"},64003:{"value":"FA03","name":"CJK COMPATIBILITY IDEOGRAPH-FA03","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7CD6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA03"},64004:{"value":"FA04","name":"CJK COMPATIBILITY IDEOGRAPH-FA04","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5B85","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA04"},64005:{"value":"FA05","name":"CJK COMPATIBILITY IDEOGRAPH-FA05","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D1E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA05"},64006:{"value":"FA06","name":"CJK COMPATIBILITY IDEOGRAPH-FA06","category":"Lo","class":"0","bidirectional_category":"L","mapping":"66B4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA06"},64007:{"value":"FA07","name":"CJK COMPATIBILITY IDEOGRAPH-FA07","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8F3B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA07"},64008:{"value":"FA08","name":"CJK COMPATIBILITY IDEOGRAPH-FA08","category":"Lo","class":"0","bidirectional_category":"L","mapping":"884C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA08"},64009:{"value":"FA09","name":"CJK COMPATIBILITY IDEOGRAPH-FA09","category":"Lo","class":"0","bidirectional_category":"L","mapping":"964D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA09"},64010:{"value":"FA0A","name":"CJK COMPATIBILITY IDEOGRAPH-FA0A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"898B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0A"},64011:{"value":"FA0B","name":"CJK COMPATIBILITY IDEOGRAPH-FA0B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5ED3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0B"},64012:{"value":"FA0C","name":"CJK COMPATIBILITY IDEOGRAPH-FA0C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5140","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0C"},64013:{"value":"FA0D","name":"CJK COMPATIBILITY IDEOGRAPH-FA0D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"55C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0D"},64014:{"value":"FA0E","name":"CJK COMPATIBILITY IDEOGRAPH-FA0E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0E"},64015:{"value":"FA0F","name":"CJK COMPATIBILITY IDEOGRAPH-FA0F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0F"},64016:{"value":"FA10","name":"CJK COMPATIBILITY IDEOGRAPH-FA10","category":"Lo","class":"0","bidirectional_category":"L","mapping":"585A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA10"},64017:{"value":"FA11","name":"CJK COMPATIBILITY IDEOGRAPH-FA11","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA11"},64018:{"value":"FA12","name":"CJK COMPATIBILITY IDEOGRAPH-FA12","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6674","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA12"},64019:{"value":"FA13","name":"CJK COMPATIBILITY IDEOGRAPH-FA13","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA13"},64020:{"value":"FA14","name":"CJK COMPATIBILITY IDEOGRAPH-FA14","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA14"},64021:{"value":"FA15","name":"CJK COMPATIBILITY IDEOGRAPH-FA15","category":"Lo","class":"0","bidirectional_category":"L","mapping":"51DE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA15"},64022:{"value":"FA16","name":"CJK COMPATIBILITY IDEOGRAPH-FA16","category":"Lo","class":"0","bidirectional_category":"L","mapping":"732A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA16"},64023:{"value":"FA17","name":"CJK COMPATIBILITY IDEOGRAPH-FA17","category":"Lo","class":"0","bidirectional_category":"L","mapping":"76CA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA17"},64024:{"value":"FA18","name":"CJK COMPATIBILITY IDEOGRAPH-FA18","category":"Lo","class":"0","bidirectional_category":"L","mapping":"793C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA18"},64025:{"value":"FA19","name":"CJK COMPATIBILITY IDEOGRAPH-FA19","category":"Lo","class":"0","bidirectional_category":"L","mapping":"795E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA19"},64026:{"value":"FA1A","name":"CJK COMPATIBILITY IDEOGRAPH-FA1A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7965","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA1A"},64027:{"value":"FA1B","name":"CJK COMPATIBILITY IDEOGRAPH-FA1B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"798F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA1B"},64028:{"value":"FA1C","name":"CJK COMPATIBILITY IDEOGRAPH-FA1C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9756","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA1C"},64029:{"value":"FA1D","name":"CJK COMPATIBILITY IDEOGRAPH-FA1D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7CBE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA1D"},64030:{"value":"FA1E","name":"CJK COMPATIBILITY IDEOGRAPH-FA1E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7FBD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA1E"},64031:{"value":"FA1F","name":"CJK COMPATIBILITY IDEOGRAPH-FA1F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA1F"},64032:{"value":"FA20","name":"CJK COMPATIBILITY IDEOGRAPH-FA20","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8612","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA20"},64033:{"value":"FA21","name":"CJK COMPATIBILITY IDEOGRAPH-FA21","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA21"},64034:{"value":"FA22","name":"CJK COMPATIBILITY IDEOGRAPH-FA22","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AF8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA22"},64035:{"value":"FA23","name":"CJK COMPATIBILITY IDEOGRAPH-FA23","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA23"},64036:{"value":"FA24","name":"CJK COMPATIBILITY IDEOGRAPH-FA24","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA24"},64037:{"value":"FA25","name":"CJK COMPATIBILITY IDEOGRAPH-FA25","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9038","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA25"},64038:{"value":"FA26","name":"CJK COMPATIBILITY IDEOGRAPH-FA26","category":"Lo","class":"0","bidirectional_category":"L","mapping":"90FD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA26"},64039:{"value":"FA27","name":"CJK COMPATIBILITY IDEOGRAPH-FA27","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA27"},64040:{"value":"FA28","name":"CJK COMPATIBILITY IDEOGRAPH-FA28","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA28"},64041:{"value":"FA29","name":"CJK COMPATIBILITY IDEOGRAPH-FA29","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA29"},64042:{"value":"FA2A","name":"CJK COMPATIBILITY IDEOGRAPH-FA2A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"98EF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA2A"},64043:{"value":"FA2B","name":"CJK COMPATIBILITY IDEOGRAPH-FA2B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"98FC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA2B"},64044:{"value":"FA2C","name":"CJK COMPATIBILITY IDEOGRAPH-FA2C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9928","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA2C"},64045:{"value":"FA2D","name":"CJK COMPATIBILITY IDEOGRAPH-FA2D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9DB4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA2D"},64046:{"value":"FA2E","name":"CJK COMPATIBILITY IDEOGRAPH-FA2E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"90DE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA2E"},64047:{"value":"FA2F","name":"CJK COMPATIBILITY IDEOGRAPH-FA2F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"96B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA2F"},64048:{"value":"FA30","name":"CJK COMPATIBILITY IDEOGRAPH-FA30","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4FAE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA30"},64049:{"value":"FA31","name":"CJK COMPATIBILITY IDEOGRAPH-FA31","category":"Lo","class":"0","bidirectional_category":"L","mapping":"50E7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA31"},64050:{"value":"FA32","name":"CJK COMPATIBILITY IDEOGRAPH-FA32","category":"Lo","class":"0","bidirectional_category":"L","mapping":"514D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA32"},64051:{"value":"FA33","name":"CJK COMPATIBILITY IDEOGRAPH-FA33","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA33"},64052:{"value":"FA34","name":"CJK COMPATIBILITY IDEOGRAPH-FA34","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52E4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA34"},64053:{"value":"FA35","name":"CJK COMPATIBILITY IDEOGRAPH-FA35","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5351","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA35"},64054:{"value":"FA36","name":"CJK COMPATIBILITY IDEOGRAPH-FA36","category":"Lo","class":"0","bidirectional_category":"L","mapping":"559D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA36"},64055:{"value":"FA37","name":"CJK COMPATIBILITY IDEOGRAPH-FA37","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5606","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA37"},64056:{"value":"FA38","name":"CJK COMPATIBILITY IDEOGRAPH-FA38","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5668","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA38"},64057:{"value":"FA39","name":"CJK COMPATIBILITY IDEOGRAPH-FA39","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5840","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA39"},64058:{"value":"FA3A","name":"CJK COMPATIBILITY IDEOGRAPH-FA3A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"58A8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA3A"},64059:{"value":"FA3B","name":"CJK COMPATIBILITY IDEOGRAPH-FA3B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5C64","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA3B"},64060:{"value":"FA3C","name":"CJK COMPATIBILITY IDEOGRAPH-FA3C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5C6E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA3C"},64061:{"value":"FA3D","name":"CJK COMPATIBILITY IDEOGRAPH-FA3D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6094","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA3D"},64062:{"value":"FA3E","name":"CJK COMPATIBILITY IDEOGRAPH-FA3E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6168","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA3E"},64063:{"value":"FA3F","name":"CJK COMPATIBILITY IDEOGRAPH-FA3F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"618E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA3F"},64064:{"value":"FA40","name":"CJK COMPATIBILITY IDEOGRAPH-FA40","category":"Lo","class":"0","bidirectional_category":"L","mapping":"61F2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA40"},64065:{"value":"FA41","name":"CJK COMPATIBILITY IDEOGRAPH-FA41","category":"Lo","class":"0","bidirectional_category":"L","mapping":"654F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA41"},64066:{"value":"FA42","name":"CJK COMPATIBILITY IDEOGRAPH-FA42","category":"Lo","class":"0","bidirectional_category":"L","mapping":"65E2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA42"},64067:{"value":"FA43","name":"CJK COMPATIBILITY IDEOGRAPH-FA43","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6691","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA43"},64068:{"value":"FA44","name":"CJK COMPATIBILITY IDEOGRAPH-FA44","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6885","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA44"},64069:{"value":"FA45","name":"CJK COMPATIBILITY IDEOGRAPH-FA45","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D77","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA45"},64070:{"value":"FA46","name":"CJK COMPATIBILITY IDEOGRAPH-FA46","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6E1A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA46"},64071:{"value":"FA47","name":"CJK COMPATIBILITY IDEOGRAPH-FA47","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6F22","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA47"},64072:{"value":"FA48","name":"CJK COMPATIBILITY IDEOGRAPH-FA48","category":"Lo","class":"0","bidirectional_category":"L","mapping":"716E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA48"},64073:{"value":"FA49","name":"CJK COMPATIBILITY IDEOGRAPH-FA49","category":"Lo","class":"0","bidirectional_category":"L","mapping":"722B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA49"},64074:{"value":"FA4A","name":"CJK COMPATIBILITY IDEOGRAPH-FA4A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7422","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA4A"},64075:{"value":"FA4B","name":"CJK COMPATIBILITY IDEOGRAPH-FA4B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7891","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA4B"},64076:{"value":"FA4C","name":"CJK COMPATIBILITY IDEOGRAPH-FA4C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"793E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA4C"},64077:{"value":"FA4D","name":"CJK COMPATIBILITY IDEOGRAPH-FA4D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7949","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA4D"},64078:{"value":"FA4E","name":"CJK COMPATIBILITY IDEOGRAPH-FA4E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7948","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA4E"},64079:{"value":"FA4F","name":"CJK COMPATIBILITY IDEOGRAPH-FA4F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7950","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA4F"},64080:{"value":"FA50","name":"CJK COMPATIBILITY IDEOGRAPH-FA50","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7956","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA50"},64081:{"value":"FA51","name":"CJK COMPATIBILITY IDEOGRAPH-FA51","category":"Lo","class":"0","bidirectional_category":"L","mapping":"795D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA51"},64082:{"value":"FA52","name":"CJK COMPATIBILITY IDEOGRAPH-FA52","category":"Lo","class":"0","bidirectional_category":"L","mapping":"798D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA52"},64083:{"value":"FA53","name":"CJK COMPATIBILITY IDEOGRAPH-FA53","category":"Lo","class":"0","bidirectional_category":"L","mapping":"798E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA53"},64084:{"value":"FA54","name":"CJK COMPATIBILITY IDEOGRAPH-FA54","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7A40","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA54"},64085:{"value":"FA55","name":"CJK COMPATIBILITY IDEOGRAPH-FA55","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7A81","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA55"},64086:{"value":"FA56","name":"CJK COMPATIBILITY IDEOGRAPH-FA56","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7BC0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA56"},64087:{"value":"FA57","name":"CJK COMPATIBILITY IDEOGRAPH-FA57","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7DF4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA57"},64088:{"value":"FA58","name":"CJK COMPATIBILITY IDEOGRAPH-FA58","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7E09","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA58"},64089:{"value":"FA59","name":"CJK COMPATIBILITY IDEOGRAPH-FA59","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7E41","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA59"},64090:{"value":"FA5A","name":"CJK COMPATIBILITY IDEOGRAPH-FA5A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7F72","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA5A"},64091:{"value":"FA5B","name":"CJK COMPATIBILITY IDEOGRAPH-FA5B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8005","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA5B"},64092:{"value":"FA5C","name":"CJK COMPATIBILITY IDEOGRAPH-FA5C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"81ED","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA5C"},64093:{"value":"FA5D","name":"CJK COMPATIBILITY IDEOGRAPH-FA5D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8279","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA5D"},64094:{"value":"FA5E","name":"CJK COMPATIBILITY IDEOGRAPH-FA5E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8279","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA5E"},64095:{"value":"FA5F","name":"CJK COMPATIBILITY IDEOGRAPH-FA5F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8457","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA5F"},64096:{"value":"FA60","name":"CJK COMPATIBILITY IDEOGRAPH-FA60","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8910","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA60"},64097:{"value":"FA61","name":"CJK COMPATIBILITY IDEOGRAPH-FA61","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8996","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA61"},64098:{"value":"FA62","name":"CJK COMPATIBILITY IDEOGRAPH-FA62","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8B01","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA62"},64099:{"value":"FA63","name":"CJK COMPATIBILITY IDEOGRAPH-FA63","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8B39","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA63"},64100:{"value":"FA64","name":"CJK COMPATIBILITY IDEOGRAPH-FA64","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8CD3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA64"},64101:{"value":"FA65","name":"CJK COMPATIBILITY IDEOGRAPH-FA65","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8D08","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA65"},64102:{"value":"FA66","name":"CJK COMPATIBILITY IDEOGRAPH-FA66","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8FB6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA66"},64103:{"value":"FA67","name":"CJK COMPATIBILITY IDEOGRAPH-FA67","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9038","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA67"},64104:{"value":"FA68","name":"CJK COMPATIBILITY IDEOGRAPH-FA68","category":"Lo","class":"0","bidirectional_category":"L","mapping":"96E3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA68"},64105:{"value":"FA69","name":"CJK COMPATIBILITY IDEOGRAPH-FA69","category":"Lo","class":"0","bidirectional_category":"L","mapping":"97FF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA69"},64106:{"value":"FA6A","name":"CJK COMPATIBILITY IDEOGRAPH-FA6A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"983B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA6A"},64107:{"value":"FA6B","name":"CJK COMPATIBILITY IDEOGRAPH-FA6B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA6B"},64108:{"value":"FA6C","name":"CJK COMPATIBILITY IDEOGRAPH-FA6C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"242EE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA6C"},64109:{"value":"FA6D","name":"CJK COMPATIBILITY IDEOGRAPH-FA6D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8218","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA6D"},64112:{"value":"FA70","name":"CJK COMPATIBILITY IDEOGRAPH-FA70","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4E26","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA70"},64113:{"value":"FA71","name":"CJK COMPATIBILITY IDEOGRAPH-FA71","category":"Lo","class":"0","bidirectional_category":"L","mapping":"51B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA71"},64114:{"value":"FA72","name":"CJK COMPATIBILITY IDEOGRAPH-FA72","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5168","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA72"},64115:{"value":"FA73","name":"CJK COMPATIBILITY IDEOGRAPH-FA73","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4F80","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA73"},64116:{"value":"FA74","name":"CJK COMPATIBILITY IDEOGRAPH-FA74","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5145","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA74"},64117:{"value":"FA75","name":"CJK COMPATIBILITY IDEOGRAPH-FA75","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5180","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA75"},64118:{"value":"FA76","name":"CJK COMPATIBILITY IDEOGRAPH-FA76","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA76"},64119:{"value":"FA77","name":"CJK COMPATIBILITY IDEOGRAPH-FA77","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52FA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA77"},64120:{"value":"FA78","name":"CJK COMPATIBILITY IDEOGRAPH-FA78","category":"Lo","class":"0","bidirectional_category":"L","mapping":"559D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA78"},64121:{"value":"FA79","name":"CJK COMPATIBILITY IDEOGRAPH-FA79","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5555","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA79"},64122:{"value":"FA7A","name":"CJK COMPATIBILITY IDEOGRAPH-FA7A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5599","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA7A"},64123:{"value":"FA7B","name":"CJK COMPATIBILITY IDEOGRAPH-FA7B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"55E2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA7B"},64124:{"value":"FA7C","name":"CJK COMPATIBILITY IDEOGRAPH-FA7C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"585A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA7C"},64125:{"value":"FA7D","name":"CJK COMPATIBILITY IDEOGRAPH-FA7D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"58B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA7D"},64126:{"value":"FA7E","name":"CJK COMPATIBILITY IDEOGRAPH-FA7E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5944","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA7E"},64127:{"value":"FA7F","name":"CJK COMPATIBILITY IDEOGRAPH-FA7F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5954","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA7F"},64128:{"value":"FA80","name":"CJK COMPATIBILITY IDEOGRAPH-FA80","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5A62","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA80"},64129:{"value":"FA81","name":"CJK COMPATIBILITY IDEOGRAPH-FA81","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5B28","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA81"},64130:{"value":"FA82","name":"CJK COMPATIBILITY IDEOGRAPH-FA82","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5ED2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA82"},64131:{"value":"FA83","name":"CJK COMPATIBILITY IDEOGRAPH-FA83","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5ED9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA83"},64132:{"value":"FA84","name":"CJK COMPATIBILITY IDEOGRAPH-FA84","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5F69","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA84"},64133:{"value":"FA85","name":"CJK COMPATIBILITY IDEOGRAPH-FA85","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5FAD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA85"},64134:{"value":"FA86","name":"CJK COMPATIBILITY IDEOGRAPH-FA86","category":"Lo","class":"0","bidirectional_category":"L","mapping":"60D8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA86"},64135:{"value":"FA87","name":"CJK COMPATIBILITY IDEOGRAPH-FA87","category":"Lo","class":"0","bidirectional_category":"L","mapping":"614E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA87"},64136:{"value":"FA88","name":"CJK COMPATIBILITY IDEOGRAPH-FA88","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6108","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA88"},64137:{"value":"FA89","name":"CJK COMPATIBILITY IDEOGRAPH-FA89","category":"Lo","class":"0","bidirectional_category":"L","mapping":"618E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA89"},64138:{"value":"FA8A","name":"CJK COMPATIBILITY IDEOGRAPH-FA8A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6160","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA8A"},64139:{"value":"FA8B","name":"CJK COMPATIBILITY IDEOGRAPH-FA8B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"61F2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA8B"},64140:{"value":"FA8C","name":"CJK COMPATIBILITY IDEOGRAPH-FA8C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6234","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA8C"},64141:{"value":"FA8D","name":"CJK COMPATIBILITY IDEOGRAPH-FA8D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"63C4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA8D"},64142:{"value":"FA8E","name":"CJK COMPATIBILITY IDEOGRAPH-FA8E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"641C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA8E"},64143:{"value":"FA8F","name":"CJK COMPATIBILITY IDEOGRAPH-FA8F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6452","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA8F"},64144:{"value":"FA90","name":"CJK COMPATIBILITY IDEOGRAPH-FA90","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6556","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA90"},64145:{"value":"FA91","name":"CJK COMPATIBILITY IDEOGRAPH-FA91","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6674","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA91"},64146:{"value":"FA92","name":"CJK COMPATIBILITY IDEOGRAPH-FA92","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6717","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA92"},64147:{"value":"FA93","name":"CJK COMPATIBILITY IDEOGRAPH-FA93","category":"Lo","class":"0","bidirectional_category":"L","mapping":"671B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA93"},64148:{"value":"FA94","name":"CJK COMPATIBILITY IDEOGRAPH-FA94","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6756","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA94"},64149:{"value":"FA95","name":"CJK COMPATIBILITY IDEOGRAPH-FA95","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6B79","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA95"},64150:{"value":"FA96","name":"CJK COMPATIBILITY IDEOGRAPH-FA96","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6BBA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA96"},64151:{"value":"FA97","name":"CJK COMPATIBILITY IDEOGRAPH-FA97","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D41","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA97"},64152:{"value":"FA98","name":"CJK COMPATIBILITY IDEOGRAPH-FA98","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6EDB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA98"},64153:{"value":"FA99","name":"CJK COMPATIBILITY IDEOGRAPH-FA99","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6ECB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA99"},64154:{"value":"FA9A","name":"CJK COMPATIBILITY IDEOGRAPH-FA9A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6F22","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA9A"},64155:{"value":"FA9B","name":"CJK COMPATIBILITY IDEOGRAPH-FA9B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"701E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA9B"},64156:{"value":"FA9C","name":"CJK COMPATIBILITY IDEOGRAPH-FA9C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"716E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA9C"},64157:{"value":"FA9D","name":"CJK COMPATIBILITY IDEOGRAPH-FA9D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"77A7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA9D"},64158:{"value":"FA9E","name":"CJK COMPATIBILITY IDEOGRAPH-FA9E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7235","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA9E"},64159:{"value":"FA9F","name":"CJK COMPATIBILITY IDEOGRAPH-FA9F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"72AF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA9F"},64160:{"value":"FAA0","name":"CJK COMPATIBILITY IDEOGRAPH-FAA0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"732A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAA0"},64161:{"value":"FAA1","name":"CJK COMPATIBILITY IDEOGRAPH-FAA1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7471","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAA1"},64162:{"value":"FAA2","name":"CJK COMPATIBILITY IDEOGRAPH-FAA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7506","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAA2"},64163:{"value":"FAA3","name":"CJK COMPATIBILITY IDEOGRAPH-FAA3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"753B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAA3"},64164:{"value":"FAA4","name":"CJK COMPATIBILITY IDEOGRAPH-FAA4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"761D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAA4"},64165:{"value":"FAA5","name":"CJK COMPATIBILITY IDEOGRAPH-FAA5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"761F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAA5"},64166:{"value":"FAA6","name":"CJK COMPATIBILITY IDEOGRAPH-FAA6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"76CA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAA6"},64167:{"value":"FAA7","name":"CJK COMPATIBILITY IDEOGRAPH-FAA7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"76DB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAA7"},64168:{"value":"FAA8","name":"CJK COMPATIBILITY IDEOGRAPH-FAA8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"76F4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAA8"},64169:{"value":"FAA9","name":"CJK COMPATIBILITY IDEOGRAPH-FAA9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"774A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAA9"},64170:{"value":"FAAA","name":"CJK COMPATIBILITY IDEOGRAPH-FAAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7740","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAAA"},64171:{"value":"FAAB","name":"CJK COMPATIBILITY IDEOGRAPH-FAAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"78CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAAB"},64172:{"value":"FAAC","name":"CJK COMPATIBILITY IDEOGRAPH-FAAC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7AB1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAAC"},64173:{"value":"FAAD","name":"CJK COMPATIBILITY IDEOGRAPH-FAAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7BC0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAAD"},64174:{"value":"FAAE","name":"CJK COMPATIBILITY IDEOGRAPH-FAAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7C7B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAAE"},64175:{"value":"FAAF","name":"CJK COMPATIBILITY IDEOGRAPH-FAAF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7D5B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAAF"},64176:{"value":"FAB0","name":"CJK COMPATIBILITY IDEOGRAPH-FAB0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7DF4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAB0"},64177:{"value":"FAB1","name":"CJK COMPATIBILITY IDEOGRAPH-FAB1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7F3E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAB1"},64178:{"value":"FAB2","name":"CJK COMPATIBILITY IDEOGRAPH-FAB2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8005","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAB2"},64179:{"value":"FAB3","name":"CJK COMPATIBILITY IDEOGRAPH-FAB3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8352","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAB3"},64180:{"value":"FAB4","name":"CJK COMPATIBILITY IDEOGRAPH-FAB4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"83EF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAB4"},64181:{"value":"FAB5","name":"CJK COMPATIBILITY IDEOGRAPH-FAB5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8779","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAB5"},64182:{"value":"FAB6","name":"CJK COMPATIBILITY IDEOGRAPH-FAB6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8941","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAB6"},64183:{"value":"FAB7","name":"CJK COMPATIBILITY IDEOGRAPH-FAB7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8986","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAB7"},64184:{"value":"FAB8","name":"CJK COMPATIBILITY IDEOGRAPH-FAB8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8996","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAB8"},64185:{"value":"FAB9","name":"CJK COMPATIBILITY IDEOGRAPH-FAB9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8ABF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAB9"},64186:{"value":"FABA","name":"CJK COMPATIBILITY IDEOGRAPH-FABA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AF8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFABA"},64187:{"value":"FABB","name":"CJK COMPATIBILITY IDEOGRAPH-FABB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8ACB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFABB"},64188:{"value":"FABC","name":"CJK COMPATIBILITY IDEOGRAPH-FABC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8B01","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFABC"},64189:{"value":"FABD","name":"CJK COMPATIBILITY IDEOGRAPH-FABD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AFE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFABD"},64190:{"value":"FABE","name":"CJK COMPATIBILITY IDEOGRAPH-FABE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AED","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFABE"},64191:{"value":"FABF","name":"CJK COMPATIBILITY IDEOGRAPH-FABF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8B39","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFABF"},64192:{"value":"FAC0","name":"CJK COMPATIBILITY IDEOGRAPH-FAC0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8B8A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAC0"},64193:{"value":"FAC1","name":"CJK COMPATIBILITY IDEOGRAPH-FAC1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8D08","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAC1"},64194:{"value":"FAC2","name":"CJK COMPATIBILITY IDEOGRAPH-FAC2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8F38","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAC2"},64195:{"value":"FAC3","name":"CJK COMPATIBILITY IDEOGRAPH-FAC3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAC3"},64196:{"value":"FAC4","name":"CJK COMPATIBILITY IDEOGRAPH-FAC4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9199","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAC4"},64197:{"value":"FAC5","name":"CJK COMPATIBILITY IDEOGRAPH-FAC5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9276","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAC5"},64198:{"value":"FAC6","name":"CJK COMPATIBILITY IDEOGRAPH-FAC6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"967C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAC6"},64199:{"value":"FAC7","name":"CJK COMPATIBILITY IDEOGRAPH-FAC7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"96E3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAC7"},64200:{"value":"FAC8","name":"CJK COMPATIBILITY IDEOGRAPH-FAC8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9756","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAC8"},64201:{"value":"FAC9","name":"CJK COMPATIBILITY IDEOGRAPH-FAC9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"97DB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAC9"},64202:{"value":"FACA","name":"CJK COMPATIBILITY IDEOGRAPH-FACA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"97FF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFACA"},64203:{"value":"FACB","name":"CJK COMPATIBILITY IDEOGRAPH-FACB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"980B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFACB"},64204:{"value":"FACC","name":"CJK COMPATIBILITY IDEOGRAPH-FACC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"983B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFACC"},64205:{"value":"FACD","name":"CJK COMPATIBILITY IDEOGRAPH-FACD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9B12","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFACD"},64206:{"value":"FACE","name":"CJK COMPATIBILITY IDEOGRAPH-FACE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9F9C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFACE"},64207:{"value":"FACF","name":"CJK COMPATIBILITY IDEOGRAPH-FACF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2284A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFACF"},64208:{"value":"FAD0","name":"CJK COMPATIBILITY IDEOGRAPH-FAD0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"22844","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAD0"},64209:{"value":"FAD1","name":"CJK COMPATIBILITY IDEOGRAPH-FAD1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"233D5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAD1"},64210:{"value":"FAD2","name":"CJK COMPATIBILITY IDEOGRAPH-FAD2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3B9D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAD2"},64211:{"value":"FAD3","name":"CJK COMPATIBILITY IDEOGRAPH-FAD3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4018","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAD3"},64212:{"value":"FAD4","name":"CJK COMPATIBILITY IDEOGRAPH-FAD4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4039","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAD4"},64213:{"value":"FAD5","name":"CJK COMPATIBILITY IDEOGRAPH-FAD5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25249","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAD5"},64214:{"value":"FAD6","name":"CJK COMPATIBILITY IDEOGRAPH-FAD6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25CD0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAD6"},64215:{"value":"FAD7","name":"CJK COMPATIBILITY IDEOGRAPH-FAD7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"27ED3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAD7"},64216:{"value":"FAD8","name":"CJK COMPATIBILITY IDEOGRAPH-FAD8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9F43","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAD8"},64217:{"value":"FAD9","name":"CJK COMPATIBILITY IDEOGRAPH-FAD9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9F8E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFAD9"},64285:{"value":"FB1D","name":"HEBREW LETTER YOD WITH HIRIQ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D9 05B4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB1D"},64287:{"value":"FB1F","name":"HEBREW LIGATURE YIDDISH YOD YOD PATAH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05F2 05B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB1F"},64288:{"value":"FB20","name":"HEBREW LETTER ALTERNATIVE AYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"<font> 05E2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB20"},64289:{"value":"FB21","name":"HEBREW LETTER WIDE ALEF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"<font> 05D0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB21"},64290:{"value":"FB22","name":"HEBREW LETTER WIDE DALET","category":"Lo","class":"0","bidirectional_category":"R","mapping":"<font> 05D3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB22"},64291:{"value":"FB23","name":"HEBREW LETTER WIDE HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"<font> 05D4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB23"},64292:{"value":"FB24","name":"HEBREW LETTER WIDE KAF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"<font> 05DB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB24"},64293:{"value":"FB25","name":"HEBREW LETTER WIDE LAMED","category":"Lo","class":"0","bidirectional_category":"R","mapping":"<font> 05DC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB25"},64294:{"value":"FB26","name":"HEBREW LETTER WIDE FINAL MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"<font> 05DD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB26"},64295:{"value":"FB27","name":"HEBREW LETTER WIDE RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"<font> 05E8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB27"},64296:{"value":"FB28","name":"HEBREW LETTER WIDE TAV","category":"Lo","class":"0","bidirectional_category":"R","mapping":"<font> 05EA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB28"},64298:{"value":"FB2A","name":"HEBREW LETTER SHIN WITH SHIN DOT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E9 05C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB2A"},64299:{"value":"FB2B","name":"HEBREW LETTER SHIN WITH SIN DOT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E9 05C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB2B"},64300:{"value":"FB2C","name":"HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"FB49 05C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB2C"},64301:{"value":"FB2D","name":"HEBREW LETTER SHIN WITH DAGESH AND SIN DOT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"FB49 05C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB2D"},64302:{"value":"FB2E","name":"HEBREW LETTER ALEF WITH PATAH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D0 05B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB2E"},64303:{"value":"FB2F","name":"HEBREW LETTER ALEF WITH QAMATS","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D0 05B8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB2F"},64304:{"value":"FB30","name":"HEBREW LETTER ALEF WITH MAPIQ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D0 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB30"},64305:{"value":"FB31","name":"HEBREW LETTER BET WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D1 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB31"},64306:{"value":"FB32","name":"HEBREW LETTER GIMEL WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D2 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB32"},64307:{"value":"FB33","name":"HEBREW LETTER DALET WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D3 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB33"},64308:{"value":"FB34","name":"HEBREW LETTER HE WITH MAPIQ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D4 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB34"},64309:{"value":"FB35","name":"HEBREW LETTER VAV WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D5 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB35"},64310:{"value":"FB36","name":"HEBREW LETTER ZAYIN WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D6 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB36"},64312:{"value":"FB38","name":"HEBREW LETTER TET WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D8 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB38"},64313:{"value":"FB39","name":"HEBREW LETTER YOD WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D9 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB39"},64314:{"value":"FB3A","name":"HEBREW LETTER FINAL KAF WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05DA 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB3A"},64315:{"value":"FB3B","name":"HEBREW LETTER KAF WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05DB 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB3B"},64316:{"value":"FB3C","name":"HEBREW LETTER LAMED WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05DC 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB3C"},64318:{"value":"FB3E","name":"HEBREW LETTER MEM WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05DE 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB3E"},64320:{"value":"FB40","name":"HEBREW LETTER NUN WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E0 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB40"},64321:{"value":"FB41","name":"HEBREW LETTER SAMEKH WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E1 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB41"},64323:{"value":"FB43","name":"HEBREW LETTER FINAL PE WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E3 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB43"},64324:{"value":"FB44","name":"HEBREW LETTER PE WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E4 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB44"},64326:{"value":"FB46","name":"HEBREW LETTER TSADI WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E6 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB46"},64327:{"value":"FB47","name":"HEBREW LETTER QOF WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E7 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB47"},64328:{"value":"FB48","name":"HEBREW LETTER RESH WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E8 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB48"},64329:{"value":"FB49","name":"HEBREW LETTER SHIN WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E9 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB49"},64330:{"value":"FB4A","name":"HEBREW LETTER TAV WITH DAGESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05EA 05BC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB4A"},64331:{"value":"FB4B","name":"HEBREW LETTER VAV WITH HOLAM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D5 05B9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB4B"},64332:{"value":"FB4C","name":"HEBREW LETTER BET WITH RAFE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05D1 05BF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB4C"},64333:{"value":"FB4D","name":"HEBREW LETTER KAF WITH RAFE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05DB 05BF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB4D"},64334:{"value":"FB4E","name":"HEBREW LETTER PE WITH RAFE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"05E4 05BF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB4E"},64335:{"value":"FB4F","name":"HEBREW LIGATURE ALEF LAMED","category":"Lo","class":"0","bidirectional_category":"R","mapping":"<compat> 05D0 05DC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB4F"},64336:{"value":"FB50","name":"ARABIC LETTER ALEF WASLA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0671","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB50"},64337:{"value":"FB51","name":"ARABIC LETTER ALEF WASLA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0671","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB51"},64338:{"value":"FB52","name":"ARABIC LETTER BEEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 067B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB52"},64339:{"value":"FB53","name":"ARABIC LETTER BEEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 067B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB53"},64340:{"value":"FB54","name":"ARABIC LETTER BEEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 067B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB54"},64341:{"value":"FB55","name":"ARABIC LETTER BEEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 067B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB55"},64342:{"value":"FB56","name":"ARABIC LETTER PEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 067E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB56"},64343:{"value":"FB57","name":"ARABIC LETTER PEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 067E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB57"},64344:{"value":"FB58","name":"ARABIC LETTER PEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 067E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB58"},64345:{"value":"FB59","name":"ARABIC LETTER PEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 067E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB59"},64346:{"value":"FB5A","name":"ARABIC LETTER BEHEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0680","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB5A"},64347:{"value":"FB5B","name":"ARABIC LETTER BEHEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0680","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB5B"},64348:{"value":"FB5C","name":"ARABIC LETTER BEHEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0680","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB5C"},64349:{"value":"FB5D","name":"ARABIC LETTER BEHEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0680","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB5D"},64350:{"value":"FB5E","name":"ARABIC LETTER TTEHEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 067A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB5E"},64351:{"value":"FB5F","name":"ARABIC LETTER TTEHEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 067A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB5F"},64352:{"value":"FB60","name":"ARABIC LETTER TTEHEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 067A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB60"},64353:{"value":"FB61","name":"ARABIC LETTER TTEHEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 067A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB61"},64354:{"value":"FB62","name":"ARABIC LETTER TEHEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 067F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB62"},64355:{"value":"FB63","name":"ARABIC LETTER TEHEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 067F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB63"},64356:{"value":"FB64","name":"ARABIC LETTER TEHEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 067F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB64"},64357:{"value":"FB65","name":"ARABIC LETTER TEHEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 067F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB65"},64358:{"value":"FB66","name":"ARABIC LETTER TTEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0679","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB66"},64359:{"value":"FB67","name":"ARABIC LETTER TTEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0679","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB67"},64360:{"value":"FB68","name":"ARABIC LETTER TTEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0679","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB68"},64361:{"value":"FB69","name":"ARABIC LETTER TTEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0679","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB69"},64362:{"value":"FB6A","name":"ARABIC LETTER VEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB6A"},64363:{"value":"FB6B","name":"ARABIC LETTER VEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB6B"},64364:{"value":"FB6C","name":"ARABIC LETTER VEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB6C"},64365:{"value":"FB6D","name":"ARABIC LETTER VEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB6D"},64366:{"value":"FB6E","name":"ARABIC LETTER PEHEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06A6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB6E"},64367:{"value":"FB6F","name":"ARABIC LETTER PEHEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06A6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB6F"},64368:{"value":"FB70","name":"ARABIC LETTER PEHEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06A6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB70"},64369:{"value":"FB71","name":"ARABIC LETTER PEHEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06A6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB71"},64370:{"value":"FB72","name":"ARABIC LETTER DYEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0684","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB72"},64371:{"value":"FB73","name":"ARABIC LETTER DYEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0684","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB73"},64372:{"value":"FB74","name":"ARABIC LETTER DYEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0684","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB74"},64373:{"value":"FB75","name":"ARABIC LETTER DYEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0684","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB75"},64374:{"value":"FB76","name":"ARABIC LETTER NYEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0683","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB76"},64375:{"value":"FB77","name":"ARABIC LETTER NYEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0683","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB77"},64376:{"value":"FB78","name":"ARABIC LETTER NYEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0683","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB78"},64377:{"value":"FB79","name":"ARABIC LETTER NYEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0683","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB79"},64378:{"value":"FB7A","name":"ARABIC LETTER TCHEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0686","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB7A"},64379:{"value":"FB7B","name":"ARABIC LETTER TCHEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0686","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB7B"},64380:{"value":"FB7C","name":"ARABIC LETTER TCHEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0686","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB7C"},64381:{"value":"FB7D","name":"ARABIC LETTER TCHEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0686","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB7D"},64382:{"value":"FB7E","name":"ARABIC LETTER TCHEHEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0687","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB7E"},64383:{"value":"FB7F","name":"ARABIC LETTER TCHEHEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0687","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB7F"},64384:{"value":"FB80","name":"ARABIC LETTER TCHEHEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0687","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB80"},64385:{"value":"FB81","name":"ARABIC LETTER TCHEHEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0687","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB81"},64386:{"value":"FB82","name":"ARABIC LETTER DDAHAL ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 068D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB82"},64387:{"value":"FB83","name":"ARABIC LETTER DDAHAL FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 068D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB83"},64388:{"value":"FB84","name":"ARABIC LETTER DAHAL ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 068C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB84"},64389:{"value":"FB85","name":"ARABIC LETTER DAHAL FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 068C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB85"},64390:{"value":"FB86","name":"ARABIC LETTER DUL ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 068E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB86"},64391:{"value":"FB87","name":"ARABIC LETTER DUL FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 068E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB87"},64392:{"value":"FB88","name":"ARABIC LETTER DDAL ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0688","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB88"},64393:{"value":"FB89","name":"ARABIC LETTER DDAL FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0688","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB89"},64394:{"value":"FB8A","name":"ARABIC LETTER JEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0698","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB8A"},64395:{"value":"FB8B","name":"ARABIC LETTER JEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0698","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB8B"},64396:{"value":"FB8C","name":"ARABIC LETTER RREH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0691","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB8C"},64397:{"value":"FB8D","name":"ARABIC LETTER RREH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0691","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB8D"},64398:{"value":"FB8E","name":"ARABIC LETTER KEHEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB8E"},64399:{"value":"FB8F","name":"ARABIC LETTER KEHEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB8F"},64400:{"value":"FB90","name":"ARABIC LETTER KEHEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB90"},64401:{"value":"FB91","name":"ARABIC LETTER KEHEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB91"},64402:{"value":"FB92","name":"ARABIC LETTER GAF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06AF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB92"},64403:{"value":"FB93","name":"ARABIC LETTER GAF FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06AF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB93"},64404:{"value":"FB94","name":"ARABIC LETTER GAF INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06AF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB94"},64405:{"value":"FB95","name":"ARABIC LETTER GAF MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06AF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB95"},64406:{"value":"FB96","name":"ARABIC LETTER GUEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB96"},64407:{"value":"FB97","name":"ARABIC LETTER GUEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB97"},64408:{"value":"FB98","name":"ARABIC LETTER GUEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB98"},64409:{"value":"FB99","name":"ARABIC LETTER GUEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB99"},64410:{"value":"FB9A","name":"ARABIC LETTER NGOEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB9A"},64411:{"value":"FB9B","name":"ARABIC LETTER NGOEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB9B"},64412:{"value":"FB9C","name":"ARABIC LETTER NGOEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB9C"},64413:{"value":"FB9D","name":"ARABIC LETTER NGOEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB9D"},64414:{"value":"FB9E","name":"ARABIC LETTER NOON GHUNNA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB9E"},64415:{"value":"FB9F","name":"ARABIC LETTER NOON GHUNNA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB9F"},64416:{"value":"FBA0","name":"ARABIC LETTER RNOON ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBA0"},64417:{"value":"FBA1","name":"ARABIC LETTER RNOON FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBA1"},64418:{"value":"FBA2","name":"ARABIC LETTER RNOON INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBA2"},64419:{"value":"FBA3","name":"ARABIC LETTER RNOON MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBA3"},64420:{"value":"FBA4","name":"ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBA4"},64421:{"value":"FBA5","name":"ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06C0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBA5"},64422:{"value":"FBA6","name":"ARABIC LETTER HEH GOAL ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBA6"},64423:{"value":"FBA7","name":"ARABIC LETTER HEH GOAL FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBA7"},64424:{"value":"FBA8","name":"ARABIC LETTER HEH GOAL INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBA8"},64425:{"value":"FBA9","name":"ARABIC LETTER HEH GOAL MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBA9"},64426:{"value":"FBAA","name":"ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBAA"},64427:{"value":"FBAB","name":"ARABIC LETTER HEH DOACHASHMEE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBAB"},64428:{"value":"FBAC","name":"ARABIC LETTER HEH DOACHASHMEE INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBAC"},64429:{"value":"FBAD","name":"ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBAD"},64430:{"value":"FBAE","name":"ARABIC LETTER YEH BARREE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06D2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBAE"},64431:{"value":"FBAF","name":"ARABIC LETTER YEH BARREE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06D2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBAF"},64432:{"value":"FBB0","name":"ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06D3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBB0"},64433:{"value":"FBB1","name":"ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06D3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBB1"},64467:{"value":"FBD3","name":"ARABIC LETTER NG ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBD3"},64468:{"value":"FBD4","name":"ARABIC LETTER NG FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBD4"},64469:{"value":"FBD5","name":"ARABIC LETTER NG INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBD5"},64470:{"value":"FBD6","name":"ARABIC LETTER NG MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBD6"},64471:{"value":"FBD7","name":"ARABIC LETTER U ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBD7"},64472:{"value":"FBD8","name":"ARABIC LETTER U FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBD8"},64473:{"value":"FBD9","name":"ARABIC LETTER OE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBD9"},64474:{"value":"FBDA","name":"ARABIC LETTER OE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBDA"},64475:{"value":"FBDB","name":"ARABIC LETTER YU ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBDB"},64476:{"value":"FBDC","name":"ARABIC LETTER YU FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBDC"},64477:{"value":"FBDD","name":"ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0677","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBDD"},64478:{"value":"FBDE","name":"ARABIC LETTER VE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06CB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBDE"},64479:{"value":"FBDF","name":"ARABIC LETTER VE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06CB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBDF"},64480:{"value":"FBE0","name":"ARABIC LETTER KIRGHIZ OE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBE0"},64481:{"value":"FBE1","name":"ARABIC LETTER KIRGHIZ OE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBE1"},64482:{"value":"FBE2","name":"ARABIC LETTER KIRGHIZ YU ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBE2"},64483:{"value":"FBE3","name":"ARABIC LETTER KIRGHIZ YU FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBE3"},64484:{"value":"FBE4","name":"ARABIC LETTER E ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06D0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBE4"},64485:{"value":"FBE5","name":"ARABIC LETTER E FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06D0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBE5"},64486:{"value":"FBE6","name":"ARABIC LETTER E INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06D0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBE6"},64487:{"value":"FBE7","name":"ARABIC LETTER E MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06D0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBE7"},64488:{"value":"FBE8","name":"ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBE8"},64489:{"value":"FBE9","name":"ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBE9"},64490:{"value":"FBEA","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBEA"},64491:{"value":"FBEB","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBEB"},64492:{"value":"FBEC","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 06D5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBEC"},64493:{"value":"FBED","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 06D5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBED"},64494:{"value":"FBEE","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 0648","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBEE"},64495:{"value":"FBEF","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 0648","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBEF"},64496:{"value":"FBF0","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 06C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBF0"},64497:{"value":"FBF1","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 06C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBF1"},64498:{"value":"FBF2","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 06C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBF2"},64499:{"value":"FBF3","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 06C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBF3"},64500:{"value":"FBF4","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 06C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBF4"},64501:{"value":"FBF5","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 06C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBF5"},64502:{"value":"FBF6","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 06D0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBF6"},64503:{"value":"FBF7","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 06D0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBF7"},64504:{"value":"FBF8","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0626 06D0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBF8"},64505:{"value":"FBF9","name":"ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBF9"},64506:{"value":"FBFA","name":"ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBFA"},64507:{"value":"FBFB","name":"ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0626 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBFB"},64508:{"value":"FBFC","name":"ARABIC LETTER FARSI YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 06CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBFC"},64509:{"value":"FBFD","name":"ARABIC LETTER FARSI YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 06CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBFD"},64510:{"value":"FBFE","name":"ARABIC LETTER FARSI YEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 06CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBFE"},64511:{"value":"FBFF","name":"ARABIC LETTER FARSI YEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 06CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFBFF"},64512:{"value":"FC00","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC00"},64513:{"value":"FC01","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC01"},64514:{"value":"FC02","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC02"},64515:{"value":"FC03","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC03"},64516:{"value":"FC04","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC04"},64517:{"value":"FC05","name":"ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0628 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC05"},64518:{"value":"FC06","name":"ARABIC LIGATURE BEH WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0628 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC06"},64519:{"value":"FC07","name":"ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0628 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC07"},64520:{"value":"FC08","name":"ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0628 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC08"},64521:{"value":"FC09","name":"ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0628 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC09"},64522:{"value":"FC0A","name":"ARABIC LIGATURE BEH WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0628 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC0A"},64523:{"value":"FC0B","name":"ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062A 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC0B"},64524:{"value":"FC0C","name":"ARABIC LIGATURE TEH WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062A 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC0C"},64525:{"value":"FC0D","name":"ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062A 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC0D"},64526:{"value":"FC0E","name":"ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062A 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC0E"},64527:{"value":"FC0F","name":"ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062A 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC0F"},64528:{"value":"FC10","name":"ARABIC LIGATURE TEH WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062A 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC10"},64529:{"value":"FC11","name":"ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062B 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC11"},64530:{"value":"FC12","name":"ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062B 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC12"},64531:{"value":"FC13","name":"ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062B 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC13"},64532:{"value":"FC14","name":"ARABIC LIGATURE THEH WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062B 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC14"},64533:{"value":"FC15","name":"ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062C 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC15"},64534:{"value":"FC16","name":"ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062C 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC16"},64535:{"value":"FC17","name":"ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062D 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC17"},64536:{"value":"FC18","name":"ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062D 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC18"},64537:{"value":"FC19","name":"ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062E 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC19"},64538:{"value":"FC1A","name":"ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062E 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC1A"},64539:{"value":"FC1B","name":"ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062E 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC1B"},64540:{"value":"FC1C","name":"ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0633 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC1C"},64541:{"value":"FC1D","name":"ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0633 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC1D"},64542:{"value":"FC1E","name":"ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0633 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC1E"},64543:{"value":"FC1F","name":"ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0633 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC1F"},64544:{"value":"FC20","name":"ARABIC LIGATURE SAD WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0635 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC20"},64545:{"value":"FC21","name":"ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0635 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC21"},64546:{"value":"FC22","name":"ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0636 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC22"},64547:{"value":"FC23","name":"ARABIC LIGATURE DAD WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0636 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC23"},64548:{"value":"FC24","name":"ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0636 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC24"},64549:{"value":"FC25","name":"ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0636 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC25"},64550:{"value":"FC26","name":"ARABIC LIGATURE TAH WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0637 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC26"},64551:{"value":"FC27","name":"ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0637 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC27"},64552:{"value":"FC28","name":"ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0638 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC28"},64553:{"value":"FC29","name":"ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0639 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC29"},64554:{"value":"FC2A","name":"ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0639 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC2A"},64555:{"value":"FC2B","name":"ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 063A 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC2B"},64556:{"value":"FC2C","name":"ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 063A 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC2C"},64557:{"value":"FC2D","name":"ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0641 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC2D"},64558:{"value":"FC2E","name":"ARABIC LIGATURE FEH WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0641 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC2E"},64559:{"value":"FC2F","name":"ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0641 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC2F"},64560:{"value":"FC30","name":"ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0641 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC30"},64561:{"value":"FC31","name":"ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0641 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC31"},64562:{"value":"FC32","name":"ARABIC LIGATURE FEH WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0641 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC32"},64563:{"value":"FC33","name":"ARABIC LIGATURE QAF WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0642 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC33"},64564:{"value":"FC34","name":"ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0642 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC34"},64565:{"value":"FC35","name":"ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0642 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC35"},64566:{"value":"FC36","name":"ARABIC LIGATURE QAF WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0642 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC36"},64567:{"value":"FC37","name":"ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0643 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC37"},64568:{"value":"FC38","name":"ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0643 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC38"},64569:{"value":"FC39","name":"ARABIC LIGATURE KAF WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0643 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC39"},64570:{"value":"FC3A","name":"ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0643 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC3A"},64571:{"value":"FC3B","name":"ARABIC LIGATURE KAF WITH LAM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0643 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC3B"},64572:{"value":"FC3C","name":"ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0643 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC3C"},64573:{"value":"FC3D","name":"ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0643 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC3D"},64574:{"value":"FC3E","name":"ARABIC LIGATURE KAF WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0643 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC3E"},64575:{"value":"FC3F","name":"ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC3F"},64576:{"value":"FC40","name":"ARABIC LIGATURE LAM WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC40"},64577:{"value":"FC41","name":"ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC41"},64578:{"value":"FC42","name":"ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC42"},64579:{"value":"FC43","name":"ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC43"},64580:{"value":"FC44","name":"ARABIC LIGATURE LAM WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC44"},64581:{"value":"FC45","name":"ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0645 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC45"},64582:{"value":"FC46","name":"ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC46"},64583:{"value":"FC47","name":"ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0645 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC47"},64584:{"value":"FC48","name":"ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC48"},64585:{"value":"FC49","name":"ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0645 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC49"},64586:{"value":"FC4A","name":"ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC4A"},64587:{"value":"FC4B","name":"ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0646 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC4B"},64588:{"value":"FC4C","name":"ARABIC LIGATURE NOON WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0646 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC4C"},64589:{"value":"FC4D","name":"ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0646 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC4D"},64590:{"value":"FC4E","name":"ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0646 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC4E"},64591:{"value":"FC4F","name":"ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0646 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC4F"},64592:{"value":"FC50","name":"ARABIC LIGATURE NOON WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0646 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC50"},64593:{"value":"FC51","name":"ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0647 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC51"},64594:{"value":"FC52","name":"ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0647 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC52"},64595:{"value":"FC53","name":"ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0647 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC53"},64596:{"value":"FC54","name":"ARABIC LIGATURE HEH WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0647 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC54"},64597:{"value":"FC55","name":"ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 064A 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC55"},64598:{"value":"FC56","name":"ARABIC LIGATURE YEH WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 064A 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC56"},64599:{"value":"FC57","name":"ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 064A 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC57"},64600:{"value":"FC58","name":"ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 064A 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC58"},64601:{"value":"FC59","name":"ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 064A 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC59"},64602:{"value":"FC5A","name":"ARABIC LIGATURE YEH WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 064A 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC5A"},64603:{"value":"FC5B","name":"ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0630 0670","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC5B"},64604:{"value":"FC5C","name":"ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0631 0670","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC5C"},64605:{"value":"FC5D","name":"ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0649 0670","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC5D"},64606:{"value":"FC5E","name":"ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 064C 0651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC5E"},64607:{"value":"FC5F","name":"ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 064D 0651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC5F"},64608:{"value":"FC60","name":"ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 064E 0651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC60"},64609:{"value":"FC61","name":"ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 064F 0651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC61"},64610:{"value":"FC62","name":"ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 0650 0651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC62"},64611:{"value":"FC63","name":"ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 0651 0670","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC63"},64612:{"value":"FC64","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC64"},64613:{"value":"FC65","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC65"},64614:{"value":"FC66","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC66"},64615:{"value":"FC67","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC67"},64616:{"value":"FC68","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC68"},64617:{"value":"FC69","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC69"},64618:{"value":"FC6A","name":"ARABIC LIGATURE BEH WITH REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0628 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC6A"},64619:{"value":"FC6B","name":"ARABIC LIGATURE BEH WITH ZAIN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0628 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC6B"},64620:{"value":"FC6C","name":"ARABIC LIGATURE BEH WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0628 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC6C"},64621:{"value":"FC6D","name":"ARABIC LIGATURE BEH WITH NOON FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0628 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC6D"},64622:{"value":"FC6E","name":"ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0628 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC6E"},64623:{"value":"FC6F","name":"ARABIC LIGATURE BEH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0628 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC6F"},64624:{"value":"FC70","name":"ARABIC LIGATURE TEH WITH REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC70"},64625:{"value":"FC71","name":"ARABIC LIGATURE TEH WITH ZAIN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC71"},64626:{"value":"FC72","name":"ARABIC LIGATURE TEH WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC72"},64627:{"value":"FC73","name":"ARABIC LIGATURE TEH WITH NOON FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC73"},64628:{"value":"FC74","name":"ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC74"},64629:{"value":"FC75","name":"ARABIC LIGATURE TEH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC75"},64630:{"value":"FC76","name":"ARABIC LIGATURE THEH WITH REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062B 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC76"},64631:{"value":"FC77","name":"ARABIC LIGATURE THEH WITH ZAIN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062B 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC77"},64632:{"value":"FC78","name":"ARABIC LIGATURE THEH WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062B 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC78"},64633:{"value":"FC79","name":"ARABIC LIGATURE THEH WITH NOON FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062B 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC79"},64634:{"value":"FC7A","name":"ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062B 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC7A"},64635:{"value":"FC7B","name":"ARABIC LIGATURE THEH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062B 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC7B"},64636:{"value":"FC7C","name":"ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0641 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC7C"},64637:{"value":"FC7D","name":"ARABIC LIGATURE FEH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0641 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC7D"},64638:{"value":"FC7E","name":"ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0642 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC7E"},64639:{"value":"FC7F","name":"ARABIC LIGATURE QAF WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0642 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC7F"},64640:{"value":"FC80","name":"ARABIC LIGATURE KAF WITH ALEF FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0643 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC80"},64641:{"value":"FC81","name":"ARABIC LIGATURE KAF WITH LAM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0643 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC81"},64642:{"value":"FC82","name":"ARABIC LIGATURE KAF WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0643 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC82"},64643:{"value":"FC83","name":"ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0643 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC83"},64644:{"value":"FC84","name":"ARABIC LIGATURE KAF WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0643 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC84"},64645:{"value":"FC85","name":"ARABIC LIGATURE LAM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC85"},64646:{"value":"FC86","name":"ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC86"},64647:{"value":"FC87","name":"ARABIC LIGATURE LAM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC87"},64648:{"value":"FC88","name":"ARABIC LIGATURE MEEM WITH ALEF FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0645 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC88"},64649:{"value":"FC89","name":"ARABIC LIGATURE MEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC89"},64650:{"value":"FC8A","name":"ARABIC LIGATURE NOON WITH REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC8A"},64651:{"value":"FC8B","name":"ARABIC LIGATURE NOON WITH ZAIN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC8B"},64652:{"value":"FC8C","name":"ARABIC LIGATURE NOON WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC8C"},64653:{"value":"FC8D","name":"ARABIC LIGATURE NOON WITH NOON FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC8D"},64654:{"value":"FC8E","name":"ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC8E"},64655:{"value":"FC8F","name":"ARABIC LIGATURE NOON WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC8F"},64656:{"value":"FC90","name":"ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0649 0670","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC90"},64657:{"value":"FC91","name":"ARABIC LIGATURE YEH WITH REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC91"},64658:{"value":"FC92","name":"ARABIC LIGATURE YEH WITH ZAIN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC92"},64659:{"value":"FC93","name":"ARABIC LIGATURE YEH WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC93"},64660:{"value":"FC94","name":"ARABIC LIGATURE YEH WITH NOON FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC94"},64661:{"value":"FC95","name":"ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC95"},64662:{"value":"FC96","name":"ARABIC LIGATURE YEH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC96"},64663:{"value":"FC97","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0626 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC97"},64664:{"value":"FC98","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0626 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC98"},64665:{"value":"FC99","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0626 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC99"},64666:{"value":"FC9A","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0626 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC9A"},64667:{"value":"FC9B","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0626 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC9B"},64668:{"value":"FC9C","name":"ARABIC LIGATURE BEH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0628 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC9C"},64669:{"value":"FC9D","name":"ARABIC LIGATURE BEH WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0628 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC9D"},64670:{"value":"FC9E","name":"ARABIC LIGATURE BEH WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0628 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC9E"},64671:{"value":"FC9F","name":"ARABIC LIGATURE BEH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0628 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFC9F"},64672:{"value":"FCA0","name":"ARABIC LIGATURE BEH WITH HEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0628 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCA0"},64673:{"value":"FCA1","name":"ARABIC LIGATURE TEH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCA1"},64674:{"value":"FCA2","name":"ARABIC LIGATURE TEH WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCA2"},64675:{"value":"FCA3","name":"ARABIC LIGATURE TEH WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCA3"},64676:{"value":"FCA4","name":"ARABIC LIGATURE TEH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCA4"},64677:{"value":"FCA5","name":"ARABIC LIGATURE TEH WITH HEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCA5"},64678:{"value":"FCA6","name":"ARABIC LIGATURE THEH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062B 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCA6"},64679:{"value":"FCA7","name":"ARABIC LIGATURE JEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062C 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCA7"},64680:{"value":"FCA8","name":"ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062C 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCA8"},64681:{"value":"FCA9","name":"ARABIC LIGATURE HAH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062D 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCA9"},64682:{"value":"FCAA","name":"ARABIC LIGATURE HAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062D 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCAA"},64683:{"value":"FCAB","name":"ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062E 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCAB"},64684:{"value":"FCAC","name":"ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062E 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCAC"},64685:{"value":"FCAD","name":"ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCAD"},64686:{"value":"FCAE","name":"ARABIC LIGATURE SEEN WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCAE"},64687:{"value":"FCAF","name":"ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCAF"},64688:{"value":"FCB0","name":"ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCB0"},64689:{"value":"FCB1","name":"ARABIC LIGATURE SAD WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0635 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCB1"},64690:{"value":"FCB2","name":"ARABIC LIGATURE SAD WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0635 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCB2"},64691:{"value":"FCB3","name":"ARABIC LIGATURE SAD WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0635 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCB3"},64692:{"value":"FCB4","name":"ARABIC LIGATURE DAD WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0636 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCB4"},64693:{"value":"FCB5","name":"ARABIC LIGATURE DAD WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0636 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCB5"},64694:{"value":"FCB6","name":"ARABIC LIGATURE DAD WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0636 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCB6"},64695:{"value":"FCB7","name":"ARABIC LIGATURE DAD WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0636 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCB7"},64696:{"value":"FCB8","name":"ARABIC LIGATURE TAH WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0637 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCB8"},64697:{"value":"FCB9","name":"ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0638 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCB9"},64698:{"value":"FCBA","name":"ARABIC LIGATURE AIN WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0639 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCBA"},64699:{"value":"FCBB","name":"ARABIC LIGATURE AIN WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0639 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCBB"},64700:{"value":"FCBC","name":"ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 063A 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCBC"},64701:{"value":"FCBD","name":"ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 063A 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCBD"},64702:{"value":"FCBE","name":"ARABIC LIGATURE FEH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0641 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCBE"},64703:{"value":"FCBF","name":"ARABIC LIGATURE FEH WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0641 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCBF"},64704:{"value":"FCC0","name":"ARABIC LIGATURE FEH WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0641 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCC0"},64705:{"value":"FCC1","name":"ARABIC LIGATURE FEH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0641 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCC1"},64706:{"value":"FCC2","name":"ARABIC LIGATURE QAF WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0642 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCC2"},64707:{"value":"FCC3","name":"ARABIC LIGATURE QAF WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0642 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCC3"},64708:{"value":"FCC4","name":"ARABIC LIGATURE KAF WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0643 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCC4"},64709:{"value":"FCC5","name":"ARABIC LIGATURE KAF WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0643 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCC5"},64710:{"value":"FCC6","name":"ARABIC LIGATURE KAF WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0643 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCC6"},64711:{"value":"FCC7","name":"ARABIC LIGATURE KAF WITH LAM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0643 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCC7"},64712:{"value":"FCC8","name":"ARABIC LIGATURE KAF WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0643 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCC8"},64713:{"value":"FCC9","name":"ARABIC LIGATURE LAM WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCC9"},64714:{"value":"FCCA","name":"ARABIC LIGATURE LAM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCCA"},64715:{"value":"FCCB","name":"ARABIC LIGATURE LAM WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCCB"},64716:{"value":"FCCC","name":"ARABIC LIGATURE LAM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCCC"},64717:{"value":"FCCD","name":"ARABIC LIGATURE LAM WITH HEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCCD"},64718:{"value":"FCCE","name":"ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCCE"},64719:{"value":"FCCF","name":"ARABIC LIGATURE MEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCCF"},64720:{"value":"FCD0","name":"ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCD0"},64721:{"value":"FCD1","name":"ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCD1"},64722:{"value":"FCD2","name":"ARABIC LIGATURE NOON WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0646 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCD2"},64723:{"value":"FCD3","name":"ARABIC LIGATURE NOON WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0646 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCD3"},64724:{"value":"FCD4","name":"ARABIC LIGATURE NOON WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0646 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCD4"},64725:{"value":"FCD5","name":"ARABIC LIGATURE NOON WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0646 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCD5"},64726:{"value":"FCD6","name":"ARABIC LIGATURE NOON WITH HEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0646 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCD6"},64727:{"value":"FCD7","name":"ARABIC LIGATURE HEH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0647 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCD7"},64728:{"value":"FCD8","name":"ARABIC LIGATURE HEH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0647 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCD8"},64729:{"value":"FCD9","name":"ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0647 0670","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCD9"},64730:{"value":"FCDA","name":"ARABIC LIGATURE YEH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 064A 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCDA"},64731:{"value":"FCDB","name":"ARABIC LIGATURE YEH WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 064A 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCDB"},64732:{"value":"FCDC","name":"ARABIC LIGATURE YEH WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 064A 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCDC"},64733:{"value":"FCDD","name":"ARABIC LIGATURE YEH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 064A 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCDD"},64734:{"value":"FCDE","name":"ARABIC LIGATURE YEH WITH HEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 064A 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCDE"},64735:{"value":"FCDF","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0626 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCDF"},64736:{"value":"FCE0","name":"ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0626 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCE0"},64737:{"value":"FCE1","name":"ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0628 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCE1"},64738:{"value":"FCE2","name":"ARABIC LIGATURE BEH WITH HEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0628 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCE2"},64739:{"value":"FCE3","name":"ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 062A 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCE3"},64740:{"value":"FCE4","name":"ARABIC LIGATURE TEH WITH HEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 062A 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCE4"},64741:{"value":"FCE5","name":"ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 062B 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCE5"},64742:{"value":"FCE6","name":"ARABIC LIGATURE THEH WITH HEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 062B 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCE6"},64743:{"value":"FCE7","name":"ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0633 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCE7"},64744:{"value":"FCE8","name":"ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0633 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCE8"},64745:{"value":"FCE9","name":"ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0634 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCE9"},64746:{"value":"FCEA","name":"ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0634 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCEA"},64747:{"value":"FCEB","name":"ARABIC LIGATURE KAF WITH LAM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0643 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCEB"},64748:{"value":"FCEC","name":"ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0643 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCEC"},64749:{"value":"FCED","name":"ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0644 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCED"},64750:{"value":"FCEE","name":"ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0646 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCEE"},64751:{"value":"FCEF","name":"ARABIC LIGATURE NOON WITH HEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0646 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCEF"},64752:{"value":"FCF0","name":"ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 064A 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCF0"},64753:{"value":"FCF1","name":"ARABIC LIGATURE YEH WITH HEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 064A 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCF1"},64754:{"value":"FCF2","name":"ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0640 064E 0651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCF2"},64755:{"value":"FCF3","name":"ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0640 064F 0651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCF3"},64756:{"value":"FCF4","name":"ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0640 0650 0651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCF4"},64757:{"value":"FCF5","name":"ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0637 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCF5"},64758:{"value":"FCF6","name":"ARABIC LIGATURE TAH WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0637 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCF6"},64759:{"value":"FCF7","name":"ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0639 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCF7"},64760:{"value":"FCF8","name":"ARABIC LIGATURE AIN WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0639 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCF8"},64761:{"value":"FCF9","name":"ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 063A 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCF9"},64762:{"value":"FCFA","name":"ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 063A 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCFA"},64763:{"value":"FCFB","name":"ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0633 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCFB"},64764:{"value":"FCFC","name":"ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0633 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCFC"},64765:{"value":"FCFD","name":"ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0634 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCFD"},64766:{"value":"FCFE","name":"ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0634 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCFE"},64767:{"value":"FCFF","name":"ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062D 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFCFF"},64768:{"value":"FD00","name":"ARABIC LIGATURE HAH WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD00"},64769:{"value":"FD01","name":"ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062C 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD01"},64770:{"value":"FD02","name":"ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062C 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD02"},64771:{"value":"FD03","name":"ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062E 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD03"},64772:{"value":"FD04","name":"ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062E 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD04"},64773:{"value":"FD05","name":"ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0635 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD05"},64774:{"value":"FD06","name":"ARABIC LIGATURE SAD WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0635 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD06"},64775:{"value":"FD07","name":"ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0636 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD07"},64776:{"value":"FD08","name":"ARABIC LIGATURE DAD WITH YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0636 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD08"},64777:{"value":"FD09","name":"ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0634 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD09"},64778:{"value":"FD0A","name":"ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0634 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD0A"},64779:{"value":"FD0B","name":"ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0634 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD0B"},64780:{"value":"FD0C","name":"ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0634 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD0C"},64781:{"value":"FD0D","name":"ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0634 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD0D"},64782:{"value":"FD0E","name":"ARABIC LIGATURE SEEN WITH REH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0633 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD0E"},64783:{"value":"FD0F","name":"ARABIC LIGATURE SAD WITH REH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0635 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD0F"},64784:{"value":"FD10","name":"ARABIC LIGATURE DAD WITH REH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0636 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD10"},64785:{"value":"FD11","name":"ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0637 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD11"},64786:{"value":"FD12","name":"ARABIC LIGATURE TAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0637 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD12"},64787:{"value":"FD13","name":"ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0639 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD13"},64788:{"value":"FD14","name":"ARABIC LIGATURE AIN WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0639 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD14"},64789:{"value":"FD15","name":"ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 063A 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD15"},64790:{"value":"FD16","name":"ARABIC LIGATURE GHAIN WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 063A 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD16"},64791:{"value":"FD17","name":"ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0633 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD17"},64792:{"value":"FD18","name":"ARABIC LIGATURE SEEN WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0633 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD18"},64793:{"value":"FD19","name":"ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD19"},64794:{"value":"FD1A","name":"ARABIC LIGATURE SHEEN WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD1A"},64795:{"value":"FD1B","name":"ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062D 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD1B"},64796:{"value":"FD1C","name":"ARABIC LIGATURE HAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD1C"},64797:{"value":"FD1D","name":"ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062C 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD1D"},64798:{"value":"FD1E","name":"ARABIC LIGATURE JEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062C 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD1E"},64799:{"value":"FD1F","name":"ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062E 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD1F"},64800:{"value":"FD20","name":"ARABIC LIGATURE KHAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062E 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD20"},64801:{"value":"FD21","name":"ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0635 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD21"},64802:{"value":"FD22","name":"ARABIC LIGATURE SAD WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0635 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD22"},64803:{"value":"FD23","name":"ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0636 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD23"},64804:{"value":"FD24","name":"ARABIC LIGATURE DAD WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0636 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD24"},64805:{"value":"FD25","name":"ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD25"},64806:{"value":"FD26","name":"ARABIC LIGATURE SHEEN WITH HAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD26"},64807:{"value":"FD27","name":"ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD27"},64808:{"value":"FD28","name":"ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD28"},64809:{"value":"FD29","name":"ARABIC LIGATURE SHEEN WITH REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD29"},64810:{"value":"FD2A","name":"ARABIC LIGATURE SEEN WITH REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0633 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD2A"},64811:{"value":"FD2B","name":"ARABIC LIGATURE SAD WITH REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0635 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD2B"},64812:{"value":"FD2C","name":"ARABIC LIGATURE DAD WITH REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0636 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD2C"},64813:{"value":"FD2D","name":"ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0634 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD2D"},64814:{"value":"FD2E","name":"ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0634 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD2E"},64815:{"value":"FD2F","name":"ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0634 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD2F"},64816:{"value":"FD30","name":"ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0634 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD30"},64817:{"value":"FD31","name":"ARABIC LIGATURE SEEN WITH HEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD31"},64818:{"value":"FD32","name":"ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0634 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD32"},64819:{"value":"FD33","name":"ARABIC LIGATURE TAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0637 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD33"},64820:{"value":"FD34","name":"ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0633 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD34"},64821:{"value":"FD35","name":"ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0633 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD35"},64822:{"value":"FD36","name":"ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0633 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD36"},64823:{"value":"FD37","name":"ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0634 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD37"},64824:{"value":"FD38","name":"ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0634 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD38"},64825:{"value":"FD39","name":"ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0634 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD39"},64826:{"value":"FD3A","name":"ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0637 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD3A"},64827:{"value":"FD3B","name":"ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0638 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD3B"},64828:{"value":"FD3C","name":"ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0627 064B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD3C"},64829:{"value":"FD3D","name":"ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0627 064B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD3D"},64848:{"value":"FD50","name":"ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 062C 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD50"},64849:{"value":"FD51","name":"ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 062D 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD51"},64850:{"value":"FD52","name":"ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 062D 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD52"},64851:{"value":"FD53","name":"ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 062D 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD53"},64852:{"value":"FD54","name":"ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 062E 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD54"},64853:{"value":"FD55","name":"ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 0645 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD55"},64854:{"value":"FD56","name":"ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD56"},64855:{"value":"FD57","name":"ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A 0645 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD57"},64856:{"value":"FD58","name":"ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062C 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD58"},64857:{"value":"FD59","name":"ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062C 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD59"},64858:{"value":"FD5A","name":"ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062D 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD5A"},64859:{"value":"FD5B","name":"ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062D 0645 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD5B"},64860:{"value":"FD5C","name":"ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633 062D 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD5C"},64861:{"value":"FD5D","name":"ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633 062C 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD5D"},64862:{"value":"FD5E","name":"ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0633 062C 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD5E"},64863:{"value":"FD5F","name":"ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0633 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD5F"},64864:{"value":"FD60","name":"ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD60"},64865:{"value":"FD61","name":"ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633 0645 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD61"},64866:{"value":"FD62","name":"ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0633 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD62"},64867:{"value":"FD63","name":"ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD63"},64868:{"value":"FD64","name":"ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0635 062D 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD64"},64869:{"value":"FD65","name":"ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0635 062D 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD65"},64870:{"value":"FD66","name":"ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0635 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD66"},64871:{"value":"FD67","name":"ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 062D 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD67"},64872:{"value":"FD68","name":"ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0634 062D 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD68"},64873:{"value":"FD69","name":"ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 062C 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD69"},64874:{"value":"FD6A","name":"ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 0645 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD6A"},64875:{"value":"FD6B","name":"ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0634 0645 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD6B"},64876:{"value":"FD6C","name":"ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD6C"},64877:{"value":"FD6D","name":"ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0634 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD6D"},64878:{"value":"FD6E","name":"ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0636 062D 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD6E"},64879:{"value":"FD6F","name":"ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0636 062E 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD6F"},64880:{"value":"FD70","name":"ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0636 062E 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD70"},64881:{"value":"FD71","name":"ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0637 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD71"},64882:{"value":"FD72","name":"ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0637 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD72"},64883:{"value":"FD73","name":"ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0637 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD73"},64884:{"value":"FD74","name":"ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0637 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD74"},64885:{"value":"FD75","name":"ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0639 062C 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD75"},64886:{"value":"FD76","name":"ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0639 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD76"},64887:{"value":"FD77","name":"ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0639 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD77"},64888:{"value":"FD78","name":"ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0639 0645 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD78"},64889:{"value":"FD79","name":"ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 063A 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD79"},64890:{"value":"FD7A","name":"ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 063A 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD7A"},64891:{"value":"FD7B","name":"ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 063A 0645 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD7B"},64892:{"value":"FD7C","name":"ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0641 062E 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD7C"},64893:{"value":"FD7D","name":"ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0641 062E 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD7D"},64894:{"value":"FD7E","name":"ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0642 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD7E"},64895:{"value":"FD7F","name":"ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0642 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD7F"},64896:{"value":"FD80","name":"ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 062D 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD80"},64897:{"value":"FD81","name":"ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD81"},64898:{"value":"FD82","name":"ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 062D 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD82"},64899:{"value":"FD83","name":"ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644 062C 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD83"},64900:{"value":"FD84","name":"ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 062C 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD84"},64901:{"value":"FD85","name":"ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 062E 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD85"},64902:{"value":"FD86","name":"ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644 062E 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD86"},64903:{"value":"FD87","name":"ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD87"},64904:{"value":"FD88","name":"ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD88"},64905:{"value":"FD89","name":"ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 062D 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD89"},64906:{"value":"FD8A","name":"ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 062D 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD8A"},64907:{"value":"FD8B","name":"ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0645 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD8B"},64908:{"value":"FD8C","name":"ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 062C 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD8C"},64909:{"value":"FD8D","name":"ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 062C 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD8D"},64910:{"value":"FD8E","name":"ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 062E 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD8E"},64911:{"value":"FD8F","name":"ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 062E 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD8F"},64914:{"value":"FD92","name":"ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645 062C 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD92"},64915:{"value":"FD93","name":"ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0647 0645 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD93"},64916:{"value":"FD94","name":"ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0647 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD94"},64917:{"value":"FD95","name":"ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0646 062D 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD95"},64918:{"value":"FD96","name":"ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 062D 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD96"},64919:{"value":"FD97","name":"ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 062C 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD97"},64920:{"value":"FD98","name":"ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0646 062C 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD98"},64921:{"value":"FD99","name":"ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 062C 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD99"},64922:{"value":"FD9A","name":"ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD9A"},64923:{"value":"FD9B","name":"ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 0645 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD9B"},64924:{"value":"FD9C","name":"ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD9C"},64925:{"value":"FD9D","name":"ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 064A 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD9D"},64926:{"value":"FD9E","name":"ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0628 062E 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD9E"},64927:{"value":"FD9F","name":"ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 062C 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFD9F"},64928:{"value":"FDA0","name":"ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 062C 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDA0"},64929:{"value":"FDA1","name":"ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 062E 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDA1"},64930:{"value":"FDA2","name":"ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 062E 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDA2"},64931:{"value":"FDA3","name":"ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDA3"},64932:{"value":"FDA4","name":"ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A 0645 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDA4"},64933:{"value":"FDA5","name":"ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062C 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDA5"},64934:{"value":"FDA6","name":"ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062C 062D 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDA6"},64935:{"value":"FDA7","name":"ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062C 0645 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDA7"},64936:{"value":"FDA8","name":"ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0633 062E 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDA8"},64937:{"value":"FDA9","name":"ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0635 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDA9"},64938:{"value":"FDAA","name":"ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDAA"},64939:{"value":"FDAB","name":"ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0636 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDAB"},64940:{"value":"FDAC","name":"ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 062C 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDAC"},64941:{"value":"FDAD","name":"ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDAD"},64942:{"value":"FDAE","name":"ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDAE"},64943:{"value":"FDAF","name":"ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A 062C 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDAF"},64944:{"value":"FDB0","name":"ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDB0"},64945:{"value":"FDB1","name":"ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0645 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDB1"},64946:{"value":"FDB2","name":"ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0642 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDB2"},64947:{"value":"FDB3","name":"ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDB3"},64948:{"value":"FDB4","name":"ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0642 0645 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDB4"},64949:{"value":"FDB5","name":"ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644 062D 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDB5"},64950:{"value":"FDB6","name":"ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0639 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDB6"},64951:{"value":"FDB7","name":"ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0643 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDB7"},64952:{"value":"FDB8","name":"ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0646 062C 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDB8"},64953:{"value":"FDB9","name":"ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0645 062E 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDB9"},64954:{"value":"FDBA","name":"ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644 062C 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDBA"},64955:{"value":"FDBB","name":"ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0643 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDBB"},64956:{"value":"FDBC","name":"ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 062C 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDBC"},64957:{"value":"FDBD","name":"ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 062C 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDBD"},64958:{"value":"FDBE","name":"ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062C 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDBE"},64959:{"value":"FDBF","name":"ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062D 062C 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDBF"},64960:{"value":"FDC0","name":"ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0645 062C 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDC0"},64961:{"value":"FDC1","name":"ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0641 0645 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDC1"},64962:{"value":"FDC2","name":"ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0628 062D 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDC2"},64963:{"value":"FDC3","name":"ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0643 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDC3"},64964:{"value":"FDC4","name":"ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0639 062C 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDC4"},64965:{"value":"FDC5","name":"ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0635 0645 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDC5"},64966:{"value":"FDC6","name":"ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0633 062E 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDC6"},64967:{"value":"FDC7","name":"ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646 062C 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDC7"},65008:{"value":"FDF0","name":"ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0635 0644 06D2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDF0"},65009:{"value":"FDF1","name":"ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0642 0644 06D2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDF1"},65010:{"value":"FDF2","name":"ARABIC LIGATURE ALLAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0627 0644 0644 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDF2"},65011:{"value":"FDF3","name":"ARABIC LIGATURE AKBAR ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0627 0643 0628 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDF3"},65012:{"value":"FDF4","name":"ARABIC LIGATURE MOHAMMAD ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0645 062D 0645 062F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDF4"},65013:{"value":"FDF5","name":"ARABIC LIGATURE SALAM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0635 0644 0639 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDF5"},65014:{"value":"FDF6","name":"ARABIC LIGATURE RASOUL ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0631 0633 0648 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDF6"},65015:{"value":"FDF7","name":"ARABIC LIGATURE ALAYHE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0639 0644 064A 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDF7"},65016:{"value":"FDF8","name":"ARABIC LIGATURE WASALLAM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0648 0633 0644 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDF8"},65017:{"value":"FDF9","name":"ARABIC LIGATURE SALLA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0635 0644 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDF9"},65018:{"value":"FDFA","name":"ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDFA"},65019:{"value":"FDFB","name":"ARABIC LIGATURE JALLAJALALOUHOU","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062C 0644 0020 062C 0644 0627 0644 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC LETTER JALLAJALALOUHOU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFDFB"},65136:{"value":"FE70","name":"ARABIC FATHATAN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 064B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SPACING FATHATAN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE70"},65137:{"value":"FE71","name":"ARABIC TATWEEL WITH FATHATAN ABOVE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0640 064B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC FATHATAN ON TATWEEL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE71"},65138:{"value":"FE72","name":"ARABIC DAMMATAN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 064C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SPACING DAMMATAN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE72"},65139:{"value":"FE73","name":"ARABIC TAIL FRAGMENT","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE73"},65140:{"value":"FE74","name":"ARABIC KASRATAN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 064D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SPACING KASRATAN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE74"},65142:{"value":"FE76","name":"ARABIC FATHA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 064E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SPACING FATHAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE76"},65143:{"value":"FE77","name":"ARABIC FATHA MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0640 064E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC FATHAH ON TATWEEL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE77"},65144:{"value":"FE78","name":"ARABIC DAMMA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 064F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SPACING DAMMAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE78"},65145:{"value":"FE79","name":"ARABIC DAMMA MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0640 064F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC DAMMAH ON TATWEEL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE79"},65146:{"value":"FE7A","name":"ARABIC KASRA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 0650","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SPACING KASRAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE7A"},65147:{"value":"FE7B","name":"ARABIC KASRA MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0640 0650","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC KASRAH ON TATWEEL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE7B"},65148:{"value":"FE7C","name":"ARABIC SHADDA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 0651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SPACING SHADDAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE7C"},65149:{"value":"FE7D","name":"ARABIC SHADDA MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0640 0651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SHADDAH ON TATWEEL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE7D"},65150:{"value":"FE7E","name":"ARABIC SUKUN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0020 0652","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SPACING SUKUN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE7E"},65151:{"value":"FE7F","name":"ARABIC SUKUN MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0640 0652","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SUKUN ON TATWEEL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE7F"},65152:{"value":"FE80","name":"ARABIC LETTER HAMZA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0621","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC HAMZAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE80"},65153:{"value":"FE81","name":"ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0622","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE81"},65154:{"value":"FE82","name":"ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0622","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC MADDAH ON ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE82"},65155:{"value":"FE83","name":"ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0623","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE83"},65156:{"value":"FE84","name":"ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0623","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC HAMZAH ON ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE84"},65157:{"value":"FE85","name":"ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0624","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE85"},65158:{"value":"FE86","name":"ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0624","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC HAMZAH ON WAW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE86"},65159:{"value":"FE87","name":"ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0625","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE87"},65160:{"value":"FE88","name":"ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0625","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE88"},65161:{"value":"FE89","name":"ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0626","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC HAMZAH ON YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE89"},65162:{"value":"FE8A","name":"ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0626","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC HAMZAH ON YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE8A"},65163:{"value":"FE8B","name":"ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0626","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC HAMZAH ON YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE8B"},65164:{"value":"FE8C","name":"ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0626","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC HAMZAH ON YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE8C"},65165:{"value":"FE8D","name":"ARABIC LETTER ALEF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE8D"},65166:{"value":"FE8E","name":"ARABIC LETTER ALEF FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE8E"},65167:{"value":"FE8F","name":"ARABIC LETTER BEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0628","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC BAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE8F"},65168:{"value":"FE90","name":"ARABIC LETTER BEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0628","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC BAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE90"},65169:{"value":"FE91","name":"ARABIC LETTER BEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0628","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC BAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE91"},65170:{"value":"FE92","name":"ARABIC LETTER BEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0628","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC BAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE92"},65171:{"value":"FE93","name":"ARABIC LETTER TEH MARBUTA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0629","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC TAA MARBUTAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE93"},65172:{"value":"FE94","name":"ARABIC LETTER TEH MARBUTA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0629","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC TAA MARBUTAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE94"},65173:{"value":"FE95","name":"ARABIC LETTER TEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC TAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE95"},65174:{"value":"FE96","name":"ARABIC LETTER TEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC TAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE96"},65175:{"value":"FE97","name":"ARABIC LETTER TEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC TAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE97"},65176:{"value":"FE98","name":"ARABIC LETTER TEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 062A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC TAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE98"},65177:{"value":"FE99","name":"ARABIC LETTER THEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC THAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE99"},65178:{"value":"FE9A","name":"ARABIC LETTER THEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC THAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE9A"},65179:{"value":"FE9B","name":"ARABIC LETTER THEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC THAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE9B"},65180:{"value":"FE9C","name":"ARABIC LETTER THEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 062B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC THAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE9C"},65181:{"value":"FE9D","name":"ARABIC LETTER JEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC JEEM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE9D"},65182:{"value":"FE9E","name":"ARABIC LETTER JEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC JEEM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE9E"},65183:{"value":"FE9F","name":"ARABIC LETTER JEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC JEEM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE9F"},65184:{"value":"FEA0","name":"ARABIC LETTER JEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC JEEM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEA0"},65185:{"value":"FEA1","name":"ARABIC LETTER HAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC HAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEA1"},65186:{"value":"FEA2","name":"ARABIC LETTER HAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC HAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEA2"},65187:{"value":"FEA3","name":"ARABIC LETTER HAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC HAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEA3"},65188:{"value":"FEA4","name":"ARABIC LETTER HAH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC HAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEA4"},65189:{"value":"FEA5","name":"ARABIC LETTER KHAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC KHAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEA5"},65190:{"value":"FEA6","name":"ARABIC LETTER KHAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC KHAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEA6"},65191:{"value":"FEA7","name":"ARABIC LETTER KHAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC KHAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEA7"},65192:{"value":"FEA8","name":"ARABIC LETTER KHAH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC KHAA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEA8"},65193:{"value":"FEA9","name":"ARABIC LETTER DAL ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 062F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC DAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEA9"},65194:{"value":"FEAA","name":"ARABIC LETTER DAL FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 062F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC DAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEAA"},65195:{"value":"FEAB","name":"ARABIC LETTER THAL ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0630","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC THAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEAB"},65196:{"value":"FEAC","name":"ARABIC LETTER THAL FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0630","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC THAL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEAC"},65197:{"value":"FEAD","name":"ARABIC LETTER REH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC RA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEAD"},65198:{"value":"FEAE","name":"ARABIC LETTER REH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC RA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEAE"},65199:{"value":"FEAF","name":"ARABIC LETTER ZAIN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC ZAIN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEAF"},65200:{"value":"FEB0","name":"ARABIC LETTER ZAIN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC ZAIN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEB0"},65201:{"value":"FEB1","name":"ARABIC LETTER SEEN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0633","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC SEEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEB1"},65202:{"value":"FEB2","name":"ARABIC LETTER SEEN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0633","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC SEEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEB2"},65203:{"value":"FEB3","name":"ARABIC LETTER SEEN INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0633","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC SEEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEB3"},65204:{"value":"FEB4","name":"ARABIC LETTER SEEN MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0633","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC SEEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEB4"},65205:{"value":"FEB5","name":"ARABIC LETTER SHEEN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0634","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC SHEEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEB5"},65206:{"value":"FEB6","name":"ARABIC LETTER SHEEN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0634","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC SHEEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEB6"},65207:{"value":"FEB7","name":"ARABIC LETTER SHEEN INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0634","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC SHEEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEB7"},65208:{"value":"FEB8","name":"ARABIC LETTER SHEEN MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0634","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC SHEEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEB8"},65209:{"value":"FEB9","name":"ARABIC LETTER SAD ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC SAD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEB9"},65210:{"value":"FEBA","name":"ARABIC LETTER SAD FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC SAD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEBA"},65211:{"value":"FEBB","name":"ARABIC LETTER SAD INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC SAD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEBB"},65212:{"value":"FEBC","name":"ARABIC LETTER SAD MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC SAD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEBC"},65213:{"value":"FEBD","name":"ARABIC LETTER DAD ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0636","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC DAD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEBD"},65214:{"value":"FEBE","name":"ARABIC LETTER DAD FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0636","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC DAD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEBE"},65215:{"value":"FEBF","name":"ARABIC LETTER DAD INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0636","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC DAD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEBF"},65216:{"value":"FEC0","name":"ARABIC LETTER DAD MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0636","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC DAD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEC0"},65217:{"value":"FEC1","name":"ARABIC LETTER TAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0637","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC TAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEC1"},65218:{"value":"FEC2","name":"ARABIC LETTER TAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0637","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC TAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEC2"},65219:{"value":"FEC3","name":"ARABIC LETTER TAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0637","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC TAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEC3"},65220:{"value":"FEC4","name":"ARABIC LETTER TAH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0637","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC TAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEC4"},65221:{"value":"FEC5","name":"ARABIC LETTER ZAH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0638","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC DHAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEC5"},65222:{"value":"FEC6","name":"ARABIC LETTER ZAH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0638","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC DHAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEC6"},65223:{"value":"FEC7","name":"ARABIC LETTER ZAH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0638","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC DHAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEC7"},65224:{"value":"FEC8","name":"ARABIC LETTER ZAH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0638","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC DHAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEC8"},65225:{"value":"FEC9","name":"ARABIC LETTER AIN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0639","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC AIN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEC9"},65226:{"value":"FECA","name":"ARABIC LETTER AIN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0639","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC AIN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFECA"},65227:{"value":"FECB","name":"ARABIC LETTER AIN INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0639","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC AIN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFECB"},65228:{"value":"FECC","name":"ARABIC LETTER AIN MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0639","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC AIN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFECC"},65229:{"value":"FECD","name":"ARABIC LETTER GHAIN ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC GHAIN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFECD"},65230:{"value":"FECE","name":"ARABIC LETTER GHAIN FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC GHAIN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFECE"},65231:{"value":"FECF","name":"ARABIC LETTER GHAIN INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC GHAIN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFECF"},65232:{"value":"FED0","name":"ARABIC LETTER GHAIN MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC GHAIN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFED0"},65233:{"value":"FED1","name":"ARABIC LETTER FEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0641","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC FA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFED1"},65234:{"value":"FED2","name":"ARABIC LETTER FEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0641","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC FA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFED2"},65235:{"value":"FED3","name":"ARABIC LETTER FEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0641","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC FA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFED3"},65236:{"value":"FED4","name":"ARABIC LETTER FEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0641","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC FA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFED4"},65237:{"value":"FED5","name":"ARABIC LETTER QAF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC QAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFED5"},65238:{"value":"FED6","name":"ARABIC LETTER QAF FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC QAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFED6"},65239:{"value":"FED7","name":"ARABIC LETTER QAF INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC QAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFED7"},65240:{"value":"FED8","name":"ARABIC LETTER QAF MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC QAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFED8"},65241:{"value":"FED9","name":"ARABIC LETTER KAF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0643","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC CAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFED9"},65242:{"value":"FEDA","name":"ARABIC LETTER KAF FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0643","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC CAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEDA"},65243:{"value":"FEDB","name":"ARABIC LETTER KAF INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0643","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC CAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEDB"},65244:{"value":"FEDC","name":"ARABIC LETTER KAF MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0643","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC CAF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEDC"},65245:{"value":"FEDD","name":"ARABIC LETTER LAM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC LAM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEDD"},65246:{"value":"FEDE","name":"ARABIC LETTER LAM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC LAM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEDE"},65247:{"value":"FEDF","name":"ARABIC LETTER LAM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC LAM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEDF"},65248:{"value":"FEE0","name":"ARABIC LETTER LAM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC LAM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEE0"},65249:{"value":"FEE1","name":"ARABIC LETTER MEEM ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC MEEM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEE1"},65250:{"value":"FEE2","name":"ARABIC LETTER MEEM FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC MEEM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEE2"},65251:{"value":"FEE3","name":"ARABIC LETTER MEEM INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC MEEM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEE3"},65252:{"value":"FEE4","name":"ARABIC LETTER MEEM MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC MEEM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEE4"},65253:{"value":"FEE5","name":"ARABIC LETTER NOON ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC NOON","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEE5"},65254:{"value":"FEE6","name":"ARABIC LETTER NOON FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC NOON","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEE6"},65255:{"value":"FEE7","name":"ARABIC LETTER NOON INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC NOON","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEE7"},65256:{"value":"FEE8","name":"ARABIC LETTER NOON MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC NOON","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEE8"},65257:{"value":"FEE9","name":"ARABIC LETTER HEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC HA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEE9"},65258:{"value":"FEEA","name":"ARABIC LETTER HEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC HA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEEA"},65259:{"value":"FEEB","name":"ARABIC LETTER HEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC HA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEEB"},65260:{"value":"FEEC","name":"ARABIC LETTER HEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC HA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEEC"},65261:{"value":"FEED","name":"ARABIC LETTER WAW ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0648","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC WAW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEED"},65262:{"value":"FEEE","name":"ARABIC LETTER WAW FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0648","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC WAW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEEE"},65263:{"value":"FEEF","name":"ARABIC LETTER ALEF MAKSURA ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEEF"},65264:{"value":"FEF0","name":"ARABIC LETTER ALEF MAKSURA FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC ALEF MAQSURAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEF0"},65265:{"value":"FEF1","name":"ARABIC LETTER YEH ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEF1"},65266:{"value":"FEF2","name":"ARABIC LETTER YEH FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEF2"},65267:{"value":"FEF3","name":"ARABIC LETTER YEH INITIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<initial> 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR INITIAL ARABIC YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEF3"},65268:{"value":"FEF4","name":"ARABIC LETTER YEH MEDIAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<medial> 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR MEDIAL ARABIC YA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEF4"},65269:{"value":"FEF5","name":"ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644 0622","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEF5"},65270:{"value":"FEF6","name":"ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 0622","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEF6"},65271:{"value":"FEF7","name":"ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644 0623","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEF7"},65272:{"value":"FEF8","name":"ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 0623","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEF8"},65273:{"value":"FEF9","name":"ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644 0625","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEF9"},65274:{"value":"FEFA","name":"ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 0625","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEFA"},65275:{"value":"FEFB","name":"ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<isolated> 0644 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEFB"},65276:{"value":"FEFC","name":"ARABIC LIGATURE LAM WITH ALEF FINAL FORM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<final> 0644 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFEFC"},65382:{"value":"FF66","name":"HALFWIDTH KATAKANA LETTER WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30F2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF66"},65383:{"value":"FF67","name":"HALFWIDTH KATAKANA LETTER SMALL A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30A1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF67"},65384:{"value":"FF68","name":"HALFWIDTH KATAKANA LETTER SMALL I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF68"},65385:{"value":"FF69","name":"HALFWIDTH KATAKANA LETTER SMALL U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30A5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF69"},65386:{"value":"FF6A","name":"HALFWIDTH KATAKANA LETTER SMALL E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30A7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF6A"},65387:{"value":"FF6B","name":"HALFWIDTH KATAKANA LETTER SMALL O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF6B"},65388:{"value":"FF6C","name":"HALFWIDTH KATAKANA LETTER SMALL YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30E3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF6C"},65389:{"value":"FF6D","name":"HALFWIDTH KATAKANA LETTER SMALL YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30E5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF6D"},65390:{"value":"FF6E","name":"HALFWIDTH KATAKANA LETTER SMALL YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30E7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF6E"},65391:{"value":"FF6F","name":"HALFWIDTH KATAKANA LETTER SMALL TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30C3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF6F"},65393:{"value":"FF71","name":"HALFWIDTH KATAKANA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30A2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF71"},65394:{"value":"FF72","name":"HALFWIDTH KATAKANA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF72"},65395:{"value":"FF73","name":"HALFWIDTH KATAKANA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30A6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF73"},65396:{"value":"FF74","name":"HALFWIDTH KATAKANA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30A8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF74"},65397:{"value":"FF75","name":"HALFWIDTH KATAKANA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30AA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF75"},65398:{"value":"FF76","name":"HALFWIDTH KATAKANA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30AB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF76"},65399:{"value":"FF77","name":"HALFWIDTH KATAKANA LETTER KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF77"},65400:{"value":"FF78","name":"HALFWIDTH KATAKANA LETTER KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30AF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF78"},65401:{"value":"FF79","name":"HALFWIDTH KATAKANA LETTER KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF79"},65402:{"value":"FF7A","name":"HALFWIDTH KATAKANA LETTER KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF7A"},65403:{"value":"FF7B","name":"HALFWIDTH KATAKANA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF7B"},65404:{"value":"FF7C","name":"HALFWIDTH KATAKANA LETTER SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF7C"},65405:{"value":"FF7D","name":"HALFWIDTH KATAKANA LETTER SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30B9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF7D"},65406:{"value":"FF7E","name":"HALFWIDTH KATAKANA LETTER SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF7E"},65407:{"value":"FF7F","name":"HALFWIDTH KATAKANA LETTER SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30BD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF7F"},65408:{"value":"FF80","name":"HALFWIDTH KATAKANA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30BF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF80"},65409:{"value":"FF81","name":"HALFWIDTH KATAKANA LETTER TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF81"},65410:{"value":"FF82","name":"HALFWIDTH KATAKANA LETTER TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30C4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF82"},65411:{"value":"FF83","name":"HALFWIDTH KATAKANA LETTER TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF83"},65412:{"value":"FF84","name":"HALFWIDTH KATAKANA LETTER TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF84"},65413:{"value":"FF85","name":"HALFWIDTH KATAKANA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30CA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF85"},65414:{"value":"FF86","name":"HALFWIDTH KATAKANA LETTER NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30CB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF86"},65415:{"value":"FF87","name":"HALFWIDTH KATAKANA LETTER NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF87"},65416:{"value":"FF88","name":"HALFWIDTH KATAKANA LETTER NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30CD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF88"},65417:{"value":"FF89","name":"HALFWIDTH KATAKANA LETTER NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30CE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF89"},65418:{"value":"FF8A","name":"HALFWIDTH KATAKANA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30CF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF8A"},65419:{"value":"FF8B","name":"HALFWIDTH KATAKANA LETTER HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30D2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF8B"},65420:{"value":"FF8C","name":"HALFWIDTH KATAKANA LETTER HU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30D5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF8C"},65421:{"value":"FF8D","name":"HALFWIDTH KATAKANA LETTER HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30D8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF8D"},65422:{"value":"FF8E","name":"HALFWIDTH KATAKANA LETTER HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30DB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF8E"},65423:{"value":"FF8F","name":"HALFWIDTH KATAKANA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30DE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF8F"},65424:{"value":"FF90","name":"HALFWIDTH KATAKANA LETTER MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30DF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF90"},65425:{"value":"FF91","name":"HALFWIDTH KATAKANA LETTER MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30E0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF91"},65426:{"value":"FF92","name":"HALFWIDTH KATAKANA LETTER ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30E1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF92"},65427:{"value":"FF93","name":"HALFWIDTH KATAKANA LETTER MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30E2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF93"},65428:{"value":"FF94","name":"HALFWIDTH KATAKANA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30E4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF94"},65429:{"value":"FF95","name":"HALFWIDTH KATAKANA LETTER YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30E6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF95"},65430:{"value":"FF96","name":"HALFWIDTH KATAKANA LETTER YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30E8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF96"},65431:{"value":"FF97","name":"HALFWIDTH KATAKANA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30E9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF97"},65432:{"value":"FF98","name":"HALFWIDTH KATAKANA LETTER RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30EA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF98"},65433:{"value":"FF99","name":"HALFWIDTH KATAKANA LETTER RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30EB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF99"},65434:{"value":"FF9A","name":"HALFWIDTH KATAKANA LETTER RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30EC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF9A"},65435:{"value":"FF9B","name":"HALFWIDTH KATAKANA LETTER RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30ED","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF9B"},65436:{"value":"FF9C","name":"HALFWIDTH KATAKANA LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30EF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF9C"},65437:{"value":"FF9D","name":"HALFWIDTH KATAKANA LETTER N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 30F3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF9D"},65440:{"value":"FFA0","name":"HALFWIDTH HANGUL FILLER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3164","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL CAE OM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFA0"},65441:{"value":"FFA1","name":"HALFWIDTH HANGUL LETTER KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3131","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER GIYEOG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFA1"},65442:{"value":"FFA2","name":"HALFWIDTH HANGUL LETTER SSANGKIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3132","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER SSANG GIYEOG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFA2"},65443:{"value":"FFA3","name":"HALFWIDTH HANGUL LETTER KIYEOK-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3133","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER GIYEOG SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFA3"},65444:{"value":"FFA4","name":"HALFWIDTH HANGUL LETTER NIEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3134","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFA4"},65445:{"value":"FFA5","name":"HALFWIDTH HANGUL LETTER NIEUN-CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3135","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER NIEUN JIEUJ","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFA5"},65446:{"value":"FFA6","name":"HALFWIDTH HANGUL LETTER NIEUN-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3136","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER NIEUN HIEUH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFA6"},65447:{"value":"FFA7","name":"HALFWIDTH HANGUL LETTER TIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3137","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER DIGEUD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFA7"},65448:{"value":"FFA8","name":"HALFWIDTH HANGUL LETTER SSANGTIKEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3138","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER SSANG DIGEUD","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFA8"},65449:{"value":"FFA9","name":"HALFWIDTH HANGUL LETTER RIEUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3139","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER LIEUL","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFA9"},65450:{"value":"FFAA","name":"HALFWIDTH HANGUL LETTER RIEUL-KIYEOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 313A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER LIEUL GIYEOG","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFAA"},65451:{"value":"FFAB","name":"HALFWIDTH HANGUL LETTER RIEUL-MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 313B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER LIEUL MIEUM","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFAB"},65452:{"value":"FFAC","name":"HALFWIDTH HANGUL LETTER RIEUL-PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 313C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER LIEUL BIEUB","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFAC"},65453:{"value":"FFAD","name":"HALFWIDTH HANGUL LETTER RIEUL-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 313D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER LIEUL SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFAD"},65454:{"value":"FFAE","name":"HALFWIDTH HANGUL LETTER RIEUL-THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 313E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER LIEUL TIEUT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFAE"},65455:{"value":"FFAF","name":"HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 313F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER LIEUL PIEUP","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFAF"},65456:{"value":"FFB0","name":"HALFWIDTH HANGUL LETTER RIEUL-HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3140","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER LIEUL HIEUH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFB0"},65457:{"value":"FFB1","name":"HALFWIDTH HANGUL LETTER MIEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3141","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFB1"},65458:{"value":"FFB2","name":"HALFWIDTH HANGUL LETTER PIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3142","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER BIEUB","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFB2"},65459:{"value":"FFB3","name":"HALFWIDTH HANGUL LETTER SSANGPIEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3143","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER SSANG BIEUB","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFB3"},65460:{"value":"FFB4","name":"HALFWIDTH HANGUL LETTER PIEUP-SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3144","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER BIEUB SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFB4"},65461:{"value":"FFB5","name":"HALFWIDTH HANGUL LETTER SIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3145","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFB5"},65462:{"value":"FFB6","name":"HALFWIDTH HANGUL LETTER SSANGSIOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3146","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER SSANG SIOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFB6"},65463:{"value":"FFB7","name":"HALFWIDTH HANGUL LETTER IEUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3147","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFB7"},65464:{"value":"FFB8","name":"HALFWIDTH HANGUL LETTER CIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3148","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER JIEUJ","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFB8"},65465:{"value":"FFB9","name":"HALFWIDTH HANGUL LETTER SSANGCIEUC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3149","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER SSANG JIEUJ","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFB9"},65466:{"value":"FFBA","name":"HALFWIDTH HANGUL LETTER CHIEUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 314A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER CIEUC","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFBA"},65467:{"value":"FFBB","name":"HALFWIDTH HANGUL LETTER KHIEUKH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 314B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER KIYEOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFBB"},65468:{"value":"FFBC","name":"HALFWIDTH HANGUL LETTER THIEUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 314C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER TIEUT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFBC"},65469:{"value":"FFBD","name":"HALFWIDTH HANGUL LETTER PHIEUPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 314D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HALFWIDTH HANGUL LETTER PIEUP","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFBD"},65470:{"value":"FFBE","name":"HALFWIDTH HANGUL LETTER HIEUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 314E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFBE"},65474:{"value":"FFC2","name":"HALFWIDTH HANGUL LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 314F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFC2"},65475:{"value":"FFC3","name":"HALFWIDTH HANGUL LETTER AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3150","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFC3"},65476:{"value":"FFC4","name":"HALFWIDTH HANGUL LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3151","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFC4"},65477:{"value":"FFC5","name":"HALFWIDTH HANGUL LETTER YAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3152","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFC5"},65478:{"value":"FFC6","name":"HALFWIDTH HANGUL LETTER EO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3153","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFC6"},65479:{"value":"FFC7","name":"HALFWIDTH HANGUL LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3154","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFC7"},65482:{"value":"FFCA","name":"HALFWIDTH HANGUL LETTER YEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3155","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFCA"},65483:{"value":"FFCB","name":"HALFWIDTH HANGUL LETTER YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3156","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFCB"},65484:{"value":"FFCC","name":"HALFWIDTH HANGUL LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3157","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFCC"},65485:{"value":"FFCD","name":"HALFWIDTH HANGUL LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3158","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFCD"},65486:{"value":"FFCE","name":"HALFWIDTH HANGUL LETTER WAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3159","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFCE"},65487:{"value":"FFCF","name":"HALFWIDTH HANGUL LETTER OE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 315A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFCF"},65490:{"value":"FFD2","name":"HALFWIDTH HANGUL LETTER YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 315B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFD2"},65491:{"value":"FFD3","name":"HALFWIDTH HANGUL LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 315C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFD3"},65492:{"value":"FFD4","name":"HALFWIDTH HANGUL LETTER WEO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 315D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFD4"},65493:{"value":"FFD5","name":"HALFWIDTH HANGUL LETTER WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 315E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFD5"},65494:{"value":"FFD6","name":"HALFWIDTH HANGUL LETTER WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 315F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFD6"},65495:{"value":"FFD7","name":"HALFWIDTH HANGUL LETTER YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3160","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFD7"},65498:{"value":"FFDA","name":"HALFWIDTH HANGUL LETTER EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3161","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFDA"},65499:{"value":"FFDB","name":"HALFWIDTH HANGUL LETTER YI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3162","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFDB"},65500:{"value":"FFDC","name":"HALFWIDTH HANGUL LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"<narrow> 3163","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFFDC"},65536:{"value":"10000","name":"LINEAR B SYLLABLE B008 A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0000"},65537:{"value":"10001","name":"LINEAR B SYLLABLE B038 E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0001"},65538:{"value":"10002","name":"LINEAR B SYLLABLE B028 I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0002"},65539:{"value":"10003","name":"LINEAR B SYLLABLE B061 O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0003"},65540:{"value":"10004","name":"LINEAR B SYLLABLE B010 U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0004"},65541:{"value":"10005","name":"LINEAR B SYLLABLE B001 DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0005"},65542:{"value":"10006","name":"LINEAR B SYLLABLE B045 DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0006"},65543:{"value":"10007","name":"LINEAR B SYLLABLE B007 DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0007"},65544:{"value":"10008","name":"LINEAR B SYLLABLE B014 DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0008"},65545:{"value":"10009","name":"LINEAR B SYLLABLE B051 DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0009"},65546:{"value":"1000A","name":"LINEAR B SYLLABLE B057 JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u000A"},65547:{"value":"1000B","name":"LINEAR B SYLLABLE B046 JE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u000B"},65549:{"value":"1000D","name":"LINEAR B SYLLABLE B036 JO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u000D"},65550:{"value":"1000E","name":"LINEAR B SYLLABLE B065 JU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u000E"},65551:{"value":"1000F","name":"LINEAR B SYLLABLE B077 KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u000F"},65552:{"value":"10010","name":"LINEAR B SYLLABLE B044 KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0010"},65553:{"value":"10011","name":"LINEAR B SYLLABLE B067 KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0011"},65554:{"value":"10012","name":"LINEAR B SYLLABLE B070 KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0012"},65555:{"value":"10013","name":"LINEAR B SYLLABLE B081 KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0013"},65556:{"value":"10014","name":"LINEAR B SYLLABLE B080 MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0014"},65557:{"value":"10015","name":"LINEAR B SYLLABLE B013 ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0015"},65558:{"value":"10016","name":"LINEAR B SYLLABLE B073 MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0016"},65559:{"value":"10017","name":"LINEAR B SYLLABLE B015 MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0017"},65560:{"value":"10018","name":"LINEAR B SYLLABLE B023 MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0018"},65561:{"value":"10019","name":"LINEAR B SYLLABLE B006 NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0019"},65562:{"value":"1001A","name":"LINEAR B SYLLABLE B024 NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u001A"},65563:{"value":"1001B","name":"LINEAR B SYLLABLE B030 NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u001B"},65564:{"value":"1001C","name":"LINEAR B SYLLABLE B052 NO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u001C"},65565:{"value":"1001D","name":"LINEAR B SYLLABLE B055 NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u001D"},65566:{"value":"1001E","name":"LINEAR B SYLLABLE B003 PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u001E"},65567:{"value":"1001F","name":"LINEAR B SYLLABLE B072 PE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u001F"},65568:{"value":"10020","name":"LINEAR B SYLLABLE B039 PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0020"},65569:{"value":"10021","name":"LINEAR B SYLLABLE B011 PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0021"},65570:{"value":"10022","name":"LINEAR B SYLLABLE B050 PU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0022"},65571:{"value":"10023","name":"LINEAR B SYLLABLE B016 QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0023"},65572:{"value":"10024","name":"LINEAR B SYLLABLE B078 QE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0024"},65573:{"value":"10025","name":"LINEAR B SYLLABLE B021 QI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0025"},65574:{"value":"10026","name":"LINEAR B SYLLABLE B032 QO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0026"},65576:{"value":"10028","name":"LINEAR B SYLLABLE B060 RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0028"},65577:{"value":"10029","name":"LINEAR B SYLLABLE B027 RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0029"},65578:{"value":"1002A","name":"LINEAR B SYLLABLE B053 RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u002A"},65579:{"value":"1002B","name":"LINEAR B SYLLABLE B002 RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u002B"},65580:{"value":"1002C","name":"LINEAR B SYLLABLE B026 RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u002C"},65581:{"value":"1002D","name":"LINEAR B SYLLABLE B031 SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u002D"},65582:{"value":"1002E","name":"LINEAR B SYLLABLE B009 SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u002E"},65583:{"value":"1002F","name":"LINEAR B SYLLABLE B041 SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u002F"},65584:{"value":"10030","name":"LINEAR B SYLLABLE B012 SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0030"},65585:{"value":"10031","name":"LINEAR B SYLLABLE B058 SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0031"},65586:{"value":"10032","name":"LINEAR B SYLLABLE B059 TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0032"},65587:{"value":"10033","name":"LINEAR B SYLLABLE B004 TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0033"},65588:{"value":"10034","name":"LINEAR B SYLLABLE B037 TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0034"},65589:{"value":"10035","name":"LINEAR B SYLLABLE B005 TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0035"},65590:{"value":"10036","name":"LINEAR B SYLLABLE B069 TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0036"},65591:{"value":"10037","name":"LINEAR B SYLLABLE B054 WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0037"},65592:{"value":"10038","name":"LINEAR B SYLLABLE B075 WE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0038"},65593:{"value":"10039","name":"LINEAR B SYLLABLE B040 WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0039"},65594:{"value":"1003A","name":"LINEAR B SYLLABLE B042 WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u003A"},65596:{"value":"1003C","name":"LINEAR B SYLLABLE B017 ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u003C"},65597:{"value":"1003D","name":"LINEAR B SYLLABLE B074 ZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u003D"},65599:{"value":"1003F","name":"LINEAR B SYLLABLE B020 ZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u003F"},65600:{"value":"10040","name":"LINEAR B SYLLABLE B025 A2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0040"},65601:{"value":"10041","name":"LINEAR B SYLLABLE B043 A3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0041"},65602:{"value":"10042","name":"LINEAR B SYLLABLE B085 AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0042"},65603:{"value":"10043","name":"LINEAR B SYLLABLE B071 DWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0043"},65604:{"value":"10044","name":"LINEAR B SYLLABLE B090 DWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0044"},65605:{"value":"10045","name":"LINEAR B SYLLABLE B048 NWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0045"},65606:{"value":"10046","name":"LINEAR B SYLLABLE B029 PU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0046"},65607:{"value":"10047","name":"LINEAR B SYLLABLE B062 PTE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0047"},65608:{"value":"10048","name":"LINEAR B SYLLABLE B076 RA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0048"},65609:{"value":"10049","name":"LINEAR B SYLLABLE B033 RA3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0049"},65610:{"value":"1004A","name":"LINEAR B SYLLABLE B068 RO2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u004A"},65611:{"value":"1004B","name":"LINEAR B SYLLABLE B066 TA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u004B"},65612:{"value":"1004C","name":"LINEAR B SYLLABLE B087 TWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u004C"},65613:{"value":"1004D","name":"LINEAR B SYLLABLE B091 TWO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u004D"},65616:{"value":"10050","name":"LINEAR B SYMBOL B018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0050"},65617:{"value":"10051","name":"LINEAR B SYMBOL B019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0051"},65618:{"value":"10052","name":"LINEAR B SYMBOL B022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0052"},65619:{"value":"10053","name":"LINEAR B SYMBOL B034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0053"},65620:{"value":"10054","name":"LINEAR B SYMBOL B047","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0054"},65621:{"value":"10055","name":"LINEAR B SYMBOL B049","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0055"},65622:{"value":"10056","name":"LINEAR B SYMBOL B056","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0056"},65623:{"value":"10057","name":"LINEAR B SYMBOL B063","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0057"},65624:{"value":"10058","name":"LINEAR B SYMBOL B064","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0058"},65625:{"value":"10059","name":"LINEAR B SYMBOL B079","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0059"},65626:{"value":"1005A","name":"LINEAR B SYMBOL B082","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u005A"},65627:{"value":"1005B","name":"LINEAR B SYMBOL B083","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u005B"},65628:{"value":"1005C","name":"LINEAR B SYMBOL B086","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u005C"},65629:{"value":"1005D","name":"LINEAR B SYMBOL B089","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u005D"},65664:{"value":"10080","name":"LINEAR B IDEOGRAM B100 MAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0080"},65665:{"value":"10081","name":"LINEAR B IDEOGRAM B102 WOMAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0081"},65666:{"value":"10082","name":"LINEAR B IDEOGRAM B104 DEER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0082"},65667:{"value":"10083","name":"LINEAR B IDEOGRAM B105 EQUID","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0083"},65668:{"value":"10084","name":"LINEAR B IDEOGRAM B105F MARE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0084"},65669:{"value":"10085","name":"LINEAR B IDEOGRAM B105M STALLION","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0085"},65670:{"value":"10086","name":"LINEAR B IDEOGRAM B106F EWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0086"},65671:{"value":"10087","name":"LINEAR B IDEOGRAM B106M RAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0087"},65672:{"value":"10088","name":"LINEAR B IDEOGRAM B107F SHE-GOAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0088"},65673:{"value":"10089","name":"LINEAR B IDEOGRAM B107M HE-GOAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0089"},65674:{"value":"1008A","name":"LINEAR B IDEOGRAM B108F SOW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u008A"},65675:{"value":"1008B","name":"LINEAR B IDEOGRAM B108M BOAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u008B"},65676:{"value":"1008C","name":"LINEAR B IDEOGRAM B109F COW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u008C"},65677:{"value":"1008D","name":"LINEAR B IDEOGRAM B109M BULL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u008D"},65678:{"value":"1008E","name":"LINEAR B IDEOGRAM B120 WHEAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u008E"},65679:{"value":"1008F","name":"LINEAR B IDEOGRAM B121 BARLEY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u008F"},65680:{"value":"10090","name":"LINEAR B IDEOGRAM B122 OLIVE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0090"},65681:{"value":"10091","name":"LINEAR B IDEOGRAM B123 SPICE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0091"},65682:{"value":"10092","name":"LINEAR B IDEOGRAM B125 CYPERUS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0092"},65683:{"value":"10093","name":"LINEAR B MONOGRAM B127 KAPO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0093"},65684:{"value":"10094","name":"LINEAR B MONOGRAM B128 KANAKO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0094"},65685:{"value":"10095","name":"LINEAR B IDEOGRAM B130 OIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0095"},65686:{"value":"10096","name":"LINEAR B IDEOGRAM B131 WINE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0096"},65687:{"value":"10097","name":"LINEAR B IDEOGRAM B132","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0097"},65688:{"value":"10098","name":"LINEAR B MONOGRAM B133 AREPA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0098"},65689:{"value":"10099","name":"LINEAR B MONOGRAM B135 MERI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0099"},65690:{"value":"1009A","name":"LINEAR B IDEOGRAM B140 BRONZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u009A"},65691:{"value":"1009B","name":"LINEAR B IDEOGRAM B141 GOLD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u009B"},65692:{"value":"1009C","name":"LINEAR B IDEOGRAM B142","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u009C"},65693:{"value":"1009D","name":"LINEAR B IDEOGRAM B145 WOOL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u009D"},65694:{"value":"1009E","name":"LINEAR B IDEOGRAM B146","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u009E"},65695:{"value":"1009F","name":"LINEAR B IDEOGRAM B150","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u009F"},65696:{"value":"100A0","name":"LINEAR B IDEOGRAM B151 HORN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00A0"},65697:{"value":"100A1","name":"LINEAR B IDEOGRAM B152","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00A1"},65698:{"value":"100A2","name":"LINEAR B IDEOGRAM B153","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00A2"},65699:{"value":"100A3","name":"LINEAR B IDEOGRAM B154","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00A3"},65700:{"value":"100A4","name":"LINEAR B MONOGRAM B156 TURO2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00A4"},65701:{"value":"100A5","name":"LINEAR B IDEOGRAM B157","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00A5"},65702:{"value":"100A6","name":"LINEAR B IDEOGRAM B158","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00A6"},65703:{"value":"100A7","name":"LINEAR B IDEOGRAM B159 CLOTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00A7"},65704:{"value":"100A8","name":"LINEAR B IDEOGRAM B160","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00A8"},65705:{"value":"100A9","name":"LINEAR B IDEOGRAM B161","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00A9"},65706:{"value":"100AA","name":"LINEAR B IDEOGRAM B162 GARMENT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00AA"},65707:{"value":"100AB","name":"LINEAR B IDEOGRAM B163 ARMOUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00AB"},65708:{"value":"100AC","name":"LINEAR B IDEOGRAM B164","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00AC"},65709:{"value":"100AD","name":"LINEAR B IDEOGRAM B165","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00AD"},65710:{"value":"100AE","name":"LINEAR B IDEOGRAM B166","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00AE"},65711:{"value":"100AF","name":"LINEAR B IDEOGRAM B167","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00AF"},65712:{"value":"100B0","name":"LINEAR B IDEOGRAM B168","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00B0"},65713:{"value":"100B1","name":"LINEAR B IDEOGRAM B169","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00B1"},65714:{"value":"100B2","name":"LINEAR B IDEOGRAM B170","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00B2"},65715:{"value":"100B3","name":"LINEAR B IDEOGRAM B171","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00B3"},65716:{"value":"100B4","name":"LINEAR B IDEOGRAM B172","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00B4"},65717:{"value":"100B5","name":"LINEAR B IDEOGRAM B173 MONTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00B5"},65718:{"value":"100B6","name":"LINEAR B IDEOGRAM B174","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00B6"},65719:{"value":"100B7","name":"LINEAR B IDEOGRAM B176 TREE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00B7"},65720:{"value":"100B8","name":"LINEAR B IDEOGRAM B177","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00B8"},65721:{"value":"100B9","name":"LINEAR B IDEOGRAM B178","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00B9"},65722:{"value":"100BA","name":"LINEAR B IDEOGRAM B179","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00BA"},65723:{"value":"100BB","name":"LINEAR B IDEOGRAM B180","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00BB"},65724:{"value":"100BC","name":"LINEAR B IDEOGRAM B181","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00BC"},65725:{"value":"100BD","name":"LINEAR B IDEOGRAM B182","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00BD"},65726:{"value":"100BE","name":"LINEAR B IDEOGRAM B183","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00BE"},65727:{"value":"100BF","name":"LINEAR B IDEOGRAM B184","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00BF"},65728:{"value":"100C0","name":"LINEAR B IDEOGRAM B185","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00C0"},65729:{"value":"100C1","name":"LINEAR B IDEOGRAM B189","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00C1"},65730:{"value":"100C2","name":"LINEAR B IDEOGRAM B190","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00C2"},65731:{"value":"100C3","name":"LINEAR B IDEOGRAM B191 HELMET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00C3"},65732:{"value":"100C4","name":"LINEAR B IDEOGRAM B220 FOOTSTOOL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00C4"},65733:{"value":"100C5","name":"LINEAR B IDEOGRAM B225 BATHTUB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00C5"},65734:{"value":"100C6","name":"LINEAR B IDEOGRAM B230 SPEAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00C6"},65735:{"value":"100C7","name":"LINEAR B IDEOGRAM B231 ARROW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00C7"},65736:{"value":"100C8","name":"LINEAR B IDEOGRAM B232","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00C8"},65737:{"value":"100C9","name":"LINEAR B IDEOGRAM B233 SWORD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00C9"},65738:{"value":"100CA","name":"LINEAR B IDEOGRAM B234","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00CA"},65739:{"value":"100CB","name":"LINEAR B IDEOGRAM B236","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00CB"},65740:{"value":"100CC","name":"LINEAR B IDEOGRAM B240 WHEELED CHARIOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00CC"},65741:{"value":"100CD","name":"LINEAR B IDEOGRAM B241 CHARIOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00CD"},65742:{"value":"100CE","name":"LINEAR B IDEOGRAM B242 CHARIOT FRAME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00CE"},65743:{"value":"100CF","name":"LINEAR B IDEOGRAM B243 WHEEL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00CF"},65744:{"value":"100D0","name":"LINEAR B IDEOGRAM B245","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00D0"},65745:{"value":"100D1","name":"LINEAR B IDEOGRAM B246","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00D1"},65746:{"value":"100D2","name":"LINEAR B MONOGRAM B247 DIPTE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00D2"},65747:{"value":"100D3","name":"LINEAR B IDEOGRAM B248","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00D3"},65748:{"value":"100D4","name":"LINEAR B IDEOGRAM B249","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00D4"},65749:{"value":"100D5","name":"LINEAR B IDEOGRAM B251","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00D5"},65750:{"value":"100D6","name":"LINEAR B IDEOGRAM B252","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00D6"},65751:{"value":"100D7","name":"LINEAR B IDEOGRAM B253","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00D7"},65752:{"value":"100D8","name":"LINEAR B IDEOGRAM B254 DART","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00D8"},65753:{"value":"100D9","name":"LINEAR B IDEOGRAM B255","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00D9"},65754:{"value":"100DA","name":"LINEAR B IDEOGRAM B256","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00DA"},65755:{"value":"100DB","name":"LINEAR B IDEOGRAM B257","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00DB"},65756:{"value":"100DC","name":"LINEAR B IDEOGRAM B258","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00DC"},65757:{"value":"100DD","name":"LINEAR B IDEOGRAM B259","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00DD"},65758:{"value":"100DE","name":"LINEAR B IDEOGRAM VESSEL B155","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00DE"},65759:{"value":"100DF","name":"LINEAR B IDEOGRAM VESSEL B200","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00DF"},65760:{"value":"100E0","name":"LINEAR B IDEOGRAM VESSEL B201","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00E0"},65761:{"value":"100E1","name":"LINEAR B IDEOGRAM VESSEL B202","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00E1"},65762:{"value":"100E2","name":"LINEAR B IDEOGRAM VESSEL B203","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00E2"},65763:{"value":"100E3","name":"LINEAR B IDEOGRAM VESSEL B204","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00E3"},65764:{"value":"100E4","name":"LINEAR B IDEOGRAM VESSEL B205","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00E4"},65765:{"value":"100E5","name":"LINEAR B IDEOGRAM VESSEL B206","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00E5"},65766:{"value":"100E6","name":"LINEAR B IDEOGRAM VESSEL B207","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00E6"},65767:{"value":"100E7","name":"LINEAR B IDEOGRAM VESSEL B208","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00E7"},65768:{"value":"100E8","name":"LINEAR B IDEOGRAM VESSEL B209","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00E8"},65769:{"value":"100E9","name":"LINEAR B IDEOGRAM VESSEL B210","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00E9"},65770:{"value":"100EA","name":"LINEAR B IDEOGRAM VESSEL B211","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00EA"},65771:{"value":"100EB","name":"LINEAR B IDEOGRAM VESSEL B212","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00EB"},65772:{"value":"100EC","name":"LINEAR B IDEOGRAM VESSEL B213","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00EC"},65773:{"value":"100ED","name":"LINEAR B IDEOGRAM VESSEL B214","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00ED"},65774:{"value":"100EE","name":"LINEAR B IDEOGRAM VESSEL B215","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00EE"},65775:{"value":"100EF","name":"LINEAR B IDEOGRAM VESSEL B216","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00EF"},65776:{"value":"100F0","name":"LINEAR B IDEOGRAM VESSEL B217","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00F0"},65777:{"value":"100F1","name":"LINEAR B IDEOGRAM VESSEL B218","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00F1"},65778:{"value":"100F2","name":"LINEAR B IDEOGRAM VESSEL B219","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00F2"},65779:{"value":"100F3","name":"LINEAR B IDEOGRAM VESSEL B221","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00F3"},65780:{"value":"100F4","name":"LINEAR B IDEOGRAM VESSEL B222","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00F4"},65781:{"value":"100F5","name":"LINEAR B IDEOGRAM VESSEL B226","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00F5"},65782:{"value":"100F6","name":"LINEAR B IDEOGRAM VESSEL B227","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00F6"},65783:{"value":"100F7","name":"LINEAR B IDEOGRAM VESSEL B228","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00F7"},65784:{"value":"100F8","name":"LINEAR B IDEOGRAM VESSEL B229","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00F8"},65785:{"value":"100F9","name":"LINEAR B IDEOGRAM VESSEL B250","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00F9"},65786:{"value":"100FA","name":"LINEAR B IDEOGRAM VESSEL B305","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u00FA"},66176:{"value":"10280","name":"LYCIAN LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0280"},66177:{"value":"10281","name":"LYCIAN LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0281"},66178:{"value":"10282","name":"LYCIAN LETTER B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0282"},66179:{"value":"10283","name":"LYCIAN LETTER BH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0283"},66180:{"value":"10284","name":"LYCIAN LETTER G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0284"},66181:{"value":"10285","name":"LYCIAN LETTER D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0285"},66182:{"value":"10286","name":"LYCIAN LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0286"},66183:{"value":"10287","name":"LYCIAN LETTER W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0287"},66184:{"value":"10288","name":"LYCIAN LETTER Z","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0288"},66185:{"value":"10289","name":"LYCIAN LETTER TH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0289"},66186:{"value":"1028A","name":"LYCIAN LETTER J","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u028A"},66187:{"value":"1028B","name":"LYCIAN LETTER K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u028B"},66188:{"value":"1028C","name":"LYCIAN LETTER Q","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u028C"},66189:{"value":"1028D","name":"LYCIAN LETTER L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u028D"},66190:{"value":"1028E","name":"LYCIAN LETTER M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u028E"},66191:{"value":"1028F","name":"LYCIAN LETTER N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u028F"},66192:{"value":"10290","name":"LYCIAN LETTER MM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0290"},66193:{"value":"10291","name":"LYCIAN LETTER NN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0291"},66194:{"value":"10292","name":"LYCIAN LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0292"},66195:{"value":"10293","name":"LYCIAN LETTER P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0293"},66196:{"value":"10294","name":"LYCIAN LETTER KK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0294"},66197:{"value":"10295","name":"LYCIAN LETTER R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0295"},66198:{"value":"10296","name":"LYCIAN LETTER S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0296"},66199:{"value":"10297","name":"LYCIAN LETTER T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0297"},66200:{"value":"10298","name":"LYCIAN LETTER TT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0298"},66201:{"value":"10299","name":"LYCIAN LETTER AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0299"},66202:{"value":"1029A","name":"LYCIAN LETTER EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u029A"},66203:{"value":"1029B","name":"LYCIAN LETTER H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u029B"},66204:{"value":"1029C","name":"LYCIAN LETTER X","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u029C"},66208:{"value":"102A0","name":"CARIAN LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A0"},66209:{"value":"102A1","name":"CARIAN LETTER P2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A1"},66210:{"value":"102A2","name":"CARIAN LETTER D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A2"},66211:{"value":"102A3","name":"CARIAN LETTER L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A3"},66212:{"value":"102A4","name":"CARIAN LETTER UUU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A4"},66213:{"value":"102A5","name":"CARIAN LETTER R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A5"},66214:{"value":"102A6","name":"CARIAN LETTER LD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A6"},66215:{"value":"102A7","name":"CARIAN LETTER A2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A7"},66216:{"value":"102A8","name":"CARIAN LETTER Q","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A8"},66217:{"value":"102A9","name":"CARIAN LETTER B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02A9"},66218:{"value":"102AA","name":"CARIAN LETTER M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AA"},66219:{"value":"102AB","name":"CARIAN LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AB"},66220:{"value":"102AC","name":"CARIAN LETTER D2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AC"},66221:{"value":"102AD","name":"CARIAN LETTER T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AD"},66222:{"value":"102AE","name":"CARIAN LETTER SH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AE"},66223:{"value":"102AF","name":"CARIAN LETTER SH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02AF"},66224:{"value":"102B0","name":"CARIAN LETTER S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B0"},66225:{"value":"102B1","name":"CARIAN LETTER C-18","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B1"},66226:{"value":"102B2","name":"CARIAN LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B2"},66227:{"value":"102B3","name":"CARIAN LETTER NN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B3"},66228:{"value":"102B4","name":"CARIAN LETTER X","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B4"},66229:{"value":"102B5","name":"CARIAN LETTER N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B5"},66230:{"value":"102B6","name":"CARIAN LETTER TT2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B6"},66231:{"value":"102B7","name":"CARIAN LETTER P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B7"},66232:{"value":"102B8","name":"CARIAN LETTER SS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B8"},66233:{"value":"102B9","name":"CARIAN LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B9"},66234:{"value":"102BA","name":"CARIAN LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BA"},66235:{"value":"102BB","name":"CARIAN LETTER UUUU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BB"},66236:{"value":"102BC","name":"CARIAN LETTER K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BC"},66237:{"value":"102BD","name":"CARIAN LETTER K2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BD"},66238:{"value":"102BE","name":"CARIAN LETTER ND","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BE"},66239:{"value":"102BF","name":"CARIAN LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BF"},66240:{"value":"102C0","name":"CARIAN LETTER G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C0"},66241:{"value":"102C1","name":"CARIAN LETTER G2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C1"},66242:{"value":"102C2","name":"CARIAN LETTER ST","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C2"},66243:{"value":"102C3","name":"CARIAN LETTER ST2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C3"},66244:{"value":"102C4","name":"CARIAN LETTER NG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C4"},66245:{"value":"102C5","name":"CARIAN LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C5"},66246:{"value":"102C6","name":"CARIAN LETTER C-39","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C6"},66247:{"value":"102C7","name":"CARIAN LETTER TT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C7"},66248:{"value":"102C8","name":"CARIAN LETTER UUU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C8"},66249:{"value":"102C9","name":"CARIAN LETTER RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C9"},66250:{"value":"102CA","name":"CARIAN LETTER MB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CA"},66251:{"value":"102CB","name":"CARIAN LETTER MB2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CB"},66252:{"value":"102CC","name":"CARIAN LETTER MB3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CC"},66253:{"value":"102CD","name":"CARIAN LETTER MB4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CD"},66254:{"value":"102CE","name":"CARIAN LETTER LD2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CE"},66255:{"value":"102CF","name":"CARIAN LETTER E2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CF"},66256:{"value":"102D0","name":"CARIAN LETTER UUU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02D0"},66304:{"value":"10300","name":"OLD ITALIC LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0300"},66305:{"value":"10301","name":"OLD ITALIC LETTER BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0301"},66306:{"value":"10302","name":"OLD ITALIC LETTER KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0302"},66307:{"value":"10303","name":"OLD ITALIC LETTER DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0303"},66308:{"value":"10304","name":"OLD ITALIC LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0304"},66309:{"value":"10305","name":"OLD ITALIC LETTER VE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0305"},66310:{"value":"10306","name":"OLD ITALIC LETTER ZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0306"},66311:{"value":"10307","name":"OLD ITALIC LETTER HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0307"},66312:{"value":"10308","name":"OLD ITALIC LETTER THE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0308"},66313:{"value":"10309","name":"OLD ITALIC LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0309"},66314:{"value":"1030A","name":"OLD ITALIC LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030A"},66315:{"value":"1030B","name":"OLD ITALIC LETTER EL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030B"},66316:{"value":"1030C","name":"OLD ITALIC LETTER EM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030C"},66317:{"value":"1030D","name":"OLD ITALIC LETTER EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030D"},66318:{"value":"1030E","name":"OLD ITALIC LETTER ESH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030E"},66319:{"value":"1030F","name":"OLD ITALIC LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030F"},66320:{"value":"10310","name":"OLD ITALIC LETTER PE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0310"},66321:{"value":"10311","name":"OLD ITALIC LETTER SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0311"},66322:{"value":"10312","name":"OLD ITALIC LETTER KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0312"},66323:{"value":"10313","name":"OLD ITALIC LETTER ER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0313"},66324:{"value":"10314","name":"OLD ITALIC LETTER ES","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0314"},66325:{"value":"10315","name":"OLD ITALIC LETTER TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0315"},66326:{"value":"10316","name":"OLD ITALIC LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0316"},66327:{"value":"10317","name":"OLD ITALIC LETTER EKS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0317"},66328:{"value":"10318","name":"OLD ITALIC LETTER PHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0318"},66329:{"value":"10319","name":"OLD ITALIC LETTER KHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0319"},66330:{"value":"1031A","name":"OLD ITALIC LETTER EF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031A"},66331:{"value":"1031B","name":"OLD ITALIC LETTER ERS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031B"},66332:{"value":"1031C","name":"OLD ITALIC LETTER CHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031C"},66333:{"value":"1031D","name":"OLD ITALIC LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031D"},66334:{"value":"1031E","name":"OLD ITALIC LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031E"},66335:{"value":"1031F","name":"OLD ITALIC LETTER ESS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031F"},66349:{"value":"1032D","name":"OLD ITALIC LETTER YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u032D"},66350:{"value":"1032E","name":"OLD ITALIC LETTER NORTHERN TSE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u032E"},66351:{"value":"1032F","name":"OLD ITALIC LETTER SOUTHERN TSE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u032F"},66352:{"value":"10330","name":"GOTHIC LETTER AHSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0330"},66353:{"value":"10331","name":"GOTHIC LETTER BAIRKAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0331"},66354:{"value":"10332","name":"GOTHIC LETTER GIBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0332"},66355:{"value":"10333","name":"GOTHIC LETTER DAGS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0333"},66356:{"value":"10334","name":"GOTHIC LETTER AIHVUS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0334"},66357:{"value":"10335","name":"GOTHIC LETTER QAIRTHRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0335"},66358:{"value":"10336","name":"GOTHIC LETTER IUJA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0336"},66359:{"value":"10337","name":"GOTHIC LETTER HAGL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0337"},66360:{"value":"10338","name":"GOTHIC LETTER THIUTH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0338"},66361:{"value":"10339","name":"GOTHIC LETTER EIS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0339"},66362:{"value":"1033A","name":"GOTHIC LETTER KUSMA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033A"},66363:{"value":"1033B","name":"GOTHIC LETTER LAGUS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033B"},66364:{"value":"1033C","name":"GOTHIC LETTER MANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033C"},66365:{"value":"1033D","name":"GOTHIC LETTER NAUTHS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033D"},66366:{"value":"1033E","name":"GOTHIC LETTER JER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033E"},66367:{"value":"1033F","name":"GOTHIC LETTER URUS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033F"},66368:{"value":"10340","name":"GOTHIC LETTER PAIRTHRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0340"},66370:{"value":"10342","name":"GOTHIC LETTER RAIDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0342"},66371:{"value":"10343","name":"GOTHIC LETTER SAUIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0343"},66372:{"value":"10344","name":"GOTHIC LETTER TEIWS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0344"},66373:{"value":"10345","name":"GOTHIC LETTER WINJA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0345"},66374:{"value":"10346","name":"GOTHIC LETTER FAIHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0346"},66375:{"value":"10347","name":"GOTHIC LETTER IGGWS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0347"},66376:{"value":"10348","name":"GOTHIC LETTER HWAIR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0348"},66377:{"value":"10349","name":"GOTHIC LETTER OTHAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0349"},66384:{"value":"10350","name":"OLD PERMIC LETTER AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0350"},66385:{"value":"10351","name":"OLD PERMIC LETTER BUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0351"},66386:{"value":"10352","name":"OLD PERMIC LETTER GAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0352"},66387:{"value":"10353","name":"OLD PERMIC LETTER DOI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0353"},66388:{"value":"10354","name":"OLD PERMIC LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0354"},66389:{"value":"10355","name":"OLD PERMIC LETTER ZHOI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0355"},66390:{"value":"10356","name":"OLD PERMIC LETTER DZHOI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0356"},66391:{"value":"10357","name":"OLD PERMIC LETTER ZATA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0357"},66392:{"value":"10358","name":"OLD PERMIC LETTER DZITA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0358"},66393:{"value":"10359","name":"OLD PERMIC LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0359"},66394:{"value":"1035A","name":"OLD PERMIC LETTER KOKE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035A"},66395:{"value":"1035B","name":"OLD PERMIC LETTER LEI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035B"},66396:{"value":"1035C","name":"OLD PERMIC LETTER MENOE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035C"},66397:{"value":"1035D","name":"OLD PERMIC LETTER NENOE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035D"},66398:{"value":"1035E","name":"OLD PERMIC LETTER VOOI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035E"},66399:{"value":"1035F","name":"OLD PERMIC LETTER PEEI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035F"},66400:{"value":"10360","name":"OLD PERMIC LETTER REI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0360"},66401:{"value":"10361","name":"OLD PERMIC LETTER SII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0361"},66402:{"value":"10362","name":"OLD PERMIC LETTER TAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0362"},66403:{"value":"10363","name":"OLD PERMIC LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0363"},66404:{"value":"10364","name":"OLD PERMIC LETTER CHERY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0364"},66405:{"value":"10365","name":"OLD PERMIC LETTER SHOOI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0365"},66406:{"value":"10366","name":"OLD PERMIC LETTER SHCHOOI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0366"},66407:{"value":"10367","name":"OLD PERMIC LETTER YRY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0367"},66408:{"value":"10368","name":"OLD PERMIC LETTER YERU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0368"},66409:{"value":"10369","name":"OLD PERMIC LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0369"},66410:{"value":"1036A","name":"OLD PERMIC LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036A"},66411:{"value":"1036B","name":"OLD PERMIC LETTER EF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036B"},66412:{"value":"1036C","name":"OLD PERMIC LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036C"},66413:{"value":"1036D","name":"OLD PERMIC LETTER TSIU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036D"},66414:{"value":"1036E","name":"OLD PERMIC LETTER VER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036E"},66415:{"value":"1036F","name":"OLD PERMIC LETTER YER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036F"},66416:{"value":"10370","name":"OLD PERMIC LETTER YERI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0370"},66417:{"value":"10371","name":"OLD PERMIC LETTER YAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0371"},66418:{"value":"10372","name":"OLD PERMIC LETTER IE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0372"},66419:{"value":"10373","name":"OLD PERMIC LETTER YU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0373"},66420:{"value":"10374","name":"OLD PERMIC LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0374"},66421:{"value":"10375","name":"OLD PERMIC LETTER IA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0375"},66432:{"value":"10380","name":"UGARITIC LETTER ALPA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0380"},66433:{"value":"10381","name":"UGARITIC LETTER BETA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0381"},66434:{"value":"10382","name":"UGARITIC LETTER GAMLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0382"},66435:{"value":"10383","name":"UGARITIC LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0383"},66436:{"value":"10384","name":"UGARITIC LETTER DELTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0384"},66437:{"value":"10385","name":"UGARITIC LETTER HO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0385"},66438:{"value":"10386","name":"UGARITIC LETTER WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0386"},66439:{"value":"10387","name":"UGARITIC LETTER ZETA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0387"},66440:{"value":"10388","name":"UGARITIC LETTER HOTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0388"},66441:{"value":"10389","name":"UGARITIC LETTER TET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0389"},66442:{"value":"1038A","name":"UGARITIC LETTER YOD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u038A"},66443:{"value":"1038B","name":"UGARITIC LETTER KAF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u038B"},66444:{"value":"1038C","name":"UGARITIC LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u038C"},66445:{"value":"1038D","name":"UGARITIC LETTER LAMDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u038D"},66446:{"value":"1038E","name":"UGARITIC LETTER MEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u038E"},66447:{"value":"1038F","name":"UGARITIC LETTER DHAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u038F"},66448:{"value":"10390","name":"UGARITIC LETTER NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0390"},66449:{"value":"10391","name":"UGARITIC LETTER ZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0391"},66450:{"value":"10392","name":"UGARITIC LETTER SAMKA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0392"},66451:{"value":"10393","name":"UGARITIC LETTER AIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0393"},66452:{"value":"10394","name":"UGARITIC LETTER PU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0394"},66453:{"value":"10395","name":"UGARITIC LETTER SADE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0395"},66454:{"value":"10396","name":"UGARITIC LETTER QOPA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0396"},66455:{"value":"10397","name":"UGARITIC LETTER RASHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0397"},66456:{"value":"10398","name":"UGARITIC LETTER THANNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0398"},66457:{"value":"10399","name":"UGARITIC LETTER GHAIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0399"},66458:{"value":"1039A","name":"UGARITIC LETTER TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u039A"},66459:{"value":"1039B","name":"UGARITIC LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u039B"},66460:{"value":"1039C","name":"UGARITIC LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u039C"},66461:{"value":"1039D","name":"UGARITIC LETTER SSU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u039D"},66464:{"value":"103A0","name":"OLD PERSIAN SIGN A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03A0"},66465:{"value":"103A1","name":"OLD PERSIAN SIGN I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03A1"},66466:{"value":"103A2","name":"OLD PERSIAN SIGN U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03A2"},66467:{"value":"103A3","name":"OLD PERSIAN SIGN KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03A3"},66468:{"value":"103A4","name":"OLD PERSIAN SIGN KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03A4"},66469:{"value":"103A5","name":"OLD PERSIAN SIGN GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03A5"},66470:{"value":"103A6","name":"OLD PERSIAN SIGN GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03A6"},66471:{"value":"103A7","name":"OLD PERSIAN SIGN XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03A7"},66472:{"value":"103A8","name":"OLD PERSIAN SIGN CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03A8"},66473:{"value":"103A9","name":"OLD PERSIAN SIGN JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03A9"},66474:{"value":"103AA","name":"OLD PERSIAN SIGN JI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03AA"},66475:{"value":"103AB","name":"OLD PERSIAN SIGN TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03AB"},66476:{"value":"103AC","name":"OLD PERSIAN SIGN TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03AC"},66477:{"value":"103AD","name":"OLD PERSIAN SIGN DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03AD"},66478:{"value":"103AE","name":"OLD PERSIAN SIGN DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03AE"},66479:{"value":"103AF","name":"OLD PERSIAN SIGN DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03AF"},66480:{"value":"103B0","name":"OLD PERSIAN SIGN THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B0"},66481:{"value":"103B1","name":"OLD PERSIAN SIGN PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B1"},66482:{"value":"103B2","name":"OLD PERSIAN SIGN BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B2"},66483:{"value":"103B3","name":"OLD PERSIAN SIGN FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B3"},66484:{"value":"103B4","name":"OLD PERSIAN SIGN NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B4"},66485:{"value":"103B5","name":"OLD PERSIAN SIGN NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B5"},66486:{"value":"103B6","name":"OLD PERSIAN SIGN MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B6"},66487:{"value":"103B7","name":"OLD PERSIAN SIGN MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B7"},66488:{"value":"103B8","name":"OLD PERSIAN SIGN MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B8"},66489:{"value":"103B9","name":"OLD PERSIAN SIGN YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03B9"},66490:{"value":"103BA","name":"OLD PERSIAN SIGN VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03BA"},66491:{"value":"103BB","name":"OLD PERSIAN SIGN VI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03BB"},66492:{"value":"103BC","name":"OLD PERSIAN SIGN RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03BC"},66493:{"value":"103BD","name":"OLD PERSIAN SIGN RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03BD"},66494:{"value":"103BE","name":"OLD PERSIAN SIGN LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03BE"},66495:{"value":"103BF","name":"OLD PERSIAN SIGN SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03BF"},66496:{"value":"103C0","name":"OLD PERSIAN SIGN ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03C0"},66497:{"value":"103C1","name":"OLD PERSIAN SIGN SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03C1"},66498:{"value":"103C2","name":"OLD PERSIAN SIGN SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03C2"},66499:{"value":"103C3","name":"OLD PERSIAN SIGN HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03C3"},66504:{"value":"103C8","name":"OLD PERSIAN SIGN AURAMAZDAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03C8"},66505:{"value":"103C9","name":"OLD PERSIAN SIGN AURAMAZDAA-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03C9"},66506:{"value":"103CA","name":"OLD PERSIAN SIGN AURAMAZDAAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03CA"},66507:{"value":"103CB","name":"OLD PERSIAN SIGN XSHAAYATHIYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03CB"},66508:{"value":"103CC","name":"OLD PERSIAN SIGN DAHYAAUSH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03CC"},66509:{"value":"103CD","name":"OLD PERSIAN SIGN DAHYAAUSH-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03CD"},66510:{"value":"103CE","name":"OLD PERSIAN SIGN BAGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03CE"},66511:{"value":"103CF","name":"OLD PERSIAN SIGN BUUMISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03CF"},66640:{"value":"10450","name":"SHAVIAN LETTER PEEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0450"},66641:{"value":"10451","name":"SHAVIAN LETTER TOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0451"},66642:{"value":"10452","name":"SHAVIAN LETTER KICK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0452"},66643:{"value":"10453","name":"SHAVIAN LETTER FEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0453"},66644:{"value":"10454","name":"SHAVIAN LETTER THIGH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0454"},66645:{"value":"10455","name":"SHAVIAN LETTER SO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0455"},66646:{"value":"10456","name":"SHAVIAN LETTER SURE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0456"},66647:{"value":"10457","name":"SHAVIAN LETTER CHURCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0457"},66648:{"value":"10458","name":"SHAVIAN LETTER YEA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0458"},66649:{"value":"10459","name":"SHAVIAN LETTER HUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0459"},66650:{"value":"1045A","name":"SHAVIAN LETTER BIB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u045A"},66651:{"value":"1045B","name":"SHAVIAN LETTER DEAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u045B"},66652:{"value":"1045C","name":"SHAVIAN LETTER GAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u045C"},66653:{"value":"1045D","name":"SHAVIAN LETTER VOW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u045D"},66654:{"value":"1045E","name":"SHAVIAN LETTER THEY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u045E"},66655:{"value":"1045F","name":"SHAVIAN LETTER ZOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u045F"},66656:{"value":"10460","name":"SHAVIAN LETTER MEASURE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0460"},66657:{"value":"10461","name":"SHAVIAN LETTER JUDGE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0461"},66658:{"value":"10462","name":"SHAVIAN LETTER WOE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0462"},66659:{"value":"10463","name":"SHAVIAN LETTER HA-HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0463"},66660:{"value":"10464","name":"SHAVIAN LETTER LOLL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0464"},66661:{"value":"10465","name":"SHAVIAN LETTER MIME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0465"},66662:{"value":"10466","name":"SHAVIAN LETTER IF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0466"},66663:{"value":"10467","name":"SHAVIAN LETTER EGG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0467"},66664:{"value":"10468","name":"SHAVIAN LETTER ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0468"},66665:{"value":"10469","name":"SHAVIAN LETTER ADO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0469"},66666:{"value":"1046A","name":"SHAVIAN LETTER ON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u046A"},66667:{"value":"1046B","name":"SHAVIAN LETTER WOOL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u046B"},66668:{"value":"1046C","name":"SHAVIAN LETTER OUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u046C"},66669:{"value":"1046D","name":"SHAVIAN LETTER AH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u046D"},66670:{"value":"1046E","name":"SHAVIAN LETTER ROAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u046E"},66671:{"value":"1046F","name":"SHAVIAN LETTER NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u046F"},66672:{"value":"10470","name":"SHAVIAN LETTER EAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0470"},66673:{"value":"10471","name":"SHAVIAN LETTER AGE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0471"},66674:{"value":"10472","name":"SHAVIAN LETTER ICE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0472"},66675:{"value":"10473","name":"SHAVIAN LETTER UP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0473"},66676:{"value":"10474","name":"SHAVIAN LETTER OAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0474"},66677:{"value":"10475","name":"SHAVIAN LETTER OOZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0475"},66678:{"value":"10476","name":"SHAVIAN LETTER OIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0476"},66679:{"value":"10477","name":"SHAVIAN LETTER AWE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0477"},66680:{"value":"10478","name":"SHAVIAN LETTER ARE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0478"},66681:{"value":"10479","name":"SHAVIAN LETTER OR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0479"},66682:{"value":"1047A","name":"SHAVIAN LETTER AIR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u047A"},66683:{"value":"1047B","name":"SHAVIAN LETTER ERR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u047B"},66684:{"value":"1047C","name":"SHAVIAN LETTER ARRAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u047C"},66685:{"value":"1047D","name":"SHAVIAN LETTER EAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u047D"},66686:{"value":"1047E","name":"SHAVIAN LETTER IAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u047E"},66687:{"value":"1047F","name":"SHAVIAN LETTER YEW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u047F"},66688:{"value":"10480","name":"OSMANYA LETTER ALEF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0480"},66689:{"value":"10481","name":"OSMANYA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0481"},66690:{"value":"10482","name":"OSMANYA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0482"},66691:{"value":"10483","name":"OSMANYA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0483"},66692:{"value":"10484","name":"OSMANYA LETTER XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0484"},66693:{"value":"10485","name":"OSMANYA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0485"},66694:{"value":"10486","name":"OSMANYA LETTER DEEL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0486"},66695:{"value":"10487","name":"OSMANYA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0487"},66696:{"value":"10488","name":"OSMANYA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0488"},66697:{"value":"10489","name":"OSMANYA LETTER SHIIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0489"},66698:{"value":"1048A","name":"OSMANYA LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u048A"},66699:{"value":"1048B","name":"OSMANYA LETTER CAYN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u048B"},66700:{"value":"1048C","name":"OSMANYA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u048C"},66701:{"value":"1048D","name":"OSMANYA LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u048D"},66702:{"value":"1048E","name":"OSMANYA LETTER QAAF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u048E"},66703:{"value":"1048F","name":"OSMANYA LETTER KAAF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u048F"},66704:{"value":"10490","name":"OSMANYA LETTER LAAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0490"},66705:{"value":"10491","name":"OSMANYA LETTER MIIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0491"},66706:{"value":"10492","name":"OSMANYA LETTER NUUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0492"},66707:{"value":"10493","name":"OSMANYA LETTER WAW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0493"},66708:{"value":"10494","name":"OSMANYA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0494"},66709:{"value":"10495","name":"OSMANYA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0495"},66710:{"value":"10496","name":"OSMANYA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0496"},66711:{"value":"10497","name":"OSMANYA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0497"},66712:{"value":"10498","name":"OSMANYA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0498"},66713:{"value":"10499","name":"OSMANYA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0499"},66714:{"value":"1049A","name":"OSMANYA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u049A"},66715:{"value":"1049B","name":"OSMANYA LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u049B"},66716:{"value":"1049C","name":"OSMANYA LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u049C"},66717:{"value":"1049D","name":"OSMANYA LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u049D"},66816:{"value":"10500","name":"ELBASAN LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0500"},66817:{"value":"10501","name":"ELBASAN LETTER BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0501"},66818:{"value":"10502","name":"ELBASAN LETTER CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0502"},66819:{"value":"10503","name":"ELBASAN LETTER CHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0503"},66820:{"value":"10504","name":"ELBASAN LETTER DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0504"},66821:{"value":"10505","name":"ELBASAN LETTER NDE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0505"},66822:{"value":"10506","name":"ELBASAN LETTER DHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0506"},66823:{"value":"10507","name":"ELBASAN LETTER EI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0507"},66824:{"value":"10508","name":"ELBASAN LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0508"},66825:{"value":"10509","name":"ELBASAN LETTER FE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0509"},66826:{"value":"1050A","name":"ELBASAN LETTER GE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u050A"},66827:{"value":"1050B","name":"ELBASAN LETTER GJE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u050B"},66828:{"value":"1050C","name":"ELBASAN LETTER HE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u050C"},66829:{"value":"1050D","name":"ELBASAN LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u050D"},66830:{"value":"1050E","name":"ELBASAN LETTER JE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u050E"},66831:{"value":"1050F","name":"ELBASAN LETTER KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u050F"},66832:{"value":"10510","name":"ELBASAN LETTER LE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0510"},66833:{"value":"10511","name":"ELBASAN LETTER LLE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0511"},66834:{"value":"10512","name":"ELBASAN LETTER ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0512"},66835:{"value":"10513","name":"ELBASAN LETTER NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0513"},66836:{"value":"10514","name":"ELBASAN LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0514"},66837:{"value":"10515","name":"ELBASAN LETTER NJE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0515"},66838:{"value":"10516","name":"ELBASAN LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0516"},66839:{"value":"10517","name":"ELBASAN LETTER PE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0517"},66840:{"value":"10518","name":"ELBASAN LETTER QE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0518"},66841:{"value":"10519","name":"ELBASAN LETTER RE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0519"},66842:{"value":"1051A","name":"ELBASAN LETTER RRE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u051A"},66843:{"value":"1051B","name":"ELBASAN LETTER SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u051B"},66844:{"value":"1051C","name":"ELBASAN LETTER SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u051C"},66845:{"value":"1051D","name":"ELBASAN LETTER TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u051D"},66846:{"value":"1051E","name":"ELBASAN LETTER THE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u051E"},66847:{"value":"1051F","name":"ELBASAN LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u051F"},66848:{"value":"10520","name":"ELBASAN LETTER VE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0520"},66849:{"value":"10521","name":"ELBASAN LETTER XE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0521"},66850:{"value":"10522","name":"ELBASAN LETTER Y","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0522"},66851:{"value":"10523","name":"ELBASAN LETTER ZE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0523"},66852:{"value":"10524","name":"ELBASAN LETTER ZHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0524"},66853:{"value":"10525","name":"ELBASAN LETTER GHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0525"},66854:{"value":"10526","name":"ELBASAN LETTER GHAMMA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0526"},66855:{"value":"10527","name":"ELBASAN LETTER KHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0527"},66864:{"value":"10530","name":"CAUCASIAN ALBANIAN LETTER ALT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0530"},66865:{"value":"10531","name":"CAUCASIAN ALBANIAN LETTER BET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0531"},66866:{"value":"10532","name":"CAUCASIAN ALBANIAN LETTER GIM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0532"},66867:{"value":"10533","name":"CAUCASIAN ALBANIAN LETTER DAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0533"},66868:{"value":"10534","name":"CAUCASIAN ALBANIAN LETTER EB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0534"},66869:{"value":"10535","name":"CAUCASIAN ALBANIAN LETTER ZARL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0535"},66870:{"value":"10536","name":"CAUCASIAN ALBANIAN LETTER EYN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0536"},66871:{"value":"10537","name":"CAUCASIAN ALBANIAN LETTER ZHIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0537"},66872:{"value":"10538","name":"CAUCASIAN ALBANIAN LETTER TAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0538"},66873:{"value":"10539","name":"CAUCASIAN ALBANIAN LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0539"},66874:{"value":"1053A","name":"CAUCASIAN ALBANIAN LETTER YOWD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u053A"},66875:{"value":"1053B","name":"CAUCASIAN ALBANIAN LETTER ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u053B"},66876:{"value":"1053C","name":"CAUCASIAN ALBANIAN LETTER IRB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u053C"},66877:{"value":"1053D","name":"CAUCASIAN ALBANIAN LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u053D"},66878:{"value":"1053E","name":"CAUCASIAN ALBANIAN LETTER LAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u053E"},66879:{"value":"1053F","name":"CAUCASIAN ALBANIAN LETTER INYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u053F"},66880:{"value":"10540","name":"CAUCASIAN ALBANIAN LETTER XEYN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0540"},66881:{"value":"10541","name":"CAUCASIAN ALBANIAN LETTER DYAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0541"},66882:{"value":"10542","name":"CAUCASIAN ALBANIAN LETTER CAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0542"},66883:{"value":"10543","name":"CAUCASIAN ALBANIAN LETTER JHOX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0543"},66884:{"value":"10544","name":"CAUCASIAN ALBANIAN LETTER KAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0544"},66885:{"value":"10545","name":"CAUCASIAN ALBANIAN LETTER LYIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0545"},66886:{"value":"10546","name":"CAUCASIAN ALBANIAN LETTER HEYT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0546"},66887:{"value":"10547","name":"CAUCASIAN ALBANIAN LETTER QAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0547"},66888:{"value":"10548","name":"CAUCASIAN ALBANIAN LETTER AOR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0548"},66889:{"value":"10549","name":"CAUCASIAN ALBANIAN LETTER CHOY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0549"},66890:{"value":"1054A","name":"CAUCASIAN ALBANIAN LETTER CHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u054A"},66891:{"value":"1054B","name":"CAUCASIAN ALBANIAN LETTER CYAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u054B"},66892:{"value":"1054C","name":"CAUCASIAN ALBANIAN LETTER MAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u054C"},66893:{"value":"1054D","name":"CAUCASIAN ALBANIAN LETTER QAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u054D"},66894:{"value":"1054E","name":"CAUCASIAN ALBANIAN LETTER NOWC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u054E"},66895:{"value":"1054F","name":"CAUCASIAN ALBANIAN LETTER DZYAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u054F"},66896:{"value":"10550","name":"CAUCASIAN ALBANIAN LETTER SHAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0550"},66897:{"value":"10551","name":"CAUCASIAN ALBANIAN LETTER JAYN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0551"},66898:{"value":"10552","name":"CAUCASIAN ALBANIAN LETTER ON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0552"},66899:{"value":"10553","name":"CAUCASIAN ALBANIAN LETTER TYAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0553"},66900:{"value":"10554","name":"CAUCASIAN ALBANIAN LETTER FAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0554"},66901:{"value":"10555","name":"CAUCASIAN ALBANIAN LETTER DZAY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0555"},66902:{"value":"10556","name":"CAUCASIAN ALBANIAN LETTER CHAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0556"},66903:{"value":"10557","name":"CAUCASIAN ALBANIAN LETTER PEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0557"},66904:{"value":"10558","name":"CAUCASIAN ALBANIAN LETTER GHEYS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0558"},66905:{"value":"10559","name":"CAUCASIAN ALBANIAN LETTER RAT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0559"},66906:{"value":"1055A","name":"CAUCASIAN ALBANIAN LETTER SEYK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u055A"},66907:{"value":"1055B","name":"CAUCASIAN ALBANIAN LETTER VEYZ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u055B"},66908:{"value":"1055C","name":"CAUCASIAN ALBANIAN LETTER TIWR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u055C"},66909:{"value":"1055D","name":"CAUCASIAN ALBANIAN LETTER SHOY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u055D"},66910:{"value":"1055E","name":"CAUCASIAN ALBANIAN LETTER IWN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u055E"},66911:{"value":"1055F","name":"CAUCASIAN ALBANIAN LETTER CYAW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u055F"},66912:{"value":"10560","name":"CAUCASIAN ALBANIAN LETTER CAYN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0560"},66913:{"value":"10561","name":"CAUCASIAN ALBANIAN LETTER YAYD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0561"},66914:{"value":"10562","name":"CAUCASIAN ALBANIAN LETTER PIWR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0562"},66915:{"value":"10563","name":"CAUCASIAN ALBANIAN LETTER KIW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0563"},67072:{"value":"10600","name":"LINEAR A SIGN AB001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0600"},67073:{"value":"10601","name":"LINEAR A SIGN AB002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0601"},67074:{"value":"10602","name":"LINEAR A SIGN AB003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0602"},67075:{"value":"10603","name":"LINEAR A SIGN AB004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0603"},67076:{"value":"10604","name":"LINEAR A SIGN AB005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0604"},67077:{"value":"10605","name":"LINEAR A SIGN AB006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0605"},67078:{"value":"10606","name":"LINEAR A SIGN AB007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0606"},67079:{"value":"10607","name":"LINEAR A SIGN AB008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0607"},67080:{"value":"10608","name":"LINEAR A SIGN AB009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0608"},67081:{"value":"10609","name":"LINEAR A SIGN AB010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0609"},67082:{"value":"1060A","name":"LINEAR A SIGN AB011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u060A"},67083:{"value":"1060B","name":"LINEAR A SIGN AB013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u060B"},67084:{"value":"1060C","name":"LINEAR A SIGN AB016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u060C"},67085:{"value":"1060D","name":"LINEAR A SIGN AB017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u060D"},67086:{"value":"1060E","name":"LINEAR A SIGN AB020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u060E"},67087:{"value":"1060F","name":"LINEAR A SIGN AB021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u060F"},67088:{"value":"10610","name":"LINEAR A SIGN AB021F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0610"},67089:{"value":"10611","name":"LINEAR A SIGN AB021M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0611"},67090:{"value":"10612","name":"LINEAR A SIGN AB022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0612"},67091:{"value":"10613","name":"LINEAR A SIGN AB022F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0613"},67092:{"value":"10614","name":"LINEAR A SIGN AB022M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0614"},67093:{"value":"10615","name":"LINEAR A SIGN AB023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0615"},67094:{"value":"10616","name":"LINEAR A SIGN AB023M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0616"},67095:{"value":"10617","name":"LINEAR A SIGN AB024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0617"},67096:{"value":"10618","name":"LINEAR A SIGN AB026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0618"},67097:{"value":"10619","name":"LINEAR A SIGN AB027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0619"},67098:{"value":"1061A","name":"LINEAR A SIGN AB028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u061A"},67099:{"value":"1061B","name":"LINEAR A SIGN A028B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u061B"},67100:{"value":"1061C","name":"LINEAR A SIGN AB029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u061C"},67101:{"value":"1061D","name":"LINEAR A SIGN AB030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u061D"},67102:{"value":"1061E","name":"LINEAR A SIGN AB031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u061E"},67103:{"value":"1061F","name":"LINEAR A SIGN AB034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u061F"},67104:{"value":"10620","name":"LINEAR A SIGN AB037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0620"},67105:{"value":"10621","name":"LINEAR A SIGN AB038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0621"},67106:{"value":"10622","name":"LINEAR A SIGN AB039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0622"},67107:{"value":"10623","name":"LINEAR A SIGN AB040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0623"},67108:{"value":"10624","name":"LINEAR A SIGN AB041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0624"},67109:{"value":"10625","name":"LINEAR A SIGN AB044","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0625"},67110:{"value":"10626","name":"LINEAR A SIGN AB045","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0626"},67111:{"value":"10627","name":"LINEAR A SIGN AB046","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0627"},67112:{"value":"10628","name":"LINEAR A SIGN AB047","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0628"},67113:{"value":"10629","name":"LINEAR A SIGN AB048","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0629"},67114:{"value":"1062A","name":"LINEAR A SIGN AB049","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062A"},67115:{"value":"1062B","name":"LINEAR A SIGN AB050","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062B"},67116:{"value":"1062C","name":"LINEAR A SIGN AB051","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062C"},67117:{"value":"1062D","name":"LINEAR A SIGN AB053","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062D"},67118:{"value":"1062E","name":"LINEAR A SIGN AB054","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062E"},67119:{"value":"1062F","name":"LINEAR A SIGN AB055","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u062F"},67120:{"value":"10630","name":"LINEAR A SIGN AB056","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0630"},67121:{"value":"10631","name":"LINEAR A SIGN AB057","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0631"},67122:{"value":"10632","name":"LINEAR A SIGN AB058","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0632"},67123:{"value":"10633","name":"LINEAR A SIGN AB059","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0633"},67124:{"value":"10634","name":"LINEAR A SIGN AB060","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0634"},67125:{"value":"10635","name":"LINEAR A SIGN AB061","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0635"},67126:{"value":"10636","name":"LINEAR A SIGN AB065","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0636"},67127:{"value":"10637","name":"LINEAR A SIGN AB066","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0637"},67128:{"value":"10638","name":"LINEAR A SIGN AB067","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0638"},67129:{"value":"10639","name":"LINEAR A SIGN AB069","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0639"},67130:{"value":"1063A","name":"LINEAR A SIGN AB070","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063A"},67131:{"value":"1063B","name":"LINEAR A SIGN AB073","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063B"},67132:{"value":"1063C","name":"LINEAR A SIGN AB074","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063C"},67133:{"value":"1063D","name":"LINEAR A SIGN AB076","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063D"},67134:{"value":"1063E","name":"LINEAR A SIGN AB077","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063E"},67135:{"value":"1063F","name":"LINEAR A SIGN AB078","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u063F"},67136:{"value":"10640","name":"LINEAR A SIGN AB079","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0640"},67137:{"value":"10641","name":"LINEAR A SIGN AB080","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0641"},67138:{"value":"10642","name":"LINEAR A SIGN AB081","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0642"},67139:{"value":"10643","name":"LINEAR A SIGN AB082","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0643"},67140:{"value":"10644","name":"LINEAR A SIGN AB085","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0644"},67141:{"value":"10645","name":"LINEAR A SIGN AB086","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0645"},67142:{"value":"10646","name":"LINEAR A SIGN AB087","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0646"},67143:{"value":"10647","name":"LINEAR A SIGN A100-102","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0647"},67144:{"value":"10648","name":"LINEAR A SIGN AB118","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0648"},67145:{"value":"10649","name":"LINEAR A SIGN AB120","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0649"},67146:{"value":"1064A","name":"LINEAR A SIGN A120B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064A"},67147:{"value":"1064B","name":"LINEAR A SIGN AB122","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064B"},67148:{"value":"1064C","name":"LINEAR A SIGN AB123","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064C"},67149:{"value":"1064D","name":"LINEAR A SIGN AB131A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064D"},67150:{"value":"1064E","name":"LINEAR A SIGN AB131B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064E"},67151:{"value":"1064F","name":"LINEAR A SIGN A131C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064F"},67152:{"value":"10650","name":"LINEAR A SIGN AB164","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0650"},67153:{"value":"10651","name":"LINEAR A SIGN AB171","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0651"},67154:{"value":"10652","name":"LINEAR A SIGN AB180","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0652"},67155:{"value":"10653","name":"LINEAR A SIGN AB188","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0653"},67156:{"value":"10654","name":"LINEAR A SIGN AB191","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0654"},67157:{"value":"10655","name":"LINEAR A SIGN A301","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0655"},67158:{"value":"10656","name":"LINEAR A SIGN A302","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0656"},67159:{"value":"10657","name":"LINEAR A SIGN A303","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0657"},67160:{"value":"10658","name":"LINEAR A SIGN A304","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0658"},67161:{"value":"10659","name":"LINEAR A SIGN A305","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0659"},67162:{"value":"1065A","name":"LINEAR A SIGN A306","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065A"},67163:{"value":"1065B","name":"LINEAR A SIGN A307","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065B"},67164:{"value":"1065C","name":"LINEAR A SIGN A308","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065C"},67165:{"value":"1065D","name":"LINEAR A SIGN A309A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065D"},67166:{"value":"1065E","name":"LINEAR A SIGN A309B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065E"},67167:{"value":"1065F","name":"LINEAR A SIGN A309C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065F"},67168:{"value":"10660","name":"LINEAR A SIGN A310","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0660"},67169:{"value":"10661","name":"LINEAR A SIGN A311","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0661"},67170:{"value":"10662","name":"LINEAR A SIGN A312","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0662"},67171:{"value":"10663","name":"LINEAR A SIGN A313A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0663"},67172:{"value":"10664","name":"LINEAR A SIGN A313B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0664"},67173:{"value":"10665","name":"LINEAR A SIGN A313C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0665"},67174:{"value":"10666","name":"LINEAR A SIGN A314","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0666"},67175:{"value":"10667","name":"LINEAR A SIGN A315","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0667"},67176:{"value":"10668","name":"LINEAR A SIGN A316","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0668"},67177:{"value":"10669","name":"LINEAR A SIGN A317","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0669"},67178:{"value":"1066A","name":"LINEAR A SIGN A318","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u066A"},67179:{"value":"1066B","name":"LINEAR A SIGN A319","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u066B"},67180:{"value":"1066C","name":"LINEAR A SIGN A320","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u066C"},67181:{"value":"1066D","name":"LINEAR A SIGN A321","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u066D"},67182:{"value":"1066E","name":"LINEAR A SIGN A322","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u066E"},67183:{"value":"1066F","name":"LINEAR A SIGN A323","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u066F"},67184:{"value":"10670","name":"LINEAR A SIGN A324","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0670"},67185:{"value":"10671","name":"LINEAR A SIGN A325","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0671"},67186:{"value":"10672","name":"LINEAR A SIGN A326","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0672"},67187:{"value":"10673","name":"LINEAR A SIGN A327","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0673"},67188:{"value":"10674","name":"LINEAR A SIGN A328","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0674"},67189:{"value":"10675","name":"LINEAR A SIGN A329","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0675"},67190:{"value":"10676","name":"LINEAR A SIGN A330","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0676"},67191:{"value":"10677","name":"LINEAR A SIGN A331","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0677"},67192:{"value":"10678","name":"LINEAR A SIGN A332","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0678"},67193:{"value":"10679","name":"LINEAR A SIGN A333","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0679"},67194:{"value":"1067A","name":"LINEAR A SIGN A334","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067A"},67195:{"value":"1067B","name":"LINEAR A SIGN A335","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067B"},67196:{"value":"1067C","name":"LINEAR A SIGN A336","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067C"},67197:{"value":"1067D","name":"LINEAR A SIGN A337","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067D"},67198:{"value":"1067E","name":"LINEAR A SIGN A338","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067E"},67199:{"value":"1067F","name":"LINEAR A SIGN A339","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u067F"},67200:{"value":"10680","name":"LINEAR A SIGN A340","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0680"},67201:{"value":"10681","name":"LINEAR A SIGN A341","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0681"},67202:{"value":"10682","name":"LINEAR A SIGN A342","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0682"},67203:{"value":"10683","name":"LINEAR A SIGN A343","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0683"},67204:{"value":"10684","name":"LINEAR A SIGN A344","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0684"},67205:{"value":"10685","name":"LINEAR A SIGN A345","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0685"},67206:{"value":"10686","name":"LINEAR A SIGN A346","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0686"},67207:{"value":"10687","name":"LINEAR A SIGN A347","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0687"},67208:{"value":"10688","name":"LINEAR A SIGN A348","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0688"},67209:{"value":"10689","name":"LINEAR A SIGN A349","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0689"},67210:{"value":"1068A","name":"LINEAR A SIGN A350","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068A"},67211:{"value":"1068B","name":"LINEAR A SIGN A351","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068B"},67212:{"value":"1068C","name":"LINEAR A SIGN A352","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068C"},67213:{"value":"1068D","name":"LINEAR A SIGN A353","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068D"},67214:{"value":"1068E","name":"LINEAR A SIGN A354","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068E"},67215:{"value":"1068F","name":"LINEAR A SIGN A355","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u068F"},67216:{"value":"10690","name":"LINEAR A SIGN A356","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0690"},67217:{"value":"10691","name":"LINEAR A SIGN A357","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0691"},67218:{"value":"10692","name":"LINEAR A SIGN A358","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0692"},67219:{"value":"10693","name":"LINEAR A SIGN A359","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0693"},67220:{"value":"10694","name":"LINEAR A SIGN A360","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0694"},67221:{"value":"10695","name":"LINEAR A SIGN A361","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0695"},67222:{"value":"10696","name":"LINEAR A SIGN A362","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0696"},67223:{"value":"10697","name":"LINEAR A SIGN A363","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0697"},67224:{"value":"10698","name":"LINEAR A SIGN A364","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0698"},67225:{"value":"10699","name":"LINEAR A SIGN A365","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0699"},67226:{"value":"1069A","name":"LINEAR A SIGN A366","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069A"},67227:{"value":"1069B","name":"LINEAR A SIGN A367","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069B"},67228:{"value":"1069C","name":"LINEAR A SIGN A368","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069C"},67229:{"value":"1069D","name":"LINEAR A SIGN A369","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069D"},67230:{"value":"1069E","name":"LINEAR A SIGN A370","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069E"},67231:{"value":"1069F","name":"LINEAR A SIGN A371","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u069F"},67232:{"value":"106A0","name":"LINEAR A SIGN A400-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A0"},67233:{"value":"106A1","name":"LINEAR A SIGN A401-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A1"},67234:{"value":"106A2","name":"LINEAR A SIGN A402-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A2"},67235:{"value":"106A3","name":"LINEAR A SIGN A403-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A3"},67236:{"value":"106A4","name":"LINEAR A SIGN A404-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A4"},67237:{"value":"106A5","name":"LINEAR A SIGN A405-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A5"},67238:{"value":"106A6","name":"LINEAR A SIGN A406-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A6"},67239:{"value":"106A7","name":"LINEAR A SIGN A407-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A7"},67240:{"value":"106A8","name":"LINEAR A SIGN A408-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A8"},67241:{"value":"106A9","name":"LINEAR A SIGN A409-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06A9"},67242:{"value":"106AA","name":"LINEAR A SIGN A410-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AA"},67243:{"value":"106AB","name":"LINEAR A SIGN A411-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AB"},67244:{"value":"106AC","name":"LINEAR A SIGN A412-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AC"},67245:{"value":"106AD","name":"LINEAR A SIGN A413-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AD"},67246:{"value":"106AE","name":"LINEAR A SIGN A414-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AE"},67247:{"value":"106AF","name":"LINEAR A SIGN A415-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06AF"},67248:{"value":"106B0","name":"LINEAR A SIGN A416-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B0"},67249:{"value":"106B1","name":"LINEAR A SIGN A417-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B1"},67250:{"value":"106B2","name":"LINEAR A SIGN A418-VAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B2"},67251:{"value":"106B3","name":"LINEAR A SIGN A501","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B3"},67252:{"value":"106B4","name":"LINEAR A SIGN A502","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B4"},67253:{"value":"106B5","name":"LINEAR A SIGN A503","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B5"},67254:{"value":"106B6","name":"LINEAR A SIGN A504","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B6"},67255:{"value":"106B7","name":"LINEAR A SIGN A505","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B7"},67256:{"value":"106B8","name":"LINEAR A SIGN A506","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B8"},67257:{"value":"106B9","name":"LINEAR A SIGN A508","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06B9"},67258:{"value":"106BA","name":"LINEAR A SIGN A509","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BA"},67259:{"value":"106BB","name":"LINEAR A SIGN A510","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BB"},67260:{"value":"106BC","name":"LINEAR A SIGN A511","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BC"},67261:{"value":"106BD","name":"LINEAR A SIGN A512","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BD"},67262:{"value":"106BE","name":"LINEAR A SIGN A513","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BE"},67263:{"value":"106BF","name":"LINEAR A SIGN A515","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06BF"},67264:{"value":"106C0","name":"LINEAR A SIGN A516","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C0"},67265:{"value":"106C1","name":"LINEAR A SIGN A520","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C1"},67266:{"value":"106C2","name":"LINEAR A SIGN A521","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C2"},67267:{"value":"106C3","name":"LINEAR A SIGN A523","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C3"},67268:{"value":"106C4","name":"LINEAR A SIGN A524","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C4"},67269:{"value":"106C5","name":"LINEAR A SIGN A525","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C5"},67270:{"value":"106C6","name":"LINEAR A SIGN A526","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C6"},67271:{"value":"106C7","name":"LINEAR A SIGN A527","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C7"},67272:{"value":"106C8","name":"LINEAR A SIGN A528","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C8"},67273:{"value":"106C9","name":"LINEAR A SIGN A529","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06C9"},67274:{"value":"106CA","name":"LINEAR A SIGN A530","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CA"},67275:{"value":"106CB","name":"LINEAR A SIGN A531","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CB"},67276:{"value":"106CC","name":"LINEAR A SIGN A532","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CC"},67277:{"value":"106CD","name":"LINEAR A SIGN A534","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CD"},67278:{"value":"106CE","name":"LINEAR A SIGN A535","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CE"},67279:{"value":"106CF","name":"LINEAR A SIGN A536","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06CF"},67280:{"value":"106D0","name":"LINEAR A SIGN A537","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D0"},67281:{"value":"106D1","name":"LINEAR A SIGN A538","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D1"},67282:{"value":"106D2","name":"LINEAR A SIGN A539","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D2"},67283:{"value":"106D3","name":"LINEAR A SIGN A540","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D3"},67284:{"value":"106D4","name":"LINEAR A SIGN A541","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D4"},67285:{"value":"106D5","name":"LINEAR A SIGN A542","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D5"},67286:{"value":"106D6","name":"LINEAR A SIGN A545","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D6"},67287:{"value":"106D7","name":"LINEAR A SIGN A547","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D7"},67288:{"value":"106D8","name":"LINEAR A SIGN A548","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D8"},67289:{"value":"106D9","name":"LINEAR A SIGN A549","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D9"},67290:{"value":"106DA","name":"LINEAR A SIGN A550","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06DA"},67291:{"value":"106DB","name":"LINEAR A SIGN A551","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06DB"},67292:{"value":"106DC","name":"LINEAR A SIGN A552","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06DC"},67293:{"value":"106DD","name":"LINEAR A SIGN A553","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06DD"},67294:{"value":"106DE","name":"LINEAR A SIGN A554","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06DE"},67295:{"value":"106DF","name":"LINEAR A SIGN A555","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06DF"},67296:{"value":"106E0","name":"LINEAR A SIGN A556","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E0"},67297:{"value":"106E1","name":"LINEAR A SIGN A557","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E1"},67298:{"value":"106E2","name":"LINEAR A SIGN A559","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E2"},67299:{"value":"106E3","name":"LINEAR A SIGN A563","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E3"},67300:{"value":"106E4","name":"LINEAR A SIGN A564","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E4"},67301:{"value":"106E5","name":"LINEAR A SIGN A565","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E5"},67302:{"value":"106E6","name":"LINEAR A SIGN A566","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E6"},67303:{"value":"106E7","name":"LINEAR A SIGN A568","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E7"},67304:{"value":"106E8","name":"LINEAR A SIGN A569","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E8"},67305:{"value":"106E9","name":"LINEAR A SIGN A570","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E9"},67306:{"value":"106EA","name":"LINEAR A SIGN A571","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06EA"},67307:{"value":"106EB","name":"LINEAR A SIGN A572","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06EB"},67308:{"value":"106EC","name":"LINEAR A SIGN A573","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06EC"},67309:{"value":"106ED","name":"LINEAR A SIGN A574","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06ED"},67310:{"value":"106EE","name":"LINEAR A SIGN A575","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06EE"},67311:{"value":"106EF","name":"LINEAR A SIGN A576","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06EF"},67312:{"value":"106F0","name":"LINEAR A SIGN A577","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F0"},67313:{"value":"106F1","name":"LINEAR A SIGN A578","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F1"},67314:{"value":"106F2","name":"LINEAR A SIGN A579","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F2"},67315:{"value":"106F3","name":"LINEAR A SIGN A580","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F3"},67316:{"value":"106F4","name":"LINEAR A SIGN A581","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F4"},67317:{"value":"106F5","name":"LINEAR A SIGN A582","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F5"},67318:{"value":"106F6","name":"LINEAR A SIGN A583","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F6"},67319:{"value":"106F7","name":"LINEAR A SIGN A584","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F7"},67320:{"value":"106F8","name":"LINEAR A SIGN A585","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F8"},67321:{"value":"106F9","name":"LINEAR A SIGN A586","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F9"},67322:{"value":"106FA","name":"LINEAR A SIGN A587","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06FA"},67323:{"value":"106FB","name":"LINEAR A SIGN A588","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06FB"},67324:{"value":"106FC","name":"LINEAR A SIGN A589","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06FC"},67325:{"value":"106FD","name":"LINEAR A SIGN A591","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06FD"},67326:{"value":"106FE","name":"LINEAR A SIGN A592","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06FE"},67327:{"value":"106FF","name":"LINEAR A SIGN A594","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06FF"},67328:{"value":"10700","name":"LINEAR A SIGN A595","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0700"},67329:{"value":"10701","name":"LINEAR A SIGN A596","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0701"},67330:{"value":"10702","name":"LINEAR A SIGN A598","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0702"},67331:{"value":"10703","name":"LINEAR A SIGN A600","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0703"},67332:{"value":"10704","name":"LINEAR A SIGN A601","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0704"},67333:{"value":"10705","name":"LINEAR A SIGN A602","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0705"},67334:{"value":"10706","name":"LINEAR A SIGN A603","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0706"},67335:{"value":"10707","name":"LINEAR A SIGN A604","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0707"},67336:{"value":"10708","name":"LINEAR A SIGN A606","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0708"},67337:{"value":"10709","name":"LINEAR A SIGN A608","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0709"},67338:{"value":"1070A","name":"LINEAR A SIGN A609","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u070A"},67339:{"value":"1070B","name":"LINEAR A SIGN A610","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u070B"},67340:{"value":"1070C","name":"LINEAR A SIGN A611","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u070C"},67341:{"value":"1070D","name":"LINEAR A SIGN A612","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u070D"},67342:{"value":"1070E","name":"LINEAR A SIGN A613","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u070E"},67343:{"value":"1070F","name":"LINEAR A SIGN A614","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u070F"},67344:{"value":"10710","name":"LINEAR A SIGN A615","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0710"},67345:{"value":"10711","name":"LINEAR A SIGN A616","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0711"},67346:{"value":"10712","name":"LINEAR A SIGN A617","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0712"},67347:{"value":"10713","name":"LINEAR A SIGN A618","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0713"},67348:{"value":"10714","name":"LINEAR A SIGN A619","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0714"},67349:{"value":"10715","name":"LINEAR A SIGN A620","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0715"},67350:{"value":"10716","name":"LINEAR A SIGN A621","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0716"},67351:{"value":"10717","name":"LINEAR A SIGN A622","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0717"},67352:{"value":"10718","name":"LINEAR A SIGN A623","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0718"},67353:{"value":"10719","name":"LINEAR A SIGN A624","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0719"},67354:{"value":"1071A","name":"LINEAR A SIGN A626","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071A"},67355:{"value":"1071B","name":"LINEAR A SIGN A627","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071B"},67356:{"value":"1071C","name":"LINEAR A SIGN A628","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071C"},67357:{"value":"1071D","name":"LINEAR A SIGN A629","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071D"},67358:{"value":"1071E","name":"LINEAR A SIGN A634","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071E"},67359:{"value":"1071F","name":"LINEAR A SIGN A637","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u071F"},67360:{"value":"10720","name":"LINEAR A SIGN A638","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0720"},67361:{"value":"10721","name":"LINEAR A SIGN A640","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0721"},67362:{"value":"10722","name":"LINEAR A SIGN A642","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0722"},67363:{"value":"10723","name":"LINEAR A SIGN A643","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0723"},67364:{"value":"10724","name":"LINEAR A SIGN A644","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0724"},67365:{"value":"10725","name":"LINEAR A SIGN A645","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0725"},67366:{"value":"10726","name":"LINEAR A SIGN A646","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0726"},67367:{"value":"10727","name":"LINEAR A SIGN A648","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0727"},67368:{"value":"10728","name":"LINEAR A SIGN A649","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0728"},67369:{"value":"10729","name":"LINEAR A SIGN A651","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0729"},67370:{"value":"1072A","name":"LINEAR A SIGN A652","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072A"},67371:{"value":"1072B","name":"LINEAR A SIGN A653","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072B"},67372:{"value":"1072C","name":"LINEAR A SIGN A654","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072C"},67373:{"value":"1072D","name":"LINEAR A SIGN A655","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072D"},67374:{"value":"1072E","name":"LINEAR A SIGN A656","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072E"},67375:{"value":"1072F","name":"LINEAR A SIGN A657","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u072F"},67376:{"value":"10730","name":"LINEAR A SIGN A658","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0730"},67377:{"value":"10731","name":"LINEAR A SIGN A659","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0731"},67378:{"value":"10732","name":"LINEAR A SIGN A660","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0732"},67379:{"value":"10733","name":"LINEAR A SIGN A661","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0733"},67380:{"value":"10734","name":"LINEAR A SIGN A662","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0734"},67381:{"value":"10735","name":"LINEAR A SIGN A663","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0735"},67382:{"value":"10736","name":"LINEAR A SIGN A664","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0736"},67392:{"value":"10740","name":"LINEAR A SIGN A701 A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0740"},67393:{"value":"10741","name":"LINEAR A SIGN A702 B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0741"},67394:{"value":"10742","name":"LINEAR A SIGN A703 D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0742"},67395:{"value":"10743","name":"LINEAR A SIGN A704 E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0743"},67396:{"value":"10744","name":"LINEAR A SIGN A705 F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0744"},67397:{"value":"10745","name":"LINEAR A SIGN A706 H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0745"},67398:{"value":"10746","name":"LINEAR A SIGN A707 J","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0746"},67399:{"value":"10747","name":"LINEAR A SIGN A708 K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0747"},67400:{"value":"10748","name":"LINEAR A SIGN A709 L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0748"},67401:{"value":"10749","name":"LINEAR A SIGN A709-2 L2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0749"},67402:{"value":"1074A","name":"LINEAR A SIGN A709-3 L3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u074A"},67403:{"value":"1074B","name":"LINEAR A SIGN A709-4 L4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u074B"},67404:{"value":"1074C","name":"LINEAR A SIGN A709-6 L6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u074C"},67405:{"value":"1074D","name":"LINEAR A SIGN A710 W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u074D"},67406:{"value":"1074E","name":"LINEAR A SIGN A711 X","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u074E"},67407:{"value":"1074F","name":"LINEAR A SIGN A712 Y","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u074F"},67408:{"value":"10750","name":"LINEAR A SIGN A713 OMEGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0750"},67409:{"value":"10751","name":"LINEAR A SIGN A714 ABB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0751"},67410:{"value":"10752","name":"LINEAR A SIGN A715 BB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0752"},67411:{"value":"10753","name":"LINEAR A SIGN A717 DD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0753"},67412:{"value":"10754","name":"LINEAR A SIGN A726 EYYY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0754"},67413:{"value":"10755","name":"LINEAR A SIGN A732 JE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0755"},67424:{"value":"10760","name":"LINEAR A SIGN A800","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0760"},67425:{"value":"10761","name":"LINEAR A SIGN A801","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0761"},67426:{"value":"10762","name":"LINEAR A SIGN A802","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0762"},67427:{"value":"10763","name":"LINEAR A SIGN A803","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0763"},67428:{"value":"10764","name":"LINEAR A SIGN A804","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0764"},67429:{"value":"10765","name":"LINEAR A SIGN A805","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0765"},67430:{"value":"10766","name":"LINEAR A SIGN A806","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0766"},67431:{"value":"10767","name":"LINEAR A SIGN A807","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0767"},67584:{"value":"10800","name":"CYPRIOT SYLLABLE A","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0800"},67585:{"value":"10801","name":"CYPRIOT SYLLABLE E","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0801"},67586:{"value":"10802","name":"CYPRIOT SYLLABLE I","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0802"},67587:{"value":"10803","name":"CYPRIOT SYLLABLE O","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0803"},67588:{"value":"10804","name":"CYPRIOT SYLLABLE U","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0804"},67589:{"value":"10805","name":"CYPRIOT SYLLABLE JA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0805"},67592:{"value":"10808","name":"CYPRIOT SYLLABLE JO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0808"},67594:{"value":"1080A","name":"CYPRIOT SYLLABLE KA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080A"},67595:{"value":"1080B","name":"CYPRIOT SYLLABLE KE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080B"},67596:{"value":"1080C","name":"CYPRIOT SYLLABLE KI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080C"},67597:{"value":"1080D","name":"CYPRIOT SYLLABLE KO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080D"},67598:{"value":"1080E","name":"CYPRIOT SYLLABLE KU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080E"},67599:{"value":"1080F","name":"CYPRIOT SYLLABLE LA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u080F"},67600:{"value":"10810","name":"CYPRIOT SYLLABLE LE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0810"},67601:{"value":"10811","name":"CYPRIOT SYLLABLE LI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0811"},67602:{"value":"10812","name":"CYPRIOT SYLLABLE LO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0812"},67603:{"value":"10813","name":"CYPRIOT SYLLABLE LU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0813"},67604:{"value":"10814","name":"CYPRIOT SYLLABLE MA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0814"},67605:{"value":"10815","name":"CYPRIOT SYLLABLE ME","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0815"},67606:{"value":"10816","name":"CYPRIOT SYLLABLE MI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0816"},67607:{"value":"10817","name":"CYPRIOT SYLLABLE MO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0817"},67608:{"value":"10818","name":"CYPRIOT SYLLABLE MU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0818"},67609:{"value":"10819","name":"CYPRIOT SYLLABLE NA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0819"},67610:{"value":"1081A","name":"CYPRIOT SYLLABLE NE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081A"},67611:{"value":"1081B","name":"CYPRIOT SYLLABLE NI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081B"},67612:{"value":"1081C","name":"CYPRIOT SYLLABLE NO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081C"},67613:{"value":"1081D","name":"CYPRIOT SYLLABLE NU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081D"},67614:{"value":"1081E","name":"CYPRIOT SYLLABLE PA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081E"},67615:{"value":"1081F","name":"CYPRIOT SYLLABLE PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081F"},67616:{"value":"10820","name":"CYPRIOT SYLLABLE PI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0820"},67617:{"value":"10821","name":"CYPRIOT SYLLABLE PO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0821"},67618:{"value":"10822","name":"CYPRIOT SYLLABLE PU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0822"},67619:{"value":"10823","name":"CYPRIOT SYLLABLE RA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0823"},67620:{"value":"10824","name":"CYPRIOT SYLLABLE RE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0824"},67621:{"value":"10825","name":"CYPRIOT SYLLABLE RI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0825"},67622:{"value":"10826","name":"CYPRIOT SYLLABLE RO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0826"},67623:{"value":"10827","name":"CYPRIOT SYLLABLE RU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0827"},67624:{"value":"10828","name":"CYPRIOT SYLLABLE SA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0828"},67625:{"value":"10829","name":"CYPRIOT SYLLABLE SE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0829"},67626:{"value":"1082A","name":"CYPRIOT SYLLABLE SI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u082A"},67627:{"value":"1082B","name":"CYPRIOT SYLLABLE SO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u082B"},67628:{"value":"1082C","name":"CYPRIOT SYLLABLE SU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u082C"},67629:{"value":"1082D","name":"CYPRIOT SYLLABLE TA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u082D"},67630:{"value":"1082E","name":"CYPRIOT SYLLABLE TE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u082E"},67631:{"value":"1082F","name":"CYPRIOT SYLLABLE TI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u082F"},67632:{"value":"10830","name":"CYPRIOT SYLLABLE TO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0830"},67633:{"value":"10831","name":"CYPRIOT SYLLABLE TU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0831"},67634:{"value":"10832","name":"CYPRIOT SYLLABLE WA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0832"},67635:{"value":"10833","name":"CYPRIOT SYLLABLE WE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0833"},67636:{"value":"10834","name":"CYPRIOT SYLLABLE WI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0834"},67637:{"value":"10835","name":"CYPRIOT SYLLABLE WO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0835"},67639:{"value":"10837","name":"CYPRIOT SYLLABLE XA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0837"},67640:{"value":"10838","name":"CYPRIOT SYLLABLE XE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0838"},67644:{"value":"1083C","name":"CYPRIOT SYLLABLE ZA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u083C"},67647:{"value":"1083F","name":"CYPRIOT SYLLABLE ZO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u083F"},67648:{"value":"10840","name":"IMPERIAL ARAMAIC LETTER ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0840"},67649:{"value":"10841","name":"IMPERIAL ARAMAIC LETTER BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0841"},67650:{"value":"10842","name":"IMPERIAL ARAMAIC LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0842"},67651:{"value":"10843","name":"IMPERIAL ARAMAIC LETTER DALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0843"},67652:{"value":"10844","name":"IMPERIAL ARAMAIC LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0844"},67653:{"value":"10845","name":"IMPERIAL ARAMAIC LETTER WAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0845"},67654:{"value":"10846","name":"IMPERIAL ARAMAIC LETTER ZAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0846"},67655:{"value":"10847","name":"IMPERIAL ARAMAIC LETTER HETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0847"},67656:{"value":"10848","name":"IMPERIAL ARAMAIC LETTER TETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0848"},67657:{"value":"10849","name":"IMPERIAL ARAMAIC LETTER YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0849"},67658:{"value":"1084A","name":"IMPERIAL ARAMAIC LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084A"},67659:{"value":"1084B","name":"IMPERIAL ARAMAIC LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084B"},67660:{"value":"1084C","name":"IMPERIAL ARAMAIC LETTER MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084C"},67661:{"value":"1084D","name":"IMPERIAL ARAMAIC LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084D"},67662:{"value":"1084E","name":"IMPERIAL ARAMAIC LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084E"},67663:{"value":"1084F","name":"IMPERIAL ARAMAIC LETTER AYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u084F"},67664:{"value":"10850","name":"IMPERIAL ARAMAIC LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0850"},67665:{"value":"10851","name":"IMPERIAL ARAMAIC LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0851"},67666:{"value":"10852","name":"IMPERIAL ARAMAIC LETTER QOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0852"},67667:{"value":"10853","name":"IMPERIAL ARAMAIC LETTER RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0853"},67668:{"value":"10854","name":"IMPERIAL ARAMAIC LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0854"},67669:{"value":"10855","name":"IMPERIAL ARAMAIC LETTER TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0855"},67680:{"value":"10860","name":"PALMYRENE LETTER ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0860"},67681:{"value":"10861","name":"PALMYRENE LETTER BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0861"},67682:{"value":"10862","name":"PALMYRENE LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0862"},67683:{"value":"10863","name":"PALMYRENE LETTER DALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0863"},67684:{"value":"10864","name":"PALMYRENE LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0864"},67685:{"value":"10865","name":"PALMYRENE LETTER WAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0865"},67686:{"value":"10866","name":"PALMYRENE LETTER ZAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0866"},67687:{"value":"10867","name":"PALMYRENE LETTER HETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0867"},67688:{"value":"10868","name":"PALMYRENE LETTER TETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0868"},67689:{"value":"10869","name":"PALMYRENE LETTER YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0869"},67690:{"value":"1086A","name":"PALMYRENE LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u086A"},67691:{"value":"1086B","name":"PALMYRENE LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u086B"},67692:{"value":"1086C","name":"PALMYRENE LETTER MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u086C"},67693:{"value":"1086D","name":"PALMYRENE LETTER FINAL NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u086D"},67694:{"value":"1086E","name":"PALMYRENE LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u086E"},67695:{"value":"1086F","name":"PALMYRENE LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u086F"},67696:{"value":"10870","name":"PALMYRENE LETTER AYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0870"},67697:{"value":"10871","name":"PALMYRENE LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0871"},67698:{"value":"10872","name":"PALMYRENE LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0872"},67699:{"value":"10873","name":"PALMYRENE LETTER QOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0873"},67700:{"value":"10874","name":"PALMYRENE LETTER RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0874"},67701:{"value":"10875","name":"PALMYRENE LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0875"},67702:{"value":"10876","name":"PALMYRENE LETTER TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0876"},67712:{"value":"10880","name":"NABATAEAN LETTER FINAL ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0880"},67713:{"value":"10881","name":"NABATAEAN LETTER ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0881"},67714:{"value":"10882","name":"NABATAEAN LETTER FINAL BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0882"},67715:{"value":"10883","name":"NABATAEAN LETTER BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0883"},67716:{"value":"10884","name":"NABATAEAN LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0884"},67717:{"value":"10885","name":"NABATAEAN LETTER DALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0885"},67718:{"value":"10886","name":"NABATAEAN LETTER FINAL HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0886"},67719:{"value":"10887","name":"NABATAEAN LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0887"},67720:{"value":"10888","name":"NABATAEAN LETTER WAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0888"},67721:{"value":"10889","name":"NABATAEAN LETTER ZAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0889"},67722:{"value":"1088A","name":"NABATAEAN LETTER HETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u088A"},67723:{"value":"1088B","name":"NABATAEAN LETTER TETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u088B"},67724:{"value":"1088C","name":"NABATAEAN LETTER FINAL YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u088C"},67725:{"value":"1088D","name":"NABATAEAN LETTER YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u088D"},67726:{"value":"1088E","name":"NABATAEAN LETTER FINAL KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u088E"},67727:{"value":"1088F","name":"NABATAEAN LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u088F"},67728:{"value":"10890","name":"NABATAEAN LETTER FINAL LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0890"},67729:{"value":"10891","name":"NABATAEAN LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0891"},67730:{"value":"10892","name":"NABATAEAN LETTER FINAL MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0892"},67731:{"value":"10893","name":"NABATAEAN LETTER MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0893"},67732:{"value":"10894","name":"NABATAEAN LETTER FINAL NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0894"},67733:{"value":"10895","name":"NABATAEAN LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0895"},67734:{"value":"10896","name":"NABATAEAN LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0896"},67735:{"value":"10897","name":"NABATAEAN LETTER AYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0897"},67736:{"value":"10898","name":"NABATAEAN LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0898"},67737:{"value":"10899","name":"NABATAEAN LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0899"},67738:{"value":"1089A","name":"NABATAEAN LETTER QOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u089A"},67739:{"value":"1089B","name":"NABATAEAN LETTER RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u089B"},67740:{"value":"1089C","name":"NABATAEAN LETTER FINAL SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u089C"},67741:{"value":"1089D","name":"NABATAEAN LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u089D"},67742:{"value":"1089E","name":"NABATAEAN LETTER TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u089E"},67808:{"value":"108E0","name":"HATRAN LETTER ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E0"},67809:{"value":"108E1","name":"HATRAN LETTER BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E1"},67810:{"value":"108E2","name":"HATRAN LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E2"},67811:{"value":"108E3","name":"HATRAN LETTER DALETH-RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E3"},67812:{"value":"108E4","name":"HATRAN LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E4"},67813:{"value":"108E5","name":"HATRAN LETTER WAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E5"},67814:{"value":"108E6","name":"HATRAN LETTER ZAYN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E6"},67815:{"value":"108E7","name":"HATRAN LETTER HETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E7"},67816:{"value":"108E8","name":"HATRAN LETTER TETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E8"},67817:{"value":"108E9","name":"HATRAN LETTER YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E9"},67818:{"value":"108EA","name":"HATRAN LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08EA"},67819:{"value":"108EB","name":"HATRAN LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08EB"},67820:{"value":"108EC","name":"HATRAN LETTER MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08EC"},67821:{"value":"108ED","name":"HATRAN LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08ED"},67822:{"value":"108EE","name":"HATRAN LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08EE"},67823:{"value":"108EF","name":"HATRAN LETTER AYN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08EF"},67824:{"value":"108F0","name":"HATRAN LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F0"},67825:{"value":"108F1","name":"HATRAN LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F1"},67826:{"value":"108F2","name":"HATRAN LETTER QOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F2"},67828:{"value":"108F4","name":"HATRAN LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F4"},67829:{"value":"108F5","name":"HATRAN LETTER TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F5"},67840:{"value":"10900","name":"PHOENICIAN LETTER ALF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0900"},67841:{"value":"10901","name":"PHOENICIAN LETTER BET","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0901"},67842:{"value":"10902","name":"PHOENICIAN LETTER GAML","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0902"},67843:{"value":"10903","name":"PHOENICIAN LETTER DELT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0903"},67844:{"value":"10904","name":"PHOENICIAN LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0904"},67845:{"value":"10905","name":"PHOENICIAN LETTER WAU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0905"},67846:{"value":"10906","name":"PHOENICIAN LETTER ZAI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0906"},67847:{"value":"10907","name":"PHOENICIAN LETTER HET","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0907"},67848:{"value":"10908","name":"PHOENICIAN LETTER TET","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0908"},67849:{"value":"10909","name":"PHOENICIAN LETTER YOD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0909"},67850:{"value":"1090A","name":"PHOENICIAN LETTER KAF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090A"},67851:{"value":"1090B","name":"PHOENICIAN LETTER LAMD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090B"},67852:{"value":"1090C","name":"PHOENICIAN LETTER MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090C"},67853:{"value":"1090D","name":"PHOENICIAN LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090D"},67854:{"value":"1090E","name":"PHOENICIAN LETTER SEMK","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090E"},67855:{"value":"1090F","name":"PHOENICIAN LETTER AIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u090F"},67856:{"value":"10910","name":"PHOENICIAN LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0910"},67857:{"value":"10911","name":"PHOENICIAN LETTER SADE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0911"},67858:{"value":"10912","name":"PHOENICIAN LETTER QOF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0912"},67859:{"value":"10913","name":"PHOENICIAN LETTER ROSH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0913"},67860:{"value":"10914","name":"PHOENICIAN LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0914"},67861:{"value":"10915","name":"PHOENICIAN LETTER TAU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0915"},67872:{"value":"10920","name":"LYDIAN LETTER A","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0920"},67873:{"value":"10921","name":"LYDIAN LETTER B","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0921"},67874:{"value":"10922","name":"LYDIAN LETTER G","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0922"},67875:{"value":"10923","name":"LYDIAN LETTER D","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0923"},67876:{"value":"10924","name":"LYDIAN LETTER E","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0924"},67877:{"value":"10925","name":"LYDIAN LETTER V","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0925"},67878:{"value":"10926","name":"LYDIAN LETTER I","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0926"},67879:{"value":"10927","name":"LYDIAN LETTER Y","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0927"},67880:{"value":"10928","name":"LYDIAN LETTER K","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0928"},67881:{"value":"10929","name":"LYDIAN LETTER L","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0929"},67882:{"value":"1092A","name":"LYDIAN LETTER M","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092A"},67883:{"value":"1092B","name":"LYDIAN LETTER N","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092B"},67884:{"value":"1092C","name":"LYDIAN LETTER O","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092C"},67885:{"value":"1092D","name":"LYDIAN LETTER R","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092D"},67886:{"value":"1092E","name":"LYDIAN LETTER SS","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092E"},67887:{"value":"1092F","name":"LYDIAN LETTER T","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u092F"},67888:{"value":"10930","name":"LYDIAN LETTER U","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0930"},67889:{"value":"10931","name":"LYDIAN LETTER F","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0931"},67890:{"value":"10932","name":"LYDIAN LETTER Q","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0932"},67891:{"value":"10933","name":"LYDIAN LETTER S","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0933"},67892:{"value":"10934","name":"LYDIAN LETTER TT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0934"},67893:{"value":"10935","name":"LYDIAN LETTER AN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0935"},67894:{"value":"10936","name":"LYDIAN LETTER EN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0936"},67895:{"value":"10937","name":"LYDIAN LETTER LY","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0937"},67896:{"value":"10938","name":"LYDIAN LETTER NN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0938"},67897:{"value":"10939","name":"LYDIAN LETTER C","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0939"},67968:{"value":"10980","name":"MEROITIC HIEROGLYPHIC LETTER A","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0980"},67969:{"value":"10981","name":"MEROITIC HIEROGLYPHIC LETTER E","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0981"},67970:{"value":"10982","name":"MEROITIC HIEROGLYPHIC LETTER I","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0982"},67971:{"value":"10983","name":"MEROITIC HIEROGLYPHIC LETTER O","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0983"},67972:{"value":"10984","name":"MEROITIC HIEROGLYPHIC LETTER YA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0984"},67973:{"value":"10985","name":"MEROITIC HIEROGLYPHIC LETTER WA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0985"},67974:{"value":"10986","name":"MEROITIC HIEROGLYPHIC LETTER BA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0986"},67975:{"value":"10987","name":"MEROITIC HIEROGLYPHIC LETTER BA-2","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0987"},67976:{"value":"10988","name":"MEROITIC HIEROGLYPHIC LETTER PA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0988"},67977:{"value":"10989","name":"MEROITIC HIEROGLYPHIC LETTER MA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0989"},67978:{"value":"1098A","name":"MEROITIC HIEROGLYPHIC LETTER NA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u098A"},67979:{"value":"1098B","name":"MEROITIC HIEROGLYPHIC LETTER NA-2","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u098B"},67980:{"value":"1098C","name":"MEROITIC HIEROGLYPHIC LETTER NE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u098C"},67981:{"value":"1098D","name":"MEROITIC HIEROGLYPHIC LETTER NE-2","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u098D"},67982:{"value":"1098E","name":"MEROITIC HIEROGLYPHIC LETTER RA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u098E"},67983:{"value":"1098F","name":"MEROITIC HIEROGLYPHIC LETTER RA-2","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u098F"},67984:{"value":"10990","name":"MEROITIC HIEROGLYPHIC LETTER LA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0990"},67985:{"value":"10991","name":"MEROITIC HIEROGLYPHIC LETTER KHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0991"},67986:{"value":"10992","name":"MEROITIC HIEROGLYPHIC LETTER HHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0992"},67987:{"value":"10993","name":"MEROITIC HIEROGLYPHIC LETTER SA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0993"},67988:{"value":"10994","name":"MEROITIC HIEROGLYPHIC LETTER SA-2","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0994"},67989:{"value":"10995","name":"MEROITIC HIEROGLYPHIC LETTER SE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0995"},67990:{"value":"10996","name":"MEROITIC HIEROGLYPHIC LETTER KA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0996"},67991:{"value":"10997","name":"MEROITIC HIEROGLYPHIC LETTER QA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0997"},67992:{"value":"10998","name":"MEROITIC HIEROGLYPHIC LETTER TA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0998"},67993:{"value":"10999","name":"MEROITIC HIEROGLYPHIC LETTER TA-2","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0999"},67994:{"value":"1099A","name":"MEROITIC HIEROGLYPHIC LETTER TE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099A"},67995:{"value":"1099B","name":"MEROITIC HIEROGLYPHIC LETTER TE-2","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099B"},67996:{"value":"1099C","name":"MEROITIC HIEROGLYPHIC LETTER TO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099C"},67997:{"value":"1099D","name":"MEROITIC HIEROGLYPHIC LETTER DA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099D"},67998:{"value":"1099E","name":"MEROITIC HIEROGLYPHIC SYMBOL VIDJ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099E"},67999:{"value":"1099F","name":"MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u099F"},68000:{"value":"109A0","name":"MEROITIC CURSIVE LETTER A","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A0"},68001:{"value":"109A1","name":"MEROITIC CURSIVE LETTER E","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A1"},68002:{"value":"109A2","name":"MEROITIC CURSIVE LETTER I","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A2"},68003:{"value":"109A3","name":"MEROITIC CURSIVE LETTER O","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A3"},68004:{"value":"109A4","name":"MEROITIC CURSIVE LETTER YA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A4"},68005:{"value":"109A5","name":"MEROITIC CURSIVE LETTER WA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A5"},68006:{"value":"109A6","name":"MEROITIC CURSIVE LETTER BA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A6"},68007:{"value":"109A7","name":"MEROITIC CURSIVE LETTER PA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A7"},68008:{"value":"109A8","name":"MEROITIC CURSIVE LETTER MA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A8"},68009:{"value":"109A9","name":"MEROITIC CURSIVE LETTER NA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09A9"},68010:{"value":"109AA","name":"MEROITIC CURSIVE LETTER NE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AA"},68011:{"value":"109AB","name":"MEROITIC CURSIVE LETTER RA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AB"},68012:{"value":"109AC","name":"MEROITIC CURSIVE LETTER LA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AC"},68013:{"value":"109AD","name":"MEROITIC CURSIVE LETTER KHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AD"},68014:{"value":"109AE","name":"MEROITIC CURSIVE LETTER HHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AE"},68015:{"value":"109AF","name":"MEROITIC CURSIVE LETTER SA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09AF"},68016:{"value":"109B0","name":"MEROITIC CURSIVE LETTER ARCHAIC SA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B0"},68017:{"value":"109B1","name":"MEROITIC CURSIVE LETTER SE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B1"},68018:{"value":"109B2","name":"MEROITIC CURSIVE LETTER KA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B2"},68019:{"value":"109B3","name":"MEROITIC CURSIVE LETTER QA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B3"},68020:{"value":"109B4","name":"MEROITIC CURSIVE LETTER TA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B4"},68021:{"value":"109B5","name":"MEROITIC CURSIVE LETTER TE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B5"},68022:{"value":"109B6","name":"MEROITIC CURSIVE LETTER TO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B6"},68023:{"value":"109B7","name":"MEROITIC CURSIVE LETTER DA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09B7"},68030:{"value":"109BE","name":"MEROITIC CURSIVE LOGOGRAM RMT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09BE"},68031:{"value":"109BF","name":"MEROITIC CURSIVE LOGOGRAM IMN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09BF"},68096:{"value":"10A00","name":"KHAROSHTHI LETTER A","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A00"},68112:{"value":"10A10","name":"KHAROSHTHI LETTER KA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A10"},68113:{"value":"10A11","name":"KHAROSHTHI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A11"},68114:{"value":"10A12","name":"KHAROSHTHI LETTER GA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A12"},68115:{"value":"10A13","name":"KHAROSHTHI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A13"},68117:{"value":"10A15","name":"KHAROSHTHI LETTER CA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A15"},68118:{"value":"10A16","name":"KHAROSHTHI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A16"},68119:{"value":"10A17","name":"KHAROSHTHI LETTER JA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A17"},68121:{"value":"10A19","name":"KHAROSHTHI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A19"},68122:{"value":"10A1A","name":"KHAROSHTHI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1A"},68123:{"value":"10A1B","name":"KHAROSHTHI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1B"},68124:{"value":"10A1C","name":"KHAROSHTHI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1C"},68125:{"value":"10A1D","name":"KHAROSHTHI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1D"},68126:{"value":"10A1E","name":"KHAROSHTHI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1E"},68127:{"value":"10A1F","name":"KHAROSHTHI LETTER TA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A1F"},68128:{"value":"10A20","name":"KHAROSHTHI LETTER THA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A20"},68129:{"value":"10A21","name":"KHAROSHTHI LETTER DA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A21"},68130:{"value":"10A22","name":"KHAROSHTHI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A22"},68131:{"value":"10A23","name":"KHAROSHTHI LETTER NA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A23"},68132:{"value":"10A24","name":"KHAROSHTHI LETTER PA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A24"},68133:{"value":"10A25","name":"KHAROSHTHI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A25"},68134:{"value":"10A26","name":"KHAROSHTHI LETTER BA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A26"},68135:{"value":"10A27","name":"KHAROSHTHI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A27"},68136:{"value":"10A28","name":"KHAROSHTHI LETTER MA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A28"},68137:{"value":"10A29","name":"KHAROSHTHI LETTER YA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A29"},68138:{"value":"10A2A","name":"KHAROSHTHI LETTER RA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2A"},68139:{"value":"10A2B","name":"KHAROSHTHI LETTER LA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2B"},68140:{"value":"10A2C","name":"KHAROSHTHI LETTER VA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2C"},68141:{"value":"10A2D","name":"KHAROSHTHI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2D"},68142:{"value":"10A2E","name":"KHAROSHTHI LETTER SSA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2E"},68143:{"value":"10A2F","name":"KHAROSHTHI LETTER SA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A2F"},68144:{"value":"10A30","name":"KHAROSHTHI LETTER ZA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A30"},68145:{"value":"10A31","name":"KHAROSHTHI LETTER HA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A31"},68146:{"value":"10A32","name":"KHAROSHTHI LETTER KKA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A32"},68147:{"value":"10A33","name":"KHAROSHTHI LETTER TTTHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A33"},68148:{"value":"10A34","name":"KHAROSHTHI LETTER TTTA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A34"},68149:{"value":"10A35","name":"KHAROSHTHI LETTER VHA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A35"},68192:{"value":"10A60","name":"OLD SOUTH ARABIAN LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A60"},68193:{"value":"10A61","name":"OLD SOUTH ARABIAN LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A61"},68194:{"value":"10A62","name":"OLD SOUTH ARABIAN LETTER HETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A62"},68195:{"value":"10A63","name":"OLD SOUTH ARABIAN LETTER MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A63"},68196:{"value":"10A64","name":"OLD SOUTH ARABIAN LETTER QOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A64"},68197:{"value":"10A65","name":"OLD SOUTH ARABIAN LETTER WAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A65"},68198:{"value":"10A66","name":"OLD SOUTH ARABIAN LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A66"},68199:{"value":"10A67","name":"OLD SOUTH ARABIAN LETTER RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A67"},68200:{"value":"10A68","name":"OLD SOUTH ARABIAN LETTER BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A68"},68201:{"value":"10A69","name":"OLD SOUTH ARABIAN LETTER TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A69"},68202:{"value":"10A6A","name":"OLD SOUTH ARABIAN LETTER SAT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6A"},68203:{"value":"10A6B","name":"OLD SOUTH ARABIAN LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6B"},68204:{"value":"10A6C","name":"OLD SOUTH ARABIAN LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6C"},68205:{"value":"10A6D","name":"OLD SOUTH ARABIAN LETTER KHETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6D"},68206:{"value":"10A6E","name":"OLD SOUTH ARABIAN LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6E"},68207:{"value":"10A6F","name":"OLD SOUTH ARABIAN LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6F"},68208:{"value":"10A70","name":"OLD SOUTH ARABIAN LETTER FE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A70"},68209:{"value":"10A71","name":"OLD SOUTH ARABIAN LETTER ALEF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A71"},68210:{"value":"10A72","name":"OLD SOUTH ARABIAN LETTER AYN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A72"},68211:{"value":"10A73","name":"OLD SOUTH ARABIAN LETTER DHADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A73"},68212:{"value":"10A74","name":"OLD SOUTH ARABIAN LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A74"},68213:{"value":"10A75","name":"OLD SOUTH ARABIAN LETTER DALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A75"},68214:{"value":"10A76","name":"OLD SOUTH ARABIAN LETTER GHAYN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A76"},68215:{"value":"10A77","name":"OLD SOUTH ARABIAN LETTER TETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A77"},68216:{"value":"10A78","name":"OLD SOUTH ARABIAN LETTER ZAYN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A78"},68217:{"value":"10A79","name":"OLD SOUTH ARABIAN LETTER DHALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A79"},68218:{"value":"10A7A","name":"OLD SOUTH ARABIAN LETTER YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A7A"},68219:{"value":"10A7B","name":"OLD SOUTH ARABIAN LETTER THAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A7B"},68220:{"value":"10A7C","name":"OLD SOUTH ARABIAN LETTER THETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A7C"},68224:{"value":"10A80","name":"OLD NORTH ARABIAN LETTER HEH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A80"},68225:{"value":"10A81","name":"OLD NORTH ARABIAN LETTER LAM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A81"},68226:{"value":"10A82","name":"OLD NORTH ARABIAN LETTER HAH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A82"},68227:{"value":"10A83","name":"OLD NORTH ARABIAN LETTER MEEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A83"},68228:{"value":"10A84","name":"OLD NORTH ARABIAN LETTER QAF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A84"},68229:{"value":"10A85","name":"OLD NORTH ARABIAN LETTER WAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A85"},68230:{"value":"10A86","name":"OLD NORTH ARABIAN LETTER ES-2","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A86"},68231:{"value":"10A87","name":"OLD NORTH ARABIAN LETTER REH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A87"},68232:{"value":"10A88","name":"OLD NORTH ARABIAN LETTER BEH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A88"},68233:{"value":"10A89","name":"OLD NORTH ARABIAN LETTER TEH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A89"},68234:{"value":"10A8A","name":"OLD NORTH ARABIAN LETTER ES-1","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8A"},68235:{"value":"10A8B","name":"OLD NORTH ARABIAN LETTER KAF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8B"},68236:{"value":"10A8C","name":"OLD NORTH ARABIAN LETTER NOON","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8C"},68237:{"value":"10A8D","name":"OLD NORTH ARABIAN LETTER KHAH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8D"},68238:{"value":"10A8E","name":"OLD NORTH ARABIAN LETTER SAD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8E"},68239:{"value":"10A8F","name":"OLD NORTH ARABIAN LETTER ES-3","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A8F"},68240:{"value":"10A90","name":"OLD NORTH ARABIAN LETTER FEH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A90"},68241:{"value":"10A91","name":"OLD NORTH ARABIAN LETTER ALEF","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A91"},68242:{"value":"10A92","name":"OLD NORTH ARABIAN LETTER AIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A92"},68243:{"value":"10A93","name":"OLD NORTH ARABIAN LETTER DAD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A93"},68244:{"value":"10A94","name":"OLD NORTH ARABIAN LETTER GEEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A94"},68245:{"value":"10A95","name":"OLD NORTH ARABIAN LETTER DAL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A95"},68246:{"value":"10A96","name":"OLD NORTH ARABIAN LETTER GHAIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A96"},68247:{"value":"10A97","name":"OLD NORTH ARABIAN LETTER TAH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A97"},68248:{"value":"10A98","name":"OLD NORTH ARABIAN LETTER ZAIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A98"},68249:{"value":"10A99","name":"OLD NORTH ARABIAN LETTER THAL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A99"},68250:{"value":"10A9A","name":"OLD NORTH ARABIAN LETTER YEH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A9A"},68251:{"value":"10A9B","name":"OLD NORTH ARABIAN LETTER THEH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A9B"},68252:{"value":"10A9C","name":"OLD NORTH ARABIAN LETTER ZAH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A9C"},68288:{"value":"10AC0","name":"MANICHAEAN LETTER ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC0"},68289:{"value":"10AC1","name":"MANICHAEAN LETTER BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC1"},68290:{"value":"10AC2","name":"MANICHAEAN LETTER BHETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC2"},68291:{"value":"10AC3","name":"MANICHAEAN LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC3"},68292:{"value":"10AC4","name":"MANICHAEAN LETTER GHIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC4"},68293:{"value":"10AC5","name":"MANICHAEAN LETTER DALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC5"},68294:{"value":"10AC6","name":"MANICHAEAN LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC6"},68295:{"value":"10AC7","name":"MANICHAEAN LETTER WAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC7"},68297:{"value":"10AC9","name":"MANICHAEAN LETTER ZAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC9"},68298:{"value":"10ACA","name":"MANICHAEAN LETTER ZHAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ACA"},68299:{"value":"10ACB","name":"MANICHAEAN LETTER JAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ACB"},68300:{"value":"10ACC","name":"MANICHAEAN LETTER JHAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ACC"},68301:{"value":"10ACD","name":"MANICHAEAN LETTER HETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ACD"},68302:{"value":"10ACE","name":"MANICHAEAN LETTER TETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ACE"},68303:{"value":"10ACF","name":"MANICHAEAN LETTER YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ACF"},68304:{"value":"10AD0","name":"MANICHAEAN LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD0"},68305:{"value":"10AD1","name":"MANICHAEAN LETTER XAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD1"},68306:{"value":"10AD2","name":"MANICHAEAN LETTER KHAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD2"},68307:{"value":"10AD3","name":"MANICHAEAN LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD3"},68308:{"value":"10AD4","name":"MANICHAEAN LETTER DHAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD4"},68309:{"value":"10AD5","name":"MANICHAEAN LETTER THAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD5"},68310:{"value":"10AD6","name":"MANICHAEAN LETTER MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD6"},68311:{"value":"10AD7","name":"MANICHAEAN LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD7"},68312:{"value":"10AD8","name":"MANICHAEAN LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD8"},68313:{"value":"10AD9","name":"MANICHAEAN LETTER AYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AD9"},68314:{"value":"10ADA","name":"MANICHAEAN LETTER AAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ADA"},68315:{"value":"10ADB","name":"MANICHAEAN LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ADB"},68316:{"value":"10ADC","name":"MANICHAEAN LETTER FE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ADC"},68317:{"value":"10ADD","name":"MANICHAEAN LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ADD"},68318:{"value":"10ADE","name":"MANICHAEAN LETTER QOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ADE"},68319:{"value":"10ADF","name":"MANICHAEAN LETTER XOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ADF"},68320:{"value":"10AE0","name":"MANICHAEAN LETTER QHOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE0"},68321:{"value":"10AE1","name":"MANICHAEAN LETTER RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE1"},68322:{"value":"10AE2","name":"MANICHAEAN LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE2"},68323:{"value":"10AE3","name":"MANICHAEAN LETTER SSHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE3"},68324:{"value":"10AE4","name":"MANICHAEAN LETTER TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE4"},68352:{"value":"10B00","name":"AVESTAN LETTER A","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B00"},68353:{"value":"10B01","name":"AVESTAN LETTER AA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B01"},68354:{"value":"10B02","name":"AVESTAN LETTER AO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B02"},68355:{"value":"10B03","name":"AVESTAN LETTER AAO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B03"},68356:{"value":"10B04","name":"AVESTAN LETTER AN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B04"},68357:{"value":"10B05","name":"AVESTAN LETTER AAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B05"},68358:{"value":"10B06","name":"AVESTAN LETTER AE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B06"},68359:{"value":"10B07","name":"AVESTAN LETTER AEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B07"},68360:{"value":"10B08","name":"AVESTAN LETTER E","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B08"},68361:{"value":"10B09","name":"AVESTAN LETTER EE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B09"},68362:{"value":"10B0A","name":"AVESTAN LETTER O","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B0A"},68363:{"value":"10B0B","name":"AVESTAN LETTER OO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B0B"},68364:{"value":"10B0C","name":"AVESTAN LETTER I","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B0C"},68365:{"value":"10B0D","name":"AVESTAN LETTER II","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B0D"},68366:{"value":"10B0E","name":"AVESTAN LETTER U","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B0E"},68367:{"value":"10B0F","name":"AVESTAN LETTER UU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B0F"},68368:{"value":"10B10","name":"AVESTAN LETTER KE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B10"},68369:{"value":"10B11","name":"AVESTAN LETTER XE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B11"},68370:{"value":"10B12","name":"AVESTAN LETTER XYE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B12"},68371:{"value":"10B13","name":"AVESTAN LETTER XVE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B13"},68372:{"value":"10B14","name":"AVESTAN LETTER GE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B14"},68373:{"value":"10B15","name":"AVESTAN LETTER GGE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B15"},68374:{"value":"10B16","name":"AVESTAN LETTER GHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B16"},68375:{"value":"10B17","name":"AVESTAN LETTER CE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B17"},68376:{"value":"10B18","name":"AVESTAN LETTER JE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B18"},68377:{"value":"10B19","name":"AVESTAN LETTER TE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B19"},68378:{"value":"10B1A","name":"AVESTAN LETTER THE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1A"},68379:{"value":"10B1B","name":"AVESTAN LETTER DE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1B"},68380:{"value":"10B1C","name":"AVESTAN LETTER DHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1C"},68381:{"value":"10B1D","name":"AVESTAN LETTER TTE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1D"},68382:{"value":"10B1E","name":"AVESTAN LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1E"},68383:{"value":"10B1F","name":"AVESTAN LETTER FE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B1F"},68384:{"value":"10B20","name":"AVESTAN LETTER BE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B20"},68385:{"value":"10B21","name":"AVESTAN LETTER BHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B21"},68386:{"value":"10B22","name":"AVESTAN LETTER NGE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B22"},68387:{"value":"10B23","name":"AVESTAN LETTER NGYE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B23"},68388:{"value":"10B24","name":"AVESTAN LETTER NGVE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B24"},68389:{"value":"10B25","name":"AVESTAN LETTER NE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B25"},68390:{"value":"10B26","name":"AVESTAN LETTER NYE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B26"},68391:{"value":"10B27","name":"AVESTAN LETTER NNE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B27"},68392:{"value":"10B28","name":"AVESTAN LETTER ME","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B28"},68393:{"value":"10B29","name":"AVESTAN LETTER HME","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B29"},68394:{"value":"10B2A","name":"AVESTAN LETTER YYE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2A"},68395:{"value":"10B2B","name":"AVESTAN LETTER YE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2B"},68396:{"value":"10B2C","name":"AVESTAN LETTER VE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2C"},68397:{"value":"10B2D","name":"AVESTAN LETTER RE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2D"},68398:{"value":"10B2E","name":"AVESTAN LETTER LE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2E"},68399:{"value":"10B2F","name":"AVESTAN LETTER SE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B2F"},68400:{"value":"10B30","name":"AVESTAN LETTER ZE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B30"},68401:{"value":"10B31","name":"AVESTAN LETTER SHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B31"},68402:{"value":"10B32","name":"AVESTAN LETTER ZHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B32"},68403:{"value":"10B33","name":"AVESTAN LETTER SHYE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B33"},68404:{"value":"10B34","name":"AVESTAN LETTER SSHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B34"},68405:{"value":"10B35","name":"AVESTAN LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B35"},68416:{"value":"10B40","name":"INSCRIPTIONAL PARTHIAN LETTER ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B40"},68417:{"value":"10B41","name":"INSCRIPTIONAL PARTHIAN LETTER BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B41"},68418:{"value":"10B42","name":"INSCRIPTIONAL PARTHIAN LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B42"},68419:{"value":"10B43","name":"INSCRIPTIONAL PARTHIAN LETTER DALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B43"},68420:{"value":"10B44","name":"INSCRIPTIONAL PARTHIAN LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B44"},68421:{"value":"10B45","name":"INSCRIPTIONAL PARTHIAN LETTER WAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B45"},68422:{"value":"10B46","name":"INSCRIPTIONAL PARTHIAN LETTER ZAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B46"},68423:{"value":"10B47","name":"INSCRIPTIONAL PARTHIAN LETTER HETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B47"},68424:{"value":"10B48","name":"INSCRIPTIONAL PARTHIAN LETTER TETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B48"},68425:{"value":"10B49","name":"INSCRIPTIONAL PARTHIAN LETTER YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B49"},68426:{"value":"10B4A","name":"INSCRIPTIONAL PARTHIAN LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B4A"},68427:{"value":"10B4B","name":"INSCRIPTIONAL PARTHIAN LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B4B"},68428:{"value":"10B4C","name":"INSCRIPTIONAL PARTHIAN LETTER MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B4C"},68429:{"value":"10B4D","name":"INSCRIPTIONAL PARTHIAN LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B4D"},68430:{"value":"10B4E","name":"INSCRIPTIONAL PARTHIAN LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B4E"},68431:{"value":"10B4F","name":"INSCRIPTIONAL PARTHIAN LETTER AYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B4F"},68432:{"value":"10B50","name":"INSCRIPTIONAL PARTHIAN LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B50"},68433:{"value":"10B51","name":"INSCRIPTIONAL PARTHIAN LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B51"},68434:{"value":"10B52","name":"INSCRIPTIONAL PARTHIAN LETTER QOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B52"},68435:{"value":"10B53","name":"INSCRIPTIONAL PARTHIAN LETTER RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B53"},68436:{"value":"10B54","name":"INSCRIPTIONAL PARTHIAN LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B54"},68437:{"value":"10B55","name":"INSCRIPTIONAL PARTHIAN LETTER TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B55"},68448:{"value":"10B60","name":"INSCRIPTIONAL PAHLAVI LETTER ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B60"},68449:{"value":"10B61","name":"INSCRIPTIONAL PAHLAVI LETTER BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B61"},68450:{"value":"10B62","name":"INSCRIPTIONAL PAHLAVI LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B62"},68451:{"value":"10B63","name":"INSCRIPTIONAL PAHLAVI LETTER DALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B63"},68452:{"value":"10B64","name":"INSCRIPTIONAL PAHLAVI LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B64"},68453:{"value":"10B65","name":"INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B65"},68454:{"value":"10B66","name":"INSCRIPTIONAL PAHLAVI LETTER ZAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B66"},68455:{"value":"10B67","name":"INSCRIPTIONAL PAHLAVI LETTER HETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B67"},68456:{"value":"10B68","name":"INSCRIPTIONAL PAHLAVI LETTER TETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B68"},68457:{"value":"10B69","name":"INSCRIPTIONAL PAHLAVI LETTER YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B69"},68458:{"value":"10B6A","name":"INSCRIPTIONAL PAHLAVI LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6A"},68459:{"value":"10B6B","name":"INSCRIPTIONAL PAHLAVI LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6B"},68460:{"value":"10B6C","name":"INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6C"},68461:{"value":"10B6D","name":"INSCRIPTIONAL PAHLAVI LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6D"},68462:{"value":"10B6E","name":"INSCRIPTIONAL PAHLAVI LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6E"},68463:{"value":"10B6F","name":"INSCRIPTIONAL PAHLAVI LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6F"},68464:{"value":"10B70","name":"INSCRIPTIONAL PAHLAVI LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B70"},68465:{"value":"10B71","name":"INSCRIPTIONAL PAHLAVI LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B71"},68466:{"value":"10B72","name":"INSCRIPTIONAL PAHLAVI LETTER TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B72"},68480:{"value":"10B80","name":"PSALTER PAHLAVI LETTER ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B80"},68481:{"value":"10B81","name":"PSALTER PAHLAVI LETTER BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B81"},68482:{"value":"10B82","name":"PSALTER PAHLAVI LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B82"},68483:{"value":"10B83","name":"PSALTER PAHLAVI LETTER DALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B83"},68484:{"value":"10B84","name":"PSALTER PAHLAVI LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B84"},68485:{"value":"10B85","name":"PSALTER PAHLAVI LETTER WAW-AYIN-RESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B85"},68486:{"value":"10B86","name":"PSALTER PAHLAVI LETTER ZAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B86"},68487:{"value":"10B87","name":"PSALTER PAHLAVI LETTER HETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B87"},68488:{"value":"10B88","name":"PSALTER PAHLAVI LETTER YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B88"},68489:{"value":"10B89","name":"PSALTER PAHLAVI LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B89"},68490:{"value":"10B8A","name":"PSALTER PAHLAVI LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B8A"},68491:{"value":"10B8B","name":"PSALTER PAHLAVI LETTER MEM-QOPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B8B"},68492:{"value":"10B8C","name":"PSALTER PAHLAVI LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B8C"},68493:{"value":"10B8D","name":"PSALTER PAHLAVI LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B8D"},68494:{"value":"10B8E","name":"PSALTER PAHLAVI LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B8E"},68495:{"value":"10B8F","name":"PSALTER PAHLAVI LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B8F"},68496:{"value":"10B90","name":"PSALTER PAHLAVI LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B90"},68497:{"value":"10B91","name":"PSALTER PAHLAVI LETTER TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B91"},68608:{"value":"10C00","name":"OLD TURKIC LETTER ORKHON A","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C00"},68609:{"value":"10C01","name":"OLD TURKIC LETTER YENISEI A","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C01"},68610:{"value":"10C02","name":"OLD TURKIC LETTER YENISEI AE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C02"},68611:{"value":"10C03","name":"OLD TURKIC LETTER ORKHON I","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C03"},68612:{"value":"10C04","name":"OLD TURKIC LETTER YENISEI I","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C04"},68613:{"value":"10C05","name":"OLD TURKIC LETTER YENISEI E","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C05"},68614:{"value":"10C06","name":"OLD TURKIC LETTER ORKHON O","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C06"},68615:{"value":"10C07","name":"OLD TURKIC LETTER ORKHON OE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C07"},68616:{"value":"10C08","name":"OLD TURKIC LETTER YENISEI OE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C08"},68617:{"value":"10C09","name":"OLD TURKIC LETTER ORKHON AB","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C09"},68618:{"value":"10C0A","name":"OLD TURKIC LETTER YENISEI AB","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0A"},68619:{"value":"10C0B","name":"OLD TURKIC LETTER ORKHON AEB","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0B"},68620:{"value":"10C0C","name":"OLD TURKIC LETTER YENISEI AEB","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0C"},68621:{"value":"10C0D","name":"OLD TURKIC LETTER ORKHON AG","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0D"},68622:{"value":"10C0E","name":"OLD TURKIC LETTER YENISEI AG","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0E"},68623:{"value":"10C0F","name":"OLD TURKIC LETTER ORKHON AEG","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C0F"},68624:{"value":"10C10","name":"OLD TURKIC LETTER YENISEI AEG","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C10"},68625:{"value":"10C11","name":"OLD TURKIC LETTER ORKHON AD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C11"},68626:{"value":"10C12","name":"OLD TURKIC LETTER YENISEI AD","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C12"},68627:{"value":"10C13","name":"OLD TURKIC LETTER ORKHON AED","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C13"},68628:{"value":"10C14","name":"OLD TURKIC LETTER ORKHON EZ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C14"},68629:{"value":"10C15","name":"OLD TURKIC LETTER YENISEI EZ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C15"},68630:{"value":"10C16","name":"OLD TURKIC LETTER ORKHON AY","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C16"},68631:{"value":"10C17","name":"OLD TURKIC LETTER YENISEI AY","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C17"},68632:{"value":"10C18","name":"OLD TURKIC LETTER ORKHON AEY","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C18"},68633:{"value":"10C19","name":"OLD TURKIC LETTER YENISEI AEY","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C19"},68634:{"value":"10C1A","name":"OLD TURKIC LETTER ORKHON AEK","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1A"},68635:{"value":"10C1B","name":"OLD TURKIC LETTER YENISEI AEK","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1B"},68636:{"value":"10C1C","name":"OLD TURKIC LETTER ORKHON OEK","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1C"},68637:{"value":"10C1D","name":"OLD TURKIC LETTER YENISEI OEK","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1D"},68638:{"value":"10C1E","name":"OLD TURKIC LETTER ORKHON AL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1E"},68639:{"value":"10C1F","name":"OLD TURKIC LETTER YENISEI AL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C1F"},68640:{"value":"10C20","name":"OLD TURKIC LETTER ORKHON AEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C20"},68641:{"value":"10C21","name":"OLD TURKIC LETTER ORKHON ELT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C21"},68642:{"value":"10C22","name":"OLD TURKIC LETTER ORKHON EM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C22"},68643:{"value":"10C23","name":"OLD TURKIC LETTER ORKHON AN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C23"},68644:{"value":"10C24","name":"OLD TURKIC LETTER ORKHON AEN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C24"},68645:{"value":"10C25","name":"OLD TURKIC LETTER YENISEI AEN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C25"},68646:{"value":"10C26","name":"OLD TURKIC LETTER ORKHON ENT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C26"},68647:{"value":"10C27","name":"OLD TURKIC LETTER YENISEI ENT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C27"},68648:{"value":"10C28","name":"OLD TURKIC LETTER ORKHON ENC","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C28"},68649:{"value":"10C29","name":"OLD TURKIC LETTER YENISEI ENC","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C29"},68650:{"value":"10C2A","name":"OLD TURKIC LETTER ORKHON ENY","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2A"},68651:{"value":"10C2B","name":"OLD TURKIC LETTER YENISEI ENY","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2B"},68652:{"value":"10C2C","name":"OLD TURKIC LETTER YENISEI ANG","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2C"},68653:{"value":"10C2D","name":"OLD TURKIC LETTER ORKHON ENG","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2D"},68654:{"value":"10C2E","name":"OLD TURKIC LETTER YENISEI AENG","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2E"},68655:{"value":"10C2F","name":"OLD TURKIC LETTER ORKHON EP","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C2F"},68656:{"value":"10C30","name":"OLD TURKIC LETTER ORKHON OP","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C30"},68657:{"value":"10C31","name":"OLD TURKIC LETTER ORKHON IC","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C31"},68658:{"value":"10C32","name":"OLD TURKIC LETTER ORKHON EC","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C32"},68659:{"value":"10C33","name":"OLD TURKIC LETTER YENISEI EC","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C33"},68660:{"value":"10C34","name":"OLD TURKIC LETTER ORKHON AQ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C34"},68661:{"value":"10C35","name":"OLD TURKIC LETTER YENISEI AQ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C35"},68662:{"value":"10C36","name":"OLD TURKIC LETTER ORKHON IQ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C36"},68663:{"value":"10C37","name":"OLD TURKIC LETTER YENISEI IQ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C37"},68664:{"value":"10C38","name":"OLD TURKIC LETTER ORKHON OQ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C38"},68665:{"value":"10C39","name":"OLD TURKIC LETTER YENISEI OQ","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C39"},68666:{"value":"10C3A","name":"OLD TURKIC LETTER ORKHON AR","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C3A"},68667:{"value":"10C3B","name":"OLD TURKIC LETTER YENISEI AR","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C3B"},68668:{"value":"10C3C","name":"OLD TURKIC LETTER ORKHON AER","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C3C"},68669:{"value":"10C3D","name":"OLD TURKIC LETTER ORKHON AS","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C3D"},68670:{"value":"10C3E","name":"OLD TURKIC LETTER ORKHON AES","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C3E"},68671:{"value":"10C3F","name":"OLD TURKIC LETTER ORKHON ASH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C3F"},68672:{"value":"10C40","name":"OLD TURKIC LETTER YENISEI ASH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C40"},68673:{"value":"10C41","name":"OLD TURKIC LETTER ORKHON ESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C41"},68674:{"value":"10C42","name":"OLD TURKIC LETTER YENISEI ESH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C42"},68675:{"value":"10C43","name":"OLD TURKIC LETTER ORKHON AT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C43"},68676:{"value":"10C44","name":"OLD TURKIC LETTER YENISEI AT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C44"},68677:{"value":"10C45","name":"OLD TURKIC LETTER ORKHON AET","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C45"},68678:{"value":"10C46","name":"OLD TURKIC LETTER YENISEI AET","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C46"},68679:{"value":"10C47","name":"OLD TURKIC LETTER ORKHON OT","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C47"},68680:{"value":"10C48","name":"OLD TURKIC LETTER ORKHON BASH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C48"},68864:{"value":"10D00","name":"HANIFI ROHINGYA LETTER A","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D00"},68865:{"value":"10D01","name":"HANIFI ROHINGYA LETTER BA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D01"},68866:{"value":"10D02","name":"HANIFI ROHINGYA LETTER PA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D02"},68867:{"value":"10D03","name":"HANIFI ROHINGYA LETTER TA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D03"},68868:{"value":"10D04","name":"HANIFI ROHINGYA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D04"},68869:{"value":"10D05","name":"HANIFI ROHINGYA LETTER JA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D05"},68870:{"value":"10D06","name":"HANIFI ROHINGYA LETTER CA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D06"},68871:{"value":"10D07","name":"HANIFI ROHINGYA LETTER HA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D07"},68872:{"value":"10D08","name":"HANIFI ROHINGYA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D08"},68873:{"value":"10D09","name":"HANIFI ROHINGYA LETTER FA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D09"},68874:{"value":"10D0A","name":"HANIFI ROHINGYA LETTER DA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0A"},68875:{"value":"10D0B","name":"HANIFI ROHINGYA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0B"},68876:{"value":"10D0C","name":"HANIFI ROHINGYA LETTER RA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0C"},68877:{"value":"10D0D","name":"HANIFI ROHINGYA LETTER RRA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0D"},68878:{"value":"10D0E","name":"HANIFI ROHINGYA LETTER ZA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0E"},68879:{"value":"10D0F","name":"HANIFI ROHINGYA LETTER SA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D0F"},68880:{"value":"10D10","name":"HANIFI ROHINGYA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D10"},68881:{"value":"10D11","name":"HANIFI ROHINGYA LETTER KA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D11"},68882:{"value":"10D12","name":"HANIFI ROHINGYA LETTER GA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D12"},68883:{"value":"10D13","name":"HANIFI ROHINGYA LETTER LA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D13"},68884:{"value":"10D14","name":"HANIFI ROHINGYA LETTER MA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D14"},68885:{"value":"10D15","name":"HANIFI ROHINGYA LETTER NA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D15"},68886:{"value":"10D16","name":"HANIFI ROHINGYA LETTER WA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D16"},68887:{"value":"10D17","name":"HANIFI ROHINGYA LETTER KINNA WA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D17"},68888:{"value":"10D18","name":"HANIFI ROHINGYA LETTER YA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D18"},68889:{"value":"10D19","name":"HANIFI ROHINGYA LETTER KINNA YA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D19"},68890:{"value":"10D1A","name":"HANIFI ROHINGYA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1A"},68891:{"value":"10D1B","name":"HANIFI ROHINGYA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1B"},68892:{"value":"10D1C","name":"HANIFI ROHINGYA LETTER VA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1C"},68893:{"value":"10D1D","name":"HANIFI ROHINGYA VOWEL A","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1D"},68894:{"value":"10D1E","name":"HANIFI ROHINGYA VOWEL I","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1E"},68895:{"value":"10D1F","name":"HANIFI ROHINGYA VOWEL U","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D1F"},68896:{"value":"10D20","name":"HANIFI ROHINGYA VOWEL E","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D20"},68897:{"value":"10D21","name":"HANIFI ROHINGYA VOWEL O","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D21"},68898:{"value":"10D22","name":"HANIFI ROHINGYA MARK SAKIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D22"},68899:{"value":"10D23","name":"HANIFI ROHINGYA MARK NA KHONNA","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D23"},69376:{"value":"10F00","name":"OLD SOGDIAN LETTER ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F00"},69377:{"value":"10F01","name":"OLD SOGDIAN LETTER FINAL ALEPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F01"},69378:{"value":"10F02","name":"OLD SOGDIAN LETTER BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F02"},69379:{"value":"10F03","name":"OLD SOGDIAN LETTER FINAL BETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F03"},69380:{"value":"10F04","name":"OLD SOGDIAN LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F04"},69381:{"value":"10F05","name":"OLD SOGDIAN LETTER HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F05"},69382:{"value":"10F06","name":"OLD SOGDIAN LETTER FINAL HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F06"},69383:{"value":"10F07","name":"OLD SOGDIAN LETTER WAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F07"},69384:{"value":"10F08","name":"OLD SOGDIAN LETTER ZAYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F08"},69385:{"value":"10F09","name":"OLD SOGDIAN LETTER HETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F09"},69386:{"value":"10F0A","name":"OLD SOGDIAN LETTER YODH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F0A"},69387:{"value":"10F0B","name":"OLD SOGDIAN LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F0B"},69388:{"value":"10F0C","name":"OLD SOGDIAN LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F0C"},69389:{"value":"10F0D","name":"OLD SOGDIAN LETTER MEM","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F0D"},69390:{"value":"10F0E","name":"OLD SOGDIAN LETTER NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F0E"},69391:{"value":"10F0F","name":"OLD SOGDIAN LETTER FINAL NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F0F"},69392:{"value":"10F10","name":"OLD SOGDIAN LETTER FINAL NUN WITH VERTICAL TAIL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F10"},69393:{"value":"10F11","name":"OLD SOGDIAN LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F11"},69394:{"value":"10F12","name":"OLD SOGDIAN LETTER AYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F12"},69395:{"value":"10F13","name":"OLD SOGDIAN LETTER ALTERNATE AYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F13"},69396:{"value":"10F14","name":"OLD SOGDIAN LETTER PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F14"},69397:{"value":"10F15","name":"OLD SOGDIAN LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F15"},69398:{"value":"10F16","name":"OLD SOGDIAN LETTER FINAL SADHE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F16"},69399:{"value":"10F17","name":"OLD SOGDIAN LETTER FINAL SADHE WITH VERTICAL TAIL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F17"},69400:{"value":"10F18","name":"OLD SOGDIAN LETTER RESH-AYIN-DALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F18"},69401:{"value":"10F19","name":"OLD SOGDIAN LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F19"},69402:{"value":"10F1A","name":"OLD SOGDIAN LETTER TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F1A"},69403:{"value":"10F1B","name":"OLD SOGDIAN LETTER FINAL TAW","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F1B"},69404:{"value":"10F1C","name":"OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F1C"},69415:{"value":"10F27","name":"OLD SOGDIAN LIGATURE AYIN-DALETH","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F27"},69424:{"value":"10F30","name":"SOGDIAN LETTER ALEPH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F30"},69425:{"value":"10F31","name":"SOGDIAN LETTER BETH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F31"},69426:{"value":"10F32","name":"SOGDIAN LETTER GIMEL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F32"},69427:{"value":"10F33","name":"SOGDIAN LETTER HE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F33"},69428:{"value":"10F34","name":"SOGDIAN LETTER WAW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F34"},69429:{"value":"10F35","name":"SOGDIAN LETTER ZAYIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F35"},69430:{"value":"10F36","name":"SOGDIAN LETTER HETH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F36"},69431:{"value":"10F37","name":"SOGDIAN LETTER YODH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F37"},69432:{"value":"10F38","name":"SOGDIAN LETTER KAPH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F38"},69433:{"value":"10F39","name":"SOGDIAN LETTER LAMEDH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F39"},69434:{"value":"10F3A","name":"SOGDIAN LETTER MEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F3A"},69435:{"value":"10F3B","name":"SOGDIAN LETTER NUN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F3B"},69436:{"value":"10F3C","name":"SOGDIAN LETTER SAMEKH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F3C"},69437:{"value":"10F3D","name":"SOGDIAN LETTER AYIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F3D"},69438:{"value":"10F3E","name":"SOGDIAN LETTER PE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F3E"},69439:{"value":"10F3F","name":"SOGDIAN LETTER SADHE","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F3F"},69440:{"value":"10F40","name":"SOGDIAN LETTER RESH-AYIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F40"},69441:{"value":"10F41","name":"SOGDIAN LETTER SHIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F41"},69442:{"value":"10F42","name":"SOGDIAN LETTER TAW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F42"},69443:{"value":"10F43","name":"SOGDIAN LETTER FETH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F43"},69444:{"value":"10F44","name":"SOGDIAN LETTER LESH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F44"},69445:{"value":"10F45","name":"SOGDIAN INDEPENDENT SHIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F45"},69635:{"value":"11003","name":"BRAHMI SIGN JIHVAMULIYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1003"},69636:{"value":"11004","name":"BRAHMI SIGN UPADHMANIYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1004"},69637:{"value":"11005","name":"BRAHMI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1005"},69638:{"value":"11006","name":"BRAHMI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1006"},69639:{"value":"11007","name":"BRAHMI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1007"},69640:{"value":"11008","name":"BRAHMI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1008"},69641:{"value":"11009","name":"BRAHMI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1009"},69642:{"value":"1100A","name":"BRAHMI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100A"},69643:{"value":"1100B","name":"BRAHMI LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100B"},69644:{"value":"1100C","name":"BRAHMI LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100C"},69645:{"value":"1100D","name":"BRAHMI LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100D"},69646:{"value":"1100E","name":"BRAHMI LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100E"},69647:{"value":"1100F","name":"BRAHMI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u100F"},69648:{"value":"11010","name":"BRAHMI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1010"},69649:{"value":"11011","name":"BRAHMI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1011"},69650:{"value":"11012","name":"BRAHMI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1012"},69651:{"value":"11013","name":"BRAHMI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1013"},69652:{"value":"11014","name":"BRAHMI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1014"},69653:{"value":"11015","name":"BRAHMI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1015"},69654:{"value":"11016","name":"BRAHMI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1016"},69655:{"value":"11017","name":"BRAHMI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1017"},69656:{"value":"11018","name":"BRAHMI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1018"},69657:{"value":"11019","name":"BRAHMI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1019"},69658:{"value":"1101A","name":"BRAHMI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101A"},69659:{"value":"1101B","name":"BRAHMI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101B"},69660:{"value":"1101C","name":"BRAHMI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101C"},69661:{"value":"1101D","name":"BRAHMI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101D"},69662:{"value":"1101E","name":"BRAHMI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101E"},69663:{"value":"1101F","name":"BRAHMI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u101F"},69664:{"value":"11020","name":"BRAHMI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1020"},69665:{"value":"11021","name":"BRAHMI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1021"},69666:{"value":"11022","name":"BRAHMI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1022"},69667:{"value":"11023","name":"BRAHMI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1023"},69668:{"value":"11024","name":"BRAHMI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1024"},69669:{"value":"11025","name":"BRAHMI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1025"},69670:{"value":"11026","name":"BRAHMI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1026"},69671:{"value":"11027","name":"BRAHMI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1027"},69672:{"value":"11028","name":"BRAHMI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1028"},69673:{"value":"11029","name":"BRAHMI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1029"},69674:{"value":"1102A","name":"BRAHMI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102A"},69675:{"value":"1102B","name":"BRAHMI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102B"},69676:{"value":"1102C","name":"BRAHMI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102C"},69677:{"value":"1102D","name":"BRAHMI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102D"},69678:{"value":"1102E","name":"BRAHMI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102E"},69679:{"value":"1102F","name":"BRAHMI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102F"},69680:{"value":"11030","name":"BRAHMI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1030"},69681:{"value":"11031","name":"BRAHMI LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1031"},69682:{"value":"11032","name":"BRAHMI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1032"},69683:{"value":"11033","name":"BRAHMI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1033"},69684:{"value":"11034","name":"BRAHMI LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1034"},69685:{"value":"11035","name":"BRAHMI LETTER OLD TAMIL LLLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1035"},69686:{"value":"11036","name":"BRAHMI LETTER OLD TAMIL RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1036"},69687:{"value":"11037","name":"BRAHMI LETTER OLD TAMIL NNNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1037"},69763:{"value":"11083","name":"KAITHI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1083"},69764:{"value":"11084","name":"KAITHI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1084"},69765:{"value":"11085","name":"KAITHI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1085"},69766:{"value":"11086","name":"KAITHI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1086"},69767:{"value":"11087","name":"KAITHI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1087"},69768:{"value":"11088","name":"KAITHI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1088"},69769:{"value":"11089","name":"KAITHI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1089"},69770:{"value":"1108A","name":"KAITHI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108A"},69771:{"value":"1108B","name":"KAITHI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108B"},69772:{"value":"1108C","name":"KAITHI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108C"},69773:{"value":"1108D","name":"KAITHI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108D"},69774:{"value":"1108E","name":"KAITHI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108E"},69775:{"value":"1108F","name":"KAITHI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108F"},69776:{"value":"11090","name":"KAITHI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1090"},69777:{"value":"11091","name":"KAITHI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1091"},69778:{"value":"11092","name":"KAITHI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1092"},69779:{"value":"11093","name":"KAITHI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1093"},69780:{"value":"11094","name":"KAITHI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1094"},69781:{"value":"11095","name":"KAITHI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1095"},69782:{"value":"11096","name":"KAITHI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1096"},69783:{"value":"11097","name":"KAITHI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1097"},69784:{"value":"11098","name":"KAITHI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1098"},69785:{"value":"11099","name":"KAITHI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1099"},69786:{"value":"1109A","name":"KAITHI LETTER DDDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"11099 110BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u109A"},69787:{"value":"1109B","name":"KAITHI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u109B"},69788:{"value":"1109C","name":"KAITHI LETTER RHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"1109B 110BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u109C"},69789:{"value":"1109D","name":"KAITHI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u109D"},69790:{"value":"1109E","name":"KAITHI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u109E"},69791:{"value":"1109F","name":"KAITHI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u109F"},69792:{"value":"110A0","name":"KAITHI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10A0"},69793:{"value":"110A1","name":"KAITHI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10A1"},69794:{"value":"110A2","name":"KAITHI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10A2"},69795:{"value":"110A3","name":"KAITHI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10A3"},69796:{"value":"110A4","name":"KAITHI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10A4"},69797:{"value":"110A5","name":"KAITHI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10A5"},69798:{"value":"110A6","name":"KAITHI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10A6"},69799:{"value":"110A7","name":"KAITHI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10A7"},69800:{"value":"110A8","name":"KAITHI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10A8"},69801:{"value":"110A9","name":"KAITHI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10A9"},69802:{"value":"110AA","name":"KAITHI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10AA"},69803:{"value":"110AB","name":"KAITHI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"110A5 110BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10AB"},69804:{"value":"110AC","name":"KAITHI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10AC"},69805:{"value":"110AD","name":"KAITHI LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10AD"},69806:{"value":"110AE","name":"KAITHI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10AE"},69807:{"value":"110AF","name":"KAITHI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10AF"},69840:{"value":"110D0","name":"SORA SOMPENG LETTER SAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10D0"},69841:{"value":"110D1","name":"SORA SOMPENG LETTER TAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10D1"},69842:{"value":"110D2","name":"SORA SOMPENG LETTER BAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10D2"},69843:{"value":"110D3","name":"SORA SOMPENG LETTER CAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10D3"},69844:{"value":"110D4","name":"SORA SOMPENG LETTER DAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10D4"},69845:{"value":"110D5","name":"SORA SOMPENG LETTER GAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10D5"},69846:{"value":"110D6","name":"SORA SOMPENG LETTER MAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10D6"},69847:{"value":"110D7","name":"SORA SOMPENG LETTER NGAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10D7"},69848:{"value":"110D8","name":"SORA SOMPENG LETTER LAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10D8"},69849:{"value":"110D9","name":"SORA SOMPENG LETTER NAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10D9"},69850:{"value":"110DA","name":"SORA SOMPENG LETTER VAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10DA"},69851:{"value":"110DB","name":"SORA SOMPENG LETTER PAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10DB"},69852:{"value":"110DC","name":"SORA SOMPENG LETTER YAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10DC"},69853:{"value":"110DD","name":"SORA SOMPENG LETTER RAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10DD"},69854:{"value":"110DE","name":"SORA SOMPENG LETTER HAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10DE"},69855:{"value":"110DF","name":"SORA SOMPENG LETTER KAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10DF"},69856:{"value":"110E0","name":"SORA SOMPENG LETTER JAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10E0"},69857:{"value":"110E1","name":"SORA SOMPENG LETTER NYAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10E1"},69858:{"value":"110E2","name":"SORA SOMPENG LETTER AH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10E2"},69859:{"value":"110E3","name":"SORA SOMPENG LETTER EEH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10E3"},69860:{"value":"110E4","name":"SORA SOMPENG LETTER IH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10E4"},69861:{"value":"110E5","name":"SORA SOMPENG LETTER UH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10E5"},69862:{"value":"110E6","name":"SORA SOMPENG LETTER OH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10E6"},69863:{"value":"110E7","name":"SORA SOMPENG LETTER EH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10E7"},69864:{"value":"110E8","name":"SORA SOMPENG LETTER MAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10E8"},69891:{"value":"11103","name":"CHAKMA LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1103"},69892:{"value":"11104","name":"CHAKMA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1104"},69893:{"value":"11105","name":"CHAKMA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1105"},69894:{"value":"11106","name":"CHAKMA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1106"},69895:{"value":"11107","name":"CHAKMA LETTER KAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1107"},69896:{"value":"11108","name":"CHAKMA LETTER KHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1108"},69897:{"value":"11109","name":"CHAKMA LETTER GAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1109"},69898:{"value":"1110A","name":"CHAKMA LETTER GHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110A"},69899:{"value":"1110B","name":"CHAKMA LETTER NGAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110B"},69900:{"value":"1110C","name":"CHAKMA LETTER CAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110C"},69901:{"value":"1110D","name":"CHAKMA LETTER CHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110D"},69902:{"value":"1110E","name":"CHAKMA LETTER JAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110E"},69903:{"value":"1110F","name":"CHAKMA LETTER JHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u110F"},69904:{"value":"11110","name":"CHAKMA LETTER NYAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1110"},69905:{"value":"11111","name":"CHAKMA LETTER TTAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1111"},69906:{"value":"11112","name":"CHAKMA LETTER TTHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1112"},69907:{"value":"11113","name":"CHAKMA LETTER DDAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1113"},69908:{"value":"11114","name":"CHAKMA LETTER DDHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1114"},69909:{"value":"11115","name":"CHAKMA LETTER NNAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1115"},69910:{"value":"11116","name":"CHAKMA LETTER TAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1116"},69911:{"value":"11117","name":"CHAKMA LETTER THAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1117"},69912:{"value":"11118","name":"CHAKMA LETTER DAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1118"},69913:{"value":"11119","name":"CHAKMA LETTER DHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1119"},69914:{"value":"1111A","name":"CHAKMA LETTER NAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111A"},69915:{"value":"1111B","name":"CHAKMA LETTER PAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111B"},69916:{"value":"1111C","name":"CHAKMA LETTER PHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111C"},69917:{"value":"1111D","name":"CHAKMA LETTER BAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111D"},69918:{"value":"1111E","name":"CHAKMA LETTER BHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111E"},69919:{"value":"1111F","name":"CHAKMA LETTER MAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u111F"},69920:{"value":"11120","name":"CHAKMA LETTER YYAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1120"},69921:{"value":"11121","name":"CHAKMA LETTER YAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1121"},69922:{"value":"11122","name":"CHAKMA LETTER RAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1122"},69923:{"value":"11123","name":"CHAKMA LETTER LAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1123"},69924:{"value":"11124","name":"CHAKMA LETTER WAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1124"},69925:{"value":"11125","name":"CHAKMA LETTER SAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1125"},69926:{"value":"11126","name":"CHAKMA LETTER HAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1126"},69956:{"value":"11144","name":"CHAKMA LETTER LHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1144"},69968:{"value":"11150","name":"MAHAJANI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1150"},69969:{"value":"11151","name":"MAHAJANI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1151"},69970:{"value":"11152","name":"MAHAJANI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1152"},69971:{"value":"11153","name":"MAHAJANI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1153"},69972:{"value":"11154","name":"MAHAJANI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1154"},69973:{"value":"11155","name":"MAHAJANI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1155"},69974:{"value":"11156","name":"MAHAJANI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1156"},69975:{"value":"11157","name":"MAHAJANI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1157"},69976:{"value":"11158","name":"MAHAJANI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1158"},69977:{"value":"11159","name":"MAHAJANI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1159"},69978:{"value":"1115A","name":"MAHAJANI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115A"},69979:{"value":"1115B","name":"MAHAJANI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115B"},69980:{"value":"1115C","name":"MAHAJANI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115C"},69981:{"value":"1115D","name":"MAHAJANI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115D"},69982:{"value":"1115E","name":"MAHAJANI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115E"},69983:{"value":"1115F","name":"MAHAJANI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u115F"},69984:{"value":"11160","name":"MAHAJANI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1160"},69985:{"value":"11161","name":"MAHAJANI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1161"},69986:{"value":"11162","name":"MAHAJANI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1162"},69987:{"value":"11163","name":"MAHAJANI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1163"},69988:{"value":"11164","name":"MAHAJANI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1164"},69989:{"value":"11165","name":"MAHAJANI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1165"},69990:{"value":"11166","name":"MAHAJANI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1166"},69991:{"value":"11167","name":"MAHAJANI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1167"},69992:{"value":"11168","name":"MAHAJANI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1168"},69993:{"value":"11169","name":"MAHAJANI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1169"},69994:{"value":"1116A","name":"MAHAJANI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116A"},69995:{"value":"1116B","name":"MAHAJANI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116B"},69996:{"value":"1116C","name":"MAHAJANI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116C"},69997:{"value":"1116D","name":"MAHAJANI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116D"},69998:{"value":"1116E","name":"MAHAJANI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116E"},69999:{"value":"1116F","name":"MAHAJANI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u116F"},70000:{"value":"11170","name":"MAHAJANI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1170"},70001:{"value":"11171","name":"MAHAJANI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1171"},70002:{"value":"11172","name":"MAHAJANI LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1172"},70006:{"value":"11176","name":"MAHAJANI LIGATURE SHRI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1176"},70019:{"value":"11183","name":"SHARADA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1183"},70020:{"value":"11184","name":"SHARADA LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1184"},70021:{"value":"11185","name":"SHARADA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1185"},70022:{"value":"11186","name":"SHARADA LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1186"},70023:{"value":"11187","name":"SHARADA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1187"},70024:{"value":"11188","name":"SHARADA LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1188"},70025:{"value":"11189","name":"SHARADA LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1189"},70026:{"value":"1118A","name":"SHARADA LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118A"},70027:{"value":"1118B","name":"SHARADA LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118B"},70028:{"value":"1118C","name":"SHARADA LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118C"},70029:{"value":"1118D","name":"SHARADA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118D"},70030:{"value":"1118E","name":"SHARADA LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118E"},70031:{"value":"1118F","name":"SHARADA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u118F"},70032:{"value":"11190","name":"SHARADA LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1190"},70033:{"value":"11191","name":"SHARADA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1191"},70034:{"value":"11192","name":"SHARADA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1192"},70035:{"value":"11193","name":"SHARADA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1193"},70036:{"value":"11194","name":"SHARADA LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1194"},70037:{"value":"11195","name":"SHARADA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1195"},70038:{"value":"11196","name":"SHARADA LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1196"},70039:{"value":"11197","name":"SHARADA LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1197"},70040:{"value":"11198","name":"SHARADA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1198"},70041:{"value":"11199","name":"SHARADA LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1199"},70042:{"value":"1119A","name":"SHARADA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119A"},70043:{"value":"1119B","name":"SHARADA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119B"},70044:{"value":"1119C","name":"SHARADA LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119C"},70045:{"value":"1119D","name":"SHARADA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119D"},70046:{"value":"1119E","name":"SHARADA LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119E"},70047:{"value":"1119F","name":"SHARADA LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u119F"},70048:{"value":"111A0","name":"SHARADA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A0"},70049:{"value":"111A1","name":"SHARADA LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A1"},70050:{"value":"111A2","name":"SHARADA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A2"},70051:{"value":"111A3","name":"SHARADA LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A3"},70052:{"value":"111A4","name":"SHARADA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A4"},70053:{"value":"111A5","name":"SHARADA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A5"},70054:{"value":"111A6","name":"SHARADA LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A6"},70055:{"value":"111A7","name":"SHARADA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A7"},70056:{"value":"111A8","name":"SHARADA LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A8"},70057:{"value":"111A9","name":"SHARADA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11A9"},70058:{"value":"111AA","name":"SHARADA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AA"},70059:{"value":"111AB","name":"SHARADA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AB"},70060:{"value":"111AC","name":"SHARADA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AC"},70061:{"value":"111AD","name":"SHARADA LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AD"},70062:{"value":"111AE","name":"SHARADA LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AE"},70063:{"value":"111AF","name":"SHARADA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11AF"},70064:{"value":"111B0","name":"SHARADA LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B0"},70065:{"value":"111B1","name":"SHARADA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B1"},70066:{"value":"111B2","name":"SHARADA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B2"},70081:{"value":"111C1","name":"SHARADA SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C1"},70082:{"value":"111C2","name":"SHARADA SIGN JIHVAMULIYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C2"},70083:{"value":"111C3","name":"SHARADA SIGN UPADHMANIYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C3"},70084:{"value":"111C4","name":"SHARADA OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C4"},70106:{"value":"111DA","name":"SHARADA EKAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11DA"},70108:{"value":"111DC","name":"SHARADA HEADSTROKE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11DC"},70144:{"value":"11200","name":"KHOJKI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1200"},70145:{"value":"11201","name":"KHOJKI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1201"},70146:{"value":"11202","name":"KHOJKI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1202"},70147:{"value":"11203","name":"KHOJKI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1203"},70148:{"value":"11204","name":"KHOJKI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1204"},70149:{"value":"11205","name":"KHOJKI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1205"},70150:{"value":"11206","name":"KHOJKI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1206"},70151:{"value":"11207","name":"KHOJKI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1207"},70152:{"value":"11208","name":"KHOJKI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1208"},70153:{"value":"11209","name":"KHOJKI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1209"},70154:{"value":"1120A","name":"KHOJKI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120A"},70155:{"value":"1120B","name":"KHOJKI LETTER GGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120B"},70156:{"value":"1120C","name":"KHOJKI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120C"},70157:{"value":"1120D","name":"KHOJKI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120D"},70158:{"value":"1120E","name":"KHOJKI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120E"},70159:{"value":"1120F","name":"KHOJKI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u120F"},70160:{"value":"11210","name":"KHOJKI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1210"},70161:{"value":"11211","name":"KHOJKI LETTER JJA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1211"},70163:{"value":"11213","name":"KHOJKI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1213"},70164:{"value":"11214","name":"KHOJKI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1214"},70165:{"value":"11215","name":"KHOJKI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1215"},70166:{"value":"11216","name":"KHOJKI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1216"},70167:{"value":"11217","name":"KHOJKI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1217"},70168:{"value":"11218","name":"KHOJKI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1218"},70169:{"value":"11219","name":"KHOJKI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1219"},70170:{"value":"1121A","name":"KHOJKI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121A"},70171:{"value":"1121B","name":"KHOJKI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121B"},70172:{"value":"1121C","name":"KHOJKI LETTER DDDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121C"},70173:{"value":"1121D","name":"KHOJKI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121D"},70174:{"value":"1121E","name":"KHOJKI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121E"},70175:{"value":"1121F","name":"KHOJKI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u121F"},70176:{"value":"11220","name":"KHOJKI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1220"},70177:{"value":"11221","name":"KHOJKI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1221"},70178:{"value":"11222","name":"KHOJKI LETTER BBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1222"},70179:{"value":"11223","name":"KHOJKI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1223"},70180:{"value":"11224","name":"KHOJKI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1224"},70181:{"value":"11225","name":"KHOJKI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1225"},70182:{"value":"11226","name":"KHOJKI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1226"},70183:{"value":"11227","name":"KHOJKI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1227"},70184:{"value":"11228","name":"KHOJKI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1228"},70185:{"value":"11229","name":"KHOJKI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1229"},70186:{"value":"1122A","name":"KHOJKI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122A"},70187:{"value":"1122B","name":"KHOJKI LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122B"},70272:{"value":"11280","name":"MULTANI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1280"},70273:{"value":"11281","name":"MULTANI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1281"},70274:{"value":"11282","name":"MULTANI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1282"},70275:{"value":"11283","name":"MULTANI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1283"},70276:{"value":"11284","name":"MULTANI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1284"},70277:{"value":"11285","name":"MULTANI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1285"},70278:{"value":"11286","name":"MULTANI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1286"},70280:{"value":"11288","name":"MULTANI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1288"},70282:{"value":"1128A","name":"MULTANI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u128A"},70283:{"value":"1128B","name":"MULTANI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u128B"},70284:{"value":"1128C","name":"MULTANI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u128C"},70285:{"value":"1128D","name":"MULTANI LETTER JJA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u128D"},70287:{"value":"1128F","name":"MULTANI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u128F"},70288:{"value":"11290","name":"MULTANI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1290"},70289:{"value":"11291","name":"MULTANI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1291"},70290:{"value":"11292","name":"MULTANI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1292"},70291:{"value":"11293","name":"MULTANI LETTER DDDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1293"},70292:{"value":"11294","name":"MULTANI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1294"},70293:{"value":"11295","name":"MULTANI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1295"},70294:{"value":"11296","name":"MULTANI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1296"},70295:{"value":"11297","name":"MULTANI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1297"},70296:{"value":"11298","name":"MULTANI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1298"},70297:{"value":"11299","name":"MULTANI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1299"},70298:{"value":"1129A","name":"MULTANI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129A"},70299:{"value":"1129B","name":"MULTANI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129B"},70300:{"value":"1129C","name":"MULTANI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129C"},70301:{"value":"1129D","name":"MULTANI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129D"},70303:{"value":"1129F","name":"MULTANI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u129F"},70304:{"value":"112A0","name":"MULTANI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A0"},70305:{"value":"112A1","name":"MULTANI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A1"},70306:{"value":"112A2","name":"MULTANI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A2"},70307:{"value":"112A3","name":"MULTANI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A3"},70308:{"value":"112A4","name":"MULTANI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A4"},70309:{"value":"112A5","name":"MULTANI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A5"},70310:{"value":"112A6","name":"MULTANI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A6"},70311:{"value":"112A7","name":"MULTANI LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A7"},70312:{"value":"112A8","name":"MULTANI LETTER RHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12A8"},70320:{"value":"112B0","name":"KHUDAWADI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B0"},70321:{"value":"112B1","name":"KHUDAWADI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B1"},70322:{"value":"112B2","name":"KHUDAWADI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B2"},70323:{"value":"112B3","name":"KHUDAWADI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B3"},70324:{"value":"112B4","name":"KHUDAWADI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B4"},70325:{"value":"112B5","name":"KHUDAWADI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B5"},70326:{"value":"112B6","name":"KHUDAWADI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B6"},70327:{"value":"112B7","name":"KHUDAWADI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B7"},70328:{"value":"112B8","name":"KHUDAWADI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B8"},70329:{"value":"112B9","name":"KHUDAWADI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12B9"},70330:{"value":"112BA","name":"KHUDAWADI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BA"},70331:{"value":"112BB","name":"KHUDAWADI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BB"},70332:{"value":"112BC","name":"KHUDAWADI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BC"},70333:{"value":"112BD","name":"KHUDAWADI LETTER GGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BD"},70334:{"value":"112BE","name":"KHUDAWADI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BE"},70335:{"value":"112BF","name":"KHUDAWADI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12BF"},70336:{"value":"112C0","name":"KHUDAWADI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C0"},70337:{"value":"112C1","name":"KHUDAWADI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C1"},70338:{"value":"112C2","name":"KHUDAWADI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C2"},70339:{"value":"112C3","name":"KHUDAWADI LETTER JJA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C3"},70340:{"value":"112C4","name":"KHUDAWADI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C4"},70341:{"value":"112C5","name":"KHUDAWADI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C5"},70342:{"value":"112C6","name":"KHUDAWADI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C6"},70343:{"value":"112C7","name":"KHUDAWADI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C7"},70344:{"value":"112C8","name":"KHUDAWADI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C8"},70345:{"value":"112C9","name":"KHUDAWADI LETTER DDDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12C9"},70346:{"value":"112CA","name":"KHUDAWADI LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CA"},70347:{"value":"112CB","name":"KHUDAWADI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CB"},70348:{"value":"112CC","name":"KHUDAWADI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CC"},70349:{"value":"112CD","name":"KHUDAWADI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CD"},70350:{"value":"112CE","name":"KHUDAWADI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CE"},70351:{"value":"112CF","name":"KHUDAWADI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12CF"},70352:{"value":"112D0","name":"KHUDAWADI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D0"},70353:{"value":"112D1","name":"KHUDAWADI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D1"},70354:{"value":"112D2","name":"KHUDAWADI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D2"},70355:{"value":"112D3","name":"KHUDAWADI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D3"},70356:{"value":"112D4","name":"KHUDAWADI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D4"},70357:{"value":"112D5","name":"KHUDAWADI LETTER BBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D5"},70358:{"value":"112D6","name":"KHUDAWADI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D6"},70359:{"value":"112D7","name":"KHUDAWADI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D7"},70360:{"value":"112D8","name":"KHUDAWADI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D8"},70361:{"value":"112D9","name":"KHUDAWADI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12D9"},70362:{"value":"112DA","name":"KHUDAWADI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DA"},70363:{"value":"112DB","name":"KHUDAWADI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DB"},70364:{"value":"112DC","name":"KHUDAWADI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DC"},70365:{"value":"112DD","name":"KHUDAWADI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DD"},70366:{"value":"112DE","name":"KHUDAWADI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DE"},70405:{"value":"11305","name":"GRANTHA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1305"},70406:{"value":"11306","name":"GRANTHA LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1306"},70407:{"value":"11307","name":"GRANTHA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1307"},70408:{"value":"11308","name":"GRANTHA LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1308"},70409:{"value":"11309","name":"GRANTHA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1309"},70410:{"value":"1130A","name":"GRANTHA LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u130A"},70411:{"value":"1130B","name":"GRANTHA LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u130B"},70412:{"value":"1130C","name":"GRANTHA LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u130C"},70415:{"value":"1130F","name":"GRANTHA LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u130F"},70416:{"value":"11310","name":"GRANTHA LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1310"},70419:{"value":"11313","name":"GRANTHA LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1313"},70420:{"value":"11314","name":"GRANTHA LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1314"},70421:{"value":"11315","name":"GRANTHA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1315"},70422:{"value":"11316","name":"GRANTHA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1316"},70423:{"value":"11317","name":"GRANTHA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1317"},70424:{"value":"11318","name":"GRANTHA LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1318"},70425:{"value":"11319","name":"GRANTHA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1319"},70426:{"value":"1131A","name":"GRANTHA LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131A"},70427:{"value":"1131B","name":"GRANTHA LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131B"},70428:{"value":"1131C","name":"GRANTHA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131C"},70429:{"value":"1131D","name":"GRANTHA LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131D"},70430:{"value":"1131E","name":"GRANTHA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131E"},70431:{"value":"1131F","name":"GRANTHA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u131F"},70432:{"value":"11320","name":"GRANTHA LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1320"},70433:{"value":"11321","name":"GRANTHA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1321"},70434:{"value":"11322","name":"GRANTHA LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1322"},70435:{"value":"11323","name":"GRANTHA LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1323"},70436:{"value":"11324","name":"GRANTHA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1324"},70437:{"value":"11325","name":"GRANTHA LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1325"},70438:{"value":"11326","name":"GRANTHA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1326"},70439:{"value":"11327","name":"GRANTHA LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1327"},70440:{"value":"11328","name":"GRANTHA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1328"},70442:{"value":"1132A","name":"GRANTHA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132A"},70443:{"value":"1132B","name":"GRANTHA LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132B"},70444:{"value":"1132C","name":"GRANTHA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132C"},70445:{"value":"1132D","name":"GRANTHA LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132D"},70446:{"value":"1132E","name":"GRANTHA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132E"},70447:{"value":"1132F","name":"GRANTHA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u132F"},70448:{"value":"11330","name":"GRANTHA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1330"},70450:{"value":"11332","name":"GRANTHA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1332"},70451:{"value":"11333","name":"GRANTHA LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1333"},70453:{"value":"11335","name":"GRANTHA LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1335"},70454:{"value":"11336","name":"GRANTHA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1336"},70455:{"value":"11337","name":"GRANTHA LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1337"},70456:{"value":"11338","name":"GRANTHA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1338"},70457:{"value":"11339","name":"GRANTHA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1339"},70461:{"value":"1133D","name":"GRANTHA SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133D"},70480:{"value":"11350","name":"GRANTHA OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1350"},70493:{"value":"1135D","name":"GRANTHA SIGN PLUTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u135D"},70494:{"value":"1135E","name":"GRANTHA LETTER VEDIC ANUSVARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u135E"},70495:{"value":"1135F","name":"GRANTHA LETTER VEDIC DOUBLE ANUSVARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u135F"},70496:{"value":"11360","name":"GRANTHA LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1360"},70497:{"value":"11361","name":"GRANTHA LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1361"},70656:{"value":"11400","name":"NEWA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1400"},70657:{"value":"11401","name":"NEWA LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1401"},70658:{"value":"11402","name":"NEWA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1402"},70659:{"value":"11403","name":"NEWA LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1403"},70660:{"value":"11404","name":"NEWA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1404"},70661:{"value":"11405","name":"NEWA LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1405"},70662:{"value":"11406","name":"NEWA LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1406"},70663:{"value":"11407","name":"NEWA LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1407"},70664:{"value":"11408","name":"NEWA LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1408"},70665:{"value":"11409","name":"NEWA LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1409"},70666:{"value":"1140A","name":"NEWA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140A"},70667:{"value":"1140B","name":"NEWA LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140B"},70668:{"value":"1140C","name":"NEWA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140C"},70669:{"value":"1140D","name":"NEWA LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140D"},70670:{"value":"1140E","name":"NEWA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140E"},70671:{"value":"1140F","name":"NEWA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u140F"},70672:{"value":"11410","name":"NEWA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1410"},70673:{"value":"11411","name":"NEWA LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1411"},70674:{"value":"11412","name":"NEWA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1412"},70675:{"value":"11413","name":"NEWA LETTER NGHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1413"},70676:{"value":"11414","name":"NEWA LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1414"},70677:{"value":"11415","name":"NEWA LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1415"},70678:{"value":"11416","name":"NEWA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1416"},70679:{"value":"11417","name":"NEWA LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1417"},70680:{"value":"11418","name":"NEWA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1418"},70681:{"value":"11419","name":"NEWA LETTER NYHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1419"},70682:{"value":"1141A","name":"NEWA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141A"},70683:{"value":"1141B","name":"NEWA LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141B"},70684:{"value":"1141C","name":"NEWA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141C"},70685:{"value":"1141D","name":"NEWA LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141D"},70686:{"value":"1141E","name":"NEWA LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141E"},70687:{"value":"1141F","name":"NEWA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u141F"},70688:{"value":"11420","name":"NEWA LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1420"},70689:{"value":"11421","name":"NEWA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1421"},70690:{"value":"11422","name":"NEWA LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1422"},70691:{"value":"11423","name":"NEWA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1423"},70692:{"value":"11424","name":"NEWA LETTER NHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1424"},70693:{"value":"11425","name":"NEWA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1425"},70694:{"value":"11426","name":"NEWA LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1426"},70695:{"value":"11427","name":"NEWA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1427"},70696:{"value":"11428","name":"NEWA LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1428"},70697:{"value":"11429","name":"NEWA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1429"},70698:{"value":"1142A","name":"NEWA LETTER MHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142A"},70699:{"value":"1142B","name":"NEWA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142B"},70700:{"value":"1142C","name":"NEWA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142C"},70701:{"value":"1142D","name":"NEWA LETTER RHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142D"},70702:{"value":"1142E","name":"NEWA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142E"},70703:{"value":"1142F","name":"NEWA LETTER LHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u142F"},70704:{"value":"11430","name":"NEWA LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1430"},70705:{"value":"11431","name":"NEWA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1431"},70706:{"value":"11432","name":"NEWA LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1432"},70707:{"value":"11433","name":"NEWA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1433"},70708:{"value":"11434","name":"NEWA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1434"},70727:{"value":"11447","name":"NEWA SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1447"},70728:{"value":"11448","name":"NEWA SIGN FINAL ANUSVARA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1448"},70729:{"value":"11449","name":"NEWA OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1449"},70730:{"value":"1144A","name":"NEWA SIDDHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u144A"},70784:{"value":"11480","name":"TIRHUTA ANJI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1480"},70785:{"value":"11481","name":"TIRHUTA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1481"},70786:{"value":"11482","name":"TIRHUTA LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1482"},70787:{"value":"11483","name":"TIRHUTA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1483"},70788:{"value":"11484","name":"TIRHUTA LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1484"},70789:{"value":"11485","name":"TIRHUTA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1485"},70790:{"value":"11486","name":"TIRHUTA LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1486"},70791:{"value":"11487","name":"TIRHUTA LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1487"},70792:{"value":"11488","name":"TIRHUTA LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1488"},70793:{"value":"11489","name":"TIRHUTA LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1489"},70794:{"value":"1148A","name":"TIRHUTA LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148A"},70795:{"value":"1148B","name":"TIRHUTA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148B"},70796:{"value":"1148C","name":"TIRHUTA LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148C"},70797:{"value":"1148D","name":"TIRHUTA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148D"},70798:{"value":"1148E","name":"TIRHUTA LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148E"},70799:{"value":"1148F","name":"TIRHUTA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u148F"},70800:{"value":"11490","name":"TIRHUTA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1490"},70801:{"value":"11491","name":"TIRHUTA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1491"},70802:{"value":"11492","name":"TIRHUTA LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1492"},70803:{"value":"11493","name":"TIRHUTA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1493"},70804:{"value":"11494","name":"TIRHUTA LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1494"},70805:{"value":"11495","name":"TIRHUTA LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1495"},70806:{"value":"11496","name":"TIRHUTA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1496"},70807:{"value":"11497","name":"TIRHUTA LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1497"},70808:{"value":"11498","name":"TIRHUTA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1498"},70809:{"value":"11499","name":"TIRHUTA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1499"},70810:{"value":"1149A","name":"TIRHUTA LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149A"},70811:{"value":"1149B","name":"TIRHUTA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149B"},70812:{"value":"1149C","name":"TIRHUTA LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149C"},70813:{"value":"1149D","name":"TIRHUTA LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149D"},70814:{"value":"1149E","name":"TIRHUTA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149E"},70815:{"value":"1149F","name":"TIRHUTA LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u149F"},70816:{"value":"114A0","name":"TIRHUTA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A0"},70817:{"value":"114A1","name":"TIRHUTA LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A1"},70818:{"value":"114A2","name":"TIRHUTA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A2"},70819:{"value":"114A3","name":"TIRHUTA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A3"},70820:{"value":"114A4","name":"TIRHUTA LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A4"},70821:{"value":"114A5","name":"TIRHUTA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A5"},70822:{"value":"114A6","name":"TIRHUTA LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A6"},70823:{"value":"114A7","name":"TIRHUTA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A7"},70824:{"value":"114A8","name":"TIRHUTA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A8"},70825:{"value":"114A9","name":"TIRHUTA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14A9"},70826:{"value":"114AA","name":"TIRHUTA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AA"},70827:{"value":"114AB","name":"TIRHUTA LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AB"},70828:{"value":"114AC","name":"TIRHUTA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AC"},70829:{"value":"114AD","name":"TIRHUTA LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AD"},70830:{"value":"114AE","name":"TIRHUTA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AE"},70831:{"value":"114AF","name":"TIRHUTA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14AF"},70852:{"value":"114C4","name":"TIRHUTA SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C4"},70853:{"value":"114C5","name":"TIRHUTA GVANG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C5"},70855:{"value":"114C7","name":"TIRHUTA OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C7"},71040:{"value":"11580","name":"SIDDHAM LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1580"},71041:{"value":"11581","name":"SIDDHAM LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1581"},71042:{"value":"11582","name":"SIDDHAM LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1582"},71043:{"value":"11583","name":"SIDDHAM LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1583"},71044:{"value":"11584","name":"SIDDHAM LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1584"},71045:{"value":"11585","name":"SIDDHAM LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1585"},71046:{"value":"11586","name":"SIDDHAM LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1586"},71047:{"value":"11587","name":"SIDDHAM LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1587"},71048:{"value":"11588","name":"SIDDHAM LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1588"},71049:{"value":"11589","name":"SIDDHAM LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1589"},71050:{"value":"1158A","name":"SIDDHAM LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158A"},71051:{"value":"1158B","name":"SIDDHAM LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158B"},71052:{"value":"1158C","name":"SIDDHAM LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158C"},71053:{"value":"1158D","name":"SIDDHAM LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158D"},71054:{"value":"1158E","name":"SIDDHAM LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158E"},71055:{"value":"1158F","name":"SIDDHAM LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u158F"},71056:{"value":"11590","name":"SIDDHAM LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1590"},71057:{"value":"11591","name":"SIDDHAM LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1591"},71058:{"value":"11592","name":"SIDDHAM LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1592"},71059:{"value":"11593","name":"SIDDHAM LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1593"},71060:{"value":"11594","name":"SIDDHAM LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1594"},71061:{"value":"11595","name":"SIDDHAM LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1595"},71062:{"value":"11596","name":"SIDDHAM LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1596"},71063:{"value":"11597","name":"SIDDHAM LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1597"},71064:{"value":"11598","name":"SIDDHAM LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1598"},71065:{"value":"11599","name":"SIDDHAM LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1599"},71066:{"value":"1159A","name":"SIDDHAM LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159A"},71067:{"value":"1159B","name":"SIDDHAM LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159B"},71068:{"value":"1159C","name":"SIDDHAM LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159C"},71069:{"value":"1159D","name":"SIDDHAM LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159D"},71070:{"value":"1159E","name":"SIDDHAM LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159E"},71071:{"value":"1159F","name":"SIDDHAM LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u159F"},71072:{"value":"115A0","name":"SIDDHAM LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A0"},71073:{"value":"115A1","name":"SIDDHAM LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A1"},71074:{"value":"115A2","name":"SIDDHAM LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A2"},71075:{"value":"115A3","name":"SIDDHAM LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A3"},71076:{"value":"115A4","name":"SIDDHAM LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A4"},71077:{"value":"115A5","name":"SIDDHAM LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A5"},71078:{"value":"115A6","name":"SIDDHAM LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A6"},71079:{"value":"115A7","name":"SIDDHAM LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A7"},71080:{"value":"115A8","name":"SIDDHAM LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A8"},71081:{"value":"115A9","name":"SIDDHAM LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15A9"},71082:{"value":"115AA","name":"SIDDHAM LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AA"},71083:{"value":"115AB","name":"SIDDHAM LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AB"},71084:{"value":"115AC","name":"SIDDHAM LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AC"},71085:{"value":"115AD","name":"SIDDHAM LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AD"},71086:{"value":"115AE","name":"SIDDHAM LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AE"},71128:{"value":"115D8","name":"SIDDHAM LETTER THREE-CIRCLE ALTERNATE I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D8"},71129:{"value":"115D9","name":"SIDDHAM LETTER TWO-CIRCLE ALTERNATE I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15D9"},71130:{"value":"115DA","name":"SIDDHAM LETTER TWO-CIRCLE ALTERNATE II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15DA"},71131:{"value":"115DB","name":"SIDDHAM LETTER ALTERNATE U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15DB"},71168:{"value":"11600","name":"MODI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1600"},71169:{"value":"11601","name":"MODI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1601"},71170:{"value":"11602","name":"MODI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1602"},71171:{"value":"11603","name":"MODI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1603"},71172:{"value":"11604","name":"MODI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1604"},71173:{"value":"11605","name":"MODI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1605"},71174:{"value":"11606","name":"MODI LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1606"},71175:{"value":"11607","name":"MODI LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1607"},71176:{"value":"11608","name":"MODI LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1608"},71177:{"value":"11609","name":"MODI LETTER VOCALIC LL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1609"},71178:{"value":"1160A","name":"MODI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160A"},71179:{"value":"1160B","name":"MODI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160B"},71180:{"value":"1160C","name":"MODI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160C"},71181:{"value":"1160D","name":"MODI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160D"},71182:{"value":"1160E","name":"MODI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160E"},71183:{"value":"1160F","name":"MODI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u160F"},71184:{"value":"11610","name":"MODI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1610"},71185:{"value":"11611","name":"MODI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1611"},71186:{"value":"11612","name":"MODI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1612"},71187:{"value":"11613","name":"MODI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1613"},71188:{"value":"11614","name":"MODI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1614"},71189:{"value":"11615","name":"MODI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1615"},71190:{"value":"11616","name":"MODI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1616"},71191:{"value":"11617","name":"MODI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1617"},71192:{"value":"11618","name":"MODI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1618"},71193:{"value":"11619","name":"MODI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1619"},71194:{"value":"1161A","name":"MODI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161A"},71195:{"value":"1161B","name":"MODI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161B"},71196:{"value":"1161C","name":"MODI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161C"},71197:{"value":"1161D","name":"MODI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161D"},71198:{"value":"1161E","name":"MODI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161E"},71199:{"value":"1161F","name":"MODI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u161F"},71200:{"value":"11620","name":"MODI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1620"},71201:{"value":"11621","name":"MODI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1621"},71202:{"value":"11622","name":"MODI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1622"},71203:{"value":"11623","name":"MODI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1623"},71204:{"value":"11624","name":"MODI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1624"},71205:{"value":"11625","name":"MODI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1625"},71206:{"value":"11626","name":"MODI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1626"},71207:{"value":"11627","name":"MODI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1627"},71208:{"value":"11628","name":"MODI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1628"},71209:{"value":"11629","name":"MODI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1629"},71210:{"value":"1162A","name":"MODI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162A"},71211:{"value":"1162B","name":"MODI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162B"},71212:{"value":"1162C","name":"MODI LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162C"},71213:{"value":"1162D","name":"MODI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162D"},71214:{"value":"1162E","name":"MODI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162E"},71215:{"value":"1162F","name":"MODI LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u162F"},71236:{"value":"11644","name":"MODI SIGN HUVA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1644"},71296:{"value":"11680","name":"TAKRI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1680"},71297:{"value":"11681","name":"TAKRI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1681"},71298:{"value":"11682","name":"TAKRI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1682"},71299:{"value":"11683","name":"TAKRI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1683"},71300:{"value":"11684","name":"TAKRI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1684"},71301:{"value":"11685","name":"TAKRI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1685"},71302:{"value":"11686","name":"TAKRI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1686"},71303:{"value":"11687","name":"TAKRI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1687"},71304:{"value":"11688","name":"TAKRI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1688"},71305:{"value":"11689","name":"TAKRI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1689"},71306:{"value":"1168A","name":"TAKRI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168A"},71307:{"value":"1168B","name":"TAKRI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168B"},71308:{"value":"1168C","name":"TAKRI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168C"},71309:{"value":"1168D","name":"TAKRI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168D"},71310:{"value":"1168E","name":"TAKRI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168E"},71311:{"value":"1168F","name":"TAKRI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u168F"},71312:{"value":"11690","name":"TAKRI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1690"},71313:{"value":"11691","name":"TAKRI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1691"},71314:{"value":"11692","name":"TAKRI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1692"},71315:{"value":"11693","name":"TAKRI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1693"},71316:{"value":"11694","name":"TAKRI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1694"},71317:{"value":"11695","name":"TAKRI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1695"},71318:{"value":"11696","name":"TAKRI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1696"},71319:{"value":"11697","name":"TAKRI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1697"},71320:{"value":"11698","name":"TAKRI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1698"},71321:{"value":"11699","name":"TAKRI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1699"},71322:{"value":"1169A","name":"TAKRI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u169A"},71323:{"value":"1169B","name":"TAKRI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u169B"},71324:{"value":"1169C","name":"TAKRI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u169C"},71325:{"value":"1169D","name":"TAKRI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u169D"},71326:{"value":"1169E","name":"TAKRI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u169E"},71327:{"value":"1169F","name":"TAKRI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u169F"},71328:{"value":"116A0","name":"TAKRI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A0"},71329:{"value":"116A1","name":"TAKRI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A1"},71330:{"value":"116A2","name":"TAKRI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A2"},71331:{"value":"116A3","name":"TAKRI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A3"},71332:{"value":"116A4","name":"TAKRI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A4"},71333:{"value":"116A5","name":"TAKRI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A5"},71334:{"value":"116A6","name":"TAKRI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A6"},71335:{"value":"116A7","name":"TAKRI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A7"},71336:{"value":"116A8","name":"TAKRI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A8"},71337:{"value":"116A9","name":"TAKRI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16A9"},71338:{"value":"116AA","name":"TAKRI LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AA"},71424:{"value":"11700","name":"AHOM LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1700"},71425:{"value":"11701","name":"AHOM LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1701"},71426:{"value":"11702","name":"AHOM LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1702"},71427:{"value":"11703","name":"AHOM LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1703"},71428:{"value":"11704","name":"AHOM LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1704"},71429:{"value":"11705","name":"AHOM LETTER ALTERNATE TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1705"},71430:{"value":"11706","name":"AHOM LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1706"},71431:{"value":"11707","name":"AHOM LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1707"},71432:{"value":"11708","name":"AHOM LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1708"},71433:{"value":"11709","name":"AHOM LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1709"},71434:{"value":"1170A","name":"AHOM LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170A"},71435:{"value":"1170B","name":"AHOM LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170B"},71436:{"value":"1170C","name":"AHOM LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170C"},71437:{"value":"1170D","name":"AHOM LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170D"},71438:{"value":"1170E","name":"AHOM LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170E"},71439:{"value":"1170F","name":"AHOM LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u170F"},71440:{"value":"11710","name":"AHOM LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1710"},71441:{"value":"11711","name":"AHOM LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1711"},71442:{"value":"11712","name":"AHOM LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1712"},71443:{"value":"11713","name":"AHOM LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1713"},71444:{"value":"11714","name":"AHOM LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1714"},71445:{"value":"11715","name":"AHOM LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1715"},71446:{"value":"11716","name":"AHOM LETTER ALTERNATE GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1716"},71447:{"value":"11717","name":"AHOM LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1717"},71448:{"value":"11718","name":"AHOM LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1718"},71449:{"value":"11719","name":"AHOM LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1719"},71450:{"value":"1171A","name":"AHOM LETTER ALTERNATE BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u171A"},71680:{"value":"11800","name":"DOGRA LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1800"},71681:{"value":"11801","name":"DOGRA LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1801"},71682:{"value":"11802","name":"DOGRA LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1802"},71683:{"value":"11803","name":"DOGRA LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1803"},71684:{"value":"11804","name":"DOGRA LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1804"},71685:{"value":"11805","name":"DOGRA LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1805"},71686:{"value":"11806","name":"DOGRA LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1806"},71687:{"value":"11807","name":"DOGRA LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1807"},71688:{"value":"11808","name":"DOGRA LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1808"},71689:{"value":"11809","name":"DOGRA LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1809"},71690:{"value":"1180A","name":"DOGRA LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u180A"},71691:{"value":"1180B","name":"DOGRA LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u180B"},71692:{"value":"1180C","name":"DOGRA LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u180C"},71693:{"value":"1180D","name":"DOGRA LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u180D"},71694:{"value":"1180E","name":"DOGRA LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u180E"},71695:{"value":"1180F","name":"DOGRA LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u180F"},71696:{"value":"11810","name":"DOGRA LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1810"},71697:{"value":"11811","name":"DOGRA LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1811"},71698:{"value":"11812","name":"DOGRA LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1812"},71699:{"value":"11813","name":"DOGRA LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1813"},71700:{"value":"11814","name":"DOGRA LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1814"},71701:{"value":"11815","name":"DOGRA LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1815"},71702:{"value":"11816","name":"DOGRA LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1816"},71703:{"value":"11817","name":"DOGRA LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1817"},71704:{"value":"11818","name":"DOGRA LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1818"},71705:{"value":"11819","name":"DOGRA LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1819"},71706:{"value":"1181A","name":"DOGRA LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u181A"},71707:{"value":"1181B","name":"DOGRA LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u181B"},71708:{"value":"1181C","name":"DOGRA LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u181C"},71709:{"value":"1181D","name":"DOGRA LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u181D"},71710:{"value":"1181E","name":"DOGRA LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u181E"},71711:{"value":"1181F","name":"DOGRA LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u181F"},71712:{"value":"11820","name":"DOGRA LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1820"},71713:{"value":"11821","name":"DOGRA LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1821"},71714:{"value":"11822","name":"DOGRA LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1822"},71715:{"value":"11823","name":"DOGRA LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1823"},71716:{"value":"11824","name":"DOGRA LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1824"},71717:{"value":"11825","name":"DOGRA LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1825"},71718:{"value":"11826","name":"DOGRA LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1826"},71719:{"value":"11827","name":"DOGRA LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1827"},71720:{"value":"11828","name":"DOGRA LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1828"},71721:{"value":"11829","name":"DOGRA LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1829"},71722:{"value":"1182A","name":"DOGRA LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182A"},71723:{"value":"1182B","name":"DOGRA LETTER RRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182B"},71935:{"value":"118FF","name":"WARANG CITI OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18FF"},72192:{"value":"11A00","name":"ZANABAZAR SQUARE LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A00"},72203:{"value":"11A0B","name":"ZANABAZAR SQUARE LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0B"},72204:{"value":"11A0C","name":"ZANABAZAR SQUARE LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0C"},72205:{"value":"11A0D","name":"ZANABAZAR SQUARE LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0D"},72206:{"value":"11A0E","name":"ZANABAZAR SQUARE LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0E"},72207:{"value":"11A0F","name":"ZANABAZAR SQUARE LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0F"},72208:{"value":"11A10","name":"ZANABAZAR SQUARE LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A10"},72209:{"value":"11A11","name":"ZANABAZAR SQUARE LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A11"},72210:{"value":"11A12","name":"ZANABAZAR SQUARE LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A12"},72211:{"value":"11A13","name":"ZANABAZAR SQUARE LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A13"},72212:{"value":"11A14","name":"ZANABAZAR SQUARE LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A14"},72213:{"value":"11A15","name":"ZANABAZAR SQUARE LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A15"},72214:{"value":"11A16","name":"ZANABAZAR SQUARE LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A16"},72215:{"value":"11A17","name":"ZANABAZAR SQUARE LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A17"},72216:{"value":"11A18","name":"ZANABAZAR SQUARE LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A18"},72217:{"value":"11A19","name":"ZANABAZAR SQUARE LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A19"},72218:{"value":"11A1A","name":"ZANABAZAR SQUARE LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A1A"},72219:{"value":"11A1B","name":"ZANABAZAR SQUARE LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A1B"},72220:{"value":"11A1C","name":"ZANABAZAR SQUARE LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A1C"},72221:{"value":"11A1D","name":"ZANABAZAR SQUARE LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A1D"},72222:{"value":"11A1E","name":"ZANABAZAR SQUARE LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A1E"},72223:{"value":"11A1F","name":"ZANABAZAR SQUARE LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A1F"},72224:{"value":"11A20","name":"ZANABAZAR SQUARE LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A20"},72225:{"value":"11A21","name":"ZANABAZAR SQUARE LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A21"},72226:{"value":"11A22","name":"ZANABAZAR SQUARE LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A22"},72227:{"value":"11A23","name":"ZANABAZAR SQUARE LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A23"},72228:{"value":"11A24","name":"ZANABAZAR SQUARE LETTER TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A24"},72229:{"value":"11A25","name":"ZANABAZAR SQUARE LETTER DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A25"},72230:{"value":"11A26","name":"ZANABAZAR SQUARE LETTER DZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A26"},72231:{"value":"11A27","name":"ZANABAZAR SQUARE LETTER ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A27"},72232:{"value":"11A28","name":"ZANABAZAR SQUARE LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A28"},72233:{"value":"11A29","name":"ZANABAZAR SQUARE LETTER -A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A29"},72234:{"value":"11A2A","name":"ZANABAZAR SQUARE LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2A"},72235:{"value":"11A2B","name":"ZANABAZAR SQUARE LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2B"},72236:{"value":"11A2C","name":"ZANABAZAR SQUARE LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2C"},72237:{"value":"11A2D","name":"ZANABAZAR SQUARE LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2D"},72238:{"value":"11A2E","name":"ZANABAZAR SQUARE LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2E"},72239:{"value":"11A2F","name":"ZANABAZAR SQUARE LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A2F"},72240:{"value":"11A30","name":"ZANABAZAR SQUARE LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A30"},72241:{"value":"11A31","name":"ZANABAZAR SQUARE LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A31"},72242:{"value":"11A32","name":"ZANABAZAR SQUARE LETTER KSSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A32"},72250:{"value":"11A3A","name":"ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3A"},72272:{"value":"11A50","name":"SOYOMBO LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A50"},72284:{"value":"11A5C","name":"SOYOMBO LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5C"},72285:{"value":"11A5D","name":"SOYOMBO LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5D"},72286:{"value":"11A5E","name":"SOYOMBO LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5E"},72287:{"value":"11A5F","name":"SOYOMBO LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5F"},72288:{"value":"11A60","name":"SOYOMBO LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A60"},72289:{"value":"11A61","name":"SOYOMBO LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A61"},72290:{"value":"11A62","name":"SOYOMBO LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A62"},72291:{"value":"11A63","name":"SOYOMBO LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A63"},72292:{"value":"11A64","name":"SOYOMBO LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A64"},72293:{"value":"11A65","name":"SOYOMBO LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A65"},72294:{"value":"11A66","name":"SOYOMBO LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A66"},72295:{"value":"11A67","name":"SOYOMBO LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A67"},72296:{"value":"11A68","name":"SOYOMBO LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A68"},72297:{"value":"11A69","name":"SOYOMBO LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A69"},72298:{"value":"11A6A","name":"SOYOMBO LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6A"},72299:{"value":"11A6B","name":"SOYOMBO LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6B"},72300:{"value":"11A6C","name":"SOYOMBO LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6C"},72301:{"value":"11A6D","name":"SOYOMBO LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6D"},72302:{"value":"11A6E","name":"SOYOMBO LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6E"},72303:{"value":"11A6F","name":"SOYOMBO LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6F"},72304:{"value":"11A70","name":"SOYOMBO LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A70"},72305:{"value":"11A71","name":"SOYOMBO LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A71"},72306:{"value":"11A72","name":"SOYOMBO LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A72"},72307:{"value":"11A73","name":"SOYOMBO LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A73"},72308:{"value":"11A74","name":"SOYOMBO LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A74"},72309:{"value":"11A75","name":"SOYOMBO LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A75"},72310:{"value":"11A76","name":"SOYOMBO LETTER TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A76"},72311:{"value":"11A77","name":"SOYOMBO LETTER DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A77"},72312:{"value":"11A78","name":"SOYOMBO LETTER ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A78"},72313:{"value":"11A79","name":"SOYOMBO LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A79"},72314:{"value":"11A7A","name":"SOYOMBO LETTER -A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A7A"},72315:{"value":"11A7B","name":"SOYOMBO LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A7B"},72316:{"value":"11A7C","name":"SOYOMBO LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A7C"},72317:{"value":"11A7D","name":"SOYOMBO LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A7D"},72318:{"value":"11A7E","name":"SOYOMBO LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A7E"},72319:{"value":"11A7F","name":"SOYOMBO LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A7F"},72320:{"value":"11A80","name":"SOYOMBO LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A80"},72321:{"value":"11A81","name":"SOYOMBO LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A81"},72322:{"value":"11A82","name":"SOYOMBO LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A82"},72323:{"value":"11A83","name":"SOYOMBO LETTER KSSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A83"},72326:{"value":"11A86","name":"SOYOMBO CLUSTER-INITIAL LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A86"},72327:{"value":"11A87","name":"SOYOMBO CLUSTER-INITIAL LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A87"},72328:{"value":"11A88","name":"SOYOMBO CLUSTER-INITIAL LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A88"},72329:{"value":"11A89","name":"SOYOMBO CLUSTER-INITIAL LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A89"},72349:{"value":"11A9D","name":"SOYOMBO MARK PLUTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A9D"},72384:{"value":"11AC0","name":"PAU CIN HAU LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AC0"},72385:{"value":"11AC1","name":"PAU CIN HAU LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AC1"},72386:{"value":"11AC2","name":"PAU CIN HAU LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AC2"},72387:{"value":"11AC3","name":"PAU CIN HAU LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AC3"},72388:{"value":"11AC4","name":"PAU CIN HAU LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AC4"},72389:{"value":"11AC5","name":"PAU CIN HAU LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AC5"},72390:{"value":"11AC6","name":"PAU CIN HAU LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AC6"},72391:{"value":"11AC7","name":"PAU CIN HAU LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AC7"},72392:{"value":"11AC8","name":"PAU CIN HAU LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AC8"},72393:{"value":"11AC9","name":"PAU CIN HAU LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AC9"},72394:{"value":"11ACA","name":"PAU CIN HAU LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ACA"},72395:{"value":"11ACB","name":"PAU CIN HAU LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ACB"},72396:{"value":"11ACC","name":"PAU CIN HAU LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ACC"},72397:{"value":"11ACD","name":"PAU CIN HAU LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ACD"},72398:{"value":"11ACE","name":"PAU CIN HAU LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ACE"},72399:{"value":"11ACF","name":"PAU CIN HAU LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ACF"},72400:{"value":"11AD0","name":"PAU CIN HAU LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AD0"},72401:{"value":"11AD1","name":"PAU CIN HAU LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AD1"},72402:{"value":"11AD2","name":"PAU CIN HAU LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AD2"},72403:{"value":"11AD3","name":"PAU CIN HAU LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AD3"},72404:{"value":"11AD4","name":"PAU CIN HAU LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AD4"},72405:{"value":"11AD5","name":"PAU CIN HAU LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AD5"},72406:{"value":"11AD6","name":"PAU CIN HAU LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AD6"},72407:{"value":"11AD7","name":"PAU CIN HAU LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AD7"},72408:{"value":"11AD8","name":"PAU CIN HAU LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AD8"},72409:{"value":"11AD9","name":"PAU CIN HAU LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AD9"},72410:{"value":"11ADA","name":"PAU CIN HAU LETTER UA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ADA"},72411:{"value":"11ADB","name":"PAU CIN HAU LETTER IA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ADB"},72412:{"value":"11ADC","name":"PAU CIN HAU LETTER FINAL P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ADC"},72413:{"value":"11ADD","name":"PAU CIN HAU LETTER FINAL K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ADD"},72414:{"value":"11ADE","name":"PAU CIN HAU LETTER FINAL T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ADE"},72415:{"value":"11ADF","name":"PAU CIN HAU LETTER FINAL M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ADF"},72416:{"value":"11AE0","name":"PAU CIN HAU LETTER FINAL N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AE0"},72417:{"value":"11AE1","name":"PAU CIN HAU LETTER FINAL L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AE1"},72418:{"value":"11AE2","name":"PAU CIN HAU LETTER FINAL W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AE2"},72419:{"value":"11AE3","name":"PAU CIN HAU LETTER FINAL NG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AE3"},72420:{"value":"11AE4","name":"PAU CIN HAU LETTER FINAL Y","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AE4"},72421:{"value":"11AE5","name":"PAU CIN HAU RISING TONE LONG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AE5"},72422:{"value":"11AE6","name":"PAU CIN HAU RISING TONE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AE6"},72423:{"value":"11AE7","name":"PAU CIN HAU SANDHI GLOTTAL STOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AE7"},72424:{"value":"11AE8","name":"PAU CIN HAU RISING TONE LONG FINAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AE8"},72425:{"value":"11AE9","name":"PAU CIN HAU RISING TONE FINAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AE9"},72426:{"value":"11AEA","name":"PAU CIN HAU SANDHI GLOTTAL STOP FINAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AEA"},72427:{"value":"11AEB","name":"PAU CIN HAU SANDHI TONE LONG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AEB"},72428:{"value":"11AEC","name":"PAU CIN HAU SANDHI TONE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AEC"},72429:{"value":"11AED","name":"PAU CIN HAU SANDHI TONE LONG FINAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AED"},72430:{"value":"11AEE","name":"PAU CIN HAU SANDHI TONE FINAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AEE"},72431:{"value":"11AEF","name":"PAU CIN HAU MID-LEVEL TONE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AEF"},72432:{"value":"11AF0","name":"PAU CIN HAU GLOTTAL STOP VARIANT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AF0"},72433:{"value":"11AF1","name":"PAU CIN HAU MID-LEVEL TONE LONG FINAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AF1"},72434:{"value":"11AF2","name":"PAU CIN HAU MID-LEVEL TONE FINAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AF2"},72435:{"value":"11AF3","name":"PAU CIN HAU LOW-FALLING TONE LONG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AF3"},72436:{"value":"11AF4","name":"PAU CIN HAU LOW-FALLING TONE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AF4"},72437:{"value":"11AF5","name":"PAU CIN HAU GLOTTAL STOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AF5"},72438:{"value":"11AF6","name":"PAU CIN HAU LOW-FALLING TONE LONG FINAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AF6"},72439:{"value":"11AF7","name":"PAU CIN HAU LOW-FALLING TONE FINAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AF7"},72440:{"value":"11AF8","name":"PAU CIN HAU GLOTTAL STOP FINAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AF8"},72704:{"value":"11C00","name":"BHAIKSUKI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C00"},72705:{"value":"11C01","name":"BHAIKSUKI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C01"},72706:{"value":"11C02","name":"BHAIKSUKI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C02"},72707:{"value":"11C03","name":"BHAIKSUKI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C03"},72708:{"value":"11C04","name":"BHAIKSUKI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C04"},72709:{"value":"11C05","name":"BHAIKSUKI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C05"},72710:{"value":"11C06","name":"BHAIKSUKI LETTER VOCALIC R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C06"},72711:{"value":"11C07","name":"BHAIKSUKI LETTER VOCALIC RR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C07"},72712:{"value":"11C08","name":"BHAIKSUKI LETTER VOCALIC L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C08"},72714:{"value":"11C0A","name":"BHAIKSUKI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0A"},72715:{"value":"11C0B","name":"BHAIKSUKI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0B"},72716:{"value":"11C0C","name":"BHAIKSUKI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0C"},72717:{"value":"11C0D","name":"BHAIKSUKI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0D"},72718:{"value":"11C0E","name":"BHAIKSUKI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0E"},72719:{"value":"11C0F","name":"BHAIKSUKI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C0F"},72720:{"value":"11C10","name":"BHAIKSUKI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C10"},72721:{"value":"11C11","name":"BHAIKSUKI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C11"},72722:{"value":"11C12","name":"BHAIKSUKI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C12"},72723:{"value":"11C13","name":"BHAIKSUKI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C13"},72724:{"value":"11C14","name":"BHAIKSUKI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C14"},72725:{"value":"11C15","name":"BHAIKSUKI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C15"},72726:{"value":"11C16","name":"BHAIKSUKI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C16"},72727:{"value":"11C17","name":"BHAIKSUKI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C17"},72728:{"value":"11C18","name":"BHAIKSUKI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C18"},72729:{"value":"11C19","name":"BHAIKSUKI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C19"},72730:{"value":"11C1A","name":"BHAIKSUKI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1A"},72731:{"value":"11C1B","name":"BHAIKSUKI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1B"},72732:{"value":"11C1C","name":"BHAIKSUKI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1C"},72733:{"value":"11C1D","name":"BHAIKSUKI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1D"},72734:{"value":"11C1E","name":"BHAIKSUKI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1E"},72735:{"value":"11C1F","name":"BHAIKSUKI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C1F"},72736:{"value":"11C20","name":"BHAIKSUKI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C20"},72737:{"value":"11C21","name":"BHAIKSUKI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C21"},72738:{"value":"11C22","name":"BHAIKSUKI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C22"},72739:{"value":"11C23","name":"BHAIKSUKI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C23"},72740:{"value":"11C24","name":"BHAIKSUKI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C24"},72741:{"value":"11C25","name":"BHAIKSUKI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C25"},72742:{"value":"11C26","name":"BHAIKSUKI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C26"},72743:{"value":"11C27","name":"BHAIKSUKI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C27"},72744:{"value":"11C28","name":"BHAIKSUKI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C28"},72745:{"value":"11C29","name":"BHAIKSUKI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C29"},72746:{"value":"11C2A","name":"BHAIKSUKI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2A"},72747:{"value":"11C2B","name":"BHAIKSUKI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2B"},72748:{"value":"11C2C","name":"BHAIKSUKI LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2C"},72749:{"value":"11C2D","name":"BHAIKSUKI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2D"},72750:{"value":"11C2E","name":"BHAIKSUKI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2E"},72768:{"value":"11C40","name":"BHAIKSUKI SIGN AVAGRAHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C40"},72818:{"value":"11C72","name":"MARCHEN LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C72"},72819:{"value":"11C73","name":"MARCHEN LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C73"},72820:{"value":"11C74","name":"MARCHEN LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C74"},72821:{"value":"11C75","name":"MARCHEN LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C75"},72822:{"value":"11C76","name":"MARCHEN LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C76"},72823:{"value":"11C77","name":"MARCHEN LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C77"},72824:{"value":"11C78","name":"MARCHEN LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C78"},72825:{"value":"11C79","name":"MARCHEN LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C79"},72826:{"value":"11C7A","name":"MARCHEN LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C7A"},72827:{"value":"11C7B","name":"MARCHEN LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C7B"},72828:{"value":"11C7C","name":"MARCHEN LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C7C"},72829:{"value":"11C7D","name":"MARCHEN LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C7D"},72830:{"value":"11C7E","name":"MARCHEN LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C7E"},72831:{"value":"11C7F","name":"MARCHEN LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C7F"},72832:{"value":"11C80","name":"MARCHEN LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C80"},72833:{"value":"11C81","name":"MARCHEN LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C81"},72834:{"value":"11C82","name":"MARCHEN LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C82"},72835:{"value":"11C83","name":"MARCHEN LETTER TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C83"},72836:{"value":"11C84","name":"MARCHEN LETTER DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C84"},72837:{"value":"11C85","name":"MARCHEN LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C85"},72838:{"value":"11C86","name":"MARCHEN LETTER ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C86"},72839:{"value":"11C87","name":"MARCHEN LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C87"},72840:{"value":"11C88","name":"MARCHEN LETTER -A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C88"},72841:{"value":"11C89","name":"MARCHEN LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C89"},72842:{"value":"11C8A","name":"MARCHEN LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C8A"},72843:{"value":"11C8B","name":"MARCHEN LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C8B"},72844:{"value":"11C8C","name":"MARCHEN LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C8C"},72845:{"value":"11C8D","name":"MARCHEN LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C8D"},72846:{"value":"11C8E","name":"MARCHEN LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C8E"},72847:{"value":"11C8F","name":"MARCHEN LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C8F"},72960:{"value":"11D00","name":"MASARAM GONDI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D00"},72961:{"value":"11D01","name":"MASARAM GONDI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D01"},72962:{"value":"11D02","name":"MASARAM GONDI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D02"},72963:{"value":"11D03","name":"MASARAM GONDI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D03"},72964:{"value":"11D04","name":"MASARAM GONDI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D04"},72965:{"value":"11D05","name":"MASARAM GONDI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D05"},72966:{"value":"11D06","name":"MASARAM GONDI LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D06"},72968:{"value":"11D08","name":"MASARAM GONDI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D08"},72969:{"value":"11D09","name":"MASARAM GONDI LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D09"},72971:{"value":"11D0B","name":"MASARAM GONDI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0B"},72972:{"value":"11D0C","name":"MASARAM GONDI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0C"},72973:{"value":"11D0D","name":"MASARAM GONDI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0D"},72974:{"value":"11D0E","name":"MASARAM GONDI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0E"},72975:{"value":"11D0F","name":"MASARAM GONDI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D0F"},72976:{"value":"11D10","name":"MASARAM GONDI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D10"},72977:{"value":"11D11","name":"MASARAM GONDI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D11"},72978:{"value":"11D12","name":"MASARAM GONDI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D12"},72979:{"value":"11D13","name":"MASARAM GONDI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D13"},72980:{"value":"11D14","name":"MASARAM GONDI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D14"},72981:{"value":"11D15","name":"MASARAM GONDI LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D15"},72982:{"value":"11D16","name":"MASARAM GONDI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D16"},72983:{"value":"11D17","name":"MASARAM GONDI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D17"},72984:{"value":"11D18","name":"MASARAM GONDI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D18"},72985:{"value":"11D19","name":"MASARAM GONDI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D19"},72986:{"value":"11D1A","name":"MASARAM GONDI LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1A"},72987:{"value":"11D1B","name":"MASARAM GONDI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1B"},72988:{"value":"11D1C","name":"MASARAM GONDI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1C"},72989:{"value":"11D1D","name":"MASARAM GONDI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1D"},72990:{"value":"11D1E","name":"MASARAM GONDI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1E"},72991:{"value":"11D1F","name":"MASARAM GONDI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D1F"},72992:{"value":"11D20","name":"MASARAM GONDI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D20"},72993:{"value":"11D21","name":"MASARAM GONDI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D21"},72994:{"value":"11D22","name":"MASARAM GONDI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D22"},72995:{"value":"11D23","name":"MASARAM GONDI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D23"},72996:{"value":"11D24","name":"MASARAM GONDI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D24"},72997:{"value":"11D25","name":"MASARAM GONDI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D25"},72998:{"value":"11D26","name":"MASARAM GONDI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D26"},72999:{"value":"11D27","name":"MASARAM GONDI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D27"},73000:{"value":"11D28","name":"MASARAM GONDI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D28"},73001:{"value":"11D29","name":"MASARAM GONDI LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D29"},73002:{"value":"11D2A","name":"MASARAM GONDI LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2A"},73003:{"value":"11D2B","name":"MASARAM GONDI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2B"},73004:{"value":"11D2C","name":"MASARAM GONDI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2C"},73005:{"value":"11D2D","name":"MASARAM GONDI LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2D"},73006:{"value":"11D2E","name":"MASARAM GONDI LETTER KSSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2E"},73007:{"value":"11D2F","name":"MASARAM GONDI LETTER JNYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2F"},73008:{"value":"11D30","name":"MASARAM GONDI LETTER TRA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D30"},73030:{"value":"11D46","name":"MASARAM GONDI REPHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D46"},73056:{"value":"11D60","name":"GUNJALA GONDI LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D60"},73057:{"value":"11D61","name":"GUNJALA GONDI LETTER AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D61"},73058:{"value":"11D62","name":"GUNJALA GONDI LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D62"},73059:{"value":"11D63","name":"GUNJALA GONDI LETTER II","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D63"},73060:{"value":"11D64","name":"GUNJALA GONDI LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D64"},73061:{"value":"11D65","name":"GUNJALA GONDI LETTER UU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D65"},73063:{"value":"11D67","name":"GUNJALA GONDI LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D67"},73064:{"value":"11D68","name":"GUNJALA GONDI LETTER AI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D68"},73066:{"value":"11D6A","name":"GUNJALA GONDI LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6A"},73067:{"value":"11D6B","name":"GUNJALA GONDI LETTER AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6B"},73068:{"value":"11D6C","name":"GUNJALA GONDI LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6C"},73069:{"value":"11D6D","name":"GUNJALA GONDI LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6D"},73070:{"value":"11D6E","name":"GUNJALA GONDI LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6E"},73071:{"value":"11D6F","name":"GUNJALA GONDI LETTER BHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6F"},73072:{"value":"11D70","name":"GUNJALA GONDI LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D70"},73073:{"value":"11D71","name":"GUNJALA GONDI LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D71"},73074:{"value":"11D72","name":"GUNJALA GONDI LETTER KHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D72"},73075:{"value":"11D73","name":"GUNJALA GONDI LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D73"},73076:{"value":"11D74","name":"GUNJALA GONDI LETTER THA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D74"},73077:{"value":"11D75","name":"GUNJALA GONDI LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D75"},73078:{"value":"11D76","name":"GUNJALA GONDI LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D76"},73079:{"value":"11D77","name":"GUNJALA GONDI LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D77"},73080:{"value":"11D78","name":"GUNJALA GONDI LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D78"},73081:{"value":"11D79","name":"GUNJALA GONDI LETTER DHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D79"},73082:{"value":"11D7A","name":"GUNJALA GONDI LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7A"},73083:{"value":"11D7B","name":"GUNJALA GONDI LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7B"},73084:{"value":"11D7C","name":"GUNJALA GONDI LETTER CHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7C"},73085:{"value":"11D7D","name":"GUNJALA GONDI LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7D"},73086:{"value":"11D7E","name":"GUNJALA GONDI LETTER TTHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7E"},73087:{"value":"11D7F","name":"GUNJALA GONDI LETTER LLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D7F"},73088:{"value":"11D80","name":"GUNJALA GONDI LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D80"},73089:{"value":"11D81","name":"GUNJALA GONDI LETTER JHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D81"},73090:{"value":"11D82","name":"GUNJALA GONDI LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D82"},73091:{"value":"11D83","name":"GUNJALA GONDI LETTER DDHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D83"},73092:{"value":"11D84","name":"GUNJALA GONDI LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D84"},73093:{"value":"11D85","name":"GUNJALA GONDI LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D85"},73094:{"value":"11D86","name":"GUNJALA GONDI LETTER PHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D86"},73095:{"value":"11D87","name":"GUNJALA GONDI LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D87"},73096:{"value":"11D88","name":"GUNJALA GONDI LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D88"},73097:{"value":"11D89","name":"GUNJALA GONDI LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D89"},73112:{"value":"11D98","name":"GUNJALA GONDI OM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D98"},73440:{"value":"11EE0","name":"MAKASAR LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EE0"},73441:{"value":"11EE1","name":"MAKASAR LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EE1"},73442:{"value":"11EE2","name":"MAKASAR LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EE2"},73443:{"value":"11EE3","name":"MAKASAR LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EE3"},73444:{"value":"11EE4","name":"MAKASAR LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EE4"},73445:{"value":"11EE5","name":"MAKASAR LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EE5"},73446:{"value":"11EE6","name":"MAKASAR LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EE6"},73447:{"value":"11EE7","name":"MAKASAR LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EE7"},73448:{"value":"11EE8","name":"MAKASAR LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EE8"},73449:{"value":"11EE9","name":"MAKASAR LETTER CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EE9"},73450:{"value":"11EEA","name":"MAKASAR LETTER JA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EEA"},73451:{"value":"11EEB","name":"MAKASAR LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EEB"},73452:{"value":"11EEC","name":"MAKASAR LETTER YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EEC"},73453:{"value":"11EED","name":"MAKASAR LETTER RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EED"},73454:{"value":"11EEE","name":"MAKASAR LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EEE"},73455:{"value":"11EEF","name":"MAKASAR LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EEF"},73456:{"value":"11EF0","name":"MAKASAR LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EF0"},73457:{"value":"11EF1","name":"MAKASAR LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EF1"},73458:{"value":"11EF2","name":"MAKASAR ANGKA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EF2"},73728:{"value":"12000","name":"CUNEIFORM SIGN A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2000"},73729:{"value":"12001","name":"CUNEIFORM SIGN A TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2001"},73730:{"value":"12002","name":"CUNEIFORM SIGN A TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2002"},73731:{"value":"12003","name":"CUNEIFORM SIGN A TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2003"},73732:{"value":"12004","name":"CUNEIFORM SIGN A TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2004"},73733:{"value":"12005","name":"CUNEIFORM SIGN A TIMES IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2005"},73734:{"value":"12006","name":"CUNEIFORM SIGN A TIMES LAGAR GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2006"},73735:{"value":"12007","name":"CUNEIFORM SIGN A TIMES MUSH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2007"},73736:{"value":"12008","name":"CUNEIFORM SIGN A TIMES SAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2008"},73737:{"value":"12009","name":"CUNEIFORM SIGN A2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2009"},73738:{"value":"1200A","name":"CUNEIFORM SIGN AB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u200A"},73739:{"value":"1200B","name":"CUNEIFORM SIGN AB TIMES ASH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u200B"},73740:{"value":"1200C","name":"CUNEIFORM SIGN AB TIMES DUN3 GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u200C"},73741:{"value":"1200D","name":"CUNEIFORM SIGN AB TIMES GAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u200D"},73742:{"value":"1200E","name":"CUNEIFORM SIGN AB TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u200E"},73743:{"value":"1200F","name":"CUNEIFORM SIGN AB TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u200F"},73744:{"value":"12010","name":"CUNEIFORM SIGN AB TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2010"},73745:{"value":"12011","name":"CUNEIFORM SIGN AB TIMES IMIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2011"},73746:{"value":"12012","name":"CUNEIFORM SIGN AB TIMES LAGAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2012"},73747:{"value":"12013","name":"CUNEIFORM SIGN AB TIMES SHESH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2013"},73748:{"value":"12014","name":"CUNEIFORM SIGN AB TIMES U PLUS U PLUS U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2014"},73749:{"value":"12015","name":"CUNEIFORM SIGN AB GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2015"},73750:{"value":"12016","name":"CUNEIFORM SIGN AB2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2016"},73751:{"value":"12017","name":"CUNEIFORM SIGN AB2 TIMES BALAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2017"},73752:{"value":"12018","name":"CUNEIFORM SIGN AB2 TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2018"},73753:{"value":"12019","name":"CUNEIFORM SIGN AB2 TIMES ME PLUS EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2019"},73754:{"value":"1201A","name":"CUNEIFORM SIGN AB2 TIMES SHA3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u201A"},73755:{"value":"1201B","name":"CUNEIFORM SIGN AB2 TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u201B"},73756:{"value":"1201C","name":"CUNEIFORM SIGN AD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u201C"},73757:{"value":"1201D","name":"CUNEIFORM SIGN AK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u201D"},73758:{"value":"1201E","name":"CUNEIFORM SIGN AK TIMES ERIN2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u201E"},73759:{"value":"1201F","name":"CUNEIFORM SIGN AK TIMES SHITA PLUS GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u201F"},73760:{"value":"12020","name":"CUNEIFORM SIGN AL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2020"},73761:{"value":"12021","name":"CUNEIFORM SIGN AL TIMES AL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2021"},73762:{"value":"12022","name":"CUNEIFORM SIGN AL TIMES DIM2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2022"},73763:{"value":"12023","name":"CUNEIFORM SIGN AL TIMES GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2023"},73764:{"value":"12024","name":"CUNEIFORM SIGN AL TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2024"},73765:{"value":"12025","name":"CUNEIFORM SIGN AL TIMES KAD3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2025"},73766:{"value":"12026","name":"CUNEIFORM SIGN AL TIMES KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2026"},73767:{"value":"12027","name":"CUNEIFORM SIGN AL TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2027"},73768:{"value":"12028","name":"CUNEIFORM SIGN AL TIMES USH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2028"},73769:{"value":"12029","name":"CUNEIFORM SIGN ALAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2029"},73770:{"value":"1202A","name":"CUNEIFORM SIGN ALEPH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u202A"},73771:{"value":"1202B","name":"CUNEIFORM SIGN AMAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u202B"},73772:{"value":"1202C","name":"CUNEIFORM SIGN AMAR TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u202C"},73773:{"value":"1202D","name":"CUNEIFORM SIGN AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u202D"},73774:{"value":"1202E","name":"CUNEIFORM SIGN AN OVER AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u202E"},73775:{"value":"1202F","name":"CUNEIFORM SIGN AN THREE TIMES","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u202F"},73776:{"value":"12030","name":"CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2030"},73777:{"value":"12031","name":"CUNEIFORM SIGN AN PLUS NAGA SQUARED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2031"},73778:{"value":"12032","name":"CUNEIFORM SIGN ANSHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2032"},73779:{"value":"12033","name":"CUNEIFORM SIGN APIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2033"},73780:{"value":"12034","name":"CUNEIFORM SIGN ARAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2034"},73781:{"value":"12035","name":"CUNEIFORM SIGN ARAD TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2035"},73782:{"value":"12036","name":"CUNEIFORM SIGN ARKAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2036"},73783:{"value":"12037","name":"CUNEIFORM SIGN ASAL2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2037"},73784:{"value":"12038","name":"CUNEIFORM SIGN ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2038"},73785:{"value":"12039","name":"CUNEIFORM SIGN ASH ZIDA TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2039"},73786:{"value":"1203A","name":"CUNEIFORM SIGN ASH KABA TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u203A"},73787:{"value":"1203B","name":"CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u203B"},73788:{"value":"1203C","name":"CUNEIFORM SIGN ASH OVER ASH OVER ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u203C"},73789:{"value":"1203D","name":"CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u203D"},73790:{"value":"1203E","name":"CUNEIFORM SIGN ASH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u203E"},73791:{"value":"1203F","name":"CUNEIFORM SIGN ASHGAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u203F"},73792:{"value":"12040","name":"CUNEIFORM SIGN BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2040"},73793:{"value":"12041","name":"CUNEIFORM SIGN BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2041"},73794:{"value":"12042","name":"CUNEIFORM SIGN BAG3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2042"},73795:{"value":"12043","name":"CUNEIFORM SIGN BAHAR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2043"},73796:{"value":"12044","name":"CUNEIFORM SIGN BAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2044"},73797:{"value":"12045","name":"CUNEIFORM SIGN BAL OVER BAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2045"},73798:{"value":"12046","name":"CUNEIFORM SIGN BALAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2046"},73799:{"value":"12047","name":"CUNEIFORM SIGN BAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2047"},73800:{"value":"12048","name":"CUNEIFORM SIGN BARA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2048"},73801:{"value":"12049","name":"CUNEIFORM SIGN BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2049"},73802:{"value":"1204A","name":"CUNEIFORM SIGN BI TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u204A"},73803:{"value":"1204B","name":"CUNEIFORM SIGN BI TIMES GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u204B"},73804:{"value":"1204C","name":"CUNEIFORM SIGN BI TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u204C"},73805:{"value":"1204D","name":"CUNEIFORM SIGN BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u204D"},73806:{"value":"1204E","name":"CUNEIFORM SIGN BU OVER BU AB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u204E"},73807:{"value":"1204F","name":"CUNEIFORM SIGN BU OVER BU UN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u204F"},73808:{"value":"12050","name":"CUNEIFORM SIGN BU CROSSING BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2050"},73809:{"value":"12051","name":"CUNEIFORM SIGN BULUG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2051"},73810:{"value":"12052","name":"CUNEIFORM SIGN BULUG OVER BULUG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2052"},73811:{"value":"12053","name":"CUNEIFORM SIGN BUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2053"},73812:{"value":"12054","name":"CUNEIFORM SIGN BUR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2054"},73813:{"value":"12055","name":"CUNEIFORM SIGN DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2055"},73814:{"value":"12056","name":"CUNEIFORM SIGN DAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2056"},73815:{"value":"12057","name":"CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2057"},73816:{"value":"12058","name":"CUNEIFORM SIGN DAG KISIM5 TIMES AMAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2058"},73817:{"value":"12059","name":"CUNEIFORM SIGN DAG KISIM5 TIMES BALAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2059"},73818:{"value":"1205A","name":"CUNEIFORM SIGN DAG KISIM5 TIMES BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u205A"},73819:{"value":"1205B","name":"CUNEIFORM SIGN DAG KISIM5 TIMES GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u205B"},73820:{"value":"1205C","name":"CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u205C"},73821:{"value":"1205D","name":"CUNEIFORM SIGN DAG KISIM5 TIMES GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u205D"},73822:{"value":"1205E","name":"CUNEIFORM SIGN DAG KISIM5 TIMES GIR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u205E"},73823:{"value":"1205F","name":"CUNEIFORM SIGN DAG KISIM5 TIMES GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u205F"},73824:{"value":"12060","name":"CUNEIFORM SIGN DAG KISIM5 TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2060"},73825:{"value":"12061","name":"CUNEIFORM SIGN DAG KISIM5 TIMES IR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2061"},73826:{"value":"12062","name":"CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2062"},73827:{"value":"12063","name":"CUNEIFORM SIGN DAG KISIM5 TIMES KAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2063"},73828:{"value":"12064","name":"CUNEIFORM SIGN DAG KISIM5 TIMES LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2064"},73829:{"value":"12065","name":"CUNEIFORM SIGN DAG KISIM5 TIMES LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2065"},73830:{"value":"12066","name":"CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2066"},73831:{"value":"12067","name":"CUNEIFORM SIGN DAG KISIM5 TIMES LUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2067"},73832:{"value":"12068","name":"CUNEIFORM SIGN DAG KISIM5 TIMES NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2068"},73833:{"value":"12069","name":"CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2069"},73834:{"value":"1206A","name":"CUNEIFORM SIGN DAG KISIM5 TIMES SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u206A"},73835:{"value":"1206B","name":"CUNEIFORM SIGN DAG KISIM5 TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u206B"},73836:{"value":"1206C","name":"CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u206C"},73837:{"value":"1206D","name":"CUNEIFORM SIGN DAG KISIM5 TIMES USH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u206D"},73838:{"value":"1206E","name":"CUNEIFORM SIGN DAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u206E"},73839:{"value":"1206F","name":"CUNEIFORM SIGN DAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u206F"},73840:{"value":"12070","name":"CUNEIFORM SIGN DARA3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2070"},73841:{"value":"12071","name":"CUNEIFORM SIGN DARA4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2071"},73842:{"value":"12072","name":"CUNEIFORM SIGN DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2072"},73843:{"value":"12073","name":"CUNEIFORM SIGN DIB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2073"},73844:{"value":"12074","name":"CUNEIFORM SIGN DIM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2074"},73845:{"value":"12075","name":"CUNEIFORM SIGN DIM TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2075"},73846:{"value":"12076","name":"CUNEIFORM SIGN DIM2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2076"},73847:{"value":"12077","name":"CUNEIFORM SIGN DIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2077"},73848:{"value":"12078","name":"CUNEIFORM SIGN DIN KASKAL U GUNU DISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2078"},73849:{"value":"12079","name":"CUNEIFORM SIGN DISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2079"},73850:{"value":"1207A","name":"CUNEIFORM SIGN DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u207A"},73851:{"value":"1207B","name":"CUNEIFORM SIGN DU OVER DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u207B"},73852:{"value":"1207C","name":"CUNEIFORM SIGN DU GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u207C"},73853:{"value":"1207D","name":"CUNEIFORM SIGN DU SHESHIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u207D"},73854:{"value":"1207E","name":"CUNEIFORM SIGN DUB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u207E"},73855:{"value":"1207F","name":"CUNEIFORM SIGN DUB TIMES ESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u207F"},73856:{"value":"12080","name":"CUNEIFORM SIGN DUB2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2080"},73857:{"value":"12081","name":"CUNEIFORM SIGN DUG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2081"},73858:{"value":"12082","name":"CUNEIFORM SIGN DUGUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2082"},73859:{"value":"12083","name":"CUNEIFORM SIGN DUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2083"},73860:{"value":"12084","name":"CUNEIFORM SIGN DUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2084"},73861:{"value":"12085","name":"CUNEIFORM SIGN DUN3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2085"},73862:{"value":"12086","name":"CUNEIFORM SIGN DUN3 GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2086"},73863:{"value":"12087","name":"CUNEIFORM SIGN DUN3 GUNU GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2087"},73864:{"value":"12088","name":"CUNEIFORM SIGN DUN4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2088"},73865:{"value":"12089","name":"CUNEIFORM SIGN DUR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2089"},73866:{"value":"1208A","name":"CUNEIFORM SIGN E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u208A"},73867:{"value":"1208B","name":"CUNEIFORM SIGN E TIMES PAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u208B"},73868:{"value":"1208C","name":"CUNEIFORM SIGN E OVER E NUN OVER NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u208C"},73869:{"value":"1208D","name":"CUNEIFORM SIGN E2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u208D"},73870:{"value":"1208E","name":"CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u208E"},73871:{"value":"1208F","name":"CUNEIFORM SIGN E2 TIMES GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u208F"},73872:{"value":"12090","name":"CUNEIFORM SIGN E2 TIMES MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2090"},73873:{"value":"12091","name":"CUNEIFORM SIGN E2 TIMES SAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2091"},73874:{"value":"12092","name":"CUNEIFORM SIGN E2 TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2092"},73875:{"value":"12093","name":"CUNEIFORM SIGN E2 TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2093"},73876:{"value":"12094","name":"CUNEIFORM SIGN EDIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2094"},73877:{"value":"12095","name":"CUNEIFORM SIGN EGIR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2095"},73878:{"value":"12096","name":"CUNEIFORM SIGN EL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2096"},73879:{"value":"12097","name":"CUNEIFORM SIGN EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2097"},73880:{"value":"12098","name":"CUNEIFORM SIGN EN TIMES GAN2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2098"},73881:{"value":"12099","name":"CUNEIFORM SIGN EN TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2099"},73882:{"value":"1209A","name":"CUNEIFORM SIGN EN TIMES ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u209A"},73883:{"value":"1209B","name":"CUNEIFORM SIGN EN CROSSING EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u209B"},73884:{"value":"1209C","name":"CUNEIFORM SIGN EN OPPOSING EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u209C"},73885:{"value":"1209D","name":"CUNEIFORM SIGN EN SQUARED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u209D"},73886:{"value":"1209E","name":"CUNEIFORM SIGN EREN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u209E"},73887:{"value":"1209F","name":"CUNEIFORM SIGN ERIN2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u209F"},73888:{"value":"120A0","name":"CUNEIFORM SIGN ESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20A0"},73889:{"value":"120A1","name":"CUNEIFORM SIGN EZEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20A1"},73890:{"value":"120A2","name":"CUNEIFORM SIGN EZEN TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20A2"},73891:{"value":"120A3","name":"CUNEIFORM SIGN EZEN TIMES A PLUS LAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20A3"},73892:{"value":"120A4","name":"CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20A4"},73893:{"value":"120A5","name":"CUNEIFORM SIGN EZEN TIMES AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20A5"},73894:{"value":"120A6","name":"CUNEIFORM SIGN EZEN TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20A6"},73895:{"value":"120A7","name":"CUNEIFORM SIGN EZEN TIMES DUN3 GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20A7"},73896:{"value":"120A8","name":"CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20A8"},73897:{"value":"120A9","name":"CUNEIFORM SIGN EZEN TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20A9"},73898:{"value":"120AA","name":"CUNEIFORM SIGN EZEN TIMES HA GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20AA"},73899:{"value":"120AB","name":"CUNEIFORM SIGN EZEN TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20AB"},73900:{"value":"120AC","name":"CUNEIFORM SIGN EZEN TIMES KASKAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20AC"},73901:{"value":"120AD","name":"CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20AD"},73902:{"value":"120AE","name":"CUNEIFORM SIGN EZEN TIMES KU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20AE"},73903:{"value":"120AF","name":"CUNEIFORM SIGN EZEN TIMES LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20AF"},73904:{"value":"120B0","name":"CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20B0"},73905:{"value":"120B1","name":"CUNEIFORM SIGN EZEN TIMES LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20B1"},73906:{"value":"120B2","name":"CUNEIFORM SIGN EZEN TIMES LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20B2"},73907:{"value":"120B3","name":"CUNEIFORM SIGN EZEN TIMES U2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20B3"},73908:{"value":"120B4","name":"CUNEIFORM SIGN EZEN TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20B4"},73909:{"value":"120B5","name":"CUNEIFORM SIGN GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20B5"},73910:{"value":"120B6","name":"CUNEIFORM SIGN GA GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20B6"},73911:{"value":"120B7","name":"CUNEIFORM SIGN GA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20B7"},73912:{"value":"120B8","name":"CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20B8"},73913:{"value":"120B9","name":"CUNEIFORM SIGN GA2 TIMES A PLUS HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20B9"},73914:{"value":"120BA","name":"CUNEIFORM SIGN GA2 TIMES A PLUS IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20BA"},73915:{"value":"120BB","name":"CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20BB"},73916:{"value":"120BC","name":"CUNEIFORM SIGN GA2 TIMES AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20BC"},73917:{"value":"120BD","name":"CUNEIFORM SIGN GA2 TIMES ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20BD"},73918:{"value":"120BE","name":"CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20BE"},73919:{"value":"120BF","name":"CUNEIFORM SIGN GA2 TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20BF"},73920:{"value":"120C0","name":"CUNEIFORM SIGN GA2 TIMES BAR PLUS RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20C0"},73921:{"value":"120C1","name":"CUNEIFORM SIGN GA2 TIMES BUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20C1"},73922:{"value":"120C2","name":"CUNEIFORM SIGN GA2 TIMES BUR PLUS RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20C2"},73923:{"value":"120C3","name":"CUNEIFORM SIGN GA2 TIMES DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20C3"},73924:{"value":"120C4","name":"CUNEIFORM SIGN GA2 TIMES DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20C4"},73925:{"value":"120C5","name":"CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20C5"},73926:{"value":"120C6","name":"CUNEIFORM SIGN GA2 TIMES DUB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20C6"},73927:{"value":"120C7","name":"CUNEIFORM SIGN GA2 TIMES EL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20C7"},73928:{"value":"120C8","name":"CUNEIFORM SIGN GA2 TIMES EL PLUS LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20C8"},73929:{"value":"120C9","name":"CUNEIFORM SIGN GA2 TIMES EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20C9"},73930:{"value":"120CA","name":"CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20CA"},73931:{"value":"120CB","name":"CUNEIFORM SIGN GA2 TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20CB"},73932:{"value":"120CC","name":"CUNEIFORM SIGN GA2 TIMES GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20CC"},73933:{"value":"120CD","name":"CUNEIFORM SIGN GA2 TIMES GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20CD"},73934:{"value":"120CE","name":"CUNEIFORM SIGN GA2 TIMES GI4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20CE"},73935:{"value":"120CF","name":"CUNEIFORM SIGN GA2 TIMES GI4 PLUS A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20CF"},73936:{"value":"120D0","name":"CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D0"},73937:{"value":"120D1","name":"CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D1"},73938:{"value":"120D2","name":"CUNEIFORM SIGN GA2 TIMES HAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D2"},73939:{"value":"120D3","name":"CUNEIFORM SIGN GA2 TIMES HAL PLUS LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D3"},73940:{"value":"120D4","name":"CUNEIFORM SIGN GA2 TIMES HI PLUS LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D4"},73941:{"value":"120D5","name":"CUNEIFORM SIGN GA2 TIMES HUB2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D5"},73942:{"value":"120D6","name":"CUNEIFORM SIGN GA2 TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D6"},73943:{"value":"120D7","name":"CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D7"},73944:{"value":"120D8","name":"CUNEIFORM SIGN GA2 TIMES KAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D8"},73945:{"value":"120D9","name":"CUNEIFORM SIGN GA2 TIMES KASKAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D9"},73946:{"value":"120DA","name":"CUNEIFORM SIGN GA2 TIMES KID","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20DA"},73947:{"value":"120DB","name":"CUNEIFORM SIGN GA2 TIMES KID PLUS LAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20DB"},73948:{"value":"120DC","name":"CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20DC"},73949:{"value":"120DD","name":"CUNEIFORM SIGN GA2 TIMES LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20DD"},73950:{"value":"120DE","name":"CUNEIFORM SIGN GA2 TIMES ME PLUS EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20DE"},73951:{"value":"120DF","name":"CUNEIFORM SIGN GA2 TIMES MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20DF"},73952:{"value":"120E0","name":"CUNEIFORM SIGN GA2 TIMES NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E0"},73953:{"value":"120E1","name":"CUNEIFORM SIGN GA2 TIMES NUN OVER NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E1"},73954:{"value":"120E2","name":"CUNEIFORM SIGN GA2 TIMES PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E2"},73955:{"value":"120E3","name":"CUNEIFORM SIGN GA2 TIMES SAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E3"},73956:{"value":"120E4","name":"CUNEIFORM SIGN GA2 TIMES SAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E4"},73957:{"value":"120E5","name":"CUNEIFORM SIGN GA2 TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E5"},73958:{"value":"120E6","name":"CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E6"},73959:{"value":"120E7","name":"CUNEIFORM SIGN GA2 TIMES SHID","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E7"},73960:{"value":"120E8","name":"CUNEIFORM SIGN GA2 TIMES SUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E8"},73961:{"value":"120E9","name":"CUNEIFORM SIGN GA2 TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E9"},73962:{"value":"120EA","name":"CUNEIFORM SIGN GA2 TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20EA"},73963:{"value":"120EB","name":"CUNEIFORM SIGN GA2 TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20EB"},73964:{"value":"120EC","name":"CUNEIFORM SIGN GA2 TIMES UD PLUS DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20EC"},73965:{"value":"120ED","name":"CUNEIFORM SIGN GA2 OVER GA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20ED"},73966:{"value":"120EE","name":"CUNEIFORM SIGN GABA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20EE"},73967:{"value":"120EF","name":"CUNEIFORM SIGN GABA CROSSING GABA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20EF"},73968:{"value":"120F0","name":"CUNEIFORM SIGN GAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F0"},73969:{"value":"120F1","name":"CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F1"},73970:{"value":"120F2","name":"CUNEIFORM SIGN GAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F2"},73971:{"value":"120F3","name":"CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F3"},73972:{"value":"120F4","name":"CUNEIFORM SIGN GALAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F4"},73973:{"value":"120F5","name":"CUNEIFORM SIGN GAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F5"},73974:{"value":"120F6","name":"CUNEIFORM SIGN GAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F6"},73975:{"value":"120F7","name":"CUNEIFORM SIGN GAN2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F7"},73976:{"value":"120F8","name":"CUNEIFORM SIGN GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F8"},73977:{"value":"120F9","name":"CUNEIFORM SIGN GAN2 OVER GAN2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F9"},73978:{"value":"120FA","name":"CUNEIFORM SIGN GAN2 CROSSING GAN2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20FA"},73979:{"value":"120FB","name":"CUNEIFORM SIGN GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20FB"},73980:{"value":"120FC","name":"CUNEIFORM SIGN GAR3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20FC"},73981:{"value":"120FD","name":"CUNEIFORM SIGN GASHAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20FD"},73982:{"value":"120FE","name":"CUNEIFORM SIGN GESHTIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20FE"},73983:{"value":"120FF","name":"CUNEIFORM SIGN GESHTIN TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20FF"},73984:{"value":"12100","name":"CUNEIFORM SIGN GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2100"},73985:{"value":"12101","name":"CUNEIFORM SIGN GI TIMES E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2101"},73986:{"value":"12102","name":"CUNEIFORM SIGN GI TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2102"},73987:{"value":"12103","name":"CUNEIFORM SIGN GI CROSSING GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2103"},73988:{"value":"12104","name":"CUNEIFORM SIGN GI4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2104"},73989:{"value":"12105","name":"CUNEIFORM SIGN GI4 OVER GI4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2105"},73990:{"value":"12106","name":"CUNEIFORM SIGN GI4 CROSSING GI4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2106"},73991:{"value":"12107","name":"CUNEIFORM SIGN GIDIM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2107"},73992:{"value":"12108","name":"CUNEIFORM SIGN GIR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2108"},73993:{"value":"12109","name":"CUNEIFORM SIGN GIR2 GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2109"},73994:{"value":"1210A","name":"CUNEIFORM SIGN GIR3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210A"},73995:{"value":"1210B","name":"CUNEIFORM SIGN GIR3 TIMES A PLUS IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210B"},73996:{"value":"1210C","name":"CUNEIFORM SIGN GIR3 TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210C"},73997:{"value":"1210D","name":"CUNEIFORM SIGN GIR3 TIMES IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210D"},73998:{"value":"1210E","name":"CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210E"},73999:{"value":"1210F","name":"CUNEIFORM SIGN GIR3 TIMES PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u210F"},74000:{"value":"12110","name":"CUNEIFORM SIGN GISAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2110"},74001:{"value":"12111","name":"CUNEIFORM SIGN GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2111"},74002:{"value":"12112","name":"CUNEIFORM SIGN GISH CROSSING GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2112"},74003:{"value":"12113","name":"CUNEIFORM SIGN GISH TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2113"},74004:{"value":"12114","name":"CUNEIFORM SIGN GISH TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2114"},74005:{"value":"12115","name":"CUNEIFORM SIGN GISH TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2115"},74006:{"value":"12116","name":"CUNEIFORM SIGN GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2116"},74007:{"value":"12117","name":"CUNEIFORM SIGN GU CROSSING GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2117"},74008:{"value":"12118","name":"CUNEIFORM SIGN GU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2118"},74009:{"value":"12119","name":"CUNEIFORM SIGN GU2 TIMES KAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2119"},74010:{"value":"1211A","name":"CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u211A"},74011:{"value":"1211B","name":"CUNEIFORM SIGN GU2 TIMES NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u211B"},74012:{"value":"1211C","name":"CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u211C"},74013:{"value":"1211D","name":"CUNEIFORM SIGN GU2 GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u211D"},74014:{"value":"1211E","name":"CUNEIFORM SIGN GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u211E"},74015:{"value":"1211F","name":"CUNEIFORM SIGN GUD TIMES A PLUS KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u211F"},74016:{"value":"12120","name":"CUNEIFORM SIGN GUD TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2120"},74017:{"value":"12121","name":"CUNEIFORM SIGN GUD OVER GUD LUGAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2121"},74018:{"value":"12122","name":"CUNEIFORM SIGN GUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2122"},74019:{"value":"12123","name":"CUNEIFORM SIGN GUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2123"},74020:{"value":"12124","name":"CUNEIFORM SIGN GUM TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2124"},74021:{"value":"12125","name":"CUNEIFORM SIGN GUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2125"},74022:{"value":"12126","name":"CUNEIFORM SIGN GUR7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2126"},74023:{"value":"12127","name":"CUNEIFORM SIGN GURUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2127"},74024:{"value":"12128","name":"CUNEIFORM SIGN GURUSH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2128"},74025:{"value":"12129","name":"CUNEIFORM SIGN HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2129"},74026:{"value":"1212A","name":"CUNEIFORM SIGN HA TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u212A"},74027:{"value":"1212B","name":"CUNEIFORM SIGN HA GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u212B"},74028:{"value":"1212C","name":"CUNEIFORM SIGN HAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u212C"},74029:{"value":"1212D","name":"CUNEIFORM SIGN HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u212D"},74030:{"value":"1212E","name":"CUNEIFORM SIGN HI TIMES ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u212E"},74031:{"value":"1212F","name":"CUNEIFORM SIGN HI TIMES ASH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u212F"},74032:{"value":"12130","name":"CUNEIFORM SIGN HI TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2130"},74033:{"value":"12131","name":"CUNEIFORM SIGN HI TIMES DISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2131"},74034:{"value":"12132","name":"CUNEIFORM SIGN HI TIMES GAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2132"},74035:{"value":"12133","name":"CUNEIFORM SIGN HI TIMES KIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2133"},74036:{"value":"12134","name":"CUNEIFORM SIGN HI TIMES NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2134"},74037:{"value":"12135","name":"CUNEIFORM SIGN HI TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2135"},74038:{"value":"12136","name":"CUNEIFORM SIGN HI TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2136"},74039:{"value":"12137","name":"CUNEIFORM SIGN HU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2137"},74040:{"value":"12138","name":"CUNEIFORM SIGN HUB2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2138"},74041:{"value":"12139","name":"CUNEIFORM SIGN HUB2 TIMES AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2139"},74042:{"value":"1213A","name":"CUNEIFORM SIGN HUB2 TIMES HAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u213A"},74043:{"value":"1213B","name":"CUNEIFORM SIGN HUB2 TIMES KASKAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u213B"},74044:{"value":"1213C","name":"CUNEIFORM SIGN HUB2 TIMES LISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u213C"},74045:{"value":"1213D","name":"CUNEIFORM SIGN HUB2 TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u213D"},74046:{"value":"1213E","name":"CUNEIFORM SIGN HUL2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u213E"},74047:{"value":"1213F","name":"CUNEIFORM SIGN I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u213F"},74048:{"value":"12140","name":"CUNEIFORM SIGN I A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2140"},74049:{"value":"12141","name":"CUNEIFORM SIGN IB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2141"},74050:{"value":"12142","name":"CUNEIFORM SIGN IDIM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2142"},74051:{"value":"12143","name":"CUNEIFORM SIGN IDIM OVER IDIM BUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2143"},74052:{"value":"12144","name":"CUNEIFORM SIGN IDIM OVER IDIM SQUARED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2144"},74053:{"value":"12145","name":"CUNEIFORM SIGN IG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2145"},74054:{"value":"12146","name":"CUNEIFORM SIGN IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2146"},74055:{"value":"12147","name":"CUNEIFORM SIGN IGI DIB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2147"},74056:{"value":"12148","name":"CUNEIFORM SIGN IGI RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2148"},74057:{"value":"12149","name":"CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2149"},74058:{"value":"1214A","name":"CUNEIFORM SIGN IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u214A"},74059:{"value":"1214B","name":"CUNEIFORM SIGN IL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u214B"},74060:{"value":"1214C","name":"CUNEIFORM SIGN IL TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u214C"},74061:{"value":"1214D","name":"CUNEIFORM SIGN IL2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u214D"},74062:{"value":"1214E","name":"CUNEIFORM SIGN IM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u214E"},74063:{"value":"1214F","name":"CUNEIFORM SIGN IM TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u214F"},74064:{"value":"12150","name":"CUNEIFORM SIGN IM CROSSING IM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2150"},74065:{"value":"12151","name":"CUNEIFORM SIGN IM OPPOSING IM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2151"},74066:{"value":"12152","name":"CUNEIFORM SIGN IM SQUARED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2152"},74067:{"value":"12153","name":"CUNEIFORM SIGN IMIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2153"},74068:{"value":"12154","name":"CUNEIFORM SIGN IN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2154"},74069:{"value":"12155","name":"CUNEIFORM SIGN IR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2155"},74070:{"value":"12156","name":"CUNEIFORM SIGN ISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2156"},74071:{"value":"12157","name":"CUNEIFORM SIGN KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2157"},74072:{"value":"12158","name":"CUNEIFORM SIGN KA TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2158"},74073:{"value":"12159","name":"CUNEIFORM SIGN KA TIMES AD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2159"},74074:{"value":"1215A","name":"CUNEIFORM SIGN KA TIMES AD PLUS KU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u215A"},74075:{"value":"1215B","name":"CUNEIFORM SIGN KA TIMES ASH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u215B"},74076:{"value":"1215C","name":"CUNEIFORM SIGN KA TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u215C"},74077:{"value":"1215D","name":"CUNEIFORM SIGN KA TIMES BALAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u215D"},74078:{"value":"1215E","name":"CUNEIFORM SIGN KA TIMES BAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u215E"},74079:{"value":"1215F","name":"CUNEIFORM SIGN KA TIMES BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u215F"},74080:{"value":"12160","name":"CUNEIFORM SIGN KA TIMES ERIN2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2160"},74081:{"value":"12161","name":"CUNEIFORM SIGN KA TIMES ESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2161"},74082:{"value":"12162","name":"CUNEIFORM SIGN KA TIMES GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2162"},74083:{"value":"12163","name":"CUNEIFORM SIGN KA TIMES GAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2163"},74084:{"value":"12164","name":"CUNEIFORM SIGN KA TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2164"},74085:{"value":"12165","name":"CUNEIFORM SIGN KA TIMES GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2165"},74086:{"value":"12166","name":"CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2166"},74087:{"value":"12167","name":"CUNEIFORM SIGN KA TIMES GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2167"},74088:{"value":"12168","name":"CUNEIFORM SIGN KA TIMES GIR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2168"},74089:{"value":"12169","name":"CUNEIFORM SIGN KA TIMES GISH PLUS SAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2169"},74090:{"value":"1216A","name":"CUNEIFORM SIGN KA TIMES GISH CROSSING GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u216A"},74091:{"value":"1216B","name":"CUNEIFORM SIGN KA TIMES GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u216B"},74092:{"value":"1216C","name":"CUNEIFORM SIGN KA TIMES GUR7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u216C"},74093:{"value":"1216D","name":"CUNEIFORM SIGN KA TIMES IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u216D"},74094:{"value":"1216E","name":"CUNEIFORM SIGN KA TIMES IM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u216E"},74095:{"value":"1216F","name":"CUNEIFORM SIGN KA TIMES KAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u216F"},74096:{"value":"12170","name":"CUNEIFORM SIGN KA TIMES KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2170"},74097:{"value":"12171","name":"CUNEIFORM SIGN KA TIMES KID","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2171"},74098:{"value":"12172","name":"CUNEIFORM SIGN KA TIMES LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2172"},74099:{"value":"12173","name":"CUNEIFORM SIGN KA TIMES LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2173"},74100:{"value":"12174","name":"CUNEIFORM SIGN KA TIMES ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2174"},74101:{"value":"12175","name":"CUNEIFORM SIGN KA TIMES ME PLUS DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2175"},74102:{"value":"12176","name":"CUNEIFORM SIGN KA TIMES ME PLUS GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2176"},74103:{"value":"12177","name":"CUNEIFORM SIGN KA TIMES ME PLUS TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2177"},74104:{"value":"12178","name":"CUNEIFORM SIGN KA TIMES MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2178"},74105:{"value":"12179","name":"CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2179"},74106:{"value":"1217A","name":"CUNEIFORM SIGN KA TIMES NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u217A"},74107:{"value":"1217B","name":"CUNEIFORM SIGN KA TIMES NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u217B"},74108:{"value":"1217C","name":"CUNEIFORM SIGN KA TIMES PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u217C"},74109:{"value":"1217D","name":"CUNEIFORM SIGN KA TIMES RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u217D"},74110:{"value":"1217E","name":"CUNEIFORM SIGN KA TIMES SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u217E"},74111:{"value":"1217F","name":"CUNEIFORM SIGN KA TIMES SAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u217F"},74112:{"value":"12180","name":"CUNEIFORM SIGN KA TIMES SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2180"},74113:{"value":"12181","name":"CUNEIFORM SIGN KA TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2181"},74114:{"value":"12182","name":"CUNEIFORM SIGN KA TIMES SHID","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2182"},74115:{"value":"12183","name":"CUNEIFORM SIGN KA TIMES SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2183"},74116:{"value":"12184","name":"CUNEIFORM SIGN KA TIMES SIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2184"},74117:{"value":"12185","name":"CUNEIFORM SIGN KA TIMES SUHUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2185"},74118:{"value":"12186","name":"CUNEIFORM SIGN KA TIMES TAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2186"},74119:{"value":"12187","name":"CUNEIFORM SIGN KA TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2187"},74120:{"value":"12188","name":"CUNEIFORM SIGN KA TIMES U2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2188"},74121:{"value":"12189","name":"CUNEIFORM SIGN KA TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2189"},74122:{"value":"1218A","name":"CUNEIFORM SIGN KA TIMES UMUM TIMES PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u218A"},74123:{"value":"1218B","name":"CUNEIFORM SIGN KA TIMES USH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u218B"},74124:{"value":"1218C","name":"CUNEIFORM SIGN KA TIMES ZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u218C"},74125:{"value":"1218D","name":"CUNEIFORM SIGN KA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u218D"},74126:{"value":"1218E","name":"CUNEIFORM SIGN KA2 CROSSING KA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u218E"},74127:{"value":"1218F","name":"CUNEIFORM SIGN KAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u218F"},74128:{"value":"12190","name":"CUNEIFORM SIGN KAD2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2190"},74129:{"value":"12191","name":"CUNEIFORM SIGN KAD3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2191"},74130:{"value":"12192","name":"CUNEIFORM SIGN KAD4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2192"},74131:{"value":"12193","name":"CUNEIFORM SIGN KAD5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2193"},74132:{"value":"12194","name":"CUNEIFORM SIGN KAD5 OVER KAD5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2194"},74133:{"value":"12195","name":"CUNEIFORM SIGN KAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2195"},74134:{"value":"12196","name":"CUNEIFORM SIGN KAK TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2196"},74135:{"value":"12197","name":"CUNEIFORM SIGN KAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2197"},74136:{"value":"12198","name":"CUNEIFORM SIGN KAL TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2198"},74137:{"value":"12199","name":"CUNEIFORM SIGN KAL CROSSING KAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2199"},74138:{"value":"1219A","name":"CUNEIFORM SIGN KAM2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u219A"},74139:{"value":"1219B","name":"CUNEIFORM SIGN KAM4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u219B"},74140:{"value":"1219C","name":"CUNEIFORM SIGN KASKAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u219C"},74141:{"value":"1219D","name":"CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u219D"},74142:{"value":"1219E","name":"CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u219E"},74143:{"value":"1219F","name":"CUNEIFORM SIGN KESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u219F"},74144:{"value":"121A0","name":"CUNEIFORM SIGN KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21A0"},74145:{"value":"121A1","name":"CUNEIFORM SIGN KI TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21A1"},74146:{"value":"121A2","name":"CUNEIFORM SIGN KI TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21A2"},74147:{"value":"121A3","name":"CUNEIFORM SIGN KI TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21A3"},74148:{"value":"121A4","name":"CUNEIFORM SIGN KID","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21A4"},74149:{"value":"121A5","name":"CUNEIFORM SIGN KIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21A5"},74150:{"value":"121A6","name":"CUNEIFORM SIGN KISAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21A6"},74151:{"value":"121A7","name":"CUNEIFORM SIGN KISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21A7"},74152:{"value":"121A8","name":"CUNEIFORM SIGN KISIM5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21A8"},74153:{"value":"121A9","name":"CUNEIFORM SIGN KISIM5 OVER KISIM5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21A9"},74154:{"value":"121AA","name":"CUNEIFORM SIGN KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21AA"},74155:{"value":"121AB","name":"CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21AB"},74156:{"value":"121AC","name":"CUNEIFORM SIGN KU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21AC"},74157:{"value":"121AD","name":"CUNEIFORM SIGN KU4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21AD"},74158:{"value":"121AE","name":"CUNEIFORM SIGN KU4 VARIANT FORM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21AE"},74159:{"value":"121AF","name":"CUNEIFORM SIGN KU7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21AF"},74160:{"value":"121B0","name":"CUNEIFORM SIGN KUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21B0"},74161:{"value":"121B1","name":"CUNEIFORM SIGN KUL GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21B1"},74162:{"value":"121B2","name":"CUNEIFORM SIGN KUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21B2"},74163:{"value":"121B3","name":"CUNEIFORM SIGN KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21B3"},74164:{"value":"121B4","name":"CUNEIFORM SIGN KUR OPPOSING KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21B4"},74165:{"value":"121B5","name":"CUNEIFORM SIGN KUSHU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21B5"},74166:{"value":"121B6","name":"CUNEIFORM SIGN KWU318","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21B6"},74167:{"value":"121B7","name":"CUNEIFORM SIGN LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21B7"},74168:{"value":"121B8","name":"CUNEIFORM SIGN LAGAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21B8"},74169:{"value":"121B9","name":"CUNEIFORM SIGN LAGAB TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21B9"},74170:{"value":"121BA","name":"CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21BA"},74171:{"value":"121BB","name":"CUNEIFORM SIGN LAGAB TIMES A PLUS GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21BB"},74172:{"value":"121BC","name":"CUNEIFORM SIGN LAGAB TIMES A PLUS LAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21BC"},74173:{"value":"121BD","name":"CUNEIFORM SIGN LAGAB TIMES AL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21BD"},74174:{"value":"121BE","name":"CUNEIFORM SIGN LAGAB TIMES AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21BE"},74175:{"value":"121BF","name":"CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21BF"},74176:{"value":"121C0","name":"CUNEIFORM SIGN LAGAB TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21C0"},74177:{"value":"121C1","name":"CUNEIFORM SIGN LAGAB TIMES BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21C1"},74178:{"value":"121C2","name":"CUNEIFORM SIGN LAGAB TIMES DAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21C2"},74179:{"value":"121C3","name":"CUNEIFORM SIGN LAGAB TIMES EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21C3"},74180:{"value":"121C4","name":"CUNEIFORM SIGN LAGAB TIMES GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21C4"},74181:{"value":"121C5","name":"CUNEIFORM SIGN LAGAB TIMES GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21C5"},74182:{"value":"121C6","name":"CUNEIFORM SIGN LAGAB TIMES GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21C6"},74183:{"value":"121C7","name":"CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21C7"},74184:{"value":"121C8","name":"CUNEIFORM SIGN LAGAB TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21C8"},74185:{"value":"121C9","name":"CUNEIFORM SIGN LAGAB TIMES HAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21C9"},74186:{"value":"121CA","name":"CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21CA"},74187:{"value":"121CB","name":"CUNEIFORM SIGN LAGAB TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21CB"},74188:{"value":"121CC","name":"CUNEIFORM SIGN LAGAB TIMES IM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21CC"},74189:{"value":"121CD","name":"CUNEIFORM SIGN LAGAB TIMES IM PLUS HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21CD"},74190:{"value":"121CE","name":"CUNEIFORM SIGN LAGAB TIMES IM PLUS LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21CE"},74191:{"value":"121CF","name":"CUNEIFORM SIGN LAGAB TIMES KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21CF"},74192:{"value":"121D0","name":"CUNEIFORM SIGN LAGAB TIMES KIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21D0"},74193:{"value":"121D1","name":"CUNEIFORM SIGN LAGAB TIMES KU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21D1"},74194:{"value":"121D2","name":"CUNEIFORM SIGN LAGAB TIMES KUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21D2"},74195:{"value":"121D3","name":"CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21D3"},74196:{"value":"121D4","name":"CUNEIFORM SIGN LAGAB TIMES LAGAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21D4"},74197:{"value":"121D5","name":"CUNEIFORM SIGN LAGAB TIMES LISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21D5"},74198:{"value":"121D6","name":"CUNEIFORM SIGN LAGAB TIMES LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21D6"},74199:{"value":"121D7","name":"CUNEIFORM SIGN LAGAB TIMES LUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21D7"},74200:{"value":"121D8","name":"CUNEIFORM SIGN LAGAB TIMES ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21D8"},74201:{"value":"121D9","name":"CUNEIFORM SIGN LAGAB TIMES ME PLUS EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21D9"},74202:{"value":"121DA","name":"CUNEIFORM SIGN LAGAB TIMES MUSH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21DA"},74203:{"value":"121DB","name":"CUNEIFORM SIGN LAGAB TIMES NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21DB"},74204:{"value":"121DC","name":"CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21DC"},74205:{"value":"121DD","name":"CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21DD"},74206:{"value":"121DE","name":"CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21DE"},74207:{"value":"121DF","name":"CUNEIFORM SIGN LAGAB TIMES SHU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21DF"},74208:{"value":"121E0","name":"CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21E0"},74209:{"value":"121E1","name":"CUNEIFORM SIGN LAGAB TIMES SUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21E1"},74210:{"value":"121E2","name":"CUNEIFORM SIGN LAGAB TIMES TAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21E2"},74211:{"value":"121E3","name":"CUNEIFORM SIGN LAGAB TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21E3"},74212:{"value":"121E4","name":"CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21E4"},74213:{"value":"121E5","name":"CUNEIFORM SIGN LAGAB TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21E5"},74214:{"value":"121E6","name":"CUNEIFORM SIGN LAGAB TIMES U PLUS A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21E6"},74215:{"value":"121E7","name":"CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21E7"},74216:{"value":"121E8","name":"CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21E8"},74217:{"value":"121E9","name":"CUNEIFORM SIGN LAGAB TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21E9"},74218:{"value":"121EA","name":"CUNEIFORM SIGN LAGAB TIMES USH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21EA"},74219:{"value":"121EB","name":"CUNEIFORM SIGN LAGAB SQUARED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21EB"},74220:{"value":"121EC","name":"CUNEIFORM SIGN LAGAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21EC"},74221:{"value":"121ED","name":"CUNEIFORM SIGN LAGAR TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21ED"},74222:{"value":"121EE","name":"CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21EE"},74223:{"value":"121EF","name":"CUNEIFORM SIGN LAGAR GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21EF"},74224:{"value":"121F0","name":"CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21F0"},74225:{"value":"121F1","name":"CUNEIFORM SIGN LAHSHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21F1"},74226:{"value":"121F2","name":"CUNEIFORM SIGN LAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21F2"},74227:{"value":"121F3","name":"CUNEIFORM SIGN LAL TIMES LAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21F3"},74228:{"value":"121F4","name":"CUNEIFORM SIGN LAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21F4"},74229:{"value":"121F5","name":"CUNEIFORM SIGN LAM TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21F5"},74230:{"value":"121F6","name":"CUNEIFORM SIGN LAM TIMES KUR PLUS RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21F6"},74231:{"value":"121F7","name":"CUNEIFORM SIGN LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21F7"},74232:{"value":"121F8","name":"CUNEIFORM SIGN LIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21F8"},74233:{"value":"121F9","name":"CUNEIFORM SIGN LIMMU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21F9"},74234:{"value":"121FA","name":"CUNEIFORM SIGN LISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21FA"},74235:{"value":"121FB","name":"CUNEIFORM SIGN LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21FB"},74236:{"value":"121FC","name":"CUNEIFORM SIGN LU TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21FC"},74237:{"value":"121FD","name":"CUNEIFORM SIGN LU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21FD"},74238:{"value":"121FE","name":"CUNEIFORM SIGN LU2 TIMES AL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21FE"},74239:{"value":"121FF","name":"CUNEIFORM SIGN LU2 TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u21FF"},74240:{"value":"12200","name":"CUNEIFORM SIGN LU2 TIMES ESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2200"},74241:{"value":"12201","name":"CUNEIFORM SIGN LU2 TIMES ESH2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2201"},74242:{"value":"12202","name":"CUNEIFORM SIGN LU2 TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2202"},74243:{"value":"12203","name":"CUNEIFORM SIGN LU2 TIMES HI TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2203"},74244:{"value":"12204","name":"CUNEIFORM SIGN LU2 TIMES IM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2204"},74245:{"value":"12205","name":"CUNEIFORM SIGN LU2 TIMES KAD2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2205"},74246:{"value":"12206","name":"CUNEIFORM SIGN LU2 TIMES KAD3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2206"},74247:{"value":"12207","name":"CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2207"},74248:{"value":"12208","name":"CUNEIFORM SIGN LU2 TIMES KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2208"},74249:{"value":"12209","name":"CUNEIFORM SIGN LU2 TIMES LA PLUS ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2209"},74250:{"value":"1220A","name":"CUNEIFORM SIGN LU2 TIMES LAGAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u220A"},74251:{"value":"1220B","name":"CUNEIFORM SIGN LU2 TIMES ME PLUS EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u220B"},74252:{"value":"1220C","name":"CUNEIFORM SIGN LU2 TIMES NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u220C"},74253:{"value":"1220D","name":"CUNEIFORM SIGN LU2 TIMES NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u220D"},74254:{"value":"1220E","name":"CUNEIFORM SIGN LU2 TIMES SI PLUS ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u220E"},74255:{"value":"1220F","name":"CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u220F"},74256:{"value":"12210","name":"CUNEIFORM SIGN LU2 TIMES TUG2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2210"},74257:{"value":"12211","name":"CUNEIFORM SIGN LU2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2211"},74258:{"value":"12212","name":"CUNEIFORM SIGN LU2 CROSSING LU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2212"},74259:{"value":"12213","name":"CUNEIFORM SIGN LU2 OPPOSING LU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2213"},74260:{"value":"12214","name":"CUNEIFORM SIGN LU2 SQUARED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2214"},74261:{"value":"12215","name":"CUNEIFORM SIGN LU2 SHESHIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2215"},74262:{"value":"12216","name":"CUNEIFORM SIGN LU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2216"},74263:{"value":"12217","name":"CUNEIFORM SIGN LUGAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2217"},74264:{"value":"12218","name":"CUNEIFORM SIGN LUGAL OVER LUGAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2218"},74265:{"value":"12219","name":"CUNEIFORM SIGN LUGAL OPPOSING LUGAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2219"},74266:{"value":"1221A","name":"CUNEIFORM SIGN LUGAL SHESHIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u221A"},74267:{"value":"1221B","name":"CUNEIFORM SIGN LUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u221B"},74268:{"value":"1221C","name":"CUNEIFORM SIGN LUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u221C"},74269:{"value":"1221D","name":"CUNEIFORM SIGN LUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u221D"},74270:{"value":"1221E","name":"CUNEIFORM SIGN LUM OVER LUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u221E"},74271:{"value":"1221F","name":"CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u221F"},74272:{"value":"12220","name":"CUNEIFORM SIGN MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2220"},74273:{"value":"12221","name":"CUNEIFORM SIGN MA TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2221"},74274:{"value":"12222","name":"CUNEIFORM SIGN MA GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2222"},74275:{"value":"12223","name":"CUNEIFORM SIGN MA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2223"},74276:{"value":"12224","name":"CUNEIFORM SIGN MAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2224"},74277:{"value":"12225","name":"CUNEIFORM SIGN MAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2225"},74278:{"value":"12226","name":"CUNEIFORM SIGN MASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2226"},74279:{"value":"12227","name":"CUNEIFORM SIGN MASH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2227"},74280:{"value":"12228","name":"CUNEIFORM SIGN ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2228"},74281:{"value":"12229","name":"CUNEIFORM SIGN MES","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2229"},74282:{"value":"1222A","name":"CUNEIFORM SIGN MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u222A"},74283:{"value":"1222B","name":"CUNEIFORM SIGN MIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u222B"},74284:{"value":"1222C","name":"CUNEIFORM SIGN MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u222C"},74285:{"value":"1222D","name":"CUNEIFORM SIGN MU OVER MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u222D"},74286:{"value":"1222E","name":"CUNEIFORM SIGN MUG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u222E"},74287:{"value":"1222F","name":"CUNEIFORM SIGN MUG GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u222F"},74288:{"value":"12230","name":"CUNEIFORM SIGN MUNSUB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2230"},74289:{"value":"12231","name":"CUNEIFORM SIGN MURGU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2231"},74290:{"value":"12232","name":"CUNEIFORM SIGN MUSH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2232"},74291:{"value":"12233","name":"CUNEIFORM SIGN MUSH TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2233"},74292:{"value":"12234","name":"CUNEIFORM SIGN MUSH TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2234"},74293:{"value":"12235","name":"CUNEIFORM SIGN MUSH TIMES ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2235"},74294:{"value":"12236","name":"CUNEIFORM SIGN MUSH OVER MUSH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2236"},74295:{"value":"12237","name":"CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2237"},74296:{"value":"12238","name":"CUNEIFORM SIGN MUSH CROSSING MUSH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2238"},74297:{"value":"12239","name":"CUNEIFORM SIGN MUSH3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2239"},74298:{"value":"1223A","name":"CUNEIFORM SIGN MUSH3 TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u223A"},74299:{"value":"1223B","name":"CUNEIFORM SIGN MUSH3 TIMES A PLUS DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u223B"},74300:{"value":"1223C","name":"CUNEIFORM SIGN MUSH3 TIMES DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u223C"},74301:{"value":"1223D","name":"CUNEIFORM SIGN MUSH3 GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u223D"},74302:{"value":"1223E","name":"CUNEIFORM SIGN NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u223E"},74303:{"value":"1223F","name":"CUNEIFORM SIGN NA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u223F"},74304:{"value":"12240","name":"CUNEIFORM SIGN NAGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2240"},74305:{"value":"12241","name":"CUNEIFORM SIGN NAGA INVERTED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2241"},74306:{"value":"12242","name":"CUNEIFORM SIGN NAGA TIMES SHU TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2242"},74307:{"value":"12243","name":"CUNEIFORM SIGN NAGA OPPOSING NAGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2243"},74308:{"value":"12244","name":"CUNEIFORM SIGN NAGAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2244"},74309:{"value":"12245","name":"CUNEIFORM SIGN NAM NUTILLU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2245"},74310:{"value":"12246","name":"CUNEIFORM SIGN NAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2246"},74311:{"value":"12247","name":"CUNEIFORM SIGN NAM2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2247"},74312:{"value":"12248","name":"CUNEIFORM SIGN NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2248"},74313:{"value":"12249","name":"CUNEIFORM SIGN NE TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2249"},74314:{"value":"1224A","name":"CUNEIFORM SIGN NE TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u224A"},74315:{"value":"1224B","name":"CUNEIFORM SIGN NE SHESHIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u224B"},74316:{"value":"1224C","name":"CUNEIFORM SIGN NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u224C"},74317:{"value":"1224D","name":"CUNEIFORM SIGN NI TIMES E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u224D"},74318:{"value":"1224E","name":"CUNEIFORM SIGN NI2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u224E"},74319:{"value":"1224F","name":"CUNEIFORM SIGN NIM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u224F"},74320:{"value":"12250","name":"CUNEIFORM SIGN NIM TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2250"},74321:{"value":"12251","name":"CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2251"},74322:{"value":"12252","name":"CUNEIFORM SIGN NINDA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2252"},74323:{"value":"12253","name":"CUNEIFORM SIGN NINDA2 TIMES AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2253"},74324:{"value":"12254","name":"CUNEIFORM SIGN NINDA2 TIMES ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2254"},74325:{"value":"12255","name":"CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2255"},74326:{"value":"12256","name":"CUNEIFORM SIGN NINDA2 TIMES GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2256"},74327:{"value":"12257","name":"CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2257"},74328:{"value":"12258","name":"CUNEIFORM SIGN NINDA2 TIMES NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2258"},74329:{"value":"12259","name":"CUNEIFORM SIGN NINDA2 TIMES NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2259"},74330:{"value":"1225A","name":"CUNEIFORM SIGN NINDA2 TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u225A"},74331:{"value":"1225B","name":"CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u225B"},74332:{"value":"1225C","name":"CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u225C"},74333:{"value":"1225D","name":"CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u225D"},74334:{"value":"1225E","name":"CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u225E"},74335:{"value":"1225F","name":"CUNEIFORM SIGN NINDA2 TIMES USH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u225F"},74336:{"value":"12260","name":"CUNEIFORM SIGN NISAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2260"},74337:{"value":"12261","name":"CUNEIFORM SIGN NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2261"},74338:{"value":"12262","name":"CUNEIFORM SIGN NU11","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2262"},74339:{"value":"12263","name":"CUNEIFORM SIGN NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2263"},74340:{"value":"12264","name":"CUNEIFORM SIGN NUN LAGAR TIMES GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2264"},74341:{"value":"12265","name":"CUNEIFORM SIGN NUN LAGAR TIMES MASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2265"},74342:{"value":"12266","name":"CUNEIFORM SIGN NUN LAGAR TIMES SAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2266"},74343:{"value":"12267","name":"CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2267"},74344:{"value":"12268","name":"CUNEIFORM SIGN NUN LAGAR TIMES USH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2268"},74345:{"value":"12269","name":"CUNEIFORM SIGN NUN TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2269"},74346:{"value":"1226A","name":"CUNEIFORM SIGN NUN OVER NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u226A"},74347:{"value":"1226B","name":"CUNEIFORM SIGN NUN CROSSING NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u226B"},74348:{"value":"1226C","name":"CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u226C"},74349:{"value":"1226D","name":"CUNEIFORM SIGN NUNUZ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u226D"},74350:{"value":"1226E","name":"CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u226E"},74351:{"value":"1226F","name":"CUNEIFORM SIGN NUNUZ AB2 TIMES BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u226F"},74352:{"value":"12270","name":"CUNEIFORM SIGN NUNUZ AB2 TIMES DUG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2270"},74353:{"value":"12271","name":"CUNEIFORM SIGN NUNUZ AB2 TIMES GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2271"},74354:{"value":"12272","name":"CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2272"},74355:{"value":"12273","name":"CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2273"},74356:{"value":"12274","name":"CUNEIFORM SIGN NUNUZ AB2 TIMES LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2274"},74357:{"value":"12275","name":"CUNEIFORM SIGN NUNUZ AB2 TIMES NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2275"},74358:{"value":"12276","name":"CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2276"},74359:{"value":"12277","name":"CUNEIFORM SIGN NUNUZ AB2 TIMES U2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2277"},74360:{"value":"12278","name":"CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2278"},74361:{"value":"12279","name":"CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2279"},74362:{"value":"1227A","name":"CUNEIFORM SIGN PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u227A"},74363:{"value":"1227B","name":"CUNEIFORM SIGN PAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u227B"},74364:{"value":"1227C","name":"CUNEIFORM SIGN PAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u227C"},74365:{"value":"1227D","name":"CUNEIFORM SIGN PAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u227D"},74366:{"value":"1227E","name":"CUNEIFORM SIGN PESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u227E"},74367:{"value":"1227F","name":"CUNEIFORM SIGN PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u227F"},74368:{"value":"12280","name":"CUNEIFORM SIGN PI TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2280"},74369:{"value":"12281","name":"CUNEIFORM SIGN PI TIMES AB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2281"},74370:{"value":"12282","name":"CUNEIFORM SIGN PI TIMES BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2282"},74371:{"value":"12283","name":"CUNEIFORM SIGN PI TIMES BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2283"},74372:{"value":"12284","name":"CUNEIFORM SIGN PI TIMES E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2284"},74373:{"value":"12285","name":"CUNEIFORM SIGN PI TIMES I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2285"},74374:{"value":"12286","name":"CUNEIFORM SIGN PI TIMES IB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2286"},74375:{"value":"12287","name":"CUNEIFORM SIGN PI TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2287"},74376:{"value":"12288","name":"CUNEIFORM SIGN PI TIMES U2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2288"},74377:{"value":"12289","name":"CUNEIFORM SIGN PI CROSSING PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2289"},74378:{"value":"1228A","name":"CUNEIFORM SIGN PIRIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u228A"},74379:{"value":"1228B","name":"CUNEIFORM SIGN PIRIG TIMES KAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u228B"},74380:{"value":"1228C","name":"CUNEIFORM SIGN PIRIG TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u228C"},74381:{"value":"1228D","name":"CUNEIFORM SIGN PIRIG TIMES ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u228D"},74382:{"value":"1228E","name":"CUNEIFORM SIGN PIRIG OPPOSING PIRIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u228E"},74383:{"value":"1228F","name":"CUNEIFORM SIGN RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u228F"},74384:{"value":"12290","name":"CUNEIFORM SIGN RAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2290"},74385:{"value":"12291","name":"CUNEIFORM SIGN RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2291"},74386:{"value":"12292","name":"CUNEIFORM SIGN RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2292"},74387:{"value":"12293","name":"CUNEIFORM SIGN SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2293"},74388:{"value":"12294","name":"CUNEIFORM SIGN SAG NUTILLU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2294"},74389:{"value":"12295","name":"CUNEIFORM SIGN SAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2295"},74390:{"value":"12296","name":"CUNEIFORM SIGN SAG TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2296"},74391:{"value":"12297","name":"CUNEIFORM SIGN SAG TIMES DU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2297"},74392:{"value":"12298","name":"CUNEIFORM SIGN SAG TIMES DUB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2298"},74393:{"value":"12299","name":"CUNEIFORM SIGN SAG TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2299"},74394:{"value":"1229A","name":"CUNEIFORM SIGN SAG TIMES KAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u229A"},74395:{"value":"1229B","name":"CUNEIFORM SIGN SAG TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u229B"},74396:{"value":"1229C","name":"CUNEIFORM SIGN SAG TIMES LUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u229C"},74397:{"value":"1229D","name":"CUNEIFORM SIGN SAG TIMES MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u229D"},74398:{"value":"1229E","name":"CUNEIFORM SIGN SAG TIMES NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u229E"},74399:{"value":"1229F","name":"CUNEIFORM SIGN SAG TIMES SAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u229F"},74400:{"value":"122A0","name":"CUNEIFORM SIGN SAG TIMES SHID","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22A0"},74401:{"value":"122A1","name":"CUNEIFORM SIGN SAG TIMES TAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22A1"},74402:{"value":"122A2","name":"CUNEIFORM SIGN SAG TIMES U2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22A2"},74403:{"value":"122A3","name":"CUNEIFORM SIGN SAG TIMES UB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22A3"},74404:{"value":"122A4","name":"CUNEIFORM SIGN SAG TIMES UM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22A4"},74405:{"value":"122A5","name":"CUNEIFORM SIGN SAG TIMES UR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22A5"},74406:{"value":"122A6","name":"CUNEIFORM SIGN SAG TIMES USH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22A6"},74407:{"value":"122A7","name":"CUNEIFORM SIGN SAG OVER SAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22A7"},74408:{"value":"122A8","name":"CUNEIFORM SIGN SAG GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22A8"},74409:{"value":"122A9","name":"CUNEIFORM SIGN SAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22A9"},74410:{"value":"122AA","name":"CUNEIFORM SIGN SAL LAGAB TIMES ASH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22AA"},74411:{"value":"122AB","name":"CUNEIFORM SIGN SANGA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22AB"},74412:{"value":"122AC","name":"CUNEIFORM SIGN SAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22AC"},74413:{"value":"122AD","name":"CUNEIFORM SIGN SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22AD"},74414:{"value":"122AE","name":"CUNEIFORM SIGN SHA3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22AE"},74415:{"value":"122AF","name":"CUNEIFORM SIGN SHA3 TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22AF"},74416:{"value":"122B0","name":"CUNEIFORM SIGN SHA3 TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22B0"},74417:{"value":"122B1","name":"CUNEIFORM SIGN SHA3 TIMES GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22B1"},74418:{"value":"122B2","name":"CUNEIFORM SIGN SHA3 TIMES NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22B2"},74419:{"value":"122B3","name":"CUNEIFORM SIGN SHA3 TIMES SHU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22B3"},74420:{"value":"122B4","name":"CUNEIFORM SIGN SHA3 TIMES TUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22B4"},74421:{"value":"122B5","name":"CUNEIFORM SIGN SHA3 TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22B5"},74422:{"value":"122B6","name":"CUNEIFORM SIGN SHA3 TIMES U PLUS A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22B6"},74423:{"value":"122B7","name":"CUNEIFORM SIGN SHA6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22B7"},74424:{"value":"122B8","name":"CUNEIFORM SIGN SHAB6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22B8"},74425:{"value":"122B9","name":"CUNEIFORM SIGN SHAR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22B9"},74426:{"value":"122BA","name":"CUNEIFORM SIGN SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22BA"},74427:{"value":"122BB","name":"CUNEIFORM SIGN SHE HU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22BB"},74428:{"value":"122BC","name":"CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22BC"},74429:{"value":"122BD","name":"CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22BD"},74430:{"value":"122BE","name":"CUNEIFORM SIGN SHEG9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22BE"},74431:{"value":"122BF","name":"CUNEIFORM SIGN SHEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22BF"},74432:{"value":"122C0","name":"CUNEIFORM SIGN SHESH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22C0"},74433:{"value":"122C1","name":"CUNEIFORM SIGN SHESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22C1"},74434:{"value":"122C2","name":"CUNEIFORM SIGN SHESHLAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22C2"},74435:{"value":"122C3","name":"CUNEIFORM SIGN SHID","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22C3"},74436:{"value":"122C4","name":"CUNEIFORM SIGN SHID TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22C4"},74437:{"value":"122C5","name":"CUNEIFORM SIGN SHID TIMES IM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22C5"},74438:{"value":"122C6","name":"CUNEIFORM SIGN SHIM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22C6"},74439:{"value":"122C7","name":"CUNEIFORM SIGN SHIM TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22C7"},74440:{"value":"122C8","name":"CUNEIFORM SIGN SHIM TIMES BAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22C8"},74441:{"value":"122C9","name":"CUNEIFORM SIGN SHIM TIMES BULUG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22C9"},74442:{"value":"122CA","name":"CUNEIFORM SIGN SHIM TIMES DIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22CA"},74443:{"value":"122CB","name":"CUNEIFORM SIGN SHIM TIMES GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22CB"},74444:{"value":"122CC","name":"CUNEIFORM SIGN SHIM TIMES IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22CC"},74445:{"value":"122CD","name":"CUNEIFORM SIGN SHIM TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22CD"},74446:{"value":"122CE","name":"CUNEIFORM SIGN SHIM TIMES KUSHU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22CE"},74447:{"value":"122CF","name":"CUNEIFORM SIGN SHIM TIMES LUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22CF"},74448:{"value":"122D0","name":"CUNEIFORM SIGN SHIM TIMES MUG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22D0"},74449:{"value":"122D1","name":"CUNEIFORM SIGN SHIM TIMES SAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22D1"},74450:{"value":"122D2","name":"CUNEIFORM SIGN SHINIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22D2"},74451:{"value":"122D3","name":"CUNEIFORM SIGN SHIR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22D3"},74452:{"value":"122D4","name":"CUNEIFORM SIGN SHIR TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22D4"},74453:{"value":"122D5","name":"CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22D5"},74454:{"value":"122D6","name":"CUNEIFORM SIGN SHITA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22D6"},74455:{"value":"122D7","name":"CUNEIFORM SIGN SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22D7"},74456:{"value":"122D8","name":"CUNEIFORM SIGN SHU OVER INVERTED SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22D8"},74457:{"value":"122D9","name":"CUNEIFORM SIGN SHU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22D9"},74458:{"value":"122DA","name":"CUNEIFORM SIGN SHUBUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22DA"},74459:{"value":"122DB","name":"CUNEIFORM SIGN SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22DB"},74460:{"value":"122DC","name":"CUNEIFORM SIGN SI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22DC"},74461:{"value":"122DD","name":"CUNEIFORM SIGN SIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22DD"},74462:{"value":"122DE","name":"CUNEIFORM SIGN SIG4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22DE"},74463:{"value":"122DF","name":"CUNEIFORM SIGN SIG4 OVER SIG4 SHU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22DF"},74464:{"value":"122E0","name":"CUNEIFORM SIGN SIK2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22E0"},74465:{"value":"122E1","name":"CUNEIFORM SIGN SILA3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22E1"},74466:{"value":"122E2","name":"CUNEIFORM SIGN SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22E2"},74467:{"value":"122E3","name":"CUNEIFORM SIGN SU OVER SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22E3"},74468:{"value":"122E4","name":"CUNEIFORM SIGN SUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22E4"},74469:{"value":"122E5","name":"CUNEIFORM SIGN SUD2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22E5"},74470:{"value":"122E6","name":"CUNEIFORM SIGN SUHUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22E6"},74471:{"value":"122E7","name":"CUNEIFORM SIGN SUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22E7"},74472:{"value":"122E8","name":"CUNEIFORM SIGN SUMASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22E8"},74473:{"value":"122E9","name":"CUNEIFORM SIGN SUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22E9"},74474:{"value":"122EA","name":"CUNEIFORM SIGN SUR9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22EA"},74475:{"value":"122EB","name":"CUNEIFORM SIGN TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22EB"},74476:{"value":"122EC","name":"CUNEIFORM SIGN TA ASTERISK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22EC"},74477:{"value":"122ED","name":"CUNEIFORM SIGN TA TIMES HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22ED"},74478:{"value":"122EE","name":"CUNEIFORM SIGN TA TIMES MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22EE"},74479:{"value":"122EF","name":"CUNEIFORM SIGN TA GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22EF"},74480:{"value":"122F0","name":"CUNEIFORM SIGN TAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22F0"},74481:{"value":"122F1","name":"CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22F1"},74482:{"value":"122F2","name":"CUNEIFORM SIGN TAB SQUARED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22F2"},74483:{"value":"122F3","name":"CUNEIFORM SIGN TAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22F3"},74484:{"value":"122F4","name":"CUNEIFORM SIGN TAG TIMES BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22F4"},74485:{"value":"122F5","name":"CUNEIFORM SIGN TAG TIMES GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22F5"},74486:{"value":"122F6","name":"CUNEIFORM SIGN TAG TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22F6"},74487:{"value":"122F7","name":"CUNEIFORM SIGN TAG TIMES SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22F7"},74488:{"value":"122F8","name":"CUNEIFORM SIGN TAG TIMES TUG2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22F8"},74489:{"value":"122F9","name":"CUNEIFORM SIGN TAG TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22F9"},74490:{"value":"122FA","name":"CUNEIFORM SIGN TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22FA"},74491:{"value":"122FB","name":"CUNEIFORM SIGN TAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22FB"},74492:{"value":"122FC","name":"CUNEIFORM SIGN TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22FC"},74493:{"value":"122FD","name":"CUNEIFORM SIGN TE GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22FD"},74494:{"value":"122FE","name":"CUNEIFORM SIGN TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22FE"},74495:{"value":"122FF","name":"CUNEIFORM SIGN TI TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u22FF"},74496:{"value":"12300","name":"CUNEIFORM SIGN TIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2300"},74497:{"value":"12301","name":"CUNEIFORM SIGN TIR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2301"},74498:{"value":"12302","name":"CUNEIFORM SIGN TIR TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2302"},74499:{"value":"12303","name":"CUNEIFORM SIGN TIR OVER TIR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2303"},74500:{"value":"12304","name":"CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2304"},74501:{"value":"12305","name":"CUNEIFORM SIGN TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2305"},74502:{"value":"12306","name":"CUNEIFORM SIGN TUG2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2306"},74503:{"value":"12307","name":"CUNEIFORM SIGN TUK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2307"},74504:{"value":"12308","name":"CUNEIFORM SIGN TUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2308"},74505:{"value":"12309","name":"CUNEIFORM SIGN TUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2309"},74506:{"value":"1230A","name":"CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u230A"},74507:{"value":"1230B","name":"CUNEIFORM SIGN U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u230B"},74508:{"value":"1230C","name":"CUNEIFORM SIGN U GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u230C"},74509:{"value":"1230D","name":"CUNEIFORM SIGN U U U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u230D"},74510:{"value":"1230E","name":"CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u230E"},74511:{"value":"1230F","name":"CUNEIFORM SIGN U OVER U SUR OVER SUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u230F"},74512:{"value":"12310","name":"CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2310"},74513:{"value":"12311","name":"CUNEIFORM SIGN U2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2311"},74514:{"value":"12312","name":"CUNEIFORM SIGN UB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2312"},74515:{"value":"12313","name":"CUNEIFORM SIGN UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2313"},74516:{"value":"12314","name":"CUNEIFORM SIGN UD KUSHU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2314"},74517:{"value":"12315","name":"CUNEIFORM SIGN UD TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2315"},74518:{"value":"12316","name":"CUNEIFORM SIGN UD TIMES MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2316"},74519:{"value":"12317","name":"CUNEIFORM SIGN UD TIMES U PLUS U PLUS U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2317"},74520:{"value":"12318","name":"CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2318"},74521:{"value":"12319","name":"CUNEIFORM SIGN UD GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2319"},74522:{"value":"1231A","name":"CUNEIFORM SIGN UD SHESHIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u231A"},74523:{"value":"1231B","name":"CUNEIFORM SIGN UD SHESHIG TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u231B"},74524:{"value":"1231C","name":"CUNEIFORM SIGN UDUG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u231C"},74525:{"value":"1231D","name":"CUNEIFORM SIGN UM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u231D"},74526:{"value":"1231E","name":"CUNEIFORM SIGN UM TIMES LAGAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u231E"},74527:{"value":"1231F","name":"CUNEIFORM SIGN UM TIMES ME PLUS DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u231F"},74528:{"value":"12320","name":"CUNEIFORM SIGN UM TIMES SHA3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2320"},74529:{"value":"12321","name":"CUNEIFORM SIGN UM TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2321"},74530:{"value":"12322","name":"CUNEIFORM SIGN UMBIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2322"},74531:{"value":"12323","name":"CUNEIFORM SIGN UMUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2323"},74532:{"value":"12324","name":"CUNEIFORM SIGN UMUM TIMES KASKAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2324"},74533:{"value":"12325","name":"CUNEIFORM SIGN UMUM TIMES PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2325"},74534:{"value":"12326","name":"CUNEIFORM SIGN UN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2326"},74535:{"value":"12327","name":"CUNEIFORM SIGN UN GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2327"},74536:{"value":"12328","name":"CUNEIFORM SIGN UR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2328"},74537:{"value":"12329","name":"CUNEIFORM SIGN UR CROSSING UR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2329"},74538:{"value":"1232A","name":"CUNEIFORM SIGN UR SHESHIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u232A"},74539:{"value":"1232B","name":"CUNEIFORM SIGN UR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u232B"},74540:{"value":"1232C","name":"CUNEIFORM SIGN UR2 TIMES A PLUS HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u232C"},74541:{"value":"1232D","name":"CUNEIFORM SIGN UR2 TIMES A PLUS NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u232D"},74542:{"value":"1232E","name":"CUNEIFORM SIGN UR2 TIMES AL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u232E"},74543:{"value":"1232F","name":"CUNEIFORM SIGN UR2 TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u232F"},74544:{"value":"12330","name":"CUNEIFORM SIGN UR2 TIMES NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2330"},74545:{"value":"12331","name":"CUNEIFORM SIGN UR2 TIMES U2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2331"},74546:{"value":"12332","name":"CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2332"},74547:{"value":"12333","name":"CUNEIFORM SIGN UR2 TIMES U2 PLUS BI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2333"},74548:{"value":"12334","name":"CUNEIFORM SIGN UR4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2334"},74549:{"value":"12335","name":"CUNEIFORM SIGN URI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2335"},74550:{"value":"12336","name":"CUNEIFORM SIGN URI3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2336"},74551:{"value":"12337","name":"CUNEIFORM SIGN URU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2337"},74552:{"value":"12338","name":"CUNEIFORM SIGN URU TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2338"},74553:{"value":"12339","name":"CUNEIFORM SIGN URU TIMES ASHGAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2339"},74554:{"value":"1233A","name":"CUNEIFORM SIGN URU TIMES BAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u233A"},74555:{"value":"1233B","name":"CUNEIFORM SIGN URU TIMES DUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u233B"},74556:{"value":"1233C","name":"CUNEIFORM SIGN URU TIMES GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u233C"},74557:{"value":"1233D","name":"CUNEIFORM SIGN URU TIMES GAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u233D"},74558:{"value":"1233E","name":"CUNEIFORM SIGN URU TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u233E"},74559:{"value":"1233F","name":"CUNEIFORM SIGN URU TIMES GAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u233F"},74560:{"value":"12340","name":"CUNEIFORM SIGN URU TIMES GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2340"},74561:{"value":"12341","name":"CUNEIFORM SIGN URU TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2341"},74562:{"value":"12342","name":"CUNEIFORM SIGN URU TIMES IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2342"},74563:{"value":"12343","name":"CUNEIFORM SIGN URU TIMES IM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2343"},74564:{"value":"12344","name":"CUNEIFORM SIGN URU TIMES ISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2344"},74565:{"value":"12345","name":"CUNEIFORM SIGN URU TIMES KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2345"},74566:{"value":"12346","name":"CUNEIFORM SIGN URU TIMES LUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2346"},74567:{"value":"12347","name":"CUNEIFORM SIGN URU TIMES MIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2347"},74568:{"value":"12348","name":"CUNEIFORM SIGN URU TIMES PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2348"},74569:{"value":"12349","name":"CUNEIFORM SIGN URU TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2349"},74570:{"value":"1234A","name":"CUNEIFORM SIGN URU TIMES SIG4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u234A"},74571:{"value":"1234B","name":"CUNEIFORM SIGN URU TIMES TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u234B"},74572:{"value":"1234C","name":"CUNEIFORM SIGN URU TIMES U PLUS GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u234C"},74573:{"value":"1234D","name":"CUNEIFORM SIGN URU TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u234D"},74574:{"value":"1234E","name":"CUNEIFORM SIGN URU TIMES URUDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u234E"},74575:{"value":"1234F","name":"CUNEIFORM SIGN URUDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u234F"},74576:{"value":"12350","name":"CUNEIFORM SIGN URUDA TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2350"},74577:{"value":"12351","name":"CUNEIFORM SIGN USH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2351"},74578:{"value":"12352","name":"CUNEIFORM SIGN USH TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2352"},74579:{"value":"12353","name":"CUNEIFORM SIGN USH TIMES KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2353"},74580:{"value":"12354","name":"CUNEIFORM SIGN USH TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2354"},74581:{"value":"12355","name":"CUNEIFORM SIGN USH TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2355"},74582:{"value":"12356","name":"CUNEIFORM SIGN USHX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2356"},74583:{"value":"12357","name":"CUNEIFORM SIGN USH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2357"},74584:{"value":"12358","name":"CUNEIFORM SIGN USHUMX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2358"},74585:{"value":"12359","name":"CUNEIFORM SIGN UTUKI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2359"},74586:{"value":"1235A","name":"CUNEIFORM SIGN UZ3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u235A"},74587:{"value":"1235B","name":"CUNEIFORM SIGN UZ3 TIMES KASKAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u235B"},74588:{"value":"1235C","name":"CUNEIFORM SIGN UZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u235C"},74589:{"value":"1235D","name":"CUNEIFORM SIGN ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u235D"},74590:{"value":"1235E","name":"CUNEIFORM SIGN ZA TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u235E"},74591:{"value":"1235F","name":"CUNEIFORM SIGN ZA SQUARED TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u235F"},74592:{"value":"12360","name":"CUNEIFORM SIGN ZAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2360"},74593:{"value":"12361","name":"CUNEIFORM SIGN ZAMX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2361"},74594:{"value":"12362","name":"CUNEIFORM SIGN ZE2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2362"},74595:{"value":"12363","name":"CUNEIFORM SIGN ZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2363"},74596:{"value":"12364","name":"CUNEIFORM SIGN ZI OVER ZI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2364"},74597:{"value":"12365","name":"CUNEIFORM SIGN ZI3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2365"},74598:{"value":"12366","name":"CUNEIFORM SIGN ZIB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2366"},74599:{"value":"12367","name":"CUNEIFORM SIGN ZIB KABA TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2367"},74600:{"value":"12368","name":"CUNEIFORM SIGN ZIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2368"},74601:{"value":"12369","name":"CUNEIFORM SIGN ZIZ2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2369"},74602:{"value":"1236A","name":"CUNEIFORM SIGN ZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u236A"},74603:{"value":"1236B","name":"CUNEIFORM SIGN ZU5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u236B"},74604:{"value":"1236C","name":"CUNEIFORM SIGN ZU5 TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u236C"},74605:{"value":"1236D","name":"CUNEIFORM SIGN ZUBUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u236D"},74606:{"value":"1236E","name":"CUNEIFORM SIGN ZUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u236E"},74607:{"value":"1236F","name":"CUNEIFORM SIGN KAP ELAMITE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u236F"},74608:{"value":"12370","name":"CUNEIFORM SIGN AB TIMES NUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2370"},74609:{"value":"12371","name":"CUNEIFORM SIGN AB2 TIMES A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2371"},74610:{"value":"12372","name":"CUNEIFORM SIGN AMAR TIMES KUG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2372"},74611:{"value":"12373","name":"CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS MASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2373"},74612:{"value":"12374","name":"CUNEIFORM SIGN DAG3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2374"},74613:{"value":"12375","name":"CUNEIFORM SIGN DISH PLUS SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2375"},74614:{"value":"12376","name":"CUNEIFORM SIGN DUB TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2376"},74615:{"value":"12377","name":"CUNEIFORM SIGN EZEN TIMES GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2377"},74616:{"value":"12378","name":"CUNEIFORM SIGN EZEN TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2378"},74617:{"value":"12379","name":"CUNEIFORM SIGN GA2 TIMES AN PLUS KAK PLUS A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2379"},74618:{"value":"1237A","name":"CUNEIFORM SIGN GA2 TIMES ASH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u237A"},74619:{"value":"1237B","name":"CUNEIFORM SIGN GE22","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u237B"},74620:{"value":"1237C","name":"CUNEIFORM SIGN GIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u237C"},74621:{"value":"1237D","name":"CUNEIFORM SIGN HUSH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u237D"},74622:{"value":"1237E","name":"CUNEIFORM SIGN KA TIMES ANSHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u237E"},74623:{"value":"1237F","name":"CUNEIFORM SIGN KA TIMES ASH3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u237F"},74624:{"value":"12380","name":"CUNEIFORM SIGN KA TIMES GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2380"},74625:{"value":"12381","name":"CUNEIFORM SIGN KA TIMES GUD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2381"},74626:{"value":"12382","name":"CUNEIFORM SIGN KA TIMES HI TIMES ASH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2382"},74627:{"value":"12383","name":"CUNEIFORM SIGN KA TIMES LUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2383"},74628:{"value":"12384","name":"CUNEIFORM SIGN KA TIMES PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2384"},74629:{"value":"12385","name":"CUNEIFORM SIGN KA TIMES SHUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2385"},74630:{"value":"12386","name":"CUNEIFORM SIGN KA TIMES TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2386"},74631:{"value":"12387","name":"CUNEIFORM SIGN KA TIMES UR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2387"},74632:{"value":"12388","name":"CUNEIFORM SIGN LAGAB TIMES GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2388"},74633:{"value":"12389","name":"CUNEIFORM SIGN LU2 SHESHIG TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2389"},74634:{"value":"1238A","name":"CUNEIFORM SIGN LU2 TIMES ESH2 PLUS LAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u238A"},74635:{"value":"1238B","name":"CUNEIFORM SIGN LU2 TIMES SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u238B"},74636:{"value":"1238C","name":"CUNEIFORM SIGN MESH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u238C"},74637:{"value":"1238D","name":"CUNEIFORM SIGN MUSH3 TIMES ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u238D"},74638:{"value":"1238E","name":"CUNEIFORM SIGN NA4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u238E"},74639:{"value":"1238F","name":"CUNEIFORM SIGN NIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u238F"},74640:{"value":"12390","name":"CUNEIFORM SIGN NIN9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2390"},74641:{"value":"12391","name":"CUNEIFORM SIGN NINDA2 TIMES BAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2391"},74642:{"value":"12392","name":"CUNEIFORM SIGN NINDA2 TIMES GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2392"},74643:{"value":"12393","name":"CUNEIFORM SIGN NU11 ROTATED NINETY DEGREES","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2393"},74644:{"value":"12394","name":"CUNEIFORM SIGN PESH2 ASTERISK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2394"},74645:{"value":"12395","name":"CUNEIFORM SIGN PIR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2395"},74646:{"value":"12396","name":"CUNEIFORM SIGN SAG TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2396"},74647:{"value":"12397","name":"CUNEIFORM SIGN TI2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2397"},74648:{"value":"12398","name":"CUNEIFORM SIGN UM TIMES ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2398"},74649:{"value":"12399","name":"CUNEIFORM SIGN U U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2399"},74880:{"value":"12480","name":"CUNEIFORM SIGN AB TIMES NUN TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2480"},74881:{"value":"12481","name":"CUNEIFORM SIGN AB TIMES SHU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2481"},74882:{"value":"12482","name":"CUNEIFORM SIGN AD TIMES ESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2482"},74883:{"value":"12483","name":"CUNEIFORM SIGN BAD TIMES DISH TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2483"},74884:{"value":"12484","name":"CUNEIFORM SIGN BAHAR2 TIMES AB2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2484"},74885:{"value":"12485","name":"CUNEIFORM SIGN BAHAR2 TIMES NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2485"},74886:{"value":"12486","name":"CUNEIFORM SIGN BAHAR2 TIMES ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2486"},74887:{"value":"12487","name":"CUNEIFORM SIGN BU OVER BU TIMES NA2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2487"},74888:{"value":"12488","name":"CUNEIFORM SIGN DA TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2488"},74889:{"value":"12489","name":"CUNEIFORM SIGN DAG TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2489"},74890:{"value":"1248A","name":"CUNEIFORM SIGN DIM TIMES IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u248A"},74891:{"value":"1248B","name":"CUNEIFORM SIGN DIM TIMES U U U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u248B"},74892:{"value":"1248C","name":"CUNEIFORM SIGN DIM2 TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u248C"},74893:{"value":"1248D","name":"CUNEIFORM SIGN DUG TIMES ANSHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u248D"},74894:{"value":"1248E","name":"CUNEIFORM SIGN DUG TIMES ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u248E"},74895:{"value":"1248F","name":"CUNEIFORM SIGN DUG TIMES ASH AT LEFT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u248F"},74896:{"value":"12490","name":"CUNEIFORM SIGN DUG TIMES DIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2490"},74897:{"value":"12491","name":"CUNEIFORM SIGN DUG TIMES DUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2491"},74898:{"value":"12492","name":"CUNEIFORM SIGN DUG TIMES ERIN2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2492"},74899:{"value":"12493","name":"CUNEIFORM SIGN DUG TIMES GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2493"},74900:{"value":"12494","name":"CUNEIFORM SIGN DUG TIMES GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2494"},74901:{"value":"12495","name":"CUNEIFORM SIGN DUG TIMES GIR2 GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2495"},74902:{"value":"12496","name":"CUNEIFORM SIGN DUG TIMES GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2496"},74903:{"value":"12497","name":"CUNEIFORM SIGN DUG TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2497"},74904:{"value":"12498","name":"CUNEIFORM SIGN DUG TIMES HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2498"},74905:{"value":"12499","name":"CUNEIFORM SIGN DUG TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2499"},74906:{"value":"1249A","name":"CUNEIFORM SIGN DUG TIMES KASKAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u249A"},74907:{"value":"1249B","name":"CUNEIFORM SIGN DUG TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u249B"},74908:{"value":"1249C","name":"CUNEIFORM SIGN DUG TIMES KUSHU2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u249C"},74909:{"value":"1249D","name":"CUNEIFORM SIGN DUG TIMES KUSHU2 PLUS KASKAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u249D"},74910:{"value":"1249E","name":"CUNEIFORM SIGN DUG TIMES LAK-020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u249E"},74911:{"value":"1249F","name":"CUNEIFORM SIGN DUG TIMES LAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u249F"},74912:{"value":"124A0","name":"CUNEIFORM SIGN DUG TIMES LAM TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24A0"},74913:{"value":"124A1","name":"CUNEIFORM SIGN DUG TIMES LUH PLUS GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24A1"},74914:{"value":"124A2","name":"CUNEIFORM SIGN DUG TIMES MASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24A2"},74915:{"value":"124A3","name":"CUNEIFORM SIGN DUG TIMES MES","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24A3"},74916:{"value":"124A4","name":"CUNEIFORM SIGN DUG TIMES MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24A4"},74917:{"value":"124A5","name":"CUNEIFORM SIGN DUG TIMES NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24A5"},74918:{"value":"124A6","name":"CUNEIFORM SIGN DUG TIMES PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24A6"},74919:{"value":"124A7","name":"CUNEIFORM SIGN DUG TIMES SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24A7"},74920:{"value":"124A8","name":"CUNEIFORM SIGN DUG TIMES SI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24A8"},74921:{"value":"124A9","name":"CUNEIFORM SIGN E2 TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24A9"},74922:{"value":"124AA","name":"CUNEIFORM SIGN E2 TIMES PAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24AA"},74923:{"value":"124AB","name":"CUNEIFORM SIGN ERIN2 X","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24AB"},74924:{"value":"124AC","name":"CUNEIFORM SIGN ESH2 CROSSING ESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24AC"},74925:{"value":"124AD","name":"CUNEIFORM SIGN EZEN SHESHIG TIMES ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24AD"},74926:{"value":"124AE","name":"CUNEIFORM SIGN EZEN SHESHIG TIMES HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24AE"},74927:{"value":"124AF","name":"CUNEIFORM SIGN EZEN SHESHIG TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24AF"},74928:{"value":"124B0","name":"CUNEIFORM SIGN EZEN SHESHIG TIMES LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24B0"},74929:{"value":"124B1","name":"CUNEIFORM SIGN EZEN SHESHIG TIMES LAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24B1"},74930:{"value":"124B2","name":"CUNEIFORM SIGN EZEN SHESHIG TIMES ME","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24B2"},74931:{"value":"124B3","name":"CUNEIFORM SIGN EZEN SHESHIG TIMES MES","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24B3"},74932:{"value":"124B4","name":"CUNEIFORM SIGN EZEN SHESHIG TIMES SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24B4"},74933:{"value":"124B5","name":"CUNEIFORM SIGN EZEN TIMES SU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24B5"},74934:{"value":"124B6","name":"CUNEIFORM SIGN GA2 TIMES BAHAR2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24B6"},74935:{"value":"124B7","name":"CUNEIFORM SIGN GA2 TIMES DIM GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24B7"},74936:{"value":"124B8","name":"CUNEIFORM SIGN GA2 TIMES DUG TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24B8"},74937:{"value":"124B9","name":"CUNEIFORM SIGN GA2 TIMES DUG TIMES KASKAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24B9"},74938:{"value":"124BA","name":"CUNEIFORM SIGN GA2 TIMES EREN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24BA"},74939:{"value":"124BB","name":"CUNEIFORM SIGN GA2 TIMES GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24BB"},74940:{"value":"124BC","name":"CUNEIFORM SIGN GA2 TIMES GAR PLUS DI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24BC"},74941:{"value":"124BD","name":"CUNEIFORM SIGN GA2 TIMES GAR PLUS NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24BD"},74942:{"value":"124BE","name":"CUNEIFORM SIGN GA2 TIMES HA PLUS A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24BE"},74943:{"value":"124BF","name":"CUNEIFORM SIGN GA2 TIMES KUSHU2 PLUS KASKAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24BF"},74944:{"value":"124C0","name":"CUNEIFORM SIGN GA2 TIMES LAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24C0"},74945:{"value":"124C1","name":"CUNEIFORM SIGN GA2 TIMES LAM TIMES KUR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24C1"},74946:{"value":"124C2","name":"CUNEIFORM SIGN GA2 TIMES LUH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24C2"},74947:{"value":"124C3","name":"CUNEIFORM SIGN GA2 TIMES MUSH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24C3"},74948:{"value":"124C4","name":"CUNEIFORM SIGN GA2 TIMES NE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24C4"},74949:{"value":"124C5","name":"CUNEIFORM SIGN GA2 TIMES NE PLUS E2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24C5"},74950:{"value":"124C6","name":"CUNEIFORM SIGN GA2 TIMES NE PLUS GI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24C6"},74951:{"value":"124C7","name":"CUNEIFORM SIGN GA2 TIMES SHIM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24C7"},74952:{"value":"124C8","name":"CUNEIFORM SIGN GA2 TIMES ZIZ2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24C8"},74953:{"value":"124C9","name":"CUNEIFORM SIGN GABA ROTATED NINETY DEGREES","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24C9"},74954:{"value":"124CA","name":"CUNEIFORM SIGN GESHTIN TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24CA"},74955:{"value":"124CB","name":"CUNEIFORM SIGN GISH TIMES GISH CROSSING GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24CB"},74956:{"value":"124CC","name":"CUNEIFORM SIGN GU2 TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24CC"},74957:{"value":"124CD","name":"CUNEIFORM SIGN GUD PLUS GISH TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24CD"},74958:{"value":"124CE","name":"CUNEIFORM SIGN HA TENU GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24CE"},74959:{"value":"124CF","name":"CUNEIFORM SIGN HI TIMES ASH OVER HI TIMES ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24CF"},74960:{"value":"124D0","name":"CUNEIFORM SIGN KA TIMES BU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24D0"},74961:{"value":"124D1","name":"CUNEIFORM SIGN KA TIMES KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24D1"},74962:{"value":"124D2","name":"CUNEIFORM SIGN KA TIMES U U U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24D2"},74963:{"value":"124D3","name":"CUNEIFORM SIGN KA TIMES UR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24D3"},74964:{"value":"124D4","name":"CUNEIFORM SIGN LAGAB TIMES ZU OVER ZU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24D4"},74965:{"value":"124D5","name":"CUNEIFORM SIGN LAK-003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24D5"},74966:{"value":"124D6","name":"CUNEIFORM SIGN LAK-021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24D6"},74967:{"value":"124D7","name":"CUNEIFORM SIGN LAK-025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24D7"},74968:{"value":"124D8","name":"CUNEIFORM SIGN LAK-030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24D8"},74969:{"value":"124D9","name":"CUNEIFORM SIGN LAK-050","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24D9"},74970:{"value":"124DA","name":"CUNEIFORM SIGN LAK-051","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24DA"},74971:{"value":"124DB","name":"CUNEIFORM SIGN LAK-062","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24DB"},74972:{"value":"124DC","name":"CUNEIFORM SIGN LAK-079 OVER LAK-079 GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24DC"},74973:{"value":"124DD","name":"CUNEIFORM SIGN LAK-080","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24DD"},74974:{"value":"124DE","name":"CUNEIFORM SIGN LAK-081 OVER LAK-081","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24DE"},74975:{"value":"124DF","name":"CUNEIFORM SIGN LAK-092","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24DF"},74976:{"value":"124E0","name":"CUNEIFORM SIGN LAK-130","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24E0"},74977:{"value":"124E1","name":"CUNEIFORM SIGN LAK-142","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24E1"},74978:{"value":"124E2","name":"CUNEIFORM SIGN LAK-210","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24E2"},74979:{"value":"124E3","name":"CUNEIFORM SIGN LAK-219","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24E3"},74980:{"value":"124E4","name":"CUNEIFORM SIGN LAK-220","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24E4"},74981:{"value":"124E5","name":"CUNEIFORM SIGN LAK-225","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24E5"},74982:{"value":"124E6","name":"CUNEIFORM SIGN LAK-228","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24E6"},74983:{"value":"124E7","name":"CUNEIFORM SIGN LAK-238","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24E7"},74984:{"value":"124E8","name":"CUNEIFORM SIGN LAK-265","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24E8"},74985:{"value":"124E9","name":"CUNEIFORM SIGN LAK-266","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24E9"},74986:{"value":"124EA","name":"CUNEIFORM SIGN LAK-343","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24EA"},74987:{"value":"124EB","name":"CUNEIFORM SIGN LAK-347","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24EB"},74988:{"value":"124EC","name":"CUNEIFORM SIGN LAK-348","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24EC"},74989:{"value":"124ED","name":"CUNEIFORM SIGN LAK-383","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24ED"},74990:{"value":"124EE","name":"CUNEIFORM SIGN LAK-384","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24EE"},74991:{"value":"124EF","name":"CUNEIFORM SIGN LAK-390","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24EF"},74992:{"value":"124F0","name":"CUNEIFORM SIGN LAK-441","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24F0"},74993:{"value":"124F1","name":"CUNEIFORM SIGN LAK-449","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24F1"},74994:{"value":"124F2","name":"CUNEIFORM SIGN LAK-449 TIMES GU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24F2"},74995:{"value":"124F3","name":"CUNEIFORM SIGN LAK-449 TIMES IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24F3"},74996:{"value":"124F4","name":"CUNEIFORM SIGN LAK-449 TIMES PAP PLUS LU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24F4"},74997:{"value":"124F5","name":"CUNEIFORM SIGN LAK-449 TIMES PAP PLUS PAP PLUS LU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24F5"},74998:{"value":"124F6","name":"CUNEIFORM SIGN LAK-449 TIMES U2 PLUS BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24F6"},74999:{"value":"124F7","name":"CUNEIFORM SIGN LAK-450","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24F7"},75000:{"value":"124F8","name":"CUNEIFORM SIGN LAK-457","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24F8"},75001:{"value":"124F9","name":"CUNEIFORM SIGN LAK-470","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24F9"},75002:{"value":"124FA","name":"CUNEIFORM SIGN LAK-483","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24FA"},75003:{"value":"124FB","name":"CUNEIFORM SIGN LAK-490","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24FB"},75004:{"value":"124FC","name":"CUNEIFORM SIGN LAK-492","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24FC"},75005:{"value":"124FD","name":"CUNEIFORM SIGN LAK-493","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24FD"},75006:{"value":"124FE","name":"CUNEIFORM SIGN LAK-495","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24FE"},75007:{"value":"124FF","name":"CUNEIFORM SIGN LAK-550","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u24FF"},75008:{"value":"12500","name":"CUNEIFORM SIGN LAK-608","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2500"},75009:{"value":"12501","name":"CUNEIFORM SIGN LAK-617","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2501"},75010:{"value":"12502","name":"CUNEIFORM SIGN LAK-617 TIMES ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2502"},75011:{"value":"12503","name":"CUNEIFORM SIGN LAK-617 TIMES BAD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2503"},75012:{"value":"12504","name":"CUNEIFORM SIGN LAK-617 TIMES DUN3 GUNU GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2504"},75013:{"value":"12505","name":"CUNEIFORM SIGN LAK-617 TIMES KU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2505"},75014:{"value":"12506","name":"CUNEIFORM SIGN LAK-617 TIMES LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2506"},75015:{"value":"12507","name":"CUNEIFORM SIGN LAK-617 TIMES TAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2507"},75016:{"value":"12508","name":"CUNEIFORM SIGN LAK-617 TIMES TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2508"},75017:{"value":"12509","name":"CUNEIFORM SIGN LAK-617 TIMES U2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2509"},75018:{"value":"1250A","name":"CUNEIFORM SIGN LAK-617 TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u250A"},75019:{"value":"1250B","name":"CUNEIFORM SIGN LAK-617 TIMES URUDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u250B"},75020:{"value":"1250C","name":"CUNEIFORM SIGN LAK-636","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u250C"},75021:{"value":"1250D","name":"CUNEIFORM SIGN LAK-648","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u250D"},75022:{"value":"1250E","name":"CUNEIFORM SIGN LAK-648 TIMES DUB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u250E"},75023:{"value":"1250F","name":"CUNEIFORM SIGN LAK-648 TIMES GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u250F"},75024:{"value":"12510","name":"CUNEIFORM SIGN LAK-648 TIMES IGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2510"},75025:{"value":"12511","name":"CUNEIFORM SIGN LAK-648 TIMES IGI GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2511"},75026:{"value":"12512","name":"CUNEIFORM SIGN LAK-648 TIMES NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2512"},75027:{"value":"12513","name":"CUNEIFORM SIGN LAK-648 TIMES PAP PLUS PAP PLUS LU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2513"},75028:{"value":"12514","name":"CUNEIFORM SIGN LAK-648 TIMES SHESH PLUS KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2514"},75029:{"value":"12515","name":"CUNEIFORM SIGN LAK-648 TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2515"},75030:{"value":"12516","name":"CUNEIFORM SIGN LAK-648 TIMES URUDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2516"},75031:{"value":"12517","name":"CUNEIFORM SIGN LAK-724","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2517"},75032:{"value":"12518","name":"CUNEIFORM SIGN LAK-749","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2518"},75033:{"value":"12519","name":"CUNEIFORM SIGN LU2 GUNU TIMES ASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2519"},75034:{"value":"1251A","name":"CUNEIFORM SIGN LU2 TIMES DISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u251A"},75035:{"value":"1251B","name":"CUNEIFORM SIGN LU2 TIMES HAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u251B"},75036:{"value":"1251C","name":"CUNEIFORM SIGN LU2 TIMES PAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u251C"},75037:{"value":"1251D","name":"CUNEIFORM SIGN LU2 TIMES PAP PLUS PAP PLUS LU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u251D"},75038:{"value":"1251E","name":"CUNEIFORM SIGN LU2 TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u251E"},75039:{"value":"1251F","name":"CUNEIFORM SIGN MI PLUS ZA7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u251F"},75040:{"value":"12520","name":"CUNEIFORM SIGN MUSH OVER MUSH TIMES GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2520"},75041:{"value":"12521","name":"CUNEIFORM SIGN MUSH OVER MUSH TIMES KAK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2521"},75042:{"value":"12522","name":"CUNEIFORM SIGN NINDA2 TIMES DIM GUNU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2522"},75043:{"value":"12523","name":"CUNEIFORM SIGN NINDA2 TIMES GISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2523"},75044:{"value":"12524","name":"CUNEIFORM SIGN NINDA2 TIMES GUL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2524"},75045:{"value":"12525","name":"CUNEIFORM SIGN NINDA2 TIMES HI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2525"},75046:{"value":"12526","name":"CUNEIFORM SIGN NINDA2 TIMES KESH2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2526"},75047:{"value":"12527","name":"CUNEIFORM SIGN NINDA2 TIMES LAK-050","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2527"},75048:{"value":"12528","name":"CUNEIFORM SIGN NINDA2 TIMES MASH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2528"},75049:{"value":"12529","name":"CUNEIFORM SIGN NINDA2 TIMES PAP PLUS PAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2529"},75050:{"value":"1252A","name":"CUNEIFORM SIGN NINDA2 TIMES U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u252A"},75051:{"value":"1252B","name":"CUNEIFORM SIGN NINDA2 TIMES U PLUS U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u252B"},75052:{"value":"1252C","name":"CUNEIFORM SIGN NINDA2 TIMES URUDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u252C"},75053:{"value":"1252D","name":"CUNEIFORM SIGN SAG GUNU TIMES HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u252D"},75054:{"value":"1252E","name":"CUNEIFORM SIGN SAG TIMES EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u252E"},75055:{"value":"1252F","name":"CUNEIFORM SIGN SAG TIMES SHE AT LEFT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u252F"},75056:{"value":"12530","name":"CUNEIFORM SIGN SAG TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2530"},75057:{"value":"12531","name":"CUNEIFORM SIGN SHA6 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2531"},75058:{"value":"12532","name":"CUNEIFORM SIGN SHE OVER SHE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2532"},75059:{"value":"12533","name":"CUNEIFORM SIGN SHE PLUS HUB2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2533"},75060:{"value":"12534","name":"CUNEIFORM SIGN SHE PLUS NAM2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2534"},75061:{"value":"12535","name":"CUNEIFORM SIGN SHE PLUS SAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2535"},75062:{"value":"12536","name":"CUNEIFORM SIGN SHU2 PLUS DUG TIMES NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2536"},75063:{"value":"12537","name":"CUNEIFORM SIGN SHU2 PLUS E2 TIMES AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2537"},75064:{"value":"12538","name":"CUNEIFORM SIGN SI TIMES TAK4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2538"},75065:{"value":"12539","name":"CUNEIFORM SIGN TAK4 PLUS SAG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2539"},75066:{"value":"1253A","name":"CUNEIFORM SIGN TUM TIMES GAN2 TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u253A"},75067:{"value":"1253B","name":"CUNEIFORM SIGN TUM TIMES THREE DISH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u253B"},75068:{"value":"1253C","name":"CUNEIFORM SIGN UR2 INVERTED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u253C"},75069:{"value":"1253D","name":"CUNEIFORM SIGN UR2 TIMES UD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u253D"},75070:{"value":"1253E","name":"CUNEIFORM SIGN URU TIMES DARA3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u253E"},75071:{"value":"1253F","name":"CUNEIFORM SIGN URU TIMES LAK-668","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u253F"},75072:{"value":"12540","name":"CUNEIFORM SIGN URU TIMES LU3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2540"},75073:{"value":"12541","name":"CUNEIFORM SIGN ZA7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2541"},75074:{"value":"12542","name":"CUNEIFORM SIGN ZU OVER ZU PLUS SAR","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2542"},75075:{"value":"12543","name":"CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2543"},77824:{"value":"13000","name":"EGYPTIAN HIEROGLYPH A001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3000"},77825:{"value":"13001","name":"EGYPTIAN HIEROGLYPH A002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3001"},77826:{"value":"13002","name":"EGYPTIAN HIEROGLYPH A003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3002"},77827:{"value":"13003","name":"EGYPTIAN HIEROGLYPH A004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3003"},77828:{"value":"13004","name":"EGYPTIAN HIEROGLYPH A005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3004"},77829:{"value":"13005","name":"EGYPTIAN HIEROGLYPH A005A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3005"},77830:{"value":"13006","name":"EGYPTIAN HIEROGLYPH A006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3006"},77831:{"value":"13007","name":"EGYPTIAN HIEROGLYPH A006A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3007"},77832:{"value":"13008","name":"EGYPTIAN HIEROGLYPH A006B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3008"},77833:{"value":"13009","name":"EGYPTIAN HIEROGLYPH A007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3009"},77834:{"value":"1300A","name":"EGYPTIAN HIEROGLYPH A008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u300A"},77835:{"value":"1300B","name":"EGYPTIAN HIEROGLYPH A009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u300B"},77836:{"value":"1300C","name":"EGYPTIAN HIEROGLYPH A010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u300C"},77837:{"value":"1300D","name":"EGYPTIAN HIEROGLYPH A011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u300D"},77838:{"value":"1300E","name":"EGYPTIAN HIEROGLYPH A012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u300E"},77839:{"value":"1300F","name":"EGYPTIAN HIEROGLYPH A013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u300F"},77840:{"value":"13010","name":"EGYPTIAN HIEROGLYPH A014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3010"},77841:{"value":"13011","name":"EGYPTIAN HIEROGLYPH A014A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3011"},77842:{"value":"13012","name":"EGYPTIAN HIEROGLYPH A015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3012"},77843:{"value":"13013","name":"EGYPTIAN HIEROGLYPH A016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3013"},77844:{"value":"13014","name":"EGYPTIAN HIEROGLYPH A017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3014"},77845:{"value":"13015","name":"EGYPTIAN HIEROGLYPH A017A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3015"},77846:{"value":"13016","name":"EGYPTIAN HIEROGLYPH A018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3016"},77847:{"value":"13017","name":"EGYPTIAN HIEROGLYPH A019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3017"},77848:{"value":"13018","name":"EGYPTIAN HIEROGLYPH A020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3018"},77849:{"value":"13019","name":"EGYPTIAN HIEROGLYPH A021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3019"},77850:{"value":"1301A","name":"EGYPTIAN HIEROGLYPH A022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u301A"},77851:{"value":"1301B","name":"EGYPTIAN HIEROGLYPH A023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u301B"},77852:{"value":"1301C","name":"EGYPTIAN HIEROGLYPH A024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u301C"},77853:{"value":"1301D","name":"EGYPTIAN HIEROGLYPH A025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u301D"},77854:{"value":"1301E","name":"EGYPTIAN HIEROGLYPH A026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u301E"},77855:{"value":"1301F","name":"EGYPTIAN HIEROGLYPH A027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u301F"},77856:{"value":"13020","name":"EGYPTIAN HIEROGLYPH A028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3020"},77857:{"value":"13021","name":"EGYPTIAN HIEROGLYPH A029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3021"},77858:{"value":"13022","name":"EGYPTIAN HIEROGLYPH A030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3022"},77859:{"value":"13023","name":"EGYPTIAN HIEROGLYPH A031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3023"},77860:{"value":"13024","name":"EGYPTIAN HIEROGLYPH A032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3024"},77861:{"value":"13025","name":"EGYPTIAN HIEROGLYPH A032A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3025"},77862:{"value":"13026","name":"EGYPTIAN HIEROGLYPH A033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3026"},77863:{"value":"13027","name":"EGYPTIAN HIEROGLYPH A034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3027"},77864:{"value":"13028","name":"EGYPTIAN HIEROGLYPH A035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3028"},77865:{"value":"13029","name":"EGYPTIAN HIEROGLYPH A036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3029"},77866:{"value":"1302A","name":"EGYPTIAN HIEROGLYPH A037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302A"},77867:{"value":"1302B","name":"EGYPTIAN HIEROGLYPH A038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302B"},77868:{"value":"1302C","name":"EGYPTIAN HIEROGLYPH A039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302C"},77869:{"value":"1302D","name":"EGYPTIAN HIEROGLYPH A040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302D"},77870:{"value":"1302E","name":"EGYPTIAN HIEROGLYPH A040A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302E"},77871:{"value":"1302F","name":"EGYPTIAN HIEROGLYPH A041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302F"},77872:{"value":"13030","name":"EGYPTIAN HIEROGLYPH A042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3030"},77873:{"value":"13031","name":"EGYPTIAN HIEROGLYPH A042A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3031"},77874:{"value":"13032","name":"EGYPTIAN HIEROGLYPH A043","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3032"},77875:{"value":"13033","name":"EGYPTIAN HIEROGLYPH A043A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3033"},77876:{"value":"13034","name":"EGYPTIAN HIEROGLYPH A044","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3034"},77877:{"value":"13035","name":"EGYPTIAN HIEROGLYPH A045","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3035"},77878:{"value":"13036","name":"EGYPTIAN HIEROGLYPH A045A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3036"},77879:{"value":"13037","name":"EGYPTIAN HIEROGLYPH A046","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3037"},77880:{"value":"13038","name":"EGYPTIAN HIEROGLYPH A047","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3038"},77881:{"value":"13039","name":"EGYPTIAN HIEROGLYPH A048","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3039"},77882:{"value":"1303A","name":"EGYPTIAN HIEROGLYPH A049","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u303A"},77883:{"value":"1303B","name":"EGYPTIAN HIEROGLYPH A050","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u303B"},77884:{"value":"1303C","name":"EGYPTIAN HIEROGLYPH A051","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u303C"},77885:{"value":"1303D","name":"EGYPTIAN HIEROGLYPH A052","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u303D"},77886:{"value":"1303E","name":"EGYPTIAN HIEROGLYPH A053","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u303E"},77887:{"value":"1303F","name":"EGYPTIAN HIEROGLYPH A054","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u303F"},77888:{"value":"13040","name":"EGYPTIAN HIEROGLYPH A055","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3040"},77889:{"value":"13041","name":"EGYPTIAN HIEROGLYPH A056","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3041"},77890:{"value":"13042","name":"EGYPTIAN HIEROGLYPH A057","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3042"},77891:{"value":"13043","name":"EGYPTIAN HIEROGLYPH A058","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3043"},77892:{"value":"13044","name":"EGYPTIAN HIEROGLYPH A059","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3044"},77893:{"value":"13045","name":"EGYPTIAN HIEROGLYPH A060","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3045"},77894:{"value":"13046","name":"EGYPTIAN HIEROGLYPH A061","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3046"},77895:{"value":"13047","name":"EGYPTIAN HIEROGLYPH A062","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3047"},77896:{"value":"13048","name":"EGYPTIAN HIEROGLYPH A063","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3048"},77897:{"value":"13049","name":"EGYPTIAN HIEROGLYPH A064","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3049"},77898:{"value":"1304A","name":"EGYPTIAN HIEROGLYPH A065","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304A"},77899:{"value":"1304B","name":"EGYPTIAN HIEROGLYPH A066","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304B"},77900:{"value":"1304C","name":"EGYPTIAN HIEROGLYPH A067","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304C"},77901:{"value":"1304D","name":"EGYPTIAN HIEROGLYPH A068","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304D"},77902:{"value":"1304E","name":"EGYPTIAN HIEROGLYPH A069","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304E"},77903:{"value":"1304F","name":"EGYPTIAN HIEROGLYPH A070","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u304F"},77904:{"value":"13050","name":"EGYPTIAN HIEROGLYPH B001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3050"},77905:{"value":"13051","name":"EGYPTIAN HIEROGLYPH B002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3051"},77906:{"value":"13052","name":"EGYPTIAN HIEROGLYPH B003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3052"},77907:{"value":"13053","name":"EGYPTIAN HIEROGLYPH B004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3053"},77908:{"value":"13054","name":"EGYPTIAN HIEROGLYPH B005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3054"},77909:{"value":"13055","name":"EGYPTIAN HIEROGLYPH B005A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3055"},77910:{"value":"13056","name":"EGYPTIAN HIEROGLYPH B006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3056"},77911:{"value":"13057","name":"EGYPTIAN HIEROGLYPH B007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3057"},77912:{"value":"13058","name":"EGYPTIAN HIEROGLYPH B008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3058"},77913:{"value":"13059","name":"EGYPTIAN HIEROGLYPH B009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3059"},77914:{"value":"1305A","name":"EGYPTIAN HIEROGLYPH C001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305A"},77915:{"value":"1305B","name":"EGYPTIAN HIEROGLYPH C002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305B"},77916:{"value":"1305C","name":"EGYPTIAN HIEROGLYPH C002A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305C"},77917:{"value":"1305D","name":"EGYPTIAN HIEROGLYPH C002B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305D"},77918:{"value":"1305E","name":"EGYPTIAN HIEROGLYPH C002C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305E"},77919:{"value":"1305F","name":"EGYPTIAN HIEROGLYPH C003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u305F"},77920:{"value":"13060","name":"EGYPTIAN HIEROGLYPH C004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3060"},77921:{"value":"13061","name":"EGYPTIAN HIEROGLYPH C005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3061"},77922:{"value":"13062","name":"EGYPTIAN HIEROGLYPH C006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3062"},77923:{"value":"13063","name":"EGYPTIAN HIEROGLYPH C007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3063"},77924:{"value":"13064","name":"EGYPTIAN HIEROGLYPH C008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3064"},77925:{"value":"13065","name":"EGYPTIAN HIEROGLYPH C009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3065"},77926:{"value":"13066","name":"EGYPTIAN HIEROGLYPH C010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3066"},77927:{"value":"13067","name":"EGYPTIAN HIEROGLYPH C010A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3067"},77928:{"value":"13068","name":"EGYPTIAN HIEROGLYPH C011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3068"},77929:{"value":"13069","name":"EGYPTIAN HIEROGLYPH C012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3069"},77930:{"value":"1306A","name":"EGYPTIAN HIEROGLYPH C013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306A"},77931:{"value":"1306B","name":"EGYPTIAN HIEROGLYPH C014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306B"},77932:{"value":"1306C","name":"EGYPTIAN HIEROGLYPH C015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306C"},77933:{"value":"1306D","name":"EGYPTIAN HIEROGLYPH C016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306D"},77934:{"value":"1306E","name":"EGYPTIAN HIEROGLYPH C017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306E"},77935:{"value":"1306F","name":"EGYPTIAN HIEROGLYPH C018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u306F"},77936:{"value":"13070","name":"EGYPTIAN HIEROGLYPH C019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3070"},77937:{"value":"13071","name":"EGYPTIAN HIEROGLYPH C020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3071"},77938:{"value":"13072","name":"EGYPTIAN HIEROGLYPH C021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3072"},77939:{"value":"13073","name":"EGYPTIAN HIEROGLYPH C022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3073"},77940:{"value":"13074","name":"EGYPTIAN HIEROGLYPH C023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3074"},77941:{"value":"13075","name":"EGYPTIAN HIEROGLYPH C024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3075"},77942:{"value":"13076","name":"EGYPTIAN HIEROGLYPH D001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3076"},77943:{"value":"13077","name":"EGYPTIAN HIEROGLYPH D002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3077"},77944:{"value":"13078","name":"EGYPTIAN HIEROGLYPH D003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3078"},77945:{"value":"13079","name":"EGYPTIAN HIEROGLYPH D004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3079"},77946:{"value":"1307A","name":"EGYPTIAN HIEROGLYPH D005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307A"},77947:{"value":"1307B","name":"EGYPTIAN HIEROGLYPH D006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307B"},77948:{"value":"1307C","name":"EGYPTIAN HIEROGLYPH D007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307C"},77949:{"value":"1307D","name":"EGYPTIAN HIEROGLYPH D008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307D"},77950:{"value":"1307E","name":"EGYPTIAN HIEROGLYPH D008A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307E"},77951:{"value":"1307F","name":"EGYPTIAN HIEROGLYPH D009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u307F"},77952:{"value":"13080","name":"EGYPTIAN HIEROGLYPH D010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3080"},77953:{"value":"13081","name":"EGYPTIAN HIEROGLYPH D011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3081"},77954:{"value":"13082","name":"EGYPTIAN HIEROGLYPH D012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3082"},77955:{"value":"13083","name":"EGYPTIAN HIEROGLYPH D013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3083"},77956:{"value":"13084","name":"EGYPTIAN HIEROGLYPH D014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3084"},77957:{"value":"13085","name":"EGYPTIAN HIEROGLYPH D015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3085"},77958:{"value":"13086","name":"EGYPTIAN HIEROGLYPH D016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3086"},77959:{"value":"13087","name":"EGYPTIAN HIEROGLYPH D017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3087"},77960:{"value":"13088","name":"EGYPTIAN HIEROGLYPH D018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3088"},77961:{"value":"13089","name":"EGYPTIAN HIEROGLYPH D019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3089"},77962:{"value":"1308A","name":"EGYPTIAN HIEROGLYPH D020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308A"},77963:{"value":"1308B","name":"EGYPTIAN HIEROGLYPH D021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308B"},77964:{"value":"1308C","name":"EGYPTIAN HIEROGLYPH D022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308C"},77965:{"value":"1308D","name":"EGYPTIAN HIEROGLYPH D023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308D"},77966:{"value":"1308E","name":"EGYPTIAN HIEROGLYPH D024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308E"},77967:{"value":"1308F","name":"EGYPTIAN HIEROGLYPH D025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u308F"},77968:{"value":"13090","name":"EGYPTIAN HIEROGLYPH D026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3090"},77969:{"value":"13091","name":"EGYPTIAN HIEROGLYPH D027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3091"},77970:{"value":"13092","name":"EGYPTIAN HIEROGLYPH D027A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3092"},77971:{"value":"13093","name":"EGYPTIAN HIEROGLYPH D028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3093"},77972:{"value":"13094","name":"EGYPTIAN HIEROGLYPH D029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3094"},77973:{"value":"13095","name":"EGYPTIAN HIEROGLYPH D030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3095"},77974:{"value":"13096","name":"EGYPTIAN HIEROGLYPH D031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3096"},77975:{"value":"13097","name":"EGYPTIAN HIEROGLYPH D031A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3097"},77976:{"value":"13098","name":"EGYPTIAN HIEROGLYPH D032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3098"},77977:{"value":"13099","name":"EGYPTIAN HIEROGLYPH D033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3099"},77978:{"value":"1309A","name":"EGYPTIAN HIEROGLYPH D034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u309A"},77979:{"value":"1309B","name":"EGYPTIAN HIEROGLYPH D034A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u309B"},77980:{"value":"1309C","name":"EGYPTIAN HIEROGLYPH D035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u309C"},77981:{"value":"1309D","name":"EGYPTIAN HIEROGLYPH D036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u309D"},77982:{"value":"1309E","name":"EGYPTIAN HIEROGLYPH D037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u309E"},77983:{"value":"1309F","name":"EGYPTIAN HIEROGLYPH D038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u309F"},77984:{"value":"130A0","name":"EGYPTIAN HIEROGLYPH D039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A0"},77985:{"value":"130A1","name":"EGYPTIAN HIEROGLYPH D040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A1"},77986:{"value":"130A2","name":"EGYPTIAN HIEROGLYPH D041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A2"},77987:{"value":"130A3","name":"EGYPTIAN HIEROGLYPH D042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A3"},77988:{"value":"130A4","name":"EGYPTIAN HIEROGLYPH D043","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A4"},77989:{"value":"130A5","name":"EGYPTIAN HIEROGLYPH D044","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A5"},77990:{"value":"130A6","name":"EGYPTIAN HIEROGLYPH D045","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A6"},77991:{"value":"130A7","name":"EGYPTIAN HIEROGLYPH D046","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A7"},77992:{"value":"130A8","name":"EGYPTIAN HIEROGLYPH D046A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A8"},77993:{"value":"130A9","name":"EGYPTIAN HIEROGLYPH D047","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30A9"},77994:{"value":"130AA","name":"EGYPTIAN HIEROGLYPH D048","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AA"},77995:{"value":"130AB","name":"EGYPTIAN HIEROGLYPH D048A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AB"},77996:{"value":"130AC","name":"EGYPTIAN HIEROGLYPH D049","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AC"},77997:{"value":"130AD","name":"EGYPTIAN HIEROGLYPH D050","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AD"},77998:{"value":"130AE","name":"EGYPTIAN HIEROGLYPH D050A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AE"},77999:{"value":"130AF","name":"EGYPTIAN HIEROGLYPH D050B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30AF"},78000:{"value":"130B0","name":"EGYPTIAN HIEROGLYPH D050C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B0"},78001:{"value":"130B1","name":"EGYPTIAN HIEROGLYPH D050D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B1"},78002:{"value":"130B2","name":"EGYPTIAN HIEROGLYPH D050E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B2"},78003:{"value":"130B3","name":"EGYPTIAN HIEROGLYPH D050F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B3"},78004:{"value":"130B4","name":"EGYPTIAN HIEROGLYPH D050G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B4"},78005:{"value":"130B5","name":"EGYPTIAN HIEROGLYPH D050H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B5"},78006:{"value":"130B6","name":"EGYPTIAN HIEROGLYPH D050I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B6"},78007:{"value":"130B7","name":"EGYPTIAN HIEROGLYPH D051","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B7"},78008:{"value":"130B8","name":"EGYPTIAN HIEROGLYPH D052","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B8"},78009:{"value":"130B9","name":"EGYPTIAN HIEROGLYPH D052A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30B9"},78010:{"value":"130BA","name":"EGYPTIAN HIEROGLYPH D053","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BA"},78011:{"value":"130BB","name":"EGYPTIAN HIEROGLYPH D054","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BB"},78012:{"value":"130BC","name":"EGYPTIAN HIEROGLYPH D054A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BC"},78013:{"value":"130BD","name":"EGYPTIAN HIEROGLYPH D055","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BD"},78014:{"value":"130BE","name":"EGYPTIAN HIEROGLYPH D056","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BE"},78015:{"value":"130BF","name":"EGYPTIAN HIEROGLYPH D057","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30BF"},78016:{"value":"130C0","name":"EGYPTIAN HIEROGLYPH D058","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C0"},78017:{"value":"130C1","name":"EGYPTIAN HIEROGLYPH D059","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C1"},78018:{"value":"130C2","name":"EGYPTIAN HIEROGLYPH D060","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C2"},78019:{"value":"130C3","name":"EGYPTIAN HIEROGLYPH D061","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C3"},78020:{"value":"130C4","name":"EGYPTIAN HIEROGLYPH D062","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C4"},78021:{"value":"130C5","name":"EGYPTIAN HIEROGLYPH D063","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C5"},78022:{"value":"130C6","name":"EGYPTIAN HIEROGLYPH D064","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C6"},78023:{"value":"130C7","name":"EGYPTIAN HIEROGLYPH D065","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C7"},78024:{"value":"130C8","name":"EGYPTIAN HIEROGLYPH D066","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C8"},78025:{"value":"130C9","name":"EGYPTIAN HIEROGLYPH D067","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30C9"},78026:{"value":"130CA","name":"EGYPTIAN HIEROGLYPH D067A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CA"},78027:{"value":"130CB","name":"EGYPTIAN HIEROGLYPH D067B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CB"},78028:{"value":"130CC","name":"EGYPTIAN HIEROGLYPH D067C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CC"},78029:{"value":"130CD","name":"EGYPTIAN HIEROGLYPH D067D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CD"},78030:{"value":"130CE","name":"EGYPTIAN HIEROGLYPH D067E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CE"},78031:{"value":"130CF","name":"EGYPTIAN HIEROGLYPH D067F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30CF"},78032:{"value":"130D0","name":"EGYPTIAN HIEROGLYPH D067G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D0"},78033:{"value":"130D1","name":"EGYPTIAN HIEROGLYPH D067H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D1"},78034:{"value":"130D2","name":"EGYPTIAN HIEROGLYPH E001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D2"},78035:{"value":"130D3","name":"EGYPTIAN HIEROGLYPH E002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D3"},78036:{"value":"130D4","name":"EGYPTIAN HIEROGLYPH E003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D4"},78037:{"value":"130D5","name":"EGYPTIAN HIEROGLYPH E004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D5"},78038:{"value":"130D6","name":"EGYPTIAN HIEROGLYPH E005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D6"},78039:{"value":"130D7","name":"EGYPTIAN HIEROGLYPH E006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D7"},78040:{"value":"130D8","name":"EGYPTIAN HIEROGLYPH E007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D8"},78041:{"value":"130D9","name":"EGYPTIAN HIEROGLYPH E008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30D9"},78042:{"value":"130DA","name":"EGYPTIAN HIEROGLYPH E008A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DA"},78043:{"value":"130DB","name":"EGYPTIAN HIEROGLYPH E009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DB"},78044:{"value":"130DC","name":"EGYPTIAN HIEROGLYPH E009A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DC"},78045:{"value":"130DD","name":"EGYPTIAN HIEROGLYPH E010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DD"},78046:{"value":"130DE","name":"EGYPTIAN HIEROGLYPH E011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DE"},78047:{"value":"130DF","name":"EGYPTIAN HIEROGLYPH E012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30DF"},78048:{"value":"130E0","name":"EGYPTIAN HIEROGLYPH E013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E0"},78049:{"value":"130E1","name":"EGYPTIAN HIEROGLYPH E014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E1"},78050:{"value":"130E2","name":"EGYPTIAN HIEROGLYPH E015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E2"},78051:{"value":"130E3","name":"EGYPTIAN HIEROGLYPH E016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E3"},78052:{"value":"130E4","name":"EGYPTIAN HIEROGLYPH E016A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E4"},78053:{"value":"130E5","name":"EGYPTIAN HIEROGLYPH E017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E5"},78054:{"value":"130E6","name":"EGYPTIAN HIEROGLYPH E017A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E6"},78055:{"value":"130E7","name":"EGYPTIAN HIEROGLYPH E018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E7"},78056:{"value":"130E8","name":"EGYPTIAN HIEROGLYPH E019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E8"},78057:{"value":"130E9","name":"EGYPTIAN HIEROGLYPH E020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30E9"},78058:{"value":"130EA","name":"EGYPTIAN HIEROGLYPH E020A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30EA"},78059:{"value":"130EB","name":"EGYPTIAN HIEROGLYPH E021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30EB"},78060:{"value":"130EC","name":"EGYPTIAN HIEROGLYPH E022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30EC"},78061:{"value":"130ED","name":"EGYPTIAN HIEROGLYPH E023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30ED"},78062:{"value":"130EE","name":"EGYPTIAN HIEROGLYPH E024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30EE"},78063:{"value":"130EF","name":"EGYPTIAN HIEROGLYPH E025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30EF"},78064:{"value":"130F0","name":"EGYPTIAN HIEROGLYPH E026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F0"},78065:{"value":"130F1","name":"EGYPTIAN HIEROGLYPH E027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F1"},78066:{"value":"130F2","name":"EGYPTIAN HIEROGLYPH E028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F2"},78067:{"value":"130F3","name":"EGYPTIAN HIEROGLYPH E028A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F3"},78068:{"value":"130F4","name":"EGYPTIAN HIEROGLYPH E029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F4"},78069:{"value":"130F5","name":"EGYPTIAN HIEROGLYPH E030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F5"},78070:{"value":"130F6","name":"EGYPTIAN HIEROGLYPH E031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F6"},78071:{"value":"130F7","name":"EGYPTIAN HIEROGLYPH E032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F7"},78072:{"value":"130F8","name":"EGYPTIAN HIEROGLYPH E033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F8"},78073:{"value":"130F9","name":"EGYPTIAN HIEROGLYPH E034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30F9"},78074:{"value":"130FA","name":"EGYPTIAN HIEROGLYPH E034A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FA"},78075:{"value":"130FB","name":"EGYPTIAN HIEROGLYPH E036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FB"},78076:{"value":"130FC","name":"EGYPTIAN HIEROGLYPH E037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FC"},78077:{"value":"130FD","name":"EGYPTIAN HIEROGLYPH E038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FD"},78078:{"value":"130FE","name":"EGYPTIAN HIEROGLYPH F001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FE"},78079:{"value":"130FF","name":"EGYPTIAN HIEROGLYPH F001A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FF"},78080:{"value":"13100","name":"EGYPTIAN HIEROGLYPH F002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3100"},78081:{"value":"13101","name":"EGYPTIAN HIEROGLYPH F003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3101"},78082:{"value":"13102","name":"EGYPTIAN HIEROGLYPH F004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3102"},78083:{"value":"13103","name":"EGYPTIAN HIEROGLYPH F005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3103"},78084:{"value":"13104","name":"EGYPTIAN HIEROGLYPH F006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3104"},78085:{"value":"13105","name":"EGYPTIAN HIEROGLYPH F007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3105"},78086:{"value":"13106","name":"EGYPTIAN HIEROGLYPH F008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3106"},78087:{"value":"13107","name":"EGYPTIAN HIEROGLYPH F009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3107"},78088:{"value":"13108","name":"EGYPTIAN HIEROGLYPH F010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3108"},78089:{"value":"13109","name":"EGYPTIAN HIEROGLYPH F011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3109"},78090:{"value":"1310A","name":"EGYPTIAN HIEROGLYPH F012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310A"},78091:{"value":"1310B","name":"EGYPTIAN HIEROGLYPH F013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310B"},78092:{"value":"1310C","name":"EGYPTIAN HIEROGLYPH F013A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310C"},78093:{"value":"1310D","name":"EGYPTIAN HIEROGLYPH F014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310D"},78094:{"value":"1310E","name":"EGYPTIAN HIEROGLYPH F015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310E"},78095:{"value":"1310F","name":"EGYPTIAN HIEROGLYPH F016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u310F"},78096:{"value":"13110","name":"EGYPTIAN HIEROGLYPH F017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3110"},78097:{"value":"13111","name":"EGYPTIAN HIEROGLYPH F018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3111"},78098:{"value":"13112","name":"EGYPTIAN HIEROGLYPH F019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3112"},78099:{"value":"13113","name":"EGYPTIAN HIEROGLYPH F020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3113"},78100:{"value":"13114","name":"EGYPTIAN HIEROGLYPH F021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3114"},78101:{"value":"13115","name":"EGYPTIAN HIEROGLYPH F021A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3115"},78102:{"value":"13116","name":"EGYPTIAN HIEROGLYPH F022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3116"},78103:{"value":"13117","name":"EGYPTIAN HIEROGLYPH F023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3117"},78104:{"value":"13118","name":"EGYPTIAN HIEROGLYPH F024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3118"},78105:{"value":"13119","name":"EGYPTIAN HIEROGLYPH F025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3119"},78106:{"value":"1311A","name":"EGYPTIAN HIEROGLYPH F026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311A"},78107:{"value":"1311B","name":"EGYPTIAN HIEROGLYPH F027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311B"},78108:{"value":"1311C","name":"EGYPTIAN HIEROGLYPH F028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311C"},78109:{"value":"1311D","name":"EGYPTIAN HIEROGLYPH F029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311D"},78110:{"value":"1311E","name":"EGYPTIAN HIEROGLYPH F030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311E"},78111:{"value":"1311F","name":"EGYPTIAN HIEROGLYPH F031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u311F"},78112:{"value":"13120","name":"EGYPTIAN HIEROGLYPH F031A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3120"},78113:{"value":"13121","name":"EGYPTIAN HIEROGLYPH F032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3121"},78114:{"value":"13122","name":"EGYPTIAN HIEROGLYPH F033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3122"},78115:{"value":"13123","name":"EGYPTIAN HIEROGLYPH F034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3123"},78116:{"value":"13124","name":"EGYPTIAN HIEROGLYPH F035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3124"},78117:{"value":"13125","name":"EGYPTIAN HIEROGLYPH F036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3125"},78118:{"value":"13126","name":"EGYPTIAN HIEROGLYPH F037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3126"},78119:{"value":"13127","name":"EGYPTIAN HIEROGLYPH F037A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3127"},78120:{"value":"13128","name":"EGYPTIAN HIEROGLYPH F038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3128"},78121:{"value":"13129","name":"EGYPTIAN HIEROGLYPH F038A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3129"},78122:{"value":"1312A","name":"EGYPTIAN HIEROGLYPH F039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312A"},78123:{"value":"1312B","name":"EGYPTIAN HIEROGLYPH F040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312B"},78124:{"value":"1312C","name":"EGYPTIAN HIEROGLYPH F041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312C"},78125:{"value":"1312D","name":"EGYPTIAN HIEROGLYPH F042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312D"},78126:{"value":"1312E","name":"EGYPTIAN HIEROGLYPH F043","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312E"},78127:{"value":"1312F","name":"EGYPTIAN HIEROGLYPH F044","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u312F"},78128:{"value":"13130","name":"EGYPTIAN HIEROGLYPH F045","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3130"},78129:{"value":"13131","name":"EGYPTIAN HIEROGLYPH F045A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3131"},78130:{"value":"13132","name":"EGYPTIAN HIEROGLYPH F046","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3132"},78131:{"value":"13133","name":"EGYPTIAN HIEROGLYPH F046A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3133"},78132:{"value":"13134","name":"EGYPTIAN HIEROGLYPH F047","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3134"},78133:{"value":"13135","name":"EGYPTIAN HIEROGLYPH F047A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3135"},78134:{"value":"13136","name":"EGYPTIAN HIEROGLYPH F048","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3136"},78135:{"value":"13137","name":"EGYPTIAN HIEROGLYPH F049","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3137"},78136:{"value":"13138","name":"EGYPTIAN HIEROGLYPH F050","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3138"},78137:{"value":"13139","name":"EGYPTIAN HIEROGLYPH F051","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3139"},78138:{"value":"1313A","name":"EGYPTIAN HIEROGLYPH F051A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313A"},78139:{"value":"1313B","name":"EGYPTIAN HIEROGLYPH F051B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313B"},78140:{"value":"1313C","name":"EGYPTIAN HIEROGLYPH F051C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313C"},78141:{"value":"1313D","name":"EGYPTIAN HIEROGLYPH F052","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313D"},78142:{"value":"1313E","name":"EGYPTIAN HIEROGLYPH F053","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313E"},78143:{"value":"1313F","name":"EGYPTIAN HIEROGLYPH G001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u313F"},78144:{"value":"13140","name":"EGYPTIAN HIEROGLYPH G002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3140"},78145:{"value":"13141","name":"EGYPTIAN HIEROGLYPH G003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3141"},78146:{"value":"13142","name":"EGYPTIAN HIEROGLYPH G004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3142"},78147:{"value":"13143","name":"EGYPTIAN HIEROGLYPH G005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3143"},78148:{"value":"13144","name":"EGYPTIAN HIEROGLYPH G006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3144"},78149:{"value":"13145","name":"EGYPTIAN HIEROGLYPH G006A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3145"},78150:{"value":"13146","name":"EGYPTIAN HIEROGLYPH G007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3146"},78151:{"value":"13147","name":"EGYPTIAN HIEROGLYPH G007A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3147"},78152:{"value":"13148","name":"EGYPTIAN HIEROGLYPH G007B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3148"},78153:{"value":"13149","name":"EGYPTIAN HIEROGLYPH G008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3149"},78154:{"value":"1314A","name":"EGYPTIAN HIEROGLYPH G009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314A"},78155:{"value":"1314B","name":"EGYPTIAN HIEROGLYPH G010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314B"},78156:{"value":"1314C","name":"EGYPTIAN HIEROGLYPH G011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314C"},78157:{"value":"1314D","name":"EGYPTIAN HIEROGLYPH G011A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314D"},78158:{"value":"1314E","name":"EGYPTIAN HIEROGLYPH G012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314E"},78159:{"value":"1314F","name":"EGYPTIAN HIEROGLYPH G013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u314F"},78160:{"value":"13150","name":"EGYPTIAN HIEROGLYPH G014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3150"},78161:{"value":"13151","name":"EGYPTIAN HIEROGLYPH G015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3151"},78162:{"value":"13152","name":"EGYPTIAN HIEROGLYPH G016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3152"},78163:{"value":"13153","name":"EGYPTIAN HIEROGLYPH G017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3153"},78164:{"value":"13154","name":"EGYPTIAN HIEROGLYPH G018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3154"},78165:{"value":"13155","name":"EGYPTIAN HIEROGLYPH G019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3155"},78166:{"value":"13156","name":"EGYPTIAN HIEROGLYPH G020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3156"},78167:{"value":"13157","name":"EGYPTIAN HIEROGLYPH G020A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3157"},78168:{"value":"13158","name":"EGYPTIAN HIEROGLYPH G021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3158"},78169:{"value":"13159","name":"EGYPTIAN HIEROGLYPH G022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3159"},78170:{"value":"1315A","name":"EGYPTIAN HIEROGLYPH G023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315A"},78171:{"value":"1315B","name":"EGYPTIAN HIEROGLYPH G024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315B"},78172:{"value":"1315C","name":"EGYPTIAN HIEROGLYPH G025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315C"},78173:{"value":"1315D","name":"EGYPTIAN HIEROGLYPH G026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315D"},78174:{"value":"1315E","name":"EGYPTIAN HIEROGLYPH G026A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315E"},78175:{"value":"1315F","name":"EGYPTIAN HIEROGLYPH G027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u315F"},78176:{"value":"13160","name":"EGYPTIAN HIEROGLYPH G028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3160"},78177:{"value":"13161","name":"EGYPTIAN HIEROGLYPH G029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3161"},78178:{"value":"13162","name":"EGYPTIAN HIEROGLYPH G030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3162"},78179:{"value":"13163","name":"EGYPTIAN HIEROGLYPH G031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3163"},78180:{"value":"13164","name":"EGYPTIAN HIEROGLYPH G032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3164"},78181:{"value":"13165","name":"EGYPTIAN HIEROGLYPH G033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3165"},78182:{"value":"13166","name":"EGYPTIAN HIEROGLYPH G034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3166"},78183:{"value":"13167","name":"EGYPTIAN HIEROGLYPH G035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3167"},78184:{"value":"13168","name":"EGYPTIAN HIEROGLYPH G036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3168"},78185:{"value":"13169","name":"EGYPTIAN HIEROGLYPH G036A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3169"},78186:{"value":"1316A","name":"EGYPTIAN HIEROGLYPH G037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316A"},78187:{"value":"1316B","name":"EGYPTIAN HIEROGLYPH G037A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316B"},78188:{"value":"1316C","name":"EGYPTIAN HIEROGLYPH G038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316C"},78189:{"value":"1316D","name":"EGYPTIAN HIEROGLYPH G039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316D"},78190:{"value":"1316E","name":"EGYPTIAN HIEROGLYPH G040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316E"},78191:{"value":"1316F","name":"EGYPTIAN HIEROGLYPH G041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u316F"},78192:{"value":"13170","name":"EGYPTIAN HIEROGLYPH G042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3170"},78193:{"value":"13171","name":"EGYPTIAN HIEROGLYPH G043","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3171"},78194:{"value":"13172","name":"EGYPTIAN HIEROGLYPH G043A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3172"},78195:{"value":"13173","name":"EGYPTIAN HIEROGLYPH G044","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3173"},78196:{"value":"13174","name":"EGYPTIAN HIEROGLYPH G045","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3174"},78197:{"value":"13175","name":"EGYPTIAN HIEROGLYPH G045A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3175"},78198:{"value":"13176","name":"EGYPTIAN HIEROGLYPH G046","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3176"},78199:{"value":"13177","name":"EGYPTIAN HIEROGLYPH G047","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3177"},78200:{"value":"13178","name":"EGYPTIAN HIEROGLYPH G048","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3178"},78201:{"value":"13179","name":"EGYPTIAN HIEROGLYPH G049","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3179"},78202:{"value":"1317A","name":"EGYPTIAN HIEROGLYPH G050","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317A"},78203:{"value":"1317B","name":"EGYPTIAN HIEROGLYPH G051","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317B"},78204:{"value":"1317C","name":"EGYPTIAN HIEROGLYPH G052","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317C"},78205:{"value":"1317D","name":"EGYPTIAN HIEROGLYPH G053","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317D"},78206:{"value":"1317E","name":"EGYPTIAN HIEROGLYPH G054","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317E"},78207:{"value":"1317F","name":"EGYPTIAN HIEROGLYPH H001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u317F"},78208:{"value":"13180","name":"EGYPTIAN HIEROGLYPH H002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3180"},78209:{"value":"13181","name":"EGYPTIAN HIEROGLYPH H003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3181"},78210:{"value":"13182","name":"EGYPTIAN HIEROGLYPH H004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3182"},78211:{"value":"13183","name":"EGYPTIAN HIEROGLYPH H005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3183"},78212:{"value":"13184","name":"EGYPTIAN HIEROGLYPH H006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3184"},78213:{"value":"13185","name":"EGYPTIAN HIEROGLYPH H006A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3185"},78214:{"value":"13186","name":"EGYPTIAN HIEROGLYPH H007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3186"},78215:{"value":"13187","name":"EGYPTIAN HIEROGLYPH H008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3187"},78216:{"value":"13188","name":"EGYPTIAN HIEROGLYPH I001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3188"},78217:{"value":"13189","name":"EGYPTIAN HIEROGLYPH I002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3189"},78218:{"value":"1318A","name":"EGYPTIAN HIEROGLYPH I003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318A"},78219:{"value":"1318B","name":"EGYPTIAN HIEROGLYPH I004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318B"},78220:{"value":"1318C","name":"EGYPTIAN HIEROGLYPH I005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318C"},78221:{"value":"1318D","name":"EGYPTIAN HIEROGLYPH I005A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318D"},78222:{"value":"1318E","name":"EGYPTIAN HIEROGLYPH I006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318E"},78223:{"value":"1318F","name":"EGYPTIAN HIEROGLYPH I007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u318F"},78224:{"value":"13190","name":"EGYPTIAN HIEROGLYPH I008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3190"},78225:{"value":"13191","name":"EGYPTIAN HIEROGLYPH I009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3191"},78226:{"value":"13192","name":"EGYPTIAN HIEROGLYPH I009A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3192"},78227:{"value":"13193","name":"EGYPTIAN HIEROGLYPH I010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3193"},78228:{"value":"13194","name":"EGYPTIAN HIEROGLYPH I010A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3194"},78229:{"value":"13195","name":"EGYPTIAN HIEROGLYPH I011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3195"},78230:{"value":"13196","name":"EGYPTIAN HIEROGLYPH I011A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3196"},78231:{"value":"13197","name":"EGYPTIAN HIEROGLYPH I012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3197"},78232:{"value":"13198","name":"EGYPTIAN HIEROGLYPH I013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3198"},78233:{"value":"13199","name":"EGYPTIAN HIEROGLYPH I014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3199"},78234:{"value":"1319A","name":"EGYPTIAN HIEROGLYPH I015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u319A"},78235:{"value":"1319B","name":"EGYPTIAN HIEROGLYPH K001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u319B"},78236:{"value":"1319C","name":"EGYPTIAN HIEROGLYPH K002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u319C"},78237:{"value":"1319D","name":"EGYPTIAN HIEROGLYPH K003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u319D"},78238:{"value":"1319E","name":"EGYPTIAN HIEROGLYPH K004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u319E"},78239:{"value":"1319F","name":"EGYPTIAN HIEROGLYPH K005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u319F"},78240:{"value":"131A0","name":"EGYPTIAN HIEROGLYPH K006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A0"},78241:{"value":"131A1","name":"EGYPTIAN HIEROGLYPH K007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A1"},78242:{"value":"131A2","name":"EGYPTIAN HIEROGLYPH K008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A2"},78243:{"value":"131A3","name":"EGYPTIAN HIEROGLYPH L001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A3"},78244:{"value":"131A4","name":"EGYPTIAN HIEROGLYPH L002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A4"},78245:{"value":"131A5","name":"EGYPTIAN HIEROGLYPH L002A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A5"},78246:{"value":"131A6","name":"EGYPTIAN HIEROGLYPH L003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A6"},78247:{"value":"131A7","name":"EGYPTIAN HIEROGLYPH L004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A7"},78248:{"value":"131A8","name":"EGYPTIAN HIEROGLYPH L005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A8"},78249:{"value":"131A9","name":"EGYPTIAN HIEROGLYPH L006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31A9"},78250:{"value":"131AA","name":"EGYPTIAN HIEROGLYPH L006A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AA"},78251:{"value":"131AB","name":"EGYPTIAN HIEROGLYPH L007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AB"},78252:{"value":"131AC","name":"EGYPTIAN HIEROGLYPH L008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AC"},78253:{"value":"131AD","name":"EGYPTIAN HIEROGLYPH M001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AD"},78254:{"value":"131AE","name":"EGYPTIAN HIEROGLYPH M001A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AE"},78255:{"value":"131AF","name":"EGYPTIAN HIEROGLYPH M001B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31AF"},78256:{"value":"131B0","name":"EGYPTIAN HIEROGLYPH M002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B0"},78257:{"value":"131B1","name":"EGYPTIAN HIEROGLYPH M003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B1"},78258:{"value":"131B2","name":"EGYPTIAN HIEROGLYPH M003A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B2"},78259:{"value":"131B3","name":"EGYPTIAN HIEROGLYPH M004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B3"},78260:{"value":"131B4","name":"EGYPTIAN HIEROGLYPH M005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B4"},78261:{"value":"131B5","name":"EGYPTIAN HIEROGLYPH M006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B5"},78262:{"value":"131B6","name":"EGYPTIAN HIEROGLYPH M007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B6"},78263:{"value":"131B7","name":"EGYPTIAN HIEROGLYPH M008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B7"},78264:{"value":"131B8","name":"EGYPTIAN HIEROGLYPH M009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B8"},78265:{"value":"131B9","name":"EGYPTIAN HIEROGLYPH M010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31B9"},78266:{"value":"131BA","name":"EGYPTIAN HIEROGLYPH M010A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31BA"},78267:{"value":"131BB","name":"EGYPTIAN HIEROGLYPH M011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31BB"},78268:{"value":"131BC","name":"EGYPTIAN HIEROGLYPH M012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31BC"},78269:{"value":"131BD","name":"EGYPTIAN HIEROGLYPH M012A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31BD"},78270:{"value":"131BE","name":"EGYPTIAN HIEROGLYPH M012B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31BE"},78271:{"value":"131BF","name":"EGYPTIAN HIEROGLYPH M012C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31BF"},78272:{"value":"131C0","name":"EGYPTIAN HIEROGLYPH M012D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31C0"},78273:{"value":"131C1","name":"EGYPTIAN HIEROGLYPH M012E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31C1"},78274:{"value":"131C2","name":"EGYPTIAN HIEROGLYPH M012F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31C2"},78275:{"value":"131C3","name":"EGYPTIAN HIEROGLYPH M012G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31C3"},78276:{"value":"131C4","name":"EGYPTIAN HIEROGLYPH M012H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31C4"},78277:{"value":"131C5","name":"EGYPTIAN HIEROGLYPH M013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31C5"},78278:{"value":"131C6","name":"EGYPTIAN HIEROGLYPH M014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31C6"},78279:{"value":"131C7","name":"EGYPTIAN HIEROGLYPH M015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31C7"},78280:{"value":"131C8","name":"EGYPTIAN HIEROGLYPH M015A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31C8"},78281:{"value":"131C9","name":"EGYPTIAN HIEROGLYPH M016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31C9"},78282:{"value":"131CA","name":"EGYPTIAN HIEROGLYPH M016A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31CA"},78283:{"value":"131CB","name":"EGYPTIAN HIEROGLYPH M017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31CB"},78284:{"value":"131CC","name":"EGYPTIAN HIEROGLYPH M017A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31CC"},78285:{"value":"131CD","name":"EGYPTIAN HIEROGLYPH M018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31CD"},78286:{"value":"131CE","name":"EGYPTIAN HIEROGLYPH M019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31CE"},78287:{"value":"131CF","name":"EGYPTIAN HIEROGLYPH M020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31CF"},78288:{"value":"131D0","name":"EGYPTIAN HIEROGLYPH M021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31D0"},78289:{"value":"131D1","name":"EGYPTIAN HIEROGLYPH M022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31D1"},78290:{"value":"131D2","name":"EGYPTIAN HIEROGLYPH M022A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31D2"},78291:{"value":"131D3","name":"EGYPTIAN HIEROGLYPH M023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31D3"},78292:{"value":"131D4","name":"EGYPTIAN HIEROGLYPH M024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31D4"},78293:{"value":"131D5","name":"EGYPTIAN HIEROGLYPH M024A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31D5"},78294:{"value":"131D6","name":"EGYPTIAN HIEROGLYPH M025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31D6"},78295:{"value":"131D7","name":"EGYPTIAN HIEROGLYPH M026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31D7"},78296:{"value":"131D8","name":"EGYPTIAN HIEROGLYPH M027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31D8"},78297:{"value":"131D9","name":"EGYPTIAN HIEROGLYPH M028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31D9"},78298:{"value":"131DA","name":"EGYPTIAN HIEROGLYPH M028A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31DA"},78299:{"value":"131DB","name":"EGYPTIAN HIEROGLYPH M029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31DB"},78300:{"value":"131DC","name":"EGYPTIAN HIEROGLYPH M030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31DC"},78301:{"value":"131DD","name":"EGYPTIAN HIEROGLYPH M031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31DD"},78302:{"value":"131DE","name":"EGYPTIAN HIEROGLYPH M031A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31DE"},78303:{"value":"131DF","name":"EGYPTIAN HIEROGLYPH M032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31DF"},78304:{"value":"131E0","name":"EGYPTIAN HIEROGLYPH M033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31E0"},78305:{"value":"131E1","name":"EGYPTIAN HIEROGLYPH M033A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31E1"},78306:{"value":"131E2","name":"EGYPTIAN HIEROGLYPH M033B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31E2"},78307:{"value":"131E3","name":"EGYPTIAN HIEROGLYPH M034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31E3"},78308:{"value":"131E4","name":"EGYPTIAN HIEROGLYPH M035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31E4"},78309:{"value":"131E5","name":"EGYPTIAN HIEROGLYPH M036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31E5"},78310:{"value":"131E6","name":"EGYPTIAN HIEROGLYPH M037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31E6"},78311:{"value":"131E7","name":"EGYPTIAN HIEROGLYPH M038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31E7"},78312:{"value":"131E8","name":"EGYPTIAN HIEROGLYPH M039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31E8"},78313:{"value":"131E9","name":"EGYPTIAN HIEROGLYPH M040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31E9"},78314:{"value":"131EA","name":"EGYPTIAN HIEROGLYPH M040A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31EA"},78315:{"value":"131EB","name":"EGYPTIAN HIEROGLYPH M041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31EB"},78316:{"value":"131EC","name":"EGYPTIAN HIEROGLYPH M042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31EC"},78317:{"value":"131ED","name":"EGYPTIAN HIEROGLYPH M043","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31ED"},78318:{"value":"131EE","name":"EGYPTIAN HIEROGLYPH M044","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31EE"},78319:{"value":"131EF","name":"EGYPTIAN HIEROGLYPH N001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31EF"},78320:{"value":"131F0","name":"EGYPTIAN HIEROGLYPH N002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F0"},78321:{"value":"131F1","name":"EGYPTIAN HIEROGLYPH N003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F1"},78322:{"value":"131F2","name":"EGYPTIAN HIEROGLYPH N004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F2"},78323:{"value":"131F3","name":"EGYPTIAN HIEROGLYPH N005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F3"},78324:{"value":"131F4","name":"EGYPTIAN HIEROGLYPH N006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F4"},78325:{"value":"131F5","name":"EGYPTIAN HIEROGLYPH N007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F5"},78326:{"value":"131F6","name":"EGYPTIAN HIEROGLYPH N008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F6"},78327:{"value":"131F7","name":"EGYPTIAN HIEROGLYPH N009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F7"},78328:{"value":"131F8","name":"EGYPTIAN HIEROGLYPH N010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F8"},78329:{"value":"131F9","name":"EGYPTIAN HIEROGLYPH N011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31F9"},78330:{"value":"131FA","name":"EGYPTIAN HIEROGLYPH N012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FA"},78331:{"value":"131FB","name":"EGYPTIAN HIEROGLYPH N013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FB"},78332:{"value":"131FC","name":"EGYPTIAN HIEROGLYPH N014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FC"},78333:{"value":"131FD","name":"EGYPTIAN HIEROGLYPH N015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FD"},78334:{"value":"131FE","name":"EGYPTIAN HIEROGLYPH N016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FE"},78335:{"value":"131FF","name":"EGYPTIAN HIEROGLYPH N017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u31FF"},78336:{"value":"13200","name":"EGYPTIAN HIEROGLYPH N018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3200"},78337:{"value":"13201","name":"EGYPTIAN HIEROGLYPH N018A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3201"},78338:{"value":"13202","name":"EGYPTIAN HIEROGLYPH N018B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3202"},78339:{"value":"13203","name":"EGYPTIAN HIEROGLYPH N019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3203"},78340:{"value":"13204","name":"EGYPTIAN HIEROGLYPH N020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3204"},78341:{"value":"13205","name":"EGYPTIAN HIEROGLYPH N021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3205"},78342:{"value":"13206","name":"EGYPTIAN HIEROGLYPH N022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3206"},78343:{"value":"13207","name":"EGYPTIAN HIEROGLYPH N023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3207"},78344:{"value":"13208","name":"EGYPTIAN HIEROGLYPH N024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3208"},78345:{"value":"13209","name":"EGYPTIAN HIEROGLYPH N025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3209"},78346:{"value":"1320A","name":"EGYPTIAN HIEROGLYPH N025A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u320A"},78347:{"value":"1320B","name":"EGYPTIAN HIEROGLYPH N026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u320B"},78348:{"value":"1320C","name":"EGYPTIAN HIEROGLYPH N027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u320C"},78349:{"value":"1320D","name":"EGYPTIAN HIEROGLYPH N028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u320D"},78350:{"value":"1320E","name":"EGYPTIAN HIEROGLYPH N029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u320E"},78351:{"value":"1320F","name":"EGYPTIAN HIEROGLYPH N030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u320F"},78352:{"value":"13210","name":"EGYPTIAN HIEROGLYPH N031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3210"},78353:{"value":"13211","name":"EGYPTIAN HIEROGLYPH N032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3211"},78354:{"value":"13212","name":"EGYPTIAN HIEROGLYPH N033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3212"},78355:{"value":"13213","name":"EGYPTIAN HIEROGLYPH N033A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3213"},78356:{"value":"13214","name":"EGYPTIAN HIEROGLYPH N034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3214"},78357:{"value":"13215","name":"EGYPTIAN HIEROGLYPH N034A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3215"},78358:{"value":"13216","name":"EGYPTIAN HIEROGLYPH N035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3216"},78359:{"value":"13217","name":"EGYPTIAN HIEROGLYPH N035A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3217"},78360:{"value":"13218","name":"EGYPTIAN HIEROGLYPH N036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3218"},78361:{"value":"13219","name":"EGYPTIAN HIEROGLYPH N037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3219"},78362:{"value":"1321A","name":"EGYPTIAN HIEROGLYPH N037A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u321A"},78363:{"value":"1321B","name":"EGYPTIAN HIEROGLYPH N038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u321B"},78364:{"value":"1321C","name":"EGYPTIAN HIEROGLYPH N039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u321C"},78365:{"value":"1321D","name":"EGYPTIAN HIEROGLYPH N040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u321D"},78366:{"value":"1321E","name":"EGYPTIAN HIEROGLYPH N041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u321E"},78367:{"value":"1321F","name":"EGYPTIAN HIEROGLYPH N042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u321F"},78368:{"value":"13220","name":"EGYPTIAN HIEROGLYPH NL001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3220"},78369:{"value":"13221","name":"EGYPTIAN HIEROGLYPH NL002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3221"},78370:{"value":"13222","name":"EGYPTIAN HIEROGLYPH NL003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3222"},78371:{"value":"13223","name":"EGYPTIAN HIEROGLYPH NL004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3223"},78372:{"value":"13224","name":"EGYPTIAN HIEROGLYPH NL005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3224"},78373:{"value":"13225","name":"EGYPTIAN HIEROGLYPH NL005A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3225"},78374:{"value":"13226","name":"EGYPTIAN HIEROGLYPH NL006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3226"},78375:{"value":"13227","name":"EGYPTIAN HIEROGLYPH NL007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3227"},78376:{"value":"13228","name":"EGYPTIAN HIEROGLYPH NL008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3228"},78377:{"value":"13229","name":"EGYPTIAN HIEROGLYPH NL009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3229"},78378:{"value":"1322A","name":"EGYPTIAN HIEROGLYPH NL010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u322A"},78379:{"value":"1322B","name":"EGYPTIAN HIEROGLYPH NL011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u322B"},78380:{"value":"1322C","name":"EGYPTIAN HIEROGLYPH NL012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u322C"},78381:{"value":"1322D","name":"EGYPTIAN HIEROGLYPH NL013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u322D"},78382:{"value":"1322E","name":"EGYPTIAN HIEROGLYPH NL014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u322E"},78383:{"value":"1322F","name":"EGYPTIAN HIEROGLYPH NL015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u322F"},78384:{"value":"13230","name":"EGYPTIAN HIEROGLYPH NL016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3230"},78385:{"value":"13231","name":"EGYPTIAN HIEROGLYPH NL017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3231"},78386:{"value":"13232","name":"EGYPTIAN HIEROGLYPH NL017A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3232"},78387:{"value":"13233","name":"EGYPTIAN HIEROGLYPH NL018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3233"},78388:{"value":"13234","name":"EGYPTIAN HIEROGLYPH NL019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3234"},78389:{"value":"13235","name":"EGYPTIAN HIEROGLYPH NL020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3235"},78390:{"value":"13236","name":"EGYPTIAN HIEROGLYPH NU001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3236"},78391:{"value":"13237","name":"EGYPTIAN HIEROGLYPH NU002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3237"},78392:{"value":"13238","name":"EGYPTIAN HIEROGLYPH NU003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3238"},78393:{"value":"13239","name":"EGYPTIAN HIEROGLYPH NU004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3239"},78394:{"value":"1323A","name":"EGYPTIAN HIEROGLYPH NU005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u323A"},78395:{"value":"1323B","name":"EGYPTIAN HIEROGLYPH NU006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u323B"},78396:{"value":"1323C","name":"EGYPTIAN HIEROGLYPH NU007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u323C"},78397:{"value":"1323D","name":"EGYPTIAN HIEROGLYPH NU008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u323D"},78398:{"value":"1323E","name":"EGYPTIAN HIEROGLYPH NU009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u323E"},78399:{"value":"1323F","name":"EGYPTIAN HIEROGLYPH NU010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u323F"},78400:{"value":"13240","name":"EGYPTIAN HIEROGLYPH NU010A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3240"},78401:{"value":"13241","name":"EGYPTIAN HIEROGLYPH NU011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3241"},78402:{"value":"13242","name":"EGYPTIAN HIEROGLYPH NU011A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3242"},78403:{"value":"13243","name":"EGYPTIAN HIEROGLYPH NU012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3243"},78404:{"value":"13244","name":"EGYPTIAN HIEROGLYPH NU013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3244"},78405:{"value":"13245","name":"EGYPTIAN HIEROGLYPH NU014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3245"},78406:{"value":"13246","name":"EGYPTIAN HIEROGLYPH NU015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3246"},78407:{"value":"13247","name":"EGYPTIAN HIEROGLYPH NU016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3247"},78408:{"value":"13248","name":"EGYPTIAN HIEROGLYPH NU017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3248"},78409:{"value":"13249","name":"EGYPTIAN HIEROGLYPH NU018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3249"},78410:{"value":"1324A","name":"EGYPTIAN HIEROGLYPH NU018A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u324A"},78411:{"value":"1324B","name":"EGYPTIAN HIEROGLYPH NU019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u324B"},78412:{"value":"1324C","name":"EGYPTIAN HIEROGLYPH NU020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u324C"},78413:{"value":"1324D","name":"EGYPTIAN HIEROGLYPH NU021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u324D"},78414:{"value":"1324E","name":"EGYPTIAN HIEROGLYPH NU022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u324E"},78415:{"value":"1324F","name":"EGYPTIAN HIEROGLYPH NU022A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u324F"},78416:{"value":"13250","name":"EGYPTIAN HIEROGLYPH O001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3250"},78417:{"value":"13251","name":"EGYPTIAN HIEROGLYPH O001A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3251"},78418:{"value":"13252","name":"EGYPTIAN HIEROGLYPH O002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3252"},78419:{"value":"13253","name":"EGYPTIAN HIEROGLYPH O003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3253"},78420:{"value":"13254","name":"EGYPTIAN HIEROGLYPH O004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3254"},78421:{"value":"13255","name":"EGYPTIAN HIEROGLYPH O005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3255"},78422:{"value":"13256","name":"EGYPTIAN HIEROGLYPH O005A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3256"},78423:{"value":"13257","name":"EGYPTIAN HIEROGLYPH O006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3257"},78424:{"value":"13258","name":"EGYPTIAN HIEROGLYPH O006A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3258"},78425:{"value":"13259","name":"EGYPTIAN HIEROGLYPH O006B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3259"},78426:{"value":"1325A","name":"EGYPTIAN HIEROGLYPH O006C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u325A"},78427:{"value":"1325B","name":"EGYPTIAN HIEROGLYPH O006D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u325B"},78428:{"value":"1325C","name":"EGYPTIAN HIEROGLYPH O006E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u325C"},78429:{"value":"1325D","name":"EGYPTIAN HIEROGLYPH O006F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u325D"},78430:{"value":"1325E","name":"EGYPTIAN HIEROGLYPH O007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u325E"},78431:{"value":"1325F","name":"EGYPTIAN HIEROGLYPH O008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u325F"},78432:{"value":"13260","name":"EGYPTIAN HIEROGLYPH O009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3260"},78433:{"value":"13261","name":"EGYPTIAN HIEROGLYPH O010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3261"},78434:{"value":"13262","name":"EGYPTIAN HIEROGLYPH O010A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3262"},78435:{"value":"13263","name":"EGYPTIAN HIEROGLYPH O010B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3263"},78436:{"value":"13264","name":"EGYPTIAN HIEROGLYPH O010C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3264"},78437:{"value":"13265","name":"EGYPTIAN HIEROGLYPH O011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3265"},78438:{"value":"13266","name":"EGYPTIAN HIEROGLYPH O012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3266"},78439:{"value":"13267","name":"EGYPTIAN HIEROGLYPH O013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3267"},78440:{"value":"13268","name":"EGYPTIAN HIEROGLYPH O014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3268"},78441:{"value":"13269","name":"EGYPTIAN HIEROGLYPH O015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3269"},78442:{"value":"1326A","name":"EGYPTIAN HIEROGLYPH O016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u326A"},78443:{"value":"1326B","name":"EGYPTIAN HIEROGLYPH O017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u326B"},78444:{"value":"1326C","name":"EGYPTIAN HIEROGLYPH O018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u326C"},78445:{"value":"1326D","name":"EGYPTIAN HIEROGLYPH O019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u326D"},78446:{"value":"1326E","name":"EGYPTIAN HIEROGLYPH O019A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u326E"},78447:{"value":"1326F","name":"EGYPTIAN HIEROGLYPH O020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u326F"},78448:{"value":"13270","name":"EGYPTIAN HIEROGLYPH O020A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3270"},78449:{"value":"13271","name":"EGYPTIAN HIEROGLYPH O021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3271"},78450:{"value":"13272","name":"EGYPTIAN HIEROGLYPH O022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3272"},78451:{"value":"13273","name":"EGYPTIAN HIEROGLYPH O023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3273"},78452:{"value":"13274","name":"EGYPTIAN HIEROGLYPH O024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3274"},78453:{"value":"13275","name":"EGYPTIAN HIEROGLYPH O024A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3275"},78454:{"value":"13276","name":"EGYPTIAN HIEROGLYPH O025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3276"},78455:{"value":"13277","name":"EGYPTIAN HIEROGLYPH O025A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3277"},78456:{"value":"13278","name":"EGYPTIAN HIEROGLYPH O026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3278"},78457:{"value":"13279","name":"EGYPTIAN HIEROGLYPH O027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3279"},78458:{"value":"1327A","name":"EGYPTIAN HIEROGLYPH O028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u327A"},78459:{"value":"1327B","name":"EGYPTIAN HIEROGLYPH O029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u327B"},78460:{"value":"1327C","name":"EGYPTIAN HIEROGLYPH O029A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u327C"},78461:{"value":"1327D","name":"EGYPTIAN HIEROGLYPH O030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u327D"},78462:{"value":"1327E","name":"EGYPTIAN HIEROGLYPH O030A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u327E"},78463:{"value":"1327F","name":"EGYPTIAN HIEROGLYPH O031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u327F"},78464:{"value":"13280","name":"EGYPTIAN HIEROGLYPH O032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3280"},78465:{"value":"13281","name":"EGYPTIAN HIEROGLYPH O033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3281"},78466:{"value":"13282","name":"EGYPTIAN HIEROGLYPH O033A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3282"},78467:{"value":"13283","name":"EGYPTIAN HIEROGLYPH O034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3283"},78468:{"value":"13284","name":"EGYPTIAN HIEROGLYPH O035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3284"},78469:{"value":"13285","name":"EGYPTIAN HIEROGLYPH O036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3285"},78470:{"value":"13286","name":"EGYPTIAN HIEROGLYPH O036A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3286"},78471:{"value":"13287","name":"EGYPTIAN HIEROGLYPH O036B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3287"},78472:{"value":"13288","name":"EGYPTIAN HIEROGLYPH O036C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3288"},78473:{"value":"13289","name":"EGYPTIAN HIEROGLYPH O036D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3289"},78474:{"value":"1328A","name":"EGYPTIAN HIEROGLYPH O037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u328A"},78475:{"value":"1328B","name":"EGYPTIAN HIEROGLYPH O038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u328B"},78476:{"value":"1328C","name":"EGYPTIAN HIEROGLYPH O039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u328C"},78477:{"value":"1328D","name":"EGYPTIAN HIEROGLYPH O040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u328D"},78478:{"value":"1328E","name":"EGYPTIAN HIEROGLYPH O041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u328E"},78479:{"value":"1328F","name":"EGYPTIAN HIEROGLYPH O042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u328F"},78480:{"value":"13290","name":"EGYPTIAN HIEROGLYPH O043","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3290"},78481:{"value":"13291","name":"EGYPTIAN HIEROGLYPH O044","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3291"},78482:{"value":"13292","name":"EGYPTIAN HIEROGLYPH O045","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3292"},78483:{"value":"13293","name":"EGYPTIAN HIEROGLYPH O046","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3293"},78484:{"value":"13294","name":"EGYPTIAN HIEROGLYPH O047","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3294"},78485:{"value":"13295","name":"EGYPTIAN HIEROGLYPH O048","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3295"},78486:{"value":"13296","name":"EGYPTIAN HIEROGLYPH O049","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3296"},78487:{"value":"13297","name":"EGYPTIAN HIEROGLYPH O050","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3297"},78488:{"value":"13298","name":"EGYPTIAN HIEROGLYPH O050A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3298"},78489:{"value":"13299","name":"EGYPTIAN HIEROGLYPH O050B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3299"},78490:{"value":"1329A","name":"EGYPTIAN HIEROGLYPH O051","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u329A"},78491:{"value":"1329B","name":"EGYPTIAN HIEROGLYPH P001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u329B"},78492:{"value":"1329C","name":"EGYPTIAN HIEROGLYPH P001A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u329C"},78493:{"value":"1329D","name":"EGYPTIAN HIEROGLYPH P002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u329D"},78494:{"value":"1329E","name":"EGYPTIAN HIEROGLYPH P003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u329E"},78495:{"value":"1329F","name":"EGYPTIAN HIEROGLYPH P003A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u329F"},78496:{"value":"132A0","name":"EGYPTIAN HIEROGLYPH P004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32A0"},78497:{"value":"132A1","name":"EGYPTIAN HIEROGLYPH P005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32A1"},78498:{"value":"132A2","name":"EGYPTIAN HIEROGLYPH P006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32A2"},78499:{"value":"132A3","name":"EGYPTIAN HIEROGLYPH P007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32A3"},78500:{"value":"132A4","name":"EGYPTIAN HIEROGLYPH P008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32A4"},78501:{"value":"132A5","name":"EGYPTIAN HIEROGLYPH P009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32A5"},78502:{"value":"132A6","name":"EGYPTIAN HIEROGLYPH P010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32A6"},78503:{"value":"132A7","name":"EGYPTIAN HIEROGLYPH P011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32A7"},78504:{"value":"132A8","name":"EGYPTIAN HIEROGLYPH Q001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32A8"},78505:{"value":"132A9","name":"EGYPTIAN HIEROGLYPH Q002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32A9"},78506:{"value":"132AA","name":"EGYPTIAN HIEROGLYPH Q003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32AA"},78507:{"value":"132AB","name":"EGYPTIAN HIEROGLYPH Q004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32AB"},78508:{"value":"132AC","name":"EGYPTIAN HIEROGLYPH Q005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32AC"},78509:{"value":"132AD","name":"EGYPTIAN HIEROGLYPH Q006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32AD"},78510:{"value":"132AE","name":"EGYPTIAN HIEROGLYPH Q007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32AE"},78511:{"value":"132AF","name":"EGYPTIAN HIEROGLYPH R001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32AF"},78512:{"value":"132B0","name":"EGYPTIAN HIEROGLYPH R002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32B0"},78513:{"value":"132B1","name":"EGYPTIAN HIEROGLYPH R002A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32B1"},78514:{"value":"132B2","name":"EGYPTIAN HIEROGLYPH R003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32B2"},78515:{"value":"132B3","name":"EGYPTIAN HIEROGLYPH R003A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32B3"},78516:{"value":"132B4","name":"EGYPTIAN HIEROGLYPH R003B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32B4"},78517:{"value":"132B5","name":"EGYPTIAN HIEROGLYPH R004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32B5"},78518:{"value":"132B6","name":"EGYPTIAN HIEROGLYPH R005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32B6"},78519:{"value":"132B7","name":"EGYPTIAN HIEROGLYPH R006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32B7"},78520:{"value":"132B8","name":"EGYPTIAN HIEROGLYPH R007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32B8"},78521:{"value":"132B9","name":"EGYPTIAN HIEROGLYPH R008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32B9"},78522:{"value":"132BA","name":"EGYPTIAN HIEROGLYPH R009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32BA"},78523:{"value":"132BB","name":"EGYPTIAN HIEROGLYPH R010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32BB"},78524:{"value":"132BC","name":"EGYPTIAN HIEROGLYPH R010A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32BC"},78525:{"value":"132BD","name":"EGYPTIAN HIEROGLYPH R011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32BD"},78526:{"value":"132BE","name":"EGYPTIAN HIEROGLYPH R012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32BE"},78527:{"value":"132BF","name":"EGYPTIAN HIEROGLYPH R013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32BF"},78528:{"value":"132C0","name":"EGYPTIAN HIEROGLYPH R014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32C0"},78529:{"value":"132C1","name":"EGYPTIAN HIEROGLYPH R015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32C1"},78530:{"value":"132C2","name":"EGYPTIAN HIEROGLYPH R016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32C2"},78531:{"value":"132C3","name":"EGYPTIAN HIEROGLYPH R016A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32C3"},78532:{"value":"132C4","name":"EGYPTIAN HIEROGLYPH R017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32C4"},78533:{"value":"132C5","name":"EGYPTIAN HIEROGLYPH R018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32C5"},78534:{"value":"132C6","name":"EGYPTIAN HIEROGLYPH R019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32C6"},78535:{"value":"132C7","name":"EGYPTIAN HIEROGLYPH R020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32C7"},78536:{"value":"132C8","name":"EGYPTIAN HIEROGLYPH R021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32C8"},78537:{"value":"132C9","name":"EGYPTIAN HIEROGLYPH R022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32C9"},78538:{"value":"132CA","name":"EGYPTIAN HIEROGLYPH R023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32CA"},78539:{"value":"132CB","name":"EGYPTIAN HIEROGLYPH R024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32CB"},78540:{"value":"132CC","name":"EGYPTIAN HIEROGLYPH R025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32CC"},78541:{"value":"132CD","name":"EGYPTIAN HIEROGLYPH R026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32CD"},78542:{"value":"132CE","name":"EGYPTIAN HIEROGLYPH R027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32CE"},78543:{"value":"132CF","name":"EGYPTIAN HIEROGLYPH R028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32CF"},78544:{"value":"132D0","name":"EGYPTIAN HIEROGLYPH R029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32D0"},78545:{"value":"132D1","name":"EGYPTIAN HIEROGLYPH S001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32D1"},78546:{"value":"132D2","name":"EGYPTIAN HIEROGLYPH S002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32D2"},78547:{"value":"132D3","name":"EGYPTIAN HIEROGLYPH S002A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32D3"},78548:{"value":"132D4","name":"EGYPTIAN HIEROGLYPH S003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32D4"},78549:{"value":"132D5","name":"EGYPTIAN HIEROGLYPH S004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32D5"},78550:{"value":"132D6","name":"EGYPTIAN HIEROGLYPH S005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32D6"},78551:{"value":"132D7","name":"EGYPTIAN HIEROGLYPH S006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32D7"},78552:{"value":"132D8","name":"EGYPTIAN HIEROGLYPH S006A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32D8"},78553:{"value":"132D9","name":"EGYPTIAN HIEROGLYPH S007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32D9"},78554:{"value":"132DA","name":"EGYPTIAN HIEROGLYPH S008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32DA"},78555:{"value":"132DB","name":"EGYPTIAN HIEROGLYPH S009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32DB"},78556:{"value":"132DC","name":"EGYPTIAN HIEROGLYPH S010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32DC"},78557:{"value":"132DD","name":"EGYPTIAN HIEROGLYPH S011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32DD"},78558:{"value":"132DE","name":"EGYPTIAN HIEROGLYPH S012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32DE"},78559:{"value":"132DF","name":"EGYPTIAN HIEROGLYPH S013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32DF"},78560:{"value":"132E0","name":"EGYPTIAN HIEROGLYPH S014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32E0"},78561:{"value":"132E1","name":"EGYPTIAN HIEROGLYPH S014A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32E1"},78562:{"value":"132E2","name":"EGYPTIAN HIEROGLYPH S014B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32E2"},78563:{"value":"132E3","name":"EGYPTIAN HIEROGLYPH S015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32E3"},78564:{"value":"132E4","name":"EGYPTIAN HIEROGLYPH S016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32E4"},78565:{"value":"132E5","name":"EGYPTIAN HIEROGLYPH S017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32E5"},78566:{"value":"132E6","name":"EGYPTIAN HIEROGLYPH S017A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32E6"},78567:{"value":"132E7","name":"EGYPTIAN HIEROGLYPH S018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32E7"},78568:{"value":"132E8","name":"EGYPTIAN HIEROGLYPH S019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32E8"},78569:{"value":"132E9","name":"EGYPTIAN HIEROGLYPH S020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32E9"},78570:{"value":"132EA","name":"EGYPTIAN HIEROGLYPH S021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32EA"},78571:{"value":"132EB","name":"EGYPTIAN HIEROGLYPH S022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32EB"},78572:{"value":"132EC","name":"EGYPTIAN HIEROGLYPH S023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32EC"},78573:{"value":"132ED","name":"EGYPTIAN HIEROGLYPH S024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32ED"},78574:{"value":"132EE","name":"EGYPTIAN HIEROGLYPH S025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32EE"},78575:{"value":"132EF","name":"EGYPTIAN HIEROGLYPH S026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32EF"},78576:{"value":"132F0","name":"EGYPTIAN HIEROGLYPH S026A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32F0"},78577:{"value":"132F1","name":"EGYPTIAN HIEROGLYPH S026B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32F1"},78578:{"value":"132F2","name":"EGYPTIAN HIEROGLYPH S027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32F2"},78579:{"value":"132F3","name":"EGYPTIAN HIEROGLYPH S028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32F3"},78580:{"value":"132F4","name":"EGYPTIAN HIEROGLYPH S029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32F4"},78581:{"value":"132F5","name":"EGYPTIAN HIEROGLYPH S030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32F5"},78582:{"value":"132F6","name":"EGYPTIAN HIEROGLYPH S031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32F6"},78583:{"value":"132F7","name":"EGYPTIAN HIEROGLYPH S032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32F7"},78584:{"value":"132F8","name":"EGYPTIAN HIEROGLYPH S033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32F8"},78585:{"value":"132F9","name":"EGYPTIAN HIEROGLYPH S034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32F9"},78586:{"value":"132FA","name":"EGYPTIAN HIEROGLYPH S035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32FA"},78587:{"value":"132FB","name":"EGYPTIAN HIEROGLYPH S035A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32FB"},78588:{"value":"132FC","name":"EGYPTIAN HIEROGLYPH S036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32FC"},78589:{"value":"132FD","name":"EGYPTIAN HIEROGLYPH S037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32FD"},78590:{"value":"132FE","name":"EGYPTIAN HIEROGLYPH S038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32FE"},78591:{"value":"132FF","name":"EGYPTIAN HIEROGLYPH S039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u32FF"},78592:{"value":"13300","name":"EGYPTIAN HIEROGLYPH S040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3300"},78593:{"value":"13301","name":"EGYPTIAN HIEROGLYPH S041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3301"},78594:{"value":"13302","name":"EGYPTIAN HIEROGLYPH S042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3302"},78595:{"value":"13303","name":"EGYPTIAN HIEROGLYPH S043","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3303"},78596:{"value":"13304","name":"EGYPTIAN HIEROGLYPH S044","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3304"},78597:{"value":"13305","name":"EGYPTIAN HIEROGLYPH S045","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3305"},78598:{"value":"13306","name":"EGYPTIAN HIEROGLYPH S046","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3306"},78599:{"value":"13307","name":"EGYPTIAN HIEROGLYPH T001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3307"},78600:{"value":"13308","name":"EGYPTIAN HIEROGLYPH T002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3308"},78601:{"value":"13309","name":"EGYPTIAN HIEROGLYPH T003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3309"},78602:{"value":"1330A","name":"EGYPTIAN HIEROGLYPH T003A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u330A"},78603:{"value":"1330B","name":"EGYPTIAN HIEROGLYPH T004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u330B"},78604:{"value":"1330C","name":"EGYPTIAN HIEROGLYPH T005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u330C"},78605:{"value":"1330D","name":"EGYPTIAN HIEROGLYPH T006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u330D"},78606:{"value":"1330E","name":"EGYPTIAN HIEROGLYPH T007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u330E"},78607:{"value":"1330F","name":"EGYPTIAN HIEROGLYPH T007A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u330F"},78608:{"value":"13310","name":"EGYPTIAN HIEROGLYPH T008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3310"},78609:{"value":"13311","name":"EGYPTIAN HIEROGLYPH T008A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3311"},78610:{"value":"13312","name":"EGYPTIAN HIEROGLYPH T009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3312"},78611:{"value":"13313","name":"EGYPTIAN HIEROGLYPH T009A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3313"},78612:{"value":"13314","name":"EGYPTIAN HIEROGLYPH T010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3314"},78613:{"value":"13315","name":"EGYPTIAN HIEROGLYPH T011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3315"},78614:{"value":"13316","name":"EGYPTIAN HIEROGLYPH T011A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3316"},78615:{"value":"13317","name":"EGYPTIAN HIEROGLYPH T012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3317"},78616:{"value":"13318","name":"EGYPTIAN HIEROGLYPH T013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3318"},78617:{"value":"13319","name":"EGYPTIAN HIEROGLYPH T014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3319"},78618:{"value":"1331A","name":"EGYPTIAN HIEROGLYPH T015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u331A"},78619:{"value":"1331B","name":"EGYPTIAN HIEROGLYPH T016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u331B"},78620:{"value":"1331C","name":"EGYPTIAN HIEROGLYPH T016A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u331C"},78621:{"value":"1331D","name":"EGYPTIAN HIEROGLYPH T017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u331D"},78622:{"value":"1331E","name":"EGYPTIAN HIEROGLYPH T018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u331E"},78623:{"value":"1331F","name":"EGYPTIAN HIEROGLYPH T019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u331F"},78624:{"value":"13320","name":"EGYPTIAN HIEROGLYPH T020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3320"},78625:{"value":"13321","name":"EGYPTIAN HIEROGLYPH T021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3321"},78626:{"value":"13322","name":"EGYPTIAN HIEROGLYPH T022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3322"},78627:{"value":"13323","name":"EGYPTIAN HIEROGLYPH T023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3323"},78628:{"value":"13324","name":"EGYPTIAN HIEROGLYPH T024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3324"},78629:{"value":"13325","name":"EGYPTIAN HIEROGLYPH T025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3325"},78630:{"value":"13326","name":"EGYPTIAN HIEROGLYPH T026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3326"},78631:{"value":"13327","name":"EGYPTIAN HIEROGLYPH T027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3327"},78632:{"value":"13328","name":"EGYPTIAN HIEROGLYPH T028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3328"},78633:{"value":"13329","name":"EGYPTIAN HIEROGLYPH T029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3329"},78634:{"value":"1332A","name":"EGYPTIAN HIEROGLYPH T030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u332A"},78635:{"value":"1332B","name":"EGYPTIAN HIEROGLYPH T031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u332B"},78636:{"value":"1332C","name":"EGYPTIAN HIEROGLYPH T032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u332C"},78637:{"value":"1332D","name":"EGYPTIAN HIEROGLYPH T032A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u332D"},78638:{"value":"1332E","name":"EGYPTIAN HIEROGLYPH T033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u332E"},78639:{"value":"1332F","name":"EGYPTIAN HIEROGLYPH T033A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u332F"},78640:{"value":"13330","name":"EGYPTIAN HIEROGLYPH T034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3330"},78641:{"value":"13331","name":"EGYPTIAN HIEROGLYPH T035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3331"},78642:{"value":"13332","name":"EGYPTIAN HIEROGLYPH T036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3332"},78643:{"value":"13333","name":"EGYPTIAN HIEROGLYPH U001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3333"},78644:{"value":"13334","name":"EGYPTIAN HIEROGLYPH U002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3334"},78645:{"value":"13335","name":"EGYPTIAN HIEROGLYPH U003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3335"},78646:{"value":"13336","name":"EGYPTIAN HIEROGLYPH U004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3336"},78647:{"value":"13337","name":"EGYPTIAN HIEROGLYPH U005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3337"},78648:{"value":"13338","name":"EGYPTIAN HIEROGLYPH U006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3338"},78649:{"value":"13339","name":"EGYPTIAN HIEROGLYPH U006A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3339"},78650:{"value":"1333A","name":"EGYPTIAN HIEROGLYPH U006B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u333A"},78651:{"value":"1333B","name":"EGYPTIAN HIEROGLYPH U007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u333B"},78652:{"value":"1333C","name":"EGYPTIAN HIEROGLYPH U008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u333C"},78653:{"value":"1333D","name":"EGYPTIAN HIEROGLYPH U009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u333D"},78654:{"value":"1333E","name":"EGYPTIAN HIEROGLYPH U010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u333E"},78655:{"value":"1333F","name":"EGYPTIAN HIEROGLYPH U011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u333F"},78656:{"value":"13340","name":"EGYPTIAN HIEROGLYPH U012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3340"},78657:{"value":"13341","name":"EGYPTIAN HIEROGLYPH U013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3341"},78658:{"value":"13342","name":"EGYPTIAN HIEROGLYPH U014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3342"},78659:{"value":"13343","name":"EGYPTIAN HIEROGLYPH U015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3343"},78660:{"value":"13344","name":"EGYPTIAN HIEROGLYPH U016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3344"},78661:{"value":"13345","name":"EGYPTIAN HIEROGLYPH U017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3345"},78662:{"value":"13346","name":"EGYPTIAN HIEROGLYPH U018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3346"},78663:{"value":"13347","name":"EGYPTIAN HIEROGLYPH U019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3347"},78664:{"value":"13348","name":"EGYPTIAN HIEROGLYPH U020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3348"},78665:{"value":"13349","name":"EGYPTIAN HIEROGLYPH U021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3349"},78666:{"value":"1334A","name":"EGYPTIAN HIEROGLYPH U022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u334A"},78667:{"value":"1334B","name":"EGYPTIAN HIEROGLYPH U023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u334B"},78668:{"value":"1334C","name":"EGYPTIAN HIEROGLYPH U023A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u334C"},78669:{"value":"1334D","name":"EGYPTIAN HIEROGLYPH U024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u334D"},78670:{"value":"1334E","name":"EGYPTIAN HIEROGLYPH U025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u334E"},78671:{"value":"1334F","name":"EGYPTIAN HIEROGLYPH U026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u334F"},78672:{"value":"13350","name":"EGYPTIAN HIEROGLYPH U027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3350"},78673:{"value":"13351","name":"EGYPTIAN HIEROGLYPH U028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3351"},78674:{"value":"13352","name":"EGYPTIAN HIEROGLYPH U029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3352"},78675:{"value":"13353","name":"EGYPTIAN HIEROGLYPH U029A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3353"},78676:{"value":"13354","name":"EGYPTIAN HIEROGLYPH U030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3354"},78677:{"value":"13355","name":"EGYPTIAN HIEROGLYPH U031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3355"},78678:{"value":"13356","name":"EGYPTIAN HIEROGLYPH U032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3356"},78679:{"value":"13357","name":"EGYPTIAN HIEROGLYPH U032A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3357"},78680:{"value":"13358","name":"EGYPTIAN HIEROGLYPH U033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3358"},78681:{"value":"13359","name":"EGYPTIAN HIEROGLYPH U034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3359"},78682:{"value":"1335A","name":"EGYPTIAN HIEROGLYPH U035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u335A"},78683:{"value":"1335B","name":"EGYPTIAN HIEROGLYPH U036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u335B"},78684:{"value":"1335C","name":"EGYPTIAN HIEROGLYPH U037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u335C"},78685:{"value":"1335D","name":"EGYPTIAN HIEROGLYPH U038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u335D"},78686:{"value":"1335E","name":"EGYPTIAN HIEROGLYPH U039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u335E"},78687:{"value":"1335F","name":"EGYPTIAN HIEROGLYPH U040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u335F"},78688:{"value":"13360","name":"EGYPTIAN HIEROGLYPH U041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3360"},78689:{"value":"13361","name":"EGYPTIAN HIEROGLYPH U042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3361"},78690:{"value":"13362","name":"EGYPTIAN HIEROGLYPH V001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3362"},78691:{"value":"13363","name":"EGYPTIAN HIEROGLYPH V001A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3363"},78692:{"value":"13364","name":"EGYPTIAN HIEROGLYPH V001B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3364"},78693:{"value":"13365","name":"EGYPTIAN HIEROGLYPH V001C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3365"},78694:{"value":"13366","name":"EGYPTIAN HIEROGLYPH V001D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3366"},78695:{"value":"13367","name":"EGYPTIAN HIEROGLYPH V001E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3367"},78696:{"value":"13368","name":"EGYPTIAN HIEROGLYPH V001F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3368"},78697:{"value":"13369","name":"EGYPTIAN HIEROGLYPH V001G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3369"},78698:{"value":"1336A","name":"EGYPTIAN HIEROGLYPH V001H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u336A"},78699:{"value":"1336B","name":"EGYPTIAN HIEROGLYPH V001I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u336B"},78700:{"value":"1336C","name":"EGYPTIAN HIEROGLYPH V002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u336C"},78701:{"value":"1336D","name":"EGYPTIAN HIEROGLYPH V002A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u336D"},78702:{"value":"1336E","name":"EGYPTIAN HIEROGLYPH V003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u336E"},78703:{"value":"1336F","name":"EGYPTIAN HIEROGLYPH V004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u336F"},78704:{"value":"13370","name":"EGYPTIAN HIEROGLYPH V005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3370"},78705:{"value":"13371","name":"EGYPTIAN HIEROGLYPH V006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3371"},78706:{"value":"13372","name":"EGYPTIAN HIEROGLYPH V007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3372"},78707:{"value":"13373","name":"EGYPTIAN HIEROGLYPH V007A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3373"},78708:{"value":"13374","name":"EGYPTIAN HIEROGLYPH V007B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3374"},78709:{"value":"13375","name":"EGYPTIAN HIEROGLYPH V008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3375"},78710:{"value":"13376","name":"EGYPTIAN HIEROGLYPH V009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3376"},78711:{"value":"13377","name":"EGYPTIAN HIEROGLYPH V010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3377"},78712:{"value":"13378","name":"EGYPTIAN HIEROGLYPH V011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3378"},78713:{"value":"13379","name":"EGYPTIAN HIEROGLYPH V011A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3379"},78714:{"value":"1337A","name":"EGYPTIAN HIEROGLYPH V011B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u337A"},78715:{"value":"1337B","name":"EGYPTIAN HIEROGLYPH V011C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u337B"},78716:{"value":"1337C","name":"EGYPTIAN HIEROGLYPH V012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u337C"},78717:{"value":"1337D","name":"EGYPTIAN HIEROGLYPH V012A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u337D"},78718:{"value":"1337E","name":"EGYPTIAN HIEROGLYPH V012B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u337E"},78719:{"value":"1337F","name":"EGYPTIAN HIEROGLYPH V013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u337F"},78720:{"value":"13380","name":"EGYPTIAN HIEROGLYPH V014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3380"},78721:{"value":"13381","name":"EGYPTIAN HIEROGLYPH V015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3381"},78722:{"value":"13382","name":"EGYPTIAN HIEROGLYPH V016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3382"},78723:{"value":"13383","name":"EGYPTIAN HIEROGLYPH V017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3383"},78724:{"value":"13384","name":"EGYPTIAN HIEROGLYPH V018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3384"},78725:{"value":"13385","name":"EGYPTIAN HIEROGLYPH V019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3385"},78726:{"value":"13386","name":"EGYPTIAN HIEROGLYPH V020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3386"},78727:{"value":"13387","name":"EGYPTIAN HIEROGLYPH V020A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3387"},78728:{"value":"13388","name":"EGYPTIAN HIEROGLYPH V020B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3388"},78729:{"value":"13389","name":"EGYPTIAN HIEROGLYPH V020C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3389"},78730:{"value":"1338A","name":"EGYPTIAN HIEROGLYPH V020D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u338A"},78731:{"value":"1338B","name":"EGYPTIAN HIEROGLYPH V020E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u338B"},78732:{"value":"1338C","name":"EGYPTIAN HIEROGLYPH V020F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u338C"},78733:{"value":"1338D","name":"EGYPTIAN HIEROGLYPH V020G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u338D"},78734:{"value":"1338E","name":"EGYPTIAN HIEROGLYPH V020H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u338E"},78735:{"value":"1338F","name":"EGYPTIAN HIEROGLYPH V020I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u338F"},78736:{"value":"13390","name":"EGYPTIAN HIEROGLYPH V020J","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3390"},78737:{"value":"13391","name":"EGYPTIAN HIEROGLYPH V020K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3391"},78738:{"value":"13392","name":"EGYPTIAN HIEROGLYPH V020L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3392"},78739:{"value":"13393","name":"EGYPTIAN HIEROGLYPH V021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3393"},78740:{"value":"13394","name":"EGYPTIAN HIEROGLYPH V022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3394"},78741:{"value":"13395","name":"EGYPTIAN HIEROGLYPH V023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3395"},78742:{"value":"13396","name":"EGYPTIAN HIEROGLYPH V023A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3396"},78743:{"value":"13397","name":"EGYPTIAN HIEROGLYPH V024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3397"},78744:{"value":"13398","name":"EGYPTIAN HIEROGLYPH V025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3398"},78745:{"value":"13399","name":"EGYPTIAN HIEROGLYPH V026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3399"},78746:{"value":"1339A","name":"EGYPTIAN HIEROGLYPH V027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u339A"},78747:{"value":"1339B","name":"EGYPTIAN HIEROGLYPH V028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u339B"},78748:{"value":"1339C","name":"EGYPTIAN HIEROGLYPH V028A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u339C"},78749:{"value":"1339D","name":"EGYPTIAN HIEROGLYPH V029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u339D"},78750:{"value":"1339E","name":"EGYPTIAN HIEROGLYPH V029A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u339E"},78751:{"value":"1339F","name":"EGYPTIAN HIEROGLYPH V030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u339F"},78752:{"value":"133A0","name":"EGYPTIAN HIEROGLYPH V030A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33A0"},78753:{"value":"133A1","name":"EGYPTIAN HIEROGLYPH V031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33A1"},78754:{"value":"133A2","name":"EGYPTIAN HIEROGLYPH V031A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33A2"},78755:{"value":"133A3","name":"EGYPTIAN HIEROGLYPH V032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33A3"},78756:{"value":"133A4","name":"EGYPTIAN HIEROGLYPH V033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33A4"},78757:{"value":"133A5","name":"EGYPTIAN HIEROGLYPH V033A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33A5"},78758:{"value":"133A6","name":"EGYPTIAN HIEROGLYPH V034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33A6"},78759:{"value":"133A7","name":"EGYPTIAN HIEROGLYPH V035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33A7"},78760:{"value":"133A8","name":"EGYPTIAN HIEROGLYPH V036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33A8"},78761:{"value":"133A9","name":"EGYPTIAN HIEROGLYPH V037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33A9"},78762:{"value":"133AA","name":"EGYPTIAN HIEROGLYPH V037A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33AA"},78763:{"value":"133AB","name":"EGYPTIAN HIEROGLYPH V038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33AB"},78764:{"value":"133AC","name":"EGYPTIAN HIEROGLYPH V039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33AC"},78765:{"value":"133AD","name":"EGYPTIAN HIEROGLYPH V040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33AD"},78766:{"value":"133AE","name":"EGYPTIAN HIEROGLYPH V040A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33AE"},78767:{"value":"133AF","name":"EGYPTIAN HIEROGLYPH W001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33AF"},78768:{"value":"133B0","name":"EGYPTIAN HIEROGLYPH W002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33B0"},78769:{"value":"133B1","name":"EGYPTIAN HIEROGLYPH W003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33B1"},78770:{"value":"133B2","name":"EGYPTIAN HIEROGLYPH W003A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33B2"},78771:{"value":"133B3","name":"EGYPTIAN HIEROGLYPH W004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33B3"},78772:{"value":"133B4","name":"EGYPTIAN HIEROGLYPH W005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33B4"},78773:{"value":"133B5","name":"EGYPTIAN HIEROGLYPH W006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33B5"},78774:{"value":"133B6","name":"EGYPTIAN HIEROGLYPH W007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33B6"},78775:{"value":"133B7","name":"EGYPTIAN HIEROGLYPH W008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33B7"},78776:{"value":"133B8","name":"EGYPTIAN HIEROGLYPH W009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33B8"},78777:{"value":"133B9","name":"EGYPTIAN HIEROGLYPH W009A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33B9"},78778:{"value":"133BA","name":"EGYPTIAN HIEROGLYPH W010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33BA"},78779:{"value":"133BB","name":"EGYPTIAN HIEROGLYPH W010A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33BB"},78780:{"value":"133BC","name":"EGYPTIAN HIEROGLYPH W011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33BC"},78781:{"value":"133BD","name":"EGYPTIAN HIEROGLYPH W012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33BD"},78782:{"value":"133BE","name":"EGYPTIAN HIEROGLYPH W013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33BE"},78783:{"value":"133BF","name":"EGYPTIAN HIEROGLYPH W014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33BF"},78784:{"value":"133C0","name":"EGYPTIAN HIEROGLYPH W014A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33C0"},78785:{"value":"133C1","name":"EGYPTIAN HIEROGLYPH W015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33C1"},78786:{"value":"133C2","name":"EGYPTIAN HIEROGLYPH W016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33C2"},78787:{"value":"133C3","name":"EGYPTIAN HIEROGLYPH W017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33C3"},78788:{"value":"133C4","name":"EGYPTIAN HIEROGLYPH W017A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33C4"},78789:{"value":"133C5","name":"EGYPTIAN HIEROGLYPH W018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33C5"},78790:{"value":"133C6","name":"EGYPTIAN HIEROGLYPH W018A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33C6"},78791:{"value":"133C7","name":"EGYPTIAN HIEROGLYPH W019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33C7"},78792:{"value":"133C8","name":"EGYPTIAN HIEROGLYPH W020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33C8"},78793:{"value":"133C9","name":"EGYPTIAN HIEROGLYPH W021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33C9"},78794:{"value":"133CA","name":"EGYPTIAN HIEROGLYPH W022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33CA"},78795:{"value":"133CB","name":"EGYPTIAN HIEROGLYPH W023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33CB"},78796:{"value":"133CC","name":"EGYPTIAN HIEROGLYPH W024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33CC"},78797:{"value":"133CD","name":"EGYPTIAN HIEROGLYPH W024A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33CD"},78798:{"value":"133CE","name":"EGYPTIAN HIEROGLYPH W025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33CE"},78799:{"value":"133CF","name":"EGYPTIAN HIEROGLYPH X001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33CF"},78800:{"value":"133D0","name":"EGYPTIAN HIEROGLYPH X002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33D0"},78801:{"value":"133D1","name":"EGYPTIAN HIEROGLYPH X003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33D1"},78802:{"value":"133D2","name":"EGYPTIAN HIEROGLYPH X004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33D2"},78803:{"value":"133D3","name":"EGYPTIAN HIEROGLYPH X004A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33D3"},78804:{"value":"133D4","name":"EGYPTIAN HIEROGLYPH X004B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33D4"},78805:{"value":"133D5","name":"EGYPTIAN HIEROGLYPH X005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33D5"},78806:{"value":"133D6","name":"EGYPTIAN HIEROGLYPH X006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33D6"},78807:{"value":"133D7","name":"EGYPTIAN HIEROGLYPH X006A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33D7"},78808:{"value":"133D8","name":"EGYPTIAN HIEROGLYPH X007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33D8"},78809:{"value":"133D9","name":"EGYPTIAN HIEROGLYPH X008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33D9"},78810:{"value":"133DA","name":"EGYPTIAN HIEROGLYPH X008A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33DA"},78811:{"value":"133DB","name":"EGYPTIAN HIEROGLYPH Y001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33DB"},78812:{"value":"133DC","name":"EGYPTIAN HIEROGLYPH Y001A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33DC"},78813:{"value":"133DD","name":"EGYPTIAN HIEROGLYPH Y002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33DD"},78814:{"value":"133DE","name":"EGYPTIAN HIEROGLYPH Y003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33DE"},78815:{"value":"133DF","name":"EGYPTIAN HIEROGLYPH Y004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33DF"},78816:{"value":"133E0","name":"EGYPTIAN HIEROGLYPH Y005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33E0"},78817:{"value":"133E1","name":"EGYPTIAN HIEROGLYPH Y006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33E1"},78818:{"value":"133E2","name":"EGYPTIAN HIEROGLYPH Y007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33E2"},78819:{"value":"133E3","name":"EGYPTIAN HIEROGLYPH Y008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33E3"},78820:{"value":"133E4","name":"EGYPTIAN HIEROGLYPH Z001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33E4"},78821:{"value":"133E5","name":"EGYPTIAN HIEROGLYPH Z002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33E5"},78822:{"value":"133E6","name":"EGYPTIAN HIEROGLYPH Z002A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33E6"},78823:{"value":"133E7","name":"EGYPTIAN HIEROGLYPH Z002B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33E7"},78824:{"value":"133E8","name":"EGYPTIAN HIEROGLYPH Z002C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33E8"},78825:{"value":"133E9","name":"EGYPTIAN HIEROGLYPH Z002D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33E9"},78826:{"value":"133EA","name":"EGYPTIAN HIEROGLYPH Z003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33EA"},78827:{"value":"133EB","name":"EGYPTIAN HIEROGLYPH Z003A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33EB"},78828:{"value":"133EC","name":"EGYPTIAN HIEROGLYPH Z003B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33EC"},78829:{"value":"133ED","name":"EGYPTIAN HIEROGLYPH Z004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33ED"},78830:{"value":"133EE","name":"EGYPTIAN HIEROGLYPH Z004A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33EE"},78831:{"value":"133EF","name":"EGYPTIAN HIEROGLYPH Z005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33EF"},78832:{"value":"133F0","name":"EGYPTIAN HIEROGLYPH Z005A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33F0"},78833:{"value":"133F1","name":"EGYPTIAN HIEROGLYPH Z006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33F1"},78834:{"value":"133F2","name":"EGYPTIAN HIEROGLYPH Z007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33F2"},78835:{"value":"133F3","name":"EGYPTIAN HIEROGLYPH Z008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33F3"},78836:{"value":"133F4","name":"EGYPTIAN HIEROGLYPH Z009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33F4"},78837:{"value":"133F5","name":"EGYPTIAN HIEROGLYPH Z010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33F5"},78838:{"value":"133F6","name":"EGYPTIAN HIEROGLYPH Z011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33F6"},78839:{"value":"133F7","name":"EGYPTIAN HIEROGLYPH Z012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33F7"},78840:{"value":"133F8","name":"EGYPTIAN HIEROGLYPH Z013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33F8"},78841:{"value":"133F9","name":"EGYPTIAN HIEROGLYPH Z014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33F9"},78842:{"value":"133FA","name":"EGYPTIAN HIEROGLYPH Z015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33FA"},78843:{"value":"133FB","name":"EGYPTIAN HIEROGLYPH Z015A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33FB"},78844:{"value":"133FC","name":"EGYPTIAN HIEROGLYPH Z015B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33FC"},78845:{"value":"133FD","name":"EGYPTIAN HIEROGLYPH Z015C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33FD"},78846:{"value":"133FE","name":"EGYPTIAN HIEROGLYPH Z015D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33FE"},78847:{"value":"133FF","name":"EGYPTIAN HIEROGLYPH Z015E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u33FF"},78848:{"value":"13400","name":"EGYPTIAN HIEROGLYPH Z015F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3400"},78849:{"value":"13401","name":"EGYPTIAN HIEROGLYPH Z015G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3401"},78850:{"value":"13402","name":"EGYPTIAN HIEROGLYPH Z015H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3402"},78851:{"value":"13403","name":"EGYPTIAN HIEROGLYPH Z015I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3403"},78852:{"value":"13404","name":"EGYPTIAN HIEROGLYPH Z016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3404"},78853:{"value":"13405","name":"EGYPTIAN HIEROGLYPH Z016A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3405"},78854:{"value":"13406","name":"EGYPTIAN HIEROGLYPH Z016B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3406"},78855:{"value":"13407","name":"EGYPTIAN HIEROGLYPH Z016C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3407"},78856:{"value":"13408","name":"EGYPTIAN HIEROGLYPH Z016D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3408"},78857:{"value":"13409","name":"EGYPTIAN HIEROGLYPH Z016E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3409"},78858:{"value":"1340A","name":"EGYPTIAN HIEROGLYPH Z016F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u340A"},78859:{"value":"1340B","name":"EGYPTIAN HIEROGLYPH Z016G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u340B"},78860:{"value":"1340C","name":"EGYPTIAN HIEROGLYPH Z016H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u340C"},78861:{"value":"1340D","name":"EGYPTIAN HIEROGLYPH AA001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u340D"},78862:{"value":"1340E","name":"EGYPTIAN HIEROGLYPH AA002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u340E"},78863:{"value":"1340F","name":"EGYPTIAN HIEROGLYPH AA003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u340F"},78864:{"value":"13410","name":"EGYPTIAN HIEROGLYPH AA004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3410"},78865:{"value":"13411","name":"EGYPTIAN HIEROGLYPH AA005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3411"},78866:{"value":"13412","name":"EGYPTIAN HIEROGLYPH AA006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3412"},78867:{"value":"13413","name":"EGYPTIAN HIEROGLYPH AA007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3413"},78868:{"value":"13414","name":"EGYPTIAN HIEROGLYPH AA007A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3414"},78869:{"value":"13415","name":"EGYPTIAN HIEROGLYPH AA007B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3415"},78870:{"value":"13416","name":"EGYPTIAN HIEROGLYPH AA008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3416"},78871:{"value":"13417","name":"EGYPTIAN HIEROGLYPH AA009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3417"},78872:{"value":"13418","name":"EGYPTIAN HIEROGLYPH AA010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3418"},78873:{"value":"13419","name":"EGYPTIAN HIEROGLYPH AA011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3419"},78874:{"value":"1341A","name":"EGYPTIAN HIEROGLYPH AA012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u341A"},78875:{"value":"1341B","name":"EGYPTIAN HIEROGLYPH AA013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u341B"},78876:{"value":"1341C","name":"EGYPTIAN HIEROGLYPH AA014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u341C"},78877:{"value":"1341D","name":"EGYPTIAN HIEROGLYPH AA015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u341D"},78878:{"value":"1341E","name":"EGYPTIAN HIEROGLYPH AA016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u341E"},78879:{"value":"1341F","name":"EGYPTIAN HIEROGLYPH AA017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u341F"},78880:{"value":"13420","name":"EGYPTIAN HIEROGLYPH AA018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3420"},78881:{"value":"13421","name":"EGYPTIAN HIEROGLYPH AA019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3421"},78882:{"value":"13422","name":"EGYPTIAN HIEROGLYPH AA020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3422"},78883:{"value":"13423","name":"EGYPTIAN HIEROGLYPH AA021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3423"},78884:{"value":"13424","name":"EGYPTIAN HIEROGLYPH AA022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3424"},78885:{"value":"13425","name":"EGYPTIAN HIEROGLYPH AA023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3425"},78886:{"value":"13426","name":"EGYPTIAN HIEROGLYPH AA024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3426"},78887:{"value":"13427","name":"EGYPTIAN HIEROGLYPH AA025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3427"},78888:{"value":"13428","name":"EGYPTIAN HIEROGLYPH AA026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3428"},78889:{"value":"13429","name":"EGYPTIAN HIEROGLYPH AA027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3429"},78890:{"value":"1342A","name":"EGYPTIAN HIEROGLYPH AA028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u342A"},78891:{"value":"1342B","name":"EGYPTIAN HIEROGLYPH AA029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u342B"},78892:{"value":"1342C","name":"EGYPTIAN HIEROGLYPH AA030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u342C"},78893:{"value":"1342D","name":"EGYPTIAN HIEROGLYPH AA031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u342D"},78894:{"value":"1342E","name":"EGYPTIAN HIEROGLYPH AA032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u342E"},82944:{"value":"14400","name":"ANATOLIAN HIEROGLYPH A001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4400"},82945:{"value":"14401","name":"ANATOLIAN HIEROGLYPH A002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4401"},82946:{"value":"14402","name":"ANATOLIAN HIEROGLYPH A003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4402"},82947:{"value":"14403","name":"ANATOLIAN HIEROGLYPH A004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4403"},82948:{"value":"14404","name":"ANATOLIAN HIEROGLYPH A005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4404"},82949:{"value":"14405","name":"ANATOLIAN HIEROGLYPH A006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4405"},82950:{"value":"14406","name":"ANATOLIAN HIEROGLYPH A007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4406"},82951:{"value":"14407","name":"ANATOLIAN HIEROGLYPH A008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4407"},82952:{"value":"14408","name":"ANATOLIAN HIEROGLYPH A009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4408"},82953:{"value":"14409","name":"ANATOLIAN HIEROGLYPH A010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4409"},82954:{"value":"1440A","name":"ANATOLIAN HIEROGLYPH A010A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u440A"},82955:{"value":"1440B","name":"ANATOLIAN HIEROGLYPH A011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u440B"},82956:{"value":"1440C","name":"ANATOLIAN HIEROGLYPH A012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u440C"},82957:{"value":"1440D","name":"ANATOLIAN HIEROGLYPH A013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u440D"},82958:{"value":"1440E","name":"ANATOLIAN HIEROGLYPH A014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u440E"},82959:{"value":"1440F","name":"ANATOLIAN HIEROGLYPH A015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u440F"},82960:{"value":"14410","name":"ANATOLIAN HIEROGLYPH A016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4410"},82961:{"value":"14411","name":"ANATOLIAN HIEROGLYPH A017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4411"},82962:{"value":"14412","name":"ANATOLIAN HIEROGLYPH A018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4412"},82963:{"value":"14413","name":"ANATOLIAN HIEROGLYPH A019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4413"},82964:{"value":"14414","name":"ANATOLIAN HIEROGLYPH A020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4414"},82965:{"value":"14415","name":"ANATOLIAN HIEROGLYPH A021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4415"},82966:{"value":"14416","name":"ANATOLIAN HIEROGLYPH A022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4416"},82967:{"value":"14417","name":"ANATOLIAN HIEROGLYPH A023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4417"},82968:{"value":"14418","name":"ANATOLIAN HIEROGLYPH A024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4418"},82969:{"value":"14419","name":"ANATOLIAN HIEROGLYPH A025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4419"},82970:{"value":"1441A","name":"ANATOLIAN HIEROGLYPH A026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u441A"},82971:{"value":"1441B","name":"ANATOLIAN HIEROGLYPH A026A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u441B"},82972:{"value":"1441C","name":"ANATOLIAN HIEROGLYPH A027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u441C"},82973:{"value":"1441D","name":"ANATOLIAN HIEROGLYPH A028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u441D"},82974:{"value":"1441E","name":"ANATOLIAN HIEROGLYPH A029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u441E"},82975:{"value":"1441F","name":"ANATOLIAN HIEROGLYPH A030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u441F"},82976:{"value":"14420","name":"ANATOLIAN HIEROGLYPH A031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4420"},82977:{"value":"14421","name":"ANATOLIAN HIEROGLYPH A032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4421"},82978:{"value":"14422","name":"ANATOLIAN HIEROGLYPH A033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4422"},82979:{"value":"14423","name":"ANATOLIAN HIEROGLYPH A034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4423"},82980:{"value":"14424","name":"ANATOLIAN HIEROGLYPH A035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4424"},82981:{"value":"14425","name":"ANATOLIAN HIEROGLYPH A036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4425"},82982:{"value":"14426","name":"ANATOLIAN HIEROGLYPH A037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4426"},82983:{"value":"14427","name":"ANATOLIAN HIEROGLYPH A038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4427"},82984:{"value":"14428","name":"ANATOLIAN HIEROGLYPH A039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4428"},82985:{"value":"14429","name":"ANATOLIAN HIEROGLYPH A039A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4429"},82986:{"value":"1442A","name":"ANATOLIAN HIEROGLYPH A040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u442A"},82987:{"value":"1442B","name":"ANATOLIAN HIEROGLYPH A041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u442B"},82988:{"value":"1442C","name":"ANATOLIAN HIEROGLYPH A041A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u442C"},82989:{"value":"1442D","name":"ANATOLIAN HIEROGLYPH A042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u442D"},82990:{"value":"1442E","name":"ANATOLIAN HIEROGLYPH A043","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u442E"},82991:{"value":"1442F","name":"ANATOLIAN HIEROGLYPH A044","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u442F"},82992:{"value":"14430","name":"ANATOLIAN HIEROGLYPH A045","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4430"},82993:{"value":"14431","name":"ANATOLIAN HIEROGLYPH A045A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4431"},82994:{"value":"14432","name":"ANATOLIAN HIEROGLYPH A046","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4432"},82995:{"value":"14433","name":"ANATOLIAN HIEROGLYPH A046A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4433"},82996:{"value":"14434","name":"ANATOLIAN HIEROGLYPH A046B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4434"},82997:{"value":"14435","name":"ANATOLIAN HIEROGLYPH A047","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4435"},82998:{"value":"14436","name":"ANATOLIAN HIEROGLYPH A048","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4436"},82999:{"value":"14437","name":"ANATOLIAN HIEROGLYPH A049","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4437"},83000:{"value":"14438","name":"ANATOLIAN HIEROGLYPH A050","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4438"},83001:{"value":"14439","name":"ANATOLIAN HIEROGLYPH A051","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4439"},83002:{"value":"1443A","name":"ANATOLIAN HIEROGLYPH A052","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u443A"},83003:{"value":"1443B","name":"ANATOLIAN HIEROGLYPH A053","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u443B"},83004:{"value":"1443C","name":"ANATOLIAN HIEROGLYPH A054","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u443C"},83005:{"value":"1443D","name":"ANATOLIAN HIEROGLYPH A055","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u443D"},83006:{"value":"1443E","name":"ANATOLIAN HIEROGLYPH A056","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u443E"},83007:{"value":"1443F","name":"ANATOLIAN HIEROGLYPH A057","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u443F"},83008:{"value":"14440","name":"ANATOLIAN HIEROGLYPH A058","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4440"},83009:{"value":"14441","name":"ANATOLIAN HIEROGLYPH A059","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4441"},83010:{"value":"14442","name":"ANATOLIAN HIEROGLYPH A060","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4442"},83011:{"value":"14443","name":"ANATOLIAN HIEROGLYPH A061","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4443"},83012:{"value":"14444","name":"ANATOLIAN HIEROGLYPH A062","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4444"},83013:{"value":"14445","name":"ANATOLIAN HIEROGLYPH A063","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4445"},83014:{"value":"14446","name":"ANATOLIAN HIEROGLYPH A064","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4446"},83015:{"value":"14447","name":"ANATOLIAN HIEROGLYPH A065","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4447"},83016:{"value":"14448","name":"ANATOLIAN HIEROGLYPH A066","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4448"},83017:{"value":"14449","name":"ANATOLIAN HIEROGLYPH A066A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4449"},83018:{"value":"1444A","name":"ANATOLIAN HIEROGLYPH A066B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u444A"},83019:{"value":"1444B","name":"ANATOLIAN HIEROGLYPH A066C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u444B"},83020:{"value":"1444C","name":"ANATOLIAN HIEROGLYPH A067","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u444C"},83021:{"value":"1444D","name":"ANATOLIAN HIEROGLYPH A068","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u444D"},83022:{"value":"1444E","name":"ANATOLIAN HIEROGLYPH A069","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u444E"},83023:{"value":"1444F","name":"ANATOLIAN HIEROGLYPH A070","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u444F"},83024:{"value":"14450","name":"ANATOLIAN HIEROGLYPH A071","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4450"},83025:{"value":"14451","name":"ANATOLIAN HIEROGLYPH A072","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4451"},83026:{"value":"14452","name":"ANATOLIAN HIEROGLYPH A073","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4452"},83027:{"value":"14453","name":"ANATOLIAN HIEROGLYPH A074","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4453"},83028:{"value":"14454","name":"ANATOLIAN HIEROGLYPH A075","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4454"},83029:{"value":"14455","name":"ANATOLIAN HIEROGLYPH A076","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4455"},83030:{"value":"14456","name":"ANATOLIAN HIEROGLYPH A077","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4456"},83031:{"value":"14457","name":"ANATOLIAN HIEROGLYPH A078","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4457"},83032:{"value":"14458","name":"ANATOLIAN HIEROGLYPH A079","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4458"},83033:{"value":"14459","name":"ANATOLIAN HIEROGLYPH A080","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4459"},83034:{"value":"1445A","name":"ANATOLIAN HIEROGLYPH A081","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u445A"},83035:{"value":"1445B","name":"ANATOLIAN HIEROGLYPH A082","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u445B"},83036:{"value":"1445C","name":"ANATOLIAN HIEROGLYPH A083","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u445C"},83037:{"value":"1445D","name":"ANATOLIAN HIEROGLYPH A084","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u445D"},83038:{"value":"1445E","name":"ANATOLIAN HIEROGLYPH A085","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u445E"},83039:{"value":"1445F","name":"ANATOLIAN HIEROGLYPH A086","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u445F"},83040:{"value":"14460","name":"ANATOLIAN HIEROGLYPH A087","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4460"},83041:{"value":"14461","name":"ANATOLIAN HIEROGLYPH A088","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4461"},83042:{"value":"14462","name":"ANATOLIAN HIEROGLYPH A089","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4462"},83043:{"value":"14463","name":"ANATOLIAN HIEROGLYPH A090","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4463"},83044:{"value":"14464","name":"ANATOLIAN HIEROGLYPH A091","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4464"},83045:{"value":"14465","name":"ANATOLIAN HIEROGLYPH A092","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4465"},83046:{"value":"14466","name":"ANATOLIAN HIEROGLYPH A093","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4466"},83047:{"value":"14467","name":"ANATOLIAN HIEROGLYPH A094","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4467"},83048:{"value":"14468","name":"ANATOLIAN HIEROGLYPH A095","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4468"},83049:{"value":"14469","name":"ANATOLIAN HIEROGLYPH A096","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4469"},83050:{"value":"1446A","name":"ANATOLIAN HIEROGLYPH A097","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u446A"},83051:{"value":"1446B","name":"ANATOLIAN HIEROGLYPH A097A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u446B"},83052:{"value":"1446C","name":"ANATOLIAN HIEROGLYPH A098","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u446C"},83053:{"value":"1446D","name":"ANATOLIAN HIEROGLYPH A098A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u446D"},83054:{"value":"1446E","name":"ANATOLIAN HIEROGLYPH A099","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u446E"},83055:{"value":"1446F","name":"ANATOLIAN HIEROGLYPH A100","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u446F"},83056:{"value":"14470","name":"ANATOLIAN HIEROGLYPH A100A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4470"},83057:{"value":"14471","name":"ANATOLIAN HIEROGLYPH A101","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4471"},83058:{"value":"14472","name":"ANATOLIAN HIEROGLYPH A101A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4472"},83059:{"value":"14473","name":"ANATOLIAN HIEROGLYPH A102","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4473"},83060:{"value":"14474","name":"ANATOLIAN HIEROGLYPH A102A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4474"},83061:{"value":"14475","name":"ANATOLIAN HIEROGLYPH A103","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4475"},83062:{"value":"14476","name":"ANATOLIAN HIEROGLYPH A104","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4476"},83063:{"value":"14477","name":"ANATOLIAN HIEROGLYPH A104A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4477"},83064:{"value":"14478","name":"ANATOLIAN HIEROGLYPH A104B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4478"},83065:{"value":"14479","name":"ANATOLIAN HIEROGLYPH A104C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4479"},83066:{"value":"1447A","name":"ANATOLIAN HIEROGLYPH A105","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u447A"},83067:{"value":"1447B","name":"ANATOLIAN HIEROGLYPH A105A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u447B"},83068:{"value":"1447C","name":"ANATOLIAN HIEROGLYPH A105B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u447C"},83069:{"value":"1447D","name":"ANATOLIAN HIEROGLYPH A106","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u447D"},83070:{"value":"1447E","name":"ANATOLIAN HIEROGLYPH A107","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u447E"},83071:{"value":"1447F","name":"ANATOLIAN HIEROGLYPH A107A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u447F"},83072:{"value":"14480","name":"ANATOLIAN HIEROGLYPH A107B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4480"},83073:{"value":"14481","name":"ANATOLIAN HIEROGLYPH A107C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4481"},83074:{"value":"14482","name":"ANATOLIAN HIEROGLYPH A108","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4482"},83075:{"value":"14483","name":"ANATOLIAN HIEROGLYPH A109","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4483"},83076:{"value":"14484","name":"ANATOLIAN HIEROGLYPH A110","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4484"},83077:{"value":"14485","name":"ANATOLIAN HIEROGLYPH A110A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4485"},83078:{"value":"14486","name":"ANATOLIAN HIEROGLYPH A110B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4486"},83079:{"value":"14487","name":"ANATOLIAN HIEROGLYPH A111","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4487"},83080:{"value":"14488","name":"ANATOLIAN HIEROGLYPH A112","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4488"},83081:{"value":"14489","name":"ANATOLIAN HIEROGLYPH A113","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4489"},83082:{"value":"1448A","name":"ANATOLIAN HIEROGLYPH A114","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u448A"},83083:{"value":"1448B","name":"ANATOLIAN HIEROGLYPH A115","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u448B"},83084:{"value":"1448C","name":"ANATOLIAN HIEROGLYPH A115A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u448C"},83085:{"value":"1448D","name":"ANATOLIAN HIEROGLYPH A116","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u448D"},83086:{"value":"1448E","name":"ANATOLIAN HIEROGLYPH A117","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u448E"},83087:{"value":"1448F","name":"ANATOLIAN HIEROGLYPH A118","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u448F"},83088:{"value":"14490","name":"ANATOLIAN HIEROGLYPH A119","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4490"},83089:{"value":"14491","name":"ANATOLIAN HIEROGLYPH A120","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4491"},83090:{"value":"14492","name":"ANATOLIAN HIEROGLYPH A121","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4492"},83091:{"value":"14493","name":"ANATOLIAN HIEROGLYPH A122","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4493"},83092:{"value":"14494","name":"ANATOLIAN HIEROGLYPH A123","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4494"},83093:{"value":"14495","name":"ANATOLIAN HIEROGLYPH A124","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4495"},83094:{"value":"14496","name":"ANATOLIAN HIEROGLYPH A125","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4496"},83095:{"value":"14497","name":"ANATOLIAN HIEROGLYPH A125A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4497"},83096:{"value":"14498","name":"ANATOLIAN HIEROGLYPH A126","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4498"},83097:{"value":"14499","name":"ANATOLIAN HIEROGLYPH A127","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4499"},83098:{"value":"1449A","name":"ANATOLIAN HIEROGLYPH A128","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u449A"},83099:{"value":"1449B","name":"ANATOLIAN HIEROGLYPH A129","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u449B"},83100:{"value":"1449C","name":"ANATOLIAN HIEROGLYPH A130","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u449C"},83101:{"value":"1449D","name":"ANATOLIAN HIEROGLYPH A131","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u449D"},83102:{"value":"1449E","name":"ANATOLIAN HIEROGLYPH A132","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u449E"},83103:{"value":"1449F","name":"ANATOLIAN HIEROGLYPH A133","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u449F"},83104:{"value":"144A0","name":"ANATOLIAN HIEROGLYPH A134","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44A0"},83105:{"value":"144A1","name":"ANATOLIAN HIEROGLYPH A135","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44A1"},83106:{"value":"144A2","name":"ANATOLIAN HIEROGLYPH A135A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44A2"},83107:{"value":"144A3","name":"ANATOLIAN HIEROGLYPH A136","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44A3"},83108:{"value":"144A4","name":"ANATOLIAN HIEROGLYPH A137","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44A4"},83109:{"value":"144A5","name":"ANATOLIAN HIEROGLYPH A138","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44A5"},83110:{"value":"144A6","name":"ANATOLIAN HIEROGLYPH A139","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44A6"},83111:{"value":"144A7","name":"ANATOLIAN HIEROGLYPH A140","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44A7"},83112:{"value":"144A8","name":"ANATOLIAN HIEROGLYPH A141","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44A8"},83113:{"value":"144A9","name":"ANATOLIAN HIEROGLYPH A142","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44A9"},83114:{"value":"144AA","name":"ANATOLIAN HIEROGLYPH A143","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44AA"},83115:{"value":"144AB","name":"ANATOLIAN HIEROGLYPH A144","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44AB"},83116:{"value":"144AC","name":"ANATOLIAN HIEROGLYPH A145","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44AC"},83117:{"value":"144AD","name":"ANATOLIAN HIEROGLYPH A146","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44AD"},83118:{"value":"144AE","name":"ANATOLIAN HIEROGLYPH A147","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44AE"},83119:{"value":"144AF","name":"ANATOLIAN HIEROGLYPH A148","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44AF"},83120:{"value":"144B0","name":"ANATOLIAN HIEROGLYPH A149","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44B0"},83121:{"value":"144B1","name":"ANATOLIAN HIEROGLYPH A150","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44B1"},83122:{"value":"144B2","name":"ANATOLIAN HIEROGLYPH A151","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44B2"},83123:{"value":"144B3","name":"ANATOLIAN HIEROGLYPH A152","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44B3"},83124:{"value":"144B4","name":"ANATOLIAN HIEROGLYPH A153","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44B4"},83125:{"value":"144B5","name":"ANATOLIAN HIEROGLYPH A154","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44B5"},83126:{"value":"144B6","name":"ANATOLIAN HIEROGLYPH A155","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44B6"},83127:{"value":"144B7","name":"ANATOLIAN HIEROGLYPH A156","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44B7"},83128:{"value":"144B8","name":"ANATOLIAN HIEROGLYPH A157","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44B8"},83129:{"value":"144B9","name":"ANATOLIAN HIEROGLYPH A158","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44B9"},83130:{"value":"144BA","name":"ANATOLIAN HIEROGLYPH A159","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44BA"},83131:{"value":"144BB","name":"ANATOLIAN HIEROGLYPH A160","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44BB"},83132:{"value":"144BC","name":"ANATOLIAN HIEROGLYPH A161","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44BC"},83133:{"value":"144BD","name":"ANATOLIAN HIEROGLYPH A162","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44BD"},83134:{"value":"144BE","name":"ANATOLIAN HIEROGLYPH A163","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44BE"},83135:{"value":"144BF","name":"ANATOLIAN HIEROGLYPH A164","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44BF"},83136:{"value":"144C0","name":"ANATOLIAN HIEROGLYPH A165","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44C0"},83137:{"value":"144C1","name":"ANATOLIAN HIEROGLYPH A166","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44C1"},83138:{"value":"144C2","name":"ANATOLIAN HIEROGLYPH A167","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44C2"},83139:{"value":"144C3","name":"ANATOLIAN HIEROGLYPH A168","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44C3"},83140:{"value":"144C4","name":"ANATOLIAN HIEROGLYPH A169","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44C4"},83141:{"value":"144C5","name":"ANATOLIAN HIEROGLYPH A170","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44C5"},83142:{"value":"144C6","name":"ANATOLIAN HIEROGLYPH A171","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44C6"},83143:{"value":"144C7","name":"ANATOLIAN HIEROGLYPH A172","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44C7"},83144:{"value":"144C8","name":"ANATOLIAN HIEROGLYPH A173","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44C8"},83145:{"value":"144C9","name":"ANATOLIAN HIEROGLYPH A174","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44C9"},83146:{"value":"144CA","name":"ANATOLIAN HIEROGLYPH A175","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44CA"},83147:{"value":"144CB","name":"ANATOLIAN HIEROGLYPH A176","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44CB"},83148:{"value":"144CC","name":"ANATOLIAN HIEROGLYPH A177","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44CC"},83149:{"value":"144CD","name":"ANATOLIAN HIEROGLYPH A178","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44CD"},83150:{"value":"144CE","name":"ANATOLIAN HIEROGLYPH A179","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44CE"},83151:{"value":"144CF","name":"ANATOLIAN HIEROGLYPH A180","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44CF"},83152:{"value":"144D0","name":"ANATOLIAN HIEROGLYPH A181","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44D0"},83153:{"value":"144D1","name":"ANATOLIAN HIEROGLYPH A182","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44D1"},83154:{"value":"144D2","name":"ANATOLIAN HIEROGLYPH A183","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44D2"},83155:{"value":"144D3","name":"ANATOLIAN HIEROGLYPH A184","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44D3"},83156:{"value":"144D4","name":"ANATOLIAN HIEROGLYPH A185","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44D4"},83157:{"value":"144D5","name":"ANATOLIAN HIEROGLYPH A186","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44D5"},83158:{"value":"144D6","name":"ANATOLIAN HIEROGLYPH A187","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44D6"},83159:{"value":"144D7","name":"ANATOLIAN HIEROGLYPH A188","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44D7"},83160:{"value":"144D8","name":"ANATOLIAN HIEROGLYPH A189","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44D8"},83161:{"value":"144D9","name":"ANATOLIAN HIEROGLYPH A190","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44D9"},83162:{"value":"144DA","name":"ANATOLIAN HIEROGLYPH A191","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44DA"},83163:{"value":"144DB","name":"ANATOLIAN HIEROGLYPH A192","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44DB"},83164:{"value":"144DC","name":"ANATOLIAN HIEROGLYPH A193","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44DC"},83165:{"value":"144DD","name":"ANATOLIAN HIEROGLYPH A194","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44DD"},83166:{"value":"144DE","name":"ANATOLIAN HIEROGLYPH A195","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44DE"},83167:{"value":"144DF","name":"ANATOLIAN HIEROGLYPH A196","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44DF"},83168:{"value":"144E0","name":"ANATOLIAN HIEROGLYPH A197","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44E0"},83169:{"value":"144E1","name":"ANATOLIAN HIEROGLYPH A198","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44E1"},83170:{"value":"144E2","name":"ANATOLIAN HIEROGLYPH A199","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44E2"},83171:{"value":"144E3","name":"ANATOLIAN HIEROGLYPH A200","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44E3"},83172:{"value":"144E4","name":"ANATOLIAN HIEROGLYPH A201","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44E4"},83173:{"value":"144E5","name":"ANATOLIAN HIEROGLYPH A202","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44E5"},83174:{"value":"144E6","name":"ANATOLIAN HIEROGLYPH A202A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44E6"},83175:{"value":"144E7","name":"ANATOLIAN HIEROGLYPH A202B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44E7"},83176:{"value":"144E8","name":"ANATOLIAN HIEROGLYPH A203","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44E8"},83177:{"value":"144E9","name":"ANATOLIAN HIEROGLYPH A204","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44E9"},83178:{"value":"144EA","name":"ANATOLIAN HIEROGLYPH A205","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44EA"},83179:{"value":"144EB","name":"ANATOLIAN HIEROGLYPH A206","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44EB"},83180:{"value":"144EC","name":"ANATOLIAN HIEROGLYPH A207","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44EC"},83181:{"value":"144ED","name":"ANATOLIAN HIEROGLYPH A207A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44ED"},83182:{"value":"144EE","name":"ANATOLIAN HIEROGLYPH A208","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44EE"},83183:{"value":"144EF","name":"ANATOLIAN HIEROGLYPH A209","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44EF"},83184:{"value":"144F0","name":"ANATOLIAN HIEROGLYPH A209A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44F0"},83185:{"value":"144F1","name":"ANATOLIAN HIEROGLYPH A210","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44F1"},83186:{"value":"144F2","name":"ANATOLIAN HIEROGLYPH A211","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44F2"},83187:{"value":"144F3","name":"ANATOLIAN HIEROGLYPH A212","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44F3"},83188:{"value":"144F4","name":"ANATOLIAN HIEROGLYPH A213","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44F4"},83189:{"value":"144F5","name":"ANATOLIAN HIEROGLYPH A214","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44F5"},83190:{"value":"144F6","name":"ANATOLIAN HIEROGLYPH A215","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44F6"},83191:{"value":"144F7","name":"ANATOLIAN HIEROGLYPH A215A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44F7"},83192:{"value":"144F8","name":"ANATOLIAN HIEROGLYPH A216","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44F8"},83193:{"value":"144F9","name":"ANATOLIAN HIEROGLYPH A216A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44F9"},83194:{"value":"144FA","name":"ANATOLIAN HIEROGLYPH A217","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44FA"},83195:{"value":"144FB","name":"ANATOLIAN HIEROGLYPH A218","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44FB"},83196:{"value":"144FC","name":"ANATOLIAN HIEROGLYPH A219","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44FC"},83197:{"value":"144FD","name":"ANATOLIAN HIEROGLYPH A220","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44FD"},83198:{"value":"144FE","name":"ANATOLIAN HIEROGLYPH A221","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44FE"},83199:{"value":"144FF","name":"ANATOLIAN HIEROGLYPH A222","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u44FF"},83200:{"value":"14500","name":"ANATOLIAN HIEROGLYPH A223","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4500"},83201:{"value":"14501","name":"ANATOLIAN HIEROGLYPH A224","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4501"},83202:{"value":"14502","name":"ANATOLIAN HIEROGLYPH A225","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4502"},83203:{"value":"14503","name":"ANATOLIAN HIEROGLYPH A226","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4503"},83204:{"value":"14504","name":"ANATOLIAN HIEROGLYPH A227","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4504"},83205:{"value":"14505","name":"ANATOLIAN HIEROGLYPH A227A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4505"},83206:{"value":"14506","name":"ANATOLIAN HIEROGLYPH A228","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4506"},83207:{"value":"14507","name":"ANATOLIAN HIEROGLYPH A229","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4507"},83208:{"value":"14508","name":"ANATOLIAN HIEROGLYPH A230","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4508"},83209:{"value":"14509","name":"ANATOLIAN HIEROGLYPH A231","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4509"},83210:{"value":"1450A","name":"ANATOLIAN HIEROGLYPH A232","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u450A"},83211:{"value":"1450B","name":"ANATOLIAN HIEROGLYPH A233","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u450B"},83212:{"value":"1450C","name":"ANATOLIAN HIEROGLYPH A234","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u450C"},83213:{"value":"1450D","name":"ANATOLIAN HIEROGLYPH A235","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u450D"},83214:{"value":"1450E","name":"ANATOLIAN HIEROGLYPH A236","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u450E"},83215:{"value":"1450F","name":"ANATOLIAN HIEROGLYPH A237","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u450F"},83216:{"value":"14510","name":"ANATOLIAN HIEROGLYPH A238","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4510"},83217:{"value":"14511","name":"ANATOLIAN HIEROGLYPH A239","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4511"},83218:{"value":"14512","name":"ANATOLIAN HIEROGLYPH A240","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4512"},83219:{"value":"14513","name":"ANATOLIAN HIEROGLYPH A241","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4513"},83220:{"value":"14514","name":"ANATOLIAN HIEROGLYPH A242","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4514"},83221:{"value":"14515","name":"ANATOLIAN HIEROGLYPH A243","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4515"},83222:{"value":"14516","name":"ANATOLIAN HIEROGLYPH A244","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4516"},83223:{"value":"14517","name":"ANATOLIAN HIEROGLYPH A245","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4517"},83224:{"value":"14518","name":"ANATOLIAN HIEROGLYPH A246","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4518"},83225:{"value":"14519","name":"ANATOLIAN HIEROGLYPH A247","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4519"},83226:{"value":"1451A","name":"ANATOLIAN HIEROGLYPH A248","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u451A"},83227:{"value":"1451B","name":"ANATOLIAN HIEROGLYPH A249","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u451B"},83228:{"value":"1451C","name":"ANATOLIAN HIEROGLYPH A250","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u451C"},83229:{"value":"1451D","name":"ANATOLIAN HIEROGLYPH A251","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u451D"},83230:{"value":"1451E","name":"ANATOLIAN HIEROGLYPH A252","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u451E"},83231:{"value":"1451F","name":"ANATOLIAN HIEROGLYPH A253","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u451F"},83232:{"value":"14520","name":"ANATOLIAN HIEROGLYPH A254","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4520"},83233:{"value":"14521","name":"ANATOLIAN HIEROGLYPH A255","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4521"},83234:{"value":"14522","name":"ANATOLIAN HIEROGLYPH A256","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4522"},83235:{"value":"14523","name":"ANATOLIAN HIEROGLYPH A257","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4523"},83236:{"value":"14524","name":"ANATOLIAN HIEROGLYPH A258","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4524"},83237:{"value":"14525","name":"ANATOLIAN HIEROGLYPH A259","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4525"},83238:{"value":"14526","name":"ANATOLIAN HIEROGLYPH A260","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4526"},83239:{"value":"14527","name":"ANATOLIAN HIEROGLYPH A261","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4527"},83240:{"value":"14528","name":"ANATOLIAN HIEROGLYPH A262","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4528"},83241:{"value":"14529","name":"ANATOLIAN HIEROGLYPH A263","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4529"},83242:{"value":"1452A","name":"ANATOLIAN HIEROGLYPH A264","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u452A"},83243:{"value":"1452B","name":"ANATOLIAN HIEROGLYPH A265","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u452B"},83244:{"value":"1452C","name":"ANATOLIAN HIEROGLYPH A266","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u452C"},83245:{"value":"1452D","name":"ANATOLIAN HIEROGLYPH A267","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u452D"},83246:{"value":"1452E","name":"ANATOLIAN HIEROGLYPH A267A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u452E"},83247:{"value":"1452F","name":"ANATOLIAN HIEROGLYPH A268","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u452F"},83248:{"value":"14530","name":"ANATOLIAN HIEROGLYPH A269","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4530"},83249:{"value":"14531","name":"ANATOLIAN HIEROGLYPH A270","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4531"},83250:{"value":"14532","name":"ANATOLIAN HIEROGLYPH A271","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4532"},83251:{"value":"14533","name":"ANATOLIAN HIEROGLYPH A272","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4533"},83252:{"value":"14534","name":"ANATOLIAN HIEROGLYPH A273","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4534"},83253:{"value":"14535","name":"ANATOLIAN HIEROGLYPH A274","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4535"},83254:{"value":"14536","name":"ANATOLIAN HIEROGLYPH A275","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4536"},83255:{"value":"14537","name":"ANATOLIAN HIEROGLYPH A276","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4537"},83256:{"value":"14538","name":"ANATOLIAN HIEROGLYPH A277","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4538"},83257:{"value":"14539","name":"ANATOLIAN HIEROGLYPH A278","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4539"},83258:{"value":"1453A","name":"ANATOLIAN HIEROGLYPH A279","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u453A"},83259:{"value":"1453B","name":"ANATOLIAN HIEROGLYPH A280","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u453B"},83260:{"value":"1453C","name":"ANATOLIAN HIEROGLYPH A281","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u453C"},83261:{"value":"1453D","name":"ANATOLIAN HIEROGLYPH A282","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u453D"},83262:{"value":"1453E","name":"ANATOLIAN HIEROGLYPH A283","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u453E"},83263:{"value":"1453F","name":"ANATOLIAN HIEROGLYPH A284","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u453F"},83264:{"value":"14540","name":"ANATOLIAN HIEROGLYPH A285","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4540"},83265:{"value":"14541","name":"ANATOLIAN HIEROGLYPH A286","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4541"},83266:{"value":"14542","name":"ANATOLIAN HIEROGLYPH A287","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4542"},83267:{"value":"14543","name":"ANATOLIAN HIEROGLYPH A288","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4543"},83268:{"value":"14544","name":"ANATOLIAN HIEROGLYPH A289","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4544"},83269:{"value":"14545","name":"ANATOLIAN HIEROGLYPH A289A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4545"},83270:{"value":"14546","name":"ANATOLIAN HIEROGLYPH A290","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4546"},83271:{"value":"14547","name":"ANATOLIAN HIEROGLYPH A291","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4547"},83272:{"value":"14548","name":"ANATOLIAN HIEROGLYPH A292","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4548"},83273:{"value":"14549","name":"ANATOLIAN HIEROGLYPH A293","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4549"},83274:{"value":"1454A","name":"ANATOLIAN HIEROGLYPH A294","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u454A"},83275:{"value":"1454B","name":"ANATOLIAN HIEROGLYPH A294A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u454B"},83276:{"value":"1454C","name":"ANATOLIAN HIEROGLYPH A295","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u454C"},83277:{"value":"1454D","name":"ANATOLIAN HIEROGLYPH A296","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u454D"},83278:{"value":"1454E","name":"ANATOLIAN HIEROGLYPH A297","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u454E"},83279:{"value":"1454F","name":"ANATOLIAN HIEROGLYPH A298","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u454F"},83280:{"value":"14550","name":"ANATOLIAN HIEROGLYPH A299","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4550"},83281:{"value":"14551","name":"ANATOLIAN HIEROGLYPH A299A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4551"},83282:{"value":"14552","name":"ANATOLIAN HIEROGLYPH A300","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4552"},83283:{"value":"14553","name":"ANATOLIAN HIEROGLYPH A301","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4553"},83284:{"value":"14554","name":"ANATOLIAN HIEROGLYPH A302","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4554"},83285:{"value":"14555","name":"ANATOLIAN HIEROGLYPH A303","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4555"},83286:{"value":"14556","name":"ANATOLIAN HIEROGLYPH A304","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4556"},83287:{"value":"14557","name":"ANATOLIAN HIEROGLYPH A305","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4557"},83288:{"value":"14558","name":"ANATOLIAN HIEROGLYPH A306","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4558"},83289:{"value":"14559","name":"ANATOLIAN HIEROGLYPH A307","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4559"},83290:{"value":"1455A","name":"ANATOLIAN HIEROGLYPH A308","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u455A"},83291:{"value":"1455B","name":"ANATOLIAN HIEROGLYPH A309","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u455B"},83292:{"value":"1455C","name":"ANATOLIAN HIEROGLYPH A309A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u455C"},83293:{"value":"1455D","name":"ANATOLIAN HIEROGLYPH A310","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u455D"},83294:{"value":"1455E","name":"ANATOLIAN HIEROGLYPH A311","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u455E"},83295:{"value":"1455F","name":"ANATOLIAN HIEROGLYPH A312","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u455F"},83296:{"value":"14560","name":"ANATOLIAN HIEROGLYPH A313","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4560"},83297:{"value":"14561","name":"ANATOLIAN HIEROGLYPH A314","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4561"},83298:{"value":"14562","name":"ANATOLIAN HIEROGLYPH A315","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4562"},83299:{"value":"14563","name":"ANATOLIAN HIEROGLYPH A316","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4563"},83300:{"value":"14564","name":"ANATOLIAN HIEROGLYPH A317","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4564"},83301:{"value":"14565","name":"ANATOLIAN HIEROGLYPH A318","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4565"},83302:{"value":"14566","name":"ANATOLIAN HIEROGLYPH A319","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4566"},83303:{"value":"14567","name":"ANATOLIAN HIEROGLYPH A320","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4567"},83304:{"value":"14568","name":"ANATOLIAN HIEROGLYPH A321","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4568"},83305:{"value":"14569","name":"ANATOLIAN HIEROGLYPH A322","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4569"},83306:{"value":"1456A","name":"ANATOLIAN HIEROGLYPH A323","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u456A"},83307:{"value":"1456B","name":"ANATOLIAN HIEROGLYPH A324","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u456B"},83308:{"value":"1456C","name":"ANATOLIAN HIEROGLYPH A325","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u456C"},83309:{"value":"1456D","name":"ANATOLIAN HIEROGLYPH A326","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u456D"},83310:{"value":"1456E","name":"ANATOLIAN HIEROGLYPH A327","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u456E"},83311:{"value":"1456F","name":"ANATOLIAN HIEROGLYPH A328","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u456F"},83312:{"value":"14570","name":"ANATOLIAN HIEROGLYPH A329","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4570"},83313:{"value":"14571","name":"ANATOLIAN HIEROGLYPH A329A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4571"},83314:{"value":"14572","name":"ANATOLIAN HIEROGLYPH A330","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4572"},83315:{"value":"14573","name":"ANATOLIAN HIEROGLYPH A331","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4573"},83316:{"value":"14574","name":"ANATOLIAN HIEROGLYPH A332A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4574"},83317:{"value":"14575","name":"ANATOLIAN HIEROGLYPH A332B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4575"},83318:{"value":"14576","name":"ANATOLIAN HIEROGLYPH A332C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4576"},83319:{"value":"14577","name":"ANATOLIAN HIEROGLYPH A333","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4577"},83320:{"value":"14578","name":"ANATOLIAN HIEROGLYPH A334","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4578"},83321:{"value":"14579","name":"ANATOLIAN HIEROGLYPH A335","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4579"},83322:{"value":"1457A","name":"ANATOLIAN HIEROGLYPH A336","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u457A"},83323:{"value":"1457B","name":"ANATOLIAN HIEROGLYPH A336A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u457B"},83324:{"value":"1457C","name":"ANATOLIAN HIEROGLYPH A336B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u457C"},83325:{"value":"1457D","name":"ANATOLIAN HIEROGLYPH A336C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u457D"},83326:{"value":"1457E","name":"ANATOLIAN HIEROGLYPH A337","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u457E"},83327:{"value":"1457F","name":"ANATOLIAN HIEROGLYPH A338","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u457F"},83328:{"value":"14580","name":"ANATOLIAN HIEROGLYPH A339","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4580"},83329:{"value":"14581","name":"ANATOLIAN HIEROGLYPH A340","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4581"},83330:{"value":"14582","name":"ANATOLIAN HIEROGLYPH A341","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4582"},83331:{"value":"14583","name":"ANATOLIAN HIEROGLYPH A342","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4583"},83332:{"value":"14584","name":"ANATOLIAN HIEROGLYPH A343","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4584"},83333:{"value":"14585","name":"ANATOLIAN HIEROGLYPH A344","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4585"},83334:{"value":"14586","name":"ANATOLIAN HIEROGLYPH A345","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4586"},83335:{"value":"14587","name":"ANATOLIAN HIEROGLYPH A346","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4587"},83336:{"value":"14588","name":"ANATOLIAN HIEROGLYPH A347","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4588"},83337:{"value":"14589","name":"ANATOLIAN HIEROGLYPH A348","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4589"},83338:{"value":"1458A","name":"ANATOLIAN HIEROGLYPH A349","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u458A"},83339:{"value":"1458B","name":"ANATOLIAN HIEROGLYPH A350","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u458B"},83340:{"value":"1458C","name":"ANATOLIAN HIEROGLYPH A351","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u458C"},83341:{"value":"1458D","name":"ANATOLIAN HIEROGLYPH A352","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u458D"},83342:{"value":"1458E","name":"ANATOLIAN HIEROGLYPH A353","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u458E"},83343:{"value":"1458F","name":"ANATOLIAN HIEROGLYPH A354","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u458F"},83344:{"value":"14590","name":"ANATOLIAN HIEROGLYPH A355","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4590"},83345:{"value":"14591","name":"ANATOLIAN HIEROGLYPH A356","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4591"},83346:{"value":"14592","name":"ANATOLIAN HIEROGLYPH A357","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4592"},83347:{"value":"14593","name":"ANATOLIAN HIEROGLYPH A358","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4593"},83348:{"value":"14594","name":"ANATOLIAN HIEROGLYPH A359","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4594"},83349:{"value":"14595","name":"ANATOLIAN HIEROGLYPH A359A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4595"},83350:{"value":"14596","name":"ANATOLIAN HIEROGLYPH A360","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4596"},83351:{"value":"14597","name":"ANATOLIAN HIEROGLYPH A361","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4597"},83352:{"value":"14598","name":"ANATOLIAN HIEROGLYPH A362","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4598"},83353:{"value":"14599","name":"ANATOLIAN HIEROGLYPH A363","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4599"},83354:{"value":"1459A","name":"ANATOLIAN HIEROGLYPH A364","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u459A"},83355:{"value":"1459B","name":"ANATOLIAN HIEROGLYPH A364A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u459B"},83356:{"value":"1459C","name":"ANATOLIAN HIEROGLYPH A365","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u459C"},83357:{"value":"1459D","name":"ANATOLIAN HIEROGLYPH A366","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u459D"},83358:{"value":"1459E","name":"ANATOLIAN HIEROGLYPH A367","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u459E"},83359:{"value":"1459F","name":"ANATOLIAN HIEROGLYPH A368","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u459F"},83360:{"value":"145A0","name":"ANATOLIAN HIEROGLYPH A368A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45A0"},83361:{"value":"145A1","name":"ANATOLIAN HIEROGLYPH A369","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45A1"},83362:{"value":"145A2","name":"ANATOLIAN HIEROGLYPH A370","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45A2"},83363:{"value":"145A3","name":"ANATOLIAN HIEROGLYPH A371","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45A3"},83364:{"value":"145A4","name":"ANATOLIAN HIEROGLYPH A371A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45A4"},83365:{"value":"145A5","name":"ANATOLIAN HIEROGLYPH A372","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45A5"},83366:{"value":"145A6","name":"ANATOLIAN HIEROGLYPH A373","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45A6"},83367:{"value":"145A7","name":"ANATOLIAN HIEROGLYPH A374","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45A7"},83368:{"value":"145A8","name":"ANATOLIAN HIEROGLYPH A375","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45A8"},83369:{"value":"145A9","name":"ANATOLIAN HIEROGLYPH A376","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45A9"},83370:{"value":"145AA","name":"ANATOLIAN HIEROGLYPH A377","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45AA"},83371:{"value":"145AB","name":"ANATOLIAN HIEROGLYPH A378","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45AB"},83372:{"value":"145AC","name":"ANATOLIAN HIEROGLYPH A379","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45AC"},83373:{"value":"145AD","name":"ANATOLIAN HIEROGLYPH A380","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45AD"},83374:{"value":"145AE","name":"ANATOLIAN HIEROGLYPH A381","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45AE"},83375:{"value":"145AF","name":"ANATOLIAN HIEROGLYPH A381A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45AF"},83376:{"value":"145B0","name":"ANATOLIAN HIEROGLYPH A382","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45B0"},83377:{"value":"145B1","name":"ANATOLIAN HIEROGLYPH A383 RA OR RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45B1"},83378:{"value":"145B2","name":"ANATOLIAN HIEROGLYPH A383A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45B2"},83379:{"value":"145B3","name":"ANATOLIAN HIEROGLYPH A384","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45B3"},83380:{"value":"145B4","name":"ANATOLIAN HIEROGLYPH A385","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45B4"},83381:{"value":"145B5","name":"ANATOLIAN HIEROGLYPH A386","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45B5"},83382:{"value":"145B6","name":"ANATOLIAN HIEROGLYPH A386A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45B6"},83383:{"value":"145B7","name":"ANATOLIAN HIEROGLYPH A387","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45B7"},83384:{"value":"145B8","name":"ANATOLIAN HIEROGLYPH A388","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45B8"},83385:{"value":"145B9","name":"ANATOLIAN HIEROGLYPH A389","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45B9"},83386:{"value":"145BA","name":"ANATOLIAN HIEROGLYPH A390","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45BA"},83387:{"value":"145BB","name":"ANATOLIAN HIEROGLYPH A391","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45BB"},83388:{"value":"145BC","name":"ANATOLIAN HIEROGLYPH A392","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45BC"},83389:{"value":"145BD","name":"ANATOLIAN HIEROGLYPH A393 EIGHT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45BD"},83390:{"value":"145BE","name":"ANATOLIAN HIEROGLYPH A394","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45BE"},83391:{"value":"145BF","name":"ANATOLIAN HIEROGLYPH A395","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45BF"},83392:{"value":"145C0","name":"ANATOLIAN HIEROGLYPH A396","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45C0"},83393:{"value":"145C1","name":"ANATOLIAN HIEROGLYPH A397","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45C1"},83394:{"value":"145C2","name":"ANATOLIAN HIEROGLYPH A398","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45C2"},83395:{"value":"145C3","name":"ANATOLIAN HIEROGLYPH A399","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45C3"},83396:{"value":"145C4","name":"ANATOLIAN HIEROGLYPH A400","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45C4"},83397:{"value":"145C5","name":"ANATOLIAN HIEROGLYPH A401","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45C5"},83398:{"value":"145C6","name":"ANATOLIAN HIEROGLYPH A402","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45C6"},83399:{"value":"145C7","name":"ANATOLIAN HIEROGLYPH A403","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45C7"},83400:{"value":"145C8","name":"ANATOLIAN HIEROGLYPH A404","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45C8"},83401:{"value":"145C9","name":"ANATOLIAN HIEROGLYPH A405","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45C9"},83402:{"value":"145CA","name":"ANATOLIAN HIEROGLYPH A406","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45CA"},83403:{"value":"145CB","name":"ANATOLIAN HIEROGLYPH A407","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45CB"},83404:{"value":"145CC","name":"ANATOLIAN HIEROGLYPH A408","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45CC"},83405:{"value":"145CD","name":"ANATOLIAN HIEROGLYPH A409","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45CD"},83406:{"value":"145CE","name":"ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45CE"},83407:{"value":"145CF","name":"ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45CF"},83408:{"value":"145D0","name":"ANATOLIAN HIEROGLYPH A411","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45D0"},83409:{"value":"145D1","name":"ANATOLIAN HIEROGLYPH A412","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45D1"},83410:{"value":"145D2","name":"ANATOLIAN HIEROGLYPH A413","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45D2"},83411:{"value":"145D3","name":"ANATOLIAN HIEROGLYPH A414","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45D3"},83412:{"value":"145D4","name":"ANATOLIAN HIEROGLYPH A415","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45D4"},83413:{"value":"145D5","name":"ANATOLIAN HIEROGLYPH A416","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45D5"},83414:{"value":"145D6","name":"ANATOLIAN HIEROGLYPH A417","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45D6"},83415:{"value":"145D7","name":"ANATOLIAN HIEROGLYPH A418","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45D7"},83416:{"value":"145D8","name":"ANATOLIAN HIEROGLYPH A419","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45D8"},83417:{"value":"145D9","name":"ANATOLIAN HIEROGLYPH A420","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45D9"},83418:{"value":"145DA","name":"ANATOLIAN HIEROGLYPH A421","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45DA"},83419:{"value":"145DB","name":"ANATOLIAN HIEROGLYPH A422","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45DB"},83420:{"value":"145DC","name":"ANATOLIAN HIEROGLYPH A423","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45DC"},83421:{"value":"145DD","name":"ANATOLIAN HIEROGLYPH A424","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45DD"},83422:{"value":"145DE","name":"ANATOLIAN HIEROGLYPH A425","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45DE"},83423:{"value":"145DF","name":"ANATOLIAN HIEROGLYPH A426","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45DF"},83424:{"value":"145E0","name":"ANATOLIAN HIEROGLYPH A427","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45E0"},83425:{"value":"145E1","name":"ANATOLIAN HIEROGLYPH A428","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45E1"},83426:{"value":"145E2","name":"ANATOLIAN HIEROGLYPH A429","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45E2"},83427:{"value":"145E3","name":"ANATOLIAN HIEROGLYPH A430","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45E3"},83428:{"value":"145E4","name":"ANATOLIAN HIEROGLYPH A431","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45E4"},83429:{"value":"145E5","name":"ANATOLIAN HIEROGLYPH A432","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45E5"},83430:{"value":"145E6","name":"ANATOLIAN HIEROGLYPH A433","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45E6"},83431:{"value":"145E7","name":"ANATOLIAN HIEROGLYPH A434","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45E7"},83432:{"value":"145E8","name":"ANATOLIAN HIEROGLYPH A435","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45E8"},83433:{"value":"145E9","name":"ANATOLIAN HIEROGLYPH A436","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45E9"},83434:{"value":"145EA","name":"ANATOLIAN HIEROGLYPH A437","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45EA"},83435:{"value":"145EB","name":"ANATOLIAN HIEROGLYPH A438","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45EB"},83436:{"value":"145EC","name":"ANATOLIAN HIEROGLYPH A439","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45EC"},83437:{"value":"145ED","name":"ANATOLIAN HIEROGLYPH A440","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45ED"},83438:{"value":"145EE","name":"ANATOLIAN HIEROGLYPH A441","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45EE"},83439:{"value":"145EF","name":"ANATOLIAN HIEROGLYPH A442","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45EF"},83440:{"value":"145F0","name":"ANATOLIAN HIEROGLYPH A443","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45F0"},83441:{"value":"145F1","name":"ANATOLIAN HIEROGLYPH A444","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45F1"},83442:{"value":"145F2","name":"ANATOLIAN HIEROGLYPH A445","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45F2"},83443:{"value":"145F3","name":"ANATOLIAN HIEROGLYPH A446","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45F3"},83444:{"value":"145F4","name":"ANATOLIAN HIEROGLYPH A447","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45F4"},83445:{"value":"145F5","name":"ANATOLIAN HIEROGLYPH A448","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45F5"},83446:{"value":"145F6","name":"ANATOLIAN HIEROGLYPH A449","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45F6"},83447:{"value":"145F7","name":"ANATOLIAN HIEROGLYPH A450","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45F7"},83448:{"value":"145F8","name":"ANATOLIAN HIEROGLYPH A450A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45F8"},83449:{"value":"145F9","name":"ANATOLIAN HIEROGLYPH A451","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45F9"},83450:{"value":"145FA","name":"ANATOLIAN HIEROGLYPH A452","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45FA"},83451:{"value":"145FB","name":"ANATOLIAN HIEROGLYPH A453","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45FB"},83452:{"value":"145FC","name":"ANATOLIAN HIEROGLYPH A454","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45FC"},83453:{"value":"145FD","name":"ANATOLIAN HIEROGLYPH A455","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45FD"},83454:{"value":"145FE","name":"ANATOLIAN HIEROGLYPH A456","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45FE"},83455:{"value":"145FF","name":"ANATOLIAN HIEROGLYPH A457","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u45FF"},83456:{"value":"14600","name":"ANATOLIAN HIEROGLYPH A457A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4600"},83457:{"value":"14601","name":"ANATOLIAN HIEROGLYPH A458","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4601"},83458:{"value":"14602","name":"ANATOLIAN HIEROGLYPH A459","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4602"},83459:{"value":"14603","name":"ANATOLIAN HIEROGLYPH A460","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4603"},83460:{"value":"14604","name":"ANATOLIAN HIEROGLYPH A461","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4604"},83461:{"value":"14605","name":"ANATOLIAN HIEROGLYPH A462","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4605"},83462:{"value":"14606","name":"ANATOLIAN HIEROGLYPH A463","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4606"},83463:{"value":"14607","name":"ANATOLIAN HIEROGLYPH A464","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4607"},83464:{"value":"14608","name":"ANATOLIAN HIEROGLYPH A465","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4608"},83465:{"value":"14609","name":"ANATOLIAN HIEROGLYPH A466","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4609"},83466:{"value":"1460A","name":"ANATOLIAN HIEROGLYPH A467","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u460A"},83467:{"value":"1460B","name":"ANATOLIAN HIEROGLYPH A468","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u460B"},83468:{"value":"1460C","name":"ANATOLIAN HIEROGLYPH A469","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u460C"},83469:{"value":"1460D","name":"ANATOLIAN HIEROGLYPH A470","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u460D"},83470:{"value":"1460E","name":"ANATOLIAN HIEROGLYPH A471","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u460E"},83471:{"value":"1460F","name":"ANATOLIAN HIEROGLYPH A472","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u460F"},83472:{"value":"14610","name":"ANATOLIAN HIEROGLYPH A473","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4610"},83473:{"value":"14611","name":"ANATOLIAN HIEROGLYPH A474","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4611"},83474:{"value":"14612","name":"ANATOLIAN HIEROGLYPH A475","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4612"},83475:{"value":"14613","name":"ANATOLIAN HIEROGLYPH A476","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4613"},83476:{"value":"14614","name":"ANATOLIAN HIEROGLYPH A477","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4614"},83477:{"value":"14615","name":"ANATOLIAN HIEROGLYPH A478","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4615"},83478:{"value":"14616","name":"ANATOLIAN HIEROGLYPH A479","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4616"},83479:{"value":"14617","name":"ANATOLIAN HIEROGLYPH A480","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4617"},83480:{"value":"14618","name":"ANATOLIAN HIEROGLYPH A481","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4618"},83481:{"value":"14619","name":"ANATOLIAN HIEROGLYPH A482","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4619"},83482:{"value":"1461A","name":"ANATOLIAN HIEROGLYPH A483","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u461A"},83483:{"value":"1461B","name":"ANATOLIAN HIEROGLYPH A484","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u461B"},83484:{"value":"1461C","name":"ANATOLIAN HIEROGLYPH A485","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u461C"},83485:{"value":"1461D","name":"ANATOLIAN HIEROGLYPH A486","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u461D"},83486:{"value":"1461E","name":"ANATOLIAN HIEROGLYPH A487","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u461E"},83487:{"value":"1461F","name":"ANATOLIAN HIEROGLYPH A488","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u461F"},83488:{"value":"14620","name":"ANATOLIAN HIEROGLYPH A489","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4620"},83489:{"value":"14621","name":"ANATOLIAN HIEROGLYPH A490","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4621"},83490:{"value":"14622","name":"ANATOLIAN HIEROGLYPH A491","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4622"},83491:{"value":"14623","name":"ANATOLIAN HIEROGLYPH A492","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4623"},83492:{"value":"14624","name":"ANATOLIAN HIEROGLYPH A493","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4624"},83493:{"value":"14625","name":"ANATOLIAN HIEROGLYPH A494","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4625"},83494:{"value":"14626","name":"ANATOLIAN HIEROGLYPH A495","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4626"},83495:{"value":"14627","name":"ANATOLIAN HIEROGLYPH A496","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4627"},83496:{"value":"14628","name":"ANATOLIAN HIEROGLYPH A497","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4628"},83497:{"value":"14629","name":"ANATOLIAN HIEROGLYPH A501","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4629"},83498:{"value":"1462A","name":"ANATOLIAN HIEROGLYPH A502","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u462A"},83499:{"value":"1462B","name":"ANATOLIAN HIEROGLYPH A503","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u462B"},83500:{"value":"1462C","name":"ANATOLIAN HIEROGLYPH A504","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u462C"},83501:{"value":"1462D","name":"ANATOLIAN HIEROGLYPH A505","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u462D"},83502:{"value":"1462E","name":"ANATOLIAN HIEROGLYPH A506","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u462E"},83503:{"value":"1462F","name":"ANATOLIAN HIEROGLYPH A507","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u462F"},83504:{"value":"14630","name":"ANATOLIAN HIEROGLYPH A508","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4630"},83505:{"value":"14631","name":"ANATOLIAN HIEROGLYPH A509","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4631"},83506:{"value":"14632","name":"ANATOLIAN HIEROGLYPH A510","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4632"},83507:{"value":"14633","name":"ANATOLIAN HIEROGLYPH A511","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4633"},83508:{"value":"14634","name":"ANATOLIAN HIEROGLYPH A512","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4634"},83509:{"value":"14635","name":"ANATOLIAN HIEROGLYPH A513","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4635"},83510:{"value":"14636","name":"ANATOLIAN HIEROGLYPH A514","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4636"},83511:{"value":"14637","name":"ANATOLIAN HIEROGLYPH A515","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4637"},83512:{"value":"14638","name":"ANATOLIAN HIEROGLYPH A516","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4638"},83513:{"value":"14639","name":"ANATOLIAN HIEROGLYPH A517","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4639"},83514:{"value":"1463A","name":"ANATOLIAN HIEROGLYPH A518","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u463A"},83515:{"value":"1463B","name":"ANATOLIAN HIEROGLYPH A519","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u463B"},83516:{"value":"1463C","name":"ANATOLIAN HIEROGLYPH A520","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u463C"},83517:{"value":"1463D","name":"ANATOLIAN HIEROGLYPH A521","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u463D"},83518:{"value":"1463E","name":"ANATOLIAN HIEROGLYPH A522","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u463E"},83519:{"value":"1463F","name":"ANATOLIAN HIEROGLYPH A523","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u463F"},83520:{"value":"14640","name":"ANATOLIAN HIEROGLYPH A524","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4640"},83521:{"value":"14641","name":"ANATOLIAN HIEROGLYPH A525","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4641"},83522:{"value":"14642","name":"ANATOLIAN HIEROGLYPH A526","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4642"},83523:{"value":"14643","name":"ANATOLIAN HIEROGLYPH A527","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4643"},83524:{"value":"14644","name":"ANATOLIAN HIEROGLYPH A528","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4644"},83525:{"value":"14645","name":"ANATOLIAN HIEROGLYPH A529","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4645"},83526:{"value":"14646","name":"ANATOLIAN HIEROGLYPH A530","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u4646"},92160:{"value":"16800","name":"BAMUM LETTER PHASE-A NGKUE MFON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6800"},92161:{"value":"16801","name":"BAMUM LETTER PHASE-A GBIEE FON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6801"},92162:{"value":"16802","name":"BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6802"},92163:{"value":"16803","name":"BAMUM LETTER PHASE-A PON MFON PIPAEMBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6803"},92164:{"value":"16804","name":"BAMUM LETTER PHASE-A NAA MFON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6804"},92165:{"value":"16805","name":"BAMUM LETTER PHASE-A SHUENSHUET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6805"},92166:{"value":"16806","name":"BAMUM LETTER PHASE-A TITA MFON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6806"},92167:{"value":"16807","name":"BAMUM LETTER PHASE-A NZA MFON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6807"},92168:{"value":"16808","name":"BAMUM LETTER PHASE-A SHINDA PA NJI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6808"},92169:{"value":"16809","name":"BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6809"},92170:{"value":"1680A","name":"BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u680A"},92171:{"value":"1680B","name":"BAMUM LETTER PHASE-A MAEMBGBIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u680B"},92172:{"value":"1680C","name":"BAMUM LETTER PHASE-A TU MAEMBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u680C"},92173:{"value":"1680D","name":"BAMUM LETTER PHASE-A NGANGU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u680D"},92174:{"value":"1680E","name":"BAMUM LETTER PHASE-A MAEMVEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u680E"},92175:{"value":"1680F","name":"BAMUM LETTER PHASE-A MANSUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u680F"},92176:{"value":"16810","name":"BAMUM LETTER PHASE-A MVEUAENGAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6810"},92177:{"value":"16811","name":"BAMUM LETTER PHASE-A SEUNYAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6811"},92178:{"value":"16812","name":"BAMUM LETTER PHASE-A NTOQPEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6812"},92179:{"value":"16813","name":"BAMUM LETTER PHASE-A KEUKEUTNDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6813"},92180:{"value":"16814","name":"BAMUM LETTER PHASE-A NKINDI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6814"},92181:{"value":"16815","name":"BAMUM LETTER PHASE-A SUU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6815"},92182:{"value":"16816","name":"BAMUM LETTER PHASE-A NGKUENZEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6816"},92183:{"value":"16817","name":"BAMUM LETTER PHASE-A LAPAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6817"},92184:{"value":"16818","name":"BAMUM LETTER PHASE-A LET KUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6818"},92185:{"value":"16819","name":"BAMUM LETTER PHASE-A NTAP MFAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6819"},92186:{"value":"1681A","name":"BAMUM LETTER PHASE-A MAEKEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u681A"},92187:{"value":"1681B","name":"BAMUM LETTER PHASE-A PASHAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u681B"},92188:{"value":"1681C","name":"BAMUM LETTER PHASE-A GHEUAERAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u681C"},92189:{"value":"1681D","name":"BAMUM LETTER PHASE-A PAMSHAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u681D"},92190:{"value":"1681E","name":"BAMUM LETTER PHASE-A MON NGGEUAET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u681E"},92191:{"value":"1681F","name":"BAMUM LETTER PHASE-A NZUN MEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u681F"},92192:{"value":"16820","name":"BAMUM LETTER PHASE-A U YUQ NAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6820"},92193:{"value":"16821","name":"BAMUM LETTER PHASE-A GHEUAEGHEUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6821"},92194:{"value":"16822","name":"BAMUM LETTER PHASE-A NTAP NTAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6822"},92195:{"value":"16823","name":"BAMUM LETTER PHASE-A SISA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6823"},92196:{"value":"16824","name":"BAMUM LETTER PHASE-A MGBASA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6824"},92197:{"value":"16825","name":"BAMUM LETTER PHASE-A MEUNJOMNDEUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6825"},92198:{"value":"16826","name":"BAMUM LETTER PHASE-A MOOMPUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6826"},92199:{"value":"16827","name":"BAMUM LETTER PHASE-A KAFA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6827"},92200:{"value":"16828","name":"BAMUM LETTER PHASE-A PA LEERAEWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6828"},92201:{"value":"16829","name":"BAMUM LETTER PHASE-A NDA LEERAEWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6829"},92202:{"value":"1682A","name":"BAMUM LETTER PHASE-A PET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u682A"},92203:{"value":"1682B","name":"BAMUM LETTER PHASE-A MAEMKPEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u682B"},92204:{"value":"1682C","name":"BAMUM LETTER PHASE-A NIKA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u682C"},92205:{"value":"1682D","name":"BAMUM LETTER PHASE-A PUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u682D"},92206:{"value":"1682E","name":"BAMUM LETTER PHASE-A TUAEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u682E"},92207:{"value":"1682F","name":"BAMUM LETTER PHASE-A LUAEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u682F"},92208:{"value":"16830","name":"BAMUM LETTER PHASE-A SONJAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6830"},92209:{"value":"16831","name":"BAMUM LETTER PHASE-A TEUTEUWEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6831"},92210:{"value":"16832","name":"BAMUM LETTER PHASE-A MAENYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6832"},92211:{"value":"16833","name":"BAMUM LETTER PHASE-A KET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6833"},92212:{"value":"16834","name":"BAMUM LETTER PHASE-A NDAANGGEUAET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6834"},92213:{"value":"16835","name":"BAMUM LETTER PHASE-A KUOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6835"},92214:{"value":"16836","name":"BAMUM LETTER PHASE-A MOOMEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6836"},92215:{"value":"16837","name":"BAMUM LETTER PHASE-A SHUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6837"},92216:{"value":"16838","name":"BAMUM LETTER PHASE-A LOMMAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6838"},92217:{"value":"16839","name":"BAMUM LETTER PHASE-A FIRI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6839"},92218:{"value":"1683A","name":"BAMUM LETTER PHASE-A ROM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u683A"},92219:{"value":"1683B","name":"BAMUM LETTER PHASE-A KPOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u683B"},92220:{"value":"1683C","name":"BAMUM LETTER PHASE-A SOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u683C"},92221:{"value":"1683D","name":"BAMUM LETTER PHASE-A MAP PIEET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u683D"},92222:{"value":"1683E","name":"BAMUM LETTER PHASE-A SHIRAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u683E"},92223:{"value":"1683F","name":"BAMUM LETTER PHASE-A NTAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u683F"},92224:{"value":"16840","name":"BAMUM LETTER PHASE-A SHOQ NSHUT YUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6840"},92225:{"value":"16841","name":"BAMUM LETTER PHASE-A NYIT MONGKEUAEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6841"},92226:{"value":"16842","name":"BAMUM LETTER PHASE-A PAARAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6842"},92227:{"value":"16843","name":"BAMUM LETTER PHASE-A NKAARAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6843"},92228:{"value":"16844","name":"BAMUM LETTER PHASE-A UNKNOWN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6844"},92229:{"value":"16845","name":"BAMUM LETTER PHASE-A NGGEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6845"},92230:{"value":"16846","name":"BAMUM LETTER PHASE-A MAESI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6846"},92231:{"value":"16847","name":"BAMUM LETTER PHASE-A NJAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6847"},92232:{"value":"16848","name":"BAMUM LETTER PHASE-A MBANYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6848"},92233:{"value":"16849","name":"BAMUM LETTER PHASE-A NYET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6849"},92234:{"value":"1684A","name":"BAMUM LETTER PHASE-A TEUAEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u684A"},92235:{"value":"1684B","name":"BAMUM LETTER PHASE-A SOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u684B"},92236:{"value":"1684C","name":"BAMUM LETTER PHASE-A PAAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u684C"},92237:{"value":"1684D","name":"BAMUM LETTER PHASE-A NSHIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u684D"},92238:{"value":"1684E","name":"BAMUM LETTER PHASE-A MAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u684E"},92239:{"value":"1684F","name":"BAMUM LETTER PHASE-A NYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u684F"},92240:{"value":"16850","name":"BAMUM LETTER PHASE-A KAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6850"},92241:{"value":"16851","name":"BAMUM LETTER PHASE-A NSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6851"},92242:{"value":"16852","name":"BAMUM LETTER PHASE-A VEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6852"},92243:{"value":"16853","name":"BAMUM LETTER PHASE-A LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6853"},92244:{"value":"16854","name":"BAMUM LETTER PHASE-A NEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6854"},92245:{"value":"16855","name":"BAMUM LETTER PHASE-A NAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6855"},92246:{"value":"16856","name":"BAMUM LETTER PHASE-A MBAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6856"},92247:{"value":"16857","name":"BAMUM LETTER PHASE-B NSHUET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6857"},92248:{"value":"16858","name":"BAMUM LETTER PHASE-B TU MAEMGBIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6858"},92249:{"value":"16859","name":"BAMUM LETTER PHASE-B SIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6859"},92250:{"value":"1685A","name":"BAMUM LETTER PHASE-B SET TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u685A"},92251:{"value":"1685B","name":"BAMUM LETTER PHASE-B LOM NTEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u685B"},92252:{"value":"1685C","name":"BAMUM LETTER PHASE-B MBA MAELEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u685C"},92253:{"value":"1685D","name":"BAMUM LETTER PHASE-B KIEEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u685D"},92254:{"value":"1685E","name":"BAMUM LETTER PHASE-B YEURAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u685E"},92255:{"value":"1685F","name":"BAMUM LETTER PHASE-B MBAARAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u685F"},92256:{"value":"16860","name":"BAMUM LETTER PHASE-B KAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6860"},92257:{"value":"16861","name":"BAMUM LETTER PHASE-B PEESHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6861"},92258:{"value":"16862","name":"BAMUM LETTER PHASE-B YAFU LEERAEWA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6862"},92259:{"value":"16863","name":"BAMUM LETTER PHASE-B LAM NSHUT NYAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6863"},92260:{"value":"16864","name":"BAMUM LETTER PHASE-B NTIEE SHEUOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6864"},92261:{"value":"16865","name":"BAMUM LETTER PHASE-B NDU NJAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6865"},92262:{"value":"16866","name":"BAMUM LETTER PHASE-B GHEUGHEUAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6866"},92263:{"value":"16867","name":"BAMUM LETTER PHASE-B PIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6867"},92264:{"value":"16868","name":"BAMUM LETTER PHASE-B TU NSIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6868"},92265:{"value":"16869","name":"BAMUM LETTER PHASE-B SHET NJAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6869"},92266:{"value":"1686A","name":"BAMUM LETTER PHASE-B SHEUAEQTU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u686A"},92267:{"value":"1686B","name":"BAMUM LETTER PHASE-B MFON TEUAEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u686B"},92268:{"value":"1686C","name":"BAMUM LETTER PHASE-B MBIT MBAAKET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u686C"},92269:{"value":"1686D","name":"BAMUM LETTER PHASE-B NYI NTEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u686D"},92270:{"value":"1686E","name":"BAMUM LETTER PHASE-B KEUPUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u686E"},92271:{"value":"1686F","name":"BAMUM LETTER PHASE-B GHEUGHEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u686F"},92272:{"value":"16870","name":"BAMUM LETTER PHASE-B KEUYEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6870"},92273:{"value":"16871","name":"BAMUM LETTER PHASE-B LAANAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6871"},92274:{"value":"16872","name":"BAMUM LETTER PHASE-B PARUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6872"},92275:{"value":"16873","name":"BAMUM LETTER PHASE-B VEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6873"},92276:{"value":"16874","name":"BAMUM LETTER PHASE-B NGKINDI MVOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6874"},92277:{"value":"16875","name":"BAMUM LETTER PHASE-B NGGEU MBU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6875"},92278:{"value":"16876","name":"BAMUM LETTER PHASE-B WUAET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6876"},92279:{"value":"16877","name":"BAMUM LETTER PHASE-B SAKEUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6877"},92280:{"value":"16878","name":"BAMUM LETTER PHASE-B TAAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6878"},92281:{"value":"16879","name":"BAMUM LETTER PHASE-B MEUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6879"},92282:{"value":"1687A","name":"BAMUM LETTER PHASE-B NGGUOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u687A"},92283:{"value":"1687B","name":"BAMUM LETTER PHASE-B NGGUOQ LARGE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u687B"},92284:{"value":"1687C","name":"BAMUM LETTER PHASE-B MFIYAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u687C"},92285:{"value":"1687D","name":"BAMUM LETTER PHASE-B SUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u687D"},92286:{"value":"1687E","name":"BAMUM LETTER PHASE-B MBEURI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u687E"},92287:{"value":"1687F","name":"BAMUM LETTER PHASE-B MONTIEEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u687F"},92288:{"value":"16880","name":"BAMUM LETTER PHASE-B NYAEMAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6880"},92289:{"value":"16881","name":"BAMUM LETTER PHASE-B PUNGAAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6881"},92290:{"value":"16882","name":"BAMUM LETTER PHASE-B MEUT NGGEET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6882"},92291:{"value":"16883","name":"BAMUM LETTER PHASE-B FEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6883"},92292:{"value":"16884","name":"BAMUM LETTER PHASE-B MBUOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6884"},92293:{"value":"16885","name":"BAMUM LETTER PHASE-B FEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6885"},92294:{"value":"16886","name":"BAMUM LETTER PHASE-B KEUAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6886"},92295:{"value":"16887","name":"BAMUM LETTER PHASE-B MA NJEUAENA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6887"},92296:{"value":"16888","name":"BAMUM LETTER PHASE-B MA NJUQA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6888"},92297:{"value":"16889","name":"BAMUM LETTER PHASE-B LET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6889"},92298:{"value":"1688A","name":"BAMUM LETTER PHASE-B NGGAAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u688A"},92299:{"value":"1688B","name":"BAMUM LETTER PHASE-B NSEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u688B"},92300:{"value":"1688C","name":"BAMUM LETTER PHASE-B MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u688C"},92301:{"value":"1688D","name":"BAMUM LETTER PHASE-B KIQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u688D"},92302:{"value":"1688E","name":"BAMUM LETTER PHASE-B NGOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u688E"},92303:{"value":"1688F","name":"BAMUM LETTER PHASE-C NGKUE MAEMBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u688F"},92304:{"value":"16890","name":"BAMUM LETTER PHASE-C NZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6890"},92305:{"value":"16891","name":"BAMUM LETTER PHASE-C YUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6891"},92306:{"value":"16892","name":"BAMUM LETTER PHASE-C WANGKUOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6892"},92307:{"value":"16893","name":"BAMUM LETTER PHASE-C NGGEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6893"},92308:{"value":"16894","name":"BAMUM LETTER PHASE-C NDEUAEREE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6894"},92309:{"value":"16895","name":"BAMUM LETTER PHASE-C NGKAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6895"},92310:{"value":"16896","name":"BAMUM LETTER PHASE-C GHARAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6896"},92311:{"value":"16897","name":"BAMUM LETTER PHASE-C MBEEKEET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6897"},92312:{"value":"16898","name":"BAMUM LETTER PHASE-C GBAYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6898"},92313:{"value":"16899","name":"BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6899"},92314:{"value":"1689A","name":"BAMUM LETTER PHASE-C NTU MBIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u689A"},92315:{"value":"1689B","name":"BAMUM LETTER PHASE-C MBEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u689B"},92316:{"value":"1689C","name":"BAMUM LETTER PHASE-C PIRIEEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u689C"},92317:{"value":"1689D","name":"BAMUM LETTER PHASE-C NDOMBU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u689D"},92318:{"value":"1689E","name":"BAMUM LETTER PHASE-C MBAA CABBAGE-TREE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u689E"},92319:{"value":"1689F","name":"BAMUM LETTER PHASE-C KEUSHEUAEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u689F"},92320:{"value":"168A0","name":"BAMUM LETTER PHASE-C GHAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68A0"},92321:{"value":"168A1","name":"BAMUM LETTER PHASE-C KEUKAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68A1"},92322:{"value":"168A2","name":"BAMUM LETTER PHASE-C YU MUOMAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68A2"},92323:{"value":"168A3","name":"BAMUM LETTER PHASE-C NZEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68A3"},92324:{"value":"168A4","name":"BAMUM LETTER PHASE-C MBUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68A4"},92325:{"value":"168A5","name":"BAMUM LETTER PHASE-C NSEUAEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68A5"},92326:{"value":"168A6","name":"BAMUM LETTER PHASE-C MBIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68A6"},92327:{"value":"168A7","name":"BAMUM LETTER PHASE-C YEUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68A7"},92328:{"value":"168A8","name":"BAMUM LETTER PHASE-C KPARAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68A8"},92329:{"value":"168A9","name":"BAMUM LETTER PHASE-C KAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68A9"},92330:{"value":"168AA","name":"BAMUM LETTER PHASE-C SEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68AA"},92331:{"value":"168AB","name":"BAMUM LETTER PHASE-C NDIDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68AB"},92332:{"value":"168AC","name":"BAMUM LETTER PHASE-C TAASHAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68AC"},92333:{"value":"168AD","name":"BAMUM LETTER PHASE-C NJUEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68AD"},92334:{"value":"168AE","name":"BAMUM LETTER PHASE-C TITA YUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68AE"},92335:{"value":"168AF","name":"BAMUM LETTER PHASE-C SUAET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68AF"},92336:{"value":"168B0","name":"BAMUM LETTER PHASE-C NGGUAEN NYAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68B0"},92337:{"value":"168B1","name":"BAMUM LETTER PHASE-C VEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68B1"},92338:{"value":"168B2","name":"BAMUM LETTER PHASE-C NANSANAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68B2"},92339:{"value":"168B3","name":"BAMUM LETTER PHASE-C MA KEUAERI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68B3"},92340:{"value":"168B4","name":"BAMUM LETTER PHASE-C NTAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68B4"},92341:{"value":"168B5","name":"BAMUM LETTER PHASE-C NGGUON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68B5"},92342:{"value":"168B6","name":"BAMUM LETTER PHASE-C LAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68B6"},92343:{"value":"168B7","name":"BAMUM LETTER PHASE-C MBIRIEEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68B7"},92344:{"value":"168B8","name":"BAMUM LETTER PHASE-C MGBASAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68B8"},92345:{"value":"168B9","name":"BAMUM LETTER PHASE-C NTEUNGBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68B9"},92346:{"value":"168BA","name":"BAMUM LETTER PHASE-C TEUTEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68BA"},92347:{"value":"168BB","name":"BAMUM LETTER PHASE-C NGGUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68BB"},92348:{"value":"168BC","name":"BAMUM LETTER PHASE-C FUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68BC"},92349:{"value":"168BD","name":"BAMUM LETTER PHASE-C NDEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68BD"},92350:{"value":"168BE","name":"BAMUM LETTER PHASE-C NSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68BE"},92351:{"value":"168BF","name":"BAMUM LETTER PHASE-C NSHAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68BF"},92352:{"value":"168C0","name":"BAMUM LETTER PHASE-C BUNG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68C0"},92353:{"value":"168C1","name":"BAMUM LETTER PHASE-C VEUAEPEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68C1"},92354:{"value":"168C2","name":"BAMUM LETTER PHASE-C MBERAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68C2"},92355:{"value":"168C3","name":"BAMUM LETTER PHASE-C RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68C3"},92356:{"value":"168C4","name":"BAMUM LETTER PHASE-C NJAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68C4"},92357:{"value":"168C5","name":"BAMUM LETTER PHASE-C LAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68C5"},92358:{"value":"168C6","name":"BAMUM LETTER PHASE-C TITUAEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68C6"},92359:{"value":"168C7","name":"BAMUM LETTER PHASE-C NSUOT NGOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68C7"},92360:{"value":"168C8","name":"BAMUM LETTER PHASE-C NJEEEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68C8"},92361:{"value":"168C9","name":"BAMUM LETTER PHASE-C KET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68C9"},92362:{"value":"168CA","name":"BAMUM LETTER PHASE-C NGGU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68CA"},92363:{"value":"168CB","name":"BAMUM LETTER PHASE-C MAESI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68CB"},92364:{"value":"168CC","name":"BAMUM LETTER PHASE-C MBUAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68CC"},92365:{"value":"168CD","name":"BAMUM LETTER PHASE-C LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68CD"},92366:{"value":"168CE","name":"BAMUM LETTER PHASE-C KUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68CE"},92367:{"value":"168CF","name":"BAMUM LETTER PHASE-C NJAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68CF"},92368:{"value":"168D0","name":"BAMUM LETTER PHASE-C NGOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68D0"},92369:{"value":"168D1","name":"BAMUM LETTER PHASE-C WUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68D1"},92370:{"value":"168D2","name":"BAMUM LETTER PHASE-C NGGUEET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68D2"},92371:{"value":"168D3","name":"BAMUM LETTER PHASE-C NSOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68D3"},92372:{"value":"168D4","name":"BAMUM LETTER PHASE-C NTEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68D4"},92373:{"value":"168D5","name":"BAMUM LETTER PHASE-C KUOP NKAARAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68D5"},92374:{"value":"168D6","name":"BAMUM LETTER PHASE-C NSUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68D6"},92375:{"value":"168D7","name":"BAMUM LETTER PHASE-C NDAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68D7"},92376:{"value":"168D8","name":"BAMUM LETTER PHASE-C MA NSIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68D8"},92377:{"value":"168D9","name":"BAMUM LETTER PHASE-C YAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68D9"},92378:{"value":"168DA","name":"BAMUM LETTER PHASE-C NDAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68DA"},92379:{"value":"168DB","name":"BAMUM LETTER PHASE-C SHUEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68DB"},92380:{"value":"168DC","name":"BAMUM LETTER PHASE-C SETFON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68DC"},92381:{"value":"168DD","name":"BAMUM LETTER PHASE-C MBI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68DD"},92382:{"value":"168DE","name":"BAMUM LETTER PHASE-C MAEMBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68DE"},92383:{"value":"168DF","name":"BAMUM LETTER PHASE-C MBANYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68DF"},92384:{"value":"168E0","name":"BAMUM LETTER PHASE-C KEUSEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68E0"},92385:{"value":"168E1","name":"BAMUM LETTER PHASE-C MBEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68E1"},92386:{"value":"168E2","name":"BAMUM LETTER PHASE-C KEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68E2"},92387:{"value":"168E3","name":"BAMUM LETTER PHASE-C MBAA PICKET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68E3"},92388:{"value":"168E4","name":"BAMUM LETTER PHASE-C YUWOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68E4"},92389:{"value":"168E5","name":"BAMUM LETTER PHASE-C NJEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68E5"},92390:{"value":"168E6","name":"BAMUM LETTER PHASE-C MIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68E6"},92391:{"value":"168E7","name":"BAMUM LETTER PHASE-C MUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68E7"},92392:{"value":"168E8","name":"BAMUM LETTER PHASE-C SHIQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68E8"},92393:{"value":"168E9","name":"BAMUM LETTER PHASE-C KEN LAW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68E9"},92394:{"value":"168EA","name":"BAMUM LETTER PHASE-C KEN FATIGUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68EA"},92395:{"value":"168EB","name":"BAMUM LETTER PHASE-C NGAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68EB"},92396:{"value":"168EC","name":"BAMUM LETTER PHASE-C NAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68EC"},92397:{"value":"168ED","name":"BAMUM LETTER PHASE-C LIQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68ED"},92398:{"value":"168EE","name":"BAMUM LETTER PHASE-C PIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68EE"},92399:{"value":"168EF","name":"BAMUM LETTER PHASE-C PEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68EF"},92400:{"value":"168F0","name":"BAMUM LETTER PHASE-C TET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68F0"},92401:{"value":"168F1","name":"BAMUM LETTER PHASE-D MBUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68F1"},92402:{"value":"168F2","name":"BAMUM LETTER PHASE-D WAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68F2"},92403:{"value":"168F3","name":"BAMUM LETTER PHASE-D NJI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68F3"},92404:{"value":"168F4","name":"BAMUM LETTER PHASE-D MFON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68F4"},92405:{"value":"168F5","name":"BAMUM LETTER PHASE-D NJIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68F5"},92406:{"value":"168F6","name":"BAMUM LETTER PHASE-D LIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68F6"},92407:{"value":"168F7","name":"BAMUM LETTER PHASE-D NJEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68F7"},92408:{"value":"168F8","name":"BAMUM LETTER PHASE-D NSHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68F8"},92409:{"value":"168F9","name":"BAMUM LETTER PHASE-D NGGAAMAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68F9"},92410:{"value":"168FA","name":"BAMUM LETTER PHASE-D NYAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68FA"},92411:{"value":"168FB","name":"BAMUM LETTER PHASE-D WUAEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68FB"},92412:{"value":"168FC","name":"BAMUM LETTER PHASE-D NGKUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68FC"},92413:{"value":"168FD","name":"BAMUM LETTER PHASE-D SHEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68FD"},92414:{"value":"168FE","name":"BAMUM LETTER PHASE-D NGKAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68FE"},92415:{"value":"168FF","name":"BAMUM LETTER PHASE-D KEUAETMEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u68FF"},92416:{"value":"16900","name":"BAMUM LETTER PHASE-D TEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6900"},92417:{"value":"16901","name":"BAMUM LETTER PHASE-D SHEUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6901"},92418:{"value":"16902","name":"BAMUM LETTER PHASE-D NJAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6902"},92419:{"value":"16903","name":"BAMUM LETTER PHASE-D SUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6903"},92420:{"value":"16904","name":"BAMUM LETTER PHASE-D KET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6904"},92421:{"value":"16905","name":"BAMUM LETTER PHASE-D YAEMMAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6905"},92422:{"value":"16906","name":"BAMUM LETTER PHASE-D KUOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6906"},92423:{"value":"16907","name":"BAMUM LETTER PHASE-D SAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6907"},92424:{"value":"16908","name":"BAMUM LETTER PHASE-D MFEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6908"},92425:{"value":"16909","name":"BAMUM LETTER PHASE-D NDEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6909"},92426:{"value":"1690A","name":"BAMUM LETTER PHASE-D MALEERI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u690A"},92427:{"value":"1690B","name":"BAMUM LETTER PHASE-D MEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u690B"},92428:{"value":"1690C","name":"BAMUM LETTER PHASE-D SEUAEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u690C"},92429:{"value":"1690D","name":"BAMUM LETTER PHASE-D YEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u690D"},92430:{"value":"1690E","name":"BAMUM LETTER PHASE-D NJEUAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u690E"},92431:{"value":"1690F","name":"BAMUM LETTER PHASE-D KEUOT MBUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u690F"},92432:{"value":"16910","name":"BAMUM LETTER PHASE-D NGKEURI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6910"},92433:{"value":"16911","name":"BAMUM LETTER PHASE-D TU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6911"},92434:{"value":"16912","name":"BAMUM LETTER PHASE-D GHAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6912"},92435:{"value":"16913","name":"BAMUM LETTER PHASE-D NGKYEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6913"},92436:{"value":"16914","name":"BAMUM LETTER PHASE-D FEUFEUAET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6914"},92437:{"value":"16915","name":"BAMUM LETTER PHASE-D NDEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6915"},92438:{"value":"16916","name":"BAMUM LETTER PHASE-D MGBOFUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6916"},92439:{"value":"16917","name":"BAMUM LETTER PHASE-D LEUAEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6917"},92440:{"value":"16918","name":"BAMUM LETTER PHASE-D NDON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6918"},92441:{"value":"16919","name":"BAMUM LETTER PHASE-D MONI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6919"},92442:{"value":"1691A","name":"BAMUM LETTER PHASE-D MGBEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u691A"},92443:{"value":"1691B","name":"BAMUM LETTER PHASE-D PUUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u691B"},92444:{"value":"1691C","name":"BAMUM LETTER PHASE-D MGBIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u691C"},92445:{"value":"1691D","name":"BAMUM LETTER PHASE-D MFO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u691D"},92446:{"value":"1691E","name":"BAMUM LETTER PHASE-D LUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u691E"},92447:{"value":"1691F","name":"BAMUM LETTER PHASE-D NSIEEP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u691F"},92448:{"value":"16920","name":"BAMUM LETTER PHASE-D MBAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6920"},92449:{"value":"16921","name":"BAMUM LETTER PHASE-D KWAET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6921"},92450:{"value":"16922","name":"BAMUM LETTER PHASE-D NYET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6922"},92451:{"value":"16923","name":"BAMUM LETTER PHASE-D TEUAEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6923"},92452:{"value":"16924","name":"BAMUM LETTER PHASE-D SOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6924"},92453:{"value":"16925","name":"BAMUM LETTER PHASE-D YUWOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6925"},92454:{"value":"16926","name":"BAMUM LETTER PHASE-D KEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6926"},92455:{"value":"16927","name":"BAMUM LETTER PHASE-D RAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6927"},92456:{"value":"16928","name":"BAMUM LETTER PHASE-D TEEEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6928"},92457:{"value":"16929","name":"BAMUM LETTER PHASE-D NGKEUAEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6929"},92458:{"value":"1692A","name":"BAMUM LETTER PHASE-D MFEUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u692A"},92459:{"value":"1692B","name":"BAMUM LETTER PHASE-D NSIEET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u692B"},92460:{"value":"1692C","name":"BAMUM LETTER PHASE-D KEUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u692C"},92461:{"value":"1692D","name":"BAMUM LETTER PHASE-D PIP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u692D"},92462:{"value":"1692E","name":"BAMUM LETTER PHASE-D PEUTAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u692E"},92463:{"value":"1692F","name":"BAMUM LETTER PHASE-D NYUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u692F"},92464:{"value":"16930","name":"BAMUM LETTER PHASE-D LET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6930"},92465:{"value":"16931","name":"BAMUM LETTER PHASE-D NGGAAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6931"},92466:{"value":"16932","name":"BAMUM LETTER PHASE-D MFIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6932"},92467:{"value":"16933","name":"BAMUM LETTER PHASE-D NGGWAEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6933"},92468:{"value":"16934","name":"BAMUM LETTER PHASE-D YUOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6934"},92469:{"value":"16935","name":"BAMUM LETTER PHASE-D PAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6935"},92470:{"value":"16936","name":"BAMUM LETTER PHASE-D YUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6936"},92471:{"value":"16937","name":"BAMUM LETTER PHASE-D NDAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6937"},92472:{"value":"16938","name":"BAMUM LETTER PHASE-D NTEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6938"},92473:{"value":"16939","name":"BAMUM LETTER PHASE-D SUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6939"},92474:{"value":"1693A","name":"BAMUM LETTER PHASE-D KUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u693A"},92475:{"value":"1693B","name":"BAMUM LETTER PHASE-D NGGEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u693B"},92476:{"value":"1693C","name":"BAMUM LETTER PHASE-D NGKIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u693C"},92477:{"value":"1693D","name":"BAMUM LETTER PHASE-D TUOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u693D"},92478:{"value":"1693E","name":"BAMUM LETTER PHASE-D MEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u693E"},92479:{"value":"1693F","name":"BAMUM LETTER PHASE-D KUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u693F"},92480:{"value":"16940","name":"BAMUM LETTER PHASE-D NSUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6940"},92481:{"value":"16941","name":"BAMUM LETTER PHASE-D TEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6941"},92482:{"value":"16942","name":"BAMUM LETTER PHASE-D MAENJET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6942"},92483:{"value":"16943","name":"BAMUM LETTER PHASE-D NGGAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6943"},92484:{"value":"16944","name":"BAMUM LETTER PHASE-D LEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6944"},92485:{"value":"16945","name":"BAMUM LETTER PHASE-D NGGUOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6945"},92486:{"value":"16946","name":"BAMUM LETTER PHASE-D NSHUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6946"},92487:{"value":"16947","name":"BAMUM LETTER PHASE-D NJUEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6947"},92488:{"value":"16948","name":"BAMUM LETTER PHASE-D GHEUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6948"},92489:{"value":"16949","name":"BAMUM LETTER PHASE-D KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6949"},92490:{"value":"1694A","name":"BAMUM LETTER PHASE-D REN OLD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u694A"},92491:{"value":"1694B","name":"BAMUM LETTER PHASE-D TAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u694B"},92492:{"value":"1694C","name":"BAMUM LETTER PHASE-D TOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u694C"},92493:{"value":"1694D","name":"BAMUM LETTER PHASE-D NYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u694D"},92494:{"value":"1694E","name":"BAMUM LETTER PHASE-D RII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u694E"},92495:{"value":"1694F","name":"BAMUM LETTER PHASE-D LEEEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u694F"},92496:{"value":"16950","name":"BAMUM LETTER PHASE-D MEEEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6950"},92497:{"value":"16951","name":"BAMUM LETTER PHASE-D M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6951"},92498:{"value":"16952","name":"BAMUM LETTER PHASE-D SUU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6952"},92499:{"value":"16953","name":"BAMUM LETTER PHASE-D MU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6953"},92500:{"value":"16954","name":"BAMUM LETTER PHASE-D SHII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6954"},92501:{"value":"16955","name":"BAMUM LETTER PHASE-D SHEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6955"},92502:{"value":"16956","name":"BAMUM LETTER PHASE-D KYEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6956"},92503:{"value":"16957","name":"BAMUM LETTER PHASE-D NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6957"},92504:{"value":"16958","name":"BAMUM LETTER PHASE-D SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6958"},92505:{"value":"16959","name":"BAMUM LETTER PHASE-D NTEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6959"},92506:{"value":"1695A","name":"BAMUM LETTER PHASE-D PEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u695A"},92507:{"value":"1695B","name":"BAMUM LETTER PHASE-D NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u695B"},92508:{"value":"1695C","name":"BAMUM LETTER PHASE-D SHOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u695C"},92509:{"value":"1695D","name":"BAMUM LETTER PHASE-D PUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u695D"},92510:{"value":"1695E","name":"BAMUM LETTER PHASE-D MVOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u695E"},92511:{"value":"1695F","name":"BAMUM LETTER PHASE-D LOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u695F"},92512:{"value":"16960","name":"BAMUM LETTER PHASE-D REN MUCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6960"},92513:{"value":"16961","name":"BAMUM LETTER PHASE-D TI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6961"},92514:{"value":"16962","name":"BAMUM LETTER PHASE-D NTUU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6962"},92515:{"value":"16963","name":"BAMUM LETTER PHASE-D MBAA SEVEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6963"},92516:{"value":"16964","name":"BAMUM LETTER PHASE-D SAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6964"},92517:{"value":"16965","name":"BAMUM LETTER PHASE-D FAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6965"},92518:{"value":"16966","name":"BAMUM LETTER PHASE-E NDAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6966"},92519:{"value":"16967","name":"BAMUM LETTER PHASE-E TOON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6967"},92520:{"value":"16968","name":"BAMUM LETTER PHASE-E MBEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6968"},92521:{"value":"16969","name":"BAMUM LETTER PHASE-E LAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6969"},92522:{"value":"1696A","name":"BAMUM LETTER PHASE-E VOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u696A"},92523:{"value":"1696B","name":"BAMUM LETTER PHASE-E LOON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u696B"},92524:{"value":"1696C","name":"BAMUM LETTER PHASE-E PAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u696C"},92525:{"value":"1696D","name":"BAMUM LETTER PHASE-E SOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u696D"},92526:{"value":"1696E","name":"BAMUM LETTER PHASE-E RAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u696E"},92527:{"value":"1696F","name":"BAMUM LETTER PHASE-E NSHUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u696F"},92528:{"value":"16970","name":"BAMUM LETTER PHASE-E NDUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6970"},92529:{"value":"16971","name":"BAMUM LETTER PHASE-E PUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6971"},92530:{"value":"16972","name":"BAMUM LETTER PHASE-E TAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6972"},92531:{"value":"16973","name":"BAMUM LETTER PHASE-E NGKA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6973"},92532:{"value":"16974","name":"BAMUM LETTER PHASE-E KPEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6974"},92533:{"value":"16975","name":"BAMUM LETTER PHASE-E WUO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6975"},92534:{"value":"16976","name":"BAMUM LETTER PHASE-E SEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6976"},92535:{"value":"16977","name":"BAMUM LETTER PHASE-E NGGEUAET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6977"},92536:{"value":"16978","name":"BAMUM LETTER PHASE-E PAAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6978"},92537:{"value":"16979","name":"BAMUM LETTER PHASE-E TOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6979"},92538:{"value":"1697A","name":"BAMUM LETTER PHASE-E KUOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u697A"},92539:{"value":"1697B","name":"BAMUM LETTER PHASE-E LOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u697B"},92540:{"value":"1697C","name":"BAMUM LETTER PHASE-E NSHIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u697C"},92541:{"value":"1697D","name":"BAMUM LETTER PHASE-E NGOP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u697D"},92542:{"value":"1697E","name":"BAMUM LETTER PHASE-E MAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u697E"},92543:{"value":"1697F","name":"BAMUM LETTER PHASE-E NGKEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u697F"},92544:{"value":"16980","name":"BAMUM LETTER PHASE-E NGOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6980"},92545:{"value":"16981","name":"BAMUM LETTER PHASE-E NSHUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6981"},92546:{"value":"16982","name":"BAMUM LETTER PHASE-E RIMGBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6982"},92547:{"value":"16983","name":"BAMUM LETTER PHASE-E NJEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6983"},92548:{"value":"16984","name":"BAMUM LETTER PHASE-E PEEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6984"},92549:{"value":"16985","name":"BAMUM LETTER PHASE-E SAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6985"},92550:{"value":"16986","name":"BAMUM LETTER PHASE-E NGGURAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6986"},92551:{"value":"16987","name":"BAMUM LETTER PHASE-E MGBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6987"},92552:{"value":"16988","name":"BAMUM LETTER PHASE-E GHEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6988"},92553:{"value":"16989","name":"BAMUM LETTER PHASE-E NGKEUAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6989"},92554:{"value":"1698A","name":"BAMUM LETTER PHASE-E NJAEMLI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u698A"},92555:{"value":"1698B","name":"BAMUM LETTER PHASE-E MAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u698B"},92556:{"value":"1698C","name":"BAMUM LETTER PHASE-E LOOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u698C"},92557:{"value":"1698D","name":"BAMUM LETTER PHASE-E NGGEEEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u698D"},92558:{"value":"1698E","name":"BAMUM LETTER PHASE-E NDIQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u698E"},92559:{"value":"1698F","name":"BAMUM LETTER PHASE-E TAEN NTEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u698F"},92560:{"value":"16990","name":"BAMUM LETTER PHASE-E SET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6990"},92561:{"value":"16991","name":"BAMUM LETTER PHASE-E PUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6991"},92562:{"value":"16992","name":"BAMUM LETTER PHASE-E NDAA SOFTNESS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6992"},92563:{"value":"16993","name":"BAMUM LETTER PHASE-E NGGUAESHAE NYAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6993"},92564:{"value":"16994","name":"BAMUM LETTER PHASE-E YIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6994"},92565:{"value":"16995","name":"BAMUM LETTER PHASE-E GHEUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6995"},92566:{"value":"16996","name":"BAMUM LETTER PHASE-E TUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6996"},92567:{"value":"16997","name":"BAMUM LETTER PHASE-E YEUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6997"},92568:{"value":"16998","name":"BAMUM LETTER PHASE-E PO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6998"},92569:{"value":"16999","name":"BAMUM LETTER PHASE-E TUMAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6999"},92570:{"value":"1699A","name":"BAMUM LETTER PHASE-E KEUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u699A"},92571:{"value":"1699B","name":"BAMUM LETTER PHASE-E SUAEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u699B"},92572:{"value":"1699C","name":"BAMUM LETTER PHASE-E TEUAEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u699C"},92573:{"value":"1699D","name":"BAMUM LETTER PHASE-E VEUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u699D"},92574:{"value":"1699E","name":"BAMUM LETTER PHASE-E WEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u699E"},92575:{"value":"1699F","name":"BAMUM LETTER PHASE-E LAAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u699F"},92576:{"value":"169A0","name":"BAMUM LETTER PHASE-E PU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69A0"},92577:{"value":"169A1","name":"BAMUM LETTER PHASE-E TAAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69A1"},92578:{"value":"169A2","name":"BAMUM LETTER PHASE-E GHAAMAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69A2"},92579:{"value":"169A3","name":"BAMUM LETTER PHASE-E NGEUREUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69A3"},92580:{"value":"169A4","name":"BAMUM LETTER PHASE-E SHEUAEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69A4"},92581:{"value":"169A5","name":"BAMUM LETTER PHASE-E MGBEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69A5"},92582:{"value":"169A6","name":"BAMUM LETTER PHASE-E MBEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69A6"},92583:{"value":"169A7","name":"BAMUM LETTER PHASE-E NZAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69A7"},92584:{"value":"169A8","name":"BAMUM LETTER PHASE-E NKOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69A8"},92585:{"value":"169A9","name":"BAMUM LETTER PHASE-E GBET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69A9"},92586:{"value":"169AA","name":"BAMUM LETTER PHASE-E TUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69AA"},92587:{"value":"169AB","name":"BAMUM LETTER PHASE-E KUET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69AB"},92588:{"value":"169AC","name":"BAMUM LETTER PHASE-E YAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69AC"},92589:{"value":"169AD","name":"BAMUM LETTER PHASE-E NYI CLEAVER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69AD"},92590:{"value":"169AE","name":"BAMUM LETTER PHASE-E YIT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69AE"},92591:{"value":"169AF","name":"BAMUM LETTER PHASE-E MFEUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69AF"},92592:{"value":"169B0","name":"BAMUM LETTER PHASE-E NDIAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69B0"},92593:{"value":"169B1","name":"BAMUM LETTER PHASE-E PIEEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69B1"},92594:{"value":"169B2","name":"BAMUM LETTER PHASE-E YUEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69B2"},92595:{"value":"169B3","name":"BAMUM LETTER PHASE-E LEUAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69B3"},92596:{"value":"169B4","name":"BAMUM LETTER PHASE-E FUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69B4"},92597:{"value":"169B5","name":"BAMUM LETTER PHASE-E GBEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69B5"},92598:{"value":"169B6","name":"BAMUM LETTER PHASE-E NGKUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69B6"},92599:{"value":"169B7","name":"BAMUM LETTER PHASE-E KET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69B7"},92600:{"value":"169B8","name":"BAMUM LETTER PHASE-E MAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69B8"},92601:{"value":"169B9","name":"BAMUM LETTER PHASE-E NGKAAMI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69B9"},92602:{"value":"169BA","name":"BAMUM LETTER PHASE-E GHET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69BA"},92603:{"value":"169BB","name":"BAMUM LETTER PHASE-E FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69BB"},92604:{"value":"169BC","name":"BAMUM LETTER PHASE-E NTUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69BC"},92605:{"value":"169BD","name":"BAMUM LETTER PHASE-E PEUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69BD"},92606:{"value":"169BE","name":"BAMUM LETTER PHASE-E YEUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69BE"},92607:{"value":"169BF","name":"BAMUM LETTER PHASE-E NGGEUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69BF"},92608:{"value":"169C0","name":"BAMUM LETTER PHASE-E NYI BETWEEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69C0"},92609:{"value":"169C1","name":"BAMUM LETTER PHASE-E NZUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69C1"},92610:{"value":"169C2","name":"BAMUM LETTER PHASE-E POON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69C2"},92611:{"value":"169C3","name":"BAMUM LETTER PHASE-E MIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69C3"},92612:{"value":"169C4","name":"BAMUM LETTER PHASE-E FUET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69C4"},92613:{"value":"169C5","name":"BAMUM LETTER PHASE-E NAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69C5"},92614:{"value":"169C6","name":"BAMUM LETTER PHASE-E MUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69C6"},92615:{"value":"169C7","name":"BAMUM LETTER PHASE-E GHEUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69C7"},92616:{"value":"169C8","name":"BAMUM LETTER PHASE-E FU I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69C8"},92617:{"value":"169C9","name":"BAMUM LETTER PHASE-E MVI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69C9"},92618:{"value":"169CA","name":"BAMUM LETTER PHASE-E PUAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69CA"},92619:{"value":"169CB","name":"BAMUM LETTER PHASE-E NGKUM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69CB"},92620:{"value":"169CC","name":"BAMUM LETTER PHASE-E KUT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69CC"},92621:{"value":"169CD","name":"BAMUM LETTER PHASE-E PIET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69CD"},92622:{"value":"169CE","name":"BAMUM LETTER PHASE-E NTAP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69CE"},92623:{"value":"169CF","name":"BAMUM LETTER PHASE-E YEUAET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69CF"},92624:{"value":"169D0","name":"BAMUM LETTER PHASE-E NGGUP","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69D0"},92625:{"value":"169D1","name":"BAMUM LETTER PHASE-E PA PEOPLE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69D1"},92626:{"value":"169D2","name":"BAMUM LETTER PHASE-E FU CALL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69D2"},92627:{"value":"169D3","name":"BAMUM LETTER PHASE-E FOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69D3"},92628:{"value":"169D4","name":"BAMUM LETTER PHASE-E NJEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69D4"},92629:{"value":"169D5","name":"BAMUM LETTER PHASE-E A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69D5"},92630:{"value":"169D6","name":"BAMUM LETTER PHASE-E TOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69D6"},92631:{"value":"169D7","name":"BAMUM LETTER PHASE-E O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69D7"},92632:{"value":"169D8","name":"BAMUM LETTER PHASE-E I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69D8"},92633:{"value":"169D9","name":"BAMUM LETTER PHASE-E LAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69D9"},92634:{"value":"169DA","name":"BAMUM LETTER PHASE-E PA PLURAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69DA"},92635:{"value":"169DB","name":"BAMUM LETTER PHASE-E TAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69DB"},92636:{"value":"169DC","name":"BAMUM LETTER PHASE-E TAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69DC"},92637:{"value":"169DD","name":"BAMUM LETTER PHASE-E NDAA MY HOUSE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69DD"},92638:{"value":"169DE","name":"BAMUM LETTER PHASE-E SHIQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69DE"},92639:{"value":"169DF","name":"BAMUM LETTER PHASE-E YEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69DF"},92640:{"value":"169E0","name":"BAMUM LETTER PHASE-E NGUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69E0"},92641:{"value":"169E1","name":"BAMUM LETTER PHASE-E YUAEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69E1"},92642:{"value":"169E2","name":"BAMUM LETTER PHASE-E YOQ SWIMMING","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69E2"},92643:{"value":"169E3","name":"BAMUM LETTER PHASE-E YOQ COVER","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69E3"},92644:{"value":"169E4","name":"BAMUM LETTER PHASE-E YUQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69E4"},92645:{"value":"169E5","name":"BAMUM LETTER PHASE-E YUN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69E5"},92646:{"value":"169E6","name":"BAMUM LETTER PHASE-E KEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69E6"},92647:{"value":"169E7","name":"BAMUM LETTER PHASE-E PEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69E7"},92648:{"value":"169E8","name":"BAMUM LETTER PHASE-E NJEE EPOCH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69E8"},92649:{"value":"169E9","name":"BAMUM LETTER PHASE-E PUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69E9"},92650:{"value":"169EA","name":"BAMUM LETTER PHASE-E WUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69EA"},92651:{"value":"169EB","name":"BAMUM LETTER PHASE-E FEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69EB"},92652:{"value":"169EC","name":"BAMUM LETTER PHASE-E VEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69EC"},92653:{"value":"169ED","name":"BAMUM LETTER PHASE-E LU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69ED"},92654:{"value":"169EE","name":"BAMUM LETTER PHASE-E MI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69EE"},92655:{"value":"169EF","name":"BAMUM LETTER PHASE-E REUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69EF"},92656:{"value":"169F0","name":"BAMUM LETTER PHASE-E RAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69F0"},92657:{"value":"169F1","name":"BAMUM LETTER PHASE-E NGUAET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69F1"},92658:{"value":"169F2","name":"BAMUM LETTER PHASE-E NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69F2"},92659:{"value":"169F3","name":"BAMUM LETTER PHASE-E SHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69F3"},92660:{"value":"169F4","name":"BAMUM LETTER PHASE-E SHOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69F4"},92661:{"value":"169F5","name":"BAMUM LETTER PHASE-E FU REMEDY","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69F5"},92662:{"value":"169F6","name":"BAMUM LETTER PHASE-E NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69F6"},92663:{"value":"169F7","name":"BAMUM LETTER PHASE-E PI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69F7"},92664:{"value":"169F8","name":"BAMUM LETTER PHASE-E LOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69F8"},92665:{"value":"169F9","name":"BAMUM LETTER PHASE-E KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69F9"},92666:{"value":"169FA","name":"BAMUM LETTER PHASE-E MEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69FA"},92667:{"value":"169FB","name":"BAMUM LETTER PHASE-E MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69FB"},92668:{"value":"169FC","name":"BAMUM LETTER PHASE-E MAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69FC"},92669:{"value":"169FD","name":"BAMUM LETTER PHASE-E TEU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69FD"},92670:{"value":"169FE","name":"BAMUM LETTER PHASE-E KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69FE"},92671:{"value":"169FF","name":"BAMUM LETTER PHASE-E MON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u69FF"},92672:{"value":"16A00","name":"BAMUM LETTER PHASE-E TEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A00"},92673:{"value":"16A01","name":"BAMUM LETTER PHASE-E FAQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A01"},92674:{"value":"16A02","name":"BAMUM LETTER PHASE-E GHOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A02"},92675:{"value":"16A03","name":"BAMUM LETTER PHASE-F KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A03"},92676:{"value":"16A04","name":"BAMUM LETTER PHASE-F U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A04"},92677:{"value":"16A05","name":"BAMUM LETTER PHASE-F KU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A05"},92678:{"value":"16A06","name":"BAMUM LETTER PHASE-F EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A06"},92679:{"value":"16A07","name":"BAMUM LETTER PHASE-F REE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A07"},92680:{"value":"16A08","name":"BAMUM LETTER PHASE-F TAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A08"},92681:{"value":"16A09","name":"BAMUM LETTER PHASE-F NYI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A09"},92682:{"value":"16A0A","name":"BAMUM LETTER PHASE-F LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A0A"},92683:{"value":"16A0B","name":"BAMUM LETTER PHASE-F RII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A0B"},92684:{"value":"16A0C","name":"BAMUM LETTER PHASE-F RIEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A0C"},92685:{"value":"16A0D","name":"BAMUM LETTER PHASE-F MEEEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A0D"},92686:{"value":"16A0E","name":"BAMUM LETTER PHASE-F TAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A0E"},92687:{"value":"16A0F","name":"BAMUM LETTER PHASE-F NDAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A0F"},92688:{"value":"16A10","name":"BAMUM LETTER PHASE-F NJAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A10"},92689:{"value":"16A11","name":"BAMUM LETTER PHASE-F M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A11"},92690:{"value":"16A12","name":"BAMUM LETTER PHASE-F SUU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A12"},92691:{"value":"16A13","name":"BAMUM LETTER PHASE-F SHII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A13"},92692:{"value":"16A14","name":"BAMUM LETTER PHASE-F SI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A14"},92693:{"value":"16A15","name":"BAMUM LETTER PHASE-F SEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A15"},92694:{"value":"16A16","name":"BAMUM LETTER PHASE-F KYEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A16"},92695:{"value":"16A17","name":"BAMUM LETTER PHASE-F KET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A17"},92696:{"value":"16A18","name":"BAMUM LETTER PHASE-F NUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A18"},92697:{"value":"16A19","name":"BAMUM LETTER PHASE-F NU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A19"},92698:{"value":"16A1A","name":"BAMUM LETTER PHASE-F NJUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A1A"},92699:{"value":"16A1B","name":"BAMUM LETTER PHASE-F YOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A1B"},92700:{"value":"16A1C","name":"BAMUM LETTER PHASE-F SHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A1C"},92701:{"value":"16A1D","name":"BAMUM LETTER PHASE-F YA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A1D"},92702:{"value":"16A1E","name":"BAMUM LETTER PHASE-F NSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A1E"},92703:{"value":"16A1F","name":"BAMUM LETTER PHASE-F PEUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A1F"},92704:{"value":"16A20","name":"BAMUM LETTER PHASE-F NTEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A20"},92705:{"value":"16A21","name":"BAMUM LETTER PHASE-F WUE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A21"},92706:{"value":"16A22","name":"BAMUM LETTER PHASE-F PEE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A22"},92707:{"value":"16A23","name":"BAMUM LETTER PHASE-F RU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A23"},92708:{"value":"16A24","name":"BAMUM LETTER PHASE-F NI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A24"},92709:{"value":"16A25","name":"BAMUM LETTER PHASE-F REUX","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A25"},92710:{"value":"16A26","name":"BAMUM LETTER PHASE-F KEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A26"},92711:{"value":"16A27","name":"BAMUM LETTER PHASE-F NGKWAEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A27"},92712:{"value":"16A28","name":"BAMUM LETTER PHASE-F NGGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A28"},92713:{"value":"16A29","name":"BAMUM LETTER PHASE-F SHO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A29"},92714:{"value":"16A2A","name":"BAMUM LETTER PHASE-F PUAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A2A"},92715:{"value":"16A2B","name":"BAMUM LETTER PHASE-F FOM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A2B"},92716:{"value":"16A2C","name":"BAMUM LETTER PHASE-F WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A2C"},92717:{"value":"16A2D","name":"BAMUM LETTER PHASE-F LI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A2D"},92718:{"value":"16A2E","name":"BAMUM LETTER PHASE-F LOQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A2E"},92719:{"value":"16A2F","name":"BAMUM LETTER PHASE-F KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A2F"},92720:{"value":"16A30","name":"BAMUM LETTER PHASE-F MBEN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A30"},92721:{"value":"16A31","name":"BAMUM LETTER PHASE-F REN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A31"},92722:{"value":"16A32","name":"BAMUM LETTER PHASE-F MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A32"},92723:{"value":"16A33","name":"BAMUM LETTER PHASE-F MO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A33"},92724:{"value":"16A34","name":"BAMUM LETTER PHASE-F MBAA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A34"},92725:{"value":"16A35","name":"BAMUM LETTER PHASE-F TET","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A35"},92726:{"value":"16A36","name":"BAMUM LETTER PHASE-F KPA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A36"},92727:{"value":"16A37","name":"BAMUM LETTER PHASE-F SAMBA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A37"},92728:{"value":"16A38","name":"BAMUM LETTER PHASE-F VUEQ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A38"},92736:{"value":"16A40","name":"MRO LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A40"},92737:{"value":"16A41","name":"MRO LETTER NGI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A41"},92738:{"value":"16A42","name":"MRO LETTER YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A42"},92739:{"value":"16A43","name":"MRO LETTER MIM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A43"},92740:{"value":"16A44","name":"MRO LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A44"},92741:{"value":"16A45","name":"MRO LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A45"},92742:{"value":"16A46","name":"MRO LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A46"},92743:{"value":"16A47","name":"MRO LETTER PHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A47"},92744:{"value":"16A48","name":"MRO LETTER KHAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A48"},92745:{"value":"16A49","name":"MRO LETTER HAO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A49"},92746:{"value":"16A4A","name":"MRO LETTER DAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A4A"},92747:{"value":"16A4B","name":"MRO LETTER CHU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A4B"},92748:{"value":"16A4C","name":"MRO LETTER KEAAE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A4C"},92749:{"value":"16A4D","name":"MRO LETTER OL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A4D"},92750:{"value":"16A4E","name":"MRO LETTER MAEM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A4E"},92751:{"value":"16A4F","name":"MRO LETTER NIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A4F"},92752:{"value":"16A50","name":"MRO LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A50"},92753:{"value":"16A51","name":"MRO LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A51"},92754:{"value":"16A52","name":"MRO LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A52"},92755:{"value":"16A53","name":"MRO LETTER RO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A53"},92756:{"value":"16A54","name":"MRO LETTER SHI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A54"},92757:{"value":"16A55","name":"MRO LETTER THEA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A55"},92758:{"value":"16A56","name":"MRO LETTER EA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A56"},92759:{"value":"16A57","name":"MRO LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A57"},92760:{"value":"16A58","name":"MRO LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A58"},92761:{"value":"16A59","name":"MRO LETTER KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A59"},92762:{"value":"16A5A","name":"MRO LETTER LAN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A5A"},92763:{"value":"16A5B","name":"MRO LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A5B"},92764:{"value":"16A5C","name":"MRO LETTER HAI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A5C"},92765:{"value":"16A5D","name":"MRO LETTER RI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A5D"},92766:{"value":"16A5E","name":"MRO LETTER TEK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A5E"},92880:{"value":"16AD0","name":"BASSA VAH LETTER ENNI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AD0"},92881:{"value":"16AD1","name":"BASSA VAH LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AD1"},92882:{"value":"16AD2","name":"BASSA VAH LETTER SE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AD2"},92883:{"value":"16AD3","name":"BASSA VAH LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AD3"},92884:{"value":"16AD4","name":"BASSA VAH LETTER MBE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AD4"},92885:{"value":"16AD5","name":"BASSA VAH LETTER YIE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AD5"},92886:{"value":"16AD6","name":"BASSA VAH LETTER GAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AD6"},92887:{"value":"16AD7","name":"BASSA VAH LETTER DHII","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AD7"},92888:{"value":"16AD8","name":"BASSA VAH LETTER KPAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AD8"},92889:{"value":"16AD9","name":"BASSA VAH LETTER JO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AD9"},92890:{"value":"16ADA","name":"BASSA VAH LETTER HWAH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6ADA"},92891:{"value":"16ADB","name":"BASSA VAH LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6ADB"},92892:{"value":"16ADC","name":"BASSA VAH LETTER ZO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6ADC"},92893:{"value":"16ADD","name":"BASSA VAH LETTER GBU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6ADD"},92894:{"value":"16ADE","name":"BASSA VAH LETTER DO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6ADE"},92895:{"value":"16ADF","name":"BASSA VAH LETTER CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6ADF"},92896:{"value":"16AE0","name":"BASSA VAH LETTER UWU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AE0"},92897:{"value":"16AE1","name":"BASSA VAH LETTER TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AE1"},92898:{"value":"16AE2","name":"BASSA VAH LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AE2"},92899:{"value":"16AE3","name":"BASSA VAH LETTER VU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AE3"},92900:{"value":"16AE4","name":"BASSA VAH LETTER YEIN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AE4"},92901:{"value":"16AE5","name":"BASSA VAH LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AE5"},92902:{"value":"16AE6","name":"BASSA VAH LETTER WADDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AE6"},92903:{"value":"16AE7","name":"BASSA VAH LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AE7"},92904:{"value":"16AE8","name":"BASSA VAH LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AE8"},92905:{"value":"16AE9","name":"BASSA VAH LETTER OO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AE9"},92906:{"value":"16AEA","name":"BASSA VAH LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AEA"},92907:{"value":"16AEB","name":"BASSA VAH LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AEB"},92908:{"value":"16AEC","name":"BASSA VAH LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AEC"},92909:{"value":"16AED","name":"BASSA VAH LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AED"},92928:{"value":"16B00","name":"PAHAWH HMONG VOWEL KEEB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B00"},92929:{"value":"16B01","name":"PAHAWH HMONG VOWEL KEEV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B01"},92930:{"value":"16B02","name":"PAHAWH HMONG VOWEL KIB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B02"},92931:{"value":"16B03","name":"PAHAWH HMONG VOWEL KIV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B03"},92932:{"value":"16B04","name":"PAHAWH HMONG VOWEL KAUB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B04"},92933:{"value":"16B05","name":"PAHAWH HMONG VOWEL KAUV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B05"},92934:{"value":"16B06","name":"PAHAWH HMONG VOWEL KUB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B06"},92935:{"value":"16B07","name":"PAHAWH HMONG VOWEL KUV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B07"},92936:{"value":"16B08","name":"PAHAWH HMONG VOWEL KEB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B08"},92937:{"value":"16B09","name":"PAHAWH HMONG VOWEL KEV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B09"},92938:{"value":"16B0A","name":"PAHAWH HMONG VOWEL KAIB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B0A"},92939:{"value":"16B0B","name":"PAHAWH HMONG VOWEL KAIV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B0B"},92940:{"value":"16B0C","name":"PAHAWH HMONG VOWEL KOOB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B0C"},92941:{"value":"16B0D","name":"PAHAWH HMONG VOWEL KOOV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B0D"},92942:{"value":"16B0E","name":"PAHAWH HMONG VOWEL KAWB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B0E"},92943:{"value":"16B0F","name":"PAHAWH HMONG VOWEL KAWV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B0F"},92944:{"value":"16B10","name":"PAHAWH HMONG VOWEL KUAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B10"},92945:{"value":"16B11","name":"PAHAWH HMONG VOWEL KUAV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B11"},92946:{"value":"16B12","name":"PAHAWH HMONG VOWEL KOB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B12"},92947:{"value":"16B13","name":"PAHAWH HMONG VOWEL KOV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B13"},92948:{"value":"16B14","name":"PAHAWH HMONG VOWEL KIAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B14"},92949:{"value":"16B15","name":"PAHAWH HMONG VOWEL KIAV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B15"},92950:{"value":"16B16","name":"PAHAWH HMONG VOWEL KAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B16"},92951:{"value":"16B17","name":"PAHAWH HMONG VOWEL KAV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B17"},92952:{"value":"16B18","name":"PAHAWH HMONG VOWEL KWB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B18"},92953:{"value":"16B19","name":"PAHAWH HMONG VOWEL KWV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B19"},92954:{"value":"16B1A","name":"PAHAWH HMONG VOWEL KAAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B1A"},92955:{"value":"16B1B","name":"PAHAWH HMONG VOWEL KAAV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B1B"},92956:{"value":"16B1C","name":"PAHAWH HMONG CONSONANT VAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B1C"},92957:{"value":"16B1D","name":"PAHAWH HMONG CONSONANT NTSAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B1D"},92958:{"value":"16B1E","name":"PAHAWH HMONG CONSONANT LAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B1E"},92959:{"value":"16B1F","name":"PAHAWH HMONG CONSONANT HAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B1F"},92960:{"value":"16B20","name":"PAHAWH HMONG CONSONANT NLAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B20"},92961:{"value":"16B21","name":"PAHAWH HMONG CONSONANT RAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B21"},92962:{"value":"16B22","name":"PAHAWH HMONG CONSONANT NKAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B22"},92963:{"value":"16B23","name":"PAHAWH HMONG CONSONANT QHAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B23"},92964:{"value":"16B24","name":"PAHAWH HMONG CONSONANT YAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B24"},92965:{"value":"16B25","name":"PAHAWH HMONG CONSONANT HLAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B25"},92966:{"value":"16B26","name":"PAHAWH HMONG CONSONANT MAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B26"},92967:{"value":"16B27","name":"PAHAWH HMONG CONSONANT CHAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B27"},92968:{"value":"16B28","name":"PAHAWH HMONG CONSONANT NCHAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B28"},92969:{"value":"16B29","name":"PAHAWH HMONG CONSONANT HNAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B29"},92970:{"value":"16B2A","name":"PAHAWH HMONG CONSONANT PLHAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B2A"},92971:{"value":"16B2B","name":"PAHAWH HMONG CONSONANT NTHAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B2B"},92972:{"value":"16B2C","name":"PAHAWH HMONG CONSONANT NAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B2C"},92973:{"value":"16B2D","name":"PAHAWH HMONG CONSONANT AU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B2D"},92974:{"value":"16B2E","name":"PAHAWH HMONG CONSONANT XAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B2E"},92975:{"value":"16B2F","name":"PAHAWH HMONG CONSONANT CAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B2F"},93027:{"value":"16B63","name":"PAHAWH HMONG SIGN VOS LUB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B63"},93028:{"value":"16B64","name":"PAHAWH HMONG SIGN XYOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B64"},93029:{"value":"16B65","name":"PAHAWH HMONG SIGN HLI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B65"},93030:{"value":"16B66","name":"PAHAWH HMONG SIGN THIRD-STAGE HLI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B66"},93031:{"value":"16B67","name":"PAHAWH HMONG SIGN ZWJ THAJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B67"},93032:{"value":"16B68","name":"PAHAWH HMONG SIGN HNUB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B68"},93033:{"value":"16B69","name":"PAHAWH HMONG SIGN NQIG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B69"},93034:{"value":"16B6A","name":"PAHAWH HMONG SIGN XIAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B6A"},93035:{"value":"16B6B","name":"PAHAWH HMONG SIGN NTUJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B6B"},93036:{"value":"16B6C","name":"PAHAWH HMONG SIGN AV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B6C"},93037:{"value":"16B6D","name":"PAHAWH HMONG SIGN TXHEEJ CEEV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B6D"},93038:{"value":"16B6E","name":"PAHAWH HMONG SIGN MEEJ TSEEB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B6E"},93039:{"value":"16B6F","name":"PAHAWH HMONG SIGN TAU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B6F"},93040:{"value":"16B70","name":"PAHAWH HMONG SIGN LOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B70"},93041:{"value":"16B71","name":"PAHAWH HMONG SIGN MUS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B71"},93042:{"value":"16B72","name":"PAHAWH HMONG SIGN CIM HAIS LUS NTOG NTOG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B72"},93043:{"value":"16B73","name":"PAHAWH HMONG SIGN CIM CUAM TSHOOJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B73"},93044:{"value":"16B74","name":"PAHAWH HMONG SIGN CIM TXWV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B74"},93045:{"value":"16B75","name":"PAHAWH HMONG SIGN CIM TXWV CHWV","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B75"},93046:{"value":"16B76","name":"PAHAWH HMONG SIGN CIM PUB DAWB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B76"},93047:{"value":"16B77","name":"PAHAWH HMONG SIGN CIM NRES TOS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B77"},93053:{"value":"16B7D","name":"PAHAWH HMONG CLAN SIGN TSHEEJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B7D"},93054:{"value":"16B7E","name":"PAHAWH HMONG CLAN SIGN YEEG","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B7E"},93055:{"value":"16B7F","name":"PAHAWH HMONG CLAN SIGN LIS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B7F"},93056:{"value":"16B80","name":"PAHAWH HMONG CLAN SIGN LAUJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B80"},93057:{"value":"16B81","name":"PAHAWH HMONG CLAN SIGN XYOOJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B81"},93058:{"value":"16B82","name":"PAHAWH HMONG CLAN SIGN KOO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B82"},93059:{"value":"16B83","name":"PAHAWH HMONG CLAN SIGN HAWJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B83"},93060:{"value":"16B84","name":"PAHAWH HMONG CLAN SIGN MUAS","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B84"},93061:{"value":"16B85","name":"PAHAWH HMONG CLAN SIGN THOJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B85"},93062:{"value":"16B86","name":"PAHAWH HMONG CLAN SIGN TSAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B86"},93063:{"value":"16B87","name":"PAHAWH HMONG CLAN SIGN PHAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B87"},93064:{"value":"16B88","name":"PAHAWH HMONG CLAN SIGN KHAB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B88"},93065:{"value":"16B89","name":"PAHAWH HMONG CLAN SIGN HAM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B89"},93066:{"value":"16B8A","name":"PAHAWH HMONG CLAN SIGN VAJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B8A"},93067:{"value":"16B8B","name":"PAHAWH HMONG CLAN SIGN FAJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B8B"},93068:{"value":"16B8C","name":"PAHAWH HMONG CLAN SIGN YAJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B8C"},93069:{"value":"16B8D","name":"PAHAWH HMONG CLAN SIGN TSWB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B8D"},93070:{"value":"16B8E","name":"PAHAWH HMONG CLAN SIGN KWM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B8E"},93071:{"value":"16B8F","name":"PAHAWH HMONG CLAN SIGN VWJ","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B8F"},93952:{"value":"16F00","name":"MIAO LETTER PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F00"},93953:{"value":"16F01","name":"MIAO LETTER BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F01"},93954:{"value":"16F02","name":"MIAO LETTER YI PA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F02"},93955:{"value":"16F03","name":"MIAO LETTER PLA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F03"},93956:{"value":"16F04","name":"MIAO LETTER MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F04"},93957:{"value":"16F05","name":"MIAO LETTER MHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F05"},93958:{"value":"16F06","name":"MIAO LETTER ARCHAIC MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F06"},93959:{"value":"16F07","name":"MIAO LETTER FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F07"},93960:{"value":"16F08","name":"MIAO LETTER VA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F08"},93961:{"value":"16F09","name":"MIAO LETTER VFA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F09"},93962:{"value":"16F0A","name":"MIAO LETTER TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F0A"},93963:{"value":"16F0B","name":"MIAO LETTER DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F0B"},93964:{"value":"16F0C","name":"MIAO LETTER YI TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F0C"},93965:{"value":"16F0D","name":"MIAO LETTER YI TA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F0D"},93966:{"value":"16F0E","name":"MIAO LETTER TTA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F0E"},93967:{"value":"16F0F","name":"MIAO LETTER DDA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F0F"},93968:{"value":"16F10","name":"MIAO LETTER NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F10"},93969:{"value":"16F11","name":"MIAO LETTER NHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F11"},93970:{"value":"16F12","name":"MIAO LETTER YI NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F12"},93971:{"value":"16F13","name":"MIAO LETTER ARCHAIC NA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F13"},93972:{"value":"16F14","name":"MIAO LETTER NNA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F14"},93973:{"value":"16F15","name":"MIAO LETTER NNHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F15"},93974:{"value":"16F16","name":"MIAO LETTER LA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F16"},93975:{"value":"16F17","name":"MIAO LETTER LYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F17"},93976:{"value":"16F18","name":"MIAO LETTER LHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F18"},93977:{"value":"16F19","name":"MIAO LETTER LHYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F19"},93978:{"value":"16F1A","name":"MIAO LETTER TLHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F1A"},93979:{"value":"16F1B","name":"MIAO LETTER DLHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F1B"},93980:{"value":"16F1C","name":"MIAO LETTER TLHYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F1C"},93981:{"value":"16F1D","name":"MIAO LETTER DLHYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F1D"},93982:{"value":"16F1E","name":"MIAO LETTER KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F1E"},93983:{"value":"16F1F","name":"MIAO LETTER GA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F1F"},93984:{"value":"16F20","name":"MIAO LETTER YI KA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F20"},93985:{"value":"16F21","name":"MIAO LETTER QA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F21"},93986:{"value":"16F22","name":"MIAO LETTER QGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F22"},93987:{"value":"16F23","name":"MIAO LETTER NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F23"},93988:{"value":"16F24","name":"MIAO LETTER NGHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F24"},93989:{"value":"16F25","name":"MIAO LETTER ARCHAIC NGA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F25"},93990:{"value":"16F26","name":"MIAO LETTER HA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F26"},93991:{"value":"16F27","name":"MIAO LETTER XA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F27"},93992:{"value":"16F28","name":"MIAO LETTER GHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F28"},93993:{"value":"16F29","name":"MIAO LETTER GHHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F29"},93994:{"value":"16F2A","name":"MIAO LETTER TSSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F2A"},93995:{"value":"16F2B","name":"MIAO LETTER DZZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F2B"},93996:{"value":"16F2C","name":"MIAO LETTER NYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F2C"},93997:{"value":"16F2D","name":"MIAO LETTER NYHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F2D"},93998:{"value":"16F2E","name":"MIAO LETTER TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F2E"},93999:{"value":"16F2F","name":"MIAO LETTER DZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F2F"},94000:{"value":"16F30","name":"MIAO LETTER YI TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F30"},94001:{"value":"16F31","name":"MIAO LETTER YI DZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F31"},94002:{"value":"16F32","name":"MIAO LETTER REFORMED TSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F32"},94003:{"value":"16F33","name":"MIAO LETTER SHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F33"},94004:{"value":"16F34","name":"MIAO LETTER SSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F34"},94005:{"value":"16F35","name":"MIAO LETTER ZHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F35"},94006:{"value":"16F36","name":"MIAO LETTER ZSHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F36"},94007:{"value":"16F37","name":"MIAO LETTER TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F37"},94008:{"value":"16F38","name":"MIAO LETTER DZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F38"},94009:{"value":"16F39","name":"MIAO LETTER YI TSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F39"},94010:{"value":"16F3A","name":"MIAO LETTER SA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F3A"},94011:{"value":"16F3B","name":"MIAO LETTER ZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F3B"},94012:{"value":"16F3C","name":"MIAO LETTER ZSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F3C"},94013:{"value":"16F3D","name":"MIAO LETTER ZZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F3D"},94014:{"value":"16F3E","name":"MIAO LETTER ZZSA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F3E"},94015:{"value":"16F3F","name":"MIAO LETTER ARCHAIC ZZA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F3F"},94016:{"value":"16F40","name":"MIAO LETTER ZZYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F40"},94017:{"value":"16F41","name":"MIAO LETTER ZZSYA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F41"},94018:{"value":"16F42","name":"MIAO LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F42"},94019:{"value":"16F43","name":"MIAO LETTER AH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F43"},94020:{"value":"16F44","name":"MIAO LETTER HHA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F44"},94032:{"value":"16F50","name":"MIAO LETTER NASALIZATION","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F50"},94208:{"value":"17000","name":"<Tangut Ideograph, First>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u7000"},100337:{"value":"187F1","name":"<Tangut Ideograph, Last>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u87F1"},100352:{"value":"18800","name":"TANGUT COMPONENT-001","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8800"},100353:{"value":"18801","name":"TANGUT COMPONENT-002","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8801"},100354:{"value":"18802","name":"TANGUT COMPONENT-003","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8802"},100355:{"value":"18803","name":"TANGUT COMPONENT-004","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8803"},100356:{"value":"18804","name":"TANGUT COMPONENT-005","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8804"},100357:{"value":"18805","name":"TANGUT COMPONENT-006","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8805"},100358:{"value":"18806","name":"TANGUT COMPONENT-007","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8806"},100359:{"value":"18807","name":"TANGUT COMPONENT-008","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8807"},100360:{"value":"18808","name":"TANGUT COMPONENT-009","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8808"},100361:{"value":"18809","name":"TANGUT COMPONENT-010","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8809"},100362:{"value":"1880A","name":"TANGUT COMPONENT-011","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u880A"},100363:{"value":"1880B","name":"TANGUT COMPONENT-012","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u880B"},100364:{"value":"1880C","name":"TANGUT COMPONENT-013","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u880C"},100365:{"value":"1880D","name":"TANGUT COMPONENT-014","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u880D"},100366:{"value":"1880E","name":"TANGUT COMPONENT-015","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u880E"},100367:{"value":"1880F","name":"TANGUT COMPONENT-016","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u880F"},100368:{"value":"18810","name":"TANGUT COMPONENT-017","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8810"},100369:{"value":"18811","name":"TANGUT COMPONENT-018","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8811"},100370:{"value":"18812","name":"TANGUT COMPONENT-019","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8812"},100371:{"value":"18813","name":"TANGUT COMPONENT-020","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8813"},100372:{"value":"18814","name":"TANGUT COMPONENT-021","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8814"},100373:{"value":"18815","name":"TANGUT COMPONENT-022","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8815"},100374:{"value":"18816","name":"TANGUT COMPONENT-023","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8816"},100375:{"value":"18817","name":"TANGUT COMPONENT-024","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8817"},100376:{"value":"18818","name":"TANGUT COMPONENT-025","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8818"},100377:{"value":"18819","name":"TANGUT COMPONENT-026","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8819"},100378:{"value":"1881A","name":"TANGUT COMPONENT-027","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u881A"},100379:{"value":"1881B","name":"TANGUT COMPONENT-028","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u881B"},100380:{"value":"1881C","name":"TANGUT COMPONENT-029","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u881C"},100381:{"value":"1881D","name":"TANGUT COMPONENT-030","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u881D"},100382:{"value":"1881E","name":"TANGUT COMPONENT-031","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u881E"},100383:{"value":"1881F","name":"TANGUT COMPONENT-032","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u881F"},100384:{"value":"18820","name":"TANGUT COMPONENT-033","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8820"},100385:{"value":"18821","name":"TANGUT COMPONENT-034","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8821"},100386:{"value":"18822","name":"TANGUT COMPONENT-035","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8822"},100387:{"value":"18823","name":"TANGUT COMPONENT-036","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8823"},100388:{"value":"18824","name":"TANGUT COMPONENT-037","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8824"},100389:{"value":"18825","name":"TANGUT COMPONENT-038","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8825"},100390:{"value":"18826","name":"TANGUT COMPONENT-039","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8826"},100391:{"value":"18827","name":"TANGUT COMPONENT-040","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8827"},100392:{"value":"18828","name":"TANGUT COMPONENT-041","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8828"},100393:{"value":"18829","name":"TANGUT COMPONENT-042","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8829"},100394:{"value":"1882A","name":"TANGUT COMPONENT-043","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u882A"},100395:{"value":"1882B","name":"TANGUT COMPONENT-044","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u882B"},100396:{"value":"1882C","name":"TANGUT COMPONENT-045","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u882C"},100397:{"value":"1882D","name":"TANGUT COMPONENT-046","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u882D"},100398:{"value":"1882E","name":"TANGUT COMPONENT-047","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u882E"},100399:{"value":"1882F","name":"TANGUT COMPONENT-048","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u882F"},100400:{"value":"18830","name":"TANGUT COMPONENT-049","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8830"},100401:{"value":"18831","name":"TANGUT COMPONENT-050","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8831"},100402:{"value":"18832","name":"TANGUT COMPONENT-051","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8832"},100403:{"value":"18833","name":"TANGUT COMPONENT-052","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8833"},100404:{"value":"18834","name":"TANGUT COMPONENT-053","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8834"},100405:{"value":"18835","name":"TANGUT COMPONENT-054","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8835"},100406:{"value":"18836","name":"TANGUT COMPONENT-055","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8836"},100407:{"value":"18837","name":"TANGUT COMPONENT-056","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8837"},100408:{"value":"18838","name":"TANGUT COMPONENT-057","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8838"},100409:{"value":"18839","name":"TANGUT COMPONENT-058","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8839"},100410:{"value":"1883A","name":"TANGUT COMPONENT-059","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u883A"},100411:{"value":"1883B","name":"TANGUT COMPONENT-060","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u883B"},100412:{"value":"1883C","name":"TANGUT COMPONENT-061","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u883C"},100413:{"value":"1883D","name":"TANGUT COMPONENT-062","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u883D"},100414:{"value":"1883E","name":"TANGUT COMPONENT-063","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u883E"},100415:{"value":"1883F","name":"TANGUT COMPONENT-064","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u883F"},100416:{"value":"18840","name":"TANGUT COMPONENT-065","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8840"},100417:{"value":"18841","name":"TANGUT COMPONENT-066","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8841"},100418:{"value":"18842","name":"TANGUT COMPONENT-067","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8842"},100419:{"value":"18843","name":"TANGUT COMPONENT-068","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8843"},100420:{"value":"18844","name":"TANGUT COMPONENT-069","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8844"},100421:{"value":"18845","name":"TANGUT COMPONENT-070","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8845"},100422:{"value":"18846","name":"TANGUT COMPONENT-071","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8846"},100423:{"value":"18847","name":"TANGUT COMPONENT-072","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8847"},100424:{"value":"18848","name":"TANGUT COMPONENT-073","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8848"},100425:{"value":"18849","name":"TANGUT COMPONENT-074","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8849"},100426:{"value":"1884A","name":"TANGUT COMPONENT-075","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u884A"},100427:{"value":"1884B","name":"TANGUT COMPONENT-076","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u884B"},100428:{"value":"1884C","name":"TANGUT COMPONENT-077","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u884C"},100429:{"value":"1884D","name":"TANGUT COMPONENT-078","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u884D"},100430:{"value":"1884E","name":"TANGUT COMPONENT-079","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u884E"},100431:{"value":"1884F","name":"TANGUT COMPONENT-080","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u884F"},100432:{"value":"18850","name":"TANGUT COMPONENT-081","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8850"},100433:{"value":"18851","name":"TANGUT COMPONENT-082","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8851"},100434:{"value":"18852","name":"TANGUT COMPONENT-083","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8852"},100435:{"value":"18853","name":"TANGUT COMPONENT-084","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8853"},100436:{"value":"18854","name":"TANGUT COMPONENT-085","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8854"},100437:{"value":"18855","name":"TANGUT COMPONENT-086","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8855"},100438:{"value":"18856","name":"TANGUT COMPONENT-087","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8856"},100439:{"value":"18857","name":"TANGUT COMPONENT-088","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8857"},100440:{"value":"18858","name":"TANGUT COMPONENT-089","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8858"},100441:{"value":"18859","name":"TANGUT COMPONENT-090","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8859"},100442:{"value":"1885A","name":"TANGUT COMPONENT-091","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u885A"},100443:{"value":"1885B","name":"TANGUT COMPONENT-092","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u885B"},100444:{"value":"1885C","name":"TANGUT COMPONENT-093","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u885C"},100445:{"value":"1885D","name":"TANGUT COMPONENT-094","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u885D"},100446:{"value":"1885E","name":"TANGUT COMPONENT-095","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u885E"},100447:{"value":"1885F","name":"TANGUT COMPONENT-096","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u885F"},100448:{"value":"18860","name":"TANGUT COMPONENT-097","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8860"},100449:{"value":"18861","name":"TANGUT COMPONENT-098","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8861"},100450:{"value":"18862","name":"TANGUT COMPONENT-099","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8862"},100451:{"value":"18863","name":"TANGUT COMPONENT-100","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8863"},100452:{"value":"18864","name":"TANGUT COMPONENT-101","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8864"},100453:{"value":"18865","name":"TANGUT COMPONENT-102","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8865"},100454:{"value":"18866","name":"TANGUT COMPONENT-103","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8866"},100455:{"value":"18867","name":"TANGUT COMPONENT-104","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8867"},100456:{"value":"18868","name":"TANGUT COMPONENT-105","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8868"},100457:{"value":"18869","name":"TANGUT COMPONENT-106","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8869"},100458:{"value":"1886A","name":"TANGUT COMPONENT-107","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u886A"},100459:{"value":"1886B","name":"TANGUT COMPONENT-108","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u886B"},100460:{"value":"1886C","name":"TANGUT COMPONENT-109","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u886C"},100461:{"value":"1886D","name":"TANGUT COMPONENT-110","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u886D"},100462:{"value":"1886E","name":"TANGUT COMPONENT-111","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u886E"},100463:{"value":"1886F","name":"TANGUT COMPONENT-112","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u886F"},100464:{"value":"18870","name":"TANGUT COMPONENT-113","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8870"},100465:{"value":"18871","name":"TANGUT COMPONENT-114","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8871"},100466:{"value":"18872","name":"TANGUT COMPONENT-115","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8872"},100467:{"value":"18873","name":"TANGUT COMPONENT-116","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8873"},100468:{"value":"18874","name":"TANGUT COMPONENT-117","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8874"},100469:{"value":"18875","name":"TANGUT COMPONENT-118","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8875"},100470:{"value":"18876","name":"TANGUT COMPONENT-119","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8876"},100471:{"value":"18877","name":"TANGUT COMPONENT-120","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8877"},100472:{"value":"18878","name":"TANGUT COMPONENT-121","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8878"},100473:{"value":"18879","name":"TANGUT COMPONENT-122","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8879"},100474:{"value":"1887A","name":"TANGUT COMPONENT-123","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u887A"},100475:{"value":"1887B","name":"TANGUT COMPONENT-124","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u887B"},100476:{"value":"1887C","name":"TANGUT COMPONENT-125","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u887C"},100477:{"value":"1887D","name":"TANGUT COMPONENT-126","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u887D"},100478:{"value":"1887E","name":"TANGUT COMPONENT-127","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u887E"},100479:{"value":"1887F","name":"TANGUT COMPONENT-128","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u887F"},100480:{"value":"18880","name":"TANGUT COMPONENT-129","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8880"},100481:{"value":"18881","name":"TANGUT COMPONENT-130","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8881"},100482:{"value":"18882","name":"TANGUT COMPONENT-131","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8882"},100483:{"value":"18883","name":"TANGUT COMPONENT-132","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8883"},100484:{"value":"18884","name":"TANGUT COMPONENT-133","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8884"},100485:{"value":"18885","name":"TANGUT COMPONENT-134","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8885"},100486:{"value":"18886","name":"TANGUT COMPONENT-135","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8886"},100487:{"value":"18887","name":"TANGUT COMPONENT-136","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8887"},100488:{"value":"18888","name":"TANGUT COMPONENT-137","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8888"},100489:{"value":"18889","name":"TANGUT COMPONENT-138","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8889"},100490:{"value":"1888A","name":"TANGUT COMPONENT-139","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u888A"},100491:{"value":"1888B","name":"TANGUT COMPONENT-140","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u888B"},100492:{"value":"1888C","name":"TANGUT COMPONENT-141","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u888C"},100493:{"value":"1888D","name":"TANGUT COMPONENT-142","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u888D"},100494:{"value":"1888E","name":"TANGUT COMPONENT-143","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u888E"},100495:{"value":"1888F","name":"TANGUT COMPONENT-144","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u888F"},100496:{"value":"18890","name":"TANGUT COMPONENT-145","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8890"},100497:{"value":"18891","name":"TANGUT COMPONENT-146","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8891"},100498:{"value":"18892","name":"TANGUT COMPONENT-147","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8892"},100499:{"value":"18893","name":"TANGUT COMPONENT-148","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8893"},100500:{"value":"18894","name":"TANGUT COMPONENT-149","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8894"},100501:{"value":"18895","name":"TANGUT COMPONENT-150","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8895"},100502:{"value":"18896","name":"TANGUT COMPONENT-151","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8896"},100503:{"value":"18897","name":"TANGUT COMPONENT-152","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8897"},100504:{"value":"18898","name":"TANGUT COMPONENT-153","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8898"},100505:{"value":"18899","name":"TANGUT COMPONENT-154","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8899"},100506:{"value":"1889A","name":"TANGUT COMPONENT-155","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u889A"},100507:{"value":"1889B","name":"TANGUT COMPONENT-156","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u889B"},100508:{"value":"1889C","name":"TANGUT COMPONENT-157","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u889C"},100509:{"value":"1889D","name":"TANGUT COMPONENT-158","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u889D"},100510:{"value":"1889E","name":"TANGUT COMPONENT-159","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u889E"},100511:{"value":"1889F","name":"TANGUT COMPONENT-160","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u889F"},100512:{"value":"188A0","name":"TANGUT COMPONENT-161","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88A0"},100513:{"value":"188A1","name":"TANGUT COMPONENT-162","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88A1"},100514:{"value":"188A2","name":"TANGUT COMPONENT-163","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88A2"},100515:{"value":"188A3","name":"TANGUT COMPONENT-164","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88A3"},100516:{"value":"188A4","name":"TANGUT COMPONENT-165","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88A4"},100517:{"value":"188A5","name":"TANGUT COMPONENT-166","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88A5"},100518:{"value":"188A6","name":"TANGUT COMPONENT-167","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88A6"},100519:{"value":"188A7","name":"TANGUT COMPONENT-168","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88A7"},100520:{"value":"188A8","name":"TANGUT COMPONENT-169","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88A8"},100521:{"value":"188A9","name":"TANGUT COMPONENT-170","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88A9"},100522:{"value":"188AA","name":"TANGUT COMPONENT-171","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88AA"},100523:{"value":"188AB","name":"TANGUT COMPONENT-172","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88AB"},100524:{"value":"188AC","name":"TANGUT COMPONENT-173","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88AC"},100525:{"value":"188AD","name":"TANGUT COMPONENT-174","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88AD"},100526:{"value":"188AE","name":"TANGUT COMPONENT-175","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88AE"},100527:{"value":"188AF","name":"TANGUT COMPONENT-176","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88AF"},100528:{"value":"188B0","name":"TANGUT COMPONENT-177","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88B0"},100529:{"value":"188B1","name":"TANGUT COMPONENT-178","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88B1"},100530:{"value":"188B2","name":"TANGUT COMPONENT-179","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88B2"},100531:{"value":"188B3","name":"TANGUT COMPONENT-180","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88B3"},100532:{"value":"188B4","name":"TANGUT COMPONENT-181","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88B4"},100533:{"value":"188B5","name":"TANGUT COMPONENT-182","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88B5"},100534:{"value":"188B6","name":"TANGUT COMPONENT-183","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88B6"},100535:{"value":"188B7","name":"TANGUT COMPONENT-184","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88B7"},100536:{"value":"188B8","name":"TANGUT COMPONENT-185","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88B8"},100537:{"value":"188B9","name":"TANGUT COMPONENT-186","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88B9"},100538:{"value":"188BA","name":"TANGUT COMPONENT-187","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88BA"},100539:{"value":"188BB","name":"TANGUT COMPONENT-188","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88BB"},100540:{"value":"188BC","name":"TANGUT COMPONENT-189","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88BC"},100541:{"value":"188BD","name":"TANGUT COMPONENT-190","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88BD"},100542:{"value":"188BE","name":"TANGUT COMPONENT-191","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88BE"},100543:{"value":"188BF","name":"TANGUT COMPONENT-192","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88BF"},100544:{"value":"188C0","name":"TANGUT COMPONENT-193","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88C0"},100545:{"value":"188C1","name":"TANGUT COMPONENT-194","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88C1"},100546:{"value":"188C2","name":"TANGUT COMPONENT-195","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88C2"},100547:{"value":"188C3","name":"TANGUT COMPONENT-196","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88C3"},100548:{"value":"188C4","name":"TANGUT COMPONENT-197","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88C4"},100549:{"value":"188C5","name":"TANGUT COMPONENT-198","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88C5"},100550:{"value":"188C6","name":"TANGUT COMPONENT-199","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88C6"},100551:{"value":"188C7","name":"TANGUT COMPONENT-200","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88C7"},100552:{"value":"188C8","name":"TANGUT COMPONENT-201","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88C8"},100553:{"value":"188C9","name":"TANGUT COMPONENT-202","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88C9"},100554:{"value":"188CA","name":"TANGUT COMPONENT-203","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88CA"},100555:{"value":"188CB","name":"TANGUT COMPONENT-204","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88CB"},100556:{"value":"188CC","name":"TANGUT COMPONENT-205","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88CC"},100557:{"value":"188CD","name":"TANGUT COMPONENT-206","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88CD"},100558:{"value":"188CE","name":"TANGUT COMPONENT-207","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88CE"},100559:{"value":"188CF","name":"TANGUT COMPONENT-208","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88CF"},100560:{"value":"188D0","name":"TANGUT COMPONENT-209","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88D0"},100561:{"value":"188D1","name":"TANGUT COMPONENT-210","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88D1"},100562:{"value":"188D2","name":"TANGUT COMPONENT-211","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88D2"},100563:{"value":"188D3","name":"TANGUT COMPONENT-212","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88D3"},100564:{"value":"188D4","name":"TANGUT COMPONENT-213","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88D4"},100565:{"value":"188D5","name":"TANGUT COMPONENT-214","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88D5"},100566:{"value":"188D6","name":"TANGUT COMPONENT-215","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88D6"},100567:{"value":"188D7","name":"TANGUT COMPONENT-216","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88D7"},100568:{"value":"188D8","name":"TANGUT COMPONENT-217","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88D8"},100569:{"value":"188D9","name":"TANGUT COMPONENT-218","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88D9"},100570:{"value":"188DA","name":"TANGUT COMPONENT-219","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88DA"},100571:{"value":"188DB","name":"TANGUT COMPONENT-220","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88DB"},100572:{"value":"188DC","name":"TANGUT COMPONENT-221","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88DC"},100573:{"value":"188DD","name":"TANGUT COMPONENT-222","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88DD"},100574:{"value":"188DE","name":"TANGUT COMPONENT-223","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88DE"},100575:{"value":"188DF","name":"TANGUT COMPONENT-224","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88DF"},100576:{"value":"188E0","name":"TANGUT COMPONENT-225","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88E0"},100577:{"value":"188E1","name":"TANGUT COMPONENT-226","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88E1"},100578:{"value":"188E2","name":"TANGUT COMPONENT-227","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88E2"},100579:{"value":"188E3","name":"TANGUT COMPONENT-228","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88E3"},100580:{"value":"188E4","name":"TANGUT COMPONENT-229","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88E4"},100581:{"value":"188E5","name":"TANGUT COMPONENT-230","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88E5"},100582:{"value":"188E6","name":"TANGUT COMPONENT-231","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88E6"},100583:{"value":"188E7","name":"TANGUT COMPONENT-232","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88E7"},100584:{"value":"188E8","name":"TANGUT COMPONENT-233","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88E8"},100585:{"value":"188E9","name":"TANGUT COMPONENT-234","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88E9"},100586:{"value":"188EA","name":"TANGUT COMPONENT-235","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88EA"},100587:{"value":"188EB","name":"TANGUT COMPONENT-236","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88EB"},100588:{"value":"188EC","name":"TANGUT COMPONENT-237","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88EC"},100589:{"value":"188ED","name":"TANGUT COMPONENT-238","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88ED"},100590:{"value":"188EE","name":"TANGUT COMPONENT-239","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88EE"},100591:{"value":"188EF","name":"TANGUT COMPONENT-240","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88EF"},100592:{"value":"188F0","name":"TANGUT COMPONENT-241","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88F0"},100593:{"value":"188F1","name":"TANGUT COMPONENT-242","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88F1"},100594:{"value":"188F2","name":"TANGUT COMPONENT-243","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88F2"},100595:{"value":"188F3","name":"TANGUT COMPONENT-244","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88F3"},100596:{"value":"188F4","name":"TANGUT COMPONENT-245","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88F4"},100597:{"value":"188F5","name":"TANGUT COMPONENT-246","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88F5"},100598:{"value":"188F6","name":"TANGUT COMPONENT-247","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88F6"},100599:{"value":"188F7","name":"TANGUT COMPONENT-248","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88F7"},100600:{"value":"188F8","name":"TANGUT COMPONENT-249","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88F8"},100601:{"value":"188F9","name":"TANGUT COMPONENT-250","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88F9"},100602:{"value":"188FA","name":"TANGUT COMPONENT-251","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88FA"},100603:{"value":"188FB","name":"TANGUT COMPONENT-252","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88FB"},100604:{"value":"188FC","name":"TANGUT COMPONENT-253","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88FC"},100605:{"value":"188FD","name":"TANGUT COMPONENT-254","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88FD"},100606:{"value":"188FE","name":"TANGUT COMPONENT-255","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88FE"},100607:{"value":"188FF","name":"TANGUT COMPONENT-256","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u88FF"},100608:{"value":"18900","name":"TANGUT COMPONENT-257","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8900"},100609:{"value":"18901","name":"TANGUT COMPONENT-258","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8901"},100610:{"value":"18902","name":"TANGUT COMPONENT-259","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8902"},100611:{"value":"18903","name":"TANGUT COMPONENT-260","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8903"},100612:{"value":"18904","name":"TANGUT COMPONENT-261","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8904"},100613:{"value":"18905","name":"TANGUT COMPONENT-262","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8905"},100614:{"value":"18906","name":"TANGUT COMPONENT-263","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8906"},100615:{"value":"18907","name":"TANGUT COMPONENT-264","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8907"},100616:{"value":"18908","name":"TANGUT COMPONENT-265","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8908"},100617:{"value":"18909","name":"TANGUT COMPONENT-266","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8909"},100618:{"value":"1890A","name":"TANGUT COMPONENT-267","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u890A"},100619:{"value":"1890B","name":"TANGUT COMPONENT-268","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u890B"},100620:{"value":"1890C","name":"TANGUT COMPONENT-269","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u890C"},100621:{"value":"1890D","name":"TANGUT COMPONENT-270","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u890D"},100622:{"value":"1890E","name":"TANGUT COMPONENT-271","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u890E"},100623:{"value":"1890F","name":"TANGUT COMPONENT-272","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u890F"},100624:{"value":"18910","name":"TANGUT COMPONENT-273","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8910"},100625:{"value":"18911","name":"TANGUT COMPONENT-274","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8911"},100626:{"value":"18912","name":"TANGUT COMPONENT-275","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8912"},100627:{"value":"18913","name":"TANGUT COMPONENT-276","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8913"},100628:{"value":"18914","name":"TANGUT COMPONENT-277","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8914"},100629:{"value":"18915","name":"TANGUT COMPONENT-278","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8915"},100630:{"value":"18916","name":"TANGUT COMPONENT-279","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8916"},100631:{"value":"18917","name":"TANGUT COMPONENT-280","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8917"},100632:{"value":"18918","name":"TANGUT COMPONENT-281","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8918"},100633:{"value":"18919","name":"TANGUT COMPONENT-282","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8919"},100634:{"value":"1891A","name":"TANGUT COMPONENT-283","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u891A"},100635:{"value":"1891B","name":"TANGUT COMPONENT-284","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u891B"},100636:{"value":"1891C","name":"TANGUT COMPONENT-285","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u891C"},100637:{"value":"1891D","name":"TANGUT COMPONENT-286","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u891D"},100638:{"value":"1891E","name":"TANGUT COMPONENT-287","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u891E"},100639:{"value":"1891F","name":"TANGUT COMPONENT-288","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u891F"},100640:{"value":"18920","name":"TANGUT COMPONENT-289","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8920"},100641:{"value":"18921","name":"TANGUT COMPONENT-290","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8921"},100642:{"value":"18922","name":"TANGUT COMPONENT-291","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8922"},100643:{"value":"18923","name":"TANGUT COMPONENT-292","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8923"},100644:{"value":"18924","name":"TANGUT COMPONENT-293","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8924"},100645:{"value":"18925","name":"TANGUT COMPONENT-294","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8925"},100646:{"value":"18926","name":"TANGUT COMPONENT-295","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8926"},100647:{"value":"18927","name":"TANGUT COMPONENT-296","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8927"},100648:{"value":"18928","name":"TANGUT COMPONENT-297","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8928"},100649:{"value":"18929","name":"TANGUT COMPONENT-298","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8929"},100650:{"value":"1892A","name":"TANGUT COMPONENT-299","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u892A"},100651:{"value":"1892B","name":"TANGUT COMPONENT-300","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u892B"},100652:{"value":"1892C","name":"TANGUT COMPONENT-301","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u892C"},100653:{"value":"1892D","name":"TANGUT COMPONENT-302","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u892D"},100654:{"value":"1892E","name":"TANGUT COMPONENT-303","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u892E"},100655:{"value":"1892F","name":"TANGUT COMPONENT-304","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u892F"},100656:{"value":"18930","name":"TANGUT COMPONENT-305","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8930"},100657:{"value":"18931","name":"TANGUT COMPONENT-306","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8931"},100658:{"value":"18932","name":"TANGUT COMPONENT-307","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8932"},100659:{"value":"18933","name":"TANGUT COMPONENT-308","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8933"},100660:{"value":"18934","name":"TANGUT COMPONENT-309","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8934"},100661:{"value":"18935","name":"TANGUT COMPONENT-310","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8935"},100662:{"value":"18936","name":"TANGUT COMPONENT-311","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8936"},100663:{"value":"18937","name":"TANGUT COMPONENT-312","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8937"},100664:{"value":"18938","name":"TANGUT COMPONENT-313","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8938"},100665:{"value":"18939","name":"TANGUT COMPONENT-314","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8939"},100666:{"value":"1893A","name":"TANGUT COMPONENT-315","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u893A"},100667:{"value":"1893B","name":"TANGUT COMPONENT-316","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u893B"},100668:{"value":"1893C","name":"TANGUT COMPONENT-317","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u893C"},100669:{"value":"1893D","name":"TANGUT COMPONENT-318","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u893D"},100670:{"value":"1893E","name":"TANGUT COMPONENT-319","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u893E"},100671:{"value":"1893F","name":"TANGUT COMPONENT-320","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u893F"},100672:{"value":"18940","name":"TANGUT COMPONENT-321","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8940"},100673:{"value":"18941","name":"TANGUT COMPONENT-322","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8941"},100674:{"value":"18942","name":"TANGUT COMPONENT-323","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8942"},100675:{"value":"18943","name":"TANGUT COMPONENT-324","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8943"},100676:{"value":"18944","name":"TANGUT COMPONENT-325","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8944"},100677:{"value":"18945","name":"TANGUT COMPONENT-326","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8945"},100678:{"value":"18946","name":"TANGUT COMPONENT-327","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8946"},100679:{"value":"18947","name":"TANGUT COMPONENT-328","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8947"},100680:{"value":"18948","name":"TANGUT COMPONENT-329","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8948"},100681:{"value":"18949","name":"TANGUT COMPONENT-330","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8949"},100682:{"value":"1894A","name":"TANGUT COMPONENT-331","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u894A"},100683:{"value":"1894B","name":"TANGUT COMPONENT-332","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u894B"},100684:{"value":"1894C","name":"TANGUT COMPONENT-333","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u894C"},100685:{"value":"1894D","name":"TANGUT COMPONENT-334","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u894D"},100686:{"value":"1894E","name":"TANGUT COMPONENT-335","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u894E"},100687:{"value":"1894F","name":"TANGUT COMPONENT-336","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u894F"},100688:{"value":"18950","name":"TANGUT COMPONENT-337","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8950"},100689:{"value":"18951","name":"TANGUT COMPONENT-338","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8951"},100690:{"value":"18952","name":"TANGUT COMPONENT-339","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8952"},100691:{"value":"18953","name":"TANGUT COMPONENT-340","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8953"},100692:{"value":"18954","name":"TANGUT COMPONENT-341","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8954"},100693:{"value":"18955","name":"TANGUT COMPONENT-342","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8955"},100694:{"value":"18956","name":"TANGUT COMPONENT-343","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8956"},100695:{"value":"18957","name":"TANGUT COMPONENT-344","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8957"},100696:{"value":"18958","name":"TANGUT COMPONENT-345","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8958"},100697:{"value":"18959","name":"TANGUT COMPONENT-346","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8959"},100698:{"value":"1895A","name":"TANGUT COMPONENT-347","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u895A"},100699:{"value":"1895B","name":"TANGUT COMPONENT-348","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u895B"},100700:{"value":"1895C","name":"TANGUT COMPONENT-349","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u895C"},100701:{"value":"1895D","name":"TANGUT COMPONENT-350","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u895D"},100702:{"value":"1895E","name":"TANGUT COMPONENT-351","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u895E"},100703:{"value":"1895F","name":"TANGUT COMPONENT-352","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u895F"},100704:{"value":"18960","name":"TANGUT COMPONENT-353","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8960"},100705:{"value":"18961","name":"TANGUT COMPONENT-354","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8961"},100706:{"value":"18962","name":"TANGUT COMPONENT-355","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8962"},100707:{"value":"18963","name":"TANGUT COMPONENT-356","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8963"},100708:{"value":"18964","name":"TANGUT COMPONENT-357","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8964"},100709:{"value":"18965","name":"TANGUT COMPONENT-358","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8965"},100710:{"value":"18966","name":"TANGUT COMPONENT-359","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8966"},100711:{"value":"18967","name":"TANGUT COMPONENT-360","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8967"},100712:{"value":"18968","name":"TANGUT COMPONENT-361","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8968"},100713:{"value":"18969","name":"TANGUT COMPONENT-362","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8969"},100714:{"value":"1896A","name":"TANGUT COMPONENT-363","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u896A"},100715:{"value":"1896B","name":"TANGUT COMPONENT-364","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u896B"},100716:{"value":"1896C","name":"TANGUT COMPONENT-365","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u896C"},100717:{"value":"1896D","name":"TANGUT COMPONENT-366","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u896D"},100718:{"value":"1896E","name":"TANGUT COMPONENT-367","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u896E"},100719:{"value":"1896F","name":"TANGUT COMPONENT-368","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u896F"},100720:{"value":"18970","name":"TANGUT COMPONENT-369","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8970"},100721:{"value":"18971","name":"TANGUT COMPONENT-370","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8971"},100722:{"value":"18972","name":"TANGUT COMPONENT-371","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8972"},100723:{"value":"18973","name":"TANGUT COMPONENT-372","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8973"},100724:{"value":"18974","name":"TANGUT COMPONENT-373","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8974"},100725:{"value":"18975","name":"TANGUT COMPONENT-374","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8975"},100726:{"value":"18976","name":"TANGUT COMPONENT-375","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8976"},100727:{"value":"18977","name":"TANGUT COMPONENT-376","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8977"},100728:{"value":"18978","name":"TANGUT COMPONENT-377","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8978"},100729:{"value":"18979","name":"TANGUT COMPONENT-378","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8979"},100730:{"value":"1897A","name":"TANGUT COMPONENT-379","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u897A"},100731:{"value":"1897B","name":"TANGUT COMPONENT-380","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u897B"},100732:{"value":"1897C","name":"TANGUT COMPONENT-381","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u897C"},100733:{"value":"1897D","name":"TANGUT COMPONENT-382","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u897D"},100734:{"value":"1897E","name":"TANGUT COMPONENT-383","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u897E"},100735:{"value":"1897F","name":"TANGUT COMPONENT-384","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u897F"},100736:{"value":"18980","name":"TANGUT COMPONENT-385","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8980"},100737:{"value":"18981","name":"TANGUT COMPONENT-386","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8981"},100738:{"value":"18982","name":"TANGUT COMPONENT-387","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8982"},100739:{"value":"18983","name":"TANGUT COMPONENT-388","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8983"},100740:{"value":"18984","name":"TANGUT COMPONENT-389","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8984"},100741:{"value":"18985","name":"TANGUT COMPONENT-390","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8985"},100742:{"value":"18986","name":"TANGUT COMPONENT-391","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8986"},100743:{"value":"18987","name":"TANGUT COMPONENT-392","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8987"},100744:{"value":"18988","name":"TANGUT COMPONENT-393","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8988"},100745:{"value":"18989","name":"TANGUT COMPONENT-394","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8989"},100746:{"value":"1898A","name":"TANGUT COMPONENT-395","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u898A"},100747:{"value":"1898B","name":"TANGUT COMPONENT-396","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u898B"},100748:{"value":"1898C","name":"TANGUT COMPONENT-397","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u898C"},100749:{"value":"1898D","name":"TANGUT COMPONENT-398","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u898D"},100750:{"value":"1898E","name":"TANGUT COMPONENT-399","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u898E"},100751:{"value":"1898F","name":"TANGUT COMPONENT-400","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u898F"},100752:{"value":"18990","name":"TANGUT COMPONENT-401","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8990"},100753:{"value":"18991","name":"TANGUT COMPONENT-402","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8991"},100754:{"value":"18992","name":"TANGUT COMPONENT-403","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8992"},100755:{"value":"18993","name":"TANGUT COMPONENT-404","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8993"},100756:{"value":"18994","name":"TANGUT COMPONENT-405","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8994"},100757:{"value":"18995","name":"TANGUT COMPONENT-406","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8995"},100758:{"value":"18996","name":"TANGUT COMPONENT-407","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8996"},100759:{"value":"18997","name":"TANGUT COMPONENT-408","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8997"},100760:{"value":"18998","name":"TANGUT COMPONENT-409","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8998"},100761:{"value":"18999","name":"TANGUT COMPONENT-410","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8999"},100762:{"value":"1899A","name":"TANGUT COMPONENT-411","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u899A"},100763:{"value":"1899B","name":"TANGUT COMPONENT-412","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u899B"},100764:{"value":"1899C","name":"TANGUT COMPONENT-413","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u899C"},100765:{"value":"1899D","name":"TANGUT COMPONENT-414","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u899D"},100766:{"value":"1899E","name":"TANGUT COMPONENT-415","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u899E"},100767:{"value":"1899F","name":"TANGUT COMPONENT-416","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u899F"},100768:{"value":"189A0","name":"TANGUT COMPONENT-417","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89A0"},100769:{"value":"189A1","name":"TANGUT COMPONENT-418","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89A1"},100770:{"value":"189A2","name":"TANGUT COMPONENT-419","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89A2"},100771:{"value":"189A3","name":"TANGUT COMPONENT-420","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89A3"},100772:{"value":"189A4","name":"TANGUT COMPONENT-421","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89A4"},100773:{"value":"189A5","name":"TANGUT COMPONENT-422","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89A5"},100774:{"value":"189A6","name":"TANGUT COMPONENT-423","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89A6"},100775:{"value":"189A7","name":"TANGUT COMPONENT-424","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89A7"},100776:{"value":"189A8","name":"TANGUT COMPONENT-425","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89A8"},100777:{"value":"189A9","name":"TANGUT COMPONENT-426","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89A9"},100778:{"value":"189AA","name":"TANGUT COMPONENT-427","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89AA"},100779:{"value":"189AB","name":"TANGUT COMPONENT-428","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89AB"},100780:{"value":"189AC","name":"TANGUT COMPONENT-429","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89AC"},100781:{"value":"189AD","name":"TANGUT COMPONENT-430","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89AD"},100782:{"value":"189AE","name":"TANGUT COMPONENT-431","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89AE"},100783:{"value":"189AF","name":"TANGUT COMPONENT-432","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89AF"},100784:{"value":"189B0","name":"TANGUT COMPONENT-433","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89B0"},100785:{"value":"189B1","name":"TANGUT COMPONENT-434","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89B1"},100786:{"value":"189B2","name":"TANGUT COMPONENT-435","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89B2"},100787:{"value":"189B3","name":"TANGUT COMPONENT-436","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89B3"},100788:{"value":"189B4","name":"TANGUT COMPONENT-437","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89B4"},100789:{"value":"189B5","name":"TANGUT COMPONENT-438","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89B5"},100790:{"value":"189B6","name":"TANGUT COMPONENT-439","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89B6"},100791:{"value":"189B7","name":"TANGUT COMPONENT-440","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89B7"},100792:{"value":"189B8","name":"TANGUT COMPONENT-441","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89B8"},100793:{"value":"189B9","name":"TANGUT COMPONENT-442","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89B9"},100794:{"value":"189BA","name":"TANGUT COMPONENT-443","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89BA"},100795:{"value":"189BB","name":"TANGUT COMPONENT-444","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89BB"},100796:{"value":"189BC","name":"TANGUT COMPONENT-445","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89BC"},100797:{"value":"189BD","name":"TANGUT COMPONENT-446","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89BD"},100798:{"value":"189BE","name":"TANGUT COMPONENT-447","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89BE"},100799:{"value":"189BF","name":"TANGUT COMPONENT-448","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89BF"},100800:{"value":"189C0","name":"TANGUT COMPONENT-449","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89C0"},100801:{"value":"189C1","name":"TANGUT COMPONENT-450","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89C1"},100802:{"value":"189C2","name":"TANGUT COMPONENT-451","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89C2"},100803:{"value":"189C3","name":"TANGUT COMPONENT-452","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89C3"},100804:{"value":"189C4","name":"TANGUT COMPONENT-453","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89C4"},100805:{"value":"189C5","name":"TANGUT COMPONENT-454","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89C5"},100806:{"value":"189C6","name":"TANGUT COMPONENT-455","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89C6"},100807:{"value":"189C7","name":"TANGUT COMPONENT-456","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89C7"},100808:{"value":"189C8","name":"TANGUT COMPONENT-457","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89C8"},100809:{"value":"189C9","name":"TANGUT COMPONENT-458","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89C9"},100810:{"value":"189CA","name":"TANGUT COMPONENT-459","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89CA"},100811:{"value":"189CB","name":"TANGUT COMPONENT-460","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89CB"},100812:{"value":"189CC","name":"TANGUT COMPONENT-461","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89CC"},100813:{"value":"189CD","name":"TANGUT COMPONENT-462","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89CD"},100814:{"value":"189CE","name":"TANGUT COMPONENT-463","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89CE"},100815:{"value":"189CF","name":"TANGUT COMPONENT-464","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89CF"},100816:{"value":"189D0","name":"TANGUT COMPONENT-465","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89D0"},100817:{"value":"189D1","name":"TANGUT COMPONENT-466","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89D1"},100818:{"value":"189D2","name":"TANGUT COMPONENT-467","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89D2"},100819:{"value":"189D3","name":"TANGUT COMPONENT-468","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89D3"},100820:{"value":"189D4","name":"TANGUT COMPONENT-469","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89D4"},100821:{"value":"189D5","name":"TANGUT COMPONENT-470","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89D5"},100822:{"value":"189D6","name":"TANGUT COMPONENT-471","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89D6"},100823:{"value":"189D7","name":"TANGUT COMPONENT-472","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89D7"},100824:{"value":"189D8","name":"TANGUT COMPONENT-473","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89D8"},100825:{"value":"189D9","name":"TANGUT COMPONENT-474","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89D9"},100826:{"value":"189DA","name":"TANGUT COMPONENT-475","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89DA"},100827:{"value":"189DB","name":"TANGUT COMPONENT-476","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89DB"},100828:{"value":"189DC","name":"TANGUT COMPONENT-477","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89DC"},100829:{"value":"189DD","name":"TANGUT COMPONENT-478","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89DD"},100830:{"value":"189DE","name":"TANGUT COMPONENT-479","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89DE"},100831:{"value":"189DF","name":"TANGUT COMPONENT-480","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89DF"},100832:{"value":"189E0","name":"TANGUT COMPONENT-481","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89E0"},100833:{"value":"189E1","name":"TANGUT COMPONENT-482","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89E1"},100834:{"value":"189E2","name":"TANGUT COMPONENT-483","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89E2"},100835:{"value":"189E3","name":"TANGUT COMPONENT-484","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89E3"},100836:{"value":"189E4","name":"TANGUT COMPONENT-485","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89E4"},100837:{"value":"189E5","name":"TANGUT COMPONENT-486","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89E5"},100838:{"value":"189E6","name":"TANGUT COMPONENT-487","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89E6"},100839:{"value":"189E7","name":"TANGUT COMPONENT-488","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89E7"},100840:{"value":"189E8","name":"TANGUT COMPONENT-489","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89E8"},100841:{"value":"189E9","name":"TANGUT COMPONENT-490","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89E9"},100842:{"value":"189EA","name":"TANGUT COMPONENT-491","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89EA"},100843:{"value":"189EB","name":"TANGUT COMPONENT-492","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89EB"},100844:{"value":"189EC","name":"TANGUT COMPONENT-493","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89EC"},100845:{"value":"189ED","name":"TANGUT COMPONENT-494","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89ED"},100846:{"value":"189EE","name":"TANGUT COMPONENT-495","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89EE"},100847:{"value":"189EF","name":"TANGUT COMPONENT-496","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89EF"},100848:{"value":"189F0","name":"TANGUT COMPONENT-497","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89F0"},100849:{"value":"189F1","name":"TANGUT COMPONENT-498","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89F1"},100850:{"value":"189F2","name":"TANGUT COMPONENT-499","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89F2"},100851:{"value":"189F3","name":"TANGUT COMPONENT-500","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89F3"},100852:{"value":"189F4","name":"TANGUT COMPONENT-501","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89F4"},100853:{"value":"189F5","name":"TANGUT COMPONENT-502","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89F5"},100854:{"value":"189F6","name":"TANGUT COMPONENT-503","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89F6"},100855:{"value":"189F7","name":"TANGUT COMPONENT-504","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89F7"},100856:{"value":"189F8","name":"TANGUT COMPONENT-505","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89F8"},100857:{"value":"189F9","name":"TANGUT COMPONENT-506","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89F9"},100858:{"value":"189FA","name":"TANGUT COMPONENT-507","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89FA"},100859:{"value":"189FB","name":"TANGUT COMPONENT-508","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89FB"},100860:{"value":"189FC","name":"TANGUT COMPONENT-509","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89FC"},100861:{"value":"189FD","name":"TANGUT COMPONENT-510","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89FD"},100862:{"value":"189FE","name":"TANGUT COMPONENT-511","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89FE"},100863:{"value":"189FF","name":"TANGUT COMPONENT-512","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u89FF"},100864:{"value":"18A00","name":"TANGUT COMPONENT-513","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A00"},100865:{"value":"18A01","name":"TANGUT COMPONENT-514","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A01"},100866:{"value":"18A02","name":"TANGUT COMPONENT-515","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A02"},100867:{"value":"18A03","name":"TANGUT COMPONENT-516","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A03"},100868:{"value":"18A04","name":"TANGUT COMPONENT-517","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A04"},100869:{"value":"18A05","name":"TANGUT COMPONENT-518","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A05"},100870:{"value":"18A06","name":"TANGUT COMPONENT-519","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A06"},100871:{"value":"18A07","name":"TANGUT COMPONENT-520","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A07"},100872:{"value":"18A08","name":"TANGUT COMPONENT-521","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A08"},100873:{"value":"18A09","name":"TANGUT COMPONENT-522","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A09"},100874:{"value":"18A0A","name":"TANGUT COMPONENT-523","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A0A"},100875:{"value":"18A0B","name":"TANGUT COMPONENT-524","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A0B"},100876:{"value":"18A0C","name":"TANGUT COMPONENT-525","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A0C"},100877:{"value":"18A0D","name":"TANGUT COMPONENT-526","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A0D"},100878:{"value":"18A0E","name":"TANGUT COMPONENT-527","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A0E"},100879:{"value":"18A0F","name":"TANGUT COMPONENT-528","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A0F"},100880:{"value":"18A10","name":"TANGUT COMPONENT-529","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A10"},100881:{"value":"18A11","name":"TANGUT COMPONENT-530","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A11"},100882:{"value":"18A12","name":"TANGUT COMPONENT-531","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A12"},100883:{"value":"18A13","name":"TANGUT COMPONENT-532","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A13"},100884:{"value":"18A14","name":"TANGUT COMPONENT-533","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A14"},100885:{"value":"18A15","name":"TANGUT COMPONENT-534","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A15"},100886:{"value":"18A16","name":"TANGUT COMPONENT-535","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A16"},100887:{"value":"18A17","name":"TANGUT COMPONENT-536","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A17"},100888:{"value":"18A18","name":"TANGUT COMPONENT-537","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A18"},100889:{"value":"18A19","name":"TANGUT COMPONENT-538","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A19"},100890:{"value":"18A1A","name":"TANGUT COMPONENT-539","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A1A"},100891:{"value":"18A1B","name":"TANGUT COMPONENT-540","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A1B"},100892:{"value":"18A1C","name":"TANGUT COMPONENT-541","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A1C"},100893:{"value":"18A1D","name":"TANGUT COMPONENT-542","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A1D"},100894:{"value":"18A1E","name":"TANGUT COMPONENT-543","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A1E"},100895:{"value":"18A1F","name":"TANGUT COMPONENT-544","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A1F"},100896:{"value":"18A20","name":"TANGUT COMPONENT-545","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A20"},100897:{"value":"18A21","name":"TANGUT COMPONENT-546","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A21"},100898:{"value":"18A22","name":"TANGUT COMPONENT-547","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A22"},100899:{"value":"18A23","name":"TANGUT COMPONENT-548","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A23"},100900:{"value":"18A24","name":"TANGUT COMPONENT-549","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A24"},100901:{"value":"18A25","name":"TANGUT COMPONENT-550","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A25"},100902:{"value":"18A26","name":"TANGUT COMPONENT-551","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A26"},100903:{"value":"18A27","name":"TANGUT COMPONENT-552","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A27"},100904:{"value":"18A28","name":"TANGUT COMPONENT-553","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A28"},100905:{"value":"18A29","name":"TANGUT COMPONENT-554","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A29"},100906:{"value":"18A2A","name":"TANGUT COMPONENT-555","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A2A"},100907:{"value":"18A2B","name":"TANGUT COMPONENT-556","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A2B"},100908:{"value":"18A2C","name":"TANGUT COMPONENT-557","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A2C"},100909:{"value":"18A2D","name":"TANGUT COMPONENT-558","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A2D"},100910:{"value":"18A2E","name":"TANGUT COMPONENT-559","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A2E"},100911:{"value":"18A2F","name":"TANGUT COMPONENT-560","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A2F"},100912:{"value":"18A30","name":"TANGUT COMPONENT-561","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A30"},100913:{"value":"18A31","name":"TANGUT COMPONENT-562","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A31"},100914:{"value":"18A32","name":"TANGUT COMPONENT-563","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A32"},100915:{"value":"18A33","name":"TANGUT COMPONENT-564","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A33"},100916:{"value":"18A34","name":"TANGUT COMPONENT-565","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A34"},100917:{"value":"18A35","name":"TANGUT COMPONENT-566","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A35"},100918:{"value":"18A36","name":"TANGUT COMPONENT-567","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A36"},100919:{"value":"18A37","name":"TANGUT COMPONENT-568","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A37"},100920:{"value":"18A38","name":"TANGUT COMPONENT-569","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A38"},100921:{"value":"18A39","name":"TANGUT COMPONENT-570","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A39"},100922:{"value":"18A3A","name":"TANGUT COMPONENT-571","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A3A"},100923:{"value":"18A3B","name":"TANGUT COMPONENT-572","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A3B"},100924:{"value":"18A3C","name":"TANGUT COMPONENT-573","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A3C"},100925:{"value":"18A3D","name":"TANGUT COMPONENT-574","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A3D"},100926:{"value":"18A3E","name":"TANGUT COMPONENT-575","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A3E"},100927:{"value":"18A3F","name":"TANGUT COMPONENT-576","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A3F"},100928:{"value":"18A40","name":"TANGUT COMPONENT-577","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A40"},100929:{"value":"18A41","name":"TANGUT COMPONENT-578","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A41"},100930:{"value":"18A42","name":"TANGUT COMPONENT-579","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A42"},100931:{"value":"18A43","name":"TANGUT COMPONENT-580","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A43"},100932:{"value":"18A44","name":"TANGUT COMPONENT-581","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A44"},100933:{"value":"18A45","name":"TANGUT COMPONENT-582","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A45"},100934:{"value":"18A46","name":"TANGUT COMPONENT-583","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A46"},100935:{"value":"18A47","name":"TANGUT COMPONENT-584","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A47"},100936:{"value":"18A48","name":"TANGUT COMPONENT-585","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A48"},100937:{"value":"18A49","name":"TANGUT COMPONENT-586","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A49"},100938:{"value":"18A4A","name":"TANGUT COMPONENT-587","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A4A"},100939:{"value":"18A4B","name":"TANGUT COMPONENT-588","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A4B"},100940:{"value":"18A4C","name":"TANGUT COMPONENT-589","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A4C"},100941:{"value":"18A4D","name":"TANGUT COMPONENT-590","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A4D"},100942:{"value":"18A4E","name":"TANGUT COMPONENT-591","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A4E"},100943:{"value":"18A4F","name":"TANGUT COMPONENT-592","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A4F"},100944:{"value":"18A50","name":"TANGUT COMPONENT-593","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A50"},100945:{"value":"18A51","name":"TANGUT COMPONENT-594","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A51"},100946:{"value":"18A52","name":"TANGUT COMPONENT-595","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A52"},100947:{"value":"18A53","name":"TANGUT COMPONENT-596","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A53"},100948:{"value":"18A54","name":"TANGUT COMPONENT-597","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A54"},100949:{"value":"18A55","name":"TANGUT COMPONENT-598","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A55"},100950:{"value":"18A56","name":"TANGUT COMPONENT-599","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A56"},100951:{"value":"18A57","name":"TANGUT COMPONENT-600","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A57"},100952:{"value":"18A58","name":"TANGUT COMPONENT-601","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A58"},100953:{"value":"18A59","name":"TANGUT COMPONENT-602","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A59"},100954:{"value":"18A5A","name":"TANGUT COMPONENT-603","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A5A"},100955:{"value":"18A5B","name":"TANGUT COMPONENT-604","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A5B"},100956:{"value":"18A5C","name":"TANGUT COMPONENT-605","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A5C"},100957:{"value":"18A5D","name":"TANGUT COMPONENT-606","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A5D"},100958:{"value":"18A5E","name":"TANGUT COMPONENT-607","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A5E"},100959:{"value":"18A5F","name":"TANGUT COMPONENT-608","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A5F"},100960:{"value":"18A60","name":"TANGUT COMPONENT-609","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A60"},100961:{"value":"18A61","name":"TANGUT COMPONENT-610","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A61"},100962:{"value":"18A62","name":"TANGUT COMPONENT-611","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A62"},100963:{"value":"18A63","name":"TANGUT COMPONENT-612","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A63"},100964:{"value":"18A64","name":"TANGUT COMPONENT-613","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A64"},100965:{"value":"18A65","name":"TANGUT COMPONENT-614","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A65"},100966:{"value":"18A66","name":"TANGUT COMPONENT-615","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A66"},100967:{"value":"18A67","name":"TANGUT COMPONENT-616","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A67"},100968:{"value":"18A68","name":"TANGUT COMPONENT-617","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A68"},100969:{"value":"18A69","name":"TANGUT COMPONENT-618","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A69"},100970:{"value":"18A6A","name":"TANGUT COMPONENT-619","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A6A"},100971:{"value":"18A6B","name":"TANGUT COMPONENT-620","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A6B"},100972:{"value":"18A6C","name":"TANGUT COMPONENT-621","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A6C"},100973:{"value":"18A6D","name":"TANGUT COMPONENT-622","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A6D"},100974:{"value":"18A6E","name":"TANGUT COMPONENT-623","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A6E"},100975:{"value":"18A6F","name":"TANGUT COMPONENT-624","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A6F"},100976:{"value":"18A70","name":"TANGUT COMPONENT-625","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A70"},100977:{"value":"18A71","name":"TANGUT COMPONENT-626","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A71"},100978:{"value":"18A72","name":"TANGUT COMPONENT-627","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A72"},100979:{"value":"18A73","name":"TANGUT COMPONENT-628","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A73"},100980:{"value":"18A74","name":"TANGUT COMPONENT-629","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A74"},100981:{"value":"18A75","name":"TANGUT COMPONENT-630","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A75"},100982:{"value":"18A76","name":"TANGUT COMPONENT-631","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A76"},100983:{"value":"18A77","name":"TANGUT COMPONENT-632","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A77"},100984:{"value":"18A78","name":"TANGUT COMPONENT-633","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A78"},100985:{"value":"18A79","name":"TANGUT COMPONENT-634","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A79"},100986:{"value":"18A7A","name":"TANGUT COMPONENT-635","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A7A"},100987:{"value":"18A7B","name":"TANGUT COMPONENT-636","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A7B"},100988:{"value":"18A7C","name":"TANGUT COMPONENT-637","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A7C"},100989:{"value":"18A7D","name":"TANGUT COMPONENT-638","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A7D"},100990:{"value":"18A7E","name":"TANGUT COMPONENT-639","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A7E"},100991:{"value":"18A7F","name":"TANGUT COMPONENT-640","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A7F"},100992:{"value":"18A80","name":"TANGUT COMPONENT-641","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A80"},100993:{"value":"18A81","name":"TANGUT COMPONENT-642","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A81"},100994:{"value":"18A82","name":"TANGUT COMPONENT-643","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A82"},100995:{"value":"18A83","name":"TANGUT COMPONENT-644","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A83"},100996:{"value":"18A84","name":"TANGUT COMPONENT-645","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A84"},100997:{"value":"18A85","name":"TANGUT COMPONENT-646","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A85"},100998:{"value":"18A86","name":"TANGUT COMPONENT-647","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A86"},100999:{"value":"18A87","name":"TANGUT COMPONENT-648","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A87"},101000:{"value":"18A88","name":"TANGUT COMPONENT-649","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A88"},101001:{"value":"18A89","name":"TANGUT COMPONENT-650","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A89"},101002:{"value":"18A8A","name":"TANGUT COMPONENT-651","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A8A"},101003:{"value":"18A8B","name":"TANGUT COMPONENT-652","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A8B"},101004:{"value":"18A8C","name":"TANGUT COMPONENT-653","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A8C"},101005:{"value":"18A8D","name":"TANGUT COMPONENT-654","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A8D"},101006:{"value":"18A8E","name":"TANGUT COMPONENT-655","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A8E"},101007:{"value":"18A8F","name":"TANGUT COMPONENT-656","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A8F"},101008:{"value":"18A90","name":"TANGUT COMPONENT-657","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A90"},101009:{"value":"18A91","name":"TANGUT COMPONENT-658","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A91"},101010:{"value":"18A92","name":"TANGUT COMPONENT-659","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A92"},101011:{"value":"18A93","name":"TANGUT COMPONENT-660","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A93"},101012:{"value":"18A94","name":"TANGUT COMPONENT-661","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A94"},101013:{"value":"18A95","name":"TANGUT COMPONENT-662","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A95"},101014:{"value":"18A96","name":"TANGUT COMPONENT-663","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A96"},101015:{"value":"18A97","name":"TANGUT COMPONENT-664","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A97"},101016:{"value":"18A98","name":"TANGUT COMPONENT-665","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A98"},101017:{"value":"18A99","name":"TANGUT COMPONENT-666","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A99"},101018:{"value":"18A9A","name":"TANGUT COMPONENT-667","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A9A"},101019:{"value":"18A9B","name":"TANGUT COMPONENT-668","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A9B"},101020:{"value":"18A9C","name":"TANGUT COMPONENT-669","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A9C"},101021:{"value":"18A9D","name":"TANGUT COMPONENT-670","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A9D"},101022:{"value":"18A9E","name":"TANGUT COMPONENT-671","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A9E"},101023:{"value":"18A9F","name":"TANGUT COMPONENT-672","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8A9F"},101024:{"value":"18AA0","name":"TANGUT COMPONENT-673","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AA0"},101025:{"value":"18AA1","name":"TANGUT COMPONENT-674","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AA1"},101026:{"value":"18AA2","name":"TANGUT COMPONENT-675","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AA2"},101027:{"value":"18AA3","name":"TANGUT COMPONENT-676","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AA3"},101028:{"value":"18AA4","name":"TANGUT COMPONENT-677","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AA4"},101029:{"value":"18AA5","name":"TANGUT COMPONENT-678","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AA5"},101030:{"value":"18AA6","name":"TANGUT COMPONENT-679","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AA6"},101031:{"value":"18AA7","name":"TANGUT COMPONENT-680","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AA7"},101032:{"value":"18AA8","name":"TANGUT COMPONENT-681","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AA8"},101033:{"value":"18AA9","name":"TANGUT COMPONENT-682","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AA9"},101034:{"value":"18AAA","name":"TANGUT COMPONENT-683","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AAA"},101035:{"value":"18AAB","name":"TANGUT COMPONENT-684","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AAB"},101036:{"value":"18AAC","name":"TANGUT COMPONENT-685","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AAC"},101037:{"value":"18AAD","name":"TANGUT COMPONENT-686","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AAD"},101038:{"value":"18AAE","name":"TANGUT COMPONENT-687","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AAE"},101039:{"value":"18AAF","name":"TANGUT COMPONENT-688","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AAF"},101040:{"value":"18AB0","name":"TANGUT COMPONENT-689","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AB0"},101041:{"value":"18AB1","name":"TANGUT COMPONENT-690","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AB1"},101042:{"value":"18AB2","name":"TANGUT COMPONENT-691","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AB2"},101043:{"value":"18AB3","name":"TANGUT COMPONENT-692","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AB3"},101044:{"value":"18AB4","name":"TANGUT COMPONENT-693","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AB4"},101045:{"value":"18AB5","name":"TANGUT COMPONENT-694","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AB5"},101046:{"value":"18AB6","name":"TANGUT COMPONENT-695","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AB6"},101047:{"value":"18AB7","name":"TANGUT COMPONENT-696","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AB7"},101048:{"value":"18AB8","name":"TANGUT COMPONENT-697","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AB8"},101049:{"value":"18AB9","name":"TANGUT COMPONENT-698","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AB9"},101050:{"value":"18ABA","name":"TANGUT COMPONENT-699","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ABA"},101051:{"value":"18ABB","name":"TANGUT COMPONENT-700","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ABB"},101052:{"value":"18ABC","name":"TANGUT COMPONENT-701","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ABC"},101053:{"value":"18ABD","name":"TANGUT COMPONENT-702","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ABD"},101054:{"value":"18ABE","name":"TANGUT COMPONENT-703","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ABE"},101055:{"value":"18ABF","name":"TANGUT COMPONENT-704","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ABF"},101056:{"value":"18AC0","name":"TANGUT COMPONENT-705","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AC0"},101057:{"value":"18AC1","name":"TANGUT COMPONENT-706","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AC1"},101058:{"value":"18AC2","name":"TANGUT COMPONENT-707","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AC2"},101059:{"value":"18AC3","name":"TANGUT COMPONENT-708","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AC3"},101060:{"value":"18AC4","name":"TANGUT COMPONENT-709","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AC4"},101061:{"value":"18AC5","name":"TANGUT COMPONENT-710","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AC5"},101062:{"value":"18AC6","name":"TANGUT COMPONENT-711","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AC6"},101063:{"value":"18AC7","name":"TANGUT COMPONENT-712","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AC7"},101064:{"value":"18AC8","name":"TANGUT COMPONENT-713","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AC8"},101065:{"value":"18AC9","name":"TANGUT COMPONENT-714","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AC9"},101066:{"value":"18ACA","name":"TANGUT COMPONENT-715","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ACA"},101067:{"value":"18ACB","name":"TANGUT COMPONENT-716","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ACB"},101068:{"value":"18ACC","name":"TANGUT COMPONENT-717","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ACC"},101069:{"value":"18ACD","name":"TANGUT COMPONENT-718","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ACD"},101070:{"value":"18ACE","name":"TANGUT COMPONENT-719","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ACE"},101071:{"value":"18ACF","name":"TANGUT COMPONENT-720","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ACF"},101072:{"value":"18AD0","name":"TANGUT COMPONENT-721","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AD0"},101073:{"value":"18AD1","name":"TANGUT COMPONENT-722","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AD1"},101074:{"value":"18AD2","name":"TANGUT COMPONENT-723","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AD2"},101075:{"value":"18AD3","name":"TANGUT COMPONENT-724","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AD3"},101076:{"value":"18AD4","name":"TANGUT COMPONENT-725","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AD4"},101077:{"value":"18AD5","name":"TANGUT COMPONENT-726","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AD5"},101078:{"value":"18AD6","name":"TANGUT COMPONENT-727","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AD6"},101079:{"value":"18AD7","name":"TANGUT COMPONENT-728","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AD7"},101080:{"value":"18AD8","name":"TANGUT COMPONENT-729","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AD8"},101081:{"value":"18AD9","name":"TANGUT COMPONENT-730","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AD9"},101082:{"value":"18ADA","name":"TANGUT COMPONENT-731","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ADA"},101083:{"value":"18ADB","name":"TANGUT COMPONENT-732","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ADB"},101084:{"value":"18ADC","name":"TANGUT COMPONENT-733","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ADC"},101085:{"value":"18ADD","name":"TANGUT COMPONENT-734","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ADD"},101086:{"value":"18ADE","name":"TANGUT COMPONENT-735","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ADE"},101087:{"value":"18ADF","name":"TANGUT COMPONENT-736","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8ADF"},101088:{"value":"18AE0","name":"TANGUT COMPONENT-737","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AE0"},101089:{"value":"18AE1","name":"TANGUT COMPONENT-738","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AE1"},101090:{"value":"18AE2","name":"TANGUT COMPONENT-739","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AE2"},101091:{"value":"18AE3","name":"TANGUT COMPONENT-740","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AE3"},101092:{"value":"18AE4","name":"TANGUT COMPONENT-741","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AE4"},101093:{"value":"18AE5","name":"TANGUT COMPONENT-742","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AE5"},101094:{"value":"18AE6","name":"TANGUT COMPONENT-743","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AE6"},101095:{"value":"18AE7","name":"TANGUT COMPONENT-744","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AE7"},101096:{"value":"18AE8","name":"TANGUT COMPONENT-745","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AE8"},101097:{"value":"18AE9","name":"TANGUT COMPONENT-746","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AE9"},101098:{"value":"18AEA","name":"TANGUT COMPONENT-747","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AEA"},101099:{"value":"18AEB","name":"TANGUT COMPONENT-748","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AEB"},101100:{"value":"18AEC","name":"TANGUT COMPONENT-749","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AEC"},101101:{"value":"18AED","name":"TANGUT COMPONENT-750","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AED"},101102:{"value":"18AEE","name":"TANGUT COMPONENT-751","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AEE"},101103:{"value":"18AEF","name":"TANGUT COMPONENT-752","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AEF"},101104:{"value":"18AF0","name":"TANGUT COMPONENT-753","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AF0"},101105:{"value":"18AF1","name":"TANGUT COMPONENT-754","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AF1"},101106:{"value":"18AF2","name":"TANGUT COMPONENT-755","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u8AF2"},110592:{"value":"1B000","name":"KATAKANA LETTER ARCHAIC E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB000"},110593:{"value":"1B001","name":"HIRAGANA LETTER ARCHAIC YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB001"},110594:{"value":"1B002","name":"HENTAIGANA LETTER A-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB002"},110595:{"value":"1B003","name":"HENTAIGANA LETTER A-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB003"},110596:{"value":"1B004","name":"HENTAIGANA LETTER A-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB004"},110597:{"value":"1B005","name":"HENTAIGANA LETTER A-WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB005"},110598:{"value":"1B006","name":"HENTAIGANA LETTER I-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB006"},110599:{"value":"1B007","name":"HENTAIGANA LETTER I-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB007"},110600:{"value":"1B008","name":"HENTAIGANA LETTER I-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB008"},110601:{"value":"1B009","name":"HENTAIGANA LETTER I-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB009"},110602:{"value":"1B00A","name":"HENTAIGANA LETTER U-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB00A"},110603:{"value":"1B00B","name":"HENTAIGANA LETTER U-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB00B"},110604:{"value":"1B00C","name":"HENTAIGANA LETTER U-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB00C"},110605:{"value":"1B00D","name":"HENTAIGANA LETTER U-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB00D"},110606:{"value":"1B00E","name":"HENTAIGANA LETTER U-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB00E"},110607:{"value":"1B00F","name":"HENTAIGANA LETTER E-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB00F"},110608:{"value":"1B010","name":"HENTAIGANA LETTER E-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB010"},110609:{"value":"1B011","name":"HENTAIGANA LETTER E-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB011"},110610:{"value":"1B012","name":"HENTAIGANA LETTER E-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB012"},110611:{"value":"1B013","name":"HENTAIGANA LETTER E-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB013"},110612:{"value":"1B014","name":"HENTAIGANA LETTER O-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB014"},110613:{"value":"1B015","name":"HENTAIGANA LETTER O-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB015"},110614:{"value":"1B016","name":"HENTAIGANA LETTER O-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB016"},110615:{"value":"1B017","name":"HENTAIGANA LETTER KA-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB017"},110616:{"value":"1B018","name":"HENTAIGANA LETTER KA-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB018"},110617:{"value":"1B019","name":"HENTAIGANA LETTER KA-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB019"},110618:{"value":"1B01A","name":"HENTAIGANA LETTER KA-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB01A"},110619:{"value":"1B01B","name":"HENTAIGANA LETTER KA-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB01B"},110620:{"value":"1B01C","name":"HENTAIGANA LETTER KA-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB01C"},110621:{"value":"1B01D","name":"HENTAIGANA LETTER KA-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB01D"},110622:{"value":"1B01E","name":"HENTAIGANA LETTER KA-8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB01E"},110623:{"value":"1B01F","name":"HENTAIGANA LETTER KA-9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB01F"},110624:{"value":"1B020","name":"HENTAIGANA LETTER KA-10","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB020"},110625:{"value":"1B021","name":"HENTAIGANA LETTER KA-11","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB021"},110626:{"value":"1B022","name":"HENTAIGANA LETTER KA-KE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB022"},110627:{"value":"1B023","name":"HENTAIGANA LETTER KI-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB023"},110628:{"value":"1B024","name":"HENTAIGANA LETTER KI-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB024"},110629:{"value":"1B025","name":"HENTAIGANA LETTER KI-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB025"},110630:{"value":"1B026","name":"HENTAIGANA LETTER KI-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB026"},110631:{"value":"1B027","name":"HENTAIGANA LETTER KI-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB027"},110632:{"value":"1B028","name":"HENTAIGANA LETTER KI-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB028"},110633:{"value":"1B029","name":"HENTAIGANA LETTER KI-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB029"},110634:{"value":"1B02A","name":"HENTAIGANA LETTER KI-8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB02A"},110635:{"value":"1B02B","name":"HENTAIGANA LETTER KU-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB02B"},110636:{"value":"1B02C","name":"HENTAIGANA LETTER KU-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB02C"},110637:{"value":"1B02D","name":"HENTAIGANA LETTER KU-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB02D"},110638:{"value":"1B02E","name":"HENTAIGANA LETTER KU-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB02E"},110639:{"value":"1B02F","name":"HENTAIGANA LETTER KU-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB02F"},110640:{"value":"1B030","name":"HENTAIGANA LETTER KU-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB030"},110641:{"value":"1B031","name":"HENTAIGANA LETTER KU-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB031"},110642:{"value":"1B032","name":"HENTAIGANA LETTER KE-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB032"},110643:{"value":"1B033","name":"HENTAIGANA LETTER KE-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB033"},110644:{"value":"1B034","name":"HENTAIGANA LETTER KE-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB034"},110645:{"value":"1B035","name":"HENTAIGANA LETTER KE-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB035"},110646:{"value":"1B036","name":"HENTAIGANA LETTER KE-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB036"},110647:{"value":"1B037","name":"HENTAIGANA LETTER KE-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB037"},110648:{"value":"1B038","name":"HENTAIGANA LETTER KO-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB038"},110649:{"value":"1B039","name":"HENTAIGANA LETTER KO-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB039"},110650:{"value":"1B03A","name":"HENTAIGANA LETTER KO-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB03A"},110651:{"value":"1B03B","name":"HENTAIGANA LETTER KO-KI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB03B"},110652:{"value":"1B03C","name":"HENTAIGANA LETTER SA-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB03C"},110653:{"value":"1B03D","name":"HENTAIGANA LETTER SA-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB03D"},110654:{"value":"1B03E","name":"HENTAIGANA LETTER SA-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB03E"},110655:{"value":"1B03F","name":"HENTAIGANA LETTER SA-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB03F"},110656:{"value":"1B040","name":"HENTAIGANA LETTER SA-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB040"},110657:{"value":"1B041","name":"HENTAIGANA LETTER SA-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB041"},110658:{"value":"1B042","name":"HENTAIGANA LETTER SA-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB042"},110659:{"value":"1B043","name":"HENTAIGANA LETTER SA-8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB043"},110660:{"value":"1B044","name":"HENTAIGANA LETTER SI-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB044"},110661:{"value":"1B045","name":"HENTAIGANA LETTER SI-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB045"},110662:{"value":"1B046","name":"HENTAIGANA LETTER SI-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB046"},110663:{"value":"1B047","name":"HENTAIGANA LETTER SI-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB047"},110664:{"value":"1B048","name":"HENTAIGANA LETTER SI-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB048"},110665:{"value":"1B049","name":"HENTAIGANA LETTER SI-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB049"},110666:{"value":"1B04A","name":"HENTAIGANA LETTER SU-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB04A"},110667:{"value":"1B04B","name":"HENTAIGANA LETTER SU-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB04B"},110668:{"value":"1B04C","name":"HENTAIGANA LETTER SU-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB04C"},110669:{"value":"1B04D","name":"HENTAIGANA LETTER SU-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB04D"},110670:{"value":"1B04E","name":"HENTAIGANA LETTER SU-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB04E"},110671:{"value":"1B04F","name":"HENTAIGANA LETTER SU-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB04F"},110672:{"value":"1B050","name":"HENTAIGANA LETTER SU-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB050"},110673:{"value":"1B051","name":"HENTAIGANA LETTER SU-8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB051"},110674:{"value":"1B052","name":"HENTAIGANA LETTER SE-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB052"},110675:{"value":"1B053","name":"HENTAIGANA LETTER SE-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB053"},110676:{"value":"1B054","name":"HENTAIGANA LETTER SE-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB054"},110677:{"value":"1B055","name":"HENTAIGANA LETTER SE-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB055"},110678:{"value":"1B056","name":"HENTAIGANA LETTER SE-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB056"},110679:{"value":"1B057","name":"HENTAIGANA LETTER SO-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB057"},110680:{"value":"1B058","name":"HENTAIGANA LETTER SO-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB058"},110681:{"value":"1B059","name":"HENTAIGANA LETTER SO-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB059"},110682:{"value":"1B05A","name":"HENTAIGANA LETTER SO-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB05A"},110683:{"value":"1B05B","name":"HENTAIGANA LETTER SO-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB05B"},110684:{"value":"1B05C","name":"HENTAIGANA LETTER SO-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB05C"},110685:{"value":"1B05D","name":"HENTAIGANA LETTER SO-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB05D"},110686:{"value":"1B05E","name":"HENTAIGANA LETTER TA-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB05E"},110687:{"value":"1B05F","name":"HENTAIGANA LETTER TA-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB05F"},110688:{"value":"1B060","name":"HENTAIGANA LETTER TA-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB060"},110689:{"value":"1B061","name":"HENTAIGANA LETTER TA-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB061"},110690:{"value":"1B062","name":"HENTAIGANA LETTER TI-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB062"},110691:{"value":"1B063","name":"HENTAIGANA LETTER TI-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB063"},110692:{"value":"1B064","name":"HENTAIGANA LETTER TI-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB064"},110693:{"value":"1B065","name":"HENTAIGANA LETTER TI-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB065"},110694:{"value":"1B066","name":"HENTAIGANA LETTER TI-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB066"},110695:{"value":"1B067","name":"HENTAIGANA LETTER TI-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB067"},110696:{"value":"1B068","name":"HENTAIGANA LETTER TI-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB068"},110697:{"value":"1B069","name":"HENTAIGANA LETTER TU-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB069"},110698:{"value":"1B06A","name":"HENTAIGANA LETTER TU-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB06A"},110699:{"value":"1B06B","name":"HENTAIGANA LETTER TU-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB06B"},110700:{"value":"1B06C","name":"HENTAIGANA LETTER TU-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB06C"},110701:{"value":"1B06D","name":"HENTAIGANA LETTER TU-TO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB06D"},110702:{"value":"1B06E","name":"HENTAIGANA LETTER TE-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB06E"},110703:{"value":"1B06F","name":"HENTAIGANA LETTER TE-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB06F"},110704:{"value":"1B070","name":"HENTAIGANA LETTER TE-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB070"},110705:{"value":"1B071","name":"HENTAIGANA LETTER TE-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB071"},110706:{"value":"1B072","name":"HENTAIGANA LETTER TE-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB072"},110707:{"value":"1B073","name":"HENTAIGANA LETTER TE-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB073"},110708:{"value":"1B074","name":"HENTAIGANA LETTER TE-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB074"},110709:{"value":"1B075","name":"HENTAIGANA LETTER TE-8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB075"},110710:{"value":"1B076","name":"HENTAIGANA LETTER TE-9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB076"},110711:{"value":"1B077","name":"HENTAIGANA LETTER TO-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB077"},110712:{"value":"1B078","name":"HENTAIGANA LETTER TO-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB078"},110713:{"value":"1B079","name":"HENTAIGANA LETTER TO-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB079"},110714:{"value":"1B07A","name":"HENTAIGANA LETTER TO-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB07A"},110715:{"value":"1B07B","name":"HENTAIGANA LETTER TO-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB07B"},110716:{"value":"1B07C","name":"HENTAIGANA LETTER TO-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB07C"},110717:{"value":"1B07D","name":"HENTAIGANA LETTER TO-RA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB07D"},110718:{"value":"1B07E","name":"HENTAIGANA LETTER NA-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB07E"},110719:{"value":"1B07F","name":"HENTAIGANA LETTER NA-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB07F"},110720:{"value":"1B080","name":"HENTAIGANA LETTER NA-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB080"},110721:{"value":"1B081","name":"HENTAIGANA LETTER NA-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB081"},110722:{"value":"1B082","name":"HENTAIGANA LETTER NA-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB082"},110723:{"value":"1B083","name":"HENTAIGANA LETTER NA-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB083"},110724:{"value":"1B084","name":"HENTAIGANA LETTER NA-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB084"},110725:{"value":"1B085","name":"HENTAIGANA LETTER NA-8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB085"},110726:{"value":"1B086","name":"HENTAIGANA LETTER NA-9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB086"},110727:{"value":"1B087","name":"HENTAIGANA LETTER NI-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB087"},110728:{"value":"1B088","name":"HENTAIGANA LETTER NI-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB088"},110729:{"value":"1B089","name":"HENTAIGANA LETTER NI-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB089"},110730:{"value":"1B08A","name":"HENTAIGANA LETTER NI-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB08A"},110731:{"value":"1B08B","name":"HENTAIGANA LETTER NI-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB08B"},110732:{"value":"1B08C","name":"HENTAIGANA LETTER NI-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB08C"},110733:{"value":"1B08D","name":"HENTAIGANA LETTER NI-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB08D"},110734:{"value":"1B08E","name":"HENTAIGANA LETTER NI-TE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB08E"},110735:{"value":"1B08F","name":"HENTAIGANA LETTER NU-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB08F"},110736:{"value":"1B090","name":"HENTAIGANA LETTER NU-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB090"},110737:{"value":"1B091","name":"HENTAIGANA LETTER NU-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB091"},110738:{"value":"1B092","name":"HENTAIGANA LETTER NE-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB092"},110739:{"value":"1B093","name":"HENTAIGANA LETTER NE-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB093"},110740:{"value":"1B094","name":"HENTAIGANA LETTER NE-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB094"},110741:{"value":"1B095","name":"HENTAIGANA LETTER NE-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB095"},110742:{"value":"1B096","name":"HENTAIGANA LETTER NE-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB096"},110743:{"value":"1B097","name":"HENTAIGANA LETTER NE-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB097"},110744:{"value":"1B098","name":"HENTAIGANA LETTER NE-KO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB098"},110745:{"value":"1B099","name":"HENTAIGANA LETTER NO-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB099"},110746:{"value":"1B09A","name":"HENTAIGANA LETTER NO-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB09A"},110747:{"value":"1B09B","name":"HENTAIGANA LETTER NO-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB09B"},110748:{"value":"1B09C","name":"HENTAIGANA LETTER NO-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB09C"},110749:{"value":"1B09D","name":"HENTAIGANA LETTER NO-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB09D"},110750:{"value":"1B09E","name":"HENTAIGANA LETTER HA-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB09E"},110751:{"value":"1B09F","name":"HENTAIGANA LETTER HA-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB09F"},110752:{"value":"1B0A0","name":"HENTAIGANA LETTER HA-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0A0"},110753:{"value":"1B0A1","name":"HENTAIGANA LETTER HA-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0A1"},110754:{"value":"1B0A2","name":"HENTAIGANA LETTER HA-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0A2"},110755:{"value":"1B0A3","name":"HENTAIGANA LETTER HA-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0A3"},110756:{"value":"1B0A4","name":"HENTAIGANA LETTER HA-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0A4"},110757:{"value":"1B0A5","name":"HENTAIGANA LETTER HA-8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0A5"},110758:{"value":"1B0A6","name":"HENTAIGANA LETTER HA-9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0A6"},110759:{"value":"1B0A7","name":"HENTAIGANA LETTER HA-10","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0A7"},110760:{"value":"1B0A8","name":"HENTAIGANA LETTER HA-11","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0A8"},110761:{"value":"1B0A9","name":"HENTAIGANA LETTER HI-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0A9"},110762:{"value":"1B0AA","name":"HENTAIGANA LETTER HI-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0AA"},110763:{"value":"1B0AB","name":"HENTAIGANA LETTER HI-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0AB"},110764:{"value":"1B0AC","name":"HENTAIGANA LETTER HI-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0AC"},110765:{"value":"1B0AD","name":"HENTAIGANA LETTER HI-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0AD"},110766:{"value":"1B0AE","name":"HENTAIGANA LETTER HI-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0AE"},110767:{"value":"1B0AF","name":"HENTAIGANA LETTER HI-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0AF"},110768:{"value":"1B0B0","name":"HENTAIGANA LETTER HU-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0B0"},110769:{"value":"1B0B1","name":"HENTAIGANA LETTER HU-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0B1"},110770:{"value":"1B0B2","name":"HENTAIGANA LETTER HU-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0B2"},110771:{"value":"1B0B3","name":"HENTAIGANA LETTER HE-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0B3"},110772:{"value":"1B0B4","name":"HENTAIGANA LETTER HE-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0B4"},110773:{"value":"1B0B5","name":"HENTAIGANA LETTER HE-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0B5"},110774:{"value":"1B0B6","name":"HENTAIGANA LETTER HE-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0B6"},110775:{"value":"1B0B7","name":"HENTAIGANA LETTER HE-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0B7"},110776:{"value":"1B0B8","name":"HENTAIGANA LETTER HE-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0B8"},110777:{"value":"1B0B9","name":"HENTAIGANA LETTER HE-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0B9"},110778:{"value":"1B0BA","name":"HENTAIGANA LETTER HO-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0BA"},110779:{"value":"1B0BB","name":"HENTAIGANA LETTER HO-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0BB"},110780:{"value":"1B0BC","name":"HENTAIGANA LETTER HO-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0BC"},110781:{"value":"1B0BD","name":"HENTAIGANA LETTER HO-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0BD"},110782:{"value":"1B0BE","name":"HENTAIGANA LETTER HO-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0BE"},110783:{"value":"1B0BF","name":"HENTAIGANA LETTER HO-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0BF"},110784:{"value":"1B0C0","name":"HENTAIGANA LETTER HO-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0C0"},110785:{"value":"1B0C1","name":"HENTAIGANA LETTER HO-8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0C1"},110786:{"value":"1B0C2","name":"HENTAIGANA LETTER MA-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0C2"},110787:{"value":"1B0C3","name":"HENTAIGANA LETTER MA-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0C3"},110788:{"value":"1B0C4","name":"HENTAIGANA LETTER MA-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0C4"},110789:{"value":"1B0C5","name":"HENTAIGANA LETTER MA-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0C5"},110790:{"value":"1B0C6","name":"HENTAIGANA LETTER MA-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0C6"},110791:{"value":"1B0C7","name":"HENTAIGANA LETTER MA-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0C7"},110792:{"value":"1B0C8","name":"HENTAIGANA LETTER MA-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0C8"},110793:{"value":"1B0C9","name":"HENTAIGANA LETTER MI-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0C9"},110794:{"value":"1B0CA","name":"HENTAIGANA LETTER MI-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0CA"},110795:{"value":"1B0CB","name":"HENTAIGANA LETTER MI-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0CB"},110796:{"value":"1B0CC","name":"HENTAIGANA LETTER MI-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0CC"},110797:{"value":"1B0CD","name":"HENTAIGANA LETTER MI-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0CD"},110798:{"value":"1B0CE","name":"HENTAIGANA LETTER MI-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0CE"},110799:{"value":"1B0CF","name":"HENTAIGANA LETTER MI-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0CF"},110800:{"value":"1B0D0","name":"HENTAIGANA LETTER MU-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0D0"},110801:{"value":"1B0D1","name":"HENTAIGANA LETTER MU-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0D1"},110802:{"value":"1B0D2","name":"HENTAIGANA LETTER MU-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0D2"},110803:{"value":"1B0D3","name":"HENTAIGANA LETTER MU-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0D3"},110804:{"value":"1B0D4","name":"HENTAIGANA LETTER ME-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0D4"},110805:{"value":"1B0D5","name":"HENTAIGANA LETTER ME-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0D5"},110806:{"value":"1B0D6","name":"HENTAIGANA LETTER ME-MA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0D6"},110807:{"value":"1B0D7","name":"HENTAIGANA LETTER MO-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0D7"},110808:{"value":"1B0D8","name":"HENTAIGANA LETTER MO-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0D8"},110809:{"value":"1B0D9","name":"HENTAIGANA LETTER MO-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0D9"},110810:{"value":"1B0DA","name":"HENTAIGANA LETTER MO-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0DA"},110811:{"value":"1B0DB","name":"HENTAIGANA LETTER MO-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0DB"},110812:{"value":"1B0DC","name":"HENTAIGANA LETTER MO-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0DC"},110813:{"value":"1B0DD","name":"HENTAIGANA LETTER YA-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0DD"},110814:{"value":"1B0DE","name":"HENTAIGANA LETTER YA-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0DE"},110815:{"value":"1B0DF","name":"HENTAIGANA LETTER YA-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0DF"},110816:{"value":"1B0E0","name":"HENTAIGANA LETTER YA-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0E0"},110817:{"value":"1B0E1","name":"HENTAIGANA LETTER YA-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0E1"},110818:{"value":"1B0E2","name":"HENTAIGANA LETTER YA-YO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0E2"},110819:{"value":"1B0E3","name":"HENTAIGANA LETTER YU-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0E3"},110820:{"value":"1B0E4","name":"HENTAIGANA LETTER YU-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0E4"},110821:{"value":"1B0E5","name":"HENTAIGANA LETTER YU-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0E5"},110822:{"value":"1B0E6","name":"HENTAIGANA LETTER YU-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0E6"},110823:{"value":"1B0E7","name":"HENTAIGANA LETTER YO-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0E7"},110824:{"value":"1B0E8","name":"HENTAIGANA LETTER YO-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0E8"},110825:{"value":"1B0E9","name":"HENTAIGANA LETTER YO-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0E9"},110826:{"value":"1B0EA","name":"HENTAIGANA LETTER YO-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0EA"},110827:{"value":"1B0EB","name":"HENTAIGANA LETTER YO-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0EB"},110828:{"value":"1B0EC","name":"HENTAIGANA LETTER YO-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0EC"},110829:{"value":"1B0ED","name":"HENTAIGANA LETTER RA-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0ED"},110830:{"value":"1B0EE","name":"HENTAIGANA LETTER RA-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0EE"},110831:{"value":"1B0EF","name":"HENTAIGANA LETTER RA-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0EF"},110832:{"value":"1B0F0","name":"HENTAIGANA LETTER RA-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0F0"},110833:{"value":"1B0F1","name":"HENTAIGANA LETTER RI-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0F1"},110834:{"value":"1B0F2","name":"HENTAIGANA LETTER RI-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0F2"},110835:{"value":"1B0F3","name":"HENTAIGANA LETTER RI-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0F3"},110836:{"value":"1B0F4","name":"HENTAIGANA LETTER RI-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0F4"},110837:{"value":"1B0F5","name":"HENTAIGANA LETTER RI-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0F5"},110838:{"value":"1B0F6","name":"HENTAIGANA LETTER RI-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0F6"},110839:{"value":"1B0F7","name":"HENTAIGANA LETTER RI-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0F7"},110840:{"value":"1B0F8","name":"HENTAIGANA LETTER RU-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0F8"},110841:{"value":"1B0F9","name":"HENTAIGANA LETTER RU-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0F9"},110842:{"value":"1B0FA","name":"HENTAIGANA LETTER RU-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0FA"},110843:{"value":"1B0FB","name":"HENTAIGANA LETTER RU-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0FB"},110844:{"value":"1B0FC","name":"HENTAIGANA LETTER RU-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0FC"},110845:{"value":"1B0FD","name":"HENTAIGANA LETTER RU-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0FD"},110846:{"value":"1B0FE","name":"HENTAIGANA LETTER RE-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0FE"},110847:{"value":"1B0FF","name":"HENTAIGANA LETTER RE-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB0FF"},110848:{"value":"1B100","name":"HENTAIGANA LETTER RE-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB100"},110849:{"value":"1B101","name":"HENTAIGANA LETTER RE-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB101"},110850:{"value":"1B102","name":"HENTAIGANA LETTER RO-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB102"},110851:{"value":"1B103","name":"HENTAIGANA LETTER RO-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB103"},110852:{"value":"1B104","name":"HENTAIGANA LETTER RO-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB104"},110853:{"value":"1B105","name":"HENTAIGANA LETTER RO-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB105"},110854:{"value":"1B106","name":"HENTAIGANA LETTER RO-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB106"},110855:{"value":"1B107","name":"HENTAIGANA LETTER RO-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB107"},110856:{"value":"1B108","name":"HENTAIGANA LETTER WA-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB108"},110857:{"value":"1B109","name":"HENTAIGANA LETTER WA-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB109"},110858:{"value":"1B10A","name":"HENTAIGANA LETTER WA-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB10A"},110859:{"value":"1B10B","name":"HENTAIGANA LETTER WA-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB10B"},110860:{"value":"1B10C","name":"HENTAIGANA LETTER WA-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB10C"},110861:{"value":"1B10D","name":"HENTAIGANA LETTER WI-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB10D"},110862:{"value":"1B10E","name":"HENTAIGANA LETTER WI-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB10E"},110863:{"value":"1B10F","name":"HENTAIGANA LETTER WI-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB10F"},110864:{"value":"1B110","name":"HENTAIGANA LETTER WI-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB110"},110865:{"value":"1B111","name":"HENTAIGANA LETTER WI-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB111"},110866:{"value":"1B112","name":"HENTAIGANA LETTER WE-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB112"},110867:{"value":"1B113","name":"HENTAIGANA LETTER WE-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB113"},110868:{"value":"1B114","name":"HENTAIGANA LETTER WE-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB114"},110869:{"value":"1B115","name":"HENTAIGANA LETTER WE-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB115"},110870:{"value":"1B116","name":"HENTAIGANA LETTER WO-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB116"},110871:{"value":"1B117","name":"HENTAIGANA LETTER WO-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB117"},110872:{"value":"1B118","name":"HENTAIGANA LETTER WO-3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB118"},110873:{"value":"1B119","name":"HENTAIGANA LETTER WO-4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB119"},110874:{"value":"1B11A","name":"HENTAIGANA LETTER WO-5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB11A"},110875:{"value":"1B11B","name":"HENTAIGANA LETTER WO-6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB11B"},110876:{"value":"1B11C","name":"HENTAIGANA LETTER WO-7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB11C"},110877:{"value":"1B11D","name":"HENTAIGANA LETTER N-MU-MO-1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB11D"},110878:{"value":"1B11E","name":"HENTAIGANA LETTER N-MU-MO-2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB11E"},110960:{"value":"1B170","name":"NUSHU CHARACTER-1B170","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB170"},110961:{"value":"1B171","name":"NUSHU CHARACTER-1B171","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB171"},110962:{"value":"1B172","name":"NUSHU CHARACTER-1B172","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB172"},110963:{"value":"1B173","name":"NUSHU CHARACTER-1B173","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB173"},110964:{"value":"1B174","name":"NUSHU CHARACTER-1B174","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB174"},110965:{"value":"1B175","name":"NUSHU CHARACTER-1B175","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB175"},110966:{"value":"1B176","name":"NUSHU CHARACTER-1B176","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB176"},110967:{"value":"1B177","name":"NUSHU CHARACTER-1B177","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB177"},110968:{"value":"1B178","name":"NUSHU CHARACTER-1B178","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB178"},110969:{"value":"1B179","name":"NUSHU CHARACTER-1B179","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB179"},110970:{"value":"1B17A","name":"NUSHU CHARACTER-1B17A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB17A"},110971:{"value":"1B17B","name":"NUSHU CHARACTER-1B17B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB17B"},110972:{"value":"1B17C","name":"NUSHU CHARACTER-1B17C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB17C"},110973:{"value":"1B17D","name":"NUSHU CHARACTER-1B17D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB17D"},110974:{"value":"1B17E","name":"NUSHU CHARACTER-1B17E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB17E"},110975:{"value":"1B17F","name":"NUSHU CHARACTER-1B17F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB17F"},110976:{"value":"1B180","name":"NUSHU CHARACTER-1B180","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB180"},110977:{"value":"1B181","name":"NUSHU CHARACTER-1B181","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB181"},110978:{"value":"1B182","name":"NUSHU CHARACTER-1B182","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB182"},110979:{"value":"1B183","name":"NUSHU CHARACTER-1B183","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB183"},110980:{"value":"1B184","name":"NUSHU CHARACTER-1B184","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB184"},110981:{"value":"1B185","name":"NUSHU CHARACTER-1B185","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB185"},110982:{"value":"1B186","name":"NUSHU CHARACTER-1B186","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB186"},110983:{"value":"1B187","name":"NUSHU CHARACTER-1B187","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB187"},110984:{"value":"1B188","name":"NUSHU CHARACTER-1B188","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB188"},110985:{"value":"1B189","name":"NUSHU CHARACTER-1B189","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB189"},110986:{"value":"1B18A","name":"NUSHU CHARACTER-1B18A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB18A"},110987:{"value":"1B18B","name":"NUSHU CHARACTER-1B18B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB18B"},110988:{"value":"1B18C","name":"NUSHU CHARACTER-1B18C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB18C"},110989:{"value":"1B18D","name":"NUSHU CHARACTER-1B18D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB18D"},110990:{"value":"1B18E","name":"NUSHU CHARACTER-1B18E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB18E"},110991:{"value":"1B18F","name":"NUSHU CHARACTER-1B18F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB18F"},110992:{"value":"1B190","name":"NUSHU CHARACTER-1B190","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB190"},110993:{"value":"1B191","name":"NUSHU CHARACTER-1B191","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB191"},110994:{"value":"1B192","name":"NUSHU CHARACTER-1B192","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB192"},110995:{"value":"1B193","name":"NUSHU CHARACTER-1B193","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB193"},110996:{"value":"1B194","name":"NUSHU CHARACTER-1B194","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB194"},110997:{"value":"1B195","name":"NUSHU CHARACTER-1B195","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB195"},110998:{"value":"1B196","name":"NUSHU CHARACTER-1B196","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB196"},110999:{"value":"1B197","name":"NUSHU CHARACTER-1B197","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB197"},111000:{"value":"1B198","name":"NUSHU CHARACTER-1B198","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB198"},111001:{"value":"1B199","name":"NUSHU CHARACTER-1B199","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB199"},111002:{"value":"1B19A","name":"NUSHU CHARACTER-1B19A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB19A"},111003:{"value":"1B19B","name":"NUSHU CHARACTER-1B19B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB19B"},111004:{"value":"1B19C","name":"NUSHU CHARACTER-1B19C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB19C"},111005:{"value":"1B19D","name":"NUSHU CHARACTER-1B19D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB19D"},111006:{"value":"1B19E","name":"NUSHU CHARACTER-1B19E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB19E"},111007:{"value":"1B19F","name":"NUSHU CHARACTER-1B19F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB19F"},111008:{"value":"1B1A0","name":"NUSHU CHARACTER-1B1A0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1A0"},111009:{"value":"1B1A1","name":"NUSHU CHARACTER-1B1A1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1A1"},111010:{"value":"1B1A2","name":"NUSHU CHARACTER-1B1A2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1A2"},111011:{"value":"1B1A3","name":"NUSHU CHARACTER-1B1A3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1A3"},111012:{"value":"1B1A4","name":"NUSHU CHARACTER-1B1A4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1A4"},111013:{"value":"1B1A5","name":"NUSHU CHARACTER-1B1A5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1A5"},111014:{"value":"1B1A6","name":"NUSHU CHARACTER-1B1A6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1A6"},111015:{"value":"1B1A7","name":"NUSHU CHARACTER-1B1A7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1A7"},111016:{"value":"1B1A8","name":"NUSHU CHARACTER-1B1A8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1A8"},111017:{"value":"1B1A9","name":"NUSHU CHARACTER-1B1A9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1A9"},111018:{"value":"1B1AA","name":"NUSHU CHARACTER-1B1AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1AA"},111019:{"value":"1B1AB","name":"NUSHU CHARACTER-1B1AB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1AB"},111020:{"value":"1B1AC","name":"NUSHU CHARACTER-1B1AC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1AC"},111021:{"value":"1B1AD","name":"NUSHU CHARACTER-1B1AD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1AD"},111022:{"value":"1B1AE","name":"NUSHU CHARACTER-1B1AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1AE"},111023:{"value":"1B1AF","name":"NUSHU CHARACTER-1B1AF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1AF"},111024:{"value":"1B1B0","name":"NUSHU CHARACTER-1B1B0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1B0"},111025:{"value":"1B1B1","name":"NUSHU CHARACTER-1B1B1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1B1"},111026:{"value":"1B1B2","name":"NUSHU CHARACTER-1B1B2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1B2"},111027:{"value":"1B1B3","name":"NUSHU CHARACTER-1B1B3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1B3"},111028:{"value":"1B1B4","name":"NUSHU CHARACTER-1B1B4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1B4"},111029:{"value":"1B1B5","name":"NUSHU CHARACTER-1B1B5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1B5"},111030:{"value":"1B1B6","name":"NUSHU CHARACTER-1B1B6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1B6"},111031:{"value":"1B1B7","name":"NUSHU CHARACTER-1B1B7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1B7"},111032:{"value":"1B1B8","name":"NUSHU CHARACTER-1B1B8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1B8"},111033:{"value":"1B1B9","name":"NUSHU CHARACTER-1B1B9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1B9"},111034:{"value":"1B1BA","name":"NUSHU CHARACTER-1B1BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1BA"},111035:{"value":"1B1BB","name":"NUSHU CHARACTER-1B1BB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1BB"},111036:{"value":"1B1BC","name":"NUSHU CHARACTER-1B1BC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1BC"},111037:{"value":"1B1BD","name":"NUSHU CHARACTER-1B1BD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1BD"},111038:{"value":"1B1BE","name":"NUSHU CHARACTER-1B1BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1BE"},111039:{"value":"1B1BF","name":"NUSHU CHARACTER-1B1BF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1BF"},111040:{"value":"1B1C0","name":"NUSHU CHARACTER-1B1C0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1C0"},111041:{"value":"1B1C1","name":"NUSHU CHARACTER-1B1C1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1C1"},111042:{"value":"1B1C2","name":"NUSHU CHARACTER-1B1C2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1C2"},111043:{"value":"1B1C3","name":"NUSHU CHARACTER-1B1C3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1C3"},111044:{"value":"1B1C4","name":"NUSHU CHARACTER-1B1C4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1C4"},111045:{"value":"1B1C5","name":"NUSHU CHARACTER-1B1C5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1C5"},111046:{"value":"1B1C6","name":"NUSHU CHARACTER-1B1C6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1C6"},111047:{"value":"1B1C7","name":"NUSHU CHARACTER-1B1C7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1C7"},111048:{"value":"1B1C8","name":"NUSHU CHARACTER-1B1C8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1C8"},111049:{"value":"1B1C9","name":"NUSHU CHARACTER-1B1C9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1C9"},111050:{"value":"1B1CA","name":"NUSHU CHARACTER-1B1CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1CA"},111051:{"value":"1B1CB","name":"NUSHU CHARACTER-1B1CB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1CB"},111052:{"value":"1B1CC","name":"NUSHU CHARACTER-1B1CC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1CC"},111053:{"value":"1B1CD","name":"NUSHU CHARACTER-1B1CD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1CD"},111054:{"value":"1B1CE","name":"NUSHU CHARACTER-1B1CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1CE"},111055:{"value":"1B1CF","name":"NUSHU CHARACTER-1B1CF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1CF"},111056:{"value":"1B1D0","name":"NUSHU CHARACTER-1B1D0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1D0"},111057:{"value":"1B1D1","name":"NUSHU CHARACTER-1B1D1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1D1"},111058:{"value":"1B1D2","name":"NUSHU CHARACTER-1B1D2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1D2"},111059:{"value":"1B1D3","name":"NUSHU CHARACTER-1B1D3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1D3"},111060:{"value":"1B1D4","name":"NUSHU CHARACTER-1B1D4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1D4"},111061:{"value":"1B1D5","name":"NUSHU CHARACTER-1B1D5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1D5"},111062:{"value":"1B1D6","name":"NUSHU CHARACTER-1B1D6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1D6"},111063:{"value":"1B1D7","name":"NUSHU CHARACTER-1B1D7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1D7"},111064:{"value":"1B1D8","name":"NUSHU CHARACTER-1B1D8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1D8"},111065:{"value":"1B1D9","name":"NUSHU CHARACTER-1B1D9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1D9"},111066:{"value":"1B1DA","name":"NUSHU CHARACTER-1B1DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1DA"},111067:{"value":"1B1DB","name":"NUSHU CHARACTER-1B1DB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1DB"},111068:{"value":"1B1DC","name":"NUSHU CHARACTER-1B1DC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1DC"},111069:{"value":"1B1DD","name":"NUSHU CHARACTER-1B1DD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1DD"},111070:{"value":"1B1DE","name":"NUSHU CHARACTER-1B1DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1DE"},111071:{"value":"1B1DF","name":"NUSHU CHARACTER-1B1DF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1DF"},111072:{"value":"1B1E0","name":"NUSHU CHARACTER-1B1E0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1E0"},111073:{"value":"1B1E1","name":"NUSHU CHARACTER-1B1E1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1E1"},111074:{"value":"1B1E2","name":"NUSHU CHARACTER-1B1E2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1E2"},111075:{"value":"1B1E3","name":"NUSHU CHARACTER-1B1E3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1E3"},111076:{"value":"1B1E4","name":"NUSHU CHARACTER-1B1E4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1E4"},111077:{"value":"1B1E5","name":"NUSHU CHARACTER-1B1E5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1E5"},111078:{"value":"1B1E6","name":"NUSHU CHARACTER-1B1E6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1E6"},111079:{"value":"1B1E7","name":"NUSHU CHARACTER-1B1E7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1E7"},111080:{"value":"1B1E8","name":"NUSHU CHARACTER-1B1E8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1E8"},111081:{"value":"1B1E9","name":"NUSHU CHARACTER-1B1E9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1E9"},111082:{"value":"1B1EA","name":"NUSHU CHARACTER-1B1EA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1EA"},111083:{"value":"1B1EB","name":"NUSHU CHARACTER-1B1EB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1EB"},111084:{"value":"1B1EC","name":"NUSHU CHARACTER-1B1EC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1EC"},111085:{"value":"1B1ED","name":"NUSHU CHARACTER-1B1ED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1ED"},111086:{"value":"1B1EE","name":"NUSHU CHARACTER-1B1EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1EE"},111087:{"value":"1B1EF","name":"NUSHU CHARACTER-1B1EF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1EF"},111088:{"value":"1B1F0","name":"NUSHU CHARACTER-1B1F0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1F0"},111089:{"value":"1B1F1","name":"NUSHU CHARACTER-1B1F1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1F1"},111090:{"value":"1B1F2","name":"NUSHU CHARACTER-1B1F2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1F2"},111091:{"value":"1B1F3","name":"NUSHU CHARACTER-1B1F3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1F3"},111092:{"value":"1B1F4","name":"NUSHU CHARACTER-1B1F4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1F4"},111093:{"value":"1B1F5","name":"NUSHU CHARACTER-1B1F5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1F5"},111094:{"value":"1B1F6","name":"NUSHU CHARACTER-1B1F6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1F6"},111095:{"value":"1B1F7","name":"NUSHU CHARACTER-1B1F7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1F7"},111096:{"value":"1B1F8","name":"NUSHU CHARACTER-1B1F8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1F8"},111097:{"value":"1B1F9","name":"NUSHU CHARACTER-1B1F9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1F9"},111098:{"value":"1B1FA","name":"NUSHU CHARACTER-1B1FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1FA"},111099:{"value":"1B1FB","name":"NUSHU CHARACTER-1B1FB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1FB"},111100:{"value":"1B1FC","name":"NUSHU CHARACTER-1B1FC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1FC"},111101:{"value":"1B1FD","name":"NUSHU CHARACTER-1B1FD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1FD"},111102:{"value":"1B1FE","name":"NUSHU CHARACTER-1B1FE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1FE"},111103:{"value":"1B1FF","name":"NUSHU CHARACTER-1B1FF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB1FF"},111104:{"value":"1B200","name":"NUSHU CHARACTER-1B200","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB200"},111105:{"value":"1B201","name":"NUSHU CHARACTER-1B201","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB201"},111106:{"value":"1B202","name":"NUSHU CHARACTER-1B202","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB202"},111107:{"value":"1B203","name":"NUSHU CHARACTER-1B203","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB203"},111108:{"value":"1B204","name":"NUSHU CHARACTER-1B204","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB204"},111109:{"value":"1B205","name":"NUSHU CHARACTER-1B205","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB205"},111110:{"value":"1B206","name":"NUSHU CHARACTER-1B206","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB206"},111111:{"value":"1B207","name":"NUSHU CHARACTER-1B207","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB207"},111112:{"value":"1B208","name":"NUSHU CHARACTER-1B208","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB208"},111113:{"value":"1B209","name":"NUSHU CHARACTER-1B209","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB209"},111114:{"value":"1B20A","name":"NUSHU CHARACTER-1B20A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB20A"},111115:{"value":"1B20B","name":"NUSHU CHARACTER-1B20B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB20B"},111116:{"value":"1B20C","name":"NUSHU CHARACTER-1B20C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB20C"},111117:{"value":"1B20D","name":"NUSHU CHARACTER-1B20D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB20D"},111118:{"value":"1B20E","name":"NUSHU CHARACTER-1B20E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB20E"},111119:{"value":"1B20F","name":"NUSHU CHARACTER-1B20F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB20F"},111120:{"value":"1B210","name":"NUSHU CHARACTER-1B210","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB210"},111121:{"value":"1B211","name":"NUSHU CHARACTER-1B211","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB211"},111122:{"value":"1B212","name":"NUSHU CHARACTER-1B212","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB212"},111123:{"value":"1B213","name":"NUSHU CHARACTER-1B213","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB213"},111124:{"value":"1B214","name":"NUSHU CHARACTER-1B214","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB214"},111125:{"value":"1B215","name":"NUSHU CHARACTER-1B215","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB215"},111126:{"value":"1B216","name":"NUSHU CHARACTER-1B216","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB216"},111127:{"value":"1B217","name":"NUSHU CHARACTER-1B217","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB217"},111128:{"value":"1B218","name":"NUSHU CHARACTER-1B218","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB218"},111129:{"value":"1B219","name":"NUSHU CHARACTER-1B219","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB219"},111130:{"value":"1B21A","name":"NUSHU CHARACTER-1B21A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB21A"},111131:{"value":"1B21B","name":"NUSHU CHARACTER-1B21B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB21B"},111132:{"value":"1B21C","name":"NUSHU CHARACTER-1B21C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB21C"},111133:{"value":"1B21D","name":"NUSHU CHARACTER-1B21D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB21D"},111134:{"value":"1B21E","name":"NUSHU CHARACTER-1B21E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB21E"},111135:{"value":"1B21F","name":"NUSHU CHARACTER-1B21F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB21F"},111136:{"value":"1B220","name":"NUSHU CHARACTER-1B220","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB220"},111137:{"value":"1B221","name":"NUSHU CHARACTER-1B221","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB221"},111138:{"value":"1B222","name":"NUSHU CHARACTER-1B222","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB222"},111139:{"value":"1B223","name":"NUSHU CHARACTER-1B223","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB223"},111140:{"value":"1B224","name":"NUSHU CHARACTER-1B224","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB224"},111141:{"value":"1B225","name":"NUSHU CHARACTER-1B225","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB225"},111142:{"value":"1B226","name":"NUSHU CHARACTER-1B226","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB226"},111143:{"value":"1B227","name":"NUSHU CHARACTER-1B227","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB227"},111144:{"value":"1B228","name":"NUSHU CHARACTER-1B228","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB228"},111145:{"value":"1B229","name":"NUSHU CHARACTER-1B229","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB229"},111146:{"value":"1B22A","name":"NUSHU CHARACTER-1B22A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB22A"},111147:{"value":"1B22B","name":"NUSHU CHARACTER-1B22B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB22B"},111148:{"value":"1B22C","name":"NUSHU CHARACTER-1B22C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB22C"},111149:{"value":"1B22D","name":"NUSHU CHARACTER-1B22D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB22D"},111150:{"value":"1B22E","name":"NUSHU CHARACTER-1B22E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB22E"},111151:{"value":"1B22F","name":"NUSHU CHARACTER-1B22F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB22F"},111152:{"value":"1B230","name":"NUSHU CHARACTER-1B230","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB230"},111153:{"value":"1B231","name":"NUSHU CHARACTER-1B231","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB231"},111154:{"value":"1B232","name":"NUSHU CHARACTER-1B232","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB232"},111155:{"value":"1B233","name":"NUSHU CHARACTER-1B233","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB233"},111156:{"value":"1B234","name":"NUSHU CHARACTER-1B234","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB234"},111157:{"value":"1B235","name":"NUSHU CHARACTER-1B235","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB235"},111158:{"value":"1B236","name":"NUSHU CHARACTER-1B236","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB236"},111159:{"value":"1B237","name":"NUSHU CHARACTER-1B237","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB237"},111160:{"value":"1B238","name":"NUSHU CHARACTER-1B238","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB238"},111161:{"value":"1B239","name":"NUSHU CHARACTER-1B239","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB239"},111162:{"value":"1B23A","name":"NUSHU CHARACTER-1B23A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB23A"},111163:{"value":"1B23B","name":"NUSHU CHARACTER-1B23B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB23B"},111164:{"value":"1B23C","name":"NUSHU CHARACTER-1B23C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB23C"},111165:{"value":"1B23D","name":"NUSHU CHARACTER-1B23D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB23D"},111166:{"value":"1B23E","name":"NUSHU CHARACTER-1B23E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB23E"},111167:{"value":"1B23F","name":"NUSHU CHARACTER-1B23F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB23F"},111168:{"value":"1B240","name":"NUSHU CHARACTER-1B240","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB240"},111169:{"value":"1B241","name":"NUSHU CHARACTER-1B241","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB241"},111170:{"value":"1B242","name":"NUSHU CHARACTER-1B242","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB242"},111171:{"value":"1B243","name":"NUSHU CHARACTER-1B243","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB243"},111172:{"value":"1B244","name":"NUSHU CHARACTER-1B244","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB244"},111173:{"value":"1B245","name":"NUSHU CHARACTER-1B245","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB245"},111174:{"value":"1B246","name":"NUSHU CHARACTER-1B246","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB246"},111175:{"value":"1B247","name":"NUSHU CHARACTER-1B247","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB247"},111176:{"value":"1B248","name":"NUSHU CHARACTER-1B248","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB248"},111177:{"value":"1B249","name":"NUSHU CHARACTER-1B249","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB249"},111178:{"value":"1B24A","name":"NUSHU CHARACTER-1B24A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB24A"},111179:{"value":"1B24B","name":"NUSHU CHARACTER-1B24B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB24B"},111180:{"value":"1B24C","name":"NUSHU CHARACTER-1B24C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB24C"},111181:{"value":"1B24D","name":"NUSHU CHARACTER-1B24D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB24D"},111182:{"value":"1B24E","name":"NUSHU CHARACTER-1B24E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB24E"},111183:{"value":"1B24F","name":"NUSHU CHARACTER-1B24F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB24F"},111184:{"value":"1B250","name":"NUSHU CHARACTER-1B250","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB250"},111185:{"value":"1B251","name":"NUSHU CHARACTER-1B251","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB251"},111186:{"value":"1B252","name":"NUSHU CHARACTER-1B252","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB252"},111187:{"value":"1B253","name":"NUSHU CHARACTER-1B253","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB253"},111188:{"value":"1B254","name":"NUSHU CHARACTER-1B254","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB254"},111189:{"value":"1B255","name":"NUSHU CHARACTER-1B255","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB255"},111190:{"value":"1B256","name":"NUSHU CHARACTER-1B256","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB256"},111191:{"value":"1B257","name":"NUSHU CHARACTER-1B257","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB257"},111192:{"value":"1B258","name":"NUSHU CHARACTER-1B258","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB258"},111193:{"value":"1B259","name":"NUSHU CHARACTER-1B259","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB259"},111194:{"value":"1B25A","name":"NUSHU CHARACTER-1B25A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB25A"},111195:{"value":"1B25B","name":"NUSHU CHARACTER-1B25B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB25B"},111196:{"value":"1B25C","name":"NUSHU CHARACTER-1B25C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB25C"},111197:{"value":"1B25D","name":"NUSHU CHARACTER-1B25D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB25D"},111198:{"value":"1B25E","name":"NUSHU CHARACTER-1B25E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB25E"},111199:{"value":"1B25F","name":"NUSHU CHARACTER-1B25F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB25F"},111200:{"value":"1B260","name":"NUSHU CHARACTER-1B260","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB260"},111201:{"value":"1B261","name":"NUSHU CHARACTER-1B261","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB261"},111202:{"value":"1B262","name":"NUSHU CHARACTER-1B262","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB262"},111203:{"value":"1B263","name":"NUSHU CHARACTER-1B263","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB263"},111204:{"value":"1B264","name":"NUSHU CHARACTER-1B264","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB264"},111205:{"value":"1B265","name":"NUSHU CHARACTER-1B265","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB265"},111206:{"value":"1B266","name":"NUSHU CHARACTER-1B266","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB266"},111207:{"value":"1B267","name":"NUSHU CHARACTER-1B267","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB267"},111208:{"value":"1B268","name":"NUSHU CHARACTER-1B268","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB268"},111209:{"value":"1B269","name":"NUSHU CHARACTER-1B269","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB269"},111210:{"value":"1B26A","name":"NUSHU CHARACTER-1B26A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB26A"},111211:{"value":"1B26B","name":"NUSHU CHARACTER-1B26B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB26B"},111212:{"value":"1B26C","name":"NUSHU CHARACTER-1B26C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB26C"},111213:{"value":"1B26D","name":"NUSHU CHARACTER-1B26D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB26D"},111214:{"value":"1B26E","name":"NUSHU CHARACTER-1B26E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB26E"},111215:{"value":"1B26F","name":"NUSHU CHARACTER-1B26F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB26F"},111216:{"value":"1B270","name":"NUSHU CHARACTER-1B270","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB270"},111217:{"value":"1B271","name":"NUSHU CHARACTER-1B271","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB271"},111218:{"value":"1B272","name":"NUSHU CHARACTER-1B272","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB272"},111219:{"value":"1B273","name":"NUSHU CHARACTER-1B273","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB273"},111220:{"value":"1B274","name":"NUSHU CHARACTER-1B274","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB274"},111221:{"value":"1B275","name":"NUSHU CHARACTER-1B275","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB275"},111222:{"value":"1B276","name":"NUSHU CHARACTER-1B276","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB276"},111223:{"value":"1B277","name":"NUSHU CHARACTER-1B277","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB277"},111224:{"value":"1B278","name":"NUSHU CHARACTER-1B278","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB278"},111225:{"value":"1B279","name":"NUSHU CHARACTER-1B279","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB279"},111226:{"value":"1B27A","name":"NUSHU CHARACTER-1B27A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB27A"},111227:{"value":"1B27B","name":"NUSHU CHARACTER-1B27B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB27B"},111228:{"value":"1B27C","name":"NUSHU CHARACTER-1B27C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB27C"},111229:{"value":"1B27D","name":"NUSHU CHARACTER-1B27D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB27D"},111230:{"value":"1B27E","name":"NUSHU CHARACTER-1B27E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB27E"},111231:{"value":"1B27F","name":"NUSHU CHARACTER-1B27F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB27F"},111232:{"value":"1B280","name":"NUSHU CHARACTER-1B280","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB280"},111233:{"value":"1B281","name":"NUSHU CHARACTER-1B281","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB281"},111234:{"value":"1B282","name":"NUSHU CHARACTER-1B282","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB282"},111235:{"value":"1B283","name":"NUSHU CHARACTER-1B283","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB283"},111236:{"value":"1B284","name":"NUSHU CHARACTER-1B284","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB284"},111237:{"value":"1B285","name":"NUSHU CHARACTER-1B285","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB285"},111238:{"value":"1B286","name":"NUSHU CHARACTER-1B286","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB286"},111239:{"value":"1B287","name":"NUSHU CHARACTER-1B287","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB287"},111240:{"value":"1B288","name":"NUSHU CHARACTER-1B288","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB288"},111241:{"value":"1B289","name":"NUSHU CHARACTER-1B289","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB289"},111242:{"value":"1B28A","name":"NUSHU CHARACTER-1B28A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB28A"},111243:{"value":"1B28B","name":"NUSHU CHARACTER-1B28B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB28B"},111244:{"value":"1B28C","name":"NUSHU CHARACTER-1B28C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB28C"},111245:{"value":"1B28D","name":"NUSHU CHARACTER-1B28D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB28D"},111246:{"value":"1B28E","name":"NUSHU CHARACTER-1B28E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB28E"},111247:{"value":"1B28F","name":"NUSHU CHARACTER-1B28F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB28F"},111248:{"value":"1B290","name":"NUSHU CHARACTER-1B290","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB290"},111249:{"value":"1B291","name":"NUSHU CHARACTER-1B291","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB291"},111250:{"value":"1B292","name":"NUSHU CHARACTER-1B292","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB292"},111251:{"value":"1B293","name":"NUSHU CHARACTER-1B293","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB293"},111252:{"value":"1B294","name":"NUSHU CHARACTER-1B294","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB294"},111253:{"value":"1B295","name":"NUSHU CHARACTER-1B295","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB295"},111254:{"value":"1B296","name":"NUSHU CHARACTER-1B296","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB296"},111255:{"value":"1B297","name":"NUSHU CHARACTER-1B297","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB297"},111256:{"value":"1B298","name":"NUSHU CHARACTER-1B298","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB298"},111257:{"value":"1B299","name":"NUSHU CHARACTER-1B299","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB299"},111258:{"value":"1B29A","name":"NUSHU CHARACTER-1B29A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB29A"},111259:{"value":"1B29B","name":"NUSHU CHARACTER-1B29B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB29B"},111260:{"value":"1B29C","name":"NUSHU CHARACTER-1B29C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB29C"},111261:{"value":"1B29D","name":"NUSHU CHARACTER-1B29D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB29D"},111262:{"value":"1B29E","name":"NUSHU CHARACTER-1B29E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB29E"},111263:{"value":"1B29F","name":"NUSHU CHARACTER-1B29F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB29F"},111264:{"value":"1B2A0","name":"NUSHU CHARACTER-1B2A0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2A0"},111265:{"value":"1B2A1","name":"NUSHU CHARACTER-1B2A1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2A1"},111266:{"value":"1B2A2","name":"NUSHU CHARACTER-1B2A2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2A2"},111267:{"value":"1B2A3","name":"NUSHU CHARACTER-1B2A3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2A3"},111268:{"value":"1B2A4","name":"NUSHU CHARACTER-1B2A4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2A4"},111269:{"value":"1B2A5","name":"NUSHU CHARACTER-1B2A5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2A5"},111270:{"value":"1B2A6","name":"NUSHU CHARACTER-1B2A6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2A6"},111271:{"value":"1B2A7","name":"NUSHU CHARACTER-1B2A7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2A7"},111272:{"value":"1B2A8","name":"NUSHU CHARACTER-1B2A8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2A8"},111273:{"value":"1B2A9","name":"NUSHU CHARACTER-1B2A9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2A9"},111274:{"value":"1B2AA","name":"NUSHU CHARACTER-1B2AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2AA"},111275:{"value":"1B2AB","name":"NUSHU CHARACTER-1B2AB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2AB"},111276:{"value":"1B2AC","name":"NUSHU CHARACTER-1B2AC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2AC"},111277:{"value":"1B2AD","name":"NUSHU CHARACTER-1B2AD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2AD"},111278:{"value":"1B2AE","name":"NUSHU CHARACTER-1B2AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2AE"},111279:{"value":"1B2AF","name":"NUSHU CHARACTER-1B2AF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2AF"},111280:{"value":"1B2B0","name":"NUSHU CHARACTER-1B2B0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2B0"},111281:{"value":"1B2B1","name":"NUSHU CHARACTER-1B2B1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2B1"},111282:{"value":"1B2B2","name":"NUSHU CHARACTER-1B2B2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2B2"},111283:{"value":"1B2B3","name":"NUSHU CHARACTER-1B2B3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2B3"},111284:{"value":"1B2B4","name":"NUSHU CHARACTER-1B2B4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2B4"},111285:{"value":"1B2B5","name":"NUSHU CHARACTER-1B2B5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2B5"},111286:{"value":"1B2B6","name":"NUSHU CHARACTER-1B2B6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2B6"},111287:{"value":"1B2B7","name":"NUSHU CHARACTER-1B2B7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2B7"},111288:{"value":"1B2B8","name":"NUSHU CHARACTER-1B2B8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2B8"},111289:{"value":"1B2B9","name":"NUSHU CHARACTER-1B2B9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2B9"},111290:{"value":"1B2BA","name":"NUSHU CHARACTER-1B2BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2BA"},111291:{"value":"1B2BB","name":"NUSHU CHARACTER-1B2BB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2BB"},111292:{"value":"1B2BC","name":"NUSHU CHARACTER-1B2BC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2BC"},111293:{"value":"1B2BD","name":"NUSHU CHARACTER-1B2BD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2BD"},111294:{"value":"1B2BE","name":"NUSHU CHARACTER-1B2BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2BE"},111295:{"value":"1B2BF","name":"NUSHU CHARACTER-1B2BF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2BF"},111296:{"value":"1B2C0","name":"NUSHU CHARACTER-1B2C0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2C0"},111297:{"value":"1B2C1","name":"NUSHU CHARACTER-1B2C1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2C1"},111298:{"value":"1B2C2","name":"NUSHU CHARACTER-1B2C2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2C2"},111299:{"value":"1B2C3","name":"NUSHU CHARACTER-1B2C3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2C3"},111300:{"value":"1B2C4","name":"NUSHU CHARACTER-1B2C4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2C4"},111301:{"value":"1B2C5","name":"NUSHU CHARACTER-1B2C5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2C5"},111302:{"value":"1B2C6","name":"NUSHU CHARACTER-1B2C6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2C6"},111303:{"value":"1B2C7","name":"NUSHU CHARACTER-1B2C7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2C7"},111304:{"value":"1B2C8","name":"NUSHU CHARACTER-1B2C8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2C8"},111305:{"value":"1B2C9","name":"NUSHU CHARACTER-1B2C9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2C9"},111306:{"value":"1B2CA","name":"NUSHU CHARACTER-1B2CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2CA"},111307:{"value":"1B2CB","name":"NUSHU CHARACTER-1B2CB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2CB"},111308:{"value":"1B2CC","name":"NUSHU CHARACTER-1B2CC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2CC"},111309:{"value":"1B2CD","name":"NUSHU CHARACTER-1B2CD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2CD"},111310:{"value":"1B2CE","name":"NUSHU CHARACTER-1B2CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2CE"},111311:{"value":"1B2CF","name":"NUSHU CHARACTER-1B2CF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2CF"},111312:{"value":"1B2D0","name":"NUSHU CHARACTER-1B2D0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2D0"},111313:{"value":"1B2D1","name":"NUSHU CHARACTER-1B2D1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2D1"},111314:{"value":"1B2D2","name":"NUSHU CHARACTER-1B2D2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2D2"},111315:{"value":"1B2D3","name":"NUSHU CHARACTER-1B2D3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2D3"},111316:{"value":"1B2D4","name":"NUSHU CHARACTER-1B2D4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2D4"},111317:{"value":"1B2D5","name":"NUSHU CHARACTER-1B2D5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2D5"},111318:{"value":"1B2D6","name":"NUSHU CHARACTER-1B2D6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2D6"},111319:{"value":"1B2D7","name":"NUSHU CHARACTER-1B2D7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2D7"},111320:{"value":"1B2D8","name":"NUSHU CHARACTER-1B2D8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2D8"},111321:{"value":"1B2D9","name":"NUSHU CHARACTER-1B2D9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2D9"},111322:{"value":"1B2DA","name":"NUSHU CHARACTER-1B2DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2DA"},111323:{"value":"1B2DB","name":"NUSHU CHARACTER-1B2DB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2DB"},111324:{"value":"1B2DC","name":"NUSHU CHARACTER-1B2DC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2DC"},111325:{"value":"1B2DD","name":"NUSHU CHARACTER-1B2DD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2DD"},111326:{"value":"1B2DE","name":"NUSHU CHARACTER-1B2DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2DE"},111327:{"value":"1B2DF","name":"NUSHU CHARACTER-1B2DF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2DF"},111328:{"value":"1B2E0","name":"NUSHU CHARACTER-1B2E0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2E0"},111329:{"value":"1B2E1","name":"NUSHU CHARACTER-1B2E1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2E1"},111330:{"value":"1B2E2","name":"NUSHU CHARACTER-1B2E2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2E2"},111331:{"value":"1B2E3","name":"NUSHU CHARACTER-1B2E3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2E3"},111332:{"value":"1B2E4","name":"NUSHU CHARACTER-1B2E4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2E4"},111333:{"value":"1B2E5","name":"NUSHU CHARACTER-1B2E5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2E5"},111334:{"value":"1B2E6","name":"NUSHU CHARACTER-1B2E6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2E6"},111335:{"value":"1B2E7","name":"NUSHU CHARACTER-1B2E7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2E7"},111336:{"value":"1B2E8","name":"NUSHU CHARACTER-1B2E8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2E8"},111337:{"value":"1B2E9","name":"NUSHU CHARACTER-1B2E9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2E9"},111338:{"value":"1B2EA","name":"NUSHU CHARACTER-1B2EA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2EA"},111339:{"value":"1B2EB","name":"NUSHU CHARACTER-1B2EB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2EB"},111340:{"value":"1B2EC","name":"NUSHU CHARACTER-1B2EC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2EC"},111341:{"value":"1B2ED","name":"NUSHU CHARACTER-1B2ED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2ED"},111342:{"value":"1B2EE","name":"NUSHU CHARACTER-1B2EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2EE"},111343:{"value":"1B2EF","name":"NUSHU CHARACTER-1B2EF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2EF"},111344:{"value":"1B2F0","name":"NUSHU CHARACTER-1B2F0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2F0"},111345:{"value":"1B2F1","name":"NUSHU CHARACTER-1B2F1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2F1"},111346:{"value":"1B2F2","name":"NUSHU CHARACTER-1B2F2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2F2"},111347:{"value":"1B2F3","name":"NUSHU CHARACTER-1B2F3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2F3"},111348:{"value":"1B2F4","name":"NUSHU CHARACTER-1B2F4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2F4"},111349:{"value":"1B2F5","name":"NUSHU CHARACTER-1B2F5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2F5"},111350:{"value":"1B2F6","name":"NUSHU CHARACTER-1B2F6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2F6"},111351:{"value":"1B2F7","name":"NUSHU CHARACTER-1B2F7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2F7"},111352:{"value":"1B2F8","name":"NUSHU CHARACTER-1B2F8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2F8"},111353:{"value":"1B2F9","name":"NUSHU CHARACTER-1B2F9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2F9"},111354:{"value":"1B2FA","name":"NUSHU CHARACTER-1B2FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2FA"},111355:{"value":"1B2FB","name":"NUSHU CHARACTER-1B2FB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB2FB"},113664:{"value":"1BC00","name":"DUPLOYAN LETTER H","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC00"},113665:{"value":"1BC01","name":"DUPLOYAN LETTER X","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC01"},113666:{"value":"1BC02","name":"DUPLOYAN LETTER P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC02"},113667:{"value":"1BC03","name":"DUPLOYAN LETTER T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC03"},113668:{"value":"1BC04","name":"DUPLOYAN LETTER F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC04"},113669:{"value":"1BC05","name":"DUPLOYAN LETTER K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC05"},113670:{"value":"1BC06","name":"DUPLOYAN LETTER L","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC06"},113671:{"value":"1BC07","name":"DUPLOYAN LETTER B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC07"},113672:{"value":"1BC08","name":"DUPLOYAN LETTER D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC08"},113673:{"value":"1BC09","name":"DUPLOYAN LETTER V","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC09"},113674:{"value":"1BC0A","name":"DUPLOYAN LETTER G","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC0A"},113675:{"value":"1BC0B","name":"DUPLOYAN LETTER R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC0B"},113676:{"value":"1BC0C","name":"DUPLOYAN LETTER P N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC0C"},113677:{"value":"1BC0D","name":"DUPLOYAN LETTER D S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC0D"},113678:{"value":"1BC0E","name":"DUPLOYAN LETTER F N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC0E"},113679:{"value":"1BC0F","name":"DUPLOYAN LETTER K M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC0F"},113680:{"value":"1BC10","name":"DUPLOYAN LETTER R S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC10"},113681:{"value":"1BC11","name":"DUPLOYAN LETTER TH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC11"},113682:{"value":"1BC12","name":"DUPLOYAN LETTER SLOAN DH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC12"},113683:{"value":"1BC13","name":"DUPLOYAN LETTER DH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC13"},113684:{"value":"1BC14","name":"DUPLOYAN LETTER KK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC14"},113685:{"value":"1BC15","name":"DUPLOYAN LETTER SLOAN J","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC15"},113686:{"value":"1BC16","name":"DUPLOYAN LETTER HL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC16"},113687:{"value":"1BC17","name":"DUPLOYAN LETTER LH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC17"},113688:{"value":"1BC18","name":"DUPLOYAN LETTER RH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC18"},113689:{"value":"1BC19","name":"DUPLOYAN LETTER M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC19"},113690:{"value":"1BC1A","name":"DUPLOYAN LETTER N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC1A"},113691:{"value":"1BC1B","name":"DUPLOYAN LETTER J","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC1B"},113692:{"value":"1BC1C","name":"DUPLOYAN LETTER S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC1C"},113693:{"value":"1BC1D","name":"DUPLOYAN LETTER M N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC1D"},113694:{"value":"1BC1E","name":"DUPLOYAN LETTER N M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC1E"},113695:{"value":"1BC1F","name":"DUPLOYAN LETTER J M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC1F"},113696:{"value":"1BC20","name":"DUPLOYAN LETTER S J","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC20"},113697:{"value":"1BC21","name":"DUPLOYAN LETTER M WITH DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC21"},113698:{"value":"1BC22","name":"DUPLOYAN LETTER N WITH DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC22"},113699:{"value":"1BC23","name":"DUPLOYAN LETTER J WITH DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC23"},113700:{"value":"1BC24","name":"DUPLOYAN LETTER J WITH DOTS INSIDE AND ABOVE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC24"},113701:{"value":"1BC25","name":"DUPLOYAN LETTER S WITH DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC25"},113702:{"value":"1BC26","name":"DUPLOYAN LETTER S WITH DOT BELOW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC26"},113703:{"value":"1BC27","name":"DUPLOYAN LETTER M S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC27"},113704:{"value":"1BC28","name":"DUPLOYAN LETTER N S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC28"},113705:{"value":"1BC29","name":"DUPLOYAN LETTER J S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC29"},113706:{"value":"1BC2A","name":"DUPLOYAN LETTER S S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC2A"},113707:{"value":"1BC2B","name":"DUPLOYAN LETTER M N S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC2B"},113708:{"value":"1BC2C","name":"DUPLOYAN LETTER N M S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC2C"},113709:{"value":"1BC2D","name":"DUPLOYAN LETTER J M S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC2D"},113710:{"value":"1BC2E","name":"DUPLOYAN LETTER S J S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC2E"},113711:{"value":"1BC2F","name":"DUPLOYAN LETTER J S WITH DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC2F"},113712:{"value":"1BC30","name":"DUPLOYAN LETTER J N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC30"},113713:{"value":"1BC31","name":"DUPLOYAN LETTER J N S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC31"},113714:{"value":"1BC32","name":"DUPLOYAN LETTER S T","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC32"},113715:{"value":"1BC33","name":"DUPLOYAN LETTER S T R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC33"},113716:{"value":"1BC34","name":"DUPLOYAN LETTER S P","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC34"},113717:{"value":"1BC35","name":"DUPLOYAN LETTER S P R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC35"},113718:{"value":"1BC36","name":"DUPLOYAN LETTER T S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC36"},113719:{"value":"1BC37","name":"DUPLOYAN LETTER T R S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC37"},113720:{"value":"1BC38","name":"DUPLOYAN LETTER W","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC38"},113721:{"value":"1BC39","name":"DUPLOYAN LETTER WH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC39"},113722:{"value":"1BC3A","name":"DUPLOYAN LETTER W R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC3A"},113723:{"value":"1BC3B","name":"DUPLOYAN LETTER S N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC3B"},113724:{"value":"1BC3C","name":"DUPLOYAN LETTER S M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC3C"},113725:{"value":"1BC3D","name":"DUPLOYAN LETTER K R S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC3D"},113726:{"value":"1BC3E","name":"DUPLOYAN LETTER G R S","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC3E"},113727:{"value":"1BC3F","name":"DUPLOYAN LETTER S K","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC3F"},113728:{"value":"1BC40","name":"DUPLOYAN LETTER S K R","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC40"},113729:{"value":"1BC41","name":"DUPLOYAN LETTER A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC41"},113730:{"value":"1BC42","name":"DUPLOYAN LETTER SLOAN OW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC42"},113731:{"value":"1BC43","name":"DUPLOYAN LETTER OA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC43"},113732:{"value":"1BC44","name":"DUPLOYAN LETTER O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC44"},113733:{"value":"1BC45","name":"DUPLOYAN LETTER AOU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC45"},113734:{"value":"1BC46","name":"DUPLOYAN LETTER I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC46"},113735:{"value":"1BC47","name":"DUPLOYAN LETTER E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC47"},113736:{"value":"1BC48","name":"DUPLOYAN LETTER IE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC48"},113737:{"value":"1BC49","name":"DUPLOYAN LETTER SHORT I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC49"},113738:{"value":"1BC4A","name":"DUPLOYAN LETTER UI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC4A"},113739:{"value":"1BC4B","name":"DUPLOYAN LETTER EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC4B"},113740:{"value":"1BC4C","name":"DUPLOYAN LETTER SLOAN EH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC4C"},113741:{"value":"1BC4D","name":"DUPLOYAN LETTER ROMANIAN I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC4D"},113742:{"value":"1BC4E","name":"DUPLOYAN LETTER SLOAN EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC4E"},113743:{"value":"1BC4F","name":"DUPLOYAN LETTER LONG I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC4F"},113744:{"value":"1BC50","name":"DUPLOYAN LETTER YE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC50"},113745:{"value":"1BC51","name":"DUPLOYAN LETTER U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC51"},113746:{"value":"1BC52","name":"DUPLOYAN LETTER EU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC52"},113747:{"value":"1BC53","name":"DUPLOYAN LETTER XW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC53"},113748:{"value":"1BC54","name":"DUPLOYAN LETTER U N","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC54"},113749:{"value":"1BC55","name":"DUPLOYAN LETTER LONG U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC55"},113750:{"value":"1BC56","name":"DUPLOYAN LETTER ROMANIAN U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC56"},113751:{"value":"1BC57","name":"DUPLOYAN LETTER UH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC57"},113752:{"value":"1BC58","name":"DUPLOYAN LETTER SLOAN U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC58"},113753:{"value":"1BC59","name":"DUPLOYAN LETTER OOH","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC59"},113754:{"value":"1BC5A","name":"DUPLOYAN LETTER OW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC5A"},113755:{"value":"1BC5B","name":"DUPLOYAN LETTER OU","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC5B"},113756:{"value":"1BC5C","name":"DUPLOYAN LETTER WA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC5C"},113757:{"value":"1BC5D","name":"DUPLOYAN LETTER WO","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC5D"},113758:{"value":"1BC5E","name":"DUPLOYAN LETTER WI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC5E"},113759:{"value":"1BC5F","name":"DUPLOYAN LETTER WEI","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC5F"},113760:{"value":"1BC60","name":"DUPLOYAN LETTER WOW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC60"},113761:{"value":"1BC61","name":"DUPLOYAN LETTER NASAL U","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC61"},113762:{"value":"1BC62","name":"DUPLOYAN LETTER NASAL O","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC62"},113763:{"value":"1BC63","name":"DUPLOYAN LETTER NASAL I","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC63"},113764:{"value":"1BC64","name":"DUPLOYAN LETTER NASAL A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC64"},113765:{"value":"1BC65","name":"DUPLOYAN LETTER PERNIN AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC65"},113766:{"value":"1BC66","name":"DUPLOYAN LETTER PERNIN AM","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC66"},113767:{"value":"1BC67","name":"DUPLOYAN LETTER SLOAN EN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC67"},113768:{"value":"1BC68","name":"DUPLOYAN LETTER SLOAN AN","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC68"},113769:{"value":"1BC69","name":"DUPLOYAN LETTER SLOAN ON","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC69"},113770:{"value":"1BC6A","name":"DUPLOYAN LETTER VOCALIC M","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC6A"},113776:{"value":"1BC70","name":"DUPLOYAN AFFIX LEFT HORIZONTAL SECANT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC70"},113777:{"value":"1BC71","name":"DUPLOYAN AFFIX MID HORIZONTAL SECANT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC71"},113778:{"value":"1BC72","name":"DUPLOYAN AFFIX RIGHT HORIZONTAL SECANT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC72"},113779:{"value":"1BC73","name":"DUPLOYAN AFFIX LOW VERTICAL SECANT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC73"},113780:{"value":"1BC74","name":"DUPLOYAN AFFIX MID VERTICAL SECANT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC74"},113781:{"value":"1BC75","name":"DUPLOYAN AFFIX HIGH VERTICAL SECANT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC75"},113782:{"value":"1BC76","name":"DUPLOYAN AFFIX ATTACHED SECANT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC76"},113783:{"value":"1BC77","name":"DUPLOYAN AFFIX ATTACHED LEFT-TO-RIGHT SECANT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC77"},113784:{"value":"1BC78","name":"DUPLOYAN AFFIX ATTACHED TANGENT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC78"},113785:{"value":"1BC79","name":"DUPLOYAN AFFIX ATTACHED TAIL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC79"},113786:{"value":"1BC7A","name":"DUPLOYAN AFFIX ATTACHED E HOOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC7A"},113787:{"value":"1BC7B","name":"DUPLOYAN AFFIX ATTACHED I HOOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC7B"},113788:{"value":"1BC7C","name":"DUPLOYAN AFFIX ATTACHED TANGENT HOOK","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC7C"},113792:{"value":"1BC80","name":"DUPLOYAN AFFIX HIGH ACUTE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC80"},113793:{"value":"1BC81","name":"DUPLOYAN AFFIX HIGH TIGHT ACUTE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC81"},113794:{"value":"1BC82","name":"DUPLOYAN AFFIX HIGH GRAVE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC82"},113795:{"value":"1BC83","name":"DUPLOYAN AFFIX HIGH LONG GRAVE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC83"},113796:{"value":"1BC84","name":"DUPLOYAN AFFIX HIGH DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC84"},113797:{"value":"1BC85","name":"DUPLOYAN AFFIX HIGH CIRCLE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC85"},113798:{"value":"1BC86","name":"DUPLOYAN AFFIX HIGH LINE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC86"},113799:{"value":"1BC87","name":"DUPLOYAN AFFIX HIGH WAVE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC87"},113800:{"value":"1BC88","name":"DUPLOYAN AFFIX HIGH VERTICAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC88"},113808:{"value":"1BC90","name":"DUPLOYAN AFFIX LOW ACUTE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC90"},113809:{"value":"1BC91","name":"DUPLOYAN AFFIX LOW TIGHT ACUTE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC91"},113810:{"value":"1BC92","name":"DUPLOYAN AFFIX LOW GRAVE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC92"},113811:{"value":"1BC93","name":"DUPLOYAN AFFIX LOW LONG GRAVE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC93"},113812:{"value":"1BC94","name":"DUPLOYAN AFFIX LOW DOT","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC94"},113813:{"value":"1BC95","name":"DUPLOYAN AFFIX LOW CIRCLE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC95"},113814:{"value":"1BC96","name":"DUPLOYAN AFFIX LOW LINE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC96"},113815:{"value":"1BC97","name":"DUPLOYAN AFFIX LOW WAVE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC97"},113816:{"value":"1BC98","name":"DUPLOYAN AFFIX LOW VERTICAL","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC98"},113817:{"value":"1BC99","name":"DUPLOYAN AFFIX LOW ARROW","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC99"},124928:{"value":"1E800","name":"MENDE KIKAKUI SYLLABLE M001 KI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE800"},124929:{"value":"1E801","name":"MENDE KIKAKUI SYLLABLE M002 KA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE801"},124930:{"value":"1E802","name":"MENDE KIKAKUI SYLLABLE M003 KU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE802"},124931:{"value":"1E803","name":"MENDE KIKAKUI SYLLABLE M065 KEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE803"},124932:{"value":"1E804","name":"MENDE KIKAKUI SYLLABLE M095 KE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE804"},124933:{"value":"1E805","name":"MENDE KIKAKUI SYLLABLE M076 KOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE805"},124934:{"value":"1E806","name":"MENDE KIKAKUI SYLLABLE M048 KO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE806"},124935:{"value":"1E807","name":"MENDE KIKAKUI SYLLABLE M179 KUA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE807"},124936:{"value":"1E808","name":"MENDE KIKAKUI SYLLABLE M004 WI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE808"},124937:{"value":"1E809","name":"MENDE KIKAKUI SYLLABLE M005 WA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE809"},124938:{"value":"1E80A","name":"MENDE KIKAKUI SYLLABLE M006 WU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE80A"},124939:{"value":"1E80B","name":"MENDE KIKAKUI SYLLABLE M126 WEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE80B"},124940:{"value":"1E80C","name":"MENDE KIKAKUI SYLLABLE M118 WE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE80C"},124941:{"value":"1E80D","name":"MENDE KIKAKUI SYLLABLE M114 WOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE80D"},124942:{"value":"1E80E","name":"MENDE KIKAKUI SYLLABLE M045 WO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE80E"},124943:{"value":"1E80F","name":"MENDE KIKAKUI SYLLABLE M194 WUI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE80F"},124944:{"value":"1E810","name":"MENDE KIKAKUI SYLLABLE M143 WEI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE810"},124945:{"value":"1E811","name":"MENDE KIKAKUI SYLLABLE M061 WVI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE811"},124946:{"value":"1E812","name":"MENDE KIKAKUI SYLLABLE M049 WVA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE812"},124947:{"value":"1E813","name":"MENDE KIKAKUI SYLLABLE M139 WVE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE813"},124948:{"value":"1E814","name":"MENDE KIKAKUI SYLLABLE M007 MIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE814"},124949:{"value":"1E815","name":"MENDE KIKAKUI SYLLABLE M008 MAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE815"},124950:{"value":"1E816","name":"MENDE KIKAKUI SYLLABLE M009 MUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE816"},124951:{"value":"1E817","name":"MENDE KIKAKUI SYLLABLE M059 MEN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE817"},124952:{"value":"1E818","name":"MENDE KIKAKUI SYLLABLE M094 MON","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE818"},124953:{"value":"1E819","name":"MENDE KIKAKUI SYLLABLE M154 MUAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE819"},124954:{"value":"1E81A","name":"MENDE KIKAKUI SYLLABLE M189 MUEN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE81A"},124955:{"value":"1E81B","name":"MENDE KIKAKUI SYLLABLE M010 BI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE81B"},124956:{"value":"1E81C","name":"MENDE KIKAKUI SYLLABLE M011 BA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE81C"},124957:{"value":"1E81D","name":"MENDE KIKAKUI SYLLABLE M012 BU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE81D"},124958:{"value":"1E81E","name":"MENDE KIKAKUI SYLLABLE M150 BEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE81E"},124959:{"value":"1E81F","name":"MENDE KIKAKUI SYLLABLE M097 BE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE81F"},124960:{"value":"1E820","name":"MENDE KIKAKUI SYLLABLE M103 BOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE820"},124961:{"value":"1E821","name":"MENDE KIKAKUI SYLLABLE M138 BO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE821"},124962:{"value":"1E822","name":"MENDE KIKAKUI SYLLABLE M013 I","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE822"},124963:{"value":"1E823","name":"MENDE KIKAKUI SYLLABLE M014 A","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE823"},124964:{"value":"1E824","name":"MENDE KIKAKUI SYLLABLE M015 U","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE824"},124965:{"value":"1E825","name":"MENDE KIKAKUI SYLLABLE M163 EE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE825"},124966:{"value":"1E826","name":"MENDE KIKAKUI SYLLABLE M100 E","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE826"},124967:{"value":"1E827","name":"MENDE KIKAKUI SYLLABLE M165 OO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE827"},124968:{"value":"1E828","name":"MENDE KIKAKUI SYLLABLE M147 O","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE828"},124969:{"value":"1E829","name":"MENDE KIKAKUI SYLLABLE M137 EI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE829"},124970:{"value":"1E82A","name":"MENDE KIKAKUI SYLLABLE M131 IN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE82A"},124971:{"value":"1E82B","name":"MENDE KIKAKUI SYLLABLE M135 IN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE82B"},124972:{"value":"1E82C","name":"MENDE KIKAKUI SYLLABLE M195 AN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE82C"},124973:{"value":"1E82D","name":"MENDE KIKAKUI SYLLABLE M178 EN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE82D"},124974:{"value":"1E82E","name":"MENDE KIKAKUI SYLLABLE M019 SI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE82E"},124975:{"value":"1E82F","name":"MENDE KIKAKUI SYLLABLE M020 SA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE82F"},124976:{"value":"1E830","name":"MENDE KIKAKUI SYLLABLE M021 SU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE830"},124977:{"value":"1E831","name":"MENDE KIKAKUI SYLLABLE M162 SEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE831"},124978:{"value":"1E832","name":"MENDE KIKAKUI SYLLABLE M116 SE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE832"},124979:{"value":"1E833","name":"MENDE KIKAKUI SYLLABLE M136 SOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE833"},124980:{"value":"1E834","name":"MENDE KIKAKUI SYLLABLE M079 SO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE834"},124981:{"value":"1E835","name":"MENDE KIKAKUI SYLLABLE M196 SIA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE835"},124982:{"value":"1E836","name":"MENDE KIKAKUI SYLLABLE M025 LI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE836"},124983:{"value":"1E837","name":"MENDE KIKAKUI SYLLABLE M026 LA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE837"},124984:{"value":"1E838","name":"MENDE KIKAKUI SYLLABLE M027 LU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE838"},124985:{"value":"1E839","name":"MENDE KIKAKUI SYLLABLE M084 LEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE839"},124986:{"value":"1E83A","name":"MENDE KIKAKUI SYLLABLE M073 LE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE83A"},124987:{"value":"1E83B","name":"MENDE KIKAKUI SYLLABLE M054 LOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE83B"},124988:{"value":"1E83C","name":"MENDE KIKAKUI SYLLABLE M153 LO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE83C"},124989:{"value":"1E83D","name":"MENDE KIKAKUI SYLLABLE M110 LONG LE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE83D"},124990:{"value":"1E83E","name":"MENDE KIKAKUI SYLLABLE M016 DI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE83E"},124991:{"value":"1E83F","name":"MENDE KIKAKUI SYLLABLE M017 DA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE83F"},124992:{"value":"1E840","name":"MENDE KIKAKUI SYLLABLE M018 DU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE840"},124993:{"value":"1E841","name":"MENDE KIKAKUI SYLLABLE M089 DEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE841"},124994:{"value":"1E842","name":"MENDE KIKAKUI SYLLABLE M180 DOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE842"},124995:{"value":"1E843","name":"MENDE KIKAKUI SYLLABLE M181 DO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE843"},124996:{"value":"1E844","name":"MENDE KIKAKUI SYLLABLE M022 TI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE844"},124997:{"value":"1E845","name":"MENDE KIKAKUI SYLLABLE M023 TA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE845"},124998:{"value":"1E846","name":"MENDE KIKAKUI SYLLABLE M024 TU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE846"},124999:{"value":"1E847","name":"MENDE KIKAKUI SYLLABLE M091 TEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE847"},125000:{"value":"1E848","name":"MENDE KIKAKUI SYLLABLE M055 TE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE848"},125001:{"value":"1E849","name":"MENDE KIKAKUI SYLLABLE M104 TOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE849"},125002:{"value":"1E84A","name":"MENDE KIKAKUI SYLLABLE M069 TO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE84A"},125003:{"value":"1E84B","name":"MENDE KIKAKUI SYLLABLE M028 JI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE84B"},125004:{"value":"1E84C","name":"MENDE KIKAKUI SYLLABLE M029 JA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE84C"},125005:{"value":"1E84D","name":"MENDE KIKAKUI SYLLABLE M030 JU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE84D"},125006:{"value":"1E84E","name":"MENDE KIKAKUI SYLLABLE M157 JEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE84E"},125007:{"value":"1E84F","name":"MENDE KIKAKUI SYLLABLE M113 JE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE84F"},125008:{"value":"1E850","name":"MENDE KIKAKUI SYLLABLE M160 JOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE850"},125009:{"value":"1E851","name":"MENDE KIKAKUI SYLLABLE M063 JO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE851"},125010:{"value":"1E852","name":"MENDE KIKAKUI SYLLABLE M175 LONG JO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE852"},125011:{"value":"1E853","name":"MENDE KIKAKUI SYLLABLE M031 YI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE853"},125012:{"value":"1E854","name":"MENDE KIKAKUI SYLLABLE M032 YA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE854"},125013:{"value":"1E855","name":"MENDE KIKAKUI SYLLABLE M033 YU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE855"},125014:{"value":"1E856","name":"MENDE KIKAKUI SYLLABLE M109 YEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE856"},125015:{"value":"1E857","name":"MENDE KIKAKUI SYLLABLE M080 YE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE857"},125016:{"value":"1E858","name":"MENDE KIKAKUI SYLLABLE M141 YOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE858"},125017:{"value":"1E859","name":"MENDE KIKAKUI SYLLABLE M121 YO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE859"},125018:{"value":"1E85A","name":"MENDE KIKAKUI SYLLABLE M034 FI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE85A"},125019:{"value":"1E85B","name":"MENDE KIKAKUI SYLLABLE M035 FA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE85B"},125020:{"value":"1E85C","name":"MENDE KIKAKUI SYLLABLE M036 FU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE85C"},125021:{"value":"1E85D","name":"MENDE KIKAKUI SYLLABLE M078 FEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE85D"},125022:{"value":"1E85E","name":"MENDE KIKAKUI SYLLABLE M075 FE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE85E"},125023:{"value":"1E85F","name":"MENDE KIKAKUI SYLLABLE M133 FOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE85F"},125024:{"value":"1E860","name":"MENDE KIKAKUI SYLLABLE M088 FO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE860"},125025:{"value":"1E861","name":"MENDE KIKAKUI SYLLABLE M197 FUA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE861"},125026:{"value":"1E862","name":"MENDE KIKAKUI SYLLABLE M101 FAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE862"},125027:{"value":"1E863","name":"MENDE KIKAKUI SYLLABLE M037 NIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE863"},125028:{"value":"1E864","name":"MENDE KIKAKUI SYLLABLE M038 NAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE864"},125029:{"value":"1E865","name":"MENDE KIKAKUI SYLLABLE M039 NUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE865"},125030:{"value":"1E866","name":"MENDE KIKAKUI SYLLABLE M117 NEN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE866"},125031:{"value":"1E867","name":"MENDE KIKAKUI SYLLABLE M169 NON","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE867"},125032:{"value":"1E868","name":"MENDE KIKAKUI SYLLABLE M176 HI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE868"},125033:{"value":"1E869","name":"MENDE KIKAKUI SYLLABLE M041 HA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE869"},125034:{"value":"1E86A","name":"MENDE KIKAKUI SYLLABLE M186 HU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE86A"},125035:{"value":"1E86B","name":"MENDE KIKAKUI SYLLABLE M040 HEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE86B"},125036:{"value":"1E86C","name":"MENDE KIKAKUI SYLLABLE M096 HE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE86C"},125037:{"value":"1E86D","name":"MENDE KIKAKUI SYLLABLE M042 HOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE86D"},125038:{"value":"1E86E","name":"MENDE KIKAKUI SYLLABLE M140 HO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE86E"},125039:{"value":"1E86F","name":"MENDE KIKAKUI SYLLABLE M083 HEEI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE86F"},125040:{"value":"1E870","name":"MENDE KIKAKUI SYLLABLE M128 HOOU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE870"},125041:{"value":"1E871","name":"MENDE KIKAKUI SYLLABLE M053 HIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE871"},125042:{"value":"1E872","name":"MENDE KIKAKUI SYLLABLE M130 HAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE872"},125043:{"value":"1E873","name":"MENDE KIKAKUI SYLLABLE M087 HUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE873"},125044:{"value":"1E874","name":"MENDE KIKAKUI SYLLABLE M052 HEN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE874"},125045:{"value":"1E875","name":"MENDE KIKAKUI SYLLABLE M193 HON","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE875"},125046:{"value":"1E876","name":"MENDE KIKAKUI SYLLABLE M046 HUAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE876"},125047:{"value":"1E877","name":"MENDE KIKAKUI SYLLABLE M090 NGGI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE877"},125048:{"value":"1E878","name":"MENDE KIKAKUI SYLLABLE M043 NGGA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE878"},125049:{"value":"1E879","name":"MENDE KIKAKUI SYLLABLE M082 NGGU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE879"},125050:{"value":"1E87A","name":"MENDE KIKAKUI SYLLABLE M115 NGGEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE87A"},125051:{"value":"1E87B","name":"MENDE KIKAKUI SYLLABLE M146 NGGE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE87B"},125052:{"value":"1E87C","name":"MENDE KIKAKUI SYLLABLE M156 NGGOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE87C"},125053:{"value":"1E87D","name":"MENDE KIKAKUI SYLLABLE M120 NGGO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE87D"},125054:{"value":"1E87E","name":"MENDE KIKAKUI SYLLABLE M159 NGGAA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE87E"},125055:{"value":"1E87F","name":"MENDE KIKAKUI SYLLABLE M127 NGGUA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE87F"},125056:{"value":"1E880","name":"MENDE KIKAKUI SYLLABLE M086 LONG NGGE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE880"},125057:{"value":"1E881","name":"MENDE KIKAKUI SYLLABLE M106 LONG NGGOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE881"},125058:{"value":"1E882","name":"MENDE KIKAKUI SYLLABLE M183 LONG NGGO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE882"},125059:{"value":"1E883","name":"MENDE KIKAKUI SYLLABLE M155 GI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE883"},125060:{"value":"1E884","name":"MENDE KIKAKUI SYLLABLE M111 GA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE884"},125061:{"value":"1E885","name":"MENDE KIKAKUI SYLLABLE M168 GU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE885"},125062:{"value":"1E886","name":"MENDE KIKAKUI SYLLABLE M190 GEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE886"},125063:{"value":"1E887","name":"MENDE KIKAKUI SYLLABLE M166 GUEI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE887"},125064:{"value":"1E888","name":"MENDE KIKAKUI SYLLABLE M167 GUAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE888"},125065:{"value":"1E889","name":"MENDE KIKAKUI SYLLABLE M184 NGEN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE889"},125066:{"value":"1E88A","name":"MENDE KIKAKUI SYLLABLE M057 NGON","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE88A"},125067:{"value":"1E88B","name":"MENDE KIKAKUI SYLLABLE M177 NGUAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE88B"},125068:{"value":"1E88C","name":"MENDE KIKAKUI SYLLABLE M068 PI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE88C"},125069:{"value":"1E88D","name":"MENDE KIKAKUI SYLLABLE M099 PA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE88D"},125070:{"value":"1E88E","name":"MENDE KIKAKUI SYLLABLE M050 PU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE88E"},125071:{"value":"1E88F","name":"MENDE KIKAKUI SYLLABLE M081 PEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE88F"},125072:{"value":"1E890","name":"MENDE KIKAKUI SYLLABLE M051 PE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE890"},125073:{"value":"1E891","name":"MENDE KIKAKUI SYLLABLE M102 POO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE891"},125074:{"value":"1E892","name":"MENDE KIKAKUI SYLLABLE M066 PO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE892"},125075:{"value":"1E893","name":"MENDE KIKAKUI SYLLABLE M145 MBI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE893"},125076:{"value":"1E894","name":"MENDE KIKAKUI SYLLABLE M062 MBA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE894"},125077:{"value":"1E895","name":"MENDE KIKAKUI SYLLABLE M122 MBU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE895"},125078:{"value":"1E896","name":"MENDE KIKAKUI SYLLABLE M047 MBEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE896"},125079:{"value":"1E897","name":"MENDE KIKAKUI SYLLABLE M188 MBEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE897"},125080:{"value":"1E898","name":"MENDE KIKAKUI SYLLABLE M072 MBE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE898"},125081:{"value":"1E899","name":"MENDE KIKAKUI SYLLABLE M172 MBOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE899"},125082:{"value":"1E89A","name":"MENDE KIKAKUI SYLLABLE M174 MBO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE89A"},125083:{"value":"1E89B","name":"MENDE KIKAKUI SYLLABLE M187 MBUU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE89B"},125084:{"value":"1E89C","name":"MENDE KIKAKUI SYLLABLE M161 LONG MBE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE89C"},125085:{"value":"1E89D","name":"MENDE KIKAKUI SYLLABLE M105 LONG MBOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE89D"},125086:{"value":"1E89E","name":"MENDE KIKAKUI SYLLABLE M142 LONG MBO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE89E"},125087:{"value":"1E89F","name":"MENDE KIKAKUI SYLLABLE M132 KPI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE89F"},125088:{"value":"1E8A0","name":"MENDE KIKAKUI SYLLABLE M092 KPA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8A0"},125089:{"value":"1E8A1","name":"MENDE KIKAKUI SYLLABLE M074 KPU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8A1"},125090:{"value":"1E8A2","name":"MENDE KIKAKUI SYLLABLE M044 KPEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8A2"},125091:{"value":"1E8A3","name":"MENDE KIKAKUI SYLLABLE M108 KPE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8A3"},125092:{"value":"1E8A4","name":"MENDE KIKAKUI SYLLABLE M112 KPOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8A4"},125093:{"value":"1E8A5","name":"MENDE KIKAKUI SYLLABLE M158 KPO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8A5"},125094:{"value":"1E8A6","name":"MENDE KIKAKUI SYLLABLE M124 GBI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8A6"},125095:{"value":"1E8A7","name":"MENDE KIKAKUI SYLLABLE M056 GBA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8A7"},125096:{"value":"1E8A8","name":"MENDE KIKAKUI SYLLABLE M148 GBU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8A8"},125097:{"value":"1E8A9","name":"MENDE KIKAKUI SYLLABLE M093 GBEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8A9"},125098:{"value":"1E8AA","name":"MENDE KIKAKUI SYLLABLE M107 GBE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8AA"},125099:{"value":"1E8AB","name":"MENDE KIKAKUI SYLLABLE M071 GBOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8AB"},125100:{"value":"1E8AC","name":"MENDE KIKAKUI SYLLABLE M070 GBO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8AC"},125101:{"value":"1E8AD","name":"MENDE KIKAKUI SYLLABLE M171 RA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8AD"},125102:{"value":"1E8AE","name":"MENDE KIKAKUI SYLLABLE M123 NDI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8AE"},125103:{"value":"1E8AF","name":"MENDE KIKAKUI SYLLABLE M129 NDA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8AF"},125104:{"value":"1E8B0","name":"MENDE KIKAKUI SYLLABLE M125 NDU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8B0"},125105:{"value":"1E8B1","name":"MENDE KIKAKUI SYLLABLE M191 NDEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8B1"},125106:{"value":"1E8B2","name":"MENDE KIKAKUI SYLLABLE M119 NDE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8B2"},125107:{"value":"1E8B3","name":"MENDE KIKAKUI SYLLABLE M067 NDOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8B3"},125108:{"value":"1E8B4","name":"MENDE KIKAKUI SYLLABLE M064 NDO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8B4"},125109:{"value":"1E8B5","name":"MENDE KIKAKUI SYLLABLE M152 NJA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8B5"},125110:{"value":"1E8B6","name":"MENDE KIKAKUI SYLLABLE M192 NJU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8B6"},125111:{"value":"1E8B7","name":"MENDE KIKAKUI SYLLABLE M149 NJEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8B7"},125112:{"value":"1E8B8","name":"MENDE KIKAKUI SYLLABLE M134 NJOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8B8"},125113:{"value":"1E8B9","name":"MENDE KIKAKUI SYLLABLE M182 VI","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8B9"},125114:{"value":"1E8BA","name":"MENDE KIKAKUI SYLLABLE M185 VA","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8BA"},125115:{"value":"1E8BB","name":"MENDE KIKAKUI SYLLABLE M151 VU","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8BB"},125116:{"value":"1E8BC","name":"MENDE KIKAKUI SYLLABLE M173 VEE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8BC"},125117:{"value":"1E8BD","name":"MENDE KIKAKUI SYLLABLE M085 VE","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8BD"},125118:{"value":"1E8BE","name":"MENDE KIKAKUI SYLLABLE M144 VOO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8BE"},125119:{"value":"1E8BF","name":"MENDE KIKAKUI SYLLABLE M077 VO","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8BF"},125120:{"value":"1E8C0","name":"MENDE KIKAKUI SYLLABLE M164 NYIN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8C0"},125121:{"value":"1E8C1","name":"MENDE KIKAKUI SYLLABLE M058 NYAN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8C1"},125122:{"value":"1E8C2","name":"MENDE KIKAKUI SYLLABLE M170 NYUN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8C2"},125123:{"value":"1E8C3","name":"MENDE KIKAKUI SYLLABLE M098 NYEN","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8C3"},125124:{"value":"1E8C4","name":"MENDE KIKAKUI SYLLABLE M060 NYON","category":"Lo","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8C4"},126464:{"value":"1EE00","name":"ARABIC MATHEMATICAL ALEF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE00"},126465:{"value":"1EE01","name":"ARABIC MATHEMATICAL BEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0628","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE01"},126466:{"value":"1EE02","name":"ARABIC MATHEMATICAL JEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE02"},126467:{"value":"1EE03","name":"ARABIC MATHEMATICAL DAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE03"},126469:{"value":"1EE05","name":"ARABIC MATHEMATICAL WAW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0648","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE05"},126470:{"value":"1EE06","name":"ARABIC MATHEMATICAL ZAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE06"},126471:{"value":"1EE07","name":"ARABIC MATHEMATICAL HAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE07"},126472:{"value":"1EE08","name":"ARABIC MATHEMATICAL TAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0637","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE08"},126473:{"value":"1EE09","name":"ARABIC MATHEMATICAL YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE09"},126474:{"value":"1EE0A","name":"ARABIC MATHEMATICAL KAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0643","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE0A"},126475:{"value":"1EE0B","name":"ARABIC MATHEMATICAL LAM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE0B"},126476:{"value":"1EE0C","name":"ARABIC MATHEMATICAL MEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE0C"},126477:{"value":"1EE0D","name":"ARABIC MATHEMATICAL NOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE0D"},126478:{"value":"1EE0E","name":"ARABIC MATHEMATICAL SEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0633","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE0E"},126479:{"value":"1EE0F","name":"ARABIC MATHEMATICAL AIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0639","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE0F"},126480:{"value":"1EE10","name":"ARABIC MATHEMATICAL FEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0641","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE10"},126481:{"value":"1EE11","name":"ARABIC MATHEMATICAL SAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE11"},126482:{"value":"1EE12","name":"ARABIC MATHEMATICAL QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE12"},126483:{"value":"1EE13","name":"ARABIC MATHEMATICAL REH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE13"},126484:{"value":"1EE14","name":"ARABIC MATHEMATICAL SHEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0634","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE14"},126485:{"value":"1EE15","name":"ARABIC MATHEMATICAL TEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE15"},126486:{"value":"1EE16","name":"ARABIC MATHEMATICAL THEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE16"},126487:{"value":"1EE17","name":"ARABIC MATHEMATICAL KHAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE17"},126488:{"value":"1EE18","name":"ARABIC MATHEMATICAL THAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0630","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE18"},126489:{"value":"1EE19","name":"ARABIC MATHEMATICAL DAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0636","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE19"},126490:{"value":"1EE1A","name":"ARABIC MATHEMATICAL ZAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0638","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE1A"},126491:{"value":"1EE1B","name":"ARABIC MATHEMATICAL GHAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE1B"},126492:{"value":"1EE1C","name":"ARABIC MATHEMATICAL DOTLESS BEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 066E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE1C"},126493:{"value":"1EE1D","name":"ARABIC MATHEMATICAL DOTLESS NOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 06BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE1D"},126494:{"value":"1EE1E","name":"ARABIC MATHEMATICAL DOTLESS FEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 06A1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE1E"},126495:{"value":"1EE1F","name":"ARABIC MATHEMATICAL DOTLESS QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 066F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE1F"},126497:{"value":"1EE21","name":"ARABIC MATHEMATICAL INITIAL BEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0628","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE21"},126498:{"value":"1EE22","name":"ARABIC MATHEMATICAL INITIAL JEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE22"},126500:{"value":"1EE24","name":"ARABIC MATHEMATICAL INITIAL HEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE24"},126503:{"value":"1EE27","name":"ARABIC MATHEMATICAL INITIAL HAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE27"},126505:{"value":"1EE29","name":"ARABIC MATHEMATICAL INITIAL YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE29"},126506:{"value":"1EE2A","name":"ARABIC MATHEMATICAL INITIAL KAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0643","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE2A"},126507:{"value":"1EE2B","name":"ARABIC MATHEMATICAL INITIAL LAM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE2B"},126508:{"value":"1EE2C","name":"ARABIC MATHEMATICAL INITIAL MEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE2C"},126509:{"value":"1EE2D","name":"ARABIC MATHEMATICAL INITIAL NOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE2D"},126510:{"value":"1EE2E","name":"ARABIC MATHEMATICAL INITIAL SEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0633","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE2E"},126511:{"value":"1EE2F","name":"ARABIC MATHEMATICAL INITIAL AIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0639","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE2F"},126512:{"value":"1EE30","name":"ARABIC MATHEMATICAL INITIAL FEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0641","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE30"},126513:{"value":"1EE31","name":"ARABIC MATHEMATICAL INITIAL SAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE31"},126514:{"value":"1EE32","name":"ARABIC MATHEMATICAL INITIAL QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE32"},126516:{"value":"1EE34","name":"ARABIC MATHEMATICAL INITIAL SHEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0634","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE34"},126517:{"value":"1EE35","name":"ARABIC MATHEMATICAL INITIAL TEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE35"},126518:{"value":"1EE36","name":"ARABIC MATHEMATICAL INITIAL THEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE36"},126519:{"value":"1EE37","name":"ARABIC MATHEMATICAL INITIAL KHAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE37"},126521:{"value":"1EE39","name":"ARABIC MATHEMATICAL INITIAL DAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0636","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE39"},126523:{"value":"1EE3B","name":"ARABIC MATHEMATICAL INITIAL GHAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE3B"},126530:{"value":"1EE42","name":"ARABIC MATHEMATICAL TAILED JEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE42"},126535:{"value":"1EE47","name":"ARABIC MATHEMATICAL TAILED HAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE47"},126537:{"value":"1EE49","name":"ARABIC MATHEMATICAL TAILED YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE49"},126539:{"value":"1EE4B","name":"ARABIC MATHEMATICAL TAILED LAM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE4B"},126541:{"value":"1EE4D","name":"ARABIC MATHEMATICAL TAILED NOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE4D"},126542:{"value":"1EE4E","name":"ARABIC MATHEMATICAL TAILED SEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0633","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE4E"},126543:{"value":"1EE4F","name":"ARABIC MATHEMATICAL TAILED AIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0639","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE4F"},126545:{"value":"1EE51","name":"ARABIC MATHEMATICAL TAILED SAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE51"},126546:{"value":"1EE52","name":"ARABIC MATHEMATICAL TAILED QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE52"},126548:{"value":"1EE54","name":"ARABIC MATHEMATICAL TAILED SHEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0634","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE54"},126551:{"value":"1EE57","name":"ARABIC MATHEMATICAL TAILED KHAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE57"},126553:{"value":"1EE59","name":"ARABIC MATHEMATICAL TAILED DAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0636","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE59"},126555:{"value":"1EE5B","name":"ARABIC MATHEMATICAL TAILED GHAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE5B"},126557:{"value":"1EE5D","name":"ARABIC MATHEMATICAL TAILED DOTLESS NOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 06BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE5D"},126559:{"value":"1EE5F","name":"ARABIC MATHEMATICAL TAILED DOTLESS QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 066F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE5F"},126561:{"value":"1EE61","name":"ARABIC MATHEMATICAL STRETCHED BEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0628","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE61"},126562:{"value":"1EE62","name":"ARABIC MATHEMATICAL STRETCHED JEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE62"},126564:{"value":"1EE64","name":"ARABIC MATHEMATICAL STRETCHED HEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE64"},126567:{"value":"1EE67","name":"ARABIC MATHEMATICAL STRETCHED HAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE67"},126568:{"value":"1EE68","name":"ARABIC MATHEMATICAL STRETCHED TAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0637","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE68"},126569:{"value":"1EE69","name":"ARABIC MATHEMATICAL STRETCHED YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE69"},126570:{"value":"1EE6A","name":"ARABIC MATHEMATICAL STRETCHED KAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0643","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE6A"},126572:{"value":"1EE6C","name":"ARABIC MATHEMATICAL STRETCHED MEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE6C"},126573:{"value":"1EE6D","name":"ARABIC MATHEMATICAL STRETCHED NOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE6D"},126574:{"value":"1EE6E","name":"ARABIC MATHEMATICAL STRETCHED SEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0633","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE6E"},126575:{"value":"1EE6F","name":"ARABIC MATHEMATICAL STRETCHED AIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0639","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE6F"},126576:{"value":"1EE70","name":"ARABIC MATHEMATICAL STRETCHED FEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0641","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE70"},126577:{"value":"1EE71","name":"ARABIC MATHEMATICAL STRETCHED SAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE71"},126578:{"value":"1EE72","name":"ARABIC MATHEMATICAL STRETCHED QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE72"},126580:{"value":"1EE74","name":"ARABIC MATHEMATICAL STRETCHED SHEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0634","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE74"},126581:{"value":"1EE75","name":"ARABIC MATHEMATICAL STRETCHED TEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE75"},126582:{"value":"1EE76","name":"ARABIC MATHEMATICAL STRETCHED THEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE76"},126583:{"value":"1EE77","name":"ARABIC MATHEMATICAL STRETCHED KHAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE77"},126585:{"value":"1EE79","name":"ARABIC MATHEMATICAL STRETCHED DAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0636","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE79"},126586:{"value":"1EE7A","name":"ARABIC MATHEMATICAL STRETCHED ZAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0638","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE7A"},126587:{"value":"1EE7B","name":"ARABIC MATHEMATICAL STRETCHED GHAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE7B"},126588:{"value":"1EE7C","name":"ARABIC MATHEMATICAL STRETCHED DOTLESS BEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 066E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE7C"},126590:{"value":"1EE7E","name":"ARABIC MATHEMATICAL STRETCHED DOTLESS FEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 06A1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE7E"},126592:{"value":"1EE80","name":"ARABIC MATHEMATICAL LOOPED ALEF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0627","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE80"},126593:{"value":"1EE81","name":"ARABIC MATHEMATICAL LOOPED BEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0628","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE81"},126594:{"value":"1EE82","name":"ARABIC MATHEMATICAL LOOPED JEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE82"},126595:{"value":"1EE83","name":"ARABIC MATHEMATICAL LOOPED DAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE83"},126596:{"value":"1EE84","name":"ARABIC MATHEMATICAL LOOPED HEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0647","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE84"},126597:{"value":"1EE85","name":"ARABIC MATHEMATICAL LOOPED WAW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0648","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE85"},126598:{"value":"1EE86","name":"ARABIC MATHEMATICAL LOOPED ZAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE86"},126599:{"value":"1EE87","name":"ARABIC MATHEMATICAL LOOPED HAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE87"},126600:{"value":"1EE88","name":"ARABIC MATHEMATICAL LOOPED TAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0637","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE88"},126601:{"value":"1EE89","name":"ARABIC MATHEMATICAL LOOPED YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE89"},126603:{"value":"1EE8B","name":"ARABIC MATHEMATICAL LOOPED LAM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE8B"},126604:{"value":"1EE8C","name":"ARABIC MATHEMATICAL LOOPED MEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE8C"},126605:{"value":"1EE8D","name":"ARABIC MATHEMATICAL LOOPED NOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE8D"},126606:{"value":"1EE8E","name":"ARABIC MATHEMATICAL LOOPED SEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0633","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE8E"},126607:{"value":"1EE8F","name":"ARABIC MATHEMATICAL LOOPED AIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0639","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE8F"},126608:{"value":"1EE90","name":"ARABIC MATHEMATICAL LOOPED FEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0641","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE90"},126609:{"value":"1EE91","name":"ARABIC MATHEMATICAL LOOPED SAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE91"},126610:{"value":"1EE92","name":"ARABIC MATHEMATICAL LOOPED QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE92"},126611:{"value":"1EE93","name":"ARABIC MATHEMATICAL LOOPED REH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE93"},126612:{"value":"1EE94","name":"ARABIC MATHEMATICAL LOOPED SHEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0634","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE94"},126613:{"value":"1EE95","name":"ARABIC MATHEMATICAL LOOPED TEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE95"},126614:{"value":"1EE96","name":"ARABIC MATHEMATICAL LOOPED THEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE96"},126615:{"value":"1EE97","name":"ARABIC MATHEMATICAL LOOPED KHAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE97"},126616:{"value":"1EE98","name":"ARABIC MATHEMATICAL LOOPED THAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0630","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE98"},126617:{"value":"1EE99","name":"ARABIC MATHEMATICAL LOOPED DAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0636","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE99"},126618:{"value":"1EE9A","name":"ARABIC MATHEMATICAL LOOPED ZAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0638","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE9A"},126619:{"value":"1EE9B","name":"ARABIC MATHEMATICAL LOOPED GHAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEE9B"},126625:{"value":"1EEA1","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK BEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0628","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEA1"},126626:{"value":"1EEA2","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEA2"},126627:{"value":"1EEA3","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK DAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEA3"},126629:{"value":"1EEA5","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK WAW","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0648","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEA5"},126630:{"value":"1EEA6","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0632","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEA6"},126631:{"value":"1EEA7","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK HAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEA7"},126632:{"value":"1EEA8","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK TAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0637","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEA8"},126633:{"value":"1EEA9","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK YEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 064A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEA9"},126635:{"value":"1EEAB","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK LAM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0644","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEAB"},126636:{"value":"1EEAC","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0645","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEAC"},126637:{"value":"1EEAD","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK NOON","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0646","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEAD"},126638:{"value":"1EEAE","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0633","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEAE"},126639:{"value":"1EEAF","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK AIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0639","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEAF"},126640:{"value":"1EEB0","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK FEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0641","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEB0"},126641:{"value":"1EEB1","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK SAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEB1"},126642:{"value":"1EEB2","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK QAF","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0642","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEB2"},126643:{"value":"1EEB3","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK REH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0631","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEB3"},126644:{"value":"1EEB4","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0634","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEB4"},126645:{"value":"1EEB5","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK TEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEB5"},126646:{"value":"1EEB6","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK THEH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEB6"},126647:{"value":"1EEB7","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 062E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEB7"},126648:{"value":"1EEB8","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK THAL","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0630","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEB8"},126649:{"value":"1EEB9","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK DAD","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0636","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEB9"},126650:{"value":"1EEBA","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 0638","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEBA"},126651:{"value":"1EEBB","name":"ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN","category":"Lo","class":"0","bidirectional_category":"AL","mapping":"<font> 063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEEBB"},131072:{"value":"20000","name":"<CJK Ideograph Extension B, First>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0000"},173782:{"value":"2A6D6","name":"<CJK Ideograph Extension B, Last>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6D6"},173824:{"value":"2A700","name":"<CJK Ideograph Extension C, First>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA700"},177972:{"value":"2B734","name":"<CJK Ideograph Extension C, Last>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB734"},177984:{"value":"2B740","name":"<CJK Ideograph Extension D, First>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB740"},178205:{"value":"2B81D","name":"<CJK Ideograph Extension D, Last>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB81D"},178208:{"value":"2B820","name":"<CJK Ideograph Extension E, First>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uB820"},183969:{"value":"2CEA1","name":"<CJK Ideograph Extension E, Last>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uCEA1"},183984:{"value":"2CEB0","name":"<CJK Ideograph Extension F, First>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uCEB0"},191456:{"value":"2EBE0","name":"<CJK Ideograph Extension F, Last>","category":"Lo","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uEBE0"},194560:{"value":"2F800","name":"CJK COMPATIBILITY IDEOGRAPH-2F800","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4E3D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF800"},194561:{"value":"2F801","name":"CJK COMPATIBILITY IDEOGRAPH-2F801","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4E38","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF801"},194562:{"value":"2F802","name":"CJK COMPATIBILITY IDEOGRAPH-2F802","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4E41","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF802"},194563:{"value":"2F803","name":"CJK COMPATIBILITY IDEOGRAPH-2F803","category":"Lo","class":"0","bidirectional_category":"L","mapping":"20122","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF803"},194564:{"value":"2F804","name":"CJK COMPATIBILITY IDEOGRAPH-2F804","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4F60","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF804"},194565:{"value":"2F805","name":"CJK COMPATIBILITY IDEOGRAPH-2F805","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4FAE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF805"},194566:{"value":"2F806","name":"CJK COMPATIBILITY IDEOGRAPH-2F806","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4FBB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF806"},194567:{"value":"2F807","name":"CJK COMPATIBILITY IDEOGRAPH-2F807","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5002","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF807"},194568:{"value":"2F808","name":"CJK COMPATIBILITY IDEOGRAPH-2F808","category":"Lo","class":"0","bidirectional_category":"L","mapping":"507A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF808"},194569:{"value":"2F809","name":"CJK COMPATIBILITY IDEOGRAPH-2F809","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF809"},194570:{"value":"2F80A","name":"CJK COMPATIBILITY IDEOGRAPH-2F80A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"50E7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF80A"},194571:{"value":"2F80B","name":"CJK COMPATIBILITY IDEOGRAPH-2F80B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"50CF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF80B"},194572:{"value":"2F80C","name":"CJK COMPATIBILITY IDEOGRAPH-2F80C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"349E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF80C"},194573:{"value":"2F80D","name":"CJK COMPATIBILITY IDEOGRAPH-2F80D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2063A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF80D"},194574:{"value":"2F80E","name":"CJK COMPATIBILITY IDEOGRAPH-2F80E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"514D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF80E"},194575:{"value":"2F80F","name":"CJK COMPATIBILITY IDEOGRAPH-2F80F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5154","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF80F"},194576:{"value":"2F810","name":"CJK COMPATIBILITY IDEOGRAPH-2F810","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5164","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF810"},194577:{"value":"2F811","name":"CJK COMPATIBILITY IDEOGRAPH-2F811","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5177","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF811"},194578:{"value":"2F812","name":"CJK COMPATIBILITY IDEOGRAPH-2F812","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2051C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF812"},194579:{"value":"2F813","name":"CJK COMPATIBILITY IDEOGRAPH-2F813","category":"Lo","class":"0","bidirectional_category":"L","mapping":"34B9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF813"},194580:{"value":"2F814","name":"CJK COMPATIBILITY IDEOGRAPH-2F814","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5167","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF814"},194581:{"value":"2F815","name":"CJK COMPATIBILITY IDEOGRAPH-2F815","category":"Lo","class":"0","bidirectional_category":"L","mapping":"518D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF815"},194582:{"value":"2F816","name":"CJK COMPATIBILITY IDEOGRAPH-2F816","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2054B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF816"},194583:{"value":"2F817","name":"CJK COMPATIBILITY IDEOGRAPH-2F817","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5197","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF817"},194584:{"value":"2F818","name":"CJK COMPATIBILITY IDEOGRAPH-2F818","category":"Lo","class":"0","bidirectional_category":"L","mapping":"51A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF818"},194585:{"value":"2F819","name":"CJK COMPATIBILITY IDEOGRAPH-2F819","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4ECC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF819"},194586:{"value":"2F81A","name":"CJK COMPATIBILITY IDEOGRAPH-2F81A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"51AC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF81A"},194587:{"value":"2F81B","name":"CJK COMPATIBILITY IDEOGRAPH-2F81B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"51B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF81B"},194588:{"value":"2F81C","name":"CJK COMPATIBILITY IDEOGRAPH-2F81C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"291DF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF81C"},194589:{"value":"2F81D","name":"CJK COMPATIBILITY IDEOGRAPH-2F81D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"51F5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF81D"},194590:{"value":"2F81E","name":"CJK COMPATIBILITY IDEOGRAPH-2F81E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5203","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF81E"},194591:{"value":"2F81F","name":"CJK COMPATIBILITY IDEOGRAPH-2F81F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"34DF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF81F"},194592:{"value":"2F820","name":"CJK COMPATIBILITY IDEOGRAPH-2F820","category":"Lo","class":"0","bidirectional_category":"L","mapping":"523B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF820"},194593:{"value":"2F821","name":"CJK COMPATIBILITY IDEOGRAPH-2F821","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5246","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF821"},194594:{"value":"2F822","name":"CJK COMPATIBILITY IDEOGRAPH-2F822","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5272","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF822"},194595:{"value":"2F823","name":"CJK COMPATIBILITY IDEOGRAPH-2F823","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5277","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF823"},194596:{"value":"2F824","name":"CJK COMPATIBILITY IDEOGRAPH-2F824","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3515","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF824"},194597:{"value":"2F825","name":"CJK COMPATIBILITY IDEOGRAPH-2F825","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF825"},194598:{"value":"2F826","name":"CJK COMPATIBILITY IDEOGRAPH-2F826","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52C9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF826"},194599:{"value":"2F827","name":"CJK COMPATIBILITY IDEOGRAPH-2F827","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52E4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF827"},194600:{"value":"2F828","name":"CJK COMPATIBILITY IDEOGRAPH-2F828","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52FA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF828"},194601:{"value":"2F829","name":"CJK COMPATIBILITY IDEOGRAPH-2F829","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5305","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF829"},194602:{"value":"2F82A","name":"CJK COMPATIBILITY IDEOGRAPH-2F82A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5306","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF82A"},194603:{"value":"2F82B","name":"CJK COMPATIBILITY IDEOGRAPH-2F82B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5317","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF82B"},194604:{"value":"2F82C","name":"CJK COMPATIBILITY IDEOGRAPH-2F82C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5349","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF82C"},194605:{"value":"2F82D","name":"CJK COMPATIBILITY IDEOGRAPH-2F82D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5351","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF82D"},194606:{"value":"2F82E","name":"CJK COMPATIBILITY IDEOGRAPH-2F82E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"535A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF82E"},194607:{"value":"2F82F","name":"CJK COMPATIBILITY IDEOGRAPH-2F82F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5373","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF82F"},194608:{"value":"2F830","name":"CJK COMPATIBILITY IDEOGRAPH-2F830","category":"Lo","class":"0","bidirectional_category":"L","mapping":"537D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF830"},194609:{"value":"2F831","name":"CJK COMPATIBILITY IDEOGRAPH-2F831","category":"Lo","class":"0","bidirectional_category":"L","mapping":"537F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF831"},194610:{"value":"2F832","name":"CJK COMPATIBILITY IDEOGRAPH-2F832","category":"Lo","class":"0","bidirectional_category":"L","mapping":"537F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF832"},194611:{"value":"2F833","name":"CJK COMPATIBILITY IDEOGRAPH-2F833","category":"Lo","class":"0","bidirectional_category":"L","mapping":"537F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF833"},194612:{"value":"2F834","name":"CJK COMPATIBILITY IDEOGRAPH-2F834","category":"Lo","class":"0","bidirectional_category":"L","mapping":"20A2C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF834"},194613:{"value":"2F835","name":"CJK COMPATIBILITY IDEOGRAPH-2F835","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF835"},194614:{"value":"2F836","name":"CJK COMPATIBILITY IDEOGRAPH-2F836","category":"Lo","class":"0","bidirectional_category":"L","mapping":"53CA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF836"},194615:{"value":"2F837","name":"CJK COMPATIBILITY IDEOGRAPH-2F837","category":"Lo","class":"0","bidirectional_category":"L","mapping":"53DF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF837"},194616:{"value":"2F838","name":"CJK COMPATIBILITY IDEOGRAPH-2F838","category":"Lo","class":"0","bidirectional_category":"L","mapping":"20B63","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF838"},194617:{"value":"2F839","name":"CJK COMPATIBILITY IDEOGRAPH-2F839","category":"Lo","class":"0","bidirectional_category":"L","mapping":"53EB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF839"},194618:{"value":"2F83A","name":"CJK COMPATIBILITY IDEOGRAPH-2F83A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"53F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF83A"},194619:{"value":"2F83B","name":"CJK COMPATIBILITY IDEOGRAPH-2F83B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5406","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF83B"},194620:{"value":"2F83C","name":"CJK COMPATIBILITY IDEOGRAPH-2F83C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"549E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF83C"},194621:{"value":"2F83D","name":"CJK COMPATIBILITY IDEOGRAPH-2F83D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5438","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF83D"},194622:{"value":"2F83E","name":"CJK COMPATIBILITY IDEOGRAPH-2F83E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5448","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF83E"},194623:{"value":"2F83F","name":"CJK COMPATIBILITY IDEOGRAPH-2F83F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5468","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF83F"},194624:{"value":"2F840","name":"CJK COMPATIBILITY IDEOGRAPH-2F840","category":"Lo","class":"0","bidirectional_category":"L","mapping":"54A2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF840"},194625:{"value":"2F841","name":"CJK COMPATIBILITY IDEOGRAPH-2F841","category":"Lo","class":"0","bidirectional_category":"L","mapping":"54F6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF841"},194626:{"value":"2F842","name":"CJK COMPATIBILITY IDEOGRAPH-2F842","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5510","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF842"},194627:{"value":"2F843","name":"CJK COMPATIBILITY IDEOGRAPH-2F843","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5553","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF843"},194628:{"value":"2F844","name":"CJK COMPATIBILITY IDEOGRAPH-2F844","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5563","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF844"},194629:{"value":"2F845","name":"CJK COMPATIBILITY IDEOGRAPH-2F845","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5584","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF845"},194630:{"value":"2F846","name":"CJK COMPATIBILITY IDEOGRAPH-2F846","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5584","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF846"},194631:{"value":"2F847","name":"CJK COMPATIBILITY IDEOGRAPH-2F847","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5599","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF847"},194632:{"value":"2F848","name":"CJK COMPATIBILITY IDEOGRAPH-2F848","category":"Lo","class":"0","bidirectional_category":"L","mapping":"55AB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF848"},194633:{"value":"2F849","name":"CJK COMPATIBILITY IDEOGRAPH-2F849","category":"Lo","class":"0","bidirectional_category":"L","mapping":"55B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF849"},194634:{"value":"2F84A","name":"CJK COMPATIBILITY IDEOGRAPH-2F84A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"55C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF84A"},194635:{"value":"2F84B","name":"CJK COMPATIBILITY IDEOGRAPH-2F84B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5716","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF84B"},194636:{"value":"2F84C","name":"CJK COMPATIBILITY IDEOGRAPH-2F84C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5606","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF84C"},194637:{"value":"2F84D","name":"CJK COMPATIBILITY IDEOGRAPH-2F84D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5717","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF84D"},194638:{"value":"2F84E","name":"CJK COMPATIBILITY IDEOGRAPH-2F84E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5651","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF84E"},194639:{"value":"2F84F","name":"CJK COMPATIBILITY IDEOGRAPH-2F84F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5674","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF84F"},194640:{"value":"2F850","name":"CJK COMPATIBILITY IDEOGRAPH-2F850","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5207","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF850"},194641:{"value":"2F851","name":"CJK COMPATIBILITY IDEOGRAPH-2F851","category":"Lo","class":"0","bidirectional_category":"L","mapping":"58EE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF851"},194642:{"value":"2F852","name":"CJK COMPATIBILITY IDEOGRAPH-2F852","category":"Lo","class":"0","bidirectional_category":"L","mapping":"57CE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF852"},194643:{"value":"2F853","name":"CJK COMPATIBILITY IDEOGRAPH-2F853","category":"Lo","class":"0","bidirectional_category":"L","mapping":"57F4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF853"},194644:{"value":"2F854","name":"CJK COMPATIBILITY IDEOGRAPH-2F854","category":"Lo","class":"0","bidirectional_category":"L","mapping":"580D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF854"},194645:{"value":"2F855","name":"CJK COMPATIBILITY IDEOGRAPH-2F855","category":"Lo","class":"0","bidirectional_category":"L","mapping":"578B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF855"},194646:{"value":"2F856","name":"CJK COMPATIBILITY IDEOGRAPH-2F856","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5832","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF856"},194647:{"value":"2F857","name":"CJK COMPATIBILITY IDEOGRAPH-2F857","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5831","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF857"},194648:{"value":"2F858","name":"CJK COMPATIBILITY IDEOGRAPH-2F858","category":"Lo","class":"0","bidirectional_category":"L","mapping":"58AC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF858"},194649:{"value":"2F859","name":"CJK COMPATIBILITY IDEOGRAPH-2F859","category":"Lo","class":"0","bidirectional_category":"L","mapping":"214E4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF859"},194650:{"value":"2F85A","name":"CJK COMPATIBILITY IDEOGRAPH-2F85A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"58F2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF85A"},194651:{"value":"2F85B","name":"CJK COMPATIBILITY IDEOGRAPH-2F85B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"58F7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF85B"},194652:{"value":"2F85C","name":"CJK COMPATIBILITY IDEOGRAPH-2F85C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5906","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF85C"},194653:{"value":"2F85D","name":"CJK COMPATIBILITY IDEOGRAPH-2F85D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"591A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF85D"},194654:{"value":"2F85E","name":"CJK COMPATIBILITY IDEOGRAPH-2F85E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5922","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF85E"},194655:{"value":"2F85F","name":"CJK COMPATIBILITY IDEOGRAPH-2F85F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5962","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF85F"},194656:{"value":"2F860","name":"CJK COMPATIBILITY IDEOGRAPH-2F860","category":"Lo","class":"0","bidirectional_category":"L","mapping":"216A8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF860"},194657:{"value":"2F861","name":"CJK COMPATIBILITY IDEOGRAPH-2F861","category":"Lo","class":"0","bidirectional_category":"L","mapping":"216EA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF861"},194658:{"value":"2F862","name":"CJK COMPATIBILITY IDEOGRAPH-2F862","category":"Lo","class":"0","bidirectional_category":"L","mapping":"59EC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF862"},194659:{"value":"2F863","name":"CJK COMPATIBILITY IDEOGRAPH-2F863","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5A1B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF863"},194660:{"value":"2F864","name":"CJK COMPATIBILITY IDEOGRAPH-2F864","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5A27","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF864"},194661:{"value":"2F865","name":"CJK COMPATIBILITY IDEOGRAPH-2F865","category":"Lo","class":"0","bidirectional_category":"L","mapping":"59D8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF865"},194662:{"value":"2F866","name":"CJK COMPATIBILITY IDEOGRAPH-2F866","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5A66","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF866"},194663:{"value":"2F867","name":"CJK COMPATIBILITY IDEOGRAPH-2F867","category":"Lo","class":"0","bidirectional_category":"L","mapping":"36EE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF867"},194664:{"value":"2F868","name":"CJK COMPATIBILITY IDEOGRAPH-2F868","category":"Lo","class":"0","bidirectional_category":"L","mapping":"36FC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF868"},194665:{"value":"2F869","name":"CJK COMPATIBILITY IDEOGRAPH-2F869","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5B08","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF869"},194666:{"value":"2F86A","name":"CJK COMPATIBILITY IDEOGRAPH-2F86A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5B3E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF86A"},194667:{"value":"2F86B","name":"CJK COMPATIBILITY IDEOGRAPH-2F86B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5B3E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF86B"},194668:{"value":"2F86C","name":"CJK COMPATIBILITY IDEOGRAPH-2F86C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"219C8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF86C"},194669:{"value":"2F86D","name":"CJK COMPATIBILITY IDEOGRAPH-2F86D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5BC3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF86D"},194670:{"value":"2F86E","name":"CJK COMPATIBILITY IDEOGRAPH-2F86E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5BD8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF86E"},194671:{"value":"2F86F","name":"CJK COMPATIBILITY IDEOGRAPH-2F86F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5BE7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF86F"},194672:{"value":"2F870","name":"CJK COMPATIBILITY IDEOGRAPH-2F870","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5BF3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF870"},194673:{"value":"2F871","name":"CJK COMPATIBILITY IDEOGRAPH-2F871","category":"Lo","class":"0","bidirectional_category":"L","mapping":"21B18","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF871"},194674:{"value":"2F872","name":"CJK COMPATIBILITY IDEOGRAPH-2F872","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5BFF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF872"},194675:{"value":"2F873","name":"CJK COMPATIBILITY IDEOGRAPH-2F873","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5C06","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF873"},194676:{"value":"2F874","name":"CJK COMPATIBILITY IDEOGRAPH-2F874","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5F53","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF874"},194677:{"value":"2F875","name":"CJK COMPATIBILITY IDEOGRAPH-2F875","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5C22","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF875"},194678:{"value":"2F876","name":"CJK COMPATIBILITY IDEOGRAPH-2F876","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3781","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF876"},194679:{"value":"2F877","name":"CJK COMPATIBILITY IDEOGRAPH-2F877","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5C60","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF877"},194680:{"value":"2F878","name":"CJK COMPATIBILITY IDEOGRAPH-2F878","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5C6E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF878"},194681:{"value":"2F879","name":"CJK COMPATIBILITY IDEOGRAPH-2F879","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5CC0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF879"},194682:{"value":"2F87A","name":"CJK COMPATIBILITY IDEOGRAPH-2F87A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5C8D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF87A"},194683:{"value":"2F87B","name":"CJK COMPATIBILITY IDEOGRAPH-2F87B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"21DE4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF87B"},194684:{"value":"2F87C","name":"CJK COMPATIBILITY IDEOGRAPH-2F87C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5D43","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF87C"},194685:{"value":"2F87D","name":"CJK COMPATIBILITY IDEOGRAPH-2F87D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"21DE6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF87D"},194686:{"value":"2F87E","name":"CJK COMPATIBILITY IDEOGRAPH-2F87E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5D6E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF87E"},194687:{"value":"2F87F","name":"CJK COMPATIBILITY IDEOGRAPH-2F87F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5D6B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF87F"},194688:{"value":"2F880","name":"CJK COMPATIBILITY IDEOGRAPH-2F880","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5D7C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF880"},194689:{"value":"2F881","name":"CJK COMPATIBILITY IDEOGRAPH-2F881","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5DE1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF881"},194690:{"value":"2F882","name":"CJK COMPATIBILITY IDEOGRAPH-2F882","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5DE2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF882"},194691:{"value":"2F883","name":"CJK COMPATIBILITY IDEOGRAPH-2F883","category":"Lo","class":"0","bidirectional_category":"L","mapping":"382F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF883"},194692:{"value":"2F884","name":"CJK COMPATIBILITY IDEOGRAPH-2F884","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5DFD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF884"},194693:{"value":"2F885","name":"CJK COMPATIBILITY IDEOGRAPH-2F885","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5E28","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF885"},194694:{"value":"2F886","name":"CJK COMPATIBILITY IDEOGRAPH-2F886","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5E3D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF886"},194695:{"value":"2F887","name":"CJK COMPATIBILITY IDEOGRAPH-2F887","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5E69","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF887"},194696:{"value":"2F888","name":"CJK COMPATIBILITY IDEOGRAPH-2F888","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3862","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF888"},194697:{"value":"2F889","name":"CJK COMPATIBILITY IDEOGRAPH-2F889","category":"Lo","class":"0","bidirectional_category":"L","mapping":"22183","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF889"},194698:{"value":"2F88A","name":"CJK COMPATIBILITY IDEOGRAPH-2F88A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"387C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF88A"},194699:{"value":"2F88B","name":"CJK COMPATIBILITY IDEOGRAPH-2F88B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5EB0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF88B"},194700:{"value":"2F88C","name":"CJK COMPATIBILITY IDEOGRAPH-2F88C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5EB3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF88C"},194701:{"value":"2F88D","name":"CJK COMPATIBILITY IDEOGRAPH-2F88D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5EB6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF88D"},194702:{"value":"2F88E","name":"CJK COMPATIBILITY IDEOGRAPH-2F88E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5ECA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF88E"},194703:{"value":"2F88F","name":"CJK COMPATIBILITY IDEOGRAPH-2F88F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2A392","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF88F"},194704:{"value":"2F890","name":"CJK COMPATIBILITY IDEOGRAPH-2F890","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5EFE","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF890"},194705:{"value":"2F891","name":"CJK COMPATIBILITY IDEOGRAPH-2F891","category":"Lo","class":"0","bidirectional_category":"L","mapping":"22331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF891"},194706:{"value":"2F892","name":"CJK COMPATIBILITY IDEOGRAPH-2F892","category":"Lo","class":"0","bidirectional_category":"L","mapping":"22331","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF892"},194707:{"value":"2F893","name":"CJK COMPATIBILITY IDEOGRAPH-2F893","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8201","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF893"},194708:{"value":"2F894","name":"CJK COMPATIBILITY IDEOGRAPH-2F894","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5F22","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF894"},194709:{"value":"2F895","name":"CJK COMPATIBILITY IDEOGRAPH-2F895","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5F22","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF895"},194710:{"value":"2F896","name":"CJK COMPATIBILITY IDEOGRAPH-2F896","category":"Lo","class":"0","bidirectional_category":"L","mapping":"38C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF896"},194711:{"value":"2F897","name":"CJK COMPATIBILITY IDEOGRAPH-2F897","category":"Lo","class":"0","bidirectional_category":"L","mapping":"232B8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF897"},194712:{"value":"2F898","name":"CJK COMPATIBILITY IDEOGRAPH-2F898","category":"Lo","class":"0","bidirectional_category":"L","mapping":"261DA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF898"},194713:{"value":"2F899","name":"CJK COMPATIBILITY IDEOGRAPH-2F899","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5F62","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF899"},194714:{"value":"2F89A","name":"CJK COMPATIBILITY IDEOGRAPH-2F89A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5F6B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF89A"},194715:{"value":"2F89B","name":"CJK COMPATIBILITY IDEOGRAPH-2F89B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"38E3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF89B"},194716:{"value":"2F89C","name":"CJK COMPATIBILITY IDEOGRAPH-2F89C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5F9A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF89C"},194717:{"value":"2F89D","name":"CJK COMPATIBILITY IDEOGRAPH-2F89D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5FCD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF89D"},194718:{"value":"2F89E","name":"CJK COMPATIBILITY IDEOGRAPH-2F89E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5FD7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF89E"},194719:{"value":"2F89F","name":"CJK COMPATIBILITY IDEOGRAPH-2F89F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5FF9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF89F"},194720:{"value":"2F8A0","name":"CJK COMPATIBILITY IDEOGRAPH-2F8A0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6081","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8A0"},194721:{"value":"2F8A1","name":"CJK COMPATIBILITY IDEOGRAPH-2F8A1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"393A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8A1"},194722:{"value":"2F8A2","name":"CJK COMPATIBILITY IDEOGRAPH-2F8A2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"391C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8A2"},194723:{"value":"2F8A3","name":"CJK COMPATIBILITY IDEOGRAPH-2F8A3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6094","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8A3"},194724:{"value":"2F8A4","name":"CJK COMPATIBILITY IDEOGRAPH-2F8A4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"226D4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8A4"},194725:{"value":"2F8A5","name":"CJK COMPATIBILITY IDEOGRAPH-2F8A5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"60C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8A5"},194726:{"value":"2F8A6","name":"CJK COMPATIBILITY IDEOGRAPH-2F8A6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6148","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8A6"},194727:{"value":"2F8A7","name":"CJK COMPATIBILITY IDEOGRAPH-2F8A7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"614C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8A7"},194728:{"value":"2F8A8","name":"CJK COMPATIBILITY IDEOGRAPH-2F8A8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"614E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8A8"},194729:{"value":"2F8A9","name":"CJK COMPATIBILITY IDEOGRAPH-2F8A9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"614C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8A9"},194730:{"value":"2F8AA","name":"CJK COMPATIBILITY IDEOGRAPH-2F8AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"617A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8AA"},194731:{"value":"2F8AB","name":"CJK COMPATIBILITY IDEOGRAPH-2F8AB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"618E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8AB"},194732:{"value":"2F8AC","name":"CJK COMPATIBILITY IDEOGRAPH-2F8AC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"61B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8AC"},194733:{"value":"2F8AD","name":"CJK COMPATIBILITY IDEOGRAPH-2F8AD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"61A4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8AD"},194734:{"value":"2F8AE","name":"CJK COMPATIBILITY IDEOGRAPH-2F8AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"61AF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8AE"},194735:{"value":"2F8AF","name":"CJK COMPATIBILITY IDEOGRAPH-2F8AF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"61DE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8AF"},194736:{"value":"2F8B0","name":"CJK COMPATIBILITY IDEOGRAPH-2F8B0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"61F2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8B0"},194737:{"value":"2F8B1","name":"CJK COMPATIBILITY IDEOGRAPH-2F8B1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"61F6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8B1"},194738:{"value":"2F8B2","name":"CJK COMPATIBILITY IDEOGRAPH-2F8B2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6210","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8B2"},194739:{"value":"2F8B3","name":"CJK COMPATIBILITY IDEOGRAPH-2F8B3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"621B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8B3"},194740:{"value":"2F8B4","name":"CJK COMPATIBILITY IDEOGRAPH-2F8B4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"625D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8B4"},194741:{"value":"2F8B5","name":"CJK COMPATIBILITY IDEOGRAPH-2F8B5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"62B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8B5"},194742:{"value":"2F8B6","name":"CJK COMPATIBILITY IDEOGRAPH-2F8B6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"62D4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8B6"},194743:{"value":"2F8B7","name":"CJK COMPATIBILITY IDEOGRAPH-2F8B7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6350","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8B7"},194744:{"value":"2F8B8","name":"CJK COMPATIBILITY IDEOGRAPH-2F8B8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"22B0C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8B8"},194745:{"value":"2F8B9","name":"CJK COMPATIBILITY IDEOGRAPH-2F8B9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"633D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8B9"},194746:{"value":"2F8BA","name":"CJK COMPATIBILITY IDEOGRAPH-2F8BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"62FC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8BA"},194747:{"value":"2F8BB","name":"CJK COMPATIBILITY IDEOGRAPH-2F8BB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6368","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8BB"},194748:{"value":"2F8BC","name":"CJK COMPATIBILITY IDEOGRAPH-2F8BC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6383","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8BC"},194749:{"value":"2F8BD","name":"CJK COMPATIBILITY IDEOGRAPH-2F8BD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"63E4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8BD"},194750:{"value":"2F8BE","name":"CJK COMPATIBILITY IDEOGRAPH-2F8BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"22BF1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8BE"},194751:{"value":"2F8BF","name":"CJK COMPATIBILITY IDEOGRAPH-2F8BF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6422","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8BF"},194752:{"value":"2F8C0","name":"CJK COMPATIBILITY IDEOGRAPH-2F8C0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"63C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8C0"},194753:{"value":"2F8C1","name":"CJK COMPATIBILITY IDEOGRAPH-2F8C1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"63A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8C1"},194754:{"value":"2F8C2","name":"CJK COMPATIBILITY IDEOGRAPH-2F8C2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3A2E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8C2"},194755:{"value":"2F8C3","name":"CJK COMPATIBILITY IDEOGRAPH-2F8C3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6469","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8C3"},194756:{"value":"2F8C4","name":"CJK COMPATIBILITY IDEOGRAPH-2F8C4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"647E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8C4"},194757:{"value":"2F8C5","name":"CJK COMPATIBILITY IDEOGRAPH-2F8C5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"649D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8C5"},194758:{"value":"2F8C6","name":"CJK COMPATIBILITY IDEOGRAPH-2F8C6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6477","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8C6"},194759:{"value":"2F8C7","name":"CJK COMPATIBILITY IDEOGRAPH-2F8C7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3A6C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8C7"},194760:{"value":"2F8C8","name":"CJK COMPATIBILITY IDEOGRAPH-2F8C8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"654F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8C8"},194761:{"value":"2F8C9","name":"CJK COMPATIBILITY IDEOGRAPH-2F8C9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"656C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8C9"},194762:{"value":"2F8CA","name":"CJK COMPATIBILITY IDEOGRAPH-2F8CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2300A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8CA"},194763:{"value":"2F8CB","name":"CJK COMPATIBILITY IDEOGRAPH-2F8CB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"65E3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8CB"},194764:{"value":"2F8CC","name":"CJK COMPATIBILITY IDEOGRAPH-2F8CC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"66F8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8CC"},194765:{"value":"2F8CD","name":"CJK COMPATIBILITY IDEOGRAPH-2F8CD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6649","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8CD"},194766:{"value":"2F8CE","name":"CJK COMPATIBILITY IDEOGRAPH-2F8CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3B19","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8CE"},194767:{"value":"2F8CF","name":"CJK COMPATIBILITY IDEOGRAPH-2F8CF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6691","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8CF"},194768:{"value":"2F8D0","name":"CJK COMPATIBILITY IDEOGRAPH-2F8D0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3B08","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8D0"},194769:{"value":"2F8D1","name":"CJK COMPATIBILITY IDEOGRAPH-2F8D1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3AE4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8D1"},194770:{"value":"2F8D2","name":"CJK COMPATIBILITY IDEOGRAPH-2F8D2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5192","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8D2"},194771:{"value":"2F8D3","name":"CJK COMPATIBILITY IDEOGRAPH-2F8D3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5195","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8D3"},194772:{"value":"2F8D4","name":"CJK COMPATIBILITY IDEOGRAPH-2F8D4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6700","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8D4"},194773:{"value":"2F8D5","name":"CJK COMPATIBILITY IDEOGRAPH-2F8D5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"669C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8D5"},194774:{"value":"2F8D6","name":"CJK COMPATIBILITY IDEOGRAPH-2F8D6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"80AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8D6"},194775:{"value":"2F8D7","name":"CJK COMPATIBILITY IDEOGRAPH-2F8D7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"43D9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8D7"},194776:{"value":"2F8D8","name":"CJK COMPATIBILITY IDEOGRAPH-2F8D8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6717","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8D8"},194777:{"value":"2F8D9","name":"CJK COMPATIBILITY IDEOGRAPH-2F8D9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"671B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8D9"},194778:{"value":"2F8DA","name":"CJK COMPATIBILITY IDEOGRAPH-2F8DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6721","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8DA"},194779:{"value":"2F8DB","name":"CJK COMPATIBILITY IDEOGRAPH-2F8DB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"675E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8DB"},194780:{"value":"2F8DC","name":"CJK COMPATIBILITY IDEOGRAPH-2F8DC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6753","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8DC"},194781:{"value":"2F8DD","name":"CJK COMPATIBILITY IDEOGRAPH-2F8DD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"233C3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8DD"},194782:{"value":"2F8DE","name":"CJK COMPATIBILITY IDEOGRAPH-2F8DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3B49","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8DE"},194783:{"value":"2F8DF","name":"CJK COMPATIBILITY IDEOGRAPH-2F8DF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"67FA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8DF"},194784:{"value":"2F8E0","name":"CJK COMPATIBILITY IDEOGRAPH-2F8E0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6785","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8E0"},194785:{"value":"2F8E1","name":"CJK COMPATIBILITY IDEOGRAPH-2F8E1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6852","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8E1"},194786:{"value":"2F8E2","name":"CJK COMPATIBILITY IDEOGRAPH-2F8E2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6885","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8E2"},194787:{"value":"2F8E3","name":"CJK COMPATIBILITY IDEOGRAPH-2F8E3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2346D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8E3"},194788:{"value":"2F8E4","name":"CJK COMPATIBILITY IDEOGRAPH-2F8E4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"688E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8E4"},194789:{"value":"2F8E5","name":"CJK COMPATIBILITY IDEOGRAPH-2F8E5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"681F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8E5"},194790:{"value":"2F8E6","name":"CJK COMPATIBILITY IDEOGRAPH-2F8E6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6914","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8E6"},194791:{"value":"2F8E7","name":"CJK COMPATIBILITY IDEOGRAPH-2F8E7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3B9D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8E7"},194792:{"value":"2F8E8","name":"CJK COMPATIBILITY IDEOGRAPH-2F8E8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6942","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8E8"},194793:{"value":"2F8E9","name":"CJK COMPATIBILITY IDEOGRAPH-2F8E9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"69A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8E9"},194794:{"value":"2F8EA","name":"CJK COMPATIBILITY IDEOGRAPH-2F8EA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"69EA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8EA"},194795:{"value":"2F8EB","name":"CJK COMPATIBILITY IDEOGRAPH-2F8EB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6AA8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8EB"},194796:{"value":"2F8EC","name":"CJK COMPATIBILITY IDEOGRAPH-2F8EC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"236A3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8EC"},194797:{"value":"2F8ED","name":"CJK COMPATIBILITY IDEOGRAPH-2F8ED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6ADB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8ED"},194798:{"value":"2F8EE","name":"CJK COMPATIBILITY IDEOGRAPH-2F8EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3C18","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8EE"},194799:{"value":"2F8EF","name":"CJK COMPATIBILITY IDEOGRAPH-2F8EF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6B21","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8EF"},194800:{"value":"2F8F0","name":"CJK COMPATIBILITY IDEOGRAPH-2F8F0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"238A7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8F0"},194801:{"value":"2F8F1","name":"CJK COMPATIBILITY IDEOGRAPH-2F8F1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6B54","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8F1"},194802:{"value":"2F8F2","name":"CJK COMPATIBILITY IDEOGRAPH-2F8F2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3C4E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8F2"},194803:{"value":"2F8F3","name":"CJK COMPATIBILITY IDEOGRAPH-2F8F3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6B72","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8F3"},194804:{"value":"2F8F4","name":"CJK COMPATIBILITY IDEOGRAPH-2F8F4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6B9F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8F4"},194805:{"value":"2F8F5","name":"CJK COMPATIBILITY IDEOGRAPH-2F8F5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6BBA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8F5"},194806:{"value":"2F8F6","name":"CJK COMPATIBILITY IDEOGRAPH-2F8F6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6BBB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8F6"},194807:{"value":"2F8F7","name":"CJK COMPATIBILITY IDEOGRAPH-2F8F7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"23A8D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8F7"},194808:{"value":"2F8F8","name":"CJK COMPATIBILITY IDEOGRAPH-2F8F8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"21D0B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8F8"},194809:{"value":"2F8F9","name":"CJK COMPATIBILITY IDEOGRAPH-2F8F9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"23AFA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8F9"},194810:{"value":"2F8FA","name":"CJK COMPATIBILITY IDEOGRAPH-2F8FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6C4E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8FA"},194811:{"value":"2F8FB","name":"CJK COMPATIBILITY IDEOGRAPH-2F8FB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"23CBC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8FB"},194812:{"value":"2F8FC","name":"CJK COMPATIBILITY IDEOGRAPH-2F8FC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6CBF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8FC"},194813:{"value":"2F8FD","name":"CJK COMPATIBILITY IDEOGRAPH-2F8FD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6CCD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8FD"},194814:{"value":"2F8FE","name":"CJK COMPATIBILITY IDEOGRAPH-2F8FE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6C67","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8FE"},194815:{"value":"2F8FF","name":"CJK COMPATIBILITY IDEOGRAPH-2F8FF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D16","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF8FF"},194816:{"value":"2F900","name":"CJK COMPATIBILITY IDEOGRAPH-2F900","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D3E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF900"},194817:{"value":"2F901","name":"CJK COMPATIBILITY IDEOGRAPH-2F901","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D77","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF901"},194818:{"value":"2F902","name":"CJK COMPATIBILITY IDEOGRAPH-2F902","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D41","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF902"},194819:{"value":"2F903","name":"CJK COMPATIBILITY IDEOGRAPH-2F903","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D69","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF903"},194820:{"value":"2F904","name":"CJK COMPATIBILITY IDEOGRAPH-2F904","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D78","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF904"},194821:{"value":"2F905","name":"CJK COMPATIBILITY IDEOGRAPH-2F905","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D85","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF905"},194822:{"value":"2F906","name":"CJK COMPATIBILITY IDEOGRAPH-2F906","category":"Lo","class":"0","bidirectional_category":"L","mapping":"23D1E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF906"},194823:{"value":"2F907","name":"CJK COMPATIBILITY IDEOGRAPH-2F907","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6D34","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF907"},194824:{"value":"2F908","name":"CJK COMPATIBILITY IDEOGRAPH-2F908","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6E2F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF908"},194825:{"value":"2F909","name":"CJK COMPATIBILITY IDEOGRAPH-2F909","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6E6E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF909"},194826:{"value":"2F90A","name":"CJK COMPATIBILITY IDEOGRAPH-2F90A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3D33","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90A"},194827:{"value":"2F90B","name":"CJK COMPATIBILITY IDEOGRAPH-2F90B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6ECB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90B"},194828:{"value":"2F90C","name":"CJK COMPATIBILITY IDEOGRAPH-2F90C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6EC7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90C"},194829:{"value":"2F90D","name":"CJK COMPATIBILITY IDEOGRAPH-2F90D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"23ED1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90D"},194830:{"value":"2F90E","name":"CJK COMPATIBILITY IDEOGRAPH-2F90E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6DF9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90E"},194831:{"value":"2F90F","name":"CJK COMPATIBILITY IDEOGRAPH-2F90F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6F6E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF90F"},194832:{"value":"2F910","name":"CJK COMPATIBILITY IDEOGRAPH-2F910","category":"Lo","class":"0","bidirectional_category":"L","mapping":"23F5E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF910"},194833:{"value":"2F911","name":"CJK COMPATIBILITY IDEOGRAPH-2F911","category":"Lo","class":"0","bidirectional_category":"L","mapping":"23F8E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF911"},194834:{"value":"2F912","name":"CJK COMPATIBILITY IDEOGRAPH-2F912","category":"Lo","class":"0","bidirectional_category":"L","mapping":"6FC6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF912"},194835:{"value":"2F913","name":"CJK COMPATIBILITY IDEOGRAPH-2F913","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7039","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF913"},194836:{"value":"2F914","name":"CJK COMPATIBILITY IDEOGRAPH-2F914","category":"Lo","class":"0","bidirectional_category":"L","mapping":"701E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF914"},194837:{"value":"2F915","name":"CJK COMPATIBILITY IDEOGRAPH-2F915","category":"Lo","class":"0","bidirectional_category":"L","mapping":"701B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF915"},194838:{"value":"2F916","name":"CJK COMPATIBILITY IDEOGRAPH-2F916","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3D96","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF916"},194839:{"value":"2F917","name":"CJK COMPATIBILITY IDEOGRAPH-2F917","category":"Lo","class":"0","bidirectional_category":"L","mapping":"704A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF917"},194840:{"value":"2F918","name":"CJK COMPATIBILITY IDEOGRAPH-2F918","category":"Lo","class":"0","bidirectional_category":"L","mapping":"707D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF918"},194841:{"value":"2F919","name":"CJK COMPATIBILITY IDEOGRAPH-2F919","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF919"},194842:{"value":"2F91A","name":"CJK COMPATIBILITY IDEOGRAPH-2F91A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"70AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91A"},194843:{"value":"2F91B","name":"CJK COMPATIBILITY IDEOGRAPH-2F91B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"20525","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91B"},194844:{"value":"2F91C","name":"CJK COMPATIBILITY IDEOGRAPH-2F91C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7145","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91C"},194845:{"value":"2F91D","name":"CJK COMPATIBILITY IDEOGRAPH-2F91D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"24263","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91D"},194846:{"value":"2F91E","name":"CJK COMPATIBILITY IDEOGRAPH-2F91E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"719C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91E"},194847:{"value":"2F91F","name":"CJK COMPATIBILITY IDEOGRAPH-2F91F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"243AB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF91F"},194848:{"value":"2F920","name":"CJK COMPATIBILITY IDEOGRAPH-2F920","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7228","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF920"},194849:{"value":"2F921","name":"CJK COMPATIBILITY IDEOGRAPH-2F921","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7235","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF921"},194850:{"value":"2F922","name":"CJK COMPATIBILITY IDEOGRAPH-2F922","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7250","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF922"},194851:{"value":"2F923","name":"CJK COMPATIBILITY IDEOGRAPH-2F923","category":"Lo","class":"0","bidirectional_category":"L","mapping":"24608","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF923"},194852:{"value":"2F924","name":"CJK COMPATIBILITY IDEOGRAPH-2F924","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7280","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF924"},194853:{"value":"2F925","name":"CJK COMPATIBILITY IDEOGRAPH-2F925","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7295","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF925"},194854:{"value":"2F926","name":"CJK COMPATIBILITY IDEOGRAPH-2F926","category":"Lo","class":"0","bidirectional_category":"L","mapping":"24735","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF926"},194855:{"value":"2F927","name":"CJK COMPATIBILITY IDEOGRAPH-2F927","category":"Lo","class":"0","bidirectional_category":"L","mapping":"24814","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF927"},194856:{"value":"2F928","name":"CJK COMPATIBILITY IDEOGRAPH-2F928","category":"Lo","class":"0","bidirectional_category":"L","mapping":"737A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF928"},194857:{"value":"2F929","name":"CJK COMPATIBILITY IDEOGRAPH-2F929","category":"Lo","class":"0","bidirectional_category":"L","mapping":"738B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF929"},194858:{"value":"2F92A","name":"CJK COMPATIBILITY IDEOGRAPH-2F92A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3EAC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92A"},194859:{"value":"2F92B","name":"CJK COMPATIBILITY IDEOGRAPH-2F92B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"73A5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92B"},194860:{"value":"2F92C","name":"CJK COMPATIBILITY IDEOGRAPH-2F92C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3EB8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92C"},194861:{"value":"2F92D","name":"CJK COMPATIBILITY IDEOGRAPH-2F92D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3EB8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92D"},194862:{"value":"2F92E","name":"CJK COMPATIBILITY IDEOGRAPH-2F92E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7447","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92E"},194863:{"value":"2F92F","name":"CJK COMPATIBILITY IDEOGRAPH-2F92F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"745C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF92F"},194864:{"value":"2F930","name":"CJK COMPATIBILITY IDEOGRAPH-2F930","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7471","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF930"},194865:{"value":"2F931","name":"CJK COMPATIBILITY IDEOGRAPH-2F931","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7485","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF931"},194866:{"value":"2F932","name":"CJK COMPATIBILITY IDEOGRAPH-2F932","category":"Lo","class":"0","bidirectional_category":"L","mapping":"74CA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF932"},194867:{"value":"2F933","name":"CJK COMPATIBILITY IDEOGRAPH-2F933","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3F1B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF933"},194868:{"value":"2F934","name":"CJK COMPATIBILITY IDEOGRAPH-2F934","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7524","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF934"},194869:{"value":"2F935","name":"CJK COMPATIBILITY IDEOGRAPH-2F935","category":"Lo","class":"0","bidirectional_category":"L","mapping":"24C36","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF935"},194870:{"value":"2F936","name":"CJK COMPATIBILITY IDEOGRAPH-2F936","category":"Lo","class":"0","bidirectional_category":"L","mapping":"753E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF936"},194871:{"value":"2F937","name":"CJK COMPATIBILITY IDEOGRAPH-2F937","category":"Lo","class":"0","bidirectional_category":"L","mapping":"24C92","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF937"},194872:{"value":"2F938","name":"CJK COMPATIBILITY IDEOGRAPH-2F938","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7570","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF938"},194873:{"value":"2F939","name":"CJK COMPATIBILITY IDEOGRAPH-2F939","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2219F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF939"},194874:{"value":"2F93A","name":"CJK COMPATIBILITY IDEOGRAPH-2F93A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7610","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93A"},194875:{"value":"2F93B","name":"CJK COMPATIBILITY IDEOGRAPH-2F93B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"24FA1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93B"},194876:{"value":"2F93C","name":"CJK COMPATIBILITY IDEOGRAPH-2F93C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"24FB8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93C"},194877:{"value":"2F93D","name":"CJK COMPATIBILITY IDEOGRAPH-2F93D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93D"},194878:{"value":"2F93E","name":"CJK COMPATIBILITY IDEOGRAPH-2F93E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"3FFC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93E"},194879:{"value":"2F93F","name":"CJK COMPATIBILITY IDEOGRAPH-2F93F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4008","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF93F"},194880:{"value":"2F940","name":"CJK COMPATIBILITY IDEOGRAPH-2F940","category":"Lo","class":"0","bidirectional_category":"L","mapping":"76F4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF940"},194881:{"value":"2F941","name":"CJK COMPATIBILITY IDEOGRAPH-2F941","category":"Lo","class":"0","bidirectional_category":"L","mapping":"250F3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF941"},194882:{"value":"2F942","name":"CJK COMPATIBILITY IDEOGRAPH-2F942","category":"Lo","class":"0","bidirectional_category":"L","mapping":"250F2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF942"},194883:{"value":"2F943","name":"CJK COMPATIBILITY IDEOGRAPH-2F943","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25119","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF943"},194884:{"value":"2F944","name":"CJK COMPATIBILITY IDEOGRAPH-2F944","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25133","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF944"},194885:{"value":"2F945","name":"CJK COMPATIBILITY IDEOGRAPH-2F945","category":"Lo","class":"0","bidirectional_category":"L","mapping":"771E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF945"},194886:{"value":"2F946","name":"CJK COMPATIBILITY IDEOGRAPH-2F946","category":"Lo","class":"0","bidirectional_category":"L","mapping":"771F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF946"},194887:{"value":"2F947","name":"CJK COMPATIBILITY IDEOGRAPH-2F947","category":"Lo","class":"0","bidirectional_category":"L","mapping":"771F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF947"},194888:{"value":"2F948","name":"CJK COMPATIBILITY IDEOGRAPH-2F948","category":"Lo","class":"0","bidirectional_category":"L","mapping":"774A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF948"},194889:{"value":"2F949","name":"CJK COMPATIBILITY IDEOGRAPH-2F949","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4039","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF949"},194890:{"value":"2F94A","name":"CJK COMPATIBILITY IDEOGRAPH-2F94A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"778B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94A"},194891:{"value":"2F94B","name":"CJK COMPATIBILITY IDEOGRAPH-2F94B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4046","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94B"},194892:{"value":"2F94C","name":"CJK COMPATIBILITY IDEOGRAPH-2F94C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4096","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94C"},194893:{"value":"2F94D","name":"CJK COMPATIBILITY IDEOGRAPH-2F94D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2541D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94D"},194894:{"value":"2F94E","name":"CJK COMPATIBILITY IDEOGRAPH-2F94E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"784E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94E"},194895:{"value":"2F94F","name":"CJK COMPATIBILITY IDEOGRAPH-2F94F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"788C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF94F"},194896:{"value":"2F950","name":"CJK COMPATIBILITY IDEOGRAPH-2F950","category":"Lo","class":"0","bidirectional_category":"L","mapping":"78CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF950"},194897:{"value":"2F951","name":"CJK COMPATIBILITY IDEOGRAPH-2F951","category":"Lo","class":"0","bidirectional_category":"L","mapping":"40E3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF951"},194898:{"value":"2F952","name":"CJK COMPATIBILITY IDEOGRAPH-2F952","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25626","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF952"},194899:{"value":"2F953","name":"CJK COMPATIBILITY IDEOGRAPH-2F953","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7956","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF953"},194900:{"value":"2F954","name":"CJK COMPATIBILITY IDEOGRAPH-2F954","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2569A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF954"},194901:{"value":"2F955","name":"CJK COMPATIBILITY IDEOGRAPH-2F955","category":"Lo","class":"0","bidirectional_category":"L","mapping":"256C5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF955"},194902:{"value":"2F956","name":"CJK COMPATIBILITY IDEOGRAPH-2F956","category":"Lo","class":"0","bidirectional_category":"L","mapping":"798F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF956"},194903:{"value":"2F957","name":"CJK COMPATIBILITY IDEOGRAPH-2F957","category":"Lo","class":"0","bidirectional_category":"L","mapping":"79EB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF957"},194904:{"value":"2F958","name":"CJK COMPATIBILITY IDEOGRAPH-2F958","category":"Lo","class":"0","bidirectional_category":"L","mapping":"412F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF958"},194905:{"value":"2F959","name":"CJK COMPATIBILITY IDEOGRAPH-2F959","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7A40","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF959"},194906:{"value":"2F95A","name":"CJK COMPATIBILITY IDEOGRAPH-2F95A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7A4A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95A"},194907:{"value":"2F95B","name":"CJK COMPATIBILITY IDEOGRAPH-2F95B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7A4F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95B"},194908:{"value":"2F95C","name":"CJK COMPATIBILITY IDEOGRAPH-2F95C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2597C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95C"},194909:{"value":"2F95D","name":"CJK COMPATIBILITY IDEOGRAPH-2F95D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25AA7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95D"},194910:{"value":"2F95E","name":"CJK COMPATIBILITY IDEOGRAPH-2F95E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25AA7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95E"},194911:{"value":"2F95F","name":"CJK COMPATIBILITY IDEOGRAPH-2F95F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7AEE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF95F"},194912:{"value":"2F960","name":"CJK COMPATIBILITY IDEOGRAPH-2F960","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4202","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF960"},194913:{"value":"2F961","name":"CJK COMPATIBILITY IDEOGRAPH-2F961","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25BAB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF961"},194914:{"value":"2F962","name":"CJK COMPATIBILITY IDEOGRAPH-2F962","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7BC6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF962"},194915:{"value":"2F963","name":"CJK COMPATIBILITY IDEOGRAPH-2F963","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7BC9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF963"},194916:{"value":"2F964","name":"CJK COMPATIBILITY IDEOGRAPH-2F964","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4227","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF964"},194917:{"value":"2F965","name":"CJK COMPATIBILITY IDEOGRAPH-2F965","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25C80","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF965"},194918:{"value":"2F966","name":"CJK COMPATIBILITY IDEOGRAPH-2F966","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7CD2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF966"},194919:{"value":"2F967","name":"CJK COMPATIBILITY IDEOGRAPH-2F967","category":"Lo","class":"0","bidirectional_category":"L","mapping":"42A0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF967"},194920:{"value":"2F968","name":"CJK COMPATIBILITY IDEOGRAPH-2F968","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7CE8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF968"},194921:{"value":"2F969","name":"CJK COMPATIBILITY IDEOGRAPH-2F969","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7CE3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF969"},194922:{"value":"2F96A","name":"CJK COMPATIBILITY IDEOGRAPH-2F96A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7D00","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96A"},194923:{"value":"2F96B","name":"CJK COMPATIBILITY IDEOGRAPH-2F96B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"25F86","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96B"},194924:{"value":"2F96C","name":"CJK COMPATIBILITY IDEOGRAPH-2F96C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7D63","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96C"},194925:{"value":"2F96D","name":"CJK COMPATIBILITY IDEOGRAPH-2F96D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96D"},194926:{"value":"2F96E","name":"CJK COMPATIBILITY IDEOGRAPH-2F96E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7DC7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96E"},194927:{"value":"2F96F","name":"CJK COMPATIBILITY IDEOGRAPH-2F96F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7E02","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF96F"},194928:{"value":"2F970","name":"CJK COMPATIBILITY IDEOGRAPH-2F970","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7E45","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF970"},194929:{"value":"2F971","name":"CJK COMPATIBILITY IDEOGRAPH-2F971","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4334","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF971"},194930:{"value":"2F972","name":"CJK COMPATIBILITY IDEOGRAPH-2F972","category":"Lo","class":"0","bidirectional_category":"L","mapping":"26228","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF972"},194931:{"value":"2F973","name":"CJK COMPATIBILITY IDEOGRAPH-2F973","category":"Lo","class":"0","bidirectional_category":"L","mapping":"26247","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF973"},194932:{"value":"2F974","name":"CJK COMPATIBILITY IDEOGRAPH-2F974","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4359","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF974"},194933:{"value":"2F975","name":"CJK COMPATIBILITY IDEOGRAPH-2F975","category":"Lo","class":"0","bidirectional_category":"L","mapping":"262D9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF975"},194934:{"value":"2F976","name":"CJK COMPATIBILITY IDEOGRAPH-2F976","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7F7A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF976"},194935:{"value":"2F977","name":"CJK COMPATIBILITY IDEOGRAPH-2F977","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2633E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF977"},194936:{"value":"2F978","name":"CJK COMPATIBILITY IDEOGRAPH-2F978","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7F95","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF978"},194937:{"value":"2F979","name":"CJK COMPATIBILITY IDEOGRAPH-2F979","category":"Lo","class":"0","bidirectional_category":"L","mapping":"7FFA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF979"},194938:{"value":"2F97A","name":"CJK COMPATIBILITY IDEOGRAPH-2F97A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8005","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97A"},194939:{"value":"2F97B","name":"CJK COMPATIBILITY IDEOGRAPH-2F97B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"264DA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97B"},194940:{"value":"2F97C","name":"CJK COMPATIBILITY IDEOGRAPH-2F97C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"26523","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97C"},194941:{"value":"2F97D","name":"CJK COMPATIBILITY IDEOGRAPH-2F97D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8060","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97D"},194942:{"value":"2F97E","name":"CJK COMPATIBILITY IDEOGRAPH-2F97E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"265A8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97E"},194943:{"value":"2F97F","name":"CJK COMPATIBILITY IDEOGRAPH-2F97F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF97F"},194944:{"value":"2F980","name":"CJK COMPATIBILITY IDEOGRAPH-2F980","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2335F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF980"},194945:{"value":"2F981","name":"CJK COMPATIBILITY IDEOGRAPH-2F981","category":"Lo","class":"0","bidirectional_category":"L","mapping":"43D5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF981"},194946:{"value":"2F982","name":"CJK COMPATIBILITY IDEOGRAPH-2F982","category":"Lo","class":"0","bidirectional_category":"L","mapping":"80B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF982"},194947:{"value":"2F983","name":"CJK COMPATIBILITY IDEOGRAPH-2F983","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8103","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF983"},194948:{"value":"2F984","name":"CJK COMPATIBILITY IDEOGRAPH-2F984","category":"Lo","class":"0","bidirectional_category":"L","mapping":"440B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF984"},194949:{"value":"2F985","name":"CJK COMPATIBILITY IDEOGRAPH-2F985","category":"Lo","class":"0","bidirectional_category":"L","mapping":"813E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF985"},194950:{"value":"2F986","name":"CJK COMPATIBILITY IDEOGRAPH-2F986","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5AB5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF986"},194951:{"value":"2F987","name":"CJK COMPATIBILITY IDEOGRAPH-2F987","category":"Lo","class":"0","bidirectional_category":"L","mapping":"267A7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF987"},194952:{"value":"2F988","name":"CJK COMPATIBILITY IDEOGRAPH-2F988","category":"Lo","class":"0","bidirectional_category":"L","mapping":"267B5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF988"},194953:{"value":"2F989","name":"CJK COMPATIBILITY IDEOGRAPH-2F989","category":"Lo","class":"0","bidirectional_category":"L","mapping":"23393","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF989"},194954:{"value":"2F98A","name":"CJK COMPATIBILITY IDEOGRAPH-2F98A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2339C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98A"},194955:{"value":"2F98B","name":"CJK COMPATIBILITY IDEOGRAPH-2F98B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8201","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98B"},194956:{"value":"2F98C","name":"CJK COMPATIBILITY IDEOGRAPH-2F98C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8204","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98C"},194957:{"value":"2F98D","name":"CJK COMPATIBILITY IDEOGRAPH-2F98D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8F9E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98D"},194958:{"value":"2F98E","name":"CJK COMPATIBILITY IDEOGRAPH-2F98E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"446B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98E"},194959:{"value":"2F98F","name":"CJK COMPATIBILITY IDEOGRAPH-2F98F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8291","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF98F"},194960:{"value":"2F990","name":"CJK COMPATIBILITY IDEOGRAPH-2F990","category":"Lo","class":"0","bidirectional_category":"L","mapping":"828B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF990"},194961:{"value":"2F991","name":"CJK COMPATIBILITY IDEOGRAPH-2F991","category":"Lo","class":"0","bidirectional_category":"L","mapping":"829D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF991"},194962:{"value":"2F992","name":"CJK COMPATIBILITY IDEOGRAPH-2F992","category":"Lo","class":"0","bidirectional_category":"L","mapping":"52B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF992"},194963:{"value":"2F993","name":"CJK COMPATIBILITY IDEOGRAPH-2F993","category":"Lo","class":"0","bidirectional_category":"L","mapping":"82B1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF993"},194964:{"value":"2F994","name":"CJK COMPATIBILITY IDEOGRAPH-2F994","category":"Lo","class":"0","bidirectional_category":"L","mapping":"82B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF994"},194965:{"value":"2F995","name":"CJK COMPATIBILITY IDEOGRAPH-2F995","category":"Lo","class":"0","bidirectional_category":"L","mapping":"82BD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF995"},194966:{"value":"2F996","name":"CJK COMPATIBILITY IDEOGRAPH-2F996","category":"Lo","class":"0","bidirectional_category":"L","mapping":"82E6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF996"},194967:{"value":"2F997","name":"CJK COMPATIBILITY IDEOGRAPH-2F997","category":"Lo","class":"0","bidirectional_category":"L","mapping":"26B3C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF997"},194968:{"value":"2F998","name":"CJK COMPATIBILITY IDEOGRAPH-2F998","category":"Lo","class":"0","bidirectional_category":"L","mapping":"82E5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF998"},194969:{"value":"2F999","name":"CJK COMPATIBILITY IDEOGRAPH-2F999","category":"Lo","class":"0","bidirectional_category":"L","mapping":"831D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF999"},194970:{"value":"2F99A","name":"CJK COMPATIBILITY IDEOGRAPH-2F99A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8363","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99A"},194971:{"value":"2F99B","name":"CJK COMPATIBILITY IDEOGRAPH-2F99B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"83AD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99B"},194972:{"value":"2F99C","name":"CJK COMPATIBILITY IDEOGRAPH-2F99C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8323","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99C"},194973:{"value":"2F99D","name":"CJK COMPATIBILITY IDEOGRAPH-2F99D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"83BD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99D"},194974:{"value":"2F99E","name":"CJK COMPATIBILITY IDEOGRAPH-2F99E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"83E7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99E"},194975:{"value":"2F99F","name":"CJK COMPATIBILITY IDEOGRAPH-2F99F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8457","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF99F"},194976:{"value":"2F9A0","name":"CJK COMPATIBILITY IDEOGRAPH-2F9A0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8353","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A0"},194977:{"value":"2F9A1","name":"CJK COMPATIBILITY IDEOGRAPH-2F9A1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"83CA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A1"},194978:{"value":"2F9A2","name":"CJK COMPATIBILITY IDEOGRAPH-2F9A2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"83CC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A2"},194979:{"value":"2F9A3","name":"CJK COMPATIBILITY IDEOGRAPH-2F9A3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"83DC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A3"},194980:{"value":"2F9A4","name":"CJK COMPATIBILITY IDEOGRAPH-2F9A4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"26C36","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A4"},194981:{"value":"2F9A5","name":"CJK COMPATIBILITY IDEOGRAPH-2F9A5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"26D6B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A5"},194982:{"value":"2F9A6","name":"CJK COMPATIBILITY IDEOGRAPH-2F9A6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"26CD5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A6"},194983:{"value":"2F9A7","name":"CJK COMPATIBILITY IDEOGRAPH-2F9A7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"452B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A7"},194984:{"value":"2F9A8","name":"CJK COMPATIBILITY IDEOGRAPH-2F9A8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"84F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A8"},194985:{"value":"2F9A9","name":"CJK COMPATIBILITY IDEOGRAPH-2F9A9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"84F3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9A9"},194986:{"value":"2F9AA","name":"CJK COMPATIBILITY IDEOGRAPH-2F9AA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8516","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AA"},194987:{"value":"2F9AB","name":"CJK COMPATIBILITY IDEOGRAPH-2F9AB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"273CA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AB"},194988:{"value":"2F9AC","name":"CJK COMPATIBILITY IDEOGRAPH-2F9AC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8564","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AC"},194989:{"value":"2F9AD","name":"CJK COMPATIBILITY IDEOGRAPH-2F9AD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"26F2C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AD"},194990:{"value":"2F9AE","name":"CJK COMPATIBILITY IDEOGRAPH-2F9AE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"455D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AE"},194991:{"value":"2F9AF","name":"CJK COMPATIBILITY IDEOGRAPH-2F9AF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4561","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9AF"},194992:{"value":"2F9B0","name":"CJK COMPATIBILITY IDEOGRAPH-2F9B0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"26FB1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B0"},194993:{"value":"2F9B1","name":"CJK COMPATIBILITY IDEOGRAPH-2F9B1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"270D2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B1"},194994:{"value":"2F9B2","name":"CJK COMPATIBILITY IDEOGRAPH-2F9B2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"456B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B2"},194995:{"value":"2F9B3","name":"CJK COMPATIBILITY IDEOGRAPH-2F9B3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8650","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B3"},194996:{"value":"2F9B4","name":"CJK COMPATIBILITY IDEOGRAPH-2F9B4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"865C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B4"},194997:{"value":"2F9B5","name":"CJK COMPATIBILITY IDEOGRAPH-2F9B5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8667","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B5"},194998:{"value":"2F9B6","name":"CJK COMPATIBILITY IDEOGRAPH-2F9B6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8669","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B6"},194999:{"value":"2F9B7","name":"CJK COMPATIBILITY IDEOGRAPH-2F9B7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"86A9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B7"},195000:{"value":"2F9B8","name":"CJK COMPATIBILITY IDEOGRAPH-2F9B8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8688","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B8"},195001:{"value":"2F9B9","name":"CJK COMPATIBILITY IDEOGRAPH-2F9B9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"870E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9B9"},195002:{"value":"2F9BA","name":"CJK COMPATIBILITY IDEOGRAPH-2F9BA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"86E2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BA"},195003:{"value":"2F9BB","name":"CJK COMPATIBILITY IDEOGRAPH-2F9BB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8779","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BB"},195004:{"value":"2F9BC","name":"CJK COMPATIBILITY IDEOGRAPH-2F9BC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8728","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BC"},195005:{"value":"2F9BD","name":"CJK COMPATIBILITY IDEOGRAPH-2F9BD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"876B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BD"},195006:{"value":"2F9BE","name":"CJK COMPATIBILITY IDEOGRAPH-2F9BE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8786","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BE"},195007:{"value":"2F9BF","name":"CJK COMPATIBILITY IDEOGRAPH-2F9BF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"45D7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9BF"},195008:{"value":"2F9C0","name":"CJK COMPATIBILITY IDEOGRAPH-2F9C0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"87E1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C0"},195009:{"value":"2F9C1","name":"CJK COMPATIBILITY IDEOGRAPH-2F9C1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8801","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C1"},195010:{"value":"2F9C2","name":"CJK COMPATIBILITY IDEOGRAPH-2F9C2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"45F9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C2"},195011:{"value":"2F9C3","name":"CJK COMPATIBILITY IDEOGRAPH-2F9C3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8860","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C3"},195012:{"value":"2F9C4","name":"CJK COMPATIBILITY IDEOGRAPH-2F9C4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8863","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C4"},195013:{"value":"2F9C5","name":"CJK COMPATIBILITY IDEOGRAPH-2F9C5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"27667","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C5"},195014:{"value":"2F9C6","name":"CJK COMPATIBILITY IDEOGRAPH-2F9C6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"88D7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C6"},195015:{"value":"2F9C7","name":"CJK COMPATIBILITY IDEOGRAPH-2F9C7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"88DE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C7"},195016:{"value":"2F9C8","name":"CJK COMPATIBILITY IDEOGRAPH-2F9C8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4635","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C8"},195017:{"value":"2F9C9","name":"CJK COMPATIBILITY IDEOGRAPH-2F9C9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"88FA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9C9"},195018:{"value":"2F9CA","name":"CJK COMPATIBILITY IDEOGRAPH-2F9CA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"34BB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CA"},195019:{"value":"2F9CB","name":"CJK COMPATIBILITY IDEOGRAPH-2F9CB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"278AE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CB"},195020:{"value":"2F9CC","name":"CJK COMPATIBILITY IDEOGRAPH-2F9CC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"27966","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CC"},195021:{"value":"2F9CD","name":"CJK COMPATIBILITY IDEOGRAPH-2F9CD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"46BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CD"},195022:{"value":"2F9CE","name":"CJK COMPATIBILITY IDEOGRAPH-2F9CE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"46C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CE"},195023:{"value":"2F9CF","name":"CJK COMPATIBILITY IDEOGRAPH-2F9CF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AA0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9CF"},195024:{"value":"2F9D0","name":"CJK COMPATIBILITY IDEOGRAPH-2F9D0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8AED","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D0"},195025:{"value":"2F9D1","name":"CJK COMPATIBILITY IDEOGRAPH-2F9D1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8B8A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D1"},195026:{"value":"2F9D2","name":"CJK COMPATIBILITY IDEOGRAPH-2F9D2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8C55","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D2"},195027:{"value":"2F9D3","name":"CJK COMPATIBILITY IDEOGRAPH-2F9D3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"27CA8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D3"},195028:{"value":"2F9D4","name":"CJK COMPATIBILITY IDEOGRAPH-2F9D4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8CAB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D4"},195029:{"value":"2F9D5","name":"CJK COMPATIBILITY IDEOGRAPH-2F9D5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8CC1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D5"},195030:{"value":"2F9D6","name":"CJK COMPATIBILITY IDEOGRAPH-2F9D6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8D1B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D6"},195031:{"value":"2F9D7","name":"CJK COMPATIBILITY IDEOGRAPH-2F9D7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8D77","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D7"},195032:{"value":"2F9D8","name":"CJK COMPATIBILITY IDEOGRAPH-2F9D8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"27F2F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D8"},195033:{"value":"2F9D9","name":"CJK COMPATIBILITY IDEOGRAPH-2F9D9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"20804","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9D9"},195034:{"value":"2F9DA","name":"CJK COMPATIBILITY IDEOGRAPH-2F9DA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8DCB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DA"},195035:{"value":"2F9DB","name":"CJK COMPATIBILITY IDEOGRAPH-2F9DB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8DBC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DB"},195036:{"value":"2F9DC","name":"CJK COMPATIBILITY IDEOGRAPH-2F9DC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8DF0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DC"},195037:{"value":"2F9DD","name":"CJK COMPATIBILITY IDEOGRAPH-2F9DD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"208DE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DD"},195038:{"value":"2F9DE","name":"CJK COMPATIBILITY IDEOGRAPH-2F9DE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8ED4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DE"},195039:{"value":"2F9DF","name":"CJK COMPATIBILITY IDEOGRAPH-2F9DF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"8F38","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9DF"},195040:{"value":"2F9E0","name":"CJK COMPATIBILITY IDEOGRAPH-2F9E0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"285D2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E0"},195041:{"value":"2F9E1","name":"CJK COMPATIBILITY IDEOGRAPH-2F9E1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"285ED","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E1"},195042:{"value":"2F9E2","name":"CJK COMPATIBILITY IDEOGRAPH-2F9E2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9094","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E2"},195043:{"value":"2F9E3","name":"CJK COMPATIBILITY IDEOGRAPH-2F9E3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"90F1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E3"},195044:{"value":"2F9E4","name":"CJK COMPATIBILITY IDEOGRAPH-2F9E4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9111","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E4"},195045:{"value":"2F9E5","name":"CJK COMPATIBILITY IDEOGRAPH-2F9E5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2872E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E5"},195046:{"value":"2F9E6","name":"CJK COMPATIBILITY IDEOGRAPH-2F9E6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"911B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E6"},195047:{"value":"2F9E7","name":"CJK COMPATIBILITY IDEOGRAPH-2F9E7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9238","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E7"},195048:{"value":"2F9E8","name":"CJK COMPATIBILITY IDEOGRAPH-2F9E8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"92D7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E8"},195049:{"value":"2F9E9","name":"CJK COMPATIBILITY IDEOGRAPH-2F9E9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"92D8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9E9"},195050:{"value":"2F9EA","name":"CJK COMPATIBILITY IDEOGRAPH-2F9EA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"927C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9EA"},195051:{"value":"2F9EB","name":"CJK COMPATIBILITY IDEOGRAPH-2F9EB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"93F9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9EB"},195052:{"value":"2F9EC","name":"CJK COMPATIBILITY IDEOGRAPH-2F9EC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9415","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9EC"},195053:{"value":"2F9ED","name":"CJK COMPATIBILITY IDEOGRAPH-2F9ED","category":"Lo","class":"0","bidirectional_category":"L","mapping":"28BFA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9ED"},195054:{"value":"2F9EE","name":"CJK COMPATIBILITY IDEOGRAPH-2F9EE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"958B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9EE"},195055:{"value":"2F9EF","name":"CJK COMPATIBILITY IDEOGRAPH-2F9EF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4995","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9EF"},195056:{"value":"2F9F0","name":"CJK COMPATIBILITY IDEOGRAPH-2F9F0","category":"Lo","class":"0","bidirectional_category":"L","mapping":"95B7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F0"},195057:{"value":"2F9F1","name":"CJK COMPATIBILITY IDEOGRAPH-2F9F1","category":"Lo","class":"0","bidirectional_category":"L","mapping":"28D77","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F1"},195058:{"value":"2F9F2","name":"CJK COMPATIBILITY IDEOGRAPH-2F9F2","category":"Lo","class":"0","bidirectional_category":"L","mapping":"49E6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F2"},195059:{"value":"2F9F3","name":"CJK COMPATIBILITY IDEOGRAPH-2F9F3","category":"Lo","class":"0","bidirectional_category":"L","mapping":"96C3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F3"},195060:{"value":"2F9F4","name":"CJK COMPATIBILITY IDEOGRAPH-2F9F4","category":"Lo","class":"0","bidirectional_category":"L","mapping":"5DB2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F4"},195061:{"value":"2F9F5","name":"CJK COMPATIBILITY IDEOGRAPH-2F9F5","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9723","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F5"},195062:{"value":"2F9F6","name":"CJK COMPATIBILITY IDEOGRAPH-2F9F6","category":"Lo","class":"0","bidirectional_category":"L","mapping":"29145","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F6"},195063:{"value":"2F9F7","name":"CJK COMPATIBILITY IDEOGRAPH-2F9F7","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2921A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F7"},195064:{"value":"2F9F8","name":"CJK COMPATIBILITY IDEOGRAPH-2F9F8","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4A6E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F8"},195065:{"value":"2F9F9","name":"CJK COMPATIBILITY IDEOGRAPH-2F9F9","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4A76","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9F9"},195066:{"value":"2F9FA","name":"CJK COMPATIBILITY IDEOGRAPH-2F9FA","category":"Lo","class":"0","bidirectional_category":"L","mapping":"97E0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FA"},195067:{"value":"2F9FB","name":"CJK COMPATIBILITY IDEOGRAPH-2F9FB","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2940A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FB"},195068:{"value":"2F9FC","name":"CJK COMPATIBILITY IDEOGRAPH-2F9FC","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4AB2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FC"},195069:{"value":"2F9FD","name":"CJK COMPATIBILITY IDEOGRAPH-2F9FD","category":"Lo","class":"0","bidirectional_category":"L","mapping":"29496","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FD"},195070:{"value":"2F9FE","name":"CJK COMPATIBILITY IDEOGRAPH-2F9FE","category":"Lo","class":"0","bidirectional_category":"L","mapping":"980B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FE"},195071:{"value":"2F9FF","name":"CJK COMPATIBILITY IDEOGRAPH-2F9FF","category":"Lo","class":"0","bidirectional_category":"L","mapping":"980B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uF9FF"},195072:{"value":"2FA00","name":"CJK COMPATIBILITY IDEOGRAPH-2FA00","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9829","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA00"},195073:{"value":"2FA01","name":"CJK COMPATIBILITY IDEOGRAPH-2FA01","category":"Lo","class":"0","bidirectional_category":"L","mapping":"295B6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA01"},195074:{"value":"2FA02","name":"CJK COMPATIBILITY IDEOGRAPH-2FA02","category":"Lo","class":"0","bidirectional_category":"L","mapping":"98E2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA02"},195075:{"value":"2FA03","name":"CJK COMPATIBILITY IDEOGRAPH-2FA03","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4B33","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA03"},195076:{"value":"2FA04","name":"CJK COMPATIBILITY IDEOGRAPH-2FA04","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9929","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA04"},195077:{"value":"2FA05","name":"CJK COMPATIBILITY IDEOGRAPH-2FA05","category":"Lo","class":"0","bidirectional_category":"L","mapping":"99A7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA05"},195078:{"value":"2FA06","name":"CJK COMPATIBILITY IDEOGRAPH-2FA06","category":"Lo","class":"0","bidirectional_category":"L","mapping":"99C2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA06"},195079:{"value":"2FA07","name":"CJK COMPATIBILITY IDEOGRAPH-2FA07","category":"Lo","class":"0","bidirectional_category":"L","mapping":"99FE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA07"},195080:{"value":"2FA08","name":"CJK COMPATIBILITY IDEOGRAPH-2FA08","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4BCE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA08"},195081:{"value":"2FA09","name":"CJK COMPATIBILITY IDEOGRAPH-2FA09","category":"Lo","class":"0","bidirectional_category":"L","mapping":"29B30","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA09"},195082:{"value":"2FA0A","name":"CJK COMPATIBILITY IDEOGRAPH-2FA0A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9B12","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0A"},195083:{"value":"2FA0B","name":"CJK COMPATIBILITY IDEOGRAPH-2FA0B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9C40","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0B"},195084:{"value":"2FA0C","name":"CJK COMPATIBILITY IDEOGRAPH-2FA0C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9CFD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0C"},195085:{"value":"2FA0D","name":"CJK COMPATIBILITY IDEOGRAPH-2FA0D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4CCE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0D"},195086:{"value":"2FA0E","name":"CJK COMPATIBILITY IDEOGRAPH-2FA0E","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4CED","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0E"},195087:{"value":"2FA0F","name":"CJK COMPATIBILITY IDEOGRAPH-2FA0F","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9D67","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA0F"},195088:{"value":"2FA10","name":"CJK COMPATIBILITY IDEOGRAPH-2FA10","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2A0CE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA10"},195089:{"value":"2FA11","name":"CJK COMPATIBILITY IDEOGRAPH-2FA11","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4CF8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA11"},195090:{"value":"2FA12","name":"CJK COMPATIBILITY IDEOGRAPH-2FA12","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2A105","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA12"},195091:{"value":"2FA13","name":"CJK COMPATIBILITY IDEOGRAPH-2FA13","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2A20E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA13"},195092:{"value":"2FA14","name":"CJK COMPATIBILITY IDEOGRAPH-2FA14","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2A291","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA14"},195093:{"value":"2FA15","name":"CJK COMPATIBILITY IDEOGRAPH-2FA15","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9EBB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA15"},195094:{"value":"2FA16","name":"CJK COMPATIBILITY IDEOGRAPH-2FA16","category":"Lo","class":"0","bidirectional_category":"L","mapping":"4D56","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA16"},195095:{"value":"2FA17","name":"CJK COMPATIBILITY IDEOGRAPH-2FA17","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9EF9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA17"},195096:{"value":"2FA18","name":"CJK COMPATIBILITY IDEOGRAPH-2FA18","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9EFE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA18"},195097:{"value":"2FA19","name":"CJK COMPATIBILITY IDEOGRAPH-2FA19","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9F05","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA19"},195098:{"value":"2FA1A","name":"CJK COMPATIBILITY IDEOGRAPH-2FA1A","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9F0F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA1A"},195099:{"value":"2FA1B","name":"CJK COMPATIBILITY IDEOGRAPH-2FA1B","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9F16","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA1B"},195100:{"value":"2FA1C","name":"CJK COMPATIBILITY IDEOGRAPH-2FA1C","category":"Lo","class":"0","bidirectional_category":"L","mapping":"9F3B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA1C"},195101:{"value":"2FA1D","name":"CJK COMPATIBILITY IDEOGRAPH-2FA1D","category":"Lo","class":"0","bidirectional_category":"L","mapping":"2A600","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFA1D"}};

/***/ }),
/* 177 */
/***/ (function(module, exports) {

module.exports={688:{"value":"02B0","name":"MODIFIER LETTER SMALL H","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B0"},689:{"value":"02B1","name":"MODIFIER LETTER SMALL H WITH HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0266","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"MODIFIER LETTER SMALL H HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B1"},690:{"value":"02B2","name":"MODIFIER LETTER SMALL J","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B2"},691:{"value":"02B3","name":"MODIFIER LETTER SMALL R","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B3"},692:{"value":"02B4","name":"MODIFIER LETTER SMALL TURNED R","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0279","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B4"},693:{"value":"02B5","name":"MODIFIER LETTER SMALL TURNED R WITH HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 027B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"MODIFIER LETTER SMALL TURNED R HOOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B5"},694:{"value":"02B6","name":"MODIFIER LETTER SMALL CAPITAL INVERTED R","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0281","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B6"},695:{"value":"02B7","name":"MODIFIER LETTER SMALL W","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0077","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B7"},696:{"value":"02B8","name":"MODIFIER LETTER SMALL Y","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0079","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B8"},697:{"value":"02B9","name":"MODIFIER LETTER PRIME","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02B9"},698:{"value":"02BA","name":"MODIFIER LETTER DOUBLE PRIME","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BA"},699:{"value":"02BB","name":"MODIFIER LETTER TURNED COMMA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BB"},700:{"value":"02BC","name":"MODIFIER LETTER APOSTROPHE","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BC"},701:{"value":"02BD","name":"MODIFIER LETTER REVERSED COMMA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BD"},702:{"value":"02BE","name":"MODIFIER LETTER RIGHT HALF RING","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BE"},703:{"value":"02BF","name":"MODIFIER LETTER LEFT HALF RING","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02BF"},704:{"value":"02C0","name":"MODIFIER LETTER GLOTTAL STOP","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C0"},705:{"value":"02C1","name":"MODIFIER LETTER REVERSED GLOTTAL STOP","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C1"},710:{"value":"02C6","name":"MODIFIER LETTER CIRCUMFLEX ACCENT","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"MODIFIER LETTER CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C6"},711:{"value":"02C7","name":"CARON","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"MODIFIER LETTER HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C7"},712:{"value":"02C8","name":"MODIFIER LETTER VERTICAL LINE","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C8"},713:{"value":"02C9","name":"MODIFIER LETTER MACRON","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02C9"},714:{"value":"02CA","name":"MODIFIER LETTER ACUTE ACCENT","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"MODIFIER LETTER ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CA"},715:{"value":"02CB","name":"MODIFIER LETTER GRAVE ACCENT","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"MODIFIER LETTER GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CB"},716:{"value":"02CC","name":"MODIFIER LETTER LOW VERTICAL LINE","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CC"},717:{"value":"02CD","name":"MODIFIER LETTER LOW MACRON","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CD"},718:{"value":"02CE","name":"MODIFIER LETTER LOW GRAVE ACCENT","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"MODIFIER LETTER LOW GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CE"},719:{"value":"02CF","name":"MODIFIER LETTER LOW ACUTE ACCENT","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"MODIFIER LETTER LOW ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02CF"},720:{"value":"02D0","name":"MODIFIER LETTER TRIANGULAR COLON","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02D0"},721:{"value":"02D1","name":"MODIFIER LETTER HALF TRIANGULAR COLON","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02D1"},736:{"value":"02E0","name":"MODIFIER LETTER SMALL GAMMA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0263","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02E0"},737:{"value":"02E1","name":"MODIFIER LETTER SMALL L","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02E1"},738:{"value":"02E2","name":"MODIFIER LETTER SMALL S","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02E2"},739:{"value":"02E3","name":"MODIFIER LETTER SMALL X","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02E3"},740:{"value":"02E4","name":"MODIFIER LETTER SMALL REVERSED GLOTTAL STOP","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0295","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02E4"},748:{"value":"02EC","name":"MODIFIER LETTER VOICING","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02EC"},750:{"value":"02EE","name":"MODIFIER LETTER DOUBLE APOSTROPHE","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02EE"},884:{"value":"0374","name":"GREEK NUMERAL SIGN","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"02B9","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK UPPER NUMERAL SIGN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0374"},890:{"value":"037A","name":"GREEK YPOGEGRAMMENI","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<compat> 0020 0345","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK SPACING IOTA BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u037A"},1369:{"value":"0559","name":"ARMENIAN MODIFIER LETTER LEFT HALF RING","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0559"},1600:{"value":"0640","name":"ARABIC TATWEEL","category":"Lm","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0640"},1765:{"value":"06E5","name":"ARABIC SMALL WAW","category":"Lm","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E5"},1766:{"value":"06E6","name":"ARABIC SMALL YEH","category":"Lm","class":"0","bidirectional_category":"AL","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E6"},2036:{"value":"07F4","name":"NKO HIGH TONE APOSTROPHE","category":"Lm","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07F4"},2037:{"value":"07F5","name":"NKO LOW TONE APOSTROPHE","category":"Lm","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07F5"},2042:{"value":"07FA","name":"NKO LAJANYALAN","category":"Lm","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07FA"},2074:{"value":"081A","name":"SAMARITAN MODIFIER LETTER EPENTHETIC YUT","category":"Lm","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081A"},2084:{"value":"0824","name":"SAMARITAN MODIFIER LETTER SHORT A","category":"Lm","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0824"},2088:{"value":"0828","name":"SAMARITAN MODIFIER LETTER I","category":"Lm","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0828"},2417:{"value":"0971","name":"DEVANAGARI SIGN HIGH SPACING DOT","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0971"},3654:{"value":"0E46","name":"THAI CHARACTER MAIYAMOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI MAI YAMOK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E46"},3782:{"value":"0EC6","name":"LAO KO LA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EC6"},4348:{"value":"10FC","name":"MODIFIER LETTER GEORGIAN NAR","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 10DC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10FC"},6103:{"value":"17D7","name":"KHMER SIGN LEK TOO","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17D7"},6211:{"value":"1843","name":"MONGOLIAN LETTER TODO LONG VOWEL SIGN","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1843"},6823:{"value":"1AA7","name":"TAI THAM SIGN MAI YAMOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AA7"},7288:{"value":"1C78","name":"OL CHIKI MU TTUDDAG","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C78"},7289:{"value":"1C79","name":"OL CHIKI GAAHLAA TTUDDAAG","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C79"},7290:{"value":"1C7A","name":"OL CHIKI MU-GAAHLAA TTUDDAAG","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C7A"},7291:{"value":"1C7B","name":"OL CHIKI RELAA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C7B"},7292:{"value":"1C7C","name":"OL CHIKI PHAARKAA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C7C"},7293:{"value":"1C7D","name":"OL CHIKI AHAD","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C7D"},7468:{"value":"1D2C","name":"MODIFIER LETTER CAPITAL A","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0041","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2C"},7469:{"value":"1D2D","name":"MODIFIER LETTER CAPITAL AE","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 00C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2D"},7470:{"value":"1D2E","name":"MODIFIER LETTER CAPITAL B","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0042","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2E"},7471:{"value":"1D2F","name":"MODIFIER LETTER CAPITAL BARRED B","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D2F"},7472:{"value":"1D30","name":"MODIFIER LETTER CAPITAL D","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D30"},7473:{"value":"1D31","name":"MODIFIER LETTER CAPITAL E","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0045","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D31"},7474:{"value":"1D32","name":"MODIFIER LETTER CAPITAL REVERSED E","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 018E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D32"},7475:{"value":"1D33","name":"MODIFIER LETTER CAPITAL G","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0047","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D33"},7476:{"value":"1D34","name":"MODIFIER LETTER CAPITAL H","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0048","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D34"},7477:{"value":"1D35","name":"MODIFIER LETTER CAPITAL I","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D35"},7478:{"value":"1D36","name":"MODIFIER LETTER CAPITAL J","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 004A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D36"},7479:{"value":"1D37","name":"MODIFIER LETTER CAPITAL K","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 004B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D37"},7480:{"value":"1D38","name":"MODIFIER LETTER CAPITAL L","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D38"},7481:{"value":"1D39","name":"MODIFIER LETTER CAPITAL M","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D39"},7482:{"value":"1D3A","name":"MODIFIER LETTER CAPITAL N","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 004E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D3A"},7483:{"value":"1D3B","name":"MODIFIER LETTER CAPITAL REVERSED N","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D3B"},7484:{"value":"1D3C","name":"MODIFIER LETTER CAPITAL O","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 004F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D3C"},7485:{"value":"1D3D","name":"MODIFIER LETTER CAPITAL OU","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0222","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D3D"},7486:{"value":"1D3E","name":"MODIFIER LETTER CAPITAL P","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0050","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D3E"},7487:{"value":"1D3F","name":"MODIFIER LETTER CAPITAL R","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0052","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D3F"},7488:{"value":"1D40","name":"MODIFIER LETTER CAPITAL T","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0054","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D40"},7489:{"value":"1D41","name":"MODIFIER LETTER CAPITAL U","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0055","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D41"},7490:{"value":"1D42","name":"MODIFIER LETTER CAPITAL W","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0057","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D42"},7491:{"value":"1D43","name":"MODIFIER LETTER SMALL A","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D43"},7492:{"value":"1D44","name":"MODIFIER LETTER SMALL TURNED A","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0250","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D44"},7493:{"value":"1D45","name":"MODIFIER LETTER SMALL ALPHA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0251","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D45"},7494:{"value":"1D46","name":"MODIFIER LETTER SMALL TURNED AE","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 1D02","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D46"},7495:{"value":"1D47","name":"MODIFIER LETTER SMALL B","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0062","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D47"},7496:{"value":"1D48","name":"MODIFIER LETTER SMALL D","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D48"},7497:{"value":"1D49","name":"MODIFIER LETTER SMALL E","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D49"},7498:{"value":"1D4A","name":"MODIFIER LETTER SMALL SCHWA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0259","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D4A"},7499:{"value":"1D4B","name":"MODIFIER LETTER SMALL OPEN E","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 025B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D4B"},7500:{"value":"1D4C","name":"MODIFIER LETTER SMALL TURNED OPEN E","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 025C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D4C"},7501:{"value":"1D4D","name":"MODIFIER LETTER SMALL G","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0067","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D4D"},7502:{"value":"1D4E","name":"MODIFIER LETTER SMALL TURNED I","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D4E"},7503:{"value":"1D4F","name":"MODIFIER LETTER SMALL K","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D4F"},7504:{"value":"1D50","name":"MODIFIER LETTER SMALL M","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D50"},7505:{"value":"1D51","name":"MODIFIER LETTER SMALL ENG","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 014B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D51"},7506:{"value":"1D52","name":"MODIFIER LETTER SMALL O","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D52"},7507:{"value":"1D53","name":"MODIFIER LETTER SMALL OPEN O","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0254","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D53"},7508:{"value":"1D54","name":"MODIFIER LETTER SMALL TOP HALF O","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 1D16","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D54"},7509:{"value":"1D55","name":"MODIFIER LETTER SMALL BOTTOM HALF O","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 1D17","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D55"},7510:{"value":"1D56","name":"MODIFIER LETTER SMALL P","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D56"},7511:{"value":"1D57","name":"MODIFIER LETTER SMALL T","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D57"},7512:{"value":"1D58","name":"MODIFIER LETTER SMALL U","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D58"},7513:{"value":"1D59","name":"MODIFIER LETTER SMALL SIDEWAYS U","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 1D1D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D59"},7514:{"value":"1D5A","name":"MODIFIER LETTER SMALL TURNED M","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 026F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D5A"},7515:{"value":"1D5B","name":"MODIFIER LETTER SMALL V","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D5B"},7516:{"value":"1D5C","name":"MODIFIER LETTER SMALL AIN","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 1D25","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D5C"},7517:{"value":"1D5D","name":"MODIFIER LETTER SMALL BETA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 03B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D5D"},7518:{"value":"1D5E","name":"MODIFIER LETTER SMALL GREEK GAMMA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 03B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D5E"},7519:{"value":"1D5F","name":"MODIFIER LETTER SMALL DELTA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 03B4","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D5F"},7520:{"value":"1D60","name":"MODIFIER LETTER SMALL GREEK PHI","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 03C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D60"},7521:{"value":"1D61","name":"MODIFIER LETTER SMALL CHI","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 03C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D61"},7522:{"value":"1D62","name":"LATIN SUBSCRIPT SMALL LETTER I","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D62"},7523:{"value":"1D63","name":"LATIN SUBSCRIPT SMALL LETTER R","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0072","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D63"},7524:{"value":"1D64","name":"LATIN SUBSCRIPT SMALL LETTER U","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0075","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D64"},7525:{"value":"1D65","name":"LATIN SUBSCRIPT SMALL LETTER V","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D65"},7526:{"value":"1D66","name":"GREEK SUBSCRIPT SMALL LETTER BETA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 03B2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D66"},7527:{"value":"1D67","name":"GREEK SUBSCRIPT SMALL LETTER GAMMA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 03B3","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D67"},7528:{"value":"1D68","name":"GREEK SUBSCRIPT SMALL LETTER RHO","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 03C1","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D68"},7529:{"value":"1D69","name":"GREEK SUBSCRIPT SMALL LETTER PHI","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 03C6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D69"},7530:{"value":"1D6A","name":"GREEK SUBSCRIPT SMALL LETTER CHI","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 03C7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D6A"},7544:{"value":"1D78","name":"MODIFIER LETTER CYRILLIC EN","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 043D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D78"},7579:{"value":"1D9B","name":"MODIFIER LETTER SMALL TURNED ALPHA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0252","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D9B"},7580:{"value":"1D9C","name":"MODIFIER LETTER SMALL C","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D9C"},7581:{"value":"1D9D","name":"MODIFIER LETTER SMALL C WITH CURL","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0255","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D9D"},7582:{"value":"1D9E","name":"MODIFIER LETTER SMALL ETH","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 00F0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D9E"},7583:{"value":"1D9F","name":"MODIFIER LETTER SMALL REVERSED OPEN E","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 025C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D9F"},7584:{"value":"1DA0","name":"MODIFIER LETTER SMALL F","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0066","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA0"},7585:{"value":"1DA1","name":"MODIFIER LETTER SMALL DOTLESS J WITH STROKE","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 025F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA1"},7586:{"value":"1DA2","name":"MODIFIER LETTER SMALL SCRIPT G","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0261","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA2"},7587:{"value":"1DA3","name":"MODIFIER LETTER SMALL TURNED H","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0265","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA3"},7588:{"value":"1DA4","name":"MODIFIER LETTER SMALL I WITH STROKE","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0268","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA4"},7589:{"value":"1DA5","name":"MODIFIER LETTER SMALL IOTA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0269","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA5"},7590:{"value":"1DA6","name":"MODIFIER LETTER SMALL CAPITAL I","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 026A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA6"},7591:{"value":"1DA7","name":"MODIFIER LETTER SMALL CAPITAL I WITH STROKE","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 1D7B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA7"},7592:{"value":"1DA8","name":"MODIFIER LETTER SMALL J WITH CROSSED-TAIL","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 029D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA8"},7593:{"value":"1DA9","name":"MODIFIER LETTER SMALL L WITH RETROFLEX HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 026D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA9"},7594:{"value":"1DAA","name":"MODIFIER LETTER SMALL L WITH PALATAL HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 1D85","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DAA"},7595:{"value":"1DAB","name":"MODIFIER LETTER SMALL CAPITAL L","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 029F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DAB"},7596:{"value":"1DAC","name":"MODIFIER LETTER SMALL M WITH HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0271","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DAC"},7597:{"value":"1DAD","name":"MODIFIER LETTER SMALL TURNED M WITH LONG LEG","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0270","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DAD"},7598:{"value":"1DAE","name":"MODIFIER LETTER SMALL N WITH LEFT HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0272","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DAE"},7599:{"value":"1DAF","name":"MODIFIER LETTER SMALL N WITH RETROFLEX HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0273","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DAF"},7600:{"value":"1DB0","name":"MODIFIER LETTER SMALL CAPITAL N","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0274","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DB0"},7601:{"value":"1DB1","name":"MODIFIER LETTER SMALL BARRED O","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0275","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DB1"},7602:{"value":"1DB2","name":"MODIFIER LETTER SMALL PHI","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0278","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DB2"},7603:{"value":"1DB3","name":"MODIFIER LETTER SMALL S WITH HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0282","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DB3"},7604:{"value":"1DB4","name":"MODIFIER LETTER SMALL ESH","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0283","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DB4"},7605:{"value":"1DB5","name":"MODIFIER LETTER SMALL T WITH PALATAL HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 01AB","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DB5"},7606:{"value":"1DB6","name":"MODIFIER LETTER SMALL U BAR","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0289","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DB6"},7607:{"value":"1DB7","name":"MODIFIER LETTER SMALL UPSILON","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 028A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DB7"},7608:{"value":"1DB8","name":"MODIFIER LETTER SMALL CAPITAL U","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 1D1C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DB8"},7609:{"value":"1DB9","name":"MODIFIER LETTER SMALL V WITH HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 028B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DB9"},7610:{"value":"1DBA","name":"MODIFIER LETTER SMALL TURNED V","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 028C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DBA"},7611:{"value":"1DBB","name":"MODIFIER LETTER SMALL Z","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 007A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DBB"},7612:{"value":"1DBC","name":"MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0290","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DBC"},7613:{"value":"1DBD","name":"MODIFIER LETTER SMALL Z WITH CURL","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0291","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DBD"},7614:{"value":"1DBE","name":"MODIFIER LETTER SMALL EZH","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0292","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DBE"},7615:{"value":"1DBF","name":"MODIFIER LETTER SMALL THETA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 03B8","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DBF"},8305:{"value":"2071","name":"SUPERSCRIPT LATIN SMALL LETTER I","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2071"},8319:{"value":"207F","name":"SUPERSCRIPT LATIN SMALL LETTER N","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u207F"},8336:{"value":"2090","name":"LATIN SUBSCRIPT SMALL LETTER A","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0061","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2090"},8337:{"value":"2091","name":"LATIN SUBSCRIPT SMALL LETTER E","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0065","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2091"},8338:{"value":"2092","name":"LATIN SUBSCRIPT SMALL LETTER O","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 006F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2092"},8339:{"value":"2093","name":"LATIN SUBSCRIPT SMALL LETTER X","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2093"},8340:{"value":"2094","name":"LATIN SUBSCRIPT SMALL LETTER SCHWA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0259","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2094"},8341:{"value":"2095","name":"LATIN SUBSCRIPT SMALL LETTER H","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0068","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2095"},8342:{"value":"2096","name":"LATIN SUBSCRIPT SMALL LETTER K","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 006B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2096"},8343:{"value":"2097","name":"LATIN SUBSCRIPT SMALL LETTER L","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2097"},8344:{"value":"2098","name":"LATIN SUBSCRIPT SMALL LETTER M","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2098"},8345:{"value":"2099","name":"LATIN SUBSCRIPT SMALL LETTER N","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 006E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2099"},8346:{"value":"209A","name":"LATIN SUBSCRIPT SMALL LETTER P","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0070","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u209A"},8347:{"value":"209B","name":"LATIN SUBSCRIPT SMALL LETTER S","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0073","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u209B"},8348:{"value":"209C","name":"LATIN SUBSCRIPT SMALL LETTER T","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 0074","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u209C"},11388:{"value":"2C7C","name":"LATIN SUBSCRIPT SMALL LETTER J","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<sub> 006A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2C7C"},11389:{"value":"2C7D","name":"MODIFIER LETTER CAPITAL V","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2C7D"},11631:{"value":"2D6F","name":"TIFINAGH MODIFIER LETTER LABIALIZATION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 2D61","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D6F"},11823:{"value":"2E2F","name":"VERTICAL TILDE","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2E2F"},12293:{"value":"3005","name":"IDEOGRAPHIC ITERATION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3005"},12337:{"value":"3031","name":"VERTICAL KANA REPEAT MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3031"},12338:{"value":"3032","name":"VERTICAL KANA REPEAT WITH VOICED SOUND MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3032"},12339:{"value":"3033","name":"VERTICAL KANA REPEAT MARK UPPER HALF","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3033"},12340:{"value":"3034","name":"VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3034"},12341:{"value":"3035","name":"VERTICAL KANA REPEAT MARK LOWER HALF","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3035"},12347:{"value":"303B","name":"VERTICAL IDEOGRAPHIC ITERATION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u303B"},12445:{"value":"309D","name":"HIRAGANA ITERATION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u309D"},12446:{"value":"309E","name":"HIRAGANA VOICED ITERATION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"309D 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u309E"},12540:{"value":"30FC","name":"KATAKANA-HIRAGANA PROLONGED SOUND MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FC"},12541:{"value":"30FD","name":"KATAKANA ITERATION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FD"},12542:{"value":"30FE","name":"KATAKANA VOICED ITERATION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"30FD 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u30FE"},40981:{"value":"A015","name":"YI SYLLABLE WU","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA015"},42232:{"value":"A4F8","name":"LISU LETTER TONE MYA TI","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4F8"},42233:{"value":"A4F9","name":"LISU LETTER TONE NA PO","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4F9"},42234:{"value":"A4FA","name":"LISU LETTER TONE MYA CYA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4FA"},42235:{"value":"A4FB","name":"LISU LETTER TONE MYA BO","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4FB"},42236:{"value":"A4FC","name":"LISU LETTER TONE MYA NA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4FC"},42237:{"value":"A4FD","name":"LISU LETTER TONE MYA JEU","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA4FD"},42508:{"value":"A60C","name":"VAI SYLLABLE LENGTHENER","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA60C"},42623:{"value":"A67F","name":"CYRILLIC PAYEROK","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA67F"},42652:{"value":"A69C","name":"MODIFIER LETTER CYRILLIC HARD SIGN","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 044A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA69C"},42653:{"value":"A69D","name":"MODIFIER LETTER CYRILLIC SOFT SIGN","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 044C","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA69D"},42775:{"value":"A717","name":"MODIFIER LETTER DOT VERTICAL BAR","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA717"},42776:{"value":"A718","name":"MODIFIER LETTER DOT SLASH","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA718"},42777:{"value":"A719","name":"MODIFIER LETTER DOT HORIZONTAL BAR","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA719"},42778:{"value":"A71A","name":"MODIFIER LETTER LOWER RIGHT CORNER ANGLE","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA71A"},42779:{"value":"A71B","name":"MODIFIER LETTER RAISED UP ARROW","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA71B"},42780:{"value":"A71C","name":"MODIFIER LETTER RAISED DOWN ARROW","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA71C"},42781:{"value":"A71D","name":"MODIFIER LETTER RAISED EXCLAMATION MARK","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA71D"},42782:{"value":"A71E","name":"MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA71E"},42783:{"value":"A71F","name":"MODIFIER LETTER LOW INVERTED EXCLAMATION MARK","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA71F"},42864:{"value":"A770","name":"MODIFIER LETTER US","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> A76F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA770"},42888:{"value":"A788","name":"MODIFIER LETTER LOW CIRCUMFLEX ACCENT","category":"Lm","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA788"},43000:{"value":"A7F8","name":"MODIFIER LETTER CAPITAL H WITH STROKE","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0126","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA7F8"},43001:{"value":"A7F9","name":"MODIFIER LETTER SMALL LIGATURE OE","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 0153","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA7F9"},43471:{"value":"A9CF","name":"JAVANESE PANGRANGKEP","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9CF"},43494:{"value":"A9E6","name":"MYANMAR MODIFIER LETTER SHAN REDUPLICATION","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9E6"},43632:{"value":"AA70","name":"MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA70"},43741:{"value":"AADD","name":"TAI VIET SYMBOL SAM","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAADD"},43763:{"value":"AAF3","name":"MEETEI MAYEK SYLLABLE REPETITION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAF3"},43764:{"value":"AAF4","name":"MEETEI MAYEK WORD REPETITION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAF4"},43868:{"value":"AB5C","name":"MODIFIER LETTER SMALL HENG","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> A727","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB5C"},43869:{"value":"AB5D","name":"MODIFIER LETTER SMALL L WITH INVERTED LAZY S","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> AB37","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB5D"},43870:{"value":"AB5E","name":"MODIFIER LETTER SMALL L WITH MIDDLE TILDE","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> 026B","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB5E"},43871:{"value":"AB5F","name":"MODIFIER LETTER SMALL U WITH LEFT HOOK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<super> AB52","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAB5F"},65392:{"value":"FF70","name":"HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<narrow> 30FC","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF70"},65438:{"value":"FF9E","name":"HALFWIDTH KATAKANA VOICED SOUND MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<narrow> 3099","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF9E"},65439:{"value":"FF9F","name":"HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"<narrow> 309A","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF9F"},92992:{"value":"16B40","name":"PAHAWH HMONG SIGN VOS SEEV","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B40"},92993:{"value":"16B41","name":"PAHAWH HMONG SIGN MEEJ SUAB","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B41"},92994:{"value":"16B42","name":"PAHAWH HMONG SIGN VOS NRUA","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B42"},92995:{"value":"16B43","name":"PAHAWH HMONG SIGN IB YAM","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B43"},94099:{"value":"16F93","name":"MIAO LETTER TONE-2","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F93"},94100:{"value":"16F94","name":"MIAO LETTER TONE-3","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F94"},94101:{"value":"16F95","name":"MIAO LETTER TONE-4","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F95"},94102:{"value":"16F96","name":"MIAO LETTER TONE-5","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F96"},94103:{"value":"16F97","name":"MIAO LETTER TONE-6","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F97"},94104:{"value":"16F98","name":"MIAO LETTER TONE-7","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F98"},94105:{"value":"16F99","name":"MIAO LETTER TONE-8","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F99"},94106:{"value":"16F9A","name":"MIAO LETTER REFORMED TONE-1","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F9A"},94107:{"value":"16F9B","name":"MIAO LETTER REFORMED TONE-2","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F9B"},94108:{"value":"16F9C","name":"MIAO LETTER REFORMED TONE-4","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F9C"},94109:{"value":"16F9D","name":"MIAO LETTER REFORMED TONE-5","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F9D"},94110:{"value":"16F9E","name":"MIAO LETTER REFORMED TONE-6","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F9E"},94111:{"value":"16F9F","name":"MIAO LETTER REFORMED TONE-8","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F9F"},94176:{"value":"16FE0","name":"TANGUT ITERATION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6FE0"},94177:{"value":"16FE1","name":"NUSHU ITERATION MARK","category":"Lm","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6FE1"}};

/***/ }),
/* 178 */
/***/ (function(module, exports) {

module.exports={5870:{"value":"16EE","name":"RUNIC ARLAUG SYMBOL","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"17","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16EE"},5871:{"value":"16EF","name":"RUNIC TVIMADUR SYMBOL","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"18","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16EF"},5872:{"value":"16F0","name":"RUNIC BELGTHOR SYMBOL","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"19","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16F0"},8544:{"value":"2160","name":"ROMAN NUMERAL ONE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0049","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2170","titlecase_mapping":"","symbol":"\u2160"},8545:{"value":"2161","name":"ROMAN NUMERAL TWO","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0049 0049","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2171","titlecase_mapping":"","symbol":"\u2161"},8546:{"value":"2162","name":"ROMAN NUMERAL THREE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0049 0049 0049","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2172","titlecase_mapping":"","symbol":"\u2162"},8547:{"value":"2163","name":"ROMAN NUMERAL FOUR","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0049 0056","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2173","titlecase_mapping":"","symbol":"\u2163"},8548:{"value":"2164","name":"ROMAN NUMERAL FIVE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0056","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2174","titlecase_mapping":"","symbol":"\u2164"},8549:{"value":"2165","name":"ROMAN NUMERAL SIX","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0056 0049","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2175","titlecase_mapping":"","symbol":"\u2165"},8550:{"value":"2166","name":"ROMAN NUMERAL SEVEN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0056 0049 0049","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2176","titlecase_mapping":"","symbol":"\u2166"},8551:{"value":"2167","name":"ROMAN NUMERAL EIGHT","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0056 0049 0049 0049","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2177","titlecase_mapping":"","symbol":"\u2167"},8552:{"value":"2168","name":"ROMAN NUMERAL NINE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0049 0058","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2178","titlecase_mapping":"","symbol":"\u2168"},8553:{"value":"2169","name":"ROMAN NUMERAL TEN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0058","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"2179","titlecase_mapping":"","symbol":"\u2169"},8554:{"value":"216A","name":"ROMAN NUMERAL ELEVEN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0058 0049","decimal_digit_value":"","digit_value":"","numeric_value":"11","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"217A","titlecase_mapping":"","symbol":"\u216A"},8555:{"value":"216B","name":"ROMAN NUMERAL TWELVE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0058 0049 0049","decimal_digit_value":"","digit_value":"","numeric_value":"12","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"217B","titlecase_mapping":"","symbol":"\u216B"},8556:{"value":"216C","name":"ROMAN NUMERAL FIFTY","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 004C","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"217C","titlecase_mapping":"","symbol":"\u216C"},8557:{"value":"216D","name":"ROMAN NUMERAL ONE HUNDRED","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0043","decimal_digit_value":"","digit_value":"","numeric_value":"100","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"217D","titlecase_mapping":"","symbol":"\u216D"},8558:{"value":"216E","name":"ROMAN NUMERAL FIVE HUNDRED","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0044","decimal_digit_value":"","digit_value":"","numeric_value":"500","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"217E","titlecase_mapping":"","symbol":"\u216E"},8559:{"value":"216F","name":"ROMAN NUMERAL ONE THOUSAND","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 004D","decimal_digit_value":"","digit_value":"","numeric_value":"1000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"217F","titlecase_mapping":"","symbol":"\u216F"},8560:{"value":"2170","name":"SMALL ROMAN NUMERAL ONE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0069","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2160","lowercase_mapping":"","titlecase_mapping":"2160","symbol":"\u2170"},8561:{"value":"2171","name":"SMALL ROMAN NUMERAL TWO","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0069 0069","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2161","lowercase_mapping":"","titlecase_mapping":"2161","symbol":"\u2171"},8562:{"value":"2172","name":"SMALL ROMAN NUMERAL THREE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0069 0069 0069","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2162","lowercase_mapping":"","titlecase_mapping":"2162","symbol":"\u2172"},8563:{"value":"2173","name":"SMALL ROMAN NUMERAL FOUR","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0069 0076","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2163","lowercase_mapping":"","titlecase_mapping":"2163","symbol":"\u2173"},8564:{"value":"2174","name":"SMALL ROMAN NUMERAL FIVE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0076","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2164","lowercase_mapping":"","titlecase_mapping":"2164","symbol":"\u2174"},8565:{"value":"2175","name":"SMALL ROMAN NUMERAL SIX","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0076 0069","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2165","lowercase_mapping":"","titlecase_mapping":"2165","symbol":"\u2175"},8566:{"value":"2176","name":"SMALL ROMAN NUMERAL SEVEN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0076 0069 0069","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2166","lowercase_mapping":"","titlecase_mapping":"2166","symbol":"\u2176"},8567:{"value":"2177","name":"SMALL ROMAN NUMERAL EIGHT","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0076 0069 0069 0069","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2167","lowercase_mapping":"","titlecase_mapping":"2167","symbol":"\u2177"},8568:{"value":"2178","name":"SMALL ROMAN NUMERAL NINE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0069 0078","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2168","lowercase_mapping":"","titlecase_mapping":"2168","symbol":"\u2178"},8569:{"value":"2179","name":"SMALL ROMAN NUMERAL TEN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0078","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"2169","lowercase_mapping":"","titlecase_mapping":"2169","symbol":"\u2179"},8570:{"value":"217A","name":"SMALL ROMAN NUMERAL ELEVEN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0078 0069","decimal_digit_value":"","digit_value":"","numeric_value":"11","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"216A","lowercase_mapping":"","titlecase_mapping":"216A","symbol":"\u217A"},8571:{"value":"217B","name":"SMALL ROMAN NUMERAL TWELVE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0078 0069 0069","decimal_digit_value":"","digit_value":"","numeric_value":"12","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"216B","lowercase_mapping":"","titlecase_mapping":"216B","symbol":"\u217B"},8572:{"value":"217C","name":"SMALL ROMAN NUMERAL FIFTY","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 006C","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"216C","lowercase_mapping":"","titlecase_mapping":"216C","symbol":"\u217C"},8573:{"value":"217D","name":"SMALL ROMAN NUMERAL ONE HUNDRED","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0063","decimal_digit_value":"","digit_value":"","numeric_value":"100","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"216D","lowercase_mapping":"","titlecase_mapping":"216D","symbol":"\u217D"},8574:{"value":"217E","name":"SMALL ROMAN NUMERAL FIVE HUNDRED","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 0064","decimal_digit_value":"","digit_value":"","numeric_value":"500","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"216E","lowercase_mapping":"","titlecase_mapping":"216E","symbol":"\u217E"},8575:{"value":"217F","name":"SMALL ROMAN NUMERAL ONE THOUSAND","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 006D","decimal_digit_value":"","digit_value":"","numeric_value":"1000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"216F","lowercase_mapping":"","titlecase_mapping":"216F","symbol":"\u217F"},8576:{"value":"2180","name":"ROMAN NUMERAL ONE THOUSAND C D","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2180"},8577:{"value":"2181","name":"ROMAN NUMERAL FIVE THOUSAND","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2181"},8578:{"value":"2182","name":"ROMAN NUMERAL TEN THOUSAND","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2182"},8581:{"value":"2185","name":"ROMAN NUMERAL SIX LATE FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2185"},8582:{"value":"2186","name":"ROMAN NUMERAL FIFTY EARLY FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2186"},8583:{"value":"2187","name":"ROMAN NUMERAL FIFTY THOUSAND","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2187"},8584:{"value":"2188","name":"ROMAN NUMERAL ONE HUNDRED THOUSAND","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"100000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2188"},12295:{"value":"3007","name":"IDEOGRAPHIC NUMBER ZERO","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3007"},12321:{"value":"3021","name":"HANGZHOU NUMERAL ONE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3021"},12322:{"value":"3022","name":"HANGZHOU NUMERAL TWO","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3022"},12323:{"value":"3023","name":"HANGZHOU NUMERAL THREE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3023"},12324:{"value":"3024","name":"HANGZHOU NUMERAL FOUR","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3024"},12325:{"value":"3025","name":"HANGZHOU NUMERAL FIVE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3025"},12326:{"value":"3026","name":"HANGZHOU NUMERAL SIX","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3026"},12327:{"value":"3027","name":"HANGZHOU NUMERAL SEVEN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3027"},12328:{"value":"3028","name":"HANGZHOU NUMERAL EIGHT","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3028"},12329:{"value":"3029","name":"HANGZHOU NUMERAL NINE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3029"},12344:{"value":"3038","name":"HANGZHOU NUMERAL TEN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 5341","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3038"},12345:{"value":"3039","name":"HANGZHOU NUMERAL TWENTY","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 5344","decimal_digit_value":"","digit_value":"","numeric_value":"20","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3039"},12346:{"value":"303A","name":"HANGZHOU NUMERAL THIRTY","category":"Nl","class":"0","bidirectional_category":"L","mapping":"<compat> 5345","decimal_digit_value":"","digit_value":"","numeric_value":"30","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u303A"},42726:{"value":"A6E6","name":"BAMUM LETTER MO","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6E6"},42727:{"value":"A6E7","name":"BAMUM LETTER MBAA","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6E7"},42728:{"value":"A6E8","name":"BAMUM LETTER TET","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6E8"},42729:{"value":"A6E9","name":"BAMUM LETTER KPA","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6E9"},42730:{"value":"A6EA","name":"BAMUM LETTER TEN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6EA"},42731:{"value":"A6EB","name":"BAMUM LETTER NTUU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6EB"},42732:{"value":"A6EC","name":"BAMUM LETTER SAMBA","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6EC"},42733:{"value":"A6ED","name":"BAMUM LETTER FAAMAE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6ED"},42734:{"value":"A6EE","name":"BAMUM LETTER KOVUU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6EE"},42735:{"value":"A6EF","name":"BAMUM LETTER KOGHOM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6EF"},65856:{"value":"10140","name":"GREEK ACROPHONIC ATTIC ONE QUARTER","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0140"},65857:{"value":"10141","name":"GREEK ACROPHONIC ATTIC ONE HALF","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0141"},65858:{"value":"10142","name":"GREEK ACROPHONIC ATTIC ONE DRACHMA","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0142"},65859:{"value":"10143","name":"GREEK ACROPHONIC ATTIC FIVE","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0143"},65860:{"value":"10144","name":"GREEK ACROPHONIC ATTIC FIFTY","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0144"},65861:{"value":"10145","name":"GREEK ACROPHONIC ATTIC FIVE HUNDRED","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"500","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0145"},65862:{"value":"10146","name":"GREEK ACROPHONIC ATTIC FIVE THOUSAND","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0146"},65863:{"value":"10147","name":"GREEK ACROPHONIC ATTIC FIFTY THOUSAND","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0147"},65864:{"value":"10148","name":"GREEK ACROPHONIC ATTIC FIVE TALENTS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0148"},65865:{"value":"10149","name":"GREEK ACROPHONIC ATTIC TEN TALENTS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0149"},65866:{"value":"1014A","name":"GREEK ACROPHONIC ATTIC FIFTY TALENTS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014A"},65867:{"value":"1014B","name":"GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"100","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014B"},65868:{"value":"1014C","name":"GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"500","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014C"},65869:{"value":"1014D","name":"GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014D"},65870:{"value":"1014E","name":"GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014E"},65871:{"value":"1014F","name":"GREEK ACROPHONIC ATTIC FIVE STATERS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014F"},65872:{"value":"10150","name":"GREEK ACROPHONIC ATTIC TEN STATERS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0150"},65873:{"value":"10151","name":"GREEK ACROPHONIC ATTIC FIFTY STATERS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0151"},65874:{"value":"10152","name":"GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"100","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0152"},65875:{"value":"10153","name":"GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"500","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0153"},65876:{"value":"10154","name":"GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0154"},65877:{"value":"10155","name":"GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0155"},65878:{"value":"10156","name":"GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0156"},65879:{"value":"10157","name":"GREEK ACROPHONIC ATTIC TEN MNAS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0157"},65880:{"value":"10158","name":"GREEK ACROPHONIC HERAEUM ONE PLETHRON","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0158"},65881:{"value":"10159","name":"GREEK ACROPHONIC THESPIAN ONE","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0159"},65882:{"value":"1015A","name":"GREEK ACROPHONIC HERMIONIAN ONE","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015A"},65883:{"value":"1015B","name":"GREEK ACROPHONIC EPIDAUREAN TWO","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015B"},65884:{"value":"1015C","name":"GREEK ACROPHONIC THESPIAN TWO","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015C"},65885:{"value":"1015D","name":"GREEK ACROPHONIC CYRENAIC TWO DRACHMAS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015D"},65886:{"value":"1015E","name":"GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015E"},65887:{"value":"1015F","name":"GREEK ACROPHONIC TROEZENIAN FIVE","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015F"},65888:{"value":"10160","name":"GREEK ACROPHONIC TROEZENIAN TEN","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0160"},65889:{"value":"10161","name":"GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0161"},65890:{"value":"10162","name":"GREEK ACROPHONIC HERMIONIAN TEN","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0162"},65891:{"value":"10163","name":"GREEK ACROPHONIC MESSENIAN TEN","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0163"},65892:{"value":"10164","name":"GREEK ACROPHONIC THESPIAN TEN","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0164"},65893:{"value":"10165","name":"GREEK ACROPHONIC THESPIAN THIRTY","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"30","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0165"},65894:{"value":"10166","name":"GREEK ACROPHONIC TROEZENIAN FIFTY","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0166"},65895:{"value":"10167","name":"GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0167"},65896:{"value":"10168","name":"GREEK ACROPHONIC HERMIONIAN FIFTY","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0168"},65897:{"value":"10169","name":"GREEK ACROPHONIC THESPIAN FIFTY","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0169"},65898:{"value":"1016A","name":"GREEK ACROPHONIC THESPIAN ONE HUNDRED","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"100","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016A"},65899:{"value":"1016B","name":"GREEK ACROPHONIC THESPIAN THREE HUNDRED","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"300","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016B"},65900:{"value":"1016C","name":"GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"500","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016C"},65901:{"value":"1016D","name":"GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"500","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016D"},65902:{"value":"1016E","name":"GREEK ACROPHONIC THESPIAN FIVE HUNDRED","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"500","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016E"},65903:{"value":"1016F","name":"GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"500","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016F"},65904:{"value":"10170","name":"GREEK ACROPHONIC NAXIAN FIVE HUNDRED","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"500","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0170"},65905:{"value":"10171","name":"GREEK ACROPHONIC THESPIAN ONE THOUSAND","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0171"},65906:{"value":"10172","name":"GREEK ACROPHONIC THESPIAN FIVE THOUSAND","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0172"},65907:{"value":"10173","name":"GREEK ACROPHONIC DELPHIC FIVE MNAS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0173"},65908:{"value":"10174","name":"GREEK ACROPHONIC STRATIAN FIFTY MNAS","category":"Nl","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0174"},66369:{"value":"10341","name":"GOTHIC LETTER NINETY","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"90","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0341"},66378:{"value":"1034A","name":"GOTHIC LETTER NINE HUNDRED","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"900","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u034A"},66513:{"value":"103D1","name":"OLD PERSIAN NUMBER ONE","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03D1"},66514:{"value":"103D2","name":"OLD PERSIAN NUMBER TWO","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03D2"},66515:{"value":"103D3","name":"OLD PERSIAN NUMBER TEN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"10","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03D3"},66516:{"value":"103D4","name":"OLD PERSIAN NUMBER TWENTY","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"20","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03D4"},66517:{"value":"103D5","name":"OLD PERSIAN NUMBER HUNDRED","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"100","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u03D5"},74752:{"value":"12400","name":"CUNEIFORM NUMERIC SIGN TWO ASH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2400"},74753:{"value":"12401","name":"CUNEIFORM NUMERIC SIGN THREE ASH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2401"},74754:{"value":"12402","name":"CUNEIFORM NUMERIC SIGN FOUR ASH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2402"},74755:{"value":"12403","name":"CUNEIFORM NUMERIC SIGN FIVE ASH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2403"},74756:{"value":"12404","name":"CUNEIFORM NUMERIC SIGN SIX ASH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2404"},74757:{"value":"12405","name":"CUNEIFORM NUMERIC SIGN SEVEN ASH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2405"},74758:{"value":"12406","name":"CUNEIFORM NUMERIC SIGN EIGHT ASH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2406"},74759:{"value":"12407","name":"CUNEIFORM NUMERIC SIGN NINE ASH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2407"},74760:{"value":"12408","name":"CUNEIFORM NUMERIC SIGN THREE DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2408"},74761:{"value":"12409","name":"CUNEIFORM NUMERIC SIGN FOUR DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2409"},74762:{"value":"1240A","name":"CUNEIFORM NUMERIC SIGN FIVE DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u240A"},74763:{"value":"1240B","name":"CUNEIFORM NUMERIC SIGN SIX DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u240B"},74764:{"value":"1240C","name":"CUNEIFORM NUMERIC SIGN SEVEN DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u240C"},74765:{"value":"1240D","name":"CUNEIFORM NUMERIC SIGN EIGHT DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u240D"},74766:{"value":"1240E","name":"CUNEIFORM NUMERIC SIGN NINE DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u240E"},74767:{"value":"1240F","name":"CUNEIFORM NUMERIC SIGN FOUR U","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u240F"},74768:{"value":"12410","name":"CUNEIFORM NUMERIC SIGN FIVE U","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2410"},74769:{"value":"12411","name":"CUNEIFORM NUMERIC SIGN SIX U","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2411"},74770:{"value":"12412","name":"CUNEIFORM NUMERIC SIGN SEVEN U","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2412"},74771:{"value":"12413","name":"CUNEIFORM NUMERIC SIGN EIGHT U","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2413"},74772:{"value":"12414","name":"CUNEIFORM NUMERIC SIGN NINE U","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2414"},74773:{"value":"12415","name":"CUNEIFORM NUMERIC SIGN ONE GESH2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2415"},74774:{"value":"12416","name":"CUNEIFORM NUMERIC SIGN TWO GESH2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2416"},74775:{"value":"12417","name":"CUNEIFORM NUMERIC SIGN THREE GESH2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2417"},74776:{"value":"12418","name":"CUNEIFORM NUMERIC SIGN FOUR GESH2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2418"},74777:{"value":"12419","name":"CUNEIFORM NUMERIC SIGN FIVE GESH2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2419"},74778:{"value":"1241A","name":"CUNEIFORM NUMERIC SIGN SIX GESH2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u241A"},74779:{"value":"1241B","name":"CUNEIFORM NUMERIC SIGN SEVEN GESH2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u241B"},74780:{"value":"1241C","name":"CUNEIFORM NUMERIC SIGN EIGHT GESH2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u241C"},74781:{"value":"1241D","name":"CUNEIFORM NUMERIC SIGN NINE GESH2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u241D"},74782:{"value":"1241E","name":"CUNEIFORM NUMERIC SIGN ONE GESHU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u241E"},74783:{"value":"1241F","name":"CUNEIFORM NUMERIC SIGN TWO GESHU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u241F"},74784:{"value":"12420","name":"CUNEIFORM NUMERIC SIGN THREE GESHU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2420"},74785:{"value":"12421","name":"CUNEIFORM NUMERIC SIGN FOUR GESHU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2421"},74786:{"value":"12422","name":"CUNEIFORM NUMERIC SIGN FIVE GESHU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2422"},74787:{"value":"12423","name":"CUNEIFORM NUMERIC SIGN TWO SHAR2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2423"},74788:{"value":"12424","name":"CUNEIFORM NUMERIC SIGN THREE SHAR2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2424"},74789:{"value":"12425","name":"CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2425"},74790:{"value":"12426","name":"CUNEIFORM NUMERIC SIGN FOUR SHAR2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2426"},74791:{"value":"12427","name":"CUNEIFORM NUMERIC SIGN FIVE SHAR2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2427"},74792:{"value":"12428","name":"CUNEIFORM NUMERIC SIGN SIX SHAR2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2428"},74793:{"value":"12429","name":"CUNEIFORM NUMERIC SIGN SEVEN SHAR2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2429"},74794:{"value":"1242A","name":"CUNEIFORM NUMERIC SIGN EIGHT SHAR2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u242A"},74795:{"value":"1242B","name":"CUNEIFORM NUMERIC SIGN NINE SHAR2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u242B"},74796:{"value":"1242C","name":"CUNEIFORM NUMERIC SIGN ONE SHARU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u242C"},74797:{"value":"1242D","name":"CUNEIFORM NUMERIC SIGN TWO SHARU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u242D"},74798:{"value":"1242E","name":"CUNEIFORM NUMERIC SIGN THREE SHARU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u242E"},74799:{"value":"1242F","name":"CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u242F"},74800:{"value":"12430","name":"CUNEIFORM NUMERIC SIGN FOUR SHARU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2430"},74801:{"value":"12431","name":"CUNEIFORM NUMERIC SIGN FIVE SHARU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2431"},74802:{"value":"12432","name":"CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"216000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2432"},74803:{"value":"12433","name":"CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"432000","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2433"},74804:{"value":"12434","name":"CUNEIFORM NUMERIC SIGN ONE BURU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2434"},74805:{"value":"12435","name":"CUNEIFORM NUMERIC SIGN TWO BURU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2435"},74806:{"value":"12436","name":"CUNEIFORM NUMERIC SIGN THREE BURU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2436"},74807:{"value":"12437","name":"CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2437"},74808:{"value":"12438","name":"CUNEIFORM NUMERIC SIGN FOUR BURU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2438"},74809:{"value":"12439","name":"CUNEIFORM NUMERIC SIGN FIVE BURU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2439"},74810:{"value":"1243A","name":"CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u243A"},74811:{"value":"1243B","name":"CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u243B"},74812:{"value":"1243C","name":"CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u243C"},74813:{"value":"1243D","name":"CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u243D"},74814:{"value":"1243E","name":"CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u243E"},74815:{"value":"1243F","name":"CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u243F"},74816:{"value":"12440","name":"CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2440"},74817:{"value":"12441","name":"CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2441"},74818:{"value":"12442","name":"CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2442"},74819:{"value":"12443","name":"CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2443"},74820:{"value":"12444","name":"CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2444"},74821:{"value":"12445","name":"CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2445"},74822:{"value":"12446","name":"CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2446"},74823:{"value":"12447","name":"CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2447"},74824:{"value":"12448","name":"CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2448"},74825:{"value":"12449","name":"CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2449"},74826:{"value":"1244A","name":"CUNEIFORM NUMERIC SIGN TWO ASH TENU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u244A"},74827:{"value":"1244B","name":"CUNEIFORM NUMERIC SIGN THREE ASH TENU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u244B"},74828:{"value":"1244C","name":"CUNEIFORM NUMERIC SIGN FOUR ASH TENU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u244C"},74829:{"value":"1244D","name":"CUNEIFORM NUMERIC SIGN FIVE ASH TENU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u244D"},74830:{"value":"1244E","name":"CUNEIFORM NUMERIC SIGN SIX ASH TENU","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u244E"},74831:{"value":"1244F","name":"CUNEIFORM NUMERIC SIGN ONE BAN2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u244F"},74832:{"value":"12450","name":"CUNEIFORM NUMERIC SIGN TWO BAN2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2450"},74833:{"value":"12451","name":"CUNEIFORM NUMERIC SIGN THREE BAN2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2451"},74834:{"value":"12452","name":"CUNEIFORM NUMERIC SIGN FOUR BAN2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2452"},74835:{"value":"12453","name":"CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2453"},74836:{"value":"12454","name":"CUNEIFORM NUMERIC SIGN FIVE BAN2","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2454"},74837:{"value":"12455","name":"CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2455"},74838:{"value":"12456","name":"CUNEIFORM NUMERIC SIGN NIGIDAMIN","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2456"},74839:{"value":"12457","name":"CUNEIFORM NUMERIC SIGN NIGIDAESH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2457"},74840:{"value":"12458","name":"CUNEIFORM NUMERIC SIGN ONE ESHE3","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2458"},74841:{"value":"12459","name":"CUNEIFORM NUMERIC SIGN TWO ESHE3","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2459"},74842:{"value":"1245A","name":"CUNEIFORM NUMERIC SIGN ONE THIRD DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u245A"},74843:{"value":"1245B","name":"CUNEIFORM NUMERIC SIGN TWO THIRDS DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2/3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u245B"},74844:{"value":"1245C","name":"CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5/6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u245C"},74845:{"value":"1245D","name":"CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u245D"},74846:{"value":"1245E","name":"CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2/3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u245E"},74847:{"value":"1245F","name":"CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u245F"},74848:{"value":"12460","name":"CUNEIFORM NUMERIC SIGN ONE QUARTER ASH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2460"},74849:{"value":"12461","name":"CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2461"},74850:{"value":"12462","name":"CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2462"},74851:{"value":"12463","name":"CUNEIFORM NUMERIC SIGN ONE QUARTER GUR","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2463"},74852:{"value":"12464","name":"CUNEIFORM NUMERIC SIGN ONE HALF GUR","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2464"},74853:{"value":"12465","name":"CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"1/3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2465"},74854:{"value":"12466","name":"CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"2/3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2466"},74855:{"value":"12467","name":"CUNEIFORM NUMERIC SIGN ELAMITE FORTY","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"40","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2467"},74856:{"value":"12468","name":"CUNEIFORM NUMERIC SIGN ELAMITE FIFTY","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"50","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2468"},74857:{"value":"12469","name":"CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2469"},74858:{"value":"1246A","name":"CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u246A"},74859:{"value":"1246B","name":"CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u246B"},74860:{"value":"1246C","name":"CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u246C"},74861:{"value":"1246D","name":"CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u246D"},74862:{"value":"1246E","name":"CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM","category":"Nl","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u246E"}};

/***/ }),
/* 179 */
/***/ (function(module, exports) {

module.exports={768:{"value":"0300","name":"COMBINING GRAVE ACCENT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0300"},769:{"value":"0301","name":"COMBINING ACUTE ACCENT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0301"},770:{"value":"0302","name":"COMBINING CIRCUMFLEX ACCENT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING CIRCUMFLEX","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0302"},771:{"value":"0303","name":"COMBINING TILDE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING TILDE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0303"},772:{"value":"0304","name":"COMBINING MACRON","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING MACRON","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0304"},773:{"value":"0305","name":"COMBINING OVERLINE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING OVERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0305"},774:{"value":"0306","name":"COMBINING BREVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING BREVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0306"},775:{"value":"0307","name":"COMBINING DOT ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING DOT ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0307"},776:{"value":"0308","name":"COMBINING DIAERESIS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING DIAERESIS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0308"},777:{"value":"0309","name":"COMBINING HOOK ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING HOOK ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0309"},778:{"value":"030A","name":"COMBINING RING ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING RING ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030A"},779:{"value":"030B","name":"COMBINING DOUBLE ACUTE ACCENT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING DOUBLE ACUTE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030B"},780:{"value":"030C","name":"COMBINING CARON","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING HACEK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030C"},781:{"value":"030D","name":"COMBINING VERTICAL LINE ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING VERTICAL LINE ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030D"},782:{"value":"030E","name":"COMBINING DOUBLE VERTICAL LINE ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING DOUBLE VERTICAL LINE ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030E"},783:{"value":"030F","name":"COMBINING DOUBLE GRAVE ACCENT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING DOUBLE GRAVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u030F"},784:{"value":"0310","name":"COMBINING CANDRABINDU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING CANDRABINDU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0310"},785:{"value":"0311","name":"COMBINING INVERTED BREVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING INVERTED BREVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0311"},786:{"value":"0312","name":"COMBINING TURNED COMMA ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING TURNED COMMA ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0312"},787:{"value":"0313","name":"COMBINING COMMA ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING COMMA ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0313"},788:{"value":"0314","name":"COMBINING REVERSED COMMA ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING REVERSED COMMA ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0314"},789:{"value":"0315","name":"COMBINING COMMA ABOVE RIGHT","category":"Mn","class":"232","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING COMMA ABOVE RIGHT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0315"},790:{"value":"0316","name":"COMBINING GRAVE ACCENT BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING GRAVE BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0316"},791:{"value":"0317","name":"COMBINING ACUTE ACCENT BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING ACUTE BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0317"},792:{"value":"0318","name":"COMBINING LEFT TACK BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING LEFT TACK BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0318"},793:{"value":"0319","name":"COMBINING RIGHT TACK BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING RIGHT TACK BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0319"},794:{"value":"031A","name":"COMBINING LEFT ANGLE ABOVE","category":"Mn","class":"232","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING LEFT ANGLE ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031A"},795:{"value":"031B","name":"COMBINING HORN","category":"Mn","class":"216","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING HORN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031B"},796:{"value":"031C","name":"COMBINING LEFT HALF RING BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING LEFT HALF RING BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031C"},797:{"value":"031D","name":"COMBINING UP TACK BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING UP TACK BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031D"},798:{"value":"031E","name":"COMBINING DOWN TACK BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING DOWN TACK BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031E"},799:{"value":"031F","name":"COMBINING PLUS SIGN BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING PLUS SIGN BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u031F"},800:{"value":"0320","name":"COMBINING MINUS SIGN BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING MINUS SIGN BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0320"},801:{"value":"0321","name":"COMBINING PALATALIZED HOOK BELOW","category":"Mn","class":"202","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING PALATALIZED HOOK BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0321"},802:{"value":"0322","name":"COMBINING RETROFLEX HOOK BELOW","category":"Mn","class":"202","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING RETROFLEX HOOK BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0322"},803:{"value":"0323","name":"COMBINING DOT BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING DOT BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0323"},804:{"value":"0324","name":"COMBINING DIAERESIS BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING DOUBLE DOT BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0324"},805:{"value":"0325","name":"COMBINING RING BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING RING BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0325"},806:{"value":"0326","name":"COMBINING COMMA BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING COMMA BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0326"},807:{"value":"0327","name":"COMBINING CEDILLA","category":"Mn","class":"202","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING CEDILLA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0327"},808:{"value":"0328","name":"COMBINING OGONEK","category":"Mn","class":"202","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING OGONEK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0328"},809:{"value":"0329","name":"COMBINING VERTICAL LINE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING VERTICAL LINE BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0329"},810:{"value":"032A","name":"COMBINING BRIDGE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING BRIDGE BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u032A"},811:{"value":"032B","name":"COMBINING INVERTED DOUBLE ARCH BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING INVERTED DOUBLE ARCH BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u032B"},812:{"value":"032C","name":"COMBINING CARON BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING HACEK BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u032C"},813:{"value":"032D","name":"COMBINING CIRCUMFLEX ACCENT BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING CIRCUMFLEX BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u032D"},814:{"value":"032E","name":"COMBINING BREVE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING BREVE BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u032E"},815:{"value":"032F","name":"COMBINING INVERTED BREVE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING INVERTED BREVE BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u032F"},816:{"value":"0330","name":"COMBINING TILDE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING TILDE BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0330"},817:{"value":"0331","name":"COMBINING MACRON BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING MACRON BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0331"},818:{"value":"0332","name":"COMBINING LOW LINE","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING UNDERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0332"},819:{"value":"0333","name":"COMBINING DOUBLE LOW LINE","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING DOUBLE UNDERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0333"},820:{"value":"0334","name":"COMBINING TILDE OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING TILDE OVERLAY","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0334"},821:{"value":"0335","name":"COMBINING SHORT STROKE OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING SHORT BAR OVERLAY","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0335"},822:{"value":"0336","name":"COMBINING LONG STROKE OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING LONG BAR OVERLAY","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0336"},823:{"value":"0337","name":"COMBINING SHORT SOLIDUS OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING SHORT SLASH OVERLAY","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0337"},824:{"value":"0338","name":"COMBINING LONG SOLIDUS OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING LONG SLASH OVERLAY","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0338"},825:{"value":"0339","name":"COMBINING RIGHT HALF RING BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING RIGHT HALF RING BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0339"},826:{"value":"033A","name":"COMBINING INVERTED BRIDGE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING INVERTED BRIDGE BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033A"},827:{"value":"033B","name":"COMBINING SQUARE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING SQUARE BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033B"},828:{"value":"033C","name":"COMBINING SEAGULL BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING SEAGULL BELOW","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033C"},829:{"value":"033D","name":"COMBINING X ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING X ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033D"},830:{"value":"033E","name":"COMBINING VERTICAL TILDE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING VERTICAL TILDE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033E"},831:{"value":"033F","name":"COMBINING DOUBLE OVERLINE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING DOUBLE OVERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u033F"},832:{"value":"0340","name":"COMBINING GRAVE TONE MARK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"0300","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING GRAVE TONE MARK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0340"},833:{"value":"0341","name":"COMBINING ACUTE TONE MARK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING ACUTE TONE MARK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0341"},834:{"value":"0342","name":"COMBINING GREEK PERISPOMENI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0342"},835:{"value":"0343","name":"COMBINING GREEK KORONIS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"0313","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0343"},836:{"value":"0344","name":"COMBINING GREEK DIALYTIKA TONOS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"0308 0301","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK NON-SPACING DIAERESIS TONOS","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0344"},837:{"value":"0345","name":"COMBINING GREEK YPOGEGRAMMENI","category":"Mn","class":"240","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GREEK NON-SPACING IOTA BELOW","comment":"","uppercase_mapping":"0399","lowercase_mapping":"","titlecase_mapping":"0399","symbol":"\u0345"},838:{"value":"0346","name":"COMBINING BRIDGE ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0346"},839:{"value":"0347","name":"COMBINING EQUALS SIGN BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0347"},840:{"value":"0348","name":"COMBINING DOUBLE VERTICAL LINE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0348"},841:{"value":"0349","name":"COMBINING LEFT ANGLE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0349"},842:{"value":"034A","name":"COMBINING NOT TILDE ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u034A"},843:{"value":"034B","name":"COMBINING HOMOTHETIC ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u034B"},844:{"value":"034C","name":"COMBINING ALMOST EQUAL TO ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u034C"},845:{"value":"034D","name":"COMBINING LEFT RIGHT ARROW BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u034D"},846:{"value":"034E","name":"COMBINING UPWARDS ARROW BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u034E"},847:{"value":"034F","name":"COMBINING GRAPHEME JOINER","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u034F"},848:{"value":"0350","name":"COMBINING RIGHT ARROWHEAD ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0350"},849:{"value":"0351","name":"COMBINING LEFT HALF RING ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0351"},850:{"value":"0352","name":"COMBINING FERMATA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0352"},851:{"value":"0353","name":"COMBINING X BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0353"},852:{"value":"0354","name":"COMBINING LEFT ARROWHEAD BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0354"},853:{"value":"0355","name":"COMBINING RIGHT ARROWHEAD BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0355"},854:{"value":"0356","name":"COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0356"},855:{"value":"0357","name":"COMBINING RIGHT HALF RING ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0357"},856:{"value":"0358","name":"COMBINING DOT ABOVE RIGHT","category":"Mn","class":"232","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0358"},857:{"value":"0359","name":"COMBINING ASTERISK BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0359"},858:{"value":"035A","name":"COMBINING DOUBLE RING BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035A"},859:{"value":"035B","name":"COMBINING ZIGZAG ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035B"},860:{"value":"035C","name":"COMBINING DOUBLE BREVE BELOW","category":"Mn","class":"233","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035C"},861:{"value":"035D","name":"COMBINING DOUBLE BREVE","category":"Mn","class":"234","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035D"},862:{"value":"035E","name":"COMBINING DOUBLE MACRON","category":"Mn","class":"234","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035E"},863:{"value":"035F","name":"COMBINING DOUBLE MACRON BELOW","category":"Mn","class":"233","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u035F"},864:{"value":"0360","name":"COMBINING DOUBLE TILDE","category":"Mn","class":"234","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0360"},865:{"value":"0361","name":"COMBINING DOUBLE INVERTED BREVE","category":"Mn","class":"234","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0361"},866:{"value":"0362","name":"COMBINING DOUBLE RIGHTWARDS ARROW BELOW","category":"Mn","class":"233","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0362"},867:{"value":"0363","name":"COMBINING LATIN SMALL LETTER A","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0363"},868:{"value":"0364","name":"COMBINING LATIN SMALL LETTER E","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0364"},869:{"value":"0365","name":"COMBINING LATIN SMALL LETTER I","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0365"},870:{"value":"0366","name":"COMBINING LATIN SMALL LETTER O","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0366"},871:{"value":"0367","name":"COMBINING LATIN SMALL LETTER U","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0367"},872:{"value":"0368","name":"COMBINING LATIN SMALL LETTER C","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0368"},873:{"value":"0369","name":"COMBINING LATIN SMALL LETTER D","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0369"},874:{"value":"036A","name":"COMBINING LATIN SMALL LETTER H","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036A"},875:{"value":"036B","name":"COMBINING LATIN SMALL LETTER M","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036B"},876:{"value":"036C","name":"COMBINING LATIN SMALL LETTER R","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036C"},877:{"value":"036D","name":"COMBINING LATIN SMALL LETTER T","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036D"},878:{"value":"036E","name":"COMBINING LATIN SMALL LETTER V","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036E"},879:{"value":"036F","name":"COMBINING LATIN SMALL LETTER X","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u036F"},1155:{"value":"0483","name":"COMBINING CYRILLIC TITLO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC NON-SPACING TITLO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0483"},1156:{"value":"0484","name":"COMBINING CYRILLIC PALATALIZATION","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC NON-SPACING PALATALIZATION","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0484"},1157:{"value":"0485","name":"COMBINING CYRILLIC DASIA PNEUMATA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC NON-SPACING DASIA PNEUMATA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0485"},1158:{"value":"0486","name":"COMBINING CYRILLIC PSILI PNEUMATA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"CYRILLIC NON-SPACING PSILI PNEUMATA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0486"},1159:{"value":"0487","name":"COMBINING CYRILLIC POKRYTIE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0487"},1425:{"value":"0591","name":"HEBREW ACCENT ETNAHTA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0591"},1426:{"value":"0592","name":"HEBREW ACCENT SEGOL","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0592"},1427:{"value":"0593","name":"HEBREW ACCENT SHALSHELET","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0593"},1428:{"value":"0594","name":"HEBREW ACCENT ZAQEF QATAN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0594"},1429:{"value":"0595","name":"HEBREW ACCENT ZAQEF GADOL","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0595"},1430:{"value":"0596","name":"HEBREW ACCENT TIPEHA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0596"},1431:{"value":"0597","name":"HEBREW ACCENT REVIA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0597"},1432:{"value":"0598","name":"HEBREW ACCENT ZARQA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0598"},1433:{"value":"0599","name":"HEBREW ACCENT PASHTA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0599"},1434:{"value":"059A","name":"HEBREW ACCENT YETIV","category":"Mn","class":"222","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u059A"},1435:{"value":"059B","name":"HEBREW ACCENT TEVIR","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u059B"},1436:{"value":"059C","name":"HEBREW ACCENT GERESH","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u059C"},1437:{"value":"059D","name":"HEBREW ACCENT GERESH MUQDAM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u059D"},1438:{"value":"059E","name":"HEBREW ACCENT GERSHAYIM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u059E"},1439:{"value":"059F","name":"HEBREW ACCENT QARNEY PARA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u059F"},1440:{"value":"05A0","name":"HEBREW ACCENT TELISHA GEDOLA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05A0"},1441:{"value":"05A1","name":"HEBREW ACCENT PAZER","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05A1"},1442:{"value":"05A2","name":"HEBREW ACCENT ATNAH HAFUKH","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05A2"},1443:{"value":"05A3","name":"HEBREW ACCENT MUNAH","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05A3"},1444:{"value":"05A4","name":"HEBREW ACCENT MAHAPAKH","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05A4"},1445:{"value":"05A5","name":"HEBREW ACCENT MERKHA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05A5"},1446:{"value":"05A6","name":"HEBREW ACCENT MERKHA KEFULA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05A6"},1447:{"value":"05A7","name":"HEBREW ACCENT DARGA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05A7"},1448:{"value":"05A8","name":"HEBREW ACCENT QADMA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05A8"},1449:{"value":"05A9","name":"HEBREW ACCENT TELISHA QETANA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05A9"},1450:{"value":"05AA","name":"HEBREW ACCENT YERAH BEN YOMO","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05AA"},1451:{"value":"05AB","name":"HEBREW ACCENT OLE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05AB"},1452:{"value":"05AC","name":"HEBREW ACCENT ILUY","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05AC"},1453:{"value":"05AD","name":"HEBREW ACCENT DEHI","category":"Mn","class":"222","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05AD"},1454:{"value":"05AE","name":"HEBREW ACCENT ZINOR","category":"Mn","class":"228","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05AE"},1455:{"value":"05AF","name":"HEBREW MARK MASORA CIRCLE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05AF"},1456:{"value":"05B0","name":"HEBREW POINT SHEVA","category":"Mn","class":"10","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05B0"},1457:{"value":"05B1","name":"HEBREW POINT HATAF SEGOL","category":"Mn","class":"11","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05B1"},1458:{"value":"05B2","name":"HEBREW POINT HATAF PATAH","category":"Mn","class":"12","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05B2"},1459:{"value":"05B3","name":"HEBREW POINT HATAF QAMATS","category":"Mn","class":"13","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05B3"},1460:{"value":"05B4","name":"HEBREW POINT HIRIQ","category":"Mn","class":"14","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05B4"},1461:{"value":"05B5","name":"HEBREW POINT TSERE","category":"Mn","class":"15","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05B5"},1462:{"value":"05B6","name":"HEBREW POINT SEGOL","category":"Mn","class":"16","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05B6"},1463:{"value":"05B7","name":"HEBREW POINT PATAH","category":"Mn","class":"17","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05B7"},1464:{"value":"05B8","name":"HEBREW POINT QAMATS","category":"Mn","class":"18","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05B8"},1465:{"value":"05B9","name":"HEBREW POINT HOLAM","category":"Mn","class":"19","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05B9"},1466:{"value":"05BA","name":"HEBREW POINT HOLAM HASER FOR VAV","category":"Mn","class":"19","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05BA"},1467:{"value":"05BB","name":"HEBREW POINT QUBUTS","category":"Mn","class":"20","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05BB"},1468:{"value":"05BC","name":"HEBREW POINT DAGESH OR MAPIQ","category":"Mn","class":"21","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HEBREW POINT DAGESH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05BC"},1469:{"value":"05BD","name":"HEBREW POINT METEG","category":"Mn","class":"22","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05BD"},1471:{"value":"05BF","name":"HEBREW POINT RAFE","category":"Mn","class":"23","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05BF"},1473:{"value":"05C1","name":"HEBREW POINT SHIN DOT","category":"Mn","class":"24","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05C1"},1474:{"value":"05C2","name":"HEBREW POINT SIN DOT","category":"Mn","class":"25","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05C2"},1476:{"value":"05C4","name":"HEBREW MARK UPPER DOT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05C4"},1477:{"value":"05C5","name":"HEBREW MARK LOWER DOT","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05C5"},1479:{"value":"05C7","name":"HEBREW POINT QAMATS QATAN","category":"Mn","class":"18","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u05C7"},1552:{"value":"0610","name":"ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0610"},1553:{"value":"0611","name":"ARABIC SIGN ALAYHE ASSALLAM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0611"},1554:{"value":"0612","name":"ARABIC SIGN RAHMATULLAH ALAYHE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0612"},1555:{"value":"0613","name":"ARABIC SIGN RADI ALLAHOU ANHU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0613"},1556:{"value":"0614","name":"ARABIC SIGN TAKHALLUS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0614"},1557:{"value":"0615","name":"ARABIC SMALL HIGH TAH","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0615"},1558:{"value":"0616","name":"ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0616"},1559:{"value":"0617","name":"ARABIC SMALL HIGH ZAIN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0617"},1560:{"value":"0618","name":"ARABIC SMALL FATHA","category":"Mn","class":"30","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0618"},1561:{"value":"0619","name":"ARABIC SMALL DAMMA","category":"Mn","class":"31","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0619"},1562:{"value":"061A","name":"ARABIC SMALL KASRA","category":"Mn","class":"32","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u061A"},1611:{"value":"064B","name":"ARABIC FATHATAN","category":"Mn","class":"27","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064B"},1612:{"value":"064C","name":"ARABIC DAMMATAN","category":"Mn","class":"28","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064C"},1613:{"value":"064D","name":"ARABIC KASRATAN","category":"Mn","class":"29","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064D"},1614:{"value":"064E","name":"ARABIC FATHA","category":"Mn","class":"30","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC FATHAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064E"},1615:{"value":"064F","name":"ARABIC DAMMA","category":"Mn","class":"31","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC DAMMAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u064F"},1616:{"value":"0650","name":"ARABIC KASRA","category":"Mn","class":"32","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC KASRAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0650"},1617:{"value":"0651","name":"ARABIC SHADDA","category":"Mn","class":"33","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC SHADDAH","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0651"},1618:{"value":"0652","name":"ARABIC SUKUN","category":"Mn","class":"34","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0652"},1619:{"value":"0653","name":"ARABIC MADDAH ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0653"},1620:{"value":"0654","name":"ARABIC HAMZA ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0654"},1621:{"value":"0655","name":"ARABIC HAMZA BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0655"},1622:{"value":"0656","name":"ARABIC SUBSCRIPT ALEF","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0656"},1623:{"value":"0657","name":"ARABIC INVERTED DAMMA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0657"},1624:{"value":"0658","name":"ARABIC MARK NOON GHUNNA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0658"},1625:{"value":"0659","name":"ARABIC ZWARAKAY","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0659"},1626:{"value":"065A","name":"ARABIC VOWEL SIGN SMALL V ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065A"},1627:{"value":"065B","name":"ARABIC VOWEL SIGN INVERTED SMALL V ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065B"},1628:{"value":"065C","name":"ARABIC VOWEL SIGN DOT BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065C"},1629:{"value":"065D","name":"ARABIC REVERSED DAMMA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065D"},1630:{"value":"065E","name":"ARABIC FATHA WITH TWO DOTS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065E"},1631:{"value":"065F","name":"ARABIC WAVY HAMZA BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u065F"},1648:{"value":"0670","name":"ARABIC LETTER SUPERSCRIPT ALEF","category":"Mn","class":"35","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"ARABIC ALEF ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0670"},1750:{"value":"06D6","name":"ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D6"},1751:{"value":"06D7","name":"ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D7"},1752:{"value":"06D8","name":"ARABIC SMALL HIGH MEEM INITIAL FORM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D8"},1753:{"value":"06D9","name":"ARABIC SMALL HIGH LAM ALEF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06D9"},1754:{"value":"06DA","name":"ARABIC SMALL HIGH JEEM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06DA"},1755:{"value":"06DB","name":"ARABIC SMALL HIGH THREE DOTS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06DB"},1756:{"value":"06DC","name":"ARABIC SMALL HIGH SEEN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06DC"},1759:{"value":"06DF","name":"ARABIC SMALL HIGH ROUNDED ZERO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06DF"},1760:{"value":"06E0","name":"ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E0"},1761:{"value":"06E1","name":"ARABIC SMALL HIGH DOTLESS HEAD OF KHAH","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E1"},1762:{"value":"06E2","name":"ARABIC SMALL HIGH MEEM ISOLATED FORM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E2"},1763:{"value":"06E3","name":"ARABIC SMALL LOW SEEN","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E3"},1764:{"value":"06E4","name":"ARABIC SMALL HIGH MADDA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E4"},1767:{"value":"06E7","name":"ARABIC SMALL HIGH YEH","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E7"},1768:{"value":"06E8","name":"ARABIC SMALL HIGH NOON","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06E8"},1770:{"value":"06EA","name":"ARABIC EMPTY CENTRE LOW STOP","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06EA"},1771:{"value":"06EB","name":"ARABIC EMPTY CENTRE HIGH STOP","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06EB"},1772:{"value":"06EC","name":"ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06EC"},1773:{"value":"06ED","name":"ARABIC SMALL LOW MEEM","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06ED"},1809:{"value":"0711","name":"SYRIAC LETTER SUPERSCRIPT ALAPH","category":"Mn","class":"36","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0711"},1840:{"value":"0730","name":"SYRIAC PTHAHA ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0730"},1841:{"value":"0731","name":"SYRIAC PTHAHA BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0731"},1842:{"value":"0732","name":"SYRIAC PTHAHA DOTTED","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0732"},1843:{"value":"0733","name":"SYRIAC ZQAPHA ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0733"},1844:{"value":"0734","name":"SYRIAC ZQAPHA BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0734"},1845:{"value":"0735","name":"SYRIAC ZQAPHA DOTTED","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0735"},1846:{"value":"0736","name":"SYRIAC RBASA ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0736"},1847:{"value":"0737","name":"SYRIAC RBASA BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0737"},1848:{"value":"0738","name":"SYRIAC DOTTED ZLAMA HORIZONTAL","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0738"},1849:{"value":"0739","name":"SYRIAC DOTTED ZLAMA ANGULAR","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0739"},1850:{"value":"073A","name":"SYRIAC HBASA ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u073A"},1851:{"value":"073B","name":"SYRIAC HBASA BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u073B"},1852:{"value":"073C","name":"SYRIAC HBASA-ESASA DOTTED","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u073C"},1853:{"value":"073D","name":"SYRIAC ESASA ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u073D"},1854:{"value":"073E","name":"SYRIAC ESASA BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u073E"},1855:{"value":"073F","name":"SYRIAC RWAHA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u073F"},1856:{"value":"0740","name":"SYRIAC FEMININE DOT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0740"},1857:{"value":"0741","name":"SYRIAC QUSHSHAYA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0741"},1858:{"value":"0742","name":"SYRIAC RUKKAKHA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0742"},1859:{"value":"0743","name":"SYRIAC TWO VERTICAL DOTS ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0743"},1860:{"value":"0744","name":"SYRIAC TWO VERTICAL DOTS BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0744"},1861:{"value":"0745","name":"SYRIAC THREE DOTS ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0745"},1862:{"value":"0746","name":"SYRIAC THREE DOTS BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0746"},1863:{"value":"0747","name":"SYRIAC OBLIQUE LINE ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0747"},1864:{"value":"0748","name":"SYRIAC OBLIQUE LINE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0748"},1865:{"value":"0749","name":"SYRIAC MUSIC","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0749"},1866:{"value":"074A","name":"SYRIAC BARREKH","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u074A"},1958:{"value":"07A6","name":"THAANA ABAFILI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07A6"},1959:{"value":"07A7","name":"THAANA AABAAFILI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07A7"},1960:{"value":"07A8","name":"THAANA IBIFILI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07A8"},1961:{"value":"07A9","name":"THAANA EEBEEFILI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07A9"},1962:{"value":"07AA","name":"THAANA UBUFILI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07AA"},1963:{"value":"07AB","name":"THAANA OOBOOFILI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07AB"},1964:{"value":"07AC","name":"THAANA EBEFILI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07AC"},1965:{"value":"07AD","name":"THAANA EYBEYFILI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07AD"},1966:{"value":"07AE","name":"THAANA OBOFILI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07AE"},1967:{"value":"07AF","name":"THAANA OABOAFILI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07AF"},1968:{"value":"07B0","name":"THAANA SUKUN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07B0"},2027:{"value":"07EB","name":"NKO COMBINING SHORT HIGH TONE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07EB"},2028:{"value":"07EC","name":"NKO COMBINING SHORT LOW TONE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07EC"},2029:{"value":"07ED","name":"NKO COMBINING SHORT RISING TONE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07ED"},2030:{"value":"07EE","name":"NKO COMBINING LONG DESCENDING TONE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07EE"},2031:{"value":"07EF","name":"NKO COMBINING LONG HIGH TONE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07EF"},2032:{"value":"07F0","name":"NKO COMBINING LONG LOW TONE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07F0"},2033:{"value":"07F1","name":"NKO COMBINING LONG RISING TONE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07F1"},2034:{"value":"07F2","name":"NKO COMBINING NASALIZATION MARK","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07F2"},2035:{"value":"07F3","name":"NKO COMBINING DOUBLE DOT ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07F3"},2045:{"value":"07FD","name":"NKO DANTAYALAN","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07FD"},2070:{"value":"0816","name":"SAMARITAN MARK IN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0816"},2071:{"value":"0817","name":"SAMARITAN MARK IN-ALAF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0817"},2072:{"value":"0818","name":"SAMARITAN MARK OCCLUSION","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0818"},2073:{"value":"0819","name":"SAMARITAN MARK DAGESH","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0819"},2075:{"value":"081B","name":"SAMARITAN MARK EPENTHETIC YUT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081B"},2076:{"value":"081C","name":"SAMARITAN VOWEL SIGN LONG E","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081C"},2077:{"value":"081D","name":"SAMARITAN VOWEL SIGN E","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081D"},2078:{"value":"081E","name":"SAMARITAN VOWEL SIGN OVERLONG AA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081E"},2079:{"value":"081F","name":"SAMARITAN VOWEL SIGN LONG AA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u081F"},2080:{"value":"0820","name":"SAMARITAN VOWEL SIGN AA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0820"},2081:{"value":"0821","name":"SAMARITAN VOWEL SIGN OVERLONG A","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0821"},2082:{"value":"0822","name":"SAMARITAN VOWEL SIGN LONG A","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0822"},2083:{"value":"0823","name":"SAMARITAN VOWEL SIGN A","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0823"},2085:{"value":"0825","name":"SAMARITAN VOWEL SIGN SHORT A","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0825"},2086:{"value":"0826","name":"SAMARITAN VOWEL SIGN LONG U","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0826"},2087:{"value":"0827","name":"SAMARITAN VOWEL SIGN U","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0827"},2089:{"value":"0829","name":"SAMARITAN VOWEL SIGN LONG I","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0829"},2090:{"value":"082A","name":"SAMARITAN VOWEL SIGN I","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u082A"},2091:{"value":"082B","name":"SAMARITAN VOWEL SIGN O","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u082B"},2092:{"value":"082C","name":"SAMARITAN VOWEL SIGN SUKUN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u082C"},2093:{"value":"082D","name":"SAMARITAN MARK NEQUDAA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u082D"},2137:{"value":"0859","name":"MANDAIC AFFRICATION MARK","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0859"},2138:{"value":"085A","name":"MANDAIC VOCALIZATION MARK","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u085A"},2139:{"value":"085B","name":"MANDAIC GEMINATION MARK","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u085B"},2259:{"value":"08D3","name":"ARABIC SMALL LOW WAW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08D3"},2260:{"value":"08D4","name":"ARABIC SMALL HIGH WORD AR-RUB","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08D4"},2261:{"value":"08D5","name":"ARABIC SMALL HIGH SAD","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08D5"},2262:{"value":"08D6","name":"ARABIC SMALL HIGH AIN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08D6"},2263:{"value":"08D7","name":"ARABIC SMALL HIGH QAF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08D7"},2264:{"value":"08D8","name":"ARABIC SMALL HIGH NOON WITH KASRA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08D8"},2265:{"value":"08D9","name":"ARABIC SMALL LOW NOON WITH KASRA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08D9"},2266:{"value":"08DA","name":"ARABIC SMALL HIGH WORD ATH-THALATHA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08DA"},2267:{"value":"08DB","name":"ARABIC SMALL HIGH WORD AS-SAJDA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08DB"},2268:{"value":"08DC","name":"ARABIC SMALL HIGH WORD AN-NISF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08DC"},2269:{"value":"08DD","name":"ARABIC SMALL HIGH WORD SAKTA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08DD"},2270:{"value":"08DE","name":"ARABIC SMALL HIGH WORD QIF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08DE"},2271:{"value":"08DF","name":"ARABIC SMALL HIGH WORD WAQFA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08DF"},2272:{"value":"08E0","name":"ARABIC SMALL HIGH FOOTNOTE MARKER","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E0"},2273:{"value":"08E1","name":"ARABIC SMALL HIGH SIGN SAFHA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E1"},2275:{"value":"08E3","name":"ARABIC TURNED DAMMA BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E3"},2276:{"value":"08E4","name":"ARABIC CURLY FATHA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E4"},2277:{"value":"08E5","name":"ARABIC CURLY DAMMA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E5"},2278:{"value":"08E6","name":"ARABIC CURLY KASRA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E6"},2279:{"value":"08E7","name":"ARABIC CURLY FATHATAN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E7"},2280:{"value":"08E8","name":"ARABIC CURLY DAMMATAN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E8"},2281:{"value":"08E9","name":"ARABIC CURLY KASRATAN","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08E9"},2282:{"value":"08EA","name":"ARABIC TONE ONE DOT ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08EA"},2283:{"value":"08EB","name":"ARABIC TONE TWO DOTS ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08EB"},2284:{"value":"08EC","name":"ARABIC TONE LOOP ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08EC"},2285:{"value":"08ED","name":"ARABIC TONE ONE DOT BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08ED"},2286:{"value":"08EE","name":"ARABIC TONE TWO DOTS BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08EE"},2287:{"value":"08EF","name":"ARABIC TONE LOOP BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08EF"},2288:{"value":"08F0","name":"ARABIC OPEN FATHATAN","category":"Mn","class":"27","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F0"},2289:{"value":"08F1","name":"ARABIC OPEN DAMMATAN","category":"Mn","class":"28","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F1"},2290:{"value":"08F2","name":"ARABIC OPEN KASRATAN","category":"Mn","class":"29","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F2"},2291:{"value":"08F3","name":"ARABIC SMALL HIGH WAW","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F3"},2292:{"value":"08F4","name":"ARABIC FATHA WITH RING","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F4"},2293:{"value":"08F5","name":"ARABIC FATHA WITH DOT ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F5"},2294:{"value":"08F6","name":"ARABIC KASRA WITH DOT BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F6"},2295:{"value":"08F7","name":"ARABIC LEFT ARROWHEAD ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F7"},2296:{"value":"08F8","name":"ARABIC RIGHT ARROWHEAD ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F8"},2297:{"value":"08F9","name":"ARABIC LEFT ARROWHEAD BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08F9"},2298:{"value":"08FA","name":"ARABIC RIGHT ARROWHEAD BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08FA"},2299:{"value":"08FB","name":"ARABIC DOUBLE RIGHT ARROWHEAD ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08FB"},2300:{"value":"08FC","name":"ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08FC"},2301:{"value":"08FD","name":"ARABIC RIGHT ARROWHEAD ABOVE WITH DOT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08FD"},2302:{"value":"08FE","name":"ARABIC DAMMA WITH DOT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08FE"},2303:{"value":"08FF","name":"ARABIC MARK SIDEWAYS NOON GHUNNA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u08FF"},2304:{"value":"0900","name":"DEVANAGARI SIGN INVERTED CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0900"},2305:{"value":"0901","name":"DEVANAGARI SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0901"},2306:{"value":"0902","name":"DEVANAGARI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0902"},2362:{"value":"093A","name":"DEVANAGARI VOWEL SIGN OE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u093A"},2364:{"value":"093C","name":"DEVANAGARI SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u093C"},2369:{"value":"0941","name":"DEVANAGARI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0941"},2370:{"value":"0942","name":"DEVANAGARI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0942"},2371:{"value":"0943","name":"DEVANAGARI VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0943"},2372:{"value":"0944","name":"DEVANAGARI VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0944"},2373:{"value":"0945","name":"DEVANAGARI VOWEL SIGN CANDRA E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0945"},2374:{"value":"0946","name":"DEVANAGARI VOWEL SIGN SHORT E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0946"},2375:{"value":"0947","name":"DEVANAGARI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0947"},2376:{"value":"0948","name":"DEVANAGARI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0948"},2381:{"value":"094D","name":"DEVANAGARI SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u094D"},2385:{"value":"0951","name":"DEVANAGARI STRESS SIGN UDATTA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0951"},2386:{"value":"0952","name":"DEVANAGARI STRESS SIGN ANUDATTA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0952"},2387:{"value":"0953","name":"DEVANAGARI GRAVE ACCENT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0953"},2388:{"value":"0954","name":"DEVANAGARI ACUTE ACCENT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0954"},2389:{"value":"0955","name":"DEVANAGARI VOWEL SIGN CANDRA LONG E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0955"},2390:{"value":"0956","name":"DEVANAGARI VOWEL SIGN UE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0956"},2391:{"value":"0957","name":"DEVANAGARI VOWEL SIGN UUE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0957"},2402:{"value":"0962","name":"DEVANAGARI VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0962"},2403:{"value":"0963","name":"DEVANAGARI VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0963"},2433:{"value":"0981","name":"BENGALI SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0981"},2492:{"value":"09BC","name":"BENGALI SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09BC"},2497:{"value":"09C1","name":"BENGALI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09C1"},2498:{"value":"09C2","name":"BENGALI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09C2"},2499:{"value":"09C3","name":"BENGALI VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09C3"},2500:{"value":"09C4","name":"BENGALI VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09C4"},2509:{"value":"09CD","name":"BENGALI SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09CD"},2530:{"value":"09E2","name":"BENGALI VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09E2"},2531:{"value":"09E3","name":"BENGALI VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09E3"},2558:{"value":"09FE","name":"BENGALI SANDHI MARK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09FE"},2561:{"value":"0A01","name":"GURMUKHI SIGN ADAK BINDI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A01"},2562:{"value":"0A02","name":"GURMUKHI SIGN BINDI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A02"},2620:{"value":"0A3C","name":"GURMUKHI SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A3C"},2625:{"value":"0A41","name":"GURMUKHI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A41"},2626:{"value":"0A42","name":"GURMUKHI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A42"},2631:{"value":"0A47","name":"GURMUKHI VOWEL SIGN EE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A47"},2632:{"value":"0A48","name":"GURMUKHI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A48"},2635:{"value":"0A4B","name":"GURMUKHI VOWEL SIGN OO","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A4B"},2636:{"value":"0A4C","name":"GURMUKHI VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A4C"},2637:{"value":"0A4D","name":"GURMUKHI SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A4D"},2641:{"value":"0A51","name":"GURMUKHI SIGN UDAAT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A51"},2672:{"value":"0A70","name":"GURMUKHI TIPPI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A70"},2673:{"value":"0A71","name":"GURMUKHI ADDAK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A71"},2677:{"value":"0A75","name":"GURMUKHI SIGN YAKASH","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A75"},2689:{"value":"0A81","name":"GUJARATI SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A81"},2690:{"value":"0A82","name":"GUJARATI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A82"},2748:{"value":"0ABC","name":"GUJARATI SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ABC"},2753:{"value":"0AC1","name":"GUJARATI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC1"},2754:{"value":"0AC2","name":"GUJARATI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC2"},2755:{"value":"0AC3","name":"GUJARATI VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC3"},2756:{"value":"0AC4","name":"GUJARATI VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC4"},2757:{"value":"0AC5","name":"GUJARATI VOWEL SIGN CANDRA E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC5"},2759:{"value":"0AC7","name":"GUJARATI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC7"},2760:{"value":"0AC8","name":"GUJARATI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC8"},2765:{"value":"0ACD","name":"GUJARATI SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ACD"},2786:{"value":"0AE2","name":"GUJARATI VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE2"},2787:{"value":"0AE3","name":"GUJARATI VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE3"},2810:{"value":"0AFA","name":"GUJARATI SIGN SUKUN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AFA"},2811:{"value":"0AFB","name":"GUJARATI SIGN SHADDA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AFB"},2812:{"value":"0AFC","name":"GUJARATI SIGN MADDAH","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AFC"},2813:{"value":"0AFD","name":"GUJARATI SIGN THREE-DOT NUKTA ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AFD"},2814:{"value":"0AFE","name":"GUJARATI SIGN CIRCLE NUKTA ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AFE"},2815:{"value":"0AFF","name":"GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AFF"},2817:{"value":"0B01","name":"ORIYA SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B01"},2876:{"value":"0B3C","name":"ORIYA SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B3C"},2879:{"value":"0B3F","name":"ORIYA VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B3F"},2881:{"value":"0B41","name":"ORIYA VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B41"},2882:{"value":"0B42","name":"ORIYA VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B42"},2883:{"value":"0B43","name":"ORIYA VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B43"},2884:{"value":"0B44","name":"ORIYA VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B44"},2893:{"value":"0B4D","name":"ORIYA SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B4D"},2902:{"value":"0B56","name":"ORIYA AI LENGTH MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B56"},2914:{"value":"0B62","name":"ORIYA VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B62"},2915:{"value":"0B63","name":"ORIYA VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B63"},2946:{"value":"0B82","name":"TAMIL SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B82"},3008:{"value":"0BC0","name":"TAMIL VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BC0"},3021:{"value":"0BCD","name":"TAMIL SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BCD"},3072:{"value":"0C00","name":"TELUGU SIGN COMBINING CANDRABINDU ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C00"},3076:{"value":"0C04","name":"TELUGU SIGN COMBINING ANUSVARA ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C04"},3134:{"value":"0C3E","name":"TELUGU VOWEL SIGN AA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C3E"},3135:{"value":"0C3F","name":"TELUGU VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C3F"},3136:{"value":"0C40","name":"TELUGU VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C40"},3142:{"value":"0C46","name":"TELUGU VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C46"},3143:{"value":"0C47","name":"TELUGU VOWEL SIGN EE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C47"},3144:{"value":"0C48","name":"TELUGU VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0C46 0C56","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C48"},3146:{"value":"0C4A","name":"TELUGU VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C4A"},3147:{"value":"0C4B","name":"TELUGU VOWEL SIGN OO","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C4B"},3148:{"value":"0C4C","name":"TELUGU VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C4C"},3149:{"value":"0C4D","name":"TELUGU SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C4D"},3157:{"value":"0C55","name":"TELUGU LENGTH MARK","category":"Mn","class":"84","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C55"},3158:{"value":"0C56","name":"TELUGU AI LENGTH MARK","category":"Mn","class":"91","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C56"},3170:{"value":"0C62","name":"TELUGU VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C62"},3171:{"value":"0C63","name":"TELUGU VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C63"},3201:{"value":"0C81","name":"KANNADA SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C81"},3260:{"value":"0CBC","name":"KANNADA SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CBC"},3263:{"value":"0CBF","name":"KANNADA VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CBF"},3270:{"value":"0CC6","name":"KANNADA VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CC6"},3276:{"value":"0CCC","name":"KANNADA VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CCC"},3277:{"value":"0CCD","name":"KANNADA SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CCD"},3298:{"value":"0CE2","name":"KANNADA VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CE2"},3299:{"value":"0CE3","name":"KANNADA VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CE3"},3328:{"value":"0D00","name":"MALAYALAM SIGN COMBINING ANUSVARA ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D00"},3329:{"value":"0D01","name":"MALAYALAM SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D01"},3387:{"value":"0D3B","name":"MALAYALAM SIGN VERTICAL BAR VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D3B"},3388:{"value":"0D3C","name":"MALAYALAM SIGN CIRCULAR VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D3C"},3393:{"value":"0D41","name":"MALAYALAM VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D41"},3394:{"value":"0D42","name":"MALAYALAM VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D42"},3395:{"value":"0D43","name":"MALAYALAM VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D43"},3396:{"value":"0D44","name":"MALAYALAM VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D44"},3405:{"value":"0D4D","name":"MALAYALAM SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D4D"},3426:{"value":"0D62","name":"MALAYALAM VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D62"},3427:{"value":"0D63","name":"MALAYALAM VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D63"},3530:{"value":"0DCA","name":"SINHALA SIGN AL-LAKUNA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DCA"},3538:{"value":"0DD2","name":"SINHALA VOWEL SIGN KETTI IS-PILLA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DD2"},3539:{"value":"0DD3","name":"SINHALA VOWEL SIGN DIGA IS-PILLA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DD3"},3540:{"value":"0DD4","name":"SINHALA VOWEL SIGN KETTI PAA-PILLA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DD4"},3542:{"value":"0DD6","name":"SINHALA VOWEL SIGN DIGA PAA-PILLA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DD6"},3633:{"value":"0E31","name":"THAI CHARACTER MAI HAN-AKAT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN MAI HAN-AKAT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E31"},3636:{"value":"0E34","name":"THAI CHARACTER SARA I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA I","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E34"},3637:{"value":"0E35","name":"THAI CHARACTER SARA II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA II","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E35"},3638:{"value":"0E36","name":"THAI CHARACTER SARA UE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA UE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E36"},3639:{"value":"0E37","name":"THAI CHARACTER SARA UEE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA UEE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E37"},3640:{"value":"0E38","name":"THAI CHARACTER SARA U","category":"Mn","class":"103","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA U","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E38"},3641:{"value":"0E39","name":"THAI CHARACTER SARA UU","category":"Mn","class":"103","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN SARA UU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E39"},3642:{"value":"0E3A","name":"THAI CHARACTER PHINTHU","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN PHINTHU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E3A"},3655:{"value":"0E47","name":"THAI CHARACTER MAITAIKHU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI VOWEL SIGN MAI TAI KHU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E47"},3656:{"value":"0E48","name":"THAI CHARACTER MAI EK","category":"Mn","class":"107","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI TONE MAI EK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E48"},3657:{"value":"0E49","name":"THAI CHARACTER MAI THO","category":"Mn","class":"107","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI TONE MAI THO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E49"},3658:{"value":"0E4A","name":"THAI CHARACTER MAI TRI","category":"Mn","class":"107","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI TONE MAI TRI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E4A"},3659:{"value":"0E4B","name":"THAI CHARACTER MAI CHATTAWA","category":"Mn","class":"107","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI TONE MAI CHATTAWA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E4B"},3660:{"value":"0E4C","name":"THAI CHARACTER THANTHAKHAT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI THANTHAKHAT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E4C"},3661:{"value":"0E4D","name":"THAI CHARACTER NIKHAHIT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI NIKKHAHIT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E4D"},3662:{"value":"0E4E","name":"THAI CHARACTER YAMAKKAN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"THAI YAMAKKAN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E4E"},3761:{"value":"0EB1","name":"LAO VOWEL SIGN MAI KAN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EB1"},3764:{"value":"0EB4","name":"LAO VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EB4"},3765:{"value":"0EB5","name":"LAO VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EB5"},3766:{"value":"0EB6","name":"LAO VOWEL SIGN Y","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EB6"},3767:{"value":"0EB7","name":"LAO VOWEL SIGN YY","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EB7"},3768:{"value":"0EB8","name":"LAO VOWEL SIGN U","category":"Mn","class":"118","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EB8"},3769:{"value":"0EB9","name":"LAO VOWEL SIGN UU","category":"Mn","class":"118","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EB9"},3771:{"value":"0EBB","name":"LAO VOWEL SIGN MAI KON","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EBB"},3772:{"value":"0EBC","name":"LAO SEMIVOWEL SIGN LO","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EBC"},3784:{"value":"0EC8","name":"LAO TONE MAI EK","category":"Mn","class":"122","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EC8"},3785:{"value":"0EC9","name":"LAO TONE MAI THO","category":"Mn","class":"122","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0EC9"},3786:{"value":"0ECA","name":"LAO TONE MAI TI","category":"Mn","class":"122","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ECA"},3787:{"value":"0ECB","name":"LAO TONE MAI CATAWA","category":"Mn","class":"122","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ECB"},3788:{"value":"0ECC","name":"LAO CANCELLATION MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ECC"},3789:{"value":"0ECD","name":"LAO NIGGAHITA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ECD"},3864:{"value":"0F18","name":"TIBETAN ASTROLOGICAL SIGN -KHYUD PA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F18"},3865:{"value":"0F19","name":"TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F19"},3893:{"value":"0F35","name":"TIBETAN MARK NGAS BZUNG NYI ZLA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN HONORIFIC UNDER RING","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F35"},3895:{"value":"0F37","name":"TIBETAN MARK NGAS BZUNG SGOR RTAGS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN UNDER RING","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F37"},3897:{"value":"0F39","name":"TIBETAN MARK TSA -PHRU","category":"Mn","class":"216","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN LENITION MARK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F39"},3953:{"value":"0F71","name":"TIBETAN VOWEL SIGN AA","category":"Mn","class":"129","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F71"},3954:{"value":"0F72","name":"TIBETAN VOWEL SIGN I","category":"Mn","class":"130","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F72"},3955:{"value":"0F73","name":"TIBETAN VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0F71 0F72","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F73"},3956:{"value":"0F74","name":"TIBETAN VOWEL SIGN U","category":"Mn","class":"132","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F74"},3957:{"value":"0F75","name":"TIBETAN VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0F71 0F74","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F75"},3958:{"value":"0F76","name":"TIBETAN VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0FB2 0F80","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F76"},3959:{"value":"0F77","name":"TIBETAN VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"<compat> 0FB2 0F81","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F77"},3960:{"value":"0F78","name":"TIBETAN VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0FB3 0F80","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F78"},3961:{"value":"0F79","name":"TIBETAN VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"<compat> 0FB3 0F81","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F79"},3962:{"value":"0F7A","name":"TIBETAN VOWEL SIGN E","category":"Mn","class":"130","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F7A"},3963:{"value":"0F7B","name":"TIBETAN VOWEL SIGN EE","category":"Mn","class":"130","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN VOWEL SIGN AI","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F7B"},3964:{"value":"0F7C","name":"TIBETAN VOWEL SIGN O","category":"Mn","class":"130","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F7C"},3965:{"value":"0F7D","name":"TIBETAN VOWEL SIGN OO","category":"Mn","class":"130","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN VOWEL SIGN AU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F7D"},3966:{"value":"0F7E","name":"TIBETAN SIGN RJES SU NGA RO","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN ANUSVARA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F7E"},3968:{"value":"0F80","name":"TIBETAN VOWEL SIGN REVERSED I","category":"Mn","class":"130","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN VOWEL SIGN SHORT I","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F80"},3969:{"value":"0F81","name":"TIBETAN VOWEL SIGN REVERSED II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0F71 0F80","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F81"},3970:{"value":"0F82","name":"TIBETAN SIGN NYI ZLA NAA DA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN CANDRABINDU WITH ORNAMENT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F82"},3971:{"value":"0F83","name":"TIBETAN SIGN SNA LDAN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN CANDRABINDU","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F83"},3972:{"value":"0F84","name":"TIBETAN MARK HALANTA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN VIRAMA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F84"},3974:{"value":"0F86","name":"TIBETAN SIGN LCI RTAGS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F86"},3975:{"value":"0F87","name":"TIBETAN SIGN YANG RTAGS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F87"},3981:{"value":"0F8D","name":"TIBETAN SUBJOINED SIGN LCE TSA CAN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F8D"},3982:{"value":"0F8E","name":"TIBETAN SUBJOINED SIGN MCHU CAN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F8E"},3983:{"value":"0F8F","name":"TIBETAN SUBJOINED SIGN INVERTED MCHU CAN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F8F"},3984:{"value":"0F90","name":"TIBETAN SUBJOINED LETTER KA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F90"},3985:{"value":"0F91","name":"TIBETAN SUBJOINED LETTER KHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F91"},3986:{"value":"0F92","name":"TIBETAN SUBJOINED LETTER GA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F92"},3987:{"value":"0F93","name":"TIBETAN SUBJOINED LETTER GHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0F92 0FB7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F93"},3988:{"value":"0F94","name":"TIBETAN SUBJOINED LETTER NGA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F94"},3989:{"value":"0F95","name":"TIBETAN SUBJOINED LETTER CA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F95"},3990:{"value":"0F96","name":"TIBETAN SUBJOINED LETTER CHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F96"},3991:{"value":"0F97","name":"TIBETAN SUBJOINED LETTER JA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F97"},3993:{"value":"0F99","name":"TIBETAN SUBJOINED LETTER NYA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F99"},3994:{"value":"0F9A","name":"TIBETAN SUBJOINED LETTER TTA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F9A"},3995:{"value":"0F9B","name":"TIBETAN SUBJOINED LETTER TTHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F9B"},3996:{"value":"0F9C","name":"TIBETAN SUBJOINED LETTER DDA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F9C"},3997:{"value":"0F9D","name":"TIBETAN SUBJOINED LETTER DDHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0F9C 0FB7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F9D"},3998:{"value":"0F9E","name":"TIBETAN SUBJOINED LETTER NNA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F9E"},3999:{"value":"0F9F","name":"TIBETAN SUBJOINED LETTER TA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F9F"},4000:{"value":"0FA0","name":"TIBETAN SUBJOINED LETTER THA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FA0"},4001:{"value":"0FA1","name":"TIBETAN SUBJOINED LETTER DA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FA1"},4002:{"value":"0FA2","name":"TIBETAN SUBJOINED LETTER DHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0FA1 0FB7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FA2"},4003:{"value":"0FA3","name":"TIBETAN SUBJOINED LETTER NA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FA3"},4004:{"value":"0FA4","name":"TIBETAN SUBJOINED LETTER PA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FA4"},4005:{"value":"0FA5","name":"TIBETAN SUBJOINED LETTER PHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FA5"},4006:{"value":"0FA6","name":"TIBETAN SUBJOINED LETTER BA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FA6"},4007:{"value":"0FA7","name":"TIBETAN SUBJOINED LETTER BHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0FA6 0FB7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FA7"},4008:{"value":"0FA8","name":"TIBETAN SUBJOINED LETTER MA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FA8"},4009:{"value":"0FA9","name":"TIBETAN SUBJOINED LETTER TSA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FA9"},4010:{"value":"0FAA","name":"TIBETAN SUBJOINED LETTER TSHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FAA"},4011:{"value":"0FAB","name":"TIBETAN SUBJOINED LETTER DZA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FAB"},4012:{"value":"0FAC","name":"TIBETAN SUBJOINED LETTER DZHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0FAB 0FB7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FAC"},4013:{"value":"0FAD","name":"TIBETAN SUBJOINED LETTER WA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FAD"},4014:{"value":"0FAE","name":"TIBETAN SUBJOINED LETTER ZHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FAE"},4015:{"value":"0FAF","name":"TIBETAN SUBJOINED LETTER ZA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FAF"},4016:{"value":"0FB0","name":"TIBETAN SUBJOINED LETTER -A","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FB0"},4017:{"value":"0FB1","name":"TIBETAN SUBJOINED LETTER YA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FB1"},4018:{"value":"0FB2","name":"TIBETAN SUBJOINED LETTER RA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FB2"},4019:{"value":"0FB3","name":"TIBETAN SUBJOINED LETTER LA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FB3"},4020:{"value":"0FB4","name":"TIBETAN SUBJOINED LETTER SHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FB4"},4021:{"value":"0FB5","name":"TIBETAN SUBJOINED LETTER SSA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FB5"},4022:{"value":"0FB6","name":"TIBETAN SUBJOINED LETTER SA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FB6"},4023:{"value":"0FB7","name":"TIBETAN SUBJOINED LETTER HA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FB7"},4024:{"value":"0FB8","name":"TIBETAN SUBJOINED LETTER A","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FB8"},4025:{"value":"0FB9","name":"TIBETAN SUBJOINED LETTER KSSA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"0F90 0FB5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FB9"},4026:{"value":"0FBA","name":"TIBETAN SUBJOINED LETTER FIXED-FORM WA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FBA"},4027:{"value":"0FBB","name":"TIBETAN SUBJOINED LETTER FIXED-FORM YA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FBB"},4028:{"value":"0FBC","name":"TIBETAN SUBJOINED LETTER FIXED-FORM RA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FBC"},4038:{"value":"0FC6","name":"TIBETAN SYMBOL PADMA GDAN","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0FC6"},4141:{"value":"102D","name":"MYANMAR VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102D"},4142:{"value":"102E","name":"MYANMAR VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102E"},4143:{"value":"102F","name":"MYANMAR VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102F"},4144:{"value":"1030","name":"MYANMAR VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1030"},4146:{"value":"1032","name":"MYANMAR VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1032"},4147:{"value":"1033","name":"MYANMAR VOWEL SIGN MON II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1033"},4148:{"value":"1034","name":"MYANMAR VOWEL SIGN MON O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1034"},4149:{"value":"1035","name":"MYANMAR VOWEL SIGN E ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1035"},4150:{"value":"1036","name":"MYANMAR SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1036"},4151:{"value":"1037","name":"MYANMAR SIGN DOT BELOW","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1037"},4153:{"value":"1039","name":"MYANMAR SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1039"},4154:{"value":"103A","name":"MYANMAR SIGN ASAT","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103A"},4157:{"value":"103D","name":"MYANMAR CONSONANT SIGN MEDIAL WA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103D"},4158:{"value":"103E","name":"MYANMAR CONSONANT SIGN MEDIAL HA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103E"},4184:{"value":"1058","name":"MYANMAR VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1058"},4185:{"value":"1059","name":"MYANMAR VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1059"},4190:{"value":"105E","name":"MYANMAR CONSONANT SIGN MON MEDIAL NA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u105E"},4191:{"value":"105F","name":"MYANMAR CONSONANT SIGN MON MEDIAL MA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u105F"},4192:{"value":"1060","name":"MYANMAR CONSONANT SIGN MON MEDIAL LA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1060"},4209:{"value":"1071","name":"MYANMAR VOWEL SIGN GEBA KAREN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1071"},4210:{"value":"1072","name":"MYANMAR VOWEL SIGN KAYAH OE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1072"},4211:{"value":"1073","name":"MYANMAR VOWEL SIGN KAYAH U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1073"},4212:{"value":"1074","name":"MYANMAR VOWEL SIGN KAYAH EE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1074"},4226:{"value":"1082","name":"MYANMAR CONSONANT SIGN SHAN MEDIAL WA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1082"},4229:{"value":"1085","name":"MYANMAR VOWEL SIGN SHAN E ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1085"},4230:{"value":"1086","name":"MYANMAR VOWEL SIGN SHAN FINAL Y","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1086"},4237:{"value":"108D","name":"MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108D"},4253:{"value":"109D","name":"MYANMAR VOWEL SIGN AITON AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u109D"},4957:{"value":"135D","name":"ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u135D"},4958:{"value":"135E","name":"ETHIOPIC COMBINING VOWEL LENGTH MARK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u135E"},4959:{"value":"135F","name":"ETHIOPIC COMBINING GEMINATION MARK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u135F"},5906:{"value":"1712","name":"TAGALOG VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1712"},5907:{"value":"1713","name":"TAGALOG VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1713"},5908:{"value":"1714","name":"TAGALOG SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1714"},5938:{"value":"1732","name":"HANUNOO VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1732"},5939:{"value":"1733","name":"HANUNOO VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1733"},5940:{"value":"1734","name":"HANUNOO SIGN PAMUDPOD","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1734"},5970:{"value":"1752","name":"BUHID VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1752"},5971:{"value":"1753","name":"BUHID VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1753"},6002:{"value":"1772","name":"TAGBANWA VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1772"},6003:{"value":"1773","name":"TAGBANWA VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1773"},6068:{"value":"17B4","name":"KHMER VOWEL INHERENT AQ","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17B4"},6069:{"value":"17B5","name":"KHMER VOWEL INHERENT AA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17B5"},6071:{"value":"17B7","name":"KHMER VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17B7"},6072:{"value":"17B8","name":"KHMER VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17B8"},6073:{"value":"17B9","name":"KHMER VOWEL SIGN Y","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17B9"},6074:{"value":"17BA","name":"KHMER VOWEL SIGN YY","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17BA"},6075:{"value":"17BB","name":"KHMER VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17BB"},6076:{"value":"17BC","name":"KHMER VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17BC"},6077:{"value":"17BD","name":"KHMER VOWEL SIGN UA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17BD"},6086:{"value":"17C6","name":"KHMER SIGN NIKAHIT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17C6"},6089:{"value":"17C9","name":"KHMER SIGN MUUSIKATOAN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17C9"},6090:{"value":"17CA","name":"KHMER SIGN TRIISAP","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17CA"},6091:{"value":"17CB","name":"KHMER SIGN BANTOC","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17CB"},6092:{"value":"17CC","name":"KHMER SIGN ROBAT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17CC"},6093:{"value":"17CD","name":"KHMER SIGN TOANDAKHIAT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17CD"},6094:{"value":"17CE","name":"KHMER SIGN KAKABAT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17CE"},6095:{"value":"17CF","name":"KHMER SIGN AHSDA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17CF"},6096:{"value":"17D0","name":"KHMER SIGN SAMYOK SANNYA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17D0"},6097:{"value":"17D1","name":"KHMER SIGN VIRIAM","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17D1"},6098:{"value":"17D2","name":"KHMER SIGN COENG","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17D2"},6099:{"value":"17D3","name":"KHMER SIGN BATHAMASAT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17D3"},6109:{"value":"17DD","name":"KHMER SIGN ATTHACAN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17DD"},6155:{"value":"180B","name":"MONGOLIAN FREE VARIATION SELECTOR ONE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u180B"},6156:{"value":"180C","name":"MONGOLIAN FREE VARIATION SELECTOR TWO","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u180C"},6157:{"value":"180D","name":"MONGOLIAN FREE VARIATION SELECTOR THREE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u180D"},6277:{"value":"1885","name":"MONGOLIAN LETTER ALI GALI BALUDA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1885"},6278:{"value":"1886","name":"MONGOLIAN LETTER ALI GALI THREE BALUDA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1886"},6313:{"value":"18A9","name":"MONGOLIAN LETTER ALI GALI DAGALGA","category":"Mn","class":"228","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18A9"},6432:{"value":"1920","name":"LIMBU VOWEL SIGN A","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1920"},6433:{"value":"1921","name":"LIMBU VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1921"},6434:{"value":"1922","name":"LIMBU VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1922"},6439:{"value":"1927","name":"LIMBU VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1927"},6440:{"value":"1928","name":"LIMBU VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1928"},6450:{"value":"1932","name":"LIMBU SMALL LETTER ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1932"},6457:{"value":"1939","name":"LIMBU SIGN MUKPHRENG","category":"Mn","class":"222","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1939"},6458:{"value":"193A","name":"LIMBU SIGN KEMPHRENG","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u193A"},6459:{"value":"193B","name":"LIMBU SIGN SA-I","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u193B"},6679:{"value":"1A17","name":"BUGINESE VOWEL SIGN I","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A17"},6680:{"value":"1A18","name":"BUGINESE VOWEL SIGN U","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A18"},6683:{"value":"1A1B","name":"BUGINESE VOWEL SIGN AE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A1B"},6742:{"value":"1A56","name":"TAI THAM CONSONANT SIGN MEDIAL LA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A56"},6744:{"value":"1A58","name":"TAI THAM SIGN MAI KANG LAI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A58"},6745:{"value":"1A59","name":"TAI THAM CONSONANT SIGN FINAL NGA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A59"},6746:{"value":"1A5A","name":"TAI THAM CONSONANT SIGN LOW PA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5A"},6747:{"value":"1A5B","name":"TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5B"},6748:{"value":"1A5C","name":"TAI THAM CONSONANT SIGN MA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5C"},6749:{"value":"1A5D","name":"TAI THAM CONSONANT SIGN BA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5D"},6750:{"value":"1A5E","name":"TAI THAM CONSONANT SIGN SA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5E"},6752:{"value":"1A60","name":"TAI THAM SIGN SAKOT","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A60"},6754:{"value":"1A62","name":"TAI THAM VOWEL SIGN MAI SAT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A62"},6757:{"value":"1A65","name":"TAI THAM VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A65"},6758:{"value":"1A66","name":"TAI THAM VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A66"},6759:{"value":"1A67","name":"TAI THAM VOWEL SIGN UE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A67"},6760:{"value":"1A68","name":"TAI THAM VOWEL SIGN UUE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A68"},6761:{"value":"1A69","name":"TAI THAM VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A69"},6762:{"value":"1A6A","name":"TAI THAM VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6A"},6763:{"value":"1A6B","name":"TAI THAM VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6B"},6764:{"value":"1A6C","name":"TAI THAM VOWEL SIGN OA BELOW","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6C"},6771:{"value":"1A73","name":"TAI THAM VOWEL SIGN OA ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A73"},6772:{"value":"1A74","name":"TAI THAM SIGN MAI KANG","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A74"},6773:{"value":"1A75","name":"TAI THAM SIGN TONE-1","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A75"},6774:{"value":"1A76","name":"TAI THAM SIGN TONE-2","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A76"},6775:{"value":"1A77","name":"TAI THAM SIGN KHUEN TONE-3","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A77"},6776:{"value":"1A78","name":"TAI THAM SIGN KHUEN TONE-4","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A78"},6777:{"value":"1A79","name":"TAI THAM SIGN KHUEN TONE-5","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A79"},6778:{"value":"1A7A","name":"TAI THAM SIGN RA HAAM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A7A"},6779:{"value":"1A7B","name":"TAI THAM SIGN MAI SAM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A7B"},6780:{"value":"1A7C","name":"TAI THAM SIGN KHUEN-LUE KARAN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A7C"},6783:{"value":"1A7F","name":"TAI THAM COMBINING CRYPTOGRAMMIC DOT","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A7F"},6832:{"value":"1AB0","name":"COMBINING DOUBLED CIRCUMFLEX ACCENT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AB0"},6833:{"value":"1AB1","name":"COMBINING DIAERESIS-RING","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AB1"},6834:{"value":"1AB2","name":"COMBINING INFINITY","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AB2"},6835:{"value":"1AB3","name":"COMBINING DOWNWARDS ARROW","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AB3"},6836:{"value":"1AB4","name":"COMBINING TRIPLE DOT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AB4"},6837:{"value":"1AB5","name":"COMBINING X-X BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AB5"},6838:{"value":"1AB6","name":"COMBINING WIGGLY LINE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AB6"},6839:{"value":"1AB7","name":"COMBINING OPEN MARK BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AB7"},6840:{"value":"1AB8","name":"COMBINING DOUBLE OPEN MARK BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AB8"},6841:{"value":"1AB9","name":"COMBINING LIGHT CENTRALIZATION STROKE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1AB9"},6842:{"value":"1ABA","name":"COMBINING STRONG CENTRALIZATION STROKE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ABA"},6843:{"value":"1ABB","name":"COMBINING PARENTHESES ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ABB"},6844:{"value":"1ABC","name":"COMBINING DOUBLE PARENTHESES ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ABC"},6845:{"value":"1ABD","name":"COMBINING PARENTHESES BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1ABD"},6912:{"value":"1B00","name":"BALINESE SIGN ULU RICEM","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B00"},6913:{"value":"1B01","name":"BALINESE SIGN ULU CANDRA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B01"},6914:{"value":"1B02","name":"BALINESE SIGN CECEK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B02"},6915:{"value":"1B03","name":"BALINESE SIGN SURANG","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B03"},6964:{"value":"1B34","name":"BALINESE SIGN REREKAN","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B34"},6966:{"value":"1B36","name":"BALINESE VOWEL SIGN ULU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B36"},6967:{"value":"1B37","name":"BALINESE VOWEL SIGN ULU SARI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B37"},6968:{"value":"1B38","name":"BALINESE VOWEL SIGN SUKU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B38"},6969:{"value":"1B39","name":"BALINESE VOWEL SIGN SUKU ILUT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B39"},6970:{"value":"1B3A","name":"BALINESE VOWEL SIGN RA REPA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B3A"},6972:{"value":"1B3C","name":"BALINESE VOWEL SIGN LA LENGA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B3C"},6978:{"value":"1B42","name":"BALINESE VOWEL SIGN PEPET","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B42"},7019:{"value":"1B6B","name":"BALINESE MUSICAL SYMBOL COMBINING TEGEH","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B6B"},7020:{"value":"1B6C","name":"BALINESE MUSICAL SYMBOL COMBINING ENDEP","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B6C"},7021:{"value":"1B6D","name":"BALINESE MUSICAL SYMBOL COMBINING KEMPUL","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B6D"},7022:{"value":"1B6E","name":"BALINESE MUSICAL SYMBOL COMBINING KEMPLI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B6E"},7023:{"value":"1B6F","name":"BALINESE MUSICAL SYMBOL COMBINING JEGOGAN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B6F"},7024:{"value":"1B70","name":"BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B70"},7025:{"value":"1B71","name":"BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B71"},7026:{"value":"1B72","name":"BALINESE MUSICAL SYMBOL COMBINING BENDE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B72"},7027:{"value":"1B73","name":"BALINESE MUSICAL SYMBOL COMBINING GONG","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B73"},7040:{"value":"1B80","name":"SUNDANESE SIGN PANYECEK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B80"},7041:{"value":"1B81","name":"SUNDANESE SIGN PANGLAYAR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B81"},7074:{"value":"1BA2","name":"SUNDANESE CONSONANT SIGN PANYAKRA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BA2"},7075:{"value":"1BA3","name":"SUNDANESE CONSONANT SIGN PANYIKU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BA3"},7076:{"value":"1BA4","name":"SUNDANESE VOWEL SIGN PANGHULU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BA4"},7077:{"value":"1BA5","name":"SUNDANESE VOWEL SIGN PANYUKU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BA5"},7080:{"value":"1BA8","name":"SUNDANESE VOWEL SIGN PAMEPET","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BA8"},7081:{"value":"1BA9","name":"SUNDANESE VOWEL SIGN PANEULEUNG","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BA9"},7083:{"value":"1BAB","name":"SUNDANESE SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BAB"},7084:{"value":"1BAC","name":"SUNDANESE CONSONANT SIGN PASANGAN MA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BAC"},7085:{"value":"1BAD","name":"SUNDANESE CONSONANT SIGN PASANGAN WA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BAD"},7142:{"value":"1BE6","name":"BATAK SIGN TOMPI","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BE6"},7144:{"value":"1BE8","name":"BATAK VOWEL SIGN PAKPAK E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BE8"},7145:{"value":"1BE9","name":"BATAK VOWEL SIGN EE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BE9"},7149:{"value":"1BED","name":"BATAK VOWEL SIGN KARO O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BED"},7151:{"value":"1BEF","name":"BATAK VOWEL SIGN U FOR SIMALUNGUN SA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BEF"},7152:{"value":"1BF0","name":"BATAK CONSONANT SIGN NG","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BF0"},7153:{"value":"1BF1","name":"BATAK CONSONANT SIGN H","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BF1"},7212:{"value":"1C2C","name":"LEPCHA VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2C"},7213:{"value":"1C2D","name":"LEPCHA CONSONANT SIGN K","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2D"},7214:{"value":"1C2E","name":"LEPCHA CONSONANT SIGN M","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2E"},7215:{"value":"1C2F","name":"LEPCHA CONSONANT SIGN L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2F"},7216:{"value":"1C30","name":"LEPCHA CONSONANT SIGN N","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C30"},7217:{"value":"1C31","name":"LEPCHA CONSONANT SIGN P","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C31"},7218:{"value":"1C32","name":"LEPCHA CONSONANT SIGN R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C32"},7219:{"value":"1C33","name":"LEPCHA CONSONANT SIGN T","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C33"},7222:{"value":"1C36","name":"LEPCHA SIGN RAN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C36"},7223:{"value":"1C37","name":"LEPCHA SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C37"},7376:{"value":"1CD0","name":"VEDIC TONE KARSHANA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CD0"},7377:{"value":"1CD1","name":"VEDIC TONE SHARA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CD1"},7378:{"value":"1CD2","name":"VEDIC TONE PRENKHA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CD2"},7380:{"value":"1CD4","name":"VEDIC SIGN YAJURVEDIC MIDLINE SVARITA","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CD4"},7381:{"value":"1CD5","name":"VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CD5"},7382:{"value":"1CD6","name":"VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CD6"},7383:{"value":"1CD7","name":"VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CD7"},7384:{"value":"1CD8","name":"VEDIC TONE CANDRA BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CD8"},7385:{"value":"1CD9","name":"VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CD9"},7386:{"value":"1CDA","name":"VEDIC TONE DOUBLE SVARITA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CDA"},7387:{"value":"1CDB","name":"VEDIC TONE TRIPLE SVARITA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CDB"},7388:{"value":"1CDC","name":"VEDIC TONE KATHAKA ANUDATTA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CDC"},7389:{"value":"1CDD","name":"VEDIC TONE DOT BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CDD"},7390:{"value":"1CDE","name":"VEDIC TONE TWO DOTS BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CDE"},7391:{"value":"1CDF","name":"VEDIC TONE THREE DOTS BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CDF"},7392:{"value":"1CE0","name":"VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CE0"},7394:{"value":"1CE2","name":"VEDIC SIGN VISARGA SVARITA","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CE2"},7395:{"value":"1CE3","name":"VEDIC SIGN VISARGA UDATTA","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CE3"},7396:{"value":"1CE4","name":"VEDIC SIGN REVERSED VISARGA UDATTA","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CE4"},7397:{"value":"1CE5","name":"VEDIC SIGN VISARGA ANUDATTA","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CE5"},7398:{"value":"1CE6","name":"VEDIC SIGN REVERSED VISARGA ANUDATTA","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CE6"},7399:{"value":"1CE7","name":"VEDIC SIGN VISARGA UDATTA WITH TAIL","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CE7"},7400:{"value":"1CE8","name":"VEDIC SIGN VISARGA ANUDATTA WITH TAIL","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CE8"},7405:{"value":"1CED","name":"VEDIC SIGN TIRYAK","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CED"},7412:{"value":"1CF4","name":"VEDIC TONE CANDRA ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CF4"},7416:{"value":"1CF8","name":"VEDIC TONE RING ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CF8"},7417:{"value":"1CF9","name":"VEDIC TONE DOUBLE RING ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CF9"},7616:{"value":"1DC0","name":"COMBINING DOTTED GRAVE ACCENT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DC0"},7617:{"value":"1DC1","name":"COMBINING DOTTED ACUTE ACCENT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DC1"},7618:{"value":"1DC2","name":"COMBINING SNAKE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DC2"},7619:{"value":"1DC3","name":"COMBINING SUSPENSION MARK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DC3"},7620:{"value":"1DC4","name":"COMBINING MACRON-ACUTE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DC4"},7621:{"value":"1DC5","name":"COMBINING GRAVE-MACRON","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DC5"},7622:{"value":"1DC6","name":"COMBINING MACRON-GRAVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DC6"},7623:{"value":"1DC7","name":"COMBINING ACUTE-MACRON","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DC7"},7624:{"value":"1DC8","name":"COMBINING GRAVE-ACUTE-GRAVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DC8"},7625:{"value":"1DC9","name":"COMBINING ACUTE-GRAVE-ACUTE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DC9"},7626:{"value":"1DCA","name":"COMBINING LATIN SMALL LETTER R BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DCA"},7627:{"value":"1DCB","name":"COMBINING BREVE-MACRON","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DCB"},7628:{"value":"1DCC","name":"COMBINING MACRON-BREVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DCC"},7629:{"value":"1DCD","name":"COMBINING DOUBLE CIRCUMFLEX ABOVE","category":"Mn","class":"234","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DCD"},7630:{"value":"1DCE","name":"COMBINING OGONEK ABOVE","category":"Mn","class":"214","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DCE"},7631:{"value":"1DCF","name":"COMBINING ZIGZAG BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DCF"},7632:{"value":"1DD0","name":"COMBINING IS BELOW","category":"Mn","class":"202","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DD0"},7633:{"value":"1DD1","name":"COMBINING UR ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DD1"},7634:{"value":"1DD2","name":"COMBINING US ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DD2"},7635:{"value":"1DD3","name":"COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DD3"},7636:{"value":"1DD4","name":"COMBINING LATIN SMALL LETTER AE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DD4"},7637:{"value":"1DD5","name":"COMBINING LATIN SMALL LETTER AO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DD5"},7638:{"value":"1DD6","name":"COMBINING LATIN SMALL LETTER AV","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DD6"},7639:{"value":"1DD7","name":"COMBINING LATIN SMALL LETTER C CEDILLA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DD7"},7640:{"value":"1DD8","name":"COMBINING LATIN SMALL LETTER INSULAR D","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DD8"},7641:{"value":"1DD9","name":"COMBINING LATIN SMALL LETTER ETH","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DD9"},7642:{"value":"1DDA","name":"COMBINING LATIN SMALL LETTER G","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DDA"},7643:{"value":"1DDB","name":"COMBINING LATIN LETTER SMALL CAPITAL G","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DDB"},7644:{"value":"1DDC","name":"COMBINING LATIN SMALL LETTER K","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DDC"},7645:{"value":"1DDD","name":"COMBINING LATIN SMALL LETTER L","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DDD"},7646:{"value":"1DDE","name":"COMBINING LATIN LETTER SMALL CAPITAL L","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DDE"},7647:{"value":"1DDF","name":"COMBINING LATIN LETTER SMALL CAPITAL M","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DDF"},7648:{"value":"1DE0","name":"COMBINING LATIN SMALL LETTER N","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DE0"},7649:{"value":"1DE1","name":"COMBINING LATIN LETTER SMALL CAPITAL N","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DE1"},7650:{"value":"1DE2","name":"COMBINING LATIN LETTER SMALL CAPITAL R","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DE2"},7651:{"value":"1DE3","name":"COMBINING LATIN SMALL LETTER R ROTUNDA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DE3"},7652:{"value":"1DE4","name":"COMBINING LATIN SMALL LETTER S","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DE4"},7653:{"value":"1DE5","name":"COMBINING LATIN SMALL LETTER LONG S","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DE5"},7654:{"value":"1DE6","name":"COMBINING LATIN SMALL LETTER Z","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DE6"},7655:{"value":"1DE7","name":"COMBINING LATIN SMALL LETTER ALPHA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DE7"},7656:{"value":"1DE8","name":"COMBINING LATIN SMALL LETTER B","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DE8"},7657:{"value":"1DE9","name":"COMBINING LATIN SMALL LETTER BETA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DE9"},7658:{"value":"1DEA","name":"COMBINING LATIN SMALL LETTER SCHWA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DEA"},7659:{"value":"1DEB","name":"COMBINING LATIN SMALL LETTER F","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DEB"},7660:{"value":"1DEC","name":"COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DEC"},7661:{"value":"1DED","name":"COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DED"},7662:{"value":"1DEE","name":"COMBINING LATIN SMALL LETTER P","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DEE"},7663:{"value":"1DEF","name":"COMBINING LATIN SMALL LETTER ESH","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DEF"},7664:{"value":"1DF0","name":"COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DF0"},7665:{"value":"1DF1","name":"COMBINING LATIN SMALL LETTER W","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DF1"},7666:{"value":"1DF2","name":"COMBINING LATIN SMALL LETTER A WITH DIAERESIS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DF2"},7667:{"value":"1DF3","name":"COMBINING LATIN SMALL LETTER O WITH DIAERESIS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DF3"},7668:{"value":"1DF4","name":"COMBINING LATIN SMALL LETTER U WITH DIAERESIS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DF4"},7669:{"value":"1DF5","name":"COMBINING UP TACK ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DF5"},7670:{"value":"1DF6","name":"COMBINING KAVYKA ABOVE RIGHT","category":"Mn","class":"232","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DF6"},7671:{"value":"1DF7","name":"COMBINING KAVYKA ABOVE LEFT","category":"Mn","class":"228","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DF7"},7672:{"value":"1DF8","name":"COMBINING DOT ABOVE LEFT","category":"Mn","class":"228","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DF8"},7673:{"value":"1DF9","name":"COMBINING WIDE INVERTED BRIDGE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DF9"},7675:{"value":"1DFB","name":"COMBINING DELETION MARK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DFB"},7676:{"value":"1DFC","name":"COMBINING DOUBLE INVERTED BREVE BELOW","category":"Mn","class":"233","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DFC"},7677:{"value":"1DFD","name":"COMBINING ALMOST EQUAL TO BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DFD"},7678:{"value":"1DFE","name":"COMBINING LEFT ARROWHEAD ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DFE"},7679:{"value":"1DFF","name":"COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DFF"},8400:{"value":"20D0","name":"COMBINING LEFT HARPOON ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING LEFT HARPOON ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D0"},8401:{"value":"20D1","name":"COMBINING RIGHT HARPOON ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING RIGHT HARPOON ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D1"},8402:{"value":"20D2","name":"COMBINING LONG VERTICAL LINE OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING LONG VERTICAL BAR OVERLAY","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D2"},8403:{"value":"20D3","name":"COMBINING SHORT VERTICAL LINE OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING SHORT VERTICAL BAR OVERLAY","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D3"},8404:{"value":"20D4","name":"COMBINING ANTICLOCKWISE ARROW ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING ANTICLOCKWISE ARROW ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D4"},8405:{"value":"20D5","name":"COMBINING CLOCKWISE ARROW ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING CLOCKWISE ARROW ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D5"},8406:{"value":"20D6","name":"COMBINING LEFT ARROW ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING LEFT ARROW ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D6"},8407:{"value":"20D7","name":"COMBINING RIGHT ARROW ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING RIGHT ARROW ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D7"},8408:{"value":"20D8","name":"COMBINING RING OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING RING OVERLAY","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D8"},8409:{"value":"20D9","name":"COMBINING CLOCKWISE RING OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING CLOCKWISE RING OVERLAY","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20D9"},8410:{"value":"20DA","name":"COMBINING ANTICLOCKWISE RING OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING ANTICLOCKWISE RING OVERLAY","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20DA"},8411:{"value":"20DB","name":"COMBINING THREE DOTS ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING THREE DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20DB"},8412:{"value":"20DC","name":"COMBINING FOUR DOTS ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING FOUR DOTS ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20DC"},8417:{"value":"20E1","name":"COMBINING LEFT RIGHT ARROW ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING LEFT RIGHT ARROW ABOVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E1"},8421:{"value":"20E5","name":"COMBINING REVERSE SOLIDUS OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E5"},8422:{"value":"20E6","name":"COMBINING DOUBLE VERTICAL STROKE OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E6"},8423:{"value":"20E7","name":"COMBINING ANNUITY SYMBOL","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E7"},8424:{"value":"20E8","name":"COMBINING TRIPLE UNDERDOT","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E8"},8425:{"value":"20E9","name":"COMBINING WIDE BRIDGE ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20E9"},8426:{"value":"20EA","name":"COMBINING LEFTWARDS ARROW OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20EA"},8427:{"value":"20EB","name":"COMBINING LONG DOUBLE SOLIDUS OVERLAY","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20EB"},8428:{"value":"20EC","name":"COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20EC"},8429:{"value":"20ED","name":"COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20ED"},8430:{"value":"20EE","name":"COMBINING LEFT ARROW BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20EE"},8431:{"value":"20EF","name":"COMBINING RIGHT ARROW BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20EF"},8432:{"value":"20F0","name":"COMBINING ASTERISK ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u20F0"},11503:{"value":"2CEF","name":"COPTIC COMBINING NI ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2CEF"},11504:{"value":"2CF0","name":"COPTIC COMBINING SPIRITUS ASPER","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2CF0"},11505:{"value":"2CF1","name":"COPTIC COMBINING SPIRITUS LENIS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2CF1"},11647:{"value":"2D7F","name":"TIFINAGH CONSONANT JOINER","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2D7F"},11744:{"value":"2DE0","name":"COMBINING CYRILLIC LETTER BE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DE0"},11745:{"value":"2DE1","name":"COMBINING CYRILLIC LETTER VE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DE1"},11746:{"value":"2DE2","name":"COMBINING CYRILLIC LETTER GHE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DE2"},11747:{"value":"2DE3","name":"COMBINING CYRILLIC LETTER DE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DE3"},11748:{"value":"2DE4","name":"COMBINING CYRILLIC LETTER ZHE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DE4"},11749:{"value":"2DE5","name":"COMBINING CYRILLIC LETTER ZE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DE5"},11750:{"value":"2DE6","name":"COMBINING CYRILLIC LETTER KA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DE6"},11751:{"value":"2DE7","name":"COMBINING CYRILLIC LETTER EL","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DE7"},11752:{"value":"2DE8","name":"COMBINING CYRILLIC LETTER EM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DE8"},11753:{"value":"2DE9","name":"COMBINING CYRILLIC LETTER EN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DE9"},11754:{"value":"2DEA","name":"COMBINING CYRILLIC LETTER O","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DEA"},11755:{"value":"2DEB","name":"COMBINING CYRILLIC LETTER PE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DEB"},11756:{"value":"2DEC","name":"COMBINING CYRILLIC LETTER ER","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DEC"},11757:{"value":"2DED","name":"COMBINING CYRILLIC LETTER ES","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DED"},11758:{"value":"2DEE","name":"COMBINING CYRILLIC LETTER TE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DEE"},11759:{"value":"2DEF","name":"COMBINING CYRILLIC LETTER HA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DEF"},11760:{"value":"2DF0","name":"COMBINING CYRILLIC LETTER TSE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DF0"},11761:{"value":"2DF1","name":"COMBINING CYRILLIC LETTER CHE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DF1"},11762:{"value":"2DF2","name":"COMBINING CYRILLIC LETTER SHA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DF2"},11763:{"value":"2DF3","name":"COMBINING CYRILLIC LETTER SHCHA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DF3"},11764:{"value":"2DF4","name":"COMBINING CYRILLIC LETTER FITA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DF4"},11765:{"value":"2DF5","name":"COMBINING CYRILLIC LETTER ES-TE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DF5"},11766:{"value":"2DF6","name":"COMBINING CYRILLIC LETTER A","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DF6"},11767:{"value":"2DF7","name":"COMBINING CYRILLIC LETTER IE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DF7"},11768:{"value":"2DF8","name":"COMBINING CYRILLIC LETTER DJERV","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DF8"},11769:{"value":"2DF9","name":"COMBINING CYRILLIC LETTER MONOGRAPH UK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DF9"},11770:{"value":"2DFA","name":"COMBINING CYRILLIC LETTER YAT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DFA"},11771:{"value":"2DFB","name":"COMBINING CYRILLIC LETTER YU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DFB"},11772:{"value":"2DFC","name":"COMBINING CYRILLIC LETTER IOTIFIED A","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DFC"},11773:{"value":"2DFD","name":"COMBINING CYRILLIC LETTER LITTLE YUS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DFD"},11774:{"value":"2DFE","name":"COMBINING CYRILLIC LETTER BIG YUS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DFE"},11775:{"value":"2DFF","name":"COMBINING CYRILLIC LETTER IOTIFIED BIG YUS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2DFF"},12330:{"value":"302A","name":"IDEOGRAPHIC LEVEL TONE MARK","category":"Mn","class":"218","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302A"},12331:{"value":"302B","name":"IDEOGRAPHIC RISING TONE MARK","category":"Mn","class":"228","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302B"},12332:{"value":"302C","name":"IDEOGRAPHIC DEPARTING TONE MARK","category":"Mn","class":"232","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302C"},12333:{"value":"302D","name":"IDEOGRAPHIC ENTERING TONE MARK","category":"Mn","class":"222","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302D"},12441:{"value":"3099","name":"COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK","category":"Mn","class":"8","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u3099"},12442:{"value":"309A","name":"COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK","category":"Mn","class":"8","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u309A"},42607:{"value":"A66F","name":"COMBINING CYRILLIC VZMET","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA66F"},42612:{"value":"A674","name":"COMBINING CYRILLIC LETTER UKRAINIAN IE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA674"},42613:{"value":"A675","name":"COMBINING CYRILLIC LETTER I","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA675"},42614:{"value":"A676","name":"COMBINING CYRILLIC LETTER YI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA676"},42615:{"value":"A677","name":"COMBINING CYRILLIC LETTER U","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA677"},42616:{"value":"A678","name":"COMBINING CYRILLIC LETTER HARD SIGN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA678"},42617:{"value":"A679","name":"COMBINING CYRILLIC LETTER YERU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA679"},42618:{"value":"A67A","name":"COMBINING CYRILLIC LETTER SOFT SIGN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA67A"},42619:{"value":"A67B","name":"COMBINING CYRILLIC LETTER OMEGA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA67B"},42620:{"value":"A67C","name":"COMBINING CYRILLIC KAVYKA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA67C"},42621:{"value":"A67D","name":"COMBINING CYRILLIC PAYEROK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA67D"},42654:{"value":"A69E","name":"COMBINING CYRILLIC LETTER EF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA69E"},42655:{"value":"A69F","name":"COMBINING CYRILLIC LETTER IOTIFIED E","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA69F"},42736:{"value":"A6F0","name":"BAMUM COMBINING MARK KOQNDON","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6F0"},42737:{"value":"A6F1","name":"BAMUM COMBINING MARK TUKWENTIS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA6F1"},43010:{"value":"A802","name":"SYLOTI NAGRI SIGN DVISVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA802"},43014:{"value":"A806","name":"SYLOTI NAGRI SIGN HASANTA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA806"},43019:{"value":"A80B","name":"SYLOTI NAGRI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA80B"},43045:{"value":"A825","name":"SYLOTI NAGRI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA825"},43046:{"value":"A826","name":"SYLOTI NAGRI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA826"},43204:{"value":"A8C4","name":"SAURASHTRA SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8C4"},43205:{"value":"A8C5","name":"SAURASHTRA SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8C5"},43232:{"value":"A8E0","name":"COMBINING DEVANAGARI DIGIT ZERO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8E0"},43233:{"value":"A8E1","name":"COMBINING DEVANAGARI DIGIT ONE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8E1"},43234:{"value":"A8E2","name":"COMBINING DEVANAGARI DIGIT TWO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8E2"},43235:{"value":"A8E3","name":"COMBINING DEVANAGARI DIGIT THREE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8E3"},43236:{"value":"A8E4","name":"COMBINING DEVANAGARI DIGIT FOUR","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8E4"},43237:{"value":"A8E5","name":"COMBINING DEVANAGARI DIGIT FIVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8E5"},43238:{"value":"A8E6","name":"COMBINING DEVANAGARI DIGIT SIX","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8E6"},43239:{"value":"A8E7","name":"COMBINING DEVANAGARI DIGIT SEVEN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8E7"},43240:{"value":"A8E8","name":"COMBINING DEVANAGARI DIGIT EIGHT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8E8"},43241:{"value":"A8E9","name":"COMBINING DEVANAGARI DIGIT NINE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8E9"},43242:{"value":"A8EA","name":"COMBINING DEVANAGARI LETTER A","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8EA"},43243:{"value":"A8EB","name":"COMBINING DEVANAGARI LETTER U","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8EB"},43244:{"value":"A8EC","name":"COMBINING DEVANAGARI LETTER KA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8EC"},43245:{"value":"A8ED","name":"COMBINING DEVANAGARI LETTER NA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8ED"},43246:{"value":"A8EE","name":"COMBINING DEVANAGARI LETTER PA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8EE"},43247:{"value":"A8EF","name":"COMBINING DEVANAGARI LETTER RA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8EF"},43248:{"value":"A8F0","name":"COMBINING DEVANAGARI LETTER VI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8F0"},43249:{"value":"A8F1","name":"COMBINING DEVANAGARI SIGN AVAGRAHA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8F1"},43263:{"value":"A8FF","name":"DEVANAGARI VOWEL SIGN AY","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8FF"},43302:{"value":"A926","name":"KAYAH LI VOWEL UE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA926"},43303:{"value":"A927","name":"KAYAH LI VOWEL E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA927"},43304:{"value":"A928","name":"KAYAH LI VOWEL U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA928"},43305:{"value":"A929","name":"KAYAH LI VOWEL EE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA929"},43306:{"value":"A92A","name":"KAYAH LI VOWEL O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA92A"},43307:{"value":"A92B","name":"KAYAH LI TONE PLOPHU","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA92B"},43308:{"value":"A92C","name":"KAYAH LI TONE CALYA","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA92C"},43309:{"value":"A92D","name":"KAYAH LI TONE CALYA PLOPHU","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA92D"},43335:{"value":"A947","name":"REJANG VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA947"},43336:{"value":"A948","name":"REJANG VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA948"},43337:{"value":"A949","name":"REJANG VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA949"},43338:{"value":"A94A","name":"REJANG VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA94A"},43339:{"value":"A94B","name":"REJANG VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA94B"},43340:{"value":"A94C","name":"REJANG VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA94C"},43341:{"value":"A94D","name":"REJANG VOWEL SIGN EU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA94D"},43342:{"value":"A94E","name":"REJANG VOWEL SIGN EA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA94E"},43343:{"value":"A94F","name":"REJANG CONSONANT SIGN NG","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA94F"},43344:{"value":"A950","name":"REJANG CONSONANT SIGN N","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA950"},43345:{"value":"A951","name":"REJANG CONSONANT SIGN R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA951"},43392:{"value":"A980","name":"JAVANESE SIGN PANYANGGA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA980"},43393:{"value":"A981","name":"JAVANESE SIGN CECAK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA981"},43394:{"value":"A982","name":"JAVANESE SIGN LAYAR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA982"},43443:{"value":"A9B3","name":"JAVANESE SIGN CECAK TELU","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9B3"},43446:{"value":"A9B6","name":"JAVANESE VOWEL SIGN WULU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9B6"},43447:{"value":"A9B7","name":"JAVANESE VOWEL SIGN WULU MELIK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9B7"},43448:{"value":"A9B8","name":"JAVANESE VOWEL SIGN SUKU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9B8"},43449:{"value":"A9B9","name":"JAVANESE VOWEL SIGN SUKU MENDUT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9B9"},43452:{"value":"A9BC","name":"JAVANESE VOWEL SIGN PEPET","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9BC"},43493:{"value":"A9E5","name":"MYANMAR SIGN SHAN SAW","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9E5"},43561:{"value":"AA29","name":"CHAM VOWEL SIGN AA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA29"},43562:{"value":"AA2A","name":"CHAM VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA2A"},43563:{"value":"AA2B","name":"CHAM VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA2B"},43564:{"value":"AA2C","name":"CHAM VOWEL SIGN EI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA2C"},43565:{"value":"AA2D","name":"CHAM VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA2D"},43566:{"value":"AA2E","name":"CHAM VOWEL SIGN OE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA2E"},43569:{"value":"AA31","name":"CHAM VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA31"},43570:{"value":"AA32","name":"CHAM VOWEL SIGN UE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA32"},43573:{"value":"AA35","name":"CHAM CONSONANT SIGN LA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA35"},43574:{"value":"AA36","name":"CHAM CONSONANT SIGN WA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA36"},43587:{"value":"AA43","name":"CHAM CONSONANT SIGN FINAL NG","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA43"},43596:{"value":"AA4C","name":"CHAM CONSONANT SIGN FINAL M","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA4C"},43644:{"value":"AA7C","name":"MYANMAR SIGN TAI LAING TONE-2","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA7C"},43696:{"value":"AAB0","name":"TAI VIET MAI KANG","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAB0"},43698:{"value":"AAB2","name":"TAI VIET VOWEL I","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAB2"},43699:{"value":"AAB3","name":"TAI VIET VOWEL UE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAB3"},43700:{"value":"AAB4","name":"TAI VIET VOWEL U","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAB4"},43703:{"value":"AAB7","name":"TAI VIET MAI KHIT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAB7"},43704:{"value":"AAB8","name":"TAI VIET VOWEL IA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAB8"},43710:{"value":"AABE","name":"TAI VIET VOWEL AM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAABE"},43711:{"value":"AABF","name":"TAI VIET TONE MAI EK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAABF"},43713:{"value":"AAC1","name":"TAI VIET TONE MAI THO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAC1"},43756:{"value":"AAEC","name":"MEETEI MAYEK VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAEC"},43757:{"value":"AAED","name":"MEETEI MAYEK VOWEL SIGN AAI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAED"},43766:{"value":"AAF6","name":"MEETEI MAYEK VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAF6"},44005:{"value":"ABE5","name":"MEETEI MAYEK VOWEL SIGN ANAP","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABE5"},44008:{"value":"ABE8","name":"MEETEI MAYEK VOWEL SIGN UNAP","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABE8"},44013:{"value":"ABED","name":"MEETEI MAYEK APUN IYEK","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABED"},64286:{"value":"FB1E","name":"HEBREW POINT JUDEO-SPANISH VARIKA","category":"Mn","class":"26","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"HEBREW POINT VARIKA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFB1E"},65024:{"value":"FE00","name":"VARIATION SELECTOR-1","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE00"},65025:{"value":"FE01","name":"VARIATION SELECTOR-2","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE01"},65026:{"value":"FE02","name":"VARIATION SELECTOR-3","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE02"},65027:{"value":"FE03","name":"VARIATION SELECTOR-4","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE03"},65028:{"value":"FE04","name":"VARIATION SELECTOR-5","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE04"},65029:{"value":"FE05","name":"VARIATION SELECTOR-6","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE05"},65030:{"value":"FE06","name":"VARIATION SELECTOR-7","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE06"},65031:{"value":"FE07","name":"VARIATION SELECTOR-8","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE07"},65032:{"value":"FE08","name":"VARIATION SELECTOR-9","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE08"},65033:{"value":"FE09","name":"VARIATION SELECTOR-10","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE09"},65034:{"value":"FE0A","name":"VARIATION SELECTOR-11","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE0A"},65035:{"value":"FE0B","name":"VARIATION SELECTOR-12","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE0B"},65036:{"value":"FE0C","name":"VARIATION SELECTOR-13","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE0C"},65037:{"value":"FE0D","name":"VARIATION SELECTOR-14","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE0D"},65038:{"value":"FE0E","name":"VARIATION SELECTOR-15","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE0E"},65039:{"value":"FE0F","name":"VARIATION SELECTOR-16","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE0F"},65056:{"value":"FE20","name":"COMBINING LIGATURE LEFT HALF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE20"},65057:{"value":"FE21","name":"COMBINING LIGATURE RIGHT HALF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE21"},65058:{"value":"FE22","name":"COMBINING DOUBLE TILDE LEFT HALF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE22"},65059:{"value":"FE23","name":"COMBINING DOUBLE TILDE RIGHT HALF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE23"},65060:{"value":"FE24","name":"COMBINING MACRON LEFT HALF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE24"},65061:{"value":"FE25","name":"COMBINING MACRON RIGHT HALF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE25"},65062:{"value":"FE26","name":"COMBINING CONJOINING MACRON","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE26"},65063:{"value":"FE27","name":"COMBINING LIGATURE LEFT HALF BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE27"},65064:{"value":"FE28","name":"COMBINING LIGATURE RIGHT HALF BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE28"},65065:{"value":"FE29","name":"COMBINING TILDE LEFT HALF BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE29"},65066:{"value":"FE2A","name":"COMBINING TILDE RIGHT HALF BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE2A"},65067:{"value":"FE2B","name":"COMBINING MACRON LEFT HALF BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE2B"},65068:{"value":"FE2C","name":"COMBINING MACRON RIGHT HALF BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE2C"},65069:{"value":"FE2D","name":"COMBINING CONJOINING MACRON BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE2D"},65070:{"value":"FE2E","name":"COMBINING CYRILLIC TITLO LEFT HALF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE2E"},65071:{"value":"FE2F","name":"COMBINING CYRILLIC TITLO RIGHT HALF","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE2F"},66045:{"value":"101FD","name":"PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01FD"},66272:{"value":"102E0","name":"COPTIC EPACT THOUSANDS MARK","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u02E0"},66422:{"value":"10376","name":"COMBINING OLD PERMIC LETTER AN","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0376"},66423:{"value":"10377","name":"COMBINING OLD PERMIC LETTER DOI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0377"},66424:{"value":"10378","name":"COMBINING OLD PERMIC LETTER ZATA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0378"},66425:{"value":"10379","name":"COMBINING OLD PERMIC LETTER NENOE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0379"},66426:{"value":"1037A","name":"COMBINING OLD PERMIC LETTER SII","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u037A"},68097:{"value":"10A01","name":"KHAROSHTHI VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A01"},68098:{"value":"10A02","name":"KHAROSHTHI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A02"},68099:{"value":"10A03","name":"KHAROSHTHI VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A03"},68101:{"value":"10A05","name":"KHAROSHTHI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A05"},68102:{"value":"10A06","name":"KHAROSHTHI VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A06"},68108:{"value":"10A0C","name":"KHAROSHTHI VOWEL LENGTH MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A0C"},68109:{"value":"10A0D","name":"KHAROSHTHI SIGN DOUBLE RING BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A0D"},68110:{"value":"10A0E","name":"KHAROSHTHI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A0E"},68111:{"value":"10A0F","name":"KHAROSHTHI SIGN VISARGA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A0F"},68152:{"value":"10A38","name":"KHAROSHTHI SIGN BAR ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A38"},68153:{"value":"10A39","name":"KHAROSHTHI SIGN CAUDA","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A39"},68154:{"value":"10A3A","name":"KHAROSHTHI SIGN DOT BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A3A"},68159:{"value":"10A3F","name":"KHAROSHTHI VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A3F"},68325:{"value":"10AE5","name":"MANICHAEAN ABBREVIATION MARK ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE5"},68326:{"value":"10AE6","name":"MANICHAEAN ABBREVIATION MARK BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE6"},68900:{"value":"10D24","name":"HANIFI ROHINGYA SIGN HARBAHAY","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D24"},68901:{"value":"10D25","name":"HANIFI ROHINGYA SIGN TAHALA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D25"},68902:{"value":"10D26","name":"HANIFI ROHINGYA SIGN TANA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D26"},68903:{"value":"10D27","name":"HANIFI ROHINGYA SIGN TASSI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D27"},69446:{"value":"10F46","name":"SOGDIAN COMBINING DOT BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F46"},69447:{"value":"10F47","name":"SOGDIAN COMBINING TWO DOTS BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F47"},69448:{"value":"10F48","name":"SOGDIAN COMBINING DOT ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F48"},69449:{"value":"10F49","name":"SOGDIAN COMBINING TWO DOTS ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F49"},69450:{"value":"10F4A","name":"SOGDIAN COMBINING CURVE ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4A"},69451:{"value":"10F4B","name":"SOGDIAN COMBINING CURVE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4B"},69452:{"value":"10F4C","name":"SOGDIAN COMBINING HOOK ABOVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4C"},69453:{"value":"10F4D","name":"SOGDIAN COMBINING HOOK BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4D"},69454:{"value":"10F4E","name":"SOGDIAN COMBINING LONG HOOK BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4E"},69455:{"value":"10F4F","name":"SOGDIAN COMBINING RESH BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F4F"},69456:{"value":"10F50","name":"SOGDIAN COMBINING STROKE BELOW","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F50"},69633:{"value":"11001","name":"BRAHMI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1001"},69688:{"value":"11038","name":"BRAHMI VOWEL SIGN AA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1038"},69689:{"value":"11039","name":"BRAHMI VOWEL SIGN BHATTIPROLU AA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1039"},69690:{"value":"1103A","name":"BRAHMI VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103A"},69691:{"value":"1103B","name":"BRAHMI VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103B"},69692:{"value":"1103C","name":"BRAHMI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103C"},69693:{"value":"1103D","name":"BRAHMI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103D"},69694:{"value":"1103E","name":"BRAHMI VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103E"},69695:{"value":"1103F","name":"BRAHMI VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103F"},69696:{"value":"11040","name":"BRAHMI VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1040"},69697:{"value":"11041","name":"BRAHMI VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1041"},69698:{"value":"11042","name":"BRAHMI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1042"},69699:{"value":"11043","name":"BRAHMI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1043"},69700:{"value":"11044","name":"BRAHMI VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1044"},69701:{"value":"11045","name":"BRAHMI VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1045"},69702:{"value":"11046","name":"BRAHMI VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1046"},69759:{"value":"1107F","name":"BRAHMI NUMBER JOINER","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u107F"},69760:{"value":"11080","name":"KAITHI SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1080"},69761:{"value":"11081","name":"KAITHI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1081"},69811:{"value":"110B3","name":"KAITHI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10B3"},69812:{"value":"110B4","name":"KAITHI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10B4"},69813:{"value":"110B5","name":"KAITHI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10B5"},69814:{"value":"110B6","name":"KAITHI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10B6"},69817:{"value":"110B9","name":"KAITHI SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10B9"},69818:{"value":"110BA","name":"KAITHI SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10BA"},69888:{"value":"11100","name":"CHAKMA SIGN CANDRABINDU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1100"},69889:{"value":"11101","name":"CHAKMA SIGN ANUSVARA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1101"},69890:{"value":"11102","name":"CHAKMA SIGN VISARGA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1102"},69927:{"value":"11127","name":"CHAKMA VOWEL SIGN A","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1127"},69928:{"value":"11128","name":"CHAKMA VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1128"},69929:{"value":"11129","name":"CHAKMA VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1129"},69930:{"value":"1112A","name":"CHAKMA VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112A"},69931:{"value":"1112B","name":"CHAKMA VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112B"},69933:{"value":"1112D","name":"CHAKMA VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112D"},69934:{"value":"1112E","name":"CHAKMA VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"11131 11127","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112E"},69935:{"value":"1112F","name":"CHAKMA VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"11132 11127","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112F"},69936:{"value":"11130","name":"CHAKMA VOWEL SIGN OI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1130"},69937:{"value":"11131","name":"CHAKMA O MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1131"},69938:{"value":"11132","name":"CHAKMA AU MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1132"},69939:{"value":"11133","name":"CHAKMA VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1133"},69940:{"value":"11134","name":"CHAKMA MAAYYAA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1134"},70003:{"value":"11173","name":"MAHAJANI SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1173"},70016:{"value":"11180","name":"SHARADA SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1180"},70017:{"value":"11181","name":"SHARADA SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1181"},70070:{"value":"111B6","name":"SHARADA VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B6"},70071:{"value":"111B7","name":"SHARADA VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B7"},70072:{"value":"111B8","name":"SHARADA VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B8"},70073:{"value":"111B9","name":"SHARADA VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B9"},70074:{"value":"111BA","name":"SHARADA VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BA"},70075:{"value":"111BB","name":"SHARADA VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BB"},70076:{"value":"111BC","name":"SHARADA VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BC"},70077:{"value":"111BD","name":"SHARADA VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BD"},70078:{"value":"111BE","name":"SHARADA VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BE"},70089:{"value":"111C9","name":"SHARADA SANDHI MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C9"},70090:{"value":"111CA","name":"SHARADA SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11CA"},70091:{"value":"111CB","name":"SHARADA VOWEL MODIFIER MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11CB"},70092:{"value":"111CC","name":"SHARADA EXTRA SHORT VOWEL MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11CC"},70191:{"value":"1122F","name":"KHOJKI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122F"},70192:{"value":"11230","name":"KHOJKI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1230"},70193:{"value":"11231","name":"KHOJKI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1231"},70196:{"value":"11234","name":"KHOJKI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1234"},70198:{"value":"11236","name":"KHOJKI SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1236"},70199:{"value":"11237","name":"KHOJKI SIGN SHADDA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1237"},70206:{"value":"1123E","name":"KHOJKI SIGN SUKUN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u123E"},70367:{"value":"112DF","name":"KHUDAWADI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12DF"},70371:{"value":"112E3","name":"KHUDAWADI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E3"},70372:{"value":"112E4","name":"KHUDAWADI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E4"},70373:{"value":"112E5","name":"KHUDAWADI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E5"},70374:{"value":"112E6","name":"KHUDAWADI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E6"},70375:{"value":"112E7","name":"KHUDAWADI VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E7"},70376:{"value":"112E8","name":"KHUDAWADI VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E8"},70377:{"value":"112E9","name":"KHUDAWADI SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E9"},70378:{"value":"112EA","name":"KHUDAWADI SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12EA"},70400:{"value":"11300","name":"GRANTHA SIGN COMBINING ANUSVARA ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1300"},70401:{"value":"11301","name":"GRANTHA SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1301"},70459:{"value":"1133B","name":"COMBINING BINDU BELOW","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133B"},70460:{"value":"1133C","name":"GRANTHA SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133C"},70464:{"value":"11340","name":"GRANTHA VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1340"},70502:{"value":"11366","name":"COMBINING GRANTHA DIGIT ZERO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1366"},70503:{"value":"11367","name":"COMBINING GRANTHA DIGIT ONE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1367"},70504:{"value":"11368","name":"COMBINING GRANTHA DIGIT TWO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1368"},70505:{"value":"11369","name":"COMBINING GRANTHA DIGIT THREE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1369"},70506:{"value":"1136A","name":"COMBINING GRANTHA DIGIT FOUR","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u136A"},70507:{"value":"1136B","name":"COMBINING GRANTHA DIGIT FIVE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u136B"},70508:{"value":"1136C","name":"COMBINING GRANTHA DIGIT SIX","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u136C"},70512:{"value":"11370","name":"COMBINING GRANTHA LETTER A","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1370"},70513:{"value":"11371","name":"COMBINING GRANTHA LETTER KA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1371"},70514:{"value":"11372","name":"COMBINING GRANTHA LETTER NA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1372"},70515:{"value":"11373","name":"COMBINING GRANTHA LETTER VI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1373"},70516:{"value":"11374","name":"COMBINING GRANTHA LETTER PA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1374"},70712:{"value":"11438","name":"NEWA VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1438"},70713:{"value":"11439","name":"NEWA VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1439"},70714:{"value":"1143A","name":"NEWA VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143A"},70715:{"value":"1143B","name":"NEWA VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143B"},70716:{"value":"1143C","name":"NEWA VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143C"},70717:{"value":"1143D","name":"NEWA VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143D"},70718:{"value":"1143E","name":"NEWA VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143E"},70719:{"value":"1143F","name":"NEWA VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u143F"},70722:{"value":"11442","name":"NEWA SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1442"},70723:{"value":"11443","name":"NEWA SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1443"},70724:{"value":"11444","name":"NEWA SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1444"},70726:{"value":"11446","name":"NEWA SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1446"},70750:{"value":"1145E","name":"NEWA SANDHI MARK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u145E"},70835:{"value":"114B3","name":"TIRHUTA VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B3"},70836:{"value":"114B4","name":"TIRHUTA VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B4"},70837:{"value":"114B5","name":"TIRHUTA VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B5"},70838:{"value":"114B6","name":"TIRHUTA VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B6"},70839:{"value":"114B7","name":"TIRHUTA VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B7"},70840:{"value":"114B8","name":"TIRHUTA VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B8"},70842:{"value":"114BA","name":"TIRHUTA VOWEL SIGN SHORT E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BA"},70847:{"value":"114BF","name":"TIRHUTA SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BF"},70848:{"value":"114C0","name":"TIRHUTA SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C0"},70850:{"value":"114C2","name":"TIRHUTA SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C2"},70851:{"value":"114C3","name":"TIRHUTA SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C3"},71090:{"value":"115B2","name":"SIDDHAM VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B2"},71091:{"value":"115B3","name":"SIDDHAM VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B3"},71092:{"value":"115B4","name":"SIDDHAM VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B4"},71093:{"value":"115B5","name":"SIDDHAM VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B5"},71100:{"value":"115BC","name":"SIDDHAM SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BC"},71101:{"value":"115BD","name":"SIDDHAM SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BD"},71103:{"value":"115BF","name":"SIDDHAM SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BF"},71104:{"value":"115C0","name":"SIDDHAM SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15C0"},71132:{"value":"115DC","name":"SIDDHAM VOWEL SIGN ALTERNATE U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15DC"},71133:{"value":"115DD","name":"SIDDHAM VOWEL SIGN ALTERNATE UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15DD"},71219:{"value":"11633","name":"MODI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1633"},71220:{"value":"11634","name":"MODI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1634"},71221:{"value":"11635","name":"MODI VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1635"},71222:{"value":"11636","name":"MODI VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1636"},71223:{"value":"11637","name":"MODI VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1637"},71224:{"value":"11638","name":"MODI VOWEL SIGN VOCALIC LL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1638"},71225:{"value":"11639","name":"MODI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1639"},71226:{"value":"1163A","name":"MODI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163A"},71229:{"value":"1163D","name":"MODI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163D"},71231:{"value":"1163F","name":"MODI SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163F"},71232:{"value":"11640","name":"MODI SIGN ARDHACANDRA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1640"},71339:{"value":"116AB","name":"TAKRI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AB"},71341:{"value":"116AD","name":"TAKRI VOWEL SIGN AA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AD"},71344:{"value":"116B0","name":"TAKRI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B0"},71345:{"value":"116B1","name":"TAKRI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B1"},71346:{"value":"116B2","name":"TAKRI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B2"},71347:{"value":"116B3","name":"TAKRI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B3"},71348:{"value":"116B4","name":"TAKRI VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B4"},71349:{"value":"116B5","name":"TAKRI VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B5"},71351:{"value":"116B7","name":"TAKRI SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B7"},71453:{"value":"1171D","name":"AHOM CONSONANT SIGN MEDIAL LA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u171D"},71454:{"value":"1171E","name":"AHOM CONSONANT SIGN MEDIAL RA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u171E"},71455:{"value":"1171F","name":"AHOM CONSONANT SIGN MEDIAL LIGATING RA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u171F"},71458:{"value":"11722","name":"AHOM VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1722"},71459:{"value":"11723","name":"AHOM VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1723"},71460:{"value":"11724","name":"AHOM VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1724"},71461:{"value":"11725","name":"AHOM VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1725"},71463:{"value":"11727","name":"AHOM VOWEL SIGN AW","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1727"},71464:{"value":"11728","name":"AHOM VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1728"},71465:{"value":"11729","name":"AHOM VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1729"},71466:{"value":"1172A","name":"AHOM VOWEL SIGN AM","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u172A"},71467:{"value":"1172B","name":"AHOM SIGN KILLER","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u172B"},71727:{"value":"1182F","name":"DOGRA VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182F"},71728:{"value":"11830","name":"DOGRA VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1830"},71729:{"value":"11831","name":"DOGRA VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1831"},71730:{"value":"11832","name":"DOGRA VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1832"},71731:{"value":"11833","name":"DOGRA VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1833"},71732:{"value":"11834","name":"DOGRA VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1834"},71733:{"value":"11835","name":"DOGRA VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1835"},71734:{"value":"11836","name":"DOGRA VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1836"},71735:{"value":"11837","name":"DOGRA SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1837"},71737:{"value":"11839","name":"DOGRA SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1839"},71738:{"value":"1183A","name":"DOGRA SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u183A"},72193:{"value":"11A01","name":"ZANABAZAR SQUARE VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A01"},72194:{"value":"11A02","name":"ZANABAZAR SQUARE VOWEL SIGN UE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A02"},72195:{"value":"11A03","name":"ZANABAZAR SQUARE VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A03"},72196:{"value":"11A04","name":"ZANABAZAR SQUARE VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A04"},72197:{"value":"11A05","name":"ZANABAZAR SQUARE VOWEL SIGN OE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A05"},72198:{"value":"11A06","name":"ZANABAZAR SQUARE VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A06"},72199:{"value":"11A07","name":"ZANABAZAR SQUARE VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A07"},72200:{"value":"11A08","name":"ZANABAZAR SQUARE VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A08"},72201:{"value":"11A09","name":"ZANABAZAR SQUARE VOWEL SIGN REVERSED I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A09"},72202:{"value":"11A0A","name":"ZANABAZAR SQUARE VOWEL LENGTH MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A0A"},72243:{"value":"11A33","name":"ZANABAZAR SQUARE FINAL CONSONANT MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A33"},72244:{"value":"11A34","name":"ZANABAZAR SQUARE SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A34"},72245:{"value":"11A35","name":"ZANABAZAR SQUARE SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A35"},72246:{"value":"11A36","name":"ZANABAZAR SQUARE SIGN CANDRABINDU WITH ORNAMENT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A36"},72247:{"value":"11A37","name":"ZANABAZAR SQUARE SIGN CANDRA WITH ORNAMENT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A37"},72248:{"value":"11A38","name":"ZANABAZAR SQUARE SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A38"},72251:{"value":"11A3B","name":"ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3B"},72252:{"value":"11A3C","name":"ZANABAZAR SQUARE CLUSTER-FINAL LETTER RA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3C"},72253:{"value":"11A3D","name":"ZANABAZAR SQUARE CLUSTER-FINAL LETTER LA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3D"},72254:{"value":"11A3E","name":"ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A3E"},72263:{"value":"11A47","name":"ZANABAZAR SQUARE SUBJOINER","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A47"},72273:{"value":"11A51","name":"SOYOMBO VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A51"},72274:{"value":"11A52","name":"SOYOMBO VOWEL SIGN UE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A52"},72275:{"value":"11A53","name":"SOYOMBO VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A53"},72276:{"value":"11A54","name":"SOYOMBO VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A54"},72277:{"value":"11A55","name":"SOYOMBO VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A55"},72278:{"value":"11A56","name":"SOYOMBO VOWEL SIGN OE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A56"},72281:{"value":"11A59","name":"SOYOMBO VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A59"},72282:{"value":"11A5A","name":"SOYOMBO VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5A"},72283:{"value":"11A5B","name":"SOYOMBO VOWEL LENGTH MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A5B"},72330:{"value":"11A8A","name":"SOYOMBO FINAL CONSONANT SIGN G","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A8A"},72331:{"value":"11A8B","name":"SOYOMBO FINAL CONSONANT SIGN K","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A8B"},72332:{"value":"11A8C","name":"SOYOMBO FINAL CONSONANT SIGN NG","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A8C"},72333:{"value":"11A8D","name":"SOYOMBO FINAL CONSONANT SIGN D","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A8D"},72334:{"value":"11A8E","name":"SOYOMBO FINAL CONSONANT SIGN N","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A8E"},72335:{"value":"11A8F","name":"SOYOMBO FINAL CONSONANT SIGN B","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A8F"},72336:{"value":"11A90","name":"SOYOMBO FINAL CONSONANT SIGN M","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A90"},72337:{"value":"11A91","name":"SOYOMBO FINAL CONSONANT SIGN R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A91"},72338:{"value":"11A92","name":"SOYOMBO FINAL CONSONANT SIGN L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A92"},72339:{"value":"11A93","name":"SOYOMBO FINAL CONSONANT SIGN SH","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A93"},72340:{"value":"11A94","name":"SOYOMBO FINAL CONSONANT SIGN S","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A94"},72341:{"value":"11A95","name":"SOYOMBO FINAL CONSONANT SIGN -A","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A95"},72342:{"value":"11A96","name":"SOYOMBO SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A96"},72344:{"value":"11A98","name":"SOYOMBO GEMINATION MARK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A98"},72345:{"value":"11A99","name":"SOYOMBO SUBJOINER","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A99"},72752:{"value":"11C30","name":"BHAIKSUKI VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C30"},72753:{"value":"11C31","name":"BHAIKSUKI VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C31"},72754:{"value":"11C32","name":"BHAIKSUKI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C32"},72755:{"value":"11C33","name":"BHAIKSUKI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C33"},72756:{"value":"11C34","name":"BHAIKSUKI VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C34"},72757:{"value":"11C35","name":"BHAIKSUKI VOWEL SIGN VOCALIC RR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C35"},72758:{"value":"11C36","name":"BHAIKSUKI VOWEL SIGN VOCALIC L","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C36"},72760:{"value":"11C38","name":"BHAIKSUKI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C38"},72761:{"value":"11C39","name":"BHAIKSUKI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C39"},72762:{"value":"11C3A","name":"BHAIKSUKI VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C3A"},72763:{"value":"11C3B","name":"BHAIKSUKI VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C3B"},72764:{"value":"11C3C","name":"BHAIKSUKI SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C3C"},72765:{"value":"11C3D","name":"BHAIKSUKI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C3D"},72767:{"value":"11C3F","name":"BHAIKSUKI SIGN VIRAMA","category":"Mn","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C3F"},72850:{"value":"11C92","name":"MARCHEN SUBJOINED LETTER KA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C92"},72851:{"value":"11C93","name":"MARCHEN SUBJOINED LETTER KHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C93"},72852:{"value":"11C94","name":"MARCHEN SUBJOINED LETTER GA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C94"},72853:{"value":"11C95","name":"MARCHEN SUBJOINED LETTER NGA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C95"},72854:{"value":"11C96","name":"MARCHEN SUBJOINED LETTER CA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C96"},72855:{"value":"11C97","name":"MARCHEN SUBJOINED LETTER CHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C97"},72856:{"value":"11C98","name":"MARCHEN SUBJOINED LETTER JA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C98"},72857:{"value":"11C99","name":"MARCHEN SUBJOINED LETTER NYA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C99"},72858:{"value":"11C9A","name":"MARCHEN SUBJOINED LETTER TA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C9A"},72859:{"value":"11C9B","name":"MARCHEN SUBJOINED LETTER THA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C9B"},72860:{"value":"11C9C","name":"MARCHEN SUBJOINED LETTER DA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C9C"},72861:{"value":"11C9D","name":"MARCHEN SUBJOINED LETTER NA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C9D"},72862:{"value":"11C9E","name":"MARCHEN SUBJOINED LETTER PA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C9E"},72863:{"value":"11C9F","name":"MARCHEN SUBJOINED LETTER PHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C9F"},72864:{"value":"11CA0","name":"MARCHEN SUBJOINED LETTER BA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CA0"},72865:{"value":"11CA1","name":"MARCHEN SUBJOINED LETTER MA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CA1"},72866:{"value":"11CA2","name":"MARCHEN SUBJOINED LETTER TSA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CA2"},72867:{"value":"11CA3","name":"MARCHEN SUBJOINED LETTER TSHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CA3"},72868:{"value":"11CA4","name":"MARCHEN SUBJOINED LETTER DZA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CA4"},72869:{"value":"11CA5","name":"MARCHEN SUBJOINED LETTER WA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CA5"},72870:{"value":"11CA6","name":"MARCHEN SUBJOINED LETTER ZHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CA6"},72871:{"value":"11CA7","name":"MARCHEN SUBJOINED LETTER ZA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CA7"},72874:{"value":"11CAA","name":"MARCHEN SUBJOINED LETTER RA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CAA"},72875:{"value":"11CAB","name":"MARCHEN SUBJOINED LETTER LA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CAB"},72876:{"value":"11CAC","name":"MARCHEN SUBJOINED LETTER SHA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CAC"},72877:{"value":"11CAD","name":"MARCHEN SUBJOINED LETTER SA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CAD"},72878:{"value":"11CAE","name":"MARCHEN SUBJOINED LETTER HA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CAE"},72879:{"value":"11CAF","name":"MARCHEN SUBJOINED LETTER A","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CAF"},72880:{"value":"11CB0","name":"MARCHEN VOWEL SIGN AA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CB0"},72882:{"value":"11CB2","name":"MARCHEN VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CB2"},72883:{"value":"11CB3","name":"MARCHEN VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CB3"},72885:{"value":"11CB5","name":"MARCHEN SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CB5"},72886:{"value":"11CB6","name":"MARCHEN SIGN CANDRABINDU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CB6"},73009:{"value":"11D31","name":"MASARAM GONDI VOWEL SIGN AA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D31"},73010:{"value":"11D32","name":"MASARAM GONDI VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D32"},73011:{"value":"11D33","name":"MASARAM GONDI VOWEL SIGN II","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D33"},73012:{"value":"11D34","name":"MASARAM GONDI VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D34"},73013:{"value":"11D35","name":"MASARAM GONDI VOWEL SIGN UU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D35"},73014:{"value":"11D36","name":"MASARAM GONDI VOWEL SIGN VOCALIC R","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D36"},73018:{"value":"11D3A","name":"MASARAM GONDI VOWEL SIGN E","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D3A"},73020:{"value":"11D3C","name":"MASARAM GONDI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D3C"},73021:{"value":"11D3D","name":"MASARAM GONDI VOWEL SIGN O","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D3D"},73023:{"value":"11D3F","name":"MASARAM GONDI VOWEL SIGN AU","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D3F"},73024:{"value":"11D40","name":"MASARAM GONDI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D40"},73025:{"value":"11D41","name":"MASARAM GONDI SIGN VISARGA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D41"},73026:{"value":"11D42","name":"MASARAM GONDI SIGN NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D42"},73027:{"value":"11D43","name":"MASARAM GONDI SIGN CANDRA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D43"},73028:{"value":"11D44","name":"MASARAM GONDI SIGN HALANTA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D44"},73029:{"value":"11D45","name":"MASARAM GONDI VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D45"},73031:{"value":"11D47","name":"MASARAM GONDI RA-KARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D47"},73104:{"value":"11D90","name":"GUNJALA GONDI VOWEL SIGN EE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D90"},73105:{"value":"11D91","name":"GUNJALA GONDI VOWEL SIGN AI","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D91"},73109:{"value":"11D95","name":"GUNJALA GONDI SIGN ANUSVARA","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D95"},73111:{"value":"11D97","name":"GUNJALA GONDI VIRAMA","category":"Mn","class":"9","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D97"},73459:{"value":"11EF3","name":"MAKASAR VOWEL SIGN I","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EF3"},73460:{"value":"11EF4","name":"MAKASAR VOWEL SIGN U","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EF4"},92912:{"value":"16AF0","name":"BASSA VAH COMBINING HIGH TONE","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AF0"},92913:{"value":"16AF1","name":"BASSA VAH COMBINING LOW TONE","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AF1"},92914:{"value":"16AF2","name":"BASSA VAH COMBINING MID TONE","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AF2"},92915:{"value":"16AF3","name":"BASSA VAH COMBINING LOW-MID TONE","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AF3"},92916:{"value":"16AF4","name":"BASSA VAH COMBINING HIGH-LOW TONE","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6AF4"},92976:{"value":"16B30","name":"PAHAWH HMONG MARK CIM TUB","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B30"},92977:{"value":"16B31","name":"PAHAWH HMONG MARK CIM SO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B31"},92978:{"value":"16B32","name":"PAHAWH HMONG MARK CIM KES","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B32"},92979:{"value":"16B33","name":"PAHAWH HMONG MARK CIM KHAV","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B33"},92980:{"value":"16B34","name":"PAHAWH HMONG MARK CIM SUAM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B34"},92981:{"value":"16B35","name":"PAHAWH HMONG MARK CIM HOM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B35"},92982:{"value":"16B36","name":"PAHAWH HMONG MARK CIM TAUM","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B36"},94095:{"value":"16F8F","name":"MIAO TONE RIGHT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F8F"},94096:{"value":"16F90","name":"MIAO TONE TOP RIGHT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F90"},94097:{"value":"16F91","name":"MIAO TONE ABOVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F91"},94098:{"value":"16F92","name":"MIAO TONE BELOW","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F92"},113821:{"value":"1BC9D","name":"DUPLOYAN THICK LETTER SELECTOR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC9D"},113822:{"value":"1BC9E","name":"DUPLOYAN DOUBLE MARK","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uBC9E"},119143:{"value":"1D167","name":"MUSICAL SYMBOL COMBINING TREMOLO-1","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD167"},119144:{"value":"1D168","name":"MUSICAL SYMBOL COMBINING TREMOLO-2","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD168"},119145:{"value":"1D169","name":"MUSICAL SYMBOL COMBINING TREMOLO-3","category":"Mn","class":"1","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD169"},119163:{"value":"1D17B","name":"MUSICAL SYMBOL COMBINING ACCENT","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD17B"},119164:{"value":"1D17C","name":"MUSICAL SYMBOL COMBINING STACCATO","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD17C"},119165:{"value":"1D17D","name":"MUSICAL SYMBOL COMBINING TENUTO","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD17D"},119166:{"value":"1D17E","name":"MUSICAL SYMBOL COMBINING STACCATISSIMO","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD17E"},119167:{"value":"1D17F","name":"MUSICAL SYMBOL COMBINING MARCATO","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD17F"},119168:{"value":"1D180","name":"MUSICAL SYMBOL COMBINING MARCATO-STACCATO","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD180"},119169:{"value":"1D181","name":"MUSICAL SYMBOL COMBINING ACCENT-STACCATO","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD181"},119170:{"value":"1D182","name":"MUSICAL SYMBOL COMBINING LOURE","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD182"},119173:{"value":"1D185","name":"MUSICAL SYMBOL COMBINING DOIT","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD185"},119174:{"value":"1D186","name":"MUSICAL SYMBOL COMBINING RIP","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD186"},119175:{"value":"1D187","name":"MUSICAL SYMBOL COMBINING FLIP","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD187"},119176:{"value":"1D188","name":"MUSICAL SYMBOL COMBINING SMEAR","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD188"},119177:{"value":"1D189","name":"MUSICAL SYMBOL COMBINING BEND","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD189"},119178:{"value":"1D18A","name":"MUSICAL SYMBOL COMBINING DOUBLE TONGUE","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD18A"},119179:{"value":"1D18B","name":"MUSICAL SYMBOL COMBINING TRIPLE TONGUE","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD18B"},119210:{"value":"1D1AA","name":"MUSICAL SYMBOL COMBINING DOWN BOW","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD1AA"},119211:{"value":"1D1AB","name":"MUSICAL SYMBOL COMBINING UP BOW","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD1AB"},119212:{"value":"1D1AC","name":"MUSICAL SYMBOL COMBINING HARMONIC","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD1AC"},119213:{"value":"1D1AD","name":"MUSICAL SYMBOL COMBINING SNAP PIZZICATO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD1AD"},119362:{"value":"1D242","name":"COMBINING GREEK MUSICAL TRISEME","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD242"},119363:{"value":"1D243","name":"COMBINING GREEK MUSICAL TETRASEME","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD243"},119364:{"value":"1D244","name":"COMBINING GREEK MUSICAL PENTASEME","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD244"},121344:{"value":"1DA00","name":"SIGNWRITING HEAD RIM","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA00"},121345:{"value":"1DA01","name":"SIGNWRITING HEAD MOVEMENT-WALLPLANE STRAIGHT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA01"},121346:{"value":"1DA02","name":"SIGNWRITING HEAD MOVEMENT-WALLPLANE TILT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA02"},121347:{"value":"1DA03","name":"SIGNWRITING HEAD MOVEMENT-FLOORPLANE STRAIGHT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA03"},121348:{"value":"1DA04","name":"SIGNWRITING HEAD MOVEMENT-WALLPLANE CURVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA04"},121349:{"value":"1DA05","name":"SIGNWRITING HEAD MOVEMENT-FLOORPLANE CURVE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA05"},121350:{"value":"1DA06","name":"SIGNWRITING HEAD MOVEMENT CIRCLE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA06"},121351:{"value":"1DA07","name":"SIGNWRITING FACE DIRECTION POSITION NOSE FORWARD TILTING","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA07"},121352:{"value":"1DA08","name":"SIGNWRITING FACE DIRECTION POSITION NOSE UP OR DOWN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA08"},121353:{"value":"1DA09","name":"SIGNWRITING FACE DIRECTION POSITION NOSE UP OR DOWN TILTING","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA09"},121354:{"value":"1DA0A","name":"SIGNWRITING EYEBROWS STRAIGHT UP","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA0A"},121355:{"value":"1DA0B","name":"SIGNWRITING EYEBROWS STRAIGHT NEUTRAL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA0B"},121356:{"value":"1DA0C","name":"SIGNWRITING EYEBROWS STRAIGHT DOWN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA0C"},121357:{"value":"1DA0D","name":"SIGNWRITING DREAMY EYEBROWS NEUTRAL DOWN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA0D"},121358:{"value":"1DA0E","name":"SIGNWRITING DREAMY EYEBROWS DOWN NEUTRAL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA0E"},121359:{"value":"1DA0F","name":"SIGNWRITING DREAMY EYEBROWS UP NEUTRAL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA0F"},121360:{"value":"1DA10","name":"SIGNWRITING DREAMY EYEBROWS NEUTRAL UP","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA10"},121361:{"value":"1DA11","name":"SIGNWRITING FOREHEAD NEUTRAL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA11"},121362:{"value":"1DA12","name":"SIGNWRITING FOREHEAD CONTACT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA12"},121363:{"value":"1DA13","name":"SIGNWRITING FOREHEAD WRINKLED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA13"},121364:{"value":"1DA14","name":"SIGNWRITING EYES OPEN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA14"},121365:{"value":"1DA15","name":"SIGNWRITING EYES SQUEEZED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA15"},121366:{"value":"1DA16","name":"SIGNWRITING EYES CLOSED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA16"},121367:{"value":"1DA17","name":"SIGNWRITING EYE BLINK SINGLE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA17"},121368:{"value":"1DA18","name":"SIGNWRITING EYE BLINK MULTIPLE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA18"},121369:{"value":"1DA19","name":"SIGNWRITING EYES HALF OPEN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA19"},121370:{"value":"1DA1A","name":"SIGNWRITING EYES WIDE OPEN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA1A"},121371:{"value":"1DA1B","name":"SIGNWRITING EYES HALF CLOSED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA1B"},121372:{"value":"1DA1C","name":"SIGNWRITING EYES WIDENING MOVEMENT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA1C"},121373:{"value":"1DA1D","name":"SIGNWRITING EYE WINK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA1D"},121374:{"value":"1DA1E","name":"SIGNWRITING EYELASHES UP","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA1E"},121375:{"value":"1DA1F","name":"SIGNWRITING EYELASHES DOWN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA1F"},121376:{"value":"1DA20","name":"SIGNWRITING EYELASHES FLUTTERING","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA20"},121377:{"value":"1DA21","name":"SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA21"},121378:{"value":"1DA22","name":"SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT DOUBLE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA22"},121379:{"value":"1DA23","name":"SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT ALTERNATING","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA23"},121380:{"value":"1DA24","name":"SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA24"},121381:{"value":"1DA25","name":"SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT DOUBLE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA25"},121382:{"value":"1DA26","name":"SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT ALTERNATING","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA26"},121383:{"value":"1DA27","name":"SIGNWRITING EYEGAZE-WALLPLANE CURVED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA27"},121384:{"value":"1DA28","name":"SIGNWRITING EYEGAZE-FLOORPLANE CURVED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA28"},121385:{"value":"1DA29","name":"SIGNWRITING EYEGAZE-WALLPLANE CIRCLING","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA29"},121386:{"value":"1DA2A","name":"SIGNWRITING CHEEKS PUFFED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA2A"},121387:{"value":"1DA2B","name":"SIGNWRITING CHEEKS NEUTRAL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA2B"},121388:{"value":"1DA2C","name":"SIGNWRITING CHEEKS SUCKED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA2C"},121389:{"value":"1DA2D","name":"SIGNWRITING TENSE CHEEKS HIGH","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA2D"},121390:{"value":"1DA2E","name":"SIGNWRITING TENSE CHEEKS MIDDLE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA2E"},121391:{"value":"1DA2F","name":"SIGNWRITING TENSE CHEEKS LOW","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA2F"},121392:{"value":"1DA30","name":"SIGNWRITING EARS","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA30"},121393:{"value":"1DA31","name":"SIGNWRITING NOSE NEUTRAL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA31"},121394:{"value":"1DA32","name":"SIGNWRITING NOSE CONTACT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA32"},121395:{"value":"1DA33","name":"SIGNWRITING NOSE WRINKLES","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA33"},121396:{"value":"1DA34","name":"SIGNWRITING NOSE WIGGLES","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA34"},121397:{"value":"1DA35","name":"SIGNWRITING AIR BLOWING OUT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA35"},121398:{"value":"1DA36","name":"SIGNWRITING AIR SUCKING IN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA36"},121403:{"value":"1DA3B","name":"SIGNWRITING MOUTH CLOSED NEUTRAL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA3B"},121404:{"value":"1DA3C","name":"SIGNWRITING MOUTH CLOSED FORWARD","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA3C"},121405:{"value":"1DA3D","name":"SIGNWRITING MOUTH CLOSED CONTACT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA3D"},121406:{"value":"1DA3E","name":"SIGNWRITING MOUTH SMILE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA3E"},121407:{"value":"1DA3F","name":"SIGNWRITING MOUTH SMILE WRINKLED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA3F"},121408:{"value":"1DA40","name":"SIGNWRITING MOUTH SMILE OPEN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA40"},121409:{"value":"1DA41","name":"SIGNWRITING MOUTH FROWN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA41"},121410:{"value":"1DA42","name":"SIGNWRITING MOUTH FROWN WRINKLED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA42"},121411:{"value":"1DA43","name":"SIGNWRITING MOUTH FROWN OPEN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA43"},121412:{"value":"1DA44","name":"SIGNWRITING MOUTH OPEN CIRCLE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA44"},121413:{"value":"1DA45","name":"SIGNWRITING MOUTH OPEN FORWARD","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA45"},121414:{"value":"1DA46","name":"SIGNWRITING MOUTH OPEN WRINKLED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA46"},121415:{"value":"1DA47","name":"SIGNWRITING MOUTH OPEN OVAL","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA47"},121416:{"value":"1DA48","name":"SIGNWRITING MOUTH OPEN OVAL WRINKLED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA48"},121417:{"value":"1DA49","name":"SIGNWRITING MOUTH OPEN OVAL YAWN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA49"},121418:{"value":"1DA4A","name":"SIGNWRITING MOUTH OPEN RECTANGLE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA4A"},121419:{"value":"1DA4B","name":"SIGNWRITING MOUTH OPEN RECTANGLE WRINKLED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA4B"},121420:{"value":"1DA4C","name":"SIGNWRITING MOUTH OPEN RECTANGLE YAWN","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA4C"},121421:{"value":"1DA4D","name":"SIGNWRITING MOUTH KISS","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA4D"},121422:{"value":"1DA4E","name":"SIGNWRITING MOUTH KISS FORWARD","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA4E"},121423:{"value":"1DA4F","name":"SIGNWRITING MOUTH KISS WRINKLED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA4F"},121424:{"value":"1DA50","name":"SIGNWRITING MOUTH TENSE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA50"},121425:{"value":"1DA51","name":"SIGNWRITING MOUTH TENSE FORWARD","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA51"},121426:{"value":"1DA52","name":"SIGNWRITING MOUTH TENSE SUCKED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA52"},121427:{"value":"1DA53","name":"SIGNWRITING LIPS PRESSED TOGETHER","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA53"},121428:{"value":"1DA54","name":"SIGNWRITING LIP LOWER OVER UPPER","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA54"},121429:{"value":"1DA55","name":"SIGNWRITING LIP UPPER OVER LOWER","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA55"},121430:{"value":"1DA56","name":"SIGNWRITING MOUTH CORNERS","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA56"},121431:{"value":"1DA57","name":"SIGNWRITING MOUTH WRINKLES SINGLE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA57"},121432:{"value":"1DA58","name":"SIGNWRITING MOUTH WRINKLES DOUBLE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA58"},121433:{"value":"1DA59","name":"SIGNWRITING TONGUE STICKING OUT FAR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA59"},121434:{"value":"1DA5A","name":"SIGNWRITING TONGUE LICKING LIPS","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA5A"},121435:{"value":"1DA5B","name":"SIGNWRITING TONGUE TIP BETWEEN LIPS","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA5B"},121436:{"value":"1DA5C","name":"SIGNWRITING TONGUE TIP TOUCHING INSIDE MOUTH","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA5C"},121437:{"value":"1DA5D","name":"SIGNWRITING TONGUE INSIDE MOUTH RELAXED","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA5D"},121438:{"value":"1DA5E","name":"SIGNWRITING TONGUE MOVES AGAINST CHEEK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA5E"},121439:{"value":"1DA5F","name":"SIGNWRITING TONGUE CENTRE STICKING OUT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA5F"},121440:{"value":"1DA60","name":"SIGNWRITING TONGUE CENTRE INSIDE MOUTH","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA60"},121441:{"value":"1DA61","name":"SIGNWRITING TEETH","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA61"},121442:{"value":"1DA62","name":"SIGNWRITING TEETH MOVEMENT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA62"},121443:{"value":"1DA63","name":"SIGNWRITING TEETH ON TONGUE","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA63"},121444:{"value":"1DA64","name":"SIGNWRITING TEETH ON TONGUE MOVEMENT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA64"},121445:{"value":"1DA65","name":"SIGNWRITING TEETH ON LIPS","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA65"},121446:{"value":"1DA66","name":"SIGNWRITING TEETH ON LIPS MOVEMENT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA66"},121447:{"value":"1DA67","name":"SIGNWRITING TEETH BITE LIPS","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA67"},121448:{"value":"1DA68","name":"SIGNWRITING MOVEMENT-WALLPLANE JAW","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA68"},121449:{"value":"1DA69","name":"SIGNWRITING MOVEMENT-FLOORPLANE JAW","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA69"},121450:{"value":"1DA6A","name":"SIGNWRITING NECK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA6A"},121451:{"value":"1DA6B","name":"SIGNWRITING HAIR","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA6B"},121452:{"value":"1DA6C","name":"SIGNWRITING EXCITEMENT","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA6C"},121461:{"value":"1DA75","name":"SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA75"},121476:{"value":"1DA84","name":"SIGNWRITING LOCATION HEAD NECK","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA84"},121499:{"value":"1DA9B","name":"SIGNWRITING FILL MODIFIER-2","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA9B"},121500:{"value":"1DA9C","name":"SIGNWRITING FILL MODIFIER-3","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA9C"},121501:{"value":"1DA9D","name":"SIGNWRITING FILL MODIFIER-4","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA9D"},121502:{"value":"1DA9E","name":"SIGNWRITING FILL MODIFIER-5","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA9E"},121503:{"value":"1DA9F","name":"SIGNWRITING FILL MODIFIER-6","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDA9F"},121505:{"value":"1DAA1","name":"SIGNWRITING ROTATION MODIFIER-2","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAA1"},121506:{"value":"1DAA2","name":"SIGNWRITING ROTATION MODIFIER-3","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAA2"},121507:{"value":"1DAA3","name":"SIGNWRITING ROTATION MODIFIER-4","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAA3"},121508:{"value":"1DAA4","name":"SIGNWRITING ROTATION MODIFIER-5","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAA4"},121509:{"value":"1DAA5","name":"SIGNWRITING ROTATION MODIFIER-6","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAA5"},121510:{"value":"1DAA6","name":"SIGNWRITING ROTATION MODIFIER-7","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAA6"},121511:{"value":"1DAA7","name":"SIGNWRITING ROTATION MODIFIER-8","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAA7"},121512:{"value":"1DAA8","name":"SIGNWRITING ROTATION MODIFIER-9","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAA8"},121513:{"value":"1DAA9","name":"SIGNWRITING ROTATION MODIFIER-10","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAA9"},121514:{"value":"1DAAA","name":"SIGNWRITING ROTATION MODIFIER-11","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAAA"},121515:{"value":"1DAAB","name":"SIGNWRITING ROTATION MODIFIER-12","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAAB"},121516:{"value":"1DAAC","name":"SIGNWRITING ROTATION MODIFIER-13","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAAC"},121517:{"value":"1DAAD","name":"SIGNWRITING ROTATION MODIFIER-14","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAAD"},121518:{"value":"1DAAE","name":"SIGNWRITING ROTATION MODIFIER-15","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAAE"},121519:{"value":"1DAAF","name":"SIGNWRITING ROTATION MODIFIER-16","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uDAAF"},122880:{"value":"1E000","name":"COMBINING GLAGOLITIC LETTER AZU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE000"},122881:{"value":"1E001","name":"COMBINING GLAGOLITIC LETTER BUKY","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE001"},122882:{"value":"1E002","name":"COMBINING GLAGOLITIC LETTER VEDE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE002"},122883:{"value":"1E003","name":"COMBINING GLAGOLITIC LETTER GLAGOLI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE003"},122884:{"value":"1E004","name":"COMBINING GLAGOLITIC LETTER DOBRO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE004"},122885:{"value":"1E005","name":"COMBINING GLAGOLITIC LETTER YESTU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE005"},122886:{"value":"1E006","name":"COMBINING GLAGOLITIC LETTER ZHIVETE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE006"},122888:{"value":"1E008","name":"COMBINING GLAGOLITIC LETTER ZEMLJA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE008"},122889:{"value":"1E009","name":"COMBINING GLAGOLITIC LETTER IZHE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE009"},122890:{"value":"1E00A","name":"COMBINING GLAGOLITIC LETTER INITIAL IZHE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE00A"},122891:{"value":"1E00B","name":"COMBINING GLAGOLITIC LETTER I","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE00B"},122892:{"value":"1E00C","name":"COMBINING GLAGOLITIC LETTER DJERVI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE00C"},122893:{"value":"1E00D","name":"COMBINING GLAGOLITIC LETTER KAKO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE00D"},122894:{"value":"1E00E","name":"COMBINING GLAGOLITIC LETTER LJUDIJE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE00E"},122895:{"value":"1E00F","name":"COMBINING GLAGOLITIC LETTER MYSLITE","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE00F"},122896:{"value":"1E010","name":"COMBINING GLAGOLITIC LETTER NASHI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE010"},122897:{"value":"1E011","name":"COMBINING GLAGOLITIC LETTER ONU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE011"},122898:{"value":"1E012","name":"COMBINING GLAGOLITIC LETTER POKOJI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE012"},122899:{"value":"1E013","name":"COMBINING GLAGOLITIC LETTER RITSI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE013"},122900:{"value":"1E014","name":"COMBINING GLAGOLITIC LETTER SLOVO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE014"},122901:{"value":"1E015","name":"COMBINING GLAGOLITIC LETTER TVRIDO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE015"},122902:{"value":"1E016","name":"COMBINING GLAGOLITIC LETTER UKU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE016"},122903:{"value":"1E017","name":"COMBINING GLAGOLITIC LETTER FRITU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE017"},122904:{"value":"1E018","name":"COMBINING GLAGOLITIC LETTER HERU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE018"},122907:{"value":"1E01B","name":"COMBINING GLAGOLITIC LETTER SHTA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE01B"},122908:{"value":"1E01C","name":"COMBINING GLAGOLITIC LETTER TSI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE01C"},122909:{"value":"1E01D","name":"COMBINING GLAGOLITIC LETTER CHRIVI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE01D"},122910:{"value":"1E01E","name":"COMBINING GLAGOLITIC LETTER SHA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE01E"},122911:{"value":"1E01F","name":"COMBINING GLAGOLITIC LETTER YERU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE01F"},122912:{"value":"1E020","name":"COMBINING GLAGOLITIC LETTER YERI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE020"},122913:{"value":"1E021","name":"COMBINING GLAGOLITIC LETTER YATI","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE021"},122915:{"value":"1E023","name":"COMBINING GLAGOLITIC LETTER YU","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE023"},122916:{"value":"1E024","name":"COMBINING GLAGOLITIC LETTER SMALL YUS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE024"},122918:{"value":"1E026","name":"COMBINING GLAGOLITIC LETTER YO","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE026"},122919:{"value":"1E027","name":"COMBINING GLAGOLITIC LETTER IOTATED SMALL YUS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE027"},122920:{"value":"1E028","name":"COMBINING GLAGOLITIC LETTER BIG YUS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE028"},122921:{"value":"1E029","name":"COMBINING GLAGOLITIC LETTER IOTATED BIG YUS","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE029"},122922:{"value":"1E02A","name":"COMBINING GLAGOLITIC LETTER FITA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE02A"},125136:{"value":"1E8D0","name":"MENDE KIKAKUI COMBINING NUMBER TEENS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8D0"},125137:{"value":"1E8D1","name":"MENDE KIKAKUI COMBINING NUMBER TENS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8D1"},125138:{"value":"1E8D2","name":"MENDE KIKAKUI COMBINING NUMBER HUNDREDS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8D2"},125139:{"value":"1E8D3","name":"MENDE KIKAKUI COMBINING NUMBER THOUSANDS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8D3"},125140:{"value":"1E8D4","name":"MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8D4"},125141:{"value":"1E8D5","name":"MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8D5"},125142:{"value":"1E8D6","name":"MENDE KIKAKUI COMBINING NUMBER MILLIONS","category":"Mn","class":"220","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE8D6"},125252:{"value":"1E944","name":"ADLAM ALIF LENGTHENER","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE944"},125253:{"value":"1E945","name":"ADLAM VOWEL LENGTHENER","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE945"},125254:{"value":"1E946","name":"ADLAM GEMINATION MARK","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE946"},125255:{"value":"1E947","name":"ADLAM HAMZA","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE947"},125256:{"value":"1E948","name":"ADLAM CONSONANT MODIFIER","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE948"},125257:{"value":"1E949","name":"ADLAM GEMINATE CONSONANT MODIFIER","category":"Mn","class":"230","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE949"},125258:{"value":"1E94A","name":"ADLAM NUKTA","category":"Mn","class":"7","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE94A"},917760:{"value":"E0100","name":"VARIATION SELECTOR-17","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0100"},917761:{"value":"E0101","name":"VARIATION SELECTOR-18","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0101"},917762:{"value":"E0102","name":"VARIATION SELECTOR-19","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0102"},917763:{"value":"E0103","name":"VARIATION SELECTOR-20","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0103"},917764:{"value":"E0104","name":"VARIATION SELECTOR-21","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0104"},917765:{"value":"E0105","name":"VARIATION SELECTOR-22","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0105"},917766:{"value":"E0106","name":"VARIATION SELECTOR-23","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0106"},917767:{"value":"E0107","name":"VARIATION SELECTOR-24","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0107"},917768:{"value":"E0108","name":"VARIATION SELECTOR-25","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0108"},917769:{"value":"E0109","name":"VARIATION SELECTOR-26","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0109"},917770:{"value":"E010A","name":"VARIATION SELECTOR-27","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u010A"},917771:{"value":"E010B","name":"VARIATION SELECTOR-28","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u010B"},917772:{"value":"E010C","name":"VARIATION SELECTOR-29","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u010C"},917773:{"value":"E010D","name":"VARIATION SELECTOR-30","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u010D"},917774:{"value":"E010E","name":"VARIATION SELECTOR-31","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u010E"},917775:{"value":"E010F","name":"VARIATION SELECTOR-32","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u010F"},917776:{"value":"E0110","name":"VARIATION SELECTOR-33","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0110"},917777:{"value":"E0111","name":"VARIATION SELECTOR-34","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0111"},917778:{"value":"E0112","name":"VARIATION SELECTOR-35","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0112"},917779:{"value":"E0113","name":"VARIATION SELECTOR-36","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0113"},917780:{"value":"E0114","name":"VARIATION SELECTOR-37","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0114"},917781:{"value":"E0115","name":"VARIATION SELECTOR-38","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0115"},917782:{"value":"E0116","name":"VARIATION SELECTOR-39","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0116"},917783:{"value":"E0117","name":"VARIATION SELECTOR-40","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0117"},917784:{"value":"E0118","name":"VARIATION SELECTOR-41","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0118"},917785:{"value":"E0119","name":"VARIATION SELECTOR-42","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0119"},917786:{"value":"E011A","name":"VARIATION SELECTOR-43","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u011A"},917787:{"value":"E011B","name":"VARIATION SELECTOR-44","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u011B"},917788:{"value":"E011C","name":"VARIATION SELECTOR-45","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u011C"},917789:{"value":"E011D","name":"VARIATION SELECTOR-46","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u011D"},917790:{"value":"E011E","name":"VARIATION SELECTOR-47","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u011E"},917791:{"value":"E011F","name":"VARIATION SELECTOR-48","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u011F"},917792:{"value":"E0120","name":"VARIATION SELECTOR-49","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0120"},917793:{"value":"E0121","name":"VARIATION SELECTOR-50","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0121"},917794:{"value":"E0122","name":"VARIATION SELECTOR-51","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0122"},917795:{"value":"E0123","name":"VARIATION SELECTOR-52","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0123"},917796:{"value":"E0124","name":"VARIATION SELECTOR-53","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0124"},917797:{"value":"E0125","name":"VARIATION SELECTOR-54","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0125"},917798:{"value":"E0126","name":"VARIATION SELECTOR-55","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0126"},917799:{"value":"E0127","name":"VARIATION SELECTOR-56","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0127"},917800:{"value":"E0128","name":"VARIATION SELECTOR-57","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0128"},917801:{"value":"E0129","name":"VARIATION SELECTOR-58","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0129"},917802:{"value":"E012A","name":"VARIATION SELECTOR-59","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u012A"},917803:{"value":"E012B","name":"VARIATION SELECTOR-60","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u012B"},917804:{"value":"E012C","name":"VARIATION SELECTOR-61","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u012C"},917805:{"value":"E012D","name":"VARIATION SELECTOR-62","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u012D"},917806:{"value":"E012E","name":"VARIATION SELECTOR-63","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u012E"},917807:{"value":"E012F","name":"VARIATION SELECTOR-64","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u012F"},917808:{"value":"E0130","name":"VARIATION SELECTOR-65","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0130"},917809:{"value":"E0131","name":"VARIATION SELECTOR-66","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0131"},917810:{"value":"E0132","name":"VARIATION SELECTOR-67","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0132"},917811:{"value":"E0133","name":"VARIATION SELECTOR-68","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0133"},917812:{"value":"E0134","name":"VARIATION SELECTOR-69","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0134"},917813:{"value":"E0135","name":"VARIATION SELECTOR-70","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0135"},917814:{"value":"E0136","name":"VARIATION SELECTOR-71","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0136"},917815:{"value":"E0137","name":"VARIATION SELECTOR-72","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0137"},917816:{"value":"E0138","name":"VARIATION SELECTOR-73","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0138"},917817:{"value":"E0139","name":"VARIATION SELECTOR-74","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0139"},917818:{"value":"E013A","name":"VARIATION SELECTOR-75","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u013A"},917819:{"value":"E013B","name":"VARIATION SELECTOR-76","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u013B"},917820:{"value":"E013C","name":"VARIATION SELECTOR-77","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u013C"},917821:{"value":"E013D","name":"VARIATION SELECTOR-78","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u013D"},917822:{"value":"E013E","name":"VARIATION SELECTOR-79","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u013E"},917823:{"value":"E013F","name":"VARIATION SELECTOR-80","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u013F"},917824:{"value":"E0140","name":"VARIATION SELECTOR-81","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0140"},917825:{"value":"E0141","name":"VARIATION SELECTOR-82","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0141"},917826:{"value":"E0142","name":"VARIATION SELECTOR-83","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0142"},917827:{"value":"E0143","name":"VARIATION SELECTOR-84","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0143"},917828:{"value":"E0144","name":"VARIATION SELECTOR-85","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0144"},917829:{"value":"E0145","name":"VARIATION SELECTOR-86","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0145"},917830:{"value":"E0146","name":"VARIATION SELECTOR-87","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0146"},917831:{"value":"E0147","name":"VARIATION SELECTOR-88","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0147"},917832:{"value":"E0148","name":"VARIATION SELECTOR-89","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0148"},917833:{"value":"E0149","name":"VARIATION SELECTOR-90","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0149"},917834:{"value":"E014A","name":"VARIATION SELECTOR-91","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014A"},917835:{"value":"E014B","name":"VARIATION SELECTOR-92","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014B"},917836:{"value":"E014C","name":"VARIATION SELECTOR-93","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014C"},917837:{"value":"E014D","name":"VARIATION SELECTOR-94","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014D"},917838:{"value":"E014E","name":"VARIATION SELECTOR-95","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014E"},917839:{"value":"E014F","name":"VARIATION SELECTOR-96","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u014F"},917840:{"value":"E0150","name":"VARIATION SELECTOR-97","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0150"},917841:{"value":"E0151","name":"VARIATION SELECTOR-98","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0151"},917842:{"value":"E0152","name":"VARIATION SELECTOR-99","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0152"},917843:{"value":"E0153","name":"VARIATION SELECTOR-100","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0153"},917844:{"value":"E0154","name":"VARIATION SELECTOR-101","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0154"},917845:{"value":"E0155","name":"VARIATION SELECTOR-102","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0155"},917846:{"value":"E0156","name":"VARIATION SELECTOR-103","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0156"},917847:{"value":"E0157","name":"VARIATION SELECTOR-104","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0157"},917848:{"value":"E0158","name":"VARIATION SELECTOR-105","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0158"},917849:{"value":"E0159","name":"VARIATION SELECTOR-106","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0159"},917850:{"value":"E015A","name":"VARIATION SELECTOR-107","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015A"},917851:{"value":"E015B","name":"VARIATION SELECTOR-108","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015B"},917852:{"value":"E015C","name":"VARIATION SELECTOR-109","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015C"},917853:{"value":"E015D","name":"VARIATION SELECTOR-110","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015D"},917854:{"value":"E015E","name":"VARIATION SELECTOR-111","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015E"},917855:{"value":"E015F","name":"VARIATION SELECTOR-112","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u015F"},917856:{"value":"E0160","name":"VARIATION SELECTOR-113","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0160"},917857:{"value":"E0161","name":"VARIATION SELECTOR-114","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0161"},917858:{"value":"E0162","name":"VARIATION SELECTOR-115","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0162"},917859:{"value":"E0163","name":"VARIATION SELECTOR-116","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0163"},917860:{"value":"E0164","name":"VARIATION SELECTOR-117","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0164"},917861:{"value":"E0165","name":"VARIATION SELECTOR-118","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0165"},917862:{"value":"E0166","name":"VARIATION SELECTOR-119","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0166"},917863:{"value":"E0167","name":"VARIATION SELECTOR-120","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0167"},917864:{"value":"E0168","name":"VARIATION SELECTOR-121","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0168"},917865:{"value":"E0169","name":"VARIATION SELECTOR-122","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0169"},917866:{"value":"E016A","name":"VARIATION SELECTOR-123","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016A"},917867:{"value":"E016B","name":"VARIATION SELECTOR-124","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016B"},917868:{"value":"E016C","name":"VARIATION SELECTOR-125","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016C"},917869:{"value":"E016D","name":"VARIATION SELECTOR-126","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016D"},917870:{"value":"E016E","name":"VARIATION SELECTOR-127","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016E"},917871:{"value":"E016F","name":"VARIATION SELECTOR-128","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u016F"},917872:{"value":"E0170","name":"VARIATION SELECTOR-129","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0170"},917873:{"value":"E0171","name":"VARIATION SELECTOR-130","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0171"},917874:{"value":"E0172","name":"VARIATION SELECTOR-131","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0172"},917875:{"value":"E0173","name":"VARIATION SELECTOR-132","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0173"},917876:{"value":"E0174","name":"VARIATION SELECTOR-133","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0174"},917877:{"value":"E0175","name":"VARIATION SELECTOR-134","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0175"},917878:{"value":"E0176","name":"VARIATION SELECTOR-135","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0176"},917879:{"value":"E0177","name":"VARIATION SELECTOR-136","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0177"},917880:{"value":"E0178","name":"VARIATION SELECTOR-137","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0178"},917881:{"value":"E0179","name":"VARIATION SELECTOR-138","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0179"},917882:{"value":"E017A","name":"VARIATION SELECTOR-139","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u017A"},917883:{"value":"E017B","name":"VARIATION SELECTOR-140","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u017B"},917884:{"value":"E017C","name":"VARIATION SELECTOR-141","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u017C"},917885:{"value":"E017D","name":"VARIATION SELECTOR-142","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u017D"},917886:{"value":"E017E","name":"VARIATION SELECTOR-143","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u017E"},917887:{"value":"E017F","name":"VARIATION SELECTOR-144","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u017F"},917888:{"value":"E0180","name":"VARIATION SELECTOR-145","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0180"},917889:{"value":"E0181","name":"VARIATION SELECTOR-146","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0181"},917890:{"value":"E0182","name":"VARIATION SELECTOR-147","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0182"},917891:{"value":"E0183","name":"VARIATION SELECTOR-148","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0183"},917892:{"value":"E0184","name":"VARIATION SELECTOR-149","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0184"},917893:{"value":"E0185","name":"VARIATION SELECTOR-150","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0185"},917894:{"value":"E0186","name":"VARIATION SELECTOR-151","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0186"},917895:{"value":"E0187","name":"VARIATION SELECTOR-152","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0187"},917896:{"value":"E0188","name":"VARIATION SELECTOR-153","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0188"},917897:{"value":"E0189","name":"VARIATION SELECTOR-154","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0189"},917898:{"value":"E018A","name":"VARIATION SELECTOR-155","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u018A"},917899:{"value":"E018B","name":"VARIATION SELECTOR-156","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u018B"},917900:{"value":"E018C","name":"VARIATION SELECTOR-157","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u018C"},917901:{"value":"E018D","name":"VARIATION SELECTOR-158","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u018D"},917902:{"value":"E018E","name":"VARIATION SELECTOR-159","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u018E"},917903:{"value":"E018F","name":"VARIATION SELECTOR-160","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u018F"},917904:{"value":"E0190","name":"VARIATION SELECTOR-161","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0190"},917905:{"value":"E0191","name":"VARIATION SELECTOR-162","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0191"},917906:{"value":"E0192","name":"VARIATION SELECTOR-163","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0192"},917907:{"value":"E0193","name":"VARIATION SELECTOR-164","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0193"},917908:{"value":"E0194","name":"VARIATION SELECTOR-165","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0194"},917909:{"value":"E0195","name":"VARIATION SELECTOR-166","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0195"},917910:{"value":"E0196","name":"VARIATION SELECTOR-167","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0196"},917911:{"value":"E0197","name":"VARIATION SELECTOR-168","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0197"},917912:{"value":"E0198","name":"VARIATION SELECTOR-169","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0198"},917913:{"value":"E0199","name":"VARIATION SELECTOR-170","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0199"},917914:{"value":"E019A","name":"VARIATION SELECTOR-171","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u019A"},917915:{"value":"E019B","name":"VARIATION SELECTOR-172","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u019B"},917916:{"value":"E019C","name":"VARIATION SELECTOR-173","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u019C"},917917:{"value":"E019D","name":"VARIATION SELECTOR-174","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u019D"},917918:{"value":"E019E","name":"VARIATION SELECTOR-175","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u019E"},917919:{"value":"E019F","name":"VARIATION SELECTOR-176","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u019F"},917920:{"value":"E01A0","name":"VARIATION SELECTOR-177","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01A0"},917921:{"value":"E01A1","name":"VARIATION SELECTOR-178","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01A1"},917922:{"value":"E01A2","name":"VARIATION SELECTOR-179","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01A2"},917923:{"value":"E01A3","name":"VARIATION SELECTOR-180","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01A3"},917924:{"value":"E01A4","name":"VARIATION SELECTOR-181","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01A4"},917925:{"value":"E01A5","name":"VARIATION SELECTOR-182","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01A5"},917926:{"value":"E01A6","name":"VARIATION SELECTOR-183","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01A6"},917927:{"value":"E01A7","name":"VARIATION SELECTOR-184","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01A7"},917928:{"value":"E01A8","name":"VARIATION SELECTOR-185","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01A8"},917929:{"value":"E01A9","name":"VARIATION SELECTOR-186","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01A9"},917930:{"value":"E01AA","name":"VARIATION SELECTOR-187","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01AA"},917931:{"value":"E01AB","name":"VARIATION SELECTOR-188","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01AB"},917932:{"value":"E01AC","name":"VARIATION SELECTOR-189","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01AC"},917933:{"value":"E01AD","name":"VARIATION SELECTOR-190","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01AD"},917934:{"value":"E01AE","name":"VARIATION SELECTOR-191","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01AE"},917935:{"value":"E01AF","name":"VARIATION SELECTOR-192","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01AF"},917936:{"value":"E01B0","name":"VARIATION SELECTOR-193","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01B0"},917937:{"value":"E01B1","name":"VARIATION SELECTOR-194","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01B1"},917938:{"value":"E01B2","name":"VARIATION SELECTOR-195","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01B2"},917939:{"value":"E01B3","name":"VARIATION SELECTOR-196","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01B3"},917940:{"value":"E01B4","name":"VARIATION SELECTOR-197","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01B4"},917941:{"value":"E01B5","name":"VARIATION SELECTOR-198","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01B5"},917942:{"value":"E01B6","name":"VARIATION SELECTOR-199","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01B6"},917943:{"value":"E01B7","name":"VARIATION SELECTOR-200","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01B7"},917944:{"value":"E01B8","name":"VARIATION SELECTOR-201","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01B8"},917945:{"value":"E01B9","name":"VARIATION SELECTOR-202","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01B9"},917946:{"value":"E01BA","name":"VARIATION SELECTOR-203","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01BA"},917947:{"value":"E01BB","name":"VARIATION SELECTOR-204","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01BB"},917948:{"value":"E01BC","name":"VARIATION SELECTOR-205","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01BC"},917949:{"value":"E01BD","name":"VARIATION SELECTOR-206","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01BD"},917950:{"value":"E01BE","name":"VARIATION SELECTOR-207","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01BE"},917951:{"value":"E01BF","name":"VARIATION SELECTOR-208","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01BF"},917952:{"value":"E01C0","name":"VARIATION SELECTOR-209","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C0"},917953:{"value":"E01C1","name":"VARIATION SELECTOR-210","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C1"},917954:{"value":"E01C2","name":"VARIATION SELECTOR-211","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C2"},917955:{"value":"E01C3","name":"VARIATION SELECTOR-212","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C3"},917956:{"value":"E01C4","name":"VARIATION SELECTOR-213","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C4"},917957:{"value":"E01C5","name":"VARIATION SELECTOR-214","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C5"},917958:{"value":"E01C6","name":"VARIATION SELECTOR-215","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C6"},917959:{"value":"E01C7","name":"VARIATION SELECTOR-216","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C7"},917960:{"value":"E01C8","name":"VARIATION SELECTOR-217","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C8"},917961:{"value":"E01C9","name":"VARIATION SELECTOR-218","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01C9"},917962:{"value":"E01CA","name":"VARIATION SELECTOR-219","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01CA"},917963:{"value":"E01CB","name":"VARIATION SELECTOR-220","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01CB"},917964:{"value":"E01CC","name":"VARIATION SELECTOR-221","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01CC"},917965:{"value":"E01CD","name":"VARIATION SELECTOR-222","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01CD"},917966:{"value":"E01CE","name":"VARIATION SELECTOR-223","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01CE"},917967:{"value":"E01CF","name":"VARIATION SELECTOR-224","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01CF"},917968:{"value":"E01D0","name":"VARIATION SELECTOR-225","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01D0"},917969:{"value":"E01D1","name":"VARIATION SELECTOR-226","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01D1"},917970:{"value":"E01D2","name":"VARIATION SELECTOR-227","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01D2"},917971:{"value":"E01D3","name":"VARIATION SELECTOR-228","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01D3"},917972:{"value":"E01D4","name":"VARIATION SELECTOR-229","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01D4"},917973:{"value":"E01D5","name":"VARIATION SELECTOR-230","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01D5"},917974:{"value":"E01D6","name":"VARIATION SELECTOR-231","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01D6"},917975:{"value":"E01D7","name":"VARIATION SELECTOR-232","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01D7"},917976:{"value":"E01D8","name":"VARIATION SELECTOR-233","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01D8"},917977:{"value":"E01D9","name":"VARIATION SELECTOR-234","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01D9"},917978:{"value":"E01DA","name":"VARIATION SELECTOR-235","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01DA"},917979:{"value":"E01DB","name":"VARIATION SELECTOR-236","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01DB"},917980:{"value":"E01DC","name":"VARIATION SELECTOR-237","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01DC"},917981:{"value":"E01DD","name":"VARIATION SELECTOR-238","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01DD"},917982:{"value":"E01DE","name":"VARIATION SELECTOR-239","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01DE"},917983:{"value":"E01DF","name":"VARIATION SELECTOR-240","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01DF"},917984:{"value":"E01E0","name":"VARIATION SELECTOR-241","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01E0"},917985:{"value":"E01E1","name":"VARIATION SELECTOR-242","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01E1"},917986:{"value":"E01E2","name":"VARIATION SELECTOR-243","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01E2"},917987:{"value":"E01E3","name":"VARIATION SELECTOR-244","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01E3"},917988:{"value":"E01E4","name":"VARIATION SELECTOR-245","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01E4"},917989:{"value":"E01E5","name":"VARIATION SELECTOR-246","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01E5"},917990:{"value":"E01E6","name":"VARIATION SELECTOR-247","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01E6"},917991:{"value":"E01E7","name":"VARIATION SELECTOR-248","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01E7"},917992:{"value":"E01E8","name":"VARIATION SELECTOR-249","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01E8"},917993:{"value":"E01E9","name":"VARIATION SELECTOR-250","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01E9"},917994:{"value":"E01EA","name":"VARIATION SELECTOR-251","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01EA"},917995:{"value":"E01EB","name":"VARIATION SELECTOR-252","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01EB"},917996:{"value":"E01EC","name":"VARIATION SELECTOR-253","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01EC"},917997:{"value":"E01ED","name":"VARIATION SELECTOR-254","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01ED"},917998:{"value":"E01EE","name":"VARIATION SELECTOR-255","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01EE"},917999:{"value":"E01EF","name":"VARIATION SELECTOR-256","category":"Mn","class":"0","bidirectional_category":"NSM","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u01EF"}};

/***/ }),
/* 180 */
/***/ (function(module, exports) {

module.exports={2307:{"value":"0903","name":"DEVANAGARI SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0903"},2363:{"value":"093B","name":"DEVANAGARI VOWEL SIGN OOE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u093B"},2366:{"value":"093E","name":"DEVANAGARI VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u093E"},2367:{"value":"093F","name":"DEVANAGARI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u093F"},2368:{"value":"0940","name":"DEVANAGARI VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0940"},2377:{"value":"0949","name":"DEVANAGARI VOWEL SIGN CANDRA O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0949"},2378:{"value":"094A","name":"DEVANAGARI VOWEL SIGN SHORT O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u094A"},2379:{"value":"094B","name":"DEVANAGARI VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u094B"},2380:{"value":"094C","name":"DEVANAGARI VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u094C"},2382:{"value":"094E","name":"DEVANAGARI VOWEL SIGN PRISHTHAMATRA E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u094E"},2383:{"value":"094F","name":"DEVANAGARI VOWEL SIGN AW","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u094F"},2434:{"value":"0982","name":"BENGALI SIGN ANUSVARA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0982"},2435:{"value":"0983","name":"BENGALI SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0983"},2494:{"value":"09BE","name":"BENGALI VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09BE"},2495:{"value":"09BF","name":"BENGALI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09BF"},2496:{"value":"09C0","name":"BENGALI VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09C0"},2503:{"value":"09C7","name":"BENGALI VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09C7"},2504:{"value":"09C8","name":"BENGALI VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09C8"},2507:{"value":"09CB","name":"BENGALI VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"09C7 09BE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09CB"},2508:{"value":"09CC","name":"BENGALI VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"09C7 09D7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09CC"},2519:{"value":"09D7","name":"BENGALI AU LENGTH MARK","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09D7"},2563:{"value":"0A03","name":"GURMUKHI SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A03"},2622:{"value":"0A3E","name":"GURMUKHI VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A3E"},2623:{"value":"0A3F","name":"GURMUKHI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A3F"},2624:{"value":"0A40","name":"GURMUKHI VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A40"},2691:{"value":"0A83","name":"GUJARATI SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A83"},2750:{"value":"0ABE","name":"GUJARATI VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ABE"},2751:{"value":"0ABF","name":"GUJARATI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ABF"},2752:{"value":"0AC0","name":"GUJARATI VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC0"},2761:{"value":"0AC9","name":"GUJARATI VOWEL SIGN CANDRA O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AC9"},2763:{"value":"0ACB","name":"GUJARATI VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ACB"},2764:{"value":"0ACC","name":"GUJARATI VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ACC"},2818:{"value":"0B02","name":"ORIYA SIGN ANUSVARA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B02"},2819:{"value":"0B03","name":"ORIYA SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B03"},2878:{"value":"0B3E","name":"ORIYA VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B3E"},2880:{"value":"0B40","name":"ORIYA VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B40"},2887:{"value":"0B47","name":"ORIYA VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B47"},2888:{"value":"0B48","name":"ORIYA VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0B47 0B56","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B48"},2891:{"value":"0B4B","name":"ORIYA VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0B47 0B3E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B4B"},2892:{"value":"0B4C","name":"ORIYA VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0B47 0B57","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B4C"},2903:{"value":"0B57","name":"ORIYA AU LENGTH MARK","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B57"},3006:{"value":"0BBE","name":"TAMIL VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BBE"},3007:{"value":"0BBF","name":"TAMIL VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BBF"},3009:{"value":"0BC1","name":"TAMIL VOWEL SIGN U","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BC1"},3010:{"value":"0BC2","name":"TAMIL VOWEL SIGN UU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BC2"},3014:{"value":"0BC6","name":"TAMIL VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BC6"},3015:{"value":"0BC7","name":"TAMIL VOWEL SIGN EE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BC7"},3016:{"value":"0BC8","name":"TAMIL VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BC8"},3018:{"value":"0BCA","name":"TAMIL VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0BC6 0BBE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BCA"},3019:{"value":"0BCB","name":"TAMIL VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0BC7 0BBE","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BCB"},3020:{"value":"0BCC","name":"TAMIL VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0BC6 0BD7","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BCC"},3031:{"value":"0BD7","name":"TAMIL AU LENGTH MARK","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BD7"},3073:{"value":"0C01","name":"TELUGU SIGN CANDRABINDU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C01"},3074:{"value":"0C02","name":"TELUGU SIGN ANUSVARA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C02"},3075:{"value":"0C03","name":"TELUGU SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C03"},3137:{"value":"0C41","name":"TELUGU VOWEL SIGN U","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C41"},3138:{"value":"0C42","name":"TELUGU VOWEL SIGN UU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C42"},3139:{"value":"0C43","name":"TELUGU VOWEL SIGN VOCALIC R","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C43"},3140:{"value":"0C44","name":"TELUGU VOWEL SIGN VOCALIC RR","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C44"},3202:{"value":"0C82","name":"KANNADA SIGN ANUSVARA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C82"},3203:{"value":"0C83","name":"KANNADA SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C83"},3262:{"value":"0CBE","name":"KANNADA VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CBE"},3264:{"value":"0CC0","name":"KANNADA VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0CBF 0CD5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CC0"},3265:{"value":"0CC1","name":"KANNADA VOWEL SIGN U","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CC1"},3266:{"value":"0CC2","name":"KANNADA VOWEL SIGN UU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CC2"},3267:{"value":"0CC3","name":"KANNADA VOWEL SIGN VOCALIC R","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CC3"},3268:{"value":"0CC4","name":"KANNADA VOWEL SIGN VOCALIC RR","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CC4"},3271:{"value":"0CC7","name":"KANNADA VOWEL SIGN EE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0CC6 0CD5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CC7"},3272:{"value":"0CC8","name":"KANNADA VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0CC6 0CD6","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CC8"},3274:{"value":"0CCA","name":"KANNADA VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0CC6 0CC2","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CCA"},3275:{"value":"0CCB","name":"KANNADA VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0CCA 0CD5","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CCB"},3285:{"value":"0CD5","name":"KANNADA LENGTH MARK","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CD5"},3286:{"value":"0CD6","name":"KANNADA AI LENGTH MARK","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CD6"},3330:{"value":"0D02","name":"MALAYALAM SIGN ANUSVARA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D02"},3331:{"value":"0D03","name":"MALAYALAM SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D03"},3390:{"value":"0D3E","name":"MALAYALAM VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D3E"},3391:{"value":"0D3F","name":"MALAYALAM VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D3F"},3392:{"value":"0D40","name":"MALAYALAM VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D40"},3398:{"value":"0D46","name":"MALAYALAM VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D46"},3399:{"value":"0D47","name":"MALAYALAM VOWEL SIGN EE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D47"},3400:{"value":"0D48","name":"MALAYALAM VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D48"},3402:{"value":"0D4A","name":"MALAYALAM VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0D46 0D3E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D4A"},3403:{"value":"0D4B","name":"MALAYALAM VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0D47 0D3E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D4B"},3404:{"value":"0D4C","name":"MALAYALAM VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0D46 0D57","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D4C"},3415:{"value":"0D57","name":"MALAYALAM AU LENGTH MARK","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D57"},3458:{"value":"0D82","name":"SINHALA SIGN ANUSVARAYA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D82"},3459:{"value":"0D83","name":"SINHALA SIGN VISARGAYA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D83"},3535:{"value":"0DCF","name":"SINHALA VOWEL SIGN AELA-PILLA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DCF"},3536:{"value":"0DD0","name":"SINHALA VOWEL SIGN KETTI AEDA-PILLA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DD0"},3537:{"value":"0DD1","name":"SINHALA VOWEL SIGN DIGA AEDA-PILLA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DD1"},3544:{"value":"0DD8","name":"SINHALA VOWEL SIGN GAETTA-PILLA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DD8"},3545:{"value":"0DD9","name":"SINHALA VOWEL SIGN KOMBUVA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DD9"},3546:{"value":"0DDA","name":"SINHALA VOWEL SIGN DIGA KOMBUVA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0DD9 0DCA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DDA"},3547:{"value":"0DDB","name":"SINHALA VOWEL SIGN KOMBU DEKA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DDB"},3548:{"value":"0DDC","name":"SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0DD9 0DCF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DDC"},3549:{"value":"0DDD","name":"SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0DDC 0DCA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DDD"},3550:{"value":"0DDE","name":"SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"0DD9 0DDF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DDE"},3551:{"value":"0DDF","name":"SINHALA VOWEL SIGN GAYANUKITTA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DDF"},3570:{"value":"0DF2","name":"SINHALA VOWEL SIGN DIGA GAETTA-PILLA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DF2"},3571:{"value":"0DF3","name":"SINHALA VOWEL SIGN DIGA GAYANUKITTA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DF3"},3902:{"value":"0F3E","name":"TIBETAN SIGN YAR TSHES","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F3E"},3903:{"value":"0F3F","name":"TIBETAN SIGN MAR TSHES","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F3F"},3967:{"value":"0F7F","name":"TIBETAN SIGN RNAM BCAD","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"TIBETAN VISARGA","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F7F"},4139:{"value":"102B","name":"MYANMAR VOWEL SIGN TALL AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102B"},4140:{"value":"102C","name":"MYANMAR VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u102C"},4145:{"value":"1031","name":"MYANMAR VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1031"},4152:{"value":"1038","name":"MYANMAR SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1038"},4155:{"value":"103B","name":"MYANMAR CONSONANT SIGN MEDIAL YA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103B"},4156:{"value":"103C","name":"MYANMAR CONSONANT SIGN MEDIAL RA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u103C"},4182:{"value":"1056","name":"MYANMAR VOWEL SIGN VOCALIC R","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1056"},4183:{"value":"1057","name":"MYANMAR VOWEL SIGN VOCALIC RR","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1057"},4194:{"value":"1062","name":"MYANMAR VOWEL SIGN SGAW KAREN EU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1062"},4195:{"value":"1063","name":"MYANMAR TONE MARK SGAW KAREN HATHI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1063"},4196:{"value":"1064","name":"MYANMAR TONE MARK SGAW KAREN KE PHO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1064"},4199:{"value":"1067","name":"MYANMAR VOWEL SIGN WESTERN PWO KAREN EU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1067"},4200:{"value":"1068","name":"MYANMAR VOWEL SIGN WESTERN PWO KAREN UE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1068"},4201:{"value":"1069","name":"MYANMAR SIGN WESTERN PWO KAREN TONE-1","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1069"},4202:{"value":"106A","name":"MYANMAR SIGN WESTERN PWO KAREN TONE-2","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106A"},4203:{"value":"106B","name":"MYANMAR SIGN WESTERN PWO KAREN TONE-3","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106B"},4204:{"value":"106C","name":"MYANMAR SIGN WESTERN PWO KAREN TONE-4","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106C"},4205:{"value":"106D","name":"MYANMAR SIGN WESTERN PWO KAREN TONE-5","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106D"},4227:{"value":"1083","name":"MYANMAR VOWEL SIGN SHAN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1083"},4228:{"value":"1084","name":"MYANMAR VOWEL SIGN SHAN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1084"},4231:{"value":"1087","name":"MYANMAR SIGN SHAN TONE-2","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1087"},4232:{"value":"1088","name":"MYANMAR SIGN SHAN TONE-3","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1088"},4233:{"value":"1089","name":"MYANMAR SIGN SHAN TONE-5","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1089"},4234:{"value":"108A","name":"MYANMAR SIGN SHAN TONE-6","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108A"},4235:{"value":"108B","name":"MYANMAR SIGN SHAN COUNCIL TONE-2","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108B"},4236:{"value":"108C","name":"MYANMAR SIGN SHAN COUNCIL TONE-3","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108C"},4239:{"value":"108F","name":"MYANMAR SIGN RUMAI PALAUNG TONE-5","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u108F"},4250:{"value":"109A","name":"MYANMAR SIGN KHAMTI TONE-1","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u109A"},4251:{"value":"109B","name":"MYANMAR SIGN KHAMTI TONE-3","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u109B"},4252:{"value":"109C","name":"MYANMAR VOWEL SIGN AITON A","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u109C"},6070:{"value":"17B6","name":"KHMER VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17B6"},6078:{"value":"17BE","name":"KHMER VOWEL SIGN OE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17BE"},6079:{"value":"17BF","name":"KHMER VOWEL SIGN YA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17BF"},6080:{"value":"17C0","name":"KHMER VOWEL SIGN IE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17C0"},6081:{"value":"17C1","name":"KHMER VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17C1"},6082:{"value":"17C2","name":"KHMER VOWEL SIGN AE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17C2"},6083:{"value":"17C3","name":"KHMER VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17C3"},6084:{"value":"17C4","name":"KHMER VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17C4"},6085:{"value":"17C5","name":"KHMER VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17C5"},6087:{"value":"17C7","name":"KHMER SIGN REAHMUK","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17C7"},6088:{"value":"17C8","name":"KHMER SIGN YUUKALEAPINTU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17C8"},6435:{"value":"1923","name":"LIMBU VOWEL SIGN EE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1923"},6436:{"value":"1924","name":"LIMBU VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1924"},6437:{"value":"1925","name":"LIMBU VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1925"},6438:{"value":"1926","name":"LIMBU VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1926"},6441:{"value":"1929","name":"LIMBU SUBJOINED LETTER YA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1929"},6442:{"value":"192A","name":"LIMBU SUBJOINED LETTER RA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u192A"},6443:{"value":"192B","name":"LIMBU SUBJOINED LETTER WA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u192B"},6448:{"value":"1930","name":"LIMBU SMALL LETTER KA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1930"},6449:{"value":"1931","name":"LIMBU SMALL LETTER NGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1931"},6451:{"value":"1933","name":"LIMBU SMALL LETTER TA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1933"},6452:{"value":"1934","name":"LIMBU SMALL LETTER NA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1934"},6453:{"value":"1935","name":"LIMBU SMALL LETTER PA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1935"},6454:{"value":"1936","name":"LIMBU SMALL LETTER MA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1936"},6455:{"value":"1937","name":"LIMBU SMALL LETTER RA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1937"},6456:{"value":"1938","name":"LIMBU SMALL LETTER LA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1938"},6681:{"value":"1A19","name":"BUGINESE VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A19"},6682:{"value":"1A1A","name":"BUGINESE VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A1A"},6741:{"value":"1A55","name":"TAI THAM CONSONANT SIGN MEDIAL RA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A55"},6743:{"value":"1A57","name":"TAI THAM CONSONANT SIGN LA TANG LAI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A57"},6753:{"value":"1A61","name":"TAI THAM VOWEL SIGN A","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A61"},6755:{"value":"1A63","name":"TAI THAM VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A63"},6756:{"value":"1A64","name":"TAI THAM VOWEL SIGN TALL AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A64"},6765:{"value":"1A6D","name":"TAI THAM VOWEL SIGN OY","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6D"},6766:{"value":"1A6E","name":"TAI THAM VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6E"},6767:{"value":"1A6F","name":"TAI THAM VOWEL SIGN AE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A6F"},6768:{"value":"1A70","name":"TAI THAM VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A70"},6769:{"value":"1A71","name":"TAI THAM VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A71"},6770:{"value":"1A72","name":"TAI THAM VOWEL SIGN THAM AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A72"},6916:{"value":"1B04","name":"BALINESE SIGN BISAH","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B04"},6965:{"value":"1B35","name":"BALINESE VOWEL SIGN TEDUNG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B35"},6971:{"value":"1B3B","name":"BALINESE VOWEL SIGN RA REPA TEDUNG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"1B3A 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B3B"},6973:{"value":"1B3D","name":"BALINESE VOWEL SIGN LA LENGA TEDUNG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"1B3C 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B3D"},6974:{"value":"1B3E","name":"BALINESE VOWEL SIGN TALING","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B3E"},6975:{"value":"1B3F","name":"BALINESE VOWEL SIGN TALING REPA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B3F"},6976:{"value":"1B40","name":"BALINESE VOWEL SIGN TALING TEDUNG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"1B3E 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B40"},6977:{"value":"1B41","name":"BALINESE VOWEL SIGN TALING REPA TEDUNG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"1B3F 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B41"},6979:{"value":"1B43","name":"BALINESE VOWEL SIGN PEPET TEDUNG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"1B42 1B35","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B43"},6980:{"value":"1B44","name":"BALINESE ADEG ADEG","category":"Mc","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B44"},7042:{"value":"1B82","name":"SUNDANESE SIGN PANGWISAD","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B82"},7073:{"value":"1BA1","name":"SUNDANESE CONSONANT SIGN PAMINGKAL","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BA1"},7078:{"value":"1BA6","name":"SUNDANESE VOWEL SIGN PANAELAENG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BA6"},7079:{"value":"1BA7","name":"SUNDANESE VOWEL SIGN PANOLONG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BA7"},7082:{"value":"1BAA","name":"SUNDANESE SIGN PAMAAEH","category":"Mc","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BAA"},7143:{"value":"1BE7","name":"BATAK VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BE7"},7146:{"value":"1BEA","name":"BATAK VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BEA"},7147:{"value":"1BEB","name":"BATAK VOWEL SIGN KARO I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BEB"},7148:{"value":"1BEC","name":"BATAK VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BEC"},7150:{"value":"1BEE","name":"BATAK VOWEL SIGN U","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BEE"},7154:{"value":"1BF2","name":"BATAK PANGOLAT","category":"Mc","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BF2"},7155:{"value":"1BF3","name":"BATAK PANONGONAN","category":"Mc","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BF3"},7204:{"value":"1C24","name":"LEPCHA SUBJOINED LETTER YA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C24"},7205:{"value":"1C25","name":"LEPCHA SUBJOINED LETTER RA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C25"},7206:{"value":"1C26","name":"LEPCHA VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C26"},7207:{"value":"1C27","name":"LEPCHA VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C27"},7208:{"value":"1C28","name":"LEPCHA VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C28"},7209:{"value":"1C29","name":"LEPCHA VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C29"},7210:{"value":"1C2A","name":"LEPCHA VOWEL SIGN U","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2A"},7211:{"value":"1C2B","name":"LEPCHA VOWEL SIGN UU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2B"},7220:{"value":"1C34","name":"LEPCHA CONSONANT SIGN NYIN-DO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C34"},7221:{"value":"1C35","name":"LEPCHA CONSONANT SIGN KANG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C35"},7393:{"value":"1CE1","name":"VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CE1"},7410:{"value":"1CF2","name":"VEDIC SIGN ARDHAVISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CF2"},7411:{"value":"1CF3","name":"VEDIC SIGN ROTATED ARDHAVISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CF3"},7415:{"value":"1CF7","name":"VEDIC SIGN ATIKRAMA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CF7"},12334:{"value":"302E","name":"HANGUL SINGLE DOT TONE MARK","category":"Mc","class":"224","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302E"},12335:{"value":"302F","name":"HANGUL DOUBLE DOT TONE MARK","category":"Mc","class":"224","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u302F"},43043:{"value":"A823","name":"SYLOTI NAGRI VOWEL SIGN A","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA823"},43044:{"value":"A824","name":"SYLOTI NAGRI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA824"},43047:{"value":"A827","name":"SYLOTI NAGRI VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA827"},43136:{"value":"A880","name":"SAURASHTRA SIGN ANUSVARA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA880"},43137:{"value":"A881","name":"SAURASHTRA SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA881"},43188:{"value":"A8B4","name":"SAURASHTRA CONSONANT SIGN HAARU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8B4"},43189:{"value":"A8B5","name":"SAURASHTRA VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8B5"},43190:{"value":"A8B6","name":"SAURASHTRA VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8B6"},43191:{"value":"A8B7","name":"SAURASHTRA VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8B7"},43192:{"value":"A8B8","name":"SAURASHTRA VOWEL SIGN U","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8B8"},43193:{"value":"A8B9","name":"SAURASHTRA VOWEL SIGN UU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8B9"},43194:{"value":"A8BA","name":"SAURASHTRA VOWEL SIGN VOCALIC R","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8BA"},43195:{"value":"A8BB","name":"SAURASHTRA VOWEL SIGN VOCALIC RR","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8BB"},43196:{"value":"A8BC","name":"SAURASHTRA VOWEL SIGN VOCALIC L","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8BC"},43197:{"value":"A8BD","name":"SAURASHTRA VOWEL SIGN VOCALIC LL","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8BD"},43198:{"value":"A8BE","name":"SAURASHTRA VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8BE"},43199:{"value":"A8BF","name":"SAURASHTRA VOWEL SIGN EE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8BF"},43200:{"value":"A8C0","name":"SAURASHTRA VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8C0"},43201:{"value":"A8C1","name":"SAURASHTRA VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8C1"},43202:{"value":"A8C2","name":"SAURASHTRA VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8C2"},43203:{"value":"A8C3","name":"SAURASHTRA VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8C3"},43346:{"value":"A952","name":"REJANG CONSONANT SIGN H","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA952"},43347:{"value":"A953","name":"REJANG VIRAMA","category":"Mc","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA953"},43395:{"value":"A983","name":"JAVANESE SIGN WIGNYAN","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA983"},43444:{"value":"A9B4","name":"JAVANESE VOWEL SIGN TARUNG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9B4"},43445:{"value":"A9B5","name":"JAVANESE VOWEL SIGN TOLONG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9B5"},43450:{"value":"A9BA","name":"JAVANESE VOWEL SIGN TALING","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9BA"},43451:{"value":"A9BB","name":"JAVANESE VOWEL SIGN DIRGA MURE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9BB"},43453:{"value":"A9BD","name":"JAVANESE CONSONANT SIGN KERET","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9BD"},43454:{"value":"A9BE","name":"JAVANESE CONSONANT SIGN PENGKAL","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9BE"},43455:{"value":"A9BF","name":"JAVANESE CONSONANT SIGN CAKRA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9BF"},43456:{"value":"A9C0","name":"JAVANESE PANGKON","category":"Mc","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9C0"},43567:{"value":"AA2F","name":"CHAM VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA2F"},43568:{"value":"AA30","name":"CHAM VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA30"},43571:{"value":"AA33","name":"CHAM CONSONANT SIGN YA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA33"},43572:{"value":"AA34","name":"CHAM CONSONANT SIGN RA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA34"},43597:{"value":"AA4D","name":"CHAM CONSONANT SIGN FINAL H","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA4D"},43643:{"value":"AA7B","name":"MYANMAR SIGN PAO KAREN TONE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA7B"},43645:{"value":"AA7D","name":"MYANMAR SIGN TAI LAING TONE-5","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA7D"},43755:{"value":"AAEB","name":"MEETEI MAYEK VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAEB"},43758:{"value":"AAEE","name":"MEETEI MAYEK VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAEE"},43759:{"value":"AAEF","name":"MEETEI MAYEK VOWEL SIGN AAU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAEF"},43765:{"value":"AAF5","name":"MEETEI MAYEK VOWEL SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAAF5"},44003:{"value":"ABE3","name":"MEETEI MAYEK VOWEL SIGN ONAP","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABE3"},44004:{"value":"ABE4","name":"MEETEI MAYEK VOWEL SIGN INAP","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABE4"},44006:{"value":"ABE6","name":"MEETEI MAYEK VOWEL SIGN YENAP","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABE6"},44007:{"value":"ABE7","name":"MEETEI MAYEK VOWEL SIGN SOUNAP","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABE7"},44009:{"value":"ABE9","name":"MEETEI MAYEK VOWEL SIGN CHEINAP","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABE9"},44010:{"value":"ABEA","name":"MEETEI MAYEK VOWEL SIGN NUNG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABEA"},44012:{"value":"ABEC","name":"MEETEI MAYEK LUM IYEK","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABEC"},69632:{"value":"11000","name":"BRAHMI SIGN CANDRABINDU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1000"},69634:{"value":"11002","name":"BRAHMI SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1002"},69762:{"value":"11082","name":"KAITHI SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1082"},69808:{"value":"110B0","name":"KAITHI VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10B0"},69809:{"value":"110B1","name":"KAITHI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10B1"},69810:{"value":"110B2","name":"KAITHI VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10B2"},69815:{"value":"110B7","name":"KAITHI VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10B7"},69816:{"value":"110B8","name":"KAITHI VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10B8"},69932:{"value":"1112C","name":"CHAKMA VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u112C"},69957:{"value":"11145","name":"CHAKMA VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1145"},69958:{"value":"11146","name":"CHAKMA VOWEL SIGN EI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1146"},70018:{"value":"11182","name":"SHARADA SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1182"},70067:{"value":"111B3","name":"SHARADA VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B3"},70068:{"value":"111B4","name":"SHARADA VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B4"},70069:{"value":"111B5","name":"SHARADA VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11B5"},70079:{"value":"111BF","name":"SHARADA VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11BF"},70080:{"value":"111C0","name":"SHARADA SIGN VIRAMA","category":"Mc","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11C0"},70188:{"value":"1122C","name":"KHOJKI VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122C"},70189:{"value":"1122D","name":"KHOJKI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122D"},70190:{"value":"1122E","name":"KHOJKI VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u122E"},70194:{"value":"11232","name":"KHOJKI VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1232"},70195:{"value":"11233","name":"KHOJKI VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1233"},70197:{"value":"11235","name":"KHOJKI SIGN VIRAMA","category":"Mc","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1235"},70368:{"value":"112E0","name":"KHUDAWADI VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E0"},70369:{"value":"112E1","name":"KHUDAWADI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E1"},70370:{"value":"112E2","name":"KHUDAWADI VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12E2"},70402:{"value":"11302","name":"GRANTHA SIGN ANUSVARA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1302"},70403:{"value":"11303","name":"GRANTHA SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1303"},70462:{"value":"1133E","name":"GRANTHA VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133E"},70463:{"value":"1133F","name":"GRANTHA VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u133F"},70465:{"value":"11341","name":"GRANTHA VOWEL SIGN U","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1341"},70466:{"value":"11342","name":"GRANTHA VOWEL SIGN UU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1342"},70467:{"value":"11343","name":"GRANTHA VOWEL SIGN VOCALIC R","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1343"},70468:{"value":"11344","name":"GRANTHA VOWEL SIGN VOCALIC RR","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1344"},70471:{"value":"11347","name":"GRANTHA VOWEL SIGN EE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1347"},70472:{"value":"11348","name":"GRANTHA VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1348"},70475:{"value":"1134B","name":"GRANTHA VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"11347 1133E","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u134B"},70476:{"value":"1134C","name":"GRANTHA VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"11347 11357","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u134C"},70477:{"value":"1134D","name":"GRANTHA SIGN VIRAMA","category":"Mc","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u134D"},70487:{"value":"11357","name":"GRANTHA AU LENGTH MARK","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1357"},70498:{"value":"11362","name":"GRANTHA VOWEL SIGN VOCALIC L","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1362"},70499:{"value":"11363","name":"GRANTHA VOWEL SIGN VOCALIC LL","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1363"},70709:{"value":"11435","name":"NEWA VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1435"},70710:{"value":"11436","name":"NEWA VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1436"},70711:{"value":"11437","name":"NEWA VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1437"},70720:{"value":"11440","name":"NEWA VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1440"},70721:{"value":"11441","name":"NEWA VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1441"},70725:{"value":"11445","name":"NEWA SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1445"},70832:{"value":"114B0","name":"TIRHUTA VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B0"},70833:{"value":"114B1","name":"TIRHUTA VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B1"},70834:{"value":"114B2","name":"TIRHUTA VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B2"},70841:{"value":"114B9","name":"TIRHUTA VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14B9"},70843:{"value":"114BB","name":"TIRHUTA VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"114B9 114BA","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BB"},70844:{"value":"114BC","name":"TIRHUTA VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"114B9 114B0","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BC"},70845:{"value":"114BD","name":"TIRHUTA VOWEL SIGN SHORT O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BD"},70846:{"value":"114BE","name":"TIRHUTA VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"114B9 114BD","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14BE"},70849:{"value":"114C1","name":"TIRHUTA SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14C1"},71087:{"value":"115AF","name":"SIDDHAM VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15AF"},71088:{"value":"115B0","name":"SIDDHAM VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B0"},71089:{"value":"115B1","name":"SIDDHAM VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B1"},71096:{"value":"115B8","name":"SIDDHAM VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B8"},71097:{"value":"115B9","name":"SIDDHAM VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15B9"},71098:{"value":"115BA","name":"SIDDHAM VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"115B8 115AF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BA"},71099:{"value":"115BB","name":"SIDDHAM VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"115B9 115AF","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BB"},71102:{"value":"115BE","name":"SIDDHAM SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u15BE"},71216:{"value":"11630","name":"MODI VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1630"},71217:{"value":"11631","name":"MODI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1631"},71218:{"value":"11632","name":"MODI VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1632"},71227:{"value":"1163B","name":"MODI VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163B"},71228:{"value":"1163C","name":"MODI VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163C"},71230:{"value":"1163E","name":"MODI SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u163E"},71340:{"value":"116AC","name":"TAKRI SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AC"},71342:{"value":"116AE","name":"TAKRI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AE"},71343:{"value":"116AF","name":"TAKRI VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16AF"},71350:{"value":"116B6","name":"TAKRI SIGN VIRAMA","category":"Mc","class":"9","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16B6"},71456:{"value":"11720","name":"AHOM VOWEL SIGN A","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1720"},71457:{"value":"11721","name":"AHOM VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1721"},71462:{"value":"11726","name":"AHOM VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1726"},71724:{"value":"1182C","name":"DOGRA VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182C"},71725:{"value":"1182D","name":"DOGRA VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182D"},71726:{"value":"1182E","name":"DOGRA VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u182E"},71736:{"value":"11838","name":"DOGRA SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1838"},72249:{"value":"11A39","name":"ZANABAZAR SQUARE SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A39"},72279:{"value":"11A57","name":"SOYOMBO VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A57"},72280:{"value":"11A58","name":"SOYOMBO VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A58"},72343:{"value":"11A97","name":"SOYOMBO SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A97"},72751:{"value":"11C2F","name":"BHAIKSUKI VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C2F"},72766:{"value":"11C3E","name":"BHAIKSUKI SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C3E"},72873:{"value":"11CA9","name":"MARCHEN SUBJOINED LETTER YA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CA9"},72881:{"value":"11CB1","name":"MARCHEN VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CB1"},72884:{"value":"11CB4","name":"MARCHEN VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1CB4"},73098:{"value":"11D8A","name":"GUNJALA GONDI VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8A"},73099:{"value":"11D8B","name":"GUNJALA GONDI VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8B"},73100:{"value":"11D8C","name":"GUNJALA GONDI VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8C"},73101:{"value":"11D8D","name":"GUNJALA GONDI VOWEL SIGN U","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8D"},73102:{"value":"11D8E","name":"GUNJALA GONDI VOWEL SIGN UU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D8E"},73107:{"value":"11D93","name":"GUNJALA GONDI VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D93"},73108:{"value":"11D94","name":"GUNJALA GONDI VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D94"},73110:{"value":"11D96","name":"GUNJALA GONDI SIGN VISARGA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D96"},73461:{"value":"11EF5","name":"MAKASAR VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EF5"},73462:{"value":"11EF6","name":"MAKASAR VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1EF6"},94033:{"value":"16F51","name":"MIAO SIGN ASPIRATION","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F51"},94034:{"value":"16F52","name":"MIAO SIGN REFORMED VOICING","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F52"},94035:{"value":"16F53","name":"MIAO SIGN REFORMED ASPIRATION","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F53"},94036:{"value":"16F54","name":"MIAO VOWEL SIGN A","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F54"},94037:{"value":"16F55","name":"MIAO VOWEL SIGN AA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F55"},94038:{"value":"16F56","name":"MIAO VOWEL SIGN AHH","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F56"},94039:{"value":"16F57","name":"MIAO VOWEL SIGN AN","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F57"},94040:{"value":"16F58","name":"MIAO VOWEL SIGN ANG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F58"},94041:{"value":"16F59","name":"MIAO VOWEL SIGN O","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F59"},94042:{"value":"16F5A","name":"MIAO VOWEL SIGN OO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F5A"},94043:{"value":"16F5B","name":"MIAO VOWEL SIGN WO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F5B"},94044:{"value":"16F5C","name":"MIAO VOWEL SIGN W","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F5C"},94045:{"value":"16F5D","name":"MIAO VOWEL SIGN E","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F5D"},94046:{"value":"16F5E","name":"MIAO VOWEL SIGN EN","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F5E"},94047:{"value":"16F5F","name":"MIAO VOWEL SIGN ENG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F5F"},94048:{"value":"16F60","name":"MIAO VOWEL SIGN OEY","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F60"},94049:{"value":"16F61","name":"MIAO VOWEL SIGN I","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F61"},94050:{"value":"16F62","name":"MIAO VOWEL SIGN IA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F62"},94051:{"value":"16F63","name":"MIAO VOWEL SIGN IAN","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F63"},94052:{"value":"16F64","name":"MIAO VOWEL SIGN IANG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F64"},94053:{"value":"16F65","name":"MIAO VOWEL SIGN IO","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F65"},94054:{"value":"16F66","name":"MIAO VOWEL SIGN IE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F66"},94055:{"value":"16F67","name":"MIAO VOWEL SIGN II","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F67"},94056:{"value":"16F68","name":"MIAO VOWEL SIGN IU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F68"},94057:{"value":"16F69","name":"MIAO VOWEL SIGN ING","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F69"},94058:{"value":"16F6A","name":"MIAO VOWEL SIGN U","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F6A"},94059:{"value":"16F6B","name":"MIAO VOWEL SIGN UA","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F6B"},94060:{"value":"16F6C","name":"MIAO VOWEL SIGN UAN","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F6C"},94061:{"value":"16F6D","name":"MIAO VOWEL SIGN UANG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F6D"},94062:{"value":"16F6E","name":"MIAO VOWEL SIGN UU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F6E"},94063:{"value":"16F6F","name":"MIAO VOWEL SIGN UEI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F6F"},94064:{"value":"16F70","name":"MIAO VOWEL SIGN UNG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F70"},94065:{"value":"16F71","name":"MIAO VOWEL SIGN Y","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F71"},94066:{"value":"16F72","name":"MIAO VOWEL SIGN YI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F72"},94067:{"value":"16F73","name":"MIAO VOWEL SIGN AE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F73"},94068:{"value":"16F74","name":"MIAO VOWEL SIGN AEE","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F74"},94069:{"value":"16F75","name":"MIAO VOWEL SIGN ERR","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F75"},94070:{"value":"16F76","name":"MIAO VOWEL SIGN ROUNDED ERR","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F76"},94071:{"value":"16F77","name":"MIAO VOWEL SIGN ER","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F77"},94072:{"value":"16F78","name":"MIAO VOWEL SIGN ROUNDED ER","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F78"},94073:{"value":"16F79","name":"MIAO VOWEL SIGN AI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F79"},94074:{"value":"16F7A","name":"MIAO VOWEL SIGN EI","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F7A"},94075:{"value":"16F7B","name":"MIAO VOWEL SIGN AU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F7B"},94076:{"value":"16F7C","name":"MIAO VOWEL SIGN OU","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F7C"},94077:{"value":"16F7D","name":"MIAO VOWEL SIGN N","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F7D"},94078:{"value":"16F7E","name":"MIAO VOWEL SIGN NG","category":"Mc","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6F7E"},119141:{"value":"1D165","name":"MUSICAL SYMBOL COMBINING STEM","category":"Mc","class":"216","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD165"},119142:{"value":"1D166","name":"MUSICAL SYMBOL COMBINING SPRECHGESANG STEM","category":"Mc","class":"216","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD166"},119149:{"value":"1D16D","name":"MUSICAL SYMBOL COMBINING AUGMENTATION DOT","category":"Mc","class":"226","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD16D"},119150:{"value":"1D16E","name":"MUSICAL SYMBOL COMBINING FLAG-1","category":"Mc","class":"216","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD16E"},119151:{"value":"1D16F","name":"MUSICAL SYMBOL COMBINING FLAG-2","category":"Mc","class":"216","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD16F"},119152:{"value":"1D170","name":"MUSICAL SYMBOL COMBINING FLAG-3","category":"Mc","class":"216","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD170"},119153:{"value":"1D171","name":"MUSICAL SYMBOL COMBINING FLAG-4","category":"Mc","class":"216","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD171"},119154:{"value":"1D172","name":"MUSICAL SYMBOL COMBINING FLAG-5","category":"Mc","class":"216","bidirectional_category":"L","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD172"}};

/***/ }),
/* 181 */
/***/ (function(module, exports) {

module.exports={48:{"value":"0030","name":"DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x30"},49:{"value":"0031","name":"DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x31"},50:{"value":"0032","name":"DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x32"},51:{"value":"0033","name":"DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x33"},52:{"value":"0034","name":"DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x34"},53:{"value":"0035","name":"DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x35"},54:{"value":"0036","name":"DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x36"},55:{"value":"0037","name":"DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x37"},56:{"value":"0038","name":"DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x38"},57:{"value":"0039","name":"DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x39"},1632:{"value":"0660","name":"ARABIC-INDIC DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0660"},1633:{"value":"0661","name":"ARABIC-INDIC DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0661"},1634:{"value":"0662","name":"ARABIC-INDIC DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0662"},1635:{"value":"0663","name":"ARABIC-INDIC DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0663"},1636:{"value":"0664","name":"ARABIC-INDIC DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0664"},1637:{"value":"0665","name":"ARABIC-INDIC DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0665"},1638:{"value":"0666","name":"ARABIC-INDIC DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0666"},1639:{"value":"0667","name":"ARABIC-INDIC DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0667"},1640:{"value":"0668","name":"ARABIC-INDIC DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0668"},1641:{"value":"0669","name":"ARABIC-INDIC DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0669"},1776:{"value":"06F0","name":"EXTENDED ARABIC-INDIC DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"EASTERN ARABIC-INDIC DIGIT ZERO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F0"},1777:{"value":"06F1","name":"EXTENDED ARABIC-INDIC DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"EASTERN ARABIC-INDIC DIGIT ONE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F1"},1778:{"value":"06F2","name":"EXTENDED ARABIC-INDIC DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"EASTERN ARABIC-INDIC DIGIT TWO","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F2"},1779:{"value":"06F3","name":"EXTENDED ARABIC-INDIC DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"EASTERN ARABIC-INDIC DIGIT THREE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F3"},1780:{"value":"06F4","name":"EXTENDED ARABIC-INDIC DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"EASTERN ARABIC-INDIC DIGIT FOUR","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F4"},1781:{"value":"06F5","name":"EXTENDED ARABIC-INDIC DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"EASTERN ARABIC-INDIC DIGIT FIVE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F5"},1782:{"value":"06F6","name":"EXTENDED ARABIC-INDIC DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"EASTERN ARABIC-INDIC DIGIT SIX","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F6"},1783:{"value":"06F7","name":"EXTENDED ARABIC-INDIC DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"EASTERN ARABIC-INDIC DIGIT SEVEN","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F7"},1784:{"value":"06F8","name":"EXTENDED ARABIC-INDIC DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"EASTERN ARABIC-INDIC DIGIT EIGHT","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F8"},1785:{"value":"06F9","name":"EXTENDED ARABIC-INDIC DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"EASTERN ARABIC-INDIC DIGIT NINE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u06F9"},1984:{"value":"07C0","name":"NKO DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07C0"},1985:{"value":"07C1","name":"NKO DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07C1"},1986:{"value":"07C2","name":"NKO DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07C2"},1987:{"value":"07C3","name":"NKO DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07C3"},1988:{"value":"07C4","name":"NKO DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07C4"},1989:{"value":"07C5","name":"NKO DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07C5"},1990:{"value":"07C6","name":"NKO DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07C6"},1991:{"value":"07C7","name":"NKO DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07C7"},1992:{"value":"07C8","name":"NKO DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07C8"},1993:{"value":"07C9","name":"NKO DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u07C9"},2406:{"value":"0966","name":"DEVANAGARI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0966"},2407:{"value":"0967","name":"DEVANAGARI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0967"},2408:{"value":"0968","name":"DEVANAGARI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0968"},2409:{"value":"0969","name":"DEVANAGARI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0969"},2410:{"value":"096A","name":"DEVANAGARI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u096A"},2411:{"value":"096B","name":"DEVANAGARI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u096B"},2412:{"value":"096C","name":"DEVANAGARI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u096C"},2413:{"value":"096D","name":"DEVANAGARI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u096D"},2414:{"value":"096E","name":"DEVANAGARI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u096E"},2415:{"value":"096F","name":"DEVANAGARI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u096F"},2534:{"value":"09E6","name":"BENGALI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09E6"},2535:{"value":"09E7","name":"BENGALI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09E7"},2536:{"value":"09E8","name":"BENGALI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09E8"},2537:{"value":"09E9","name":"BENGALI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09E9"},2538:{"value":"09EA","name":"BENGALI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09EA"},2539:{"value":"09EB","name":"BENGALI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09EB"},2540:{"value":"09EC","name":"BENGALI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09EC"},2541:{"value":"09ED","name":"BENGALI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09ED"},2542:{"value":"09EE","name":"BENGALI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09EE"},2543:{"value":"09EF","name":"BENGALI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u09EF"},2662:{"value":"0A66","name":"GURMUKHI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A66"},2663:{"value":"0A67","name":"GURMUKHI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A67"},2664:{"value":"0A68","name":"GURMUKHI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A68"},2665:{"value":"0A69","name":"GURMUKHI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A69"},2666:{"value":"0A6A","name":"GURMUKHI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6A"},2667:{"value":"0A6B","name":"GURMUKHI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6B"},2668:{"value":"0A6C","name":"GURMUKHI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6C"},2669:{"value":"0A6D","name":"GURMUKHI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6D"},2670:{"value":"0A6E","name":"GURMUKHI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6E"},2671:{"value":"0A6F","name":"GURMUKHI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0A6F"},2790:{"value":"0AE6","name":"GUJARATI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE6"},2791:{"value":"0AE7","name":"GUJARATI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE7"},2792:{"value":"0AE8","name":"GUJARATI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE8"},2793:{"value":"0AE9","name":"GUJARATI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AE9"},2794:{"value":"0AEA","name":"GUJARATI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AEA"},2795:{"value":"0AEB","name":"GUJARATI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AEB"},2796:{"value":"0AEC","name":"GUJARATI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AEC"},2797:{"value":"0AED","name":"GUJARATI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AED"},2798:{"value":"0AEE","name":"GUJARATI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AEE"},2799:{"value":"0AEF","name":"GUJARATI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0AEF"},2918:{"value":"0B66","name":"ORIYA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B66"},2919:{"value":"0B67","name":"ORIYA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B67"},2920:{"value":"0B68","name":"ORIYA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B68"},2921:{"value":"0B69","name":"ORIYA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B69"},2922:{"value":"0B6A","name":"ORIYA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6A"},2923:{"value":"0B6B","name":"ORIYA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6B"},2924:{"value":"0B6C","name":"ORIYA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6C"},2925:{"value":"0B6D","name":"ORIYA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6D"},2926:{"value":"0B6E","name":"ORIYA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6E"},2927:{"value":"0B6F","name":"ORIYA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0B6F"},3046:{"value":"0BE6","name":"TAMIL DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BE6"},3047:{"value":"0BE7","name":"TAMIL DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BE7"},3048:{"value":"0BE8","name":"TAMIL DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BE8"},3049:{"value":"0BE9","name":"TAMIL DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BE9"},3050:{"value":"0BEA","name":"TAMIL DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BEA"},3051:{"value":"0BEB","name":"TAMIL DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BEB"},3052:{"value":"0BEC","name":"TAMIL DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BEC"},3053:{"value":"0BED","name":"TAMIL DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BED"},3054:{"value":"0BEE","name":"TAMIL DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BEE"},3055:{"value":"0BEF","name":"TAMIL DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0BEF"},3174:{"value":"0C66","name":"TELUGU DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C66"},3175:{"value":"0C67","name":"TELUGU DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C67"},3176:{"value":"0C68","name":"TELUGU DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C68"},3177:{"value":"0C69","name":"TELUGU DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C69"},3178:{"value":"0C6A","name":"TELUGU DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C6A"},3179:{"value":"0C6B","name":"TELUGU DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C6B"},3180:{"value":"0C6C","name":"TELUGU DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C6C"},3181:{"value":"0C6D","name":"TELUGU DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C6D"},3182:{"value":"0C6E","name":"TELUGU DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C6E"},3183:{"value":"0C6F","name":"TELUGU DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0C6F"},3302:{"value":"0CE6","name":"KANNADA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CE6"},3303:{"value":"0CE7","name":"KANNADA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CE7"},3304:{"value":"0CE8","name":"KANNADA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CE8"},3305:{"value":"0CE9","name":"KANNADA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CE9"},3306:{"value":"0CEA","name":"KANNADA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CEA"},3307:{"value":"0CEB","name":"KANNADA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CEB"},3308:{"value":"0CEC","name":"KANNADA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CEC"},3309:{"value":"0CED","name":"KANNADA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CED"},3310:{"value":"0CEE","name":"KANNADA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CEE"},3311:{"value":"0CEF","name":"KANNADA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0CEF"},3430:{"value":"0D66","name":"MALAYALAM DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D66"},3431:{"value":"0D67","name":"MALAYALAM DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D67"},3432:{"value":"0D68","name":"MALAYALAM DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D68"},3433:{"value":"0D69","name":"MALAYALAM DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D69"},3434:{"value":"0D6A","name":"MALAYALAM DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D6A"},3435:{"value":"0D6B","name":"MALAYALAM DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D6B"},3436:{"value":"0D6C","name":"MALAYALAM DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D6C"},3437:{"value":"0D6D","name":"MALAYALAM DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D6D"},3438:{"value":"0D6E","name":"MALAYALAM DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D6E"},3439:{"value":"0D6F","name":"MALAYALAM DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D6F"},3558:{"value":"0DE6","name":"SINHALA LITH DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DE6"},3559:{"value":"0DE7","name":"SINHALA LITH DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DE7"},3560:{"value":"0DE8","name":"SINHALA LITH DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DE8"},3561:{"value":"0DE9","name":"SINHALA LITH DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DE9"},3562:{"value":"0DEA","name":"SINHALA LITH DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DEA"},3563:{"value":"0DEB","name":"SINHALA LITH DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DEB"},3564:{"value":"0DEC","name":"SINHALA LITH DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DEC"},3565:{"value":"0DED","name":"SINHALA LITH DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DED"},3566:{"value":"0DEE","name":"SINHALA LITH DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DEE"},3567:{"value":"0DEF","name":"SINHALA LITH DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0DEF"},3664:{"value":"0E50","name":"THAI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E50"},3665:{"value":"0E51","name":"THAI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E51"},3666:{"value":"0E52","name":"THAI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E52"},3667:{"value":"0E53","name":"THAI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E53"},3668:{"value":"0E54","name":"THAI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E54"},3669:{"value":"0E55","name":"THAI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E55"},3670:{"value":"0E56","name":"THAI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E56"},3671:{"value":"0E57","name":"THAI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E57"},3672:{"value":"0E58","name":"THAI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E58"},3673:{"value":"0E59","name":"THAI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0E59"},3792:{"value":"0ED0","name":"LAO DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ED0"},3793:{"value":"0ED1","name":"LAO DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ED1"},3794:{"value":"0ED2","name":"LAO DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ED2"},3795:{"value":"0ED3","name":"LAO DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ED3"},3796:{"value":"0ED4","name":"LAO DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ED4"},3797:{"value":"0ED5","name":"LAO DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ED5"},3798:{"value":"0ED6","name":"LAO DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ED6"},3799:{"value":"0ED7","name":"LAO DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ED7"},3800:{"value":"0ED8","name":"LAO DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ED8"},3801:{"value":"0ED9","name":"LAO DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0ED9"},3872:{"value":"0F20","name":"TIBETAN DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F20"},3873:{"value":"0F21","name":"TIBETAN DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F21"},3874:{"value":"0F22","name":"TIBETAN DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F22"},3875:{"value":"0F23","name":"TIBETAN DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F23"},3876:{"value":"0F24","name":"TIBETAN DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F24"},3877:{"value":"0F25","name":"TIBETAN DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F25"},3878:{"value":"0F26","name":"TIBETAN DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F26"},3879:{"value":"0F27","name":"TIBETAN DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F27"},3880:{"value":"0F28","name":"TIBETAN DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F28"},3881:{"value":"0F29","name":"TIBETAN DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0F29"},4160:{"value":"1040","name":"MYANMAR DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1040"},4161:{"value":"1041","name":"MYANMAR DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1041"},4162:{"value":"1042","name":"MYANMAR DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1042"},4163:{"value":"1043","name":"MYANMAR DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1043"},4164:{"value":"1044","name":"MYANMAR DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1044"},4165:{"value":"1045","name":"MYANMAR DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1045"},4166:{"value":"1046","name":"MYANMAR DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1046"},4167:{"value":"1047","name":"MYANMAR DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1047"},4168:{"value":"1048","name":"MYANMAR DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1048"},4169:{"value":"1049","name":"MYANMAR DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1049"},4240:{"value":"1090","name":"MYANMAR SHAN DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1090"},4241:{"value":"1091","name":"MYANMAR SHAN DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1091"},4242:{"value":"1092","name":"MYANMAR SHAN DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1092"},4243:{"value":"1093","name":"MYANMAR SHAN DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1093"},4244:{"value":"1094","name":"MYANMAR SHAN DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1094"},4245:{"value":"1095","name":"MYANMAR SHAN DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1095"},4246:{"value":"1096","name":"MYANMAR SHAN DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1096"},4247:{"value":"1097","name":"MYANMAR SHAN DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1097"},4248:{"value":"1098","name":"MYANMAR SHAN DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1098"},4249:{"value":"1099","name":"MYANMAR SHAN DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1099"},6112:{"value":"17E0","name":"KHMER DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17E0"},6113:{"value":"17E1","name":"KHMER DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17E1"},6114:{"value":"17E2","name":"KHMER DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17E2"},6115:{"value":"17E3","name":"KHMER DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17E3"},6116:{"value":"17E4","name":"KHMER DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17E4"},6117:{"value":"17E5","name":"KHMER DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17E5"},6118:{"value":"17E6","name":"KHMER DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17E6"},6119:{"value":"17E7","name":"KHMER DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17E7"},6120:{"value":"17E8","name":"KHMER DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17E8"},6121:{"value":"17E9","name":"KHMER DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u17E9"},6160:{"value":"1810","name":"MONGOLIAN DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1810"},6161:{"value":"1811","name":"MONGOLIAN DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1811"},6162:{"value":"1812","name":"MONGOLIAN DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1812"},6163:{"value":"1813","name":"MONGOLIAN DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1813"},6164:{"value":"1814","name":"MONGOLIAN DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1814"},6165:{"value":"1815","name":"MONGOLIAN DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1815"},6166:{"value":"1816","name":"MONGOLIAN DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1816"},6167:{"value":"1817","name":"MONGOLIAN DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1817"},6168:{"value":"1818","name":"MONGOLIAN DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1818"},6169:{"value":"1819","name":"MONGOLIAN DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1819"},6470:{"value":"1946","name":"LIMBU DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1946"},6471:{"value":"1947","name":"LIMBU DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1947"},6472:{"value":"1948","name":"LIMBU DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1948"},6473:{"value":"1949","name":"LIMBU DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1949"},6474:{"value":"194A","name":"LIMBU DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u194A"},6475:{"value":"194B","name":"LIMBU DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u194B"},6476:{"value":"194C","name":"LIMBU DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u194C"},6477:{"value":"194D","name":"LIMBU DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u194D"},6478:{"value":"194E","name":"LIMBU DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u194E"},6479:{"value":"194F","name":"LIMBU DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u194F"},6608:{"value":"19D0","name":"NEW TAI LUE DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19D0"},6609:{"value":"19D1","name":"NEW TAI LUE DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19D1"},6610:{"value":"19D2","name":"NEW TAI LUE DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19D2"},6611:{"value":"19D3","name":"NEW TAI LUE DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19D3"},6612:{"value":"19D4","name":"NEW TAI LUE DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19D4"},6613:{"value":"19D5","name":"NEW TAI LUE DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19D5"},6614:{"value":"19D6","name":"NEW TAI LUE DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19D6"},6615:{"value":"19D7","name":"NEW TAI LUE DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19D7"},6616:{"value":"19D8","name":"NEW TAI LUE DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19D8"},6617:{"value":"19D9","name":"NEW TAI LUE DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u19D9"},6784:{"value":"1A80","name":"TAI THAM HORA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A80"},6785:{"value":"1A81","name":"TAI THAM HORA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A81"},6786:{"value":"1A82","name":"TAI THAM HORA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A82"},6787:{"value":"1A83","name":"TAI THAM HORA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A83"},6788:{"value":"1A84","name":"TAI THAM HORA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A84"},6789:{"value":"1A85","name":"TAI THAM HORA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A85"},6790:{"value":"1A86","name":"TAI THAM HORA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A86"},6791:{"value":"1A87","name":"TAI THAM HORA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A87"},6792:{"value":"1A88","name":"TAI THAM HORA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A88"},6793:{"value":"1A89","name":"TAI THAM HORA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A89"},6800:{"value":"1A90","name":"TAI THAM THAM DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A90"},6801:{"value":"1A91","name":"TAI THAM THAM DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A91"},6802:{"value":"1A92","name":"TAI THAM THAM DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A92"},6803:{"value":"1A93","name":"TAI THAM THAM DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A93"},6804:{"value":"1A94","name":"TAI THAM THAM DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A94"},6805:{"value":"1A95","name":"TAI THAM THAM DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A95"},6806:{"value":"1A96","name":"TAI THAM THAM DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A96"},6807:{"value":"1A97","name":"TAI THAM THAM DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A97"},6808:{"value":"1A98","name":"TAI THAM THAM DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A98"},6809:{"value":"1A99","name":"TAI THAM THAM DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1A99"},6992:{"value":"1B50","name":"BALINESE DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B50"},6993:{"value":"1B51","name":"BALINESE DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B51"},6994:{"value":"1B52","name":"BALINESE DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B52"},6995:{"value":"1B53","name":"BALINESE DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B53"},6996:{"value":"1B54","name":"BALINESE DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B54"},6997:{"value":"1B55","name":"BALINESE DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B55"},6998:{"value":"1B56","name":"BALINESE DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B56"},6999:{"value":"1B57","name":"BALINESE DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B57"},7000:{"value":"1B58","name":"BALINESE DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B58"},7001:{"value":"1B59","name":"BALINESE DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1B59"},7088:{"value":"1BB0","name":"SUNDANESE DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BB0"},7089:{"value":"1BB1","name":"SUNDANESE DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BB1"},7090:{"value":"1BB2","name":"SUNDANESE DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BB2"},7091:{"value":"1BB3","name":"SUNDANESE DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BB3"},7092:{"value":"1BB4","name":"SUNDANESE DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BB4"},7093:{"value":"1BB5","name":"SUNDANESE DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BB5"},7094:{"value":"1BB6","name":"SUNDANESE DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BB6"},7095:{"value":"1BB7","name":"SUNDANESE DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BB7"},7096:{"value":"1BB8","name":"SUNDANESE DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BB8"},7097:{"value":"1BB9","name":"SUNDANESE DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1BB9"},7232:{"value":"1C40","name":"LEPCHA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C40"},7233:{"value":"1C41","name":"LEPCHA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C41"},7234:{"value":"1C42","name":"LEPCHA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C42"},7235:{"value":"1C43","name":"LEPCHA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C43"},7236:{"value":"1C44","name":"LEPCHA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C44"},7237:{"value":"1C45","name":"LEPCHA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C45"},7238:{"value":"1C46","name":"LEPCHA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C46"},7239:{"value":"1C47","name":"LEPCHA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C47"},7240:{"value":"1C48","name":"LEPCHA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C48"},7241:{"value":"1C49","name":"LEPCHA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C49"},7248:{"value":"1C50","name":"OL CHIKI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C50"},7249:{"value":"1C51","name":"OL CHIKI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C51"},7250:{"value":"1C52","name":"OL CHIKI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C52"},7251:{"value":"1C53","name":"OL CHIKI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C53"},7252:{"value":"1C54","name":"OL CHIKI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C54"},7253:{"value":"1C55","name":"OL CHIKI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C55"},7254:{"value":"1C56","name":"OL CHIKI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C56"},7255:{"value":"1C57","name":"OL CHIKI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C57"},7256:{"value":"1C58","name":"OL CHIKI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C58"},7257:{"value":"1C59","name":"OL CHIKI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C59"},42528:{"value":"A620","name":"VAI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA620"},42529:{"value":"A621","name":"VAI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA621"},42530:{"value":"A622","name":"VAI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA622"},42531:{"value":"A623","name":"VAI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA623"},42532:{"value":"A624","name":"VAI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA624"},42533:{"value":"A625","name":"VAI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA625"},42534:{"value":"A626","name":"VAI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA626"},42535:{"value":"A627","name":"VAI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA627"},42536:{"value":"A628","name":"VAI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA628"},42537:{"value":"A629","name":"VAI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA629"},43216:{"value":"A8D0","name":"SAURASHTRA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8D0"},43217:{"value":"A8D1","name":"SAURASHTRA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8D1"},43218:{"value":"A8D2","name":"SAURASHTRA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8D2"},43219:{"value":"A8D3","name":"SAURASHTRA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8D3"},43220:{"value":"A8D4","name":"SAURASHTRA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8D4"},43221:{"value":"A8D5","name":"SAURASHTRA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8D5"},43222:{"value":"A8D6","name":"SAURASHTRA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8D6"},43223:{"value":"A8D7","name":"SAURASHTRA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8D7"},43224:{"value":"A8D8","name":"SAURASHTRA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8D8"},43225:{"value":"A8D9","name":"SAURASHTRA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA8D9"},43264:{"value":"A900","name":"KAYAH LI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA900"},43265:{"value":"A901","name":"KAYAH LI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA901"},43266:{"value":"A902","name":"KAYAH LI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA902"},43267:{"value":"A903","name":"KAYAH LI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA903"},43268:{"value":"A904","name":"KAYAH LI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA904"},43269:{"value":"A905","name":"KAYAH LI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA905"},43270:{"value":"A906","name":"KAYAH LI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA906"},43271:{"value":"A907","name":"KAYAH LI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA907"},43272:{"value":"A908","name":"KAYAH LI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA908"},43273:{"value":"A909","name":"KAYAH LI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA909"},43472:{"value":"A9D0","name":"JAVANESE DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9D0"},43473:{"value":"A9D1","name":"JAVANESE DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9D1"},43474:{"value":"A9D2","name":"JAVANESE DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9D2"},43475:{"value":"A9D3","name":"JAVANESE DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9D3"},43476:{"value":"A9D4","name":"JAVANESE DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9D4"},43477:{"value":"A9D5","name":"JAVANESE DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9D5"},43478:{"value":"A9D6","name":"JAVANESE DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9D6"},43479:{"value":"A9D7","name":"JAVANESE DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9D7"},43480:{"value":"A9D8","name":"JAVANESE DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9D8"},43481:{"value":"A9D9","name":"JAVANESE DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9D9"},43504:{"value":"A9F0","name":"MYANMAR TAI LAING DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9F0"},43505:{"value":"A9F1","name":"MYANMAR TAI LAING DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9F1"},43506:{"value":"A9F2","name":"MYANMAR TAI LAING DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9F2"},43507:{"value":"A9F3","name":"MYANMAR TAI LAING DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9F3"},43508:{"value":"A9F4","name":"MYANMAR TAI LAING DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9F4"},43509:{"value":"A9F5","name":"MYANMAR TAI LAING DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9F5"},43510:{"value":"A9F6","name":"MYANMAR TAI LAING DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9F6"},43511:{"value":"A9F7","name":"MYANMAR TAI LAING DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9F7"},43512:{"value":"A9F8","name":"MYANMAR TAI LAING DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9F8"},43513:{"value":"A9F9","name":"MYANMAR TAI LAING DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uA9F9"},43600:{"value":"AA50","name":"CHAM DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA50"},43601:{"value":"AA51","name":"CHAM DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA51"},43602:{"value":"AA52","name":"CHAM DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA52"},43603:{"value":"AA53","name":"CHAM DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA53"},43604:{"value":"AA54","name":"CHAM DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA54"},43605:{"value":"AA55","name":"CHAM DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA55"},43606:{"value":"AA56","name":"CHAM DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA56"},43607:{"value":"AA57","name":"CHAM DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA57"},43608:{"value":"AA58","name":"CHAM DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA58"},43609:{"value":"AA59","name":"CHAM DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uAA59"},44016:{"value":"ABF0","name":"MEETEI MAYEK DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABF0"},44017:{"value":"ABF1","name":"MEETEI MAYEK DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABF1"},44018:{"value":"ABF2","name":"MEETEI MAYEK DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABF2"},44019:{"value":"ABF3","name":"MEETEI MAYEK DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABF3"},44020:{"value":"ABF4","name":"MEETEI MAYEK DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABF4"},44021:{"value":"ABF5","name":"MEETEI MAYEK DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABF5"},44022:{"value":"ABF6","name":"MEETEI MAYEK DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABF6"},44023:{"value":"ABF7","name":"MEETEI MAYEK DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABF7"},44024:{"value":"ABF8","name":"MEETEI MAYEK DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABF8"},44025:{"value":"ABF9","name":"MEETEI MAYEK DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uABF9"},65296:{"value":"FF10","name":"FULLWIDTH DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<wide> 0030","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF10"},65297:{"value":"FF11","name":"FULLWIDTH DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<wide> 0031","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF11"},65298:{"value":"FF12","name":"FULLWIDTH DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<wide> 0032","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF12"},65299:{"value":"FF13","name":"FULLWIDTH DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<wide> 0033","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF13"},65300:{"value":"FF14","name":"FULLWIDTH DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<wide> 0034","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF14"},65301:{"value":"FF15","name":"FULLWIDTH DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<wide> 0035","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF15"},65302:{"value":"FF16","name":"FULLWIDTH DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<wide> 0036","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF16"},65303:{"value":"FF17","name":"FULLWIDTH DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<wide> 0037","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF17"},65304:{"value":"FF18","name":"FULLWIDTH DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<wide> 0038","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF18"},65305:{"value":"FF19","name":"FULLWIDTH DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<wide> 0039","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF19"},66720:{"value":"104A0","name":"OSMANYA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u04A0"},66721:{"value":"104A1","name":"OSMANYA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u04A1"},66722:{"value":"104A2","name":"OSMANYA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u04A2"},66723:{"value":"104A3","name":"OSMANYA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u04A3"},66724:{"value":"104A4","name":"OSMANYA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u04A4"},66725:{"value":"104A5","name":"OSMANYA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u04A5"},66726:{"value":"104A6","name":"OSMANYA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u04A6"},66727:{"value":"104A7","name":"OSMANYA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u04A7"},66728:{"value":"104A8","name":"OSMANYA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u04A8"},66729:{"value":"104A9","name":"OSMANYA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u04A9"},68912:{"value":"10D30","name":"HANIFI ROHINGYA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D30"},68913:{"value":"10D31","name":"HANIFI ROHINGYA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D31"},68914:{"value":"10D32","name":"HANIFI ROHINGYA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D32"},68915:{"value":"10D33","name":"HANIFI ROHINGYA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D33"},68916:{"value":"10D34","name":"HANIFI ROHINGYA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D34"},68917:{"value":"10D35","name":"HANIFI ROHINGYA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D35"},68918:{"value":"10D36","name":"HANIFI ROHINGYA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D36"},68919:{"value":"10D37","name":"HANIFI ROHINGYA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D37"},68920:{"value":"10D38","name":"HANIFI ROHINGYA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D38"},68921:{"value":"10D39","name":"HANIFI ROHINGYA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"AN","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u0D39"},69734:{"value":"11066","name":"BRAHMI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1066"},69735:{"value":"11067","name":"BRAHMI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1067"},69736:{"value":"11068","name":"BRAHMI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1068"},69737:{"value":"11069","name":"BRAHMI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1069"},69738:{"value":"1106A","name":"BRAHMI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106A"},69739:{"value":"1106B","name":"BRAHMI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106B"},69740:{"value":"1106C","name":"BRAHMI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106C"},69741:{"value":"1106D","name":"BRAHMI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106D"},69742:{"value":"1106E","name":"BRAHMI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106E"},69743:{"value":"1106F","name":"BRAHMI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u106F"},69872:{"value":"110F0","name":"SORA SOMPENG DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10F0"},69873:{"value":"110F1","name":"SORA SOMPENG DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10F1"},69874:{"value":"110F2","name":"SORA SOMPENG DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10F2"},69875:{"value":"110F3","name":"SORA SOMPENG DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10F3"},69876:{"value":"110F4","name":"SORA SOMPENG DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10F4"},69877:{"value":"110F5","name":"SORA SOMPENG DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10F5"},69878:{"value":"110F6","name":"SORA SOMPENG DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10F6"},69879:{"value":"110F7","name":"SORA SOMPENG DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10F7"},69880:{"value":"110F8","name":"SORA SOMPENG DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10F8"},69881:{"value":"110F9","name":"SORA SOMPENG DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u10F9"},69942:{"value":"11136","name":"CHAKMA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1136"},69943:{"value":"11137","name":"CHAKMA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1137"},69944:{"value":"11138","name":"CHAKMA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1138"},69945:{"value":"11139","name":"CHAKMA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1139"},69946:{"value":"1113A","name":"CHAKMA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113A"},69947:{"value":"1113B","name":"CHAKMA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113B"},69948:{"value":"1113C","name":"CHAKMA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113C"},69949:{"value":"1113D","name":"CHAKMA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113D"},69950:{"value":"1113E","name":"CHAKMA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113E"},69951:{"value":"1113F","name":"CHAKMA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u113F"},70096:{"value":"111D0","name":"SHARADA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D0"},70097:{"value":"111D1","name":"SHARADA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D1"},70098:{"value":"111D2","name":"SHARADA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D2"},70099:{"value":"111D3","name":"SHARADA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D3"},70100:{"value":"111D4","name":"SHARADA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D4"},70101:{"value":"111D5","name":"SHARADA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D5"},70102:{"value":"111D6","name":"SHARADA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D6"},70103:{"value":"111D7","name":"SHARADA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D7"},70104:{"value":"111D8","name":"SHARADA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D8"},70105:{"value":"111D9","name":"SHARADA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u11D9"},70384:{"value":"112F0","name":"KHUDAWADI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F0"},70385:{"value":"112F1","name":"KHUDAWADI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F1"},70386:{"value":"112F2","name":"KHUDAWADI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F2"},70387:{"value":"112F3","name":"KHUDAWADI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F3"},70388:{"value":"112F4","name":"KHUDAWADI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F4"},70389:{"value":"112F5","name":"KHUDAWADI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F5"},70390:{"value":"112F6","name":"KHUDAWADI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F6"},70391:{"value":"112F7","name":"KHUDAWADI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F7"},70392:{"value":"112F8","name":"KHUDAWADI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F8"},70393:{"value":"112F9","name":"KHUDAWADI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u12F9"},70736:{"value":"11450","name":"NEWA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1450"},70737:{"value":"11451","name":"NEWA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1451"},70738:{"value":"11452","name":"NEWA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1452"},70739:{"value":"11453","name":"NEWA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1453"},70740:{"value":"11454","name":"NEWA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1454"},70741:{"value":"11455","name":"NEWA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1455"},70742:{"value":"11456","name":"NEWA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1456"},70743:{"value":"11457","name":"NEWA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1457"},70744:{"value":"11458","name":"NEWA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1458"},70745:{"value":"11459","name":"NEWA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1459"},70864:{"value":"114D0","name":"TIRHUTA DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D0"},70865:{"value":"114D1","name":"TIRHUTA DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D1"},70866:{"value":"114D2","name":"TIRHUTA DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D2"},70867:{"value":"114D3","name":"TIRHUTA DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D3"},70868:{"value":"114D4","name":"TIRHUTA DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D4"},70869:{"value":"114D5","name":"TIRHUTA DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D5"},70870:{"value":"114D6","name":"TIRHUTA DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D6"},70871:{"value":"114D7","name":"TIRHUTA DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D7"},70872:{"value":"114D8","name":"TIRHUTA DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D8"},70873:{"value":"114D9","name":"TIRHUTA DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u14D9"},71248:{"value":"11650","name":"MODI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1650"},71249:{"value":"11651","name":"MODI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1651"},71250:{"value":"11652","name":"MODI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1652"},71251:{"value":"11653","name":"MODI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1653"},71252:{"value":"11654","name":"MODI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1654"},71253:{"value":"11655","name":"MODI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1655"},71254:{"value":"11656","name":"MODI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1656"},71255:{"value":"11657","name":"MODI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1657"},71256:{"value":"11658","name":"MODI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1658"},71257:{"value":"11659","name":"MODI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1659"},71360:{"value":"116C0","name":"TAKRI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C0"},71361:{"value":"116C1","name":"TAKRI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C1"},71362:{"value":"116C2","name":"TAKRI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C2"},71363:{"value":"116C3","name":"TAKRI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C3"},71364:{"value":"116C4","name":"TAKRI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C4"},71365:{"value":"116C5","name":"TAKRI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C5"},71366:{"value":"116C6","name":"TAKRI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C6"},71367:{"value":"116C7","name":"TAKRI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C7"},71368:{"value":"116C8","name":"TAKRI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C8"},71369:{"value":"116C9","name":"TAKRI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u16C9"},71472:{"value":"11730","name":"AHOM DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1730"},71473:{"value":"11731","name":"AHOM DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1731"},71474:{"value":"11732","name":"AHOM DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1732"},71475:{"value":"11733","name":"AHOM DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1733"},71476:{"value":"11734","name":"AHOM DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1734"},71477:{"value":"11735","name":"AHOM DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1735"},71478:{"value":"11736","name":"AHOM DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1736"},71479:{"value":"11737","name":"AHOM DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1737"},71480:{"value":"11738","name":"AHOM DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1738"},71481:{"value":"11739","name":"AHOM DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1739"},71904:{"value":"118E0","name":"WARANG CITI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E0"},71905:{"value":"118E1","name":"WARANG CITI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E1"},71906:{"value":"118E2","name":"WARANG CITI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E2"},71907:{"value":"118E3","name":"WARANG CITI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E3"},71908:{"value":"118E4","name":"WARANG CITI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E4"},71909:{"value":"118E5","name":"WARANG CITI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E5"},71910:{"value":"118E6","name":"WARANG CITI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E6"},71911:{"value":"118E7","name":"WARANG CITI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E7"},71912:{"value":"118E8","name":"WARANG CITI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E8"},71913:{"value":"118E9","name":"WARANG CITI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u18E9"},72784:{"value":"11C50","name":"BHAIKSUKI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C50"},72785:{"value":"11C51","name":"BHAIKSUKI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C51"},72786:{"value":"11C52","name":"BHAIKSUKI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C52"},72787:{"value":"11C53","name":"BHAIKSUKI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C53"},72788:{"value":"11C54","name":"BHAIKSUKI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C54"},72789:{"value":"11C55","name":"BHAIKSUKI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C55"},72790:{"value":"11C56","name":"BHAIKSUKI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C56"},72791:{"value":"11C57","name":"BHAIKSUKI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C57"},72792:{"value":"11C58","name":"BHAIKSUKI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C58"},72793:{"value":"11C59","name":"BHAIKSUKI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1C59"},73040:{"value":"11D50","name":"MASARAM GONDI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D50"},73041:{"value":"11D51","name":"MASARAM GONDI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D51"},73042:{"value":"11D52","name":"MASARAM GONDI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D52"},73043:{"value":"11D53","name":"MASARAM GONDI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D53"},73044:{"value":"11D54","name":"MASARAM GONDI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D54"},73045:{"value":"11D55","name":"MASARAM GONDI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D55"},73046:{"value":"11D56","name":"MASARAM GONDI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D56"},73047:{"value":"11D57","name":"MASARAM GONDI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D57"},73048:{"value":"11D58","name":"MASARAM GONDI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D58"},73049:{"value":"11D59","name":"MASARAM GONDI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1D59"},73120:{"value":"11DA0","name":"GUNJALA GONDI DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA0"},73121:{"value":"11DA1","name":"GUNJALA GONDI DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA1"},73122:{"value":"11DA2","name":"GUNJALA GONDI DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA2"},73123:{"value":"11DA3","name":"GUNJALA GONDI DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA3"},73124:{"value":"11DA4","name":"GUNJALA GONDI DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA4"},73125:{"value":"11DA5","name":"GUNJALA GONDI DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA5"},73126:{"value":"11DA6","name":"GUNJALA GONDI DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA6"},73127:{"value":"11DA7","name":"GUNJALA GONDI DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA7"},73128:{"value":"11DA8","name":"GUNJALA GONDI DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA8"},73129:{"value":"11DA9","name":"GUNJALA GONDI DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u1DA9"},92768:{"value":"16A60","name":"MRO DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A60"},92769:{"value":"16A61","name":"MRO DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A61"},92770:{"value":"16A62","name":"MRO DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A62"},92771:{"value":"16A63","name":"MRO DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A63"},92772:{"value":"16A64","name":"MRO DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A64"},92773:{"value":"16A65","name":"MRO DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A65"},92774:{"value":"16A66","name":"MRO DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A66"},92775:{"value":"16A67","name":"MRO DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A67"},92776:{"value":"16A68","name":"MRO DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A68"},92777:{"value":"16A69","name":"MRO DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6A69"},93008:{"value":"16B50","name":"PAHAWH HMONG DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B50"},93009:{"value":"16B51","name":"PAHAWH HMONG DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B51"},93010:{"value":"16B52","name":"PAHAWH HMONG DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B52"},93011:{"value":"16B53","name":"PAHAWH HMONG DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B53"},93012:{"value":"16B54","name":"PAHAWH HMONG DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B54"},93013:{"value":"16B55","name":"PAHAWH HMONG DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B55"},93014:{"value":"16B56","name":"PAHAWH HMONG DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B56"},93015:{"value":"16B57","name":"PAHAWH HMONG DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B57"},93016:{"value":"16B58","name":"PAHAWH HMONG DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B58"},93017:{"value":"16B59","name":"PAHAWH HMONG DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"L","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u6B59"},120782:{"value":"1D7CE","name":"MATHEMATICAL BOLD DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0030","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7CE"},120783:{"value":"1D7CF","name":"MATHEMATICAL BOLD DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0031","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7CF"},120784:{"value":"1D7D0","name":"MATHEMATICAL BOLD DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0032","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D0"},120785:{"value":"1D7D1","name":"MATHEMATICAL BOLD DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0033","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D1"},120786:{"value":"1D7D2","name":"MATHEMATICAL BOLD DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0034","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D2"},120787:{"value":"1D7D3","name":"MATHEMATICAL BOLD DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0035","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D3"},120788:{"value":"1D7D4","name":"MATHEMATICAL BOLD DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0036","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D4"},120789:{"value":"1D7D5","name":"MATHEMATICAL BOLD DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0037","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D5"},120790:{"value":"1D7D6","name":"MATHEMATICAL BOLD DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0038","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D6"},120791:{"value":"1D7D7","name":"MATHEMATICAL BOLD DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0039","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D7"},120792:{"value":"1D7D8","name":"MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0030","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D8"},120793:{"value":"1D7D9","name":"MATHEMATICAL DOUBLE-STRUCK DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0031","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7D9"},120794:{"value":"1D7DA","name":"MATHEMATICAL DOUBLE-STRUCK DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0032","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DA"},120795:{"value":"1D7DB","name":"MATHEMATICAL DOUBLE-STRUCK DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0033","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DB"},120796:{"value":"1D7DC","name":"MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0034","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DC"},120797:{"value":"1D7DD","name":"MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0035","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DD"},120798:{"value":"1D7DE","name":"MATHEMATICAL DOUBLE-STRUCK DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0036","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DE"},120799:{"value":"1D7DF","name":"MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0037","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7DF"},120800:{"value":"1D7E0","name":"MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0038","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E0"},120801:{"value":"1D7E1","name":"MATHEMATICAL DOUBLE-STRUCK DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0039","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E1"},120802:{"value":"1D7E2","name":"MATHEMATICAL SANS-SERIF DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0030","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E2"},120803:{"value":"1D7E3","name":"MATHEMATICAL SANS-SERIF DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0031","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E3"},120804:{"value":"1D7E4","name":"MATHEMATICAL SANS-SERIF DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0032","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E4"},120805:{"value":"1D7E5","name":"MATHEMATICAL SANS-SERIF DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0033","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E5"},120806:{"value":"1D7E6","name":"MATHEMATICAL SANS-SERIF DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0034","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E6"},120807:{"value":"1D7E7","name":"MATHEMATICAL SANS-SERIF DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0035","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E7"},120808:{"value":"1D7E8","name":"MATHEMATICAL SANS-SERIF DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0036","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E8"},120809:{"value":"1D7E9","name":"MATHEMATICAL SANS-SERIF DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0037","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7E9"},120810:{"value":"1D7EA","name":"MATHEMATICAL SANS-SERIF DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0038","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7EA"},120811:{"value":"1D7EB","name":"MATHEMATICAL SANS-SERIF DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0039","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7EB"},120812:{"value":"1D7EC","name":"MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0030","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7EC"},120813:{"value":"1D7ED","name":"MATHEMATICAL SANS-SERIF BOLD DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0031","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7ED"},120814:{"value":"1D7EE","name":"MATHEMATICAL SANS-SERIF BOLD DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0032","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7EE"},120815:{"value":"1D7EF","name":"MATHEMATICAL SANS-SERIF BOLD DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0033","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7EF"},120816:{"value":"1D7F0","name":"MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0034","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F0"},120817:{"value":"1D7F1","name":"MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0035","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F1"},120818:{"value":"1D7F2","name":"MATHEMATICAL SANS-SERIF BOLD DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0036","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F2"},120819:{"value":"1D7F3","name":"MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0037","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F3"},120820:{"value":"1D7F4","name":"MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0038","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F4"},120821:{"value":"1D7F5","name":"MATHEMATICAL SANS-SERIF BOLD DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0039","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F5"},120822:{"value":"1D7F6","name":"MATHEMATICAL MONOSPACE DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0030","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F6"},120823:{"value":"1D7F7","name":"MATHEMATICAL MONOSPACE DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0031","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F7"},120824:{"value":"1D7F8","name":"MATHEMATICAL MONOSPACE DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0032","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F8"},120825:{"value":"1D7F9","name":"MATHEMATICAL MONOSPACE DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0033","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7F9"},120826:{"value":"1D7FA","name":"MATHEMATICAL MONOSPACE DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0034","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7FA"},120827:{"value":"1D7FB","name":"MATHEMATICAL MONOSPACE DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0035","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7FB"},120828:{"value":"1D7FC","name":"MATHEMATICAL MONOSPACE DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0036","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7FC"},120829:{"value":"1D7FD","name":"MATHEMATICAL MONOSPACE DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0037","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7FD"},120830:{"value":"1D7FE","name":"MATHEMATICAL MONOSPACE DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0038","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7FE"},120831:{"value":"1D7FF","name":"MATHEMATICAL MONOSPACE DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"EN","mapping":"<font> 0039","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uD7FF"},125264:{"value":"1E950","name":"ADLAM DIGIT ZERO","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"0","digit_value":"0","numeric_value":"0","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE950"},125265:{"value":"1E951","name":"ADLAM DIGIT ONE","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"1","digit_value":"1","numeric_value":"1","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE951"},125266:{"value":"1E952","name":"ADLAM DIGIT TWO","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"2","digit_value":"2","numeric_value":"2","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE952"},125267:{"value":"1E953","name":"ADLAM DIGIT THREE","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"3","digit_value":"3","numeric_value":"3","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE953"},125268:{"value":"1E954","name":"ADLAM DIGIT FOUR","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"4","digit_value":"4","numeric_value":"4","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE954"},125269:{"value":"1E955","name":"ADLAM DIGIT FIVE","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"5","digit_value":"5","numeric_value":"5","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE955"},125270:{"value":"1E956","name":"ADLAM DIGIT SIX","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"6","digit_value":"6","numeric_value":"6","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE956"},125271:{"value":"1E957","name":"ADLAM DIGIT SEVEN","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"7","digit_value":"7","numeric_value":"7","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE957"},125272:{"value":"1E958","name":"ADLAM DIGIT EIGHT","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"8","digit_value":"8","numeric_value":"8","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE958"},125273:{"value":"1E959","name":"ADLAM DIGIT NINE","category":"Nd","class":"0","bidirectional_category":"R","mapping":"","decimal_digit_value":"9","digit_value":"9","numeric_value":"9","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uE959"}};

/***/ }),
/* 182 */
/***/ (function(module, exports) {

module.exports={95:{"value":"005F","name":"LOW LINE","category":"Pc","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SPACING UNDERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\x5F"},8255:{"value":"203F","name":"UNDERTIE","category":"Pc","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u203F"},8256:{"value":"2040","name":"CHARACTER TIE","category":"Pc","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2040"},8276:{"value":"2054","name":"INVERTED UNDERTIE","category":"Pc","class":"0","bidirectional_category":"ON","mapping":"","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\u2054"},65075:{"value":"FE33","name":"PRESENTATION FORM FOR VERTICAL LOW LINE","category":"Pc","class":"0","bidirectional_category":"ON","mapping":"<vertical> 005F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR VERTICAL SPACING UNDERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE33"},65076:{"value":"FE34","name":"PRESENTATION FORM FOR VERTICAL WAVY LOW LINE","category":"Pc","class":"0","bidirectional_category":"ON","mapping":"<vertical> 005F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE34"},65101:{"value":"FE4D","name":"DASHED LOW LINE","category":"Pc","class":"0","bidirectional_category":"ON","mapping":"<compat> 005F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SPACING DASHED UNDERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE4D"},65102:{"value":"FE4E","name":"CENTRELINE LOW LINE","category":"Pc","class":"0","bidirectional_category":"ON","mapping":"<compat> 005F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SPACING CENTERLINE UNDERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE4E"},65103:{"value":"FE4F","name":"WAVY LOW LINE","category":"Pc","class":"0","bidirectional_category":"ON","mapping":"<compat> 005F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"SPACING WAVY UNDERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFE4F"},65343:{"value":"FF3F","name":"FULLWIDTH LOW LINE","category":"Pc","class":"0","bidirectional_category":"ON","mapping":"<wide> 005F","decimal_digit_value":"","digit_value":"","numeric_value":"","mirrored":"N","unicode_name":"FULLWIDTH SPACING UNDERSCORE","comment":"","uppercase_mapping":"","lowercase_mapping":"","titlecase_mapping":"","symbol":"\uFF3F"}};

/***/ }),
/* 183 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const characters_1 = __webpack_require__(171);
const textIterator_1 = __webpack_require__(184);
class CharacterStream {
    constructor(text) {
        this.text = typeof text === 'string' ? new textIterator_1.TextIterator(text) : text;
        this._position = 0;
        this._currentChar = text.length > 0 ? text.charCodeAt(0) : 0;
        this._isEndOfStream = text.length === 0;
    }
    getText() {
        return this.text.getText();
    }
    get position() {
        return this._position;
    }
    set position(value) {
        this._position = value;
        this.checkBounds();
    }
    get currentChar() {
        return this._currentChar;
    }
    get nextChar() {
        return this.position + 1 < this.text.length ? this.text.charCodeAt(this.position + 1) : 0;
    }
    get prevChar() {
        return this.position - 1 >= 0 ? this.text.charCodeAt(this.position - 1) : 0;
    }
    isEndOfStream() {
        return this._isEndOfStream;
    }
    lookAhead(offset) {
        const pos = this._position + offset;
        return pos < 0 || pos >= this.text.length ? 0 : this.text.charCodeAt(pos);
    }
    advance(offset) {
        this.position += offset;
    }
    moveNext() {
        if (this._position < this.text.length - 1) {
            // Most common case, no need to check bounds extensively
            this._position += 1;
            this._currentChar = this.text.charCodeAt(this._position);
            return true;
        }
        this.advance(1);
        return !this.isEndOfStream();
    }
    isAtWhiteSpace() {
        return characters_1.isWhiteSpace(this.currentChar);
    }
    isAtLineBreak() {
        return characters_1.isLineBreak(this.currentChar);
    }
    skipLineBreak() {
        if (this._currentChar === 13 /* CarriageReturn */) {
            this.moveNext();
            if (this.currentChar === 10 /* LineFeed */) {
                this.moveNext();
            }
        }
        else if (this._currentChar === 10 /* LineFeed */) {
            this.moveNext();
        }
    }
    skipWhitespace() {
        while (!this.isEndOfStream() && this.isAtWhiteSpace()) {
            this.moveNext();
        }
    }
    skipToEol() {
        while (!this.isEndOfStream() && !this.isAtLineBreak()) {
            this.moveNext();
        }
    }
    skipToWhitespace() {
        while (!this.isEndOfStream() && !this.isAtWhiteSpace()) {
            this.moveNext();
        }
    }
    isAtString() {
        return this.currentChar === 39 /* SingleQuote */ || this.currentChar === 34 /* DoubleQuote */;
    }
    charCodeAt(index) {
        return this.text.charCodeAt(index);
    }
    get length() {
        return this.text.length;
    }
    checkBounds() {
        if (this._position < 0) {
            this._position = 0;
        }
        this._isEndOfStream = this._position >= this.text.length;
        if (this._isEndOfStream) {
            this._position = this.text.length;
        }
        this._currentChar = this._isEndOfStream ? 0 : this.text.charCodeAt(this._position);
    }
}
exports.CharacterStream = CharacterStream;


/***/ }),
/* 184 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_languageserver_protocol_1 = __webpack_require__(45);
class TextIterator {
    constructor(text) {
        this.text = text;
    }
    charCodeAt(index) {
        if (index >= 0 && index < this.text.length) {
            return this.text.charCodeAt(index);
        }
        return 0;
    }
    get length() {
        return this.text.length;
    }
    getText() {
        return this.text;
    }
}
exports.TextIterator = TextIterator;
class DocumentTextIterator {
    constructor(document) {
        this.document = document;
        const lines = document.getText().split(/\r?\n/);
        const lastIndex = this.document.lineCount - 1;
        const lastLine = lines[lastIndex];
        const end = vscode_languageserver_protocol_1.Position.create(lastIndex, lastLine.length);
        this.length = this.document.offsetAt(end);
    }
    charCodeAt(index) {
        const position = this.document.positionAt(index);
        return this.document
            .getText(vscode_languageserver_protocol_1.Range.create(position, { line: position.line, character: position.character + 1 }))
            .charCodeAt(position.character);
    }
    getText() {
        return this.document.getText();
    }
}
exports.DocumentTextIterator = DocumentTextIterator;


/***/ }),
/* 185 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
class TextRangeCollection {
    constructor(items) {
        this.items = items;
    }
    get start() {
        return this.items.length > 0 ? this.items[0].start : 0;
    }
    get end() {
        return this.items.length > 0 ? this.items[this.items.length - 1].end : 0;
    }
    get length() {
        return this.end - this.start;
    }
    get count() {
        return this.items.length;
    }
    contains(position) {
        return position >= this.start && position < this.end;
    }
    getItemAt(index) {
        if (index < 0 || index >= this.items.length) {
            throw new Error('index is out of range');
        }
        return this.items[index];
    }
    getItemAtPosition(position) {
        if (this.count === 0) {
            return -1;
        }
        if (position < this.start) {
            return -1;
        }
        if (position >= this.end) {
            return -1;
        }
        let min = 0;
        let max = this.count - 1;
        while (min <= max) {
            const mid = Math.floor(min + (max - min) / 2);
            const item = this.items[mid];
            if (item.start === position) {
                return mid;
            }
            if (position < item.start) {
                max = mid - 1;
            }
            else {
                min = mid + 1;
            }
        }
        return -1;
    }
    getItemContaining(position) {
        if (this.count === 0) {
            return -1;
        }
        if (position < this.start) {
            return -1;
        }
        if (position > this.end) {
            return -1;
        }
        let min = 0;
        let max = this.count - 1;
        while (min <= max) {
            const mid = Math.floor(min + (max - min) / 2);
            const item = this.items[mid];
            if (item.contains(position)) {
                return mid;
            }
            if (mid < this.count - 1 && item.end <= position && position < this.items[mid + 1].start) {
                return -1;
            }
            if (position < item.start) {
                max = mid - 1;
            }
            else {
                min = mid + 1;
            }
        }
        return -1;
    }
}
exports.TextRangeCollection = TextRangeCollection;


/***/ }),
/* 186 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
class TextRange {
    constructor(start, length) {
        if (start < 0) {
            throw new Error('start must be non-negative');
        }
        if (length < 0) {
            throw new Error('length must be non-negative');
        }
        this.start = start;
        this.length = length;
    }
    static fromBounds(start, end) {
        return new TextRange(start, end - start);
    }
    get end() {
        return this.start + this.length;
    }
    contains(position) {
        return position >= this.start && position < this.end;
    }
}
TextRange.empty = TextRange.fromBounds(0, 0);
exports.TextRange = TextRange;
var TokenType;
(function (TokenType) {
    TokenType[TokenType["Unknown"] = 0] = "Unknown";
    TokenType[TokenType["String"] = 1] = "String";
    TokenType[TokenType["Comment"] = 2] = "Comment";
    TokenType[TokenType["Keyword"] = 3] = "Keyword";
    TokenType[TokenType["Number"] = 4] = "Number";
    TokenType[TokenType["Identifier"] = 5] = "Identifier";
    TokenType[TokenType["Operator"] = 6] = "Operator";
    TokenType[TokenType["Colon"] = 7] = "Colon";
    TokenType[TokenType["Semicolon"] = 8] = "Semicolon";
    TokenType[TokenType["Comma"] = 9] = "Comma";
    TokenType[TokenType["OpenBrace"] = 10] = "OpenBrace";
    TokenType[TokenType["CloseBrace"] = 11] = "CloseBrace";
    TokenType[TokenType["OpenBracket"] = 12] = "OpenBracket";
    TokenType[TokenType["CloseBracket"] = 13] = "CloseBracket";
    TokenType[TokenType["OpenCurly"] = 14] = "OpenCurly";
    TokenType[TokenType["CloseCurly"] = 15] = "CloseCurly";
})(TokenType = exports.TokenType || (exports.TokenType = {}));
var TokenizerMode;
(function (TokenizerMode) {
    TokenizerMode[TokenizerMode["CommentsAndStrings"] = 0] = "CommentsAndStrings";
    TokenizerMode[TokenizerMode["Full"] = 1] = "Full";
})(TokenizerMode = exports.TokenizerMode || (exports.TokenizerMode = {}));


/***/ }),
/* 187 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const os_1 = __webpack_require__(56);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const restTextConverter_1 = __webpack_require__(188);
const proxy = __importStar(__webpack_require__(103));
class LanguageItemInfo {
    constructor(tooltip, detail, signature) {
        this.tooltip = tooltip;
        this.detail = detail;
        this.signature = signature;
    }
}
exports.LanguageItemInfo = LanguageItemInfo;
class ItemInfoSource {
    constructor(jediFactory) {
        this.jediFactory = jediFactory;
        this.textConverter = new restTextConverter_1.RestTextConverter();
    }
    async getItemInfoFromText(documentUri, fileName, range, sourceText, token) {
        const result = await this.getHoverResultFromTextRange(documentUri, fileName, range, sourceText, token);
        if (!result || !result.items.length) {
            return;
        }
        return this.getItemInfoFromHoverResult(result, '');
    }
    async getItemInfoFromDocument(document, position, token) {
        const doc = coc_nvim_1.workspace.getDocument(document.uri);
        const range = doc.getWordRangeAtPosition(position);
        if (!range || (range.start.line == range.end.line && range.start.character == range.end.character)) {
            return;
        }
        const result = await this.getHoverResultFromDocument(document, position, token);
        if (!result || !result.items.length) {
            return;
        }
        const word = document.getText(range);
        return this.getItemInfoFromHoverResult(result, word);
    }
    async getHoverResultFromDocument(document, position, token) {
        const doc = coc_nvim_1.workspace.getDocument(document.uri);
        if (doc.getline(position.line).match(/^\s*\/\//)) {
            return;
        }
        const range = doc.getWordRangeAtPosition(position);
        if (!range || (range.start.line == range.end.line && range.start.character == range.end.character)) {
            return;
        }
        return this.getHoverResultFromDocumentRange(document, range, token);
    }
    async getHoverResultFromDocumentRange(document, range, token) {
        const doc = coc_nvim_1.workspace.getDocument(document.uri);
        const cmd = {
            command: proxy.CommandType.Hover,
            fileName: coc_nvim_1.Uri.parse(document.uri).fsPath,
            columnIndex: range.end.character,
            lineIndex: range.end.line
        };
        if (doc.dirty) {
            cmd.source = document.getText();
        }
        return this.jediFactory.getJediProxyHandler(coc_nvim_1.Uri.parse(document.uri)).sendCommand(cmd, token);
    }
    async getHoverResultFromTextRange(documentUri, fileName, range, sourceText, token) {
        const cmd = {
            command: proxy.CommandType.Hover,
            fileName,
            columnIndex: range.end.character,
            lineIndex: range.end.line,
            source: sourceText
        };
        return this.jediFactory.getJediProxyHandler(documentUri).sendCommand(cmd, token);
    }
    getItemInfoFromHoverResult(data, currentWord) {
        const infos = [];
        data.items.forEach(item => {
            const signature = this.getSignature(item, currentWord);
            let tooltip = { kind: 'markdown', value: '' };
            if (item.docstring) {
                let lines = item.docstring.split(/\r?\n/);
                // If the docstring starts with the signature, then remove those lines from the docstring.
                if (lines.length > 0 && item.signature.indexOf(lines[0]) === 0) {
                    lines.shift();
                    const endIndex = lines.findIndex(line => item.signature.endsWith(line));
                    if (endIndex >= 0) {
                        lines = lines.filter((_line, index) => index > endIndex);
                    }
                }
                if (lines.length > 0 && currentWord.length > 0 && item.signature.startsWith(currentWord) && lines[0].startsWith(currentWord) && lines[0].endsWith(')')) {
                    lines.shift();
                }
                if (signature.length > 0) {
                    tooltip.value = tooltip.value + '\n' + (['```python', signature, '```', ''].join(os_1.EOL));
                }
                const description = this.textConverter.toMarkdown(lines.join(os_1.EOL));
                const invalid = description.indexOf('\n') == -1 && description.startsWith('\\');
                if (!invalid)
                    tooltip.value = tooltip.value + description;
                infos.push(new LanguageItemInfo(tooltip, item.description, signature));
                return;
            }
            if (item.description) {
                if (signature.length > 0) {
                    tooltip.value = tooltip.value + '\n' + (['```python', signature, '```', ''].join(os_1.EOL));
                }
                const description = this.textConverter.toMarkdown(item.description);
                tooltip.value = tooltip.value + '\n' + description;
                infos.push(new LanguageItemInfo(tooltip, item.description, signature));
                return;
            }
            if (item.text) { // Most probably variable type
                const code = currentWord && currentWord.length > 0
                    ? `${currentWord}: ${item.text}`
                    : item.text;
                tooltip.value = tooltip.value + '\n' + (['```python', code, '```', ''].join(os_1.EOL));
                infos.push(new LanguageItemInfo(tooltip, '', ''));
            }
        });
        return infos;
    }
    getSignature(item, currentWord) {
        let { signature } = item;
        switch (item.kind) {
            case vscode_languageserver_protocol_1.SymbolKind.Constructor:
            case vscode_languageserver_protocol_1.SymbolKind.Function:
            case vscode_languageserver_protocol_1.SymbolKind.Method: {
                signature = `def ${signature}`;
                break;
            }
            case vscode_languageserver_protocol_1.SymbolKind.Class: {
                signature = `class ${signature}`;
                break;
            }
            case vscode_languageserver_protocol_1.SymbolKind.Module: {
                if (signature.length > 0) {
                    signature = `module ${signature}`;
                }
                break;
            }
            default: {
                signature = typeof item.text === 'string' && item.text.length > 0 ? item.text : currentWord;
            }
        }
        return signature;
    }
}
exports.ItemInfoSource = ItemInfoSource;


/***/ }),
/* 188 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const os_1 = __webpack_require__(56);
const characters_1 = __webpack_require__(171);
var State;
(function (State) {
    State[State["Default"] = 0] = "Default";
    State[State["Preformatted"] = 1] = "Preformatted";
    State[State["Code"] = 2] = "Code";
})(State || (State = {}));
class RestTextConverter {
    constructor() {
        this.state = State.Default;
        this.md = [];
    }
    // tslint:disable-next-line:cyclomatic-complexity
    toMarkdown(docstring) {
        // Translates reStructruredText (Python doc syntax) to markdown.
        // It only translates as much as needed to display tooltips
        // and documentation in the completion list.
        // See https://en.wikipedia.org/wiki/ReStructuredText
        const result = this.transformLines(docstring);
        this.state = State.Default;
        this.md = [];
        return result;
    }
    escapeMarkdown(text) {
        // Not complete escape list so it does not interfere
        // with subsequent code highlighting (see above).
        return text
            .replace(/\#/g, '\\#')
            .replace(/\*/g, '\\*')
            .replace(/\ _/g, ' \\_')
            .replace(/^_/, '\\_');
    }
    transformLines(docstring) {
        const lines = docstring.split(/\r?\n/);
        for (let i = 0; i < lines.length; i += 1) {
            const line = lines[i];
            // Avoid leading empty lines
            if (this.md.length === 0 && line.length === 0) {
                continue;
            }
            switch (this.state) {
                case State.Default:
                    i += this.inDefaultState(lines, i);
                    break;
                case State.Preformatted:
                    i += this.inPreformattedState(lines, i);
                    break;
                case State.Code:
                    this.inCodeState(line);
                    break;
                default:
                    break;
            }
        }
        this.endCodeBlock();
        this.endPreformattedBlock();
        return this.md.join(os_1.EOL).trim();
    }
    inDefaultState(lines, i) {
        let line = lines[i];
        if (line.startsWith('```')) {
            this.startCodeBlock();
            return 0;
        }
        if (line.startsWith('===') || line.startsWith('---')) {
            return 0; // Eat standalone === or --- lines.
        }
        if (this.handleDoubleColon(line)) {
            return 0;
        }
        if (this.isIgnorable(line)) {
            return 0;
        }
        if (this.handleSectionHeader(lines, i)) {
            return 1; // Eat line with === or ---
        }
        const result = this.checkPreContent(lines, i);
        if (this.state !== State.Default) {
            return result; // Handle line in the new state
        }
        line = this.cleanup(line);
        line = line.replace(/``/g, '`'); // Convert double backticks to single.
        line = this.escapeMarkdown(line);
        this.md.push(line);
        return 0;
    }
    inPreformattedState(lines, i) {
        let line = lines[i];
        if (this.isIgnorable(line)) {
            return 0;
        }
        // Preformatted block terminates by a line without leading whitespace.
        if (line.length > 0 && !characters_1.isWhiteSpace(line.charCodeAt(0)) && !this.isListItem(line)) {
            this.endPreformattedBlock();
            return -1;
        }
        const prevLine = this.md.length > 0 ? this.md[this.md.length - 1] : undefined;
        if (line.length === 0 && prevLine && (prevLine.length === 0 || prevLine.startsWith('```'))) {
            return 0; // Avoid more than one empty line in a row.
        }
        // Since we use HTML blocks as preformatted text
        // make sure we drop angle brackets since otherwise
        // they will render as tags and attributes
        line = line.replace(/</g, ' ').replace(/>/g, ' ');
        line = line.replace(/``/g, '`'); // Convert double backticks to single.
        // Keep hard line breaks for the preformatted content
        this.md.push(`${line}  `);
        return 0;
    }
    inCodeState(line) {
        const prevLine = this.md.length > 0 ? this.md[this.md.length - 1] : undefined;
        if (line.length === 0 && prevLine && (prevLine.length === 0 || prevLine.startsWith('```'))) {
            return; // Avoid more than one empty line in a row.
        }
        if (line.startsWith('```')) {
            this.endCodeBlock();
        }
        else {
            this.md.push(line);
        }
    }
    isIgnorable(line) {
        if (line.indexOf('generated/') >= 0) {
            return true; // Drop generated content.
        }
        const trimmed = line.trim();
        if (trimmed.startsWith('..') && trimmed.indexOf('::') > 0) {
            // Ignore lines likes .. sectionauthor:: John Doe.
            return true;
        }
        return false;
    }
    checkPreContent(lines, i) {
        const line = lines[i];
        if (i === 0 || line.trim().length === 0) {
            return 0;
        }
        if (!characters_1.isWhiteSpace(line.charCodeAt(0)) && !this.isListItem(line)) {
            return 0; // regular line, nothing to do here.
        }
        // Indented content is considered to be preformatted.
        this.startPreformattedBlock();
        return -1;
    }
    handleSectionHeader(lines, i) {
        const line = lines[i];
        if (i < lines.length - 1 && (lines[i + 1].startsWith('==='))) {
            // Section title -> heading level 3.
            this.md.push(`### ${this.cleanup(line)}`);
            return true;
        }
        if (i < lines.length - 1 && (lines[i + 1].startsWith('---'))) {
            // Subsection title -> heading level 4.
            this.md.push(`#### ${this.cleanup(line)}`);
            return true;
        }
        return false;
    }
    handleDoubleColon(line) {
        if (!line.endsWith('::')) {
            return false;
        }
        // Literal blocks begin with `::`. Such as sequence like
        // '... as shown below::' that is followed by a preformatted text.
        if (line.length > 2 && !line.startsWith('..')) {
            // Ignore lines likes .. autosummary:: John Doe.
            // Trim trailing : so :: turns into :.
            this.md.push(line.substring(0, line.length - 1));
        }
        this.startPreformattedBlock();
        return true;
    }
    startPreformattedBlock() {
        // Remove previous empty line so we avoid double empties.
        this.tryRemovePrecedingEmptyLines();
        // Lie about the language since we don't want preformatted text
        // to be colorized as Python. HTML is more 'appropriate' as it does
        // not colorize -- or + or keywords like 'from'.
        this.md.push('```html');
        this.state = State.Preformatted;
    }
    endPreformattedBlock() {
        if (this.state === State.Preformatted) {
            this.tryRemovePrecedingEmptyLines();
            this.md.push('```');
            this.state = State.Default;
        }
    }
    startCodeBlock() {
        // Remove previous empty line so we avoid double empties.
        this.tryRemovePrecedingEmptyLines();
        this.md.push('```python');
        this.state = State.Code;
    }
    endCodeBlock() {
        if (this.state === State.Code) {
            this.tryRemovePrecedingEmptyLines();
            this.md.push('```');
            this.state = State.Default;
        }
    }
    tryRemovePrecedingEmptyLines() {
        while (this.md.length > 0 && this.md[this.md.length - 1].trim().length === 0) {
            this.md.pop();
        }
    }
    isListItem(line) {
        const trimmed = line.trim();
        const ch = trimmed.length > 0 ? trimmed.charCodeAt(0) : 0;
        return ch === 42 /* Asterisk */ || ch === 45 /* Hyphen */ || characters_1.isDecimal(ch);
    }
    cleanup(line) {
        return line.replace(/:mod:/g, 'module:');
    }
}
exports.RestTextConverter = RestTextConverter;


/***/ }),
/* 189 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const proxy = __importStar(__webpack_require__(103));
const coc_nvim_1 = __webpack_require__(2);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
class PythonDefinitionProvider {
    constructor(jediFactory) {
        this.jediFactory = jediFactory;
    }
    static parseData(data, possibleWord) {
        if (data && Array.isArray(data.definitions) && data.definitions.length > 0) {
            const definitions = data.definitions.filter(d => d.text === possibleWord);
            const definition = definitions.length > 0 ? definitions[0] : data.definitions[data.definitions.length - 1];
            const definitionResource = coc_nvim_1.Uri.file(definition.fileName);
            const range = vscode_languageserver_protocol_1.Range.create(definition.range.startLine, definition.range.startColumn, definition.range.endLine, definition.range.endColumn);
            return vscode_languageserver_protocol_1.Location.create(definitionResource.toString(), range);
        }
    }
    async provideDefinition(document, position, token) {
        const doc = coc_nvim_1.workspace.getDocument(document.uri);
        const filename = coc_nvim_1.Uri.parse(document.uri).fsPath;
        if (doc.getline(position.line).match(/^\s*\/\//)) {
            return;
        }
        if (position.character < 0) {
            return;
        }
        const range = doc.getWordRangeAtPosition(position);
        if (!range) {
            return;
        }
        const isEmpty = range.start.line == range.end.line && range.start.character == range.end.character;
        const columnIndex = isEmpty ? position.character : range.end.character;
        const cmd = {
            command: proxy.CommandType.Definitions,
            fileName: filename,
            columnIndex,
            lineIndex: position.line
        };
        if (doc.dirty) {
            cmd.source = doc.getDocumentContent();
        }
        const possibleWord = document.getText(range);
        const data = await this.jediFactory.getJediProxyHandler(coc_nvim_1.Uri.parse(document.uri)).sendCommand(cmd, token);
        return data ? PythonDefinitionProvider.parseData(data, possibleWord) : undefined;
    }
}
exports.PythonDefinitionProvider = PythonDefinitionProvider;


/***/ }),
/* 190 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const itemInfoSource_1 = __webpack_require__(187);
class PythonHoverProvider {
    constructor(jediFactory) {
        this.itemInfoSource = new itemInfoSource_1.ItemInfoSource(jediFactory);
    }
    async provideHover(document, position, token) {
        const itemInfos = await this.itemInfoSource.getItemInfoFromDocument(document, position, token);
        if (itemInfos) { // item.tooltip
            return {
                contents: itemInfos.map(item => {
                    // tslint:disable-next-line: deprecation
                    return { value: item.tooltip.value, language: item.tooltip.kind == 'markdown' ? 'markdown' : 'txt' };
                })
            };
        }
    }
}
exports.PythonHoverProvider = PythonHoverProvider;


/***/ }),
/* 191 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const defProvider = __importStar(__webpack_require__(189));
class PythonObjectDefinitionProvider {
    constructor(jediFactory) {
        this._defProvider = new defProvider.PythonDefinitionProvider(jediFactory);
    }
    async goToObjectDefinition() {
        const pathDef = await this.getObjectDefinition();
        if (typeof pathDef !== 'string' || pathDef.length === 0) {
            return;
        }
        const parts = pathDef.split('.');
        let source = '';
        let startColumn = 0;
        if (parts.length === 1) {
            source = `import ${parts[0]}`;
            startColumn = 'import '.length;
        }
        else {
            const mod = parts.shift();
            source = `from ${mod} import ${parts.join('.')}`;
            startColumn = `from ${mod} import `.length;
        }
        const range = vscode_languageserver_protocol_1.Range.create(0, startColumn, 0, source.length - 1);
        // tslint:disable-next-line:no-any
        const doc = {
            fileName: 'test.py',
            lineAt: (_line) => {
                return { text: source };
            },
            getWordRangeAtPosition: (_position) => range,
            isDirty: true,
            getText: () => source
        };
        const tokenSource = new vscode_languageserver_protocol_1.CancellationTokenSource();
        const defs = await this._defProvider.provideDefinition(doc, range.start, tokenSource.token);
        if (defs === null) {
            coc_nvim_1.workspace.showMessage(`Definition not found for '${pathDef}'`, 'warning');
            return;
        }
        let uri;
        let lineNumber;
        if (Array.isArray(defs) && defs.length > 0) {
            uri = defs[0].uri;
            lineNumber = defs[0].range.start.line;
        }
        if (defs && !Array.isArray(defs) && defs.uri) {
            uri = defs.uri;
            lineNumber = defs.range.start.line;
        }
        if (uri) {
            await coc_nvim_1.workspace.jumpTo(uri, vscode_languageserver_protocol_1.Position.create(lineNumber, 0));
        }
        else {
            coc_nvim_1.workspace.showMessage(`Definition not found for '${pathDef}'`, 'warning');
        }
    }
    intputValidation(value) {
        if (typeof value !== 'string') {
            return '';
        }
        value = value.trim();
        if (value.length === 0) {
            return '';
        }
        return value;
    }
    async getObjectDefinition() {
        return coc_nvim_1.workspace.requestInput('Enter Object path').then(res => {
            return this.intputValidation(res);
        });
    }
}
exports.PythonObjectDefinitionProvider = PythonObjectDefinitionProvider;
function activateGoToObjectDefinitionProvider(jediFactory) {
    const def = new PythonObjectDefinitionProvider(jediFactory);
    const commandRegistration = coc_nvim_1.commands.registerCommand('python.goToPythonObject', () => def.goToObjectDefinition());
    return [def, commandRegistration];
}
exports.activateGoToObjectDefinitionProvider = activateGoToObjectDefinitionProvider;


/***/ }),
/* 192 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const proxy = __importStar(__webpack_require__(103));
const coc_nvim_1 = __webpack_require__(2);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
class PythonReferenceProvider {
    constructor(jediFactory) {
        this.jediFactory = jediFactory;
    }
    static parseData(data) {
        if (data && data.references.length > 0) {
            // tslint:disable-next-line:no-unnecessary-local-variable
            const references = data.references.filter(ref => {
                if (!ref || typeof ref.columnIndex !== 'number' || typeof ref.lineIndex !== 'number'
                    || typeof ref.fileName !== 'string' || ref.columnIndex === -1 || ref.lineIndex === -1 || ref.fileName.length === 0) {
                    return false;
                }
                return true;
            }).map(ref => {
                const definitionResource = coc_nvim_1.Uri.file(ref.fileName);
                const range = vscode_languageserver_protocol_1.Range.create(ref.lineIndex, ref.columnIndex, ref.lineIndex, ref.columnIndex);
                return vscode_languageserver_protocol_1.Location.create(definitionResource.toString(), range);
            });
            return references;
        }
        return [];
    }
    async provideReferences(document, position, _context, token) {
        const doc = coc_nvim_1.workspace.getDocument(document.uri);
        const filename = coc_nvim_1.Uri.parse(doc.uri).fsPath;
        if (doc.getline(position.line).match(/^\s*\/\//)) {
            return;
        }
        const range = doc.getWordRangeAtPosition(position);
        if (!range) {
            return;
        }
        const isEmpty = range.start.line == range.end.line && range.start.character == range.end.character;
        const columnIndex = isEmpty ? position.character : range.end.character;
        const cmd = {
            command: proxy.CommandType.Usages,
            fileName: filename,
            columnIndex,
            lineIndex: position.line
        };
        if (doc.dirty) {
            cmd.source = doc.getDocumentContent();
        }
        const data = await this.jediFactory.getJediProxyHandler(coc_nvim_1.Uri.parse(document.uri)).sendCommand(cmd, token);
        return data ? PythonReferenceProvider.parseData(data) : undefined;
    }
}
exports.PythonReferenceProvider = PythonReferenceProvider;


/***/ }),
/* 193 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const constants_1 = __webpack_require__(84);
const editor_1 = __webpack_require__(194);
const types_1 = __webpack_require__(75);
const proxy_1 = __webpack_require__(200);
class PythonRenameProvider {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.outputChannel = serviceContainer.get(types_1.IOutputChannel, constants_1.STANDARD_OUTPUT_CHANNEL);
        this.configurationService = serviceContainer.get(types_1.IConfigurationService);
    }
    provideRenameEdits(document, position, newName, _token) {
        return coc_nvim_1.workspace.nvim.command('wa').then(() => {
            return this.doRename(document, position, newName);
        });
    }
    doRename(document, position, newName) {
        let doc = coc_nvim_1.workspace.getDocument(document.uri);
        if (doc.getline(position.line).match(/^\s*\/\//)) {
            return;
        }
        const range = doc.getWordRangeAtPosition(position);
        const isEmpty = range.start.line == range.end.line && range.start.character == range.end.character;
        if (!range || isEmpty) {
            return;
        }
        const oldName = document.getText(range);
        if (oldName === newName) {
            return;
        }
        const workspaceRoot = coc_nvim_1.workspace.rootPath;
        const pythonSettings = this.configurationService.getSettings(coc_nvim_1.Uri.file(workspaceRoot));
        const proxy = new proxy_1.RefactorProxy(constants_1.EXTENSION_ROOT_DIR, pythonSettings, workspaceRoot, this.serviceContainer);
        return proxy.rename(document, newName, coc_nvim_1.Uri.parse(document.uri).fsPath, range).then(response => {
            const fileDiffs = response.results.map(fileChanges => fileChanges.diff);
            return editor_1.getWorkspaceEditsFromPatch(fileDiffs, workspaceRoot);
        }).catch(reason => {
            if (reason === 'Not installed') {
                const installer = this.serviceContainer.get(types_1.IInstaller);
                installer.promptToInstall(types_1.Product.rope, coc_nvim_1.Uri.parse(document.uri))
                    .catch(ex => console.error('Python Extension: promptToInstall', ex));
                return Promise.reject('');
            }
            else {
                coc_nvim_1.workspace.showMessage(reason, 'error');
                this.outputChannel.appendLine(reason);
            }
            return Promise.reject(reason);
        });
    }
}
exports.PythonRenameProvider = PythonRenameProvider;


/***/ }),
/* 194 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const diff_match_patch_1 = __webpack_require__(195);
const fs_extra_1 = __importDefault(__webpack_require__(104));
const inversify_1 = __webpack_require__(3);
const md5_1 = __importDefault(__webpack_require__(196));
const os_1 = __webpack_require__(56);
const path = __importStar(__webpack_require__(55));
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const coc_nvim_1 = __webpack_require__(2);
// Code borrowed from goFormat.ts (Go Extension for VS Code)
var EditAction;
(function (EditAction) {
    EditAction[EditAction["Delete"] = 0] = "Delete";
    EditAction[EditAction["Insert"] = 1] = "Insert";
    EditAction[EditAction["Replace"] = 2] = "Replace";
})(EditAction || (EditAction = {}));
const NEW_LINE_LENGTH = os_1.EOL.length;
class Patch {
}
class Edit {
    constructor(action, start) {
        this.action = action;
        this.start = start;
        this.text = '';
    }
    apply() {
        switch (this.action) {
            case EditAction.Insert:
                return vscode_languageserver_protocol_1.TextEdit.insert(this.start, this.text);
            case EditAction.Delete:
                return vscode_languageserver_protocol_1.TextEdit.del(vscode_languageserver_protocol_1.Range.create(this.start, this.end));
            case EditAction.Replace:
                return vscode_languageserver_protocol_1.TextEdit.replace(vscode_languageserver_protocol_1.Range.create(this.start, this.end), this.text);
            default:
                return {
                    range: vscode_languageserver_protocol_1.Range.create(0, 0, 0, 0),
                    newText: ''
                };
        }
    }
}
function getTextEditsFromPatch(before, patch) {
    if (patch.startsWith('---')) {
        // Strip the first two lines
        patch = patch.substring(patch.indexOf('@@'));
    }
    if (patch.length === 0) {
        return [];
    }
    // Remove the text added by unified_diff
    // # Work around missing newline (http://bugs.python.org/issue2142).
    patch = patch.replace(/\\ No newline at end of file[\r\n]/, '');
    // tslint:disable-next-line:no-require-imports
    const dmp = __webpack_require__(195);
    const d = new dmp.diff_match_patch();
    const patches = patch_fromText.call(d, patch);
    if (!Array.isArray(patches) || patches.length === 0) {
        throw new Error('Unable to parse Patch string');
    }
    const textEdits = [];
    // Add line feeds and build the text edits
    patches.forEach(p => {
        p.diffs.forEach(diff => {
            diff[1] += os_1.EOL;
        });
        getTextEditsInternal(before, p.diffs, p.start1).forEach(edit => textEdits.push(edit.apply()));
    });
    return textEdits;
}
exports.getTextEditsFromPatch = getTextEditsFromPatch;
function getWorkspaceEditsFromPatch(filePatches, workspaceRoot) {
    const workspaceEdit = { changes: {} };
    filePatches.forEach(patch => {
        const indexOfAtAt = patch.indexOf('@@');
        if (indexOfAtAt === -1) {
            return;
        }
        const fileNameLines = patch.substring(0, indexOfAtAt).split(/\r?\n/g)
            .map(line => line.trim())
            .filter(line => line.length > 0 &&
            line.toLowerCase().endsWith('.py') &&
            line.indexOf(' a') > 0);
        if (patch.startsWith('---')) {
            // Strip the first two lines
            patch = patch.substring(indexOfAtAt);
        }
        if (patch.length === 0) {
            return;
        }
        // We can't find the find name
        if (fileNameLines.length === 0) {
            return;
        }
        let fileName = fileNameLines[0].substring(fileNameLines[0].indexOf(' a') + 3).trim();
        fileName = workspaceRoot && !path.isAbsolute(fileName) ? path.resolve(workspaceRoot, fileName) : fileName;
        if (!fs_extra_1.default.existsSync(fileName)) {
            return;
        }
        // Remove the text added by unified_diff
        // # Work around missing newline (http://bugs.python.org/issue2142).
        patch = patch.replace(/\\ No newline at end of file[\r\n]/, '');
        // tslint:disable-next-line:no-require-imports
        const dmp = __webpack_require__(195);
        const d = new dmp.diff_match_patch();
        const patches = patch_fromText.call(d, patch);
        if (!Array.isArray(patches) || patches.length === 0) {
            throw new Error('Unable to parse Patch string');
        }
        const fileSource = fs_extra_1.default.readFileSync(fileName).toString('utf8');
        const fileUri = coc_nvim_1.Uri.file(fileName);
        const edits = [];
        workspaceEdit.changes[fileUri.toString()] = edits;
        // Add line feeds and build the text edits
        patches.forEach(p => {
            p.diffs.forEach(diff => {
                diff[1] += os_1.EOL;
            });
            getTextEditsInternal(fileSource, p.diffs, p.start1).forEach(edit => {
                switch (edit.action) {
                    case EditAction.Delete:
                        edits.push(vscode_languageserver_protocol_1.TextEdit.del(vscode_languageserver_protocol_1.Range.create(edit.start, edit.end)));
                        break;
                    case EditAction.Insert:
                        edits.push(vscode_languageserver_protocol_1.TextEdit.insert(edit.start, edit.text));
                        break;
                    case EditAction.Replace:
                        edits.push(vscode_languageserver_protocol_1.TextEdit.replace(vscode_languageserver_protocol_1.Range.create(edit.start, edit.end), edit.text));
                        break;
                    default:
                        break;
                }
            });
        });
    });
    return workspaceEdit;
}
exports.getWorkspaceEditsFromPatch = getWorkspaceEditsFromPatch;
function getTextEdits(before, after) {
    // tslint:disable-next-line:no-require-imports
    const dmp = __webpack_require__(195);
    const d = new dmp.diff_match_patch();
    const diffs = d.diff_main(before, after);
    return getTextEditsInternal(before, diffs).map(edit => edit.apply());
}
exports.getTextEdits = getTextEdits;
function getTextEditsInternal(before, diffs, startLine = 0) {
    let line = startLine;
    let character = 0;
    if (line > 0) {
        const beforeLines = before.split(/\r?\n/g);
        beforeLines.filter((_l, i) => i < line).forEach(l => character += l.length + NEW_LINE_LENGTH);
    }
    const edits = [];
    let edit = null;
    // tslint:disable-next-line:prefer-for-of
    for (let i = 0; i < diffs.length; i += 1) {
        const start = { line, character };
        // Compute the line/character after the diff is applied.
        // tslint:disable-next-line:prefer-for-of
        for (let curr = 0; curr < diffs[i][1].length; curr += 1) {
            if (diffs[i][1][curr] !== '\n') {
                character += 1;
            }
            else {
                character = 0;
                line += 1;
            }
        }
        // tslint:disable-next-line:no-require-imports
        const dmp = __webpack_require__(195);
        // tslint:disable-next-line:switch-default
        switch (diffs[i][0]) {
            case dmp.DIFF_DELETE:
                if (edit === null) {
                    edit = new Edit(EditAction.Delete, start);
                }
                else if (edit.action !== EditAction.Delete) {
                    throw new Error('cannot format due to an internal error.');
                }
                edit.end = { line, character };
                break;
            case dmp.DIFF_INSERT:
                if (edit === null) {
                    edit = new Edit(EditAction.Insert, start);
                }
                else if (edit.action === EditAction.Delete) {
                    edit.action = EditAction.Replace;
                }
                // insert and replace edits are all relative to the original state
                // of the document, so inserts should reset the current line/character
                // position to the start.
                line = start.line;
                character = start.character;
                edit.text += diffs[i][1];
                break;
            case dmp.DIFF_EQUAL:
                if (edit !== null) {
                    edits.push(edit);
                    edit = null;
                }
                break;
        }
    }
    if (edit !== null) {
        edits.push(edit);
    }
    return edits;
}
function getTempFileWithDocumentContents(document) {
    return new Promise((resolve, reject) => {
        let fsPath = coc_nvim_1.Uri.parse(document.uri).fsPath;
        const ext = path.extname(fsPath);
        // Don't create file in temp folder since external utilities
        // look into configuration files in the workspace and are not able
        // to find custom rules if file is saved in a random disk location.
        // This means temp file has to be created in the same folder
        // as the original one and then removed.
        // tslint:disable-next-line:no-require-imports
        const fileName = `${fsPath}.${md5_1.default(document.uri)}${ext}`;
        fs_extra_1.default.writeFile(fileName, document.getText(), ex => {
            if (ex) {
                reject(new Error(`Failed to create a temporary file, ${ex.message}`));
            }
            resolve(fileName);
        });
    });
}
exports.getTempFileWithDocumentContents = getTempFileWithDocumentContents;
/**
 * Parse a textual representation of patches and return a list of Patch objects.
 * @param {string} textline Text representation of patches.
 * @return {!Array.<!diff_match_patch.patch_obj>} Array of Patch objects.
 * @throws {!Error} If invalid input.
 */
function patch_fromText(textline) {
    const patches = [];
    if (!textline) {
        return patches;
    }
    // Start Modification by Don Jayamanne 24/06/2016 Support for CRLF
    const text = textline.split(/[\r\n]/);
    // End Modification
    let textPointer = 0;
    const patchHeader = /^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;
    while (textPointer < text.length) {
        const m = text[textPointer].match(patchHeader);
        if (!m) {
            throw new Error(`Invalid patch string: ${text[textPointer]}`);
        }
        // tslint:disable-next-line:no-any
        const patch = new diff_match_patch_1.diff_match_patch.patch_obj();
        patches.push(patch);
        patch.start1 = parseInt(m[1], 10);
        if (m[2] === '') {
            patch.start1 -= 1;
            patch.length1 = 1;
        }
        else if (m[2] === '0') {
            patch.length1 = 0;
        }
        else {
            patch.start1 -= 1;
            patch.length1 = parseInt(m[2], 10);
        }
        patch.start2 = parseInt(m[3], 10);
        if (m[4] === '') {
            patch.start2 -= 1;
            patch.length2 = 1;
        }
        else if (m[4] === '0') {
            patch.length2 = 0;
        }
        else {
            patch.start2 -= 1;
            patch.length2 = parseInt(m[4], 10);
        }
        textPointer += 1;
        // tslint:disable-next-line:no-require-imports
        const dmp = __webpack_require__(195);
        while (textPointer < text.length) {
            const sign = text[textPointer].charAt(0);
            let line;
            try {
                // var line = decodeURI(text[textPointer].substring(1))
                // For some reason the patch generated by python files don't encode any characters
                // And this patch module (code from Google) is expecting the text to be encoded!!
                // Temporary solution, disable decoding
                // Issue #188
                line = text[textPointer].substring(1);
            }
            catch (ex) {
                // Malformed URI sequence.
                throw new Error('Illegal escape in patch_fromText');
            }
            if (sign === '-') {
                // Deletion.
                patch.diffs.push([dmp.DIFF_DELETE, line]);
            }
            else if (sign === '+') {
                // Insertion.
                patch.diffs.push([dmp.DIFF_INSERT, line]);
            }
            else if (sign === ' ') {
                // Minor equality.
                patch.diffs.push([dmp.DIFF_EQUAL, line]);
            }
            else if (sign === '@') {
                // Start of next patch.
                break;
            }
            else if (sign === '') {
                // Blank line?  Whatever.
            }
            else {
                // WTF?
                throw new Error(`Invalid patch mode '${sign}' in: ${line}`);
            }
            textPointer += 1;
        }
    }
    return patches;
}
let EditorUtils = class EditorUtils {
    getWorkspaceEditsFromPatch(originalContents, patch, uri) {
        const workspaceEdit = { changes: {} };
        const edits = [];
        workspaceEdit.changes[uri.toString()] = edits;
        if (patch.startsWith('---')) {
            // Strip the first two lines
            patch = patch.substring(patch.indexOf('@@'));
        }
        if (patch.length === 0) {
            return workspaceEdit;
        }
        // Remove the text added by unified_diff
        // # Work around missing newline (http://bugs.python.org/issue2142).
        patch = patch.replace(/\\ No newline at end of file[\r\n]/, '');
        // tslint:disable-next-line:no-require-imports
        const dmp = __webpack_require__(195);
        const d = new dmp.diff_match_patch();
        const patches = patch_fromText.call(d, patch);
        if (!Array.isArray(patches) || patches.length === 0) {
            throw new Error('Unable to parse Patch string');
        }
        // Add line feeds and build the text edits
        patches.forEach(p => {
            p.diffs.forEach(diff => {
                diff[1] += os_1.EOL;
            });
            getTextEditsInternal(originalContents, p.diffs, p.start1).forEach(edit => {
                switch (edit.action) {
                    case EditAction.Delete:
                        edits.push(vscode_languageserver_protocol_1.TextEdit.del(vscode_languageserver_protocol_1.Range.create(edit.start, edit.end)));
                        break;
                    case EditAction.Insert:
                        edits.push(vscode_languageserver_protocol_1.TextEdit.insert(edit.start, edit.text));
                        break;
                    case EditAction.Replace:
                        edits.push(vscode_languageserver_protocol_1.TextEdit.replace(vscode_languageserver_protocol_1.Range.create(edit.start, edit.end), edit.text));
                        break;
                    default:
                        break;
                }
            });
        });
        return workspaceEdit;
    }
};
EditorUtils = __decorate([
    inversify_1.injectable()
], EditorUtils);
exports.EditorUtils = EditorUtils;


/***/ }),
/* 195 */
/***/ (function(module, exports) {

/**
 * Diff Match and Patch
 * Copyright 2018 The diff-match-patch Authors.
 * https://github.com/google/diff-match-patch
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @fileoverview Computes the difference between two texts to create a patch.
 * Applies the patch onto another text, allowing for errors.
 * @author fraser@google.com (Neil Fraser)
 */

/**
 * Class containing the diff, match and patch methods.
 * @constructor
 */
function diff_match_patch() {

  // Defaults.
  // Redefine these in your program to override the defaults.

  // Number of seconds to map a diff before giving up (0 for infinity).
  this.Diff_Timeout = 1.0;
  // Cost of an empty edit operation in terms of edit characters.
  this.Diff_EditCost = 4;
  // At what point is no match declared (0.0 = perfection, 1.0 = very loose).
  this.Match_Threshold = 0.5;
  // How far to search for a match (0 = exact location, 1000+ = broad match).
  // A match this many characters away from the expected location will add
  // 1.0 to the score (0.0 is a perfect match).
  this.Match_Distance = 1000;
  // When deleting a large block of text (over ~64 characters), how close do
  // the contents have to be to match the expected contents. (0.0 = perfection,
  // 1.0 = very loose).  Note that Match_Threshold controls how closely the
  // end points of a delete need to match.
  this.Patch_DeleteThreshold = 0.5;
  // Chunk size for context length.
  this.Patch_Margin = 4;

  // The number of bits in an int.
  this.Match_MaxBits = 32;
}


//  DIFF FUNCTIONS


/**
 * The data structure representing a diff is an array of tuples:
 * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]
 * which means: delete 'Hello', add 'Goodbye' and keep ' world.'
 */
var DIFF_DELETE = -1;
var DIFF_INSERT = 1;
var DIFF_EQUAL = 0;

/** @typedef {{0: number, 1: string}} */
diff_match_patch.Diff;


/**
 * Find the differences between two texts.  Simplifies the problem by stripping
 * any common prefix or suffix off the texts before diffing.
 * @param {string} text1 Old string to be diffed.
 * @param {string} text2 New string to be diffed.
 * @param {boolean=} opt_checklines Optional speedup flag. If present and false,
 *     then don't run a line-level diff first to identify the changed areas.
 *     Defaults to true, which does a faster, slightly less optimal diff.
 * @param {number} opt_deadline Optional time when the diff should be complete
 *     by.  Used internally for recursive calls.  Users should set DiffTimeout
 *     instead.
 * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.
 */
diff_match_patch.prototype.diff_main = function(text1, text2, opt_checklines,
    opt_deadline) {
  // Set a deadline by which time the diff must be complete.
  if (typeof opt_deadline == 'undefined') {
    if (this.Diff_Timeout <= 0) {
      opt_deadline = Number.MAX_VALUE;
    } else {
      opt_deadline = (new Date).getTime() + this.Diff_Timeout * 1000;
    }
  }
  var deadline = opt_deadline;

  // Check for null inputs.
  if (text1 == null || text2 == null) {
    throw new Error('Null input. (diff_main)');
  }

  // Check for equality (speedup).
  if (text1 == text2) {
    if (text1) {
      return [[DIFF_EQUAL, text1]];
    }
    return [];
  }

  if (typeof opt_checklines == 'undefined') {
    opt_checklines = true;
  }
  var checklines = opt_checklines;

  // Trim off common prefix (speedup).
  var commonlength = this.diff_commonPrefix(text1, text2);
  var commonprefix = text1.substring(0, commonlength);
  text1 = text1.substring(commonlength);
  text2 = text2.substring(commonlength);

  // Trim off common suffix (speedup).
  commonlength = this.diff_commonSuffix(text1, text2);
  var commonsuffix = text1.substring(text1.length - commonlength);
  text1 = text1.substring(0, text1.length - commonlength);
  text2 = text2.substring(0, text2.length - commonlength);

  // Compute the diff on the middle block.
  var diffs = this.diff_compute_(text1, text2, checklines, deadline);

  // Restore the prefix and suffix.
  if (commonprefix) {
    diffs.unshift([DIFF_EQUAL, commonprefix]);
  }
  if (commonsuffix) {
    diffs.push([DIFF_EQUAL, commonsuffix]);
  }
  this.diff_cleanupMerge(diffs);
  return diffs;
};


/**
 * Find the differences between two texts.  Assumes that the texts do not
 * have any common prefix or suffix.
 * @param {string} text1 Old string to be diffed.
 * @param {string} text2 New string to be diffed.
 * @param {boolean} checklines Speedup flag.  If false, then don't run a
 *     line-level diff first to identify the changed areas.
 *     If true, then run a faster, slightly less optimal diff.
 * @param {number} deadline Time when the diff should be complete by.
 * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.
 * @private
 */
diff_match_patch.prototype.diff_compute_ = function(text1, text2, checklines,
    deadline) {
  var diffs;

  if (!text1) {
    // Just add some text (speedup).
    return [[DIFF_INSERT, text2]];
  }

  if (!text2) {
    // Just delete some text (speedup).
    return [[DIFF_DELETE, text1]];
  }

  var longtext = text1.length > text2.length ? text1 : text2;
  var shorttext = text1.length > text2.length ? text2 : text1;
  var i = longtext.indexOf(shorttext);
  if (i != -1) {
    // Shorter text is inside the longer text (speedup).
    diffs = [[DIFF_INSERT, longtext.substring(0, i)],
             [DIFF_EQUAL, shorttext],
             [DIFF_INSERT, longtext.substring(i + shorttext.length)]];
    // Swap insertions for deletions if diff is reversed.
    if (text1.length > text2.length) {
      diffs[0][0] = diffs[2][0] = DIFF_DELETE;
    }
    return diffs;
  }

  if (shorttext.length == 1) {
    // Single character string.
    // After the previous speedup, the character can't be an equality.
    return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];
  }

  // Check to see if the problem can be split in two.
  var hm = this.diff_halfMatch_(text1, text2);
  if (hm) {
    // A half-match was found, sort out the return data.
    var text1_a = hm[0];
    var text1_b = hm[1];
    var text2_a = hm[2];
    var text2_b = hm[3];
    var mid_common = hm[4];
    // Send both pairs off for separate processing.
    var diffs_a = this.diff_main(text1_a, text2_a, checklines, deadline);
    var diffs_b = this.diff_main(text1_b, text2_b, checklines, deadline);
    // Merge the results.
    return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);
  }

  if (checklines && text1.length > 100 && text2.length > 100) {
    return this.diff_lineMode_(text1, text2, deadline);
  }

  return this.diff_bisect_(text1, text2, deadline);
};


/**
 * Do a quick line-level diff on both strings, then rediff the parts for
 * greater accuracy.
 * This speedup can produce non-minimal diffs.
 * @param {string} text1 Old string to be diffed.
 * @param {string} text2 New string to be diffed.
 * @param {number} deadline Time when the diff should be complete by.
 * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.
 * @private
 */
diff_match_patch.prototype.diff_lineMode_ = function(text1, text2, deadline) {
  // Scan the text on a line-by-line basis first.
  var a = this.diff_linesToChars_(text1, text2);
  text1 = a.chars1;
  text2 = a.chars2;
  var linearray = a.lineArray;

  var diffs = this.diff_main(text1, text2, false, deadline);

  // Convert the diff back to original text.
  this.diff_charsToLines_(diffs, linearray);
  // Eliminate freak matches (e.g. blank lines)
  this.diff_cleanupSemantic(diffs);

  // Rediff any replacement blocks, this time character-by-character.
  // Add a dummy entry at the end.
  diffs.push([DIFF_EQUAL, '']);
  var pointer = 0;
  var count_delete = 0;
  var count_insert = 0;
  var text_delete = '';
  var text_insert = '';
  while (pointer < diffs.length) {
    switch (diffs[pointer][0]) {
      case DIFF_INSERT:
        count_insert++;
        text_insert += diffs[pointer][1];
        break;
      case DIFF_DELETE:
        count_delete++;
        text_delete += diffs[pointer][1];
        break;
      case DIFF_EQUAL:
        // Upon reaching an equality, check for prior redundancies.
        if (count_delete >= 1 && count_insert >= 1) {
          // Delete the offending records and add the merged ones.
          diffs.splice(pointer - count_delete - count_insert,
                       count_delete + count_insert);
          pointer = pointer - count_delete - count_insert;
          var a = this.diff_main(text_delete, text_insert, false, deadline);
          for (var j = a.length - 1; j >= 0; j--) {
            diffs.splice(pointer, 0, a[j]);
          }
          pointer = pointer + a.length;
        }
        count_insert = 0;
        count_delete = 0;
        text_delete = '';
        text_insert = '';
        break;
    }
    pointer++;
  }
  diffs.pop();  // Remove the dummy entry at the end.

  return diffs;
};


/**
 * Find the 'middle snake' of a diff, split the problem in two
 * and return the recursively constructed diff.
 * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.
 * @param {string} text1 Old string to be diffed.
 * @param {string} text2 New string to be diffed.
 * @param {number} deadline Time at which to bail if not yet complete.
 * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.
 * @private
 */
diff_match_patch.prototype.diff_bisect_ = function(text1, text2, deadline) {
  // Cache the text lengths to prevent multiple calls.
  var text1_length = text1.length;
  var text2_length = text2.length;
  var max_d = Math.ceil((text1_length + text2_length) / 2);
  var v_offset = max_d;
  var v_length = 2 * max_d;
  var v1 = new Array(v_length);
  var v2 = new Array(v_length);
  // Setting all elements to -1 is faster in Chrome & Firefox than mixing
  // integers and undefined.
  for (var x = 0; x < v_length; x++) {
    v1[x] = -1;
    v2[x] = -1;
  }
  v1[v_offset + 1] = 0;
  v2[v_offset + 1] = 0;
  var delta = text1_length - text2_length;
  // If the total number of characters is odd, then the front path will collide
  // with the reverse path.
  var front = (delta % 2 != 0);
  // Offsets for start and end of k loop.
  // Prevents mapping of space beyond the grid.
  var k1start = 0;
  var k1end = 0;
  var k2start = 0;
  var k2end = 0;
  for (var d = 0; d < max_d; d++) {
    // Bail out if deadline is reached.
    if ((new Date()).getTime() > deadline) {
      break;
    }

    // Walk the front path one step.
    for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {
      var k1_offset = v_offset + k1;
      var x1;
      if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {
        x1 = v1[k1_offset + 1];
      } else {
        x1 = v1[k1_offset - 1] + 1;
      }
      var y1 = x1 - k1;
      while (x1 < text1_length && y1 < text2_length &&
             text1.charAt(x1) == text2.charAt(y1)) {
        x1++;
        y1++;
      }
      v1[k1_offset] = x1;
      if (x1 > text1_length) {
        // Ran off the right of the graph.
        k1end += 2;
      } else if (y1 > text2_length) {
        // Ran off the bottom of the graph.
        k1start += 2;
      } else if (front) {
        var k2_offset = v_offset + delta - k1;
        if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {
          // Mirror x2 onto top-left coordinate system.
          var x2 = text1_length - v2[k2_offset];
          if (x1 >= x2) {
            // Overlap detected.
            return this.diff_bisectSplit_(text1, text2, x1, y1, deadline);
          }
        }
      }
    }

    // Walk the reverse path one step.
    for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {
      var k2_offset = v_offset + k2;
      var x2;
      if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {
        x2 = v2[k2_offset + 1];
      } else {
        x2 = v2[k2_offset - 1] + 1;
      }
      var y2 = x2 - k2;
      while (x2 < text1_length && y2 < text2_length &&
             text1.charAt(text1_length - x2 - 1) ==
             text2.charAt(text2_length - y2 - 1)) {
        x2++;
        y2++;
      }
      v2[k2_offset] = x2;
      if (x2 > text1_length) {
        // Ran off the left of the graph.
        k2end += 2;
      } else if (y2 > text2_length) {
        // Ran off the top of the graph.
        k2start += 2;
      } else if (!front) {
        var k1_offset = v_offset + delta - k2;
        if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {
          var x1 = v1[k1_offset];
          var y1 = v_offset + x1 - k1_offset;
          // Mirror x2 onto top-left coordinate system.
          x2 = text1_length - x2;
          if (x1 >= x2) {
            // Overlap detected.
            return this.diff_bisectSplit_(text1, text2, x1, y1, deadline);
          }
        }
      }
    }
  }
  // Diff took too long and hit the deadline or
  // number of diffs equals number of characters, no commonality at all.
  return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];
};


/**
 * Given the location of the 'middle snake', split the diff in two parts
 * and recurse.
 * @param {string} text1 Old string to be diffed.
 * @param {string} text2 New string to be diffed.
 * @param {number} x Index of split point in text1.
 * @param {number} y Index of split point in text2.
 * @param {number} deadline Time at which to bail if not yet complete.
 * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.
 * @private
 */
diff_match_patch.prototype.diff_bisectSplit_ = function(text1, text2, x, y,
    deadline) {
  var text1a = text1.substring(0, x);
  var text2a = text2.substring(0, y);
  var text1b = text1.substring(x);
  var text2b = text2.substring(y);

  // Compute both diffs serially.
  var diffs = this.diff_main(text1a, text2a, false, deadline);
  var diffsb = this.diff_main(text1b, text2b, false, deadline);

  return diffs.concat(diffsb);
};


/**
 * Split two texts into an array of strings.  Reduce the texts to a string of
 * hashes where each Unicode character represents one line.
 * @param {string} text1 First string.
 * @param {string} text2 Second string.
 * @return {{chars1: string, chars2: string, lineArray: !Array.<string>}}
 *     An object containing the encoded text1, the encoded text2 and
 *     the array of unique strings.
 *     The zeroth element of the array of unique strings is intentionally blank.
 * @private
 */
diff_match_patch.prototype.diff_linesToChars_ = function(text1, text2) {
  var lineArray = [];  // e.g. lineArray[4] == 'Hello\n'
  var lineHash = {};   // e.g. lineHash['Hello\n'] == 4

  // '\x00' is a valid character, but various debuggers don't like it.
  // So we'll insert a junk entry to avoid generating a null character.
  lineArray[0] = '';

  /**
   * Split a text into an array of strings.  Reduce the texts to a string of
   * hashes where each Unicode character represents one line.
   * Modifies linearray and linehash through being a closure.
   * @param {string} text String to encode.
   * @return {string} Encoded string.
   * @private
   */
  function diff_linesToCharsMunge_(text) {
    var chars = '';
    // Walk the text, pulling out a substring for each line.
    // text.split('\n') would would temporarily double our memory footprint.
    // Modifying text would create many large strings to garbage collect.
    var lineStart = 0;
    var lineEnd = -1;
    // Keeping our own length variable is faster than looking it up.
    var lineArrayLength = lineArray.length;
    while (lineEnd < text.length - 1) {
      lineEnd = text.indexOf('\n', lineStart);
      if (lineEnd == -1) {
        lineEnd = text.length - 1;
      }
      var line = text.substring(lineStart, lineEnd + 1);
      lineStart = lineEnd + 1;

      if (lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) :
          (lineHash[line] !== undefined)) {
        chars += String.fromCharCode(lineHash[line]);
      } else {
        chars += String.fromCharCode(lineArrayLength);
        lineHash[line] = lineArrayLength;
        lineArray[lineArrayLength++] = line;
      }
    }
    return chars;
  }

  var chars1 = diff_linesToCharsMunge_(text1);
  var chars2 = diff_linesToCharsMunge_(text2);
  return {chars1: chars1, chars2: chars2, lineArray: lineArray};
};


/**
 * Rehydrate the text in a diff from a string of line hashes to real lines of
 * text.
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 * @param {!Array.<string>} lineArray Array of unique strings.
 * @private
 */
diff_match_patch.prototype.diff_charsToLines_ = function(diffs, lineArray) {
  for (var x = 0; x < diffs.length; x++) {
    var chars = diffs[x][1];
    var text = [];
    for (var y = 0; y < chars.length; y++) {
      text[y] = lineArray[chars.charCodeAt(y)];
    }
    diffs[x][1] = text.join('');
  }
};


/**
 * Determine the common prefix of two strings.
 * @param {string} text1 First string.
 * @param {string} text2 Second string.
 * @return {number} The number of characters common to the start of each
 *     string.
 */
diff_match_patch.prototype.diff_commonPrefix = function(text1, text2) {
  // Quick check for common null cases.
  if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {
    return 0;
  }
  // Binary search.
  // Performance analysis: http://neil.fraser.name/news/2007/10/09/
  var pointermin = 0;
  var pointermax = Math.min(text1.length, text2.length);
  var pointermid = pointermax;
  var pointerstart = 0;
  while (pointermin < pointermid) {
    if (text1.substring(pointerstart, pointermid) ==
        text2.substring(pointerstart, pointermid)) {
      pointermin = pointermid;
      pointerstart = pointermin;
    } else {
      pointermax = pointermid;
    }
    pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);
  }
  return pointermid;
};


/**
 * Determine the common suffix of two strings.
 * @param {string} text1 First string.
 * @param {string} text2 Second string.
 * @return {number} The number of characters common to the end of each string.
 */
diff_match_patch.prototype.diff_commonSuffix = function(text1, text2) {
  // Quick check for common null cases.
  if (!text1 || !text2 ||
      text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {
    return 0;
  }
  // Binary search.
  // Performance analysis: http://neil.fraser.name/news/2007/10/09/
  var pointermin = 0;
  var pointermax = Math.min(text1.length, text2.length);
  var pointermid = pointermax;
  var pointerend = 0;
  while (pointermin < pointermid) {
    if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==
        text2.substring(text2.length - pointermid, text2.length - pointerend)) {
      pointermin = pointermid;
      pointerend = pointermin;
    } else {
      pointermax = pointermid;
    }
    pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);
  }
  return pointermid;
};


/**
 * Determine if the suffix of one string is the prefix of another.
 * @param {string} text1 First string.
 * @param {string} text2 Second string.
 * @return {number} The number of characters common to the end of the first
 *     string and the start of the second string.
 * @private
 */
diff_match_patch.prototype.diff_commonOverlap_ = function(text1, text2) {
  // Cache the text lengths to prevent multiple calls.
  var text1_length = text1.length;
  var text2_length = text2.length;
  // Eliminate the null case.
  if (text1_length == 0 || text2_length == 0) {
    return 0;
  }
  // Truncate the longer string.
  if (text1_length > text2_length) {
    text1 = text1.substring(text1_length - text2_length);
  } else if (text1_length < text2_length) {
    text2 = text2.substring(0, text1_length);
  }
  var text_length = Math.min(text1_length, text2_length);
  // Quick check for the worst case.
  if (text1 == text2) {
    return text_length;
  }

  // Start by looking for a single character match
  // and increase length until no match is found.
  // Performance analysis: http://neil.fraser.name/news/2010/11/04/
  var best = 0;
  var length = 1;
  while (true) {
    var pattern = text1.substring(text_length - length);
    var found = text2.indexOf(pattern);
    if (found == -1) {
      return best;
    }
    length += found;
    if (found == 0 || text1.substring(text_length - length) ==
        text2.substring(0, length)) {
      best = length;
      length++;
    }
  }
};


/**
 * Do the two texts share a substring which is at least half the length of the
 * longer text?
 * This speedup can produce non-minimal diffs.
 * @param {string} text1 First string.
 * @param {string} text2 Second string.
 * @return {Array.<string>} Five element Array, containing the prefix of
 *     text1, the suffix of text1, the prefix of text2, the suffix of
 *     text2 and the common middle.  Or null if there was no match.
 * @private
 */
diff_match_patch.prototype.diff_halfMatch_ = function(text1, text2) {
  if (this.Diff_Timeout <= 0) {
    // Don't risk returning a non-optimal diff if we have unlimited time.
    return null;
  }
  var longtext = text1.length > text2.length ? text1 : text2;
  var shorttext = text1.length > text2.length ? text2 : text1;
  if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {
    return null;  // Pointless.
  }
  var dmp = this;  // 'this' becomes 'window' in a closure.

  /**
   * Does a substring of shorttext exist within longtext such that the substring
   * is at least half the length of longtext?
   * Closure, but does not reference any external variables.
   * @param {string} longtext Longer string.
   * @param {string} shorttext Shorter string.
   * @param {number} i Start index of quarter length substring within longtext.
   * @return {Array.<string>} Five element Array, containing the prefix of
   *     longtext, the suffix of longtext, the prefix of shorttext, the suffix
   *     of shorttext and the common middle.  Or null if there was no match.
   * @private
   */
  function diff_halfMatchI_(longtext, shorttext, i) {
    // Start with a 1/4 length substring at position i as a seed.
    var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));
    var j = -1;
    var best_common = '';
    var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;
    while ((j = shorttext.indexOf(seed, j + 1)) != -1) {
      var prefixLength = dmp.diff_commonPrefix(longtext.substring(i),
                                               shorttext.substring(j));
      var suffixLength = dmp.diff_commonSuffix(longtext.substring(0, i),
                                               shorttext.substring(0, j));
      if (best_common.length < suffixLength + prefixLength) {
        best_common = shorttext.substring(j - suffixLength, j) +
            shorttext.substring(j, j + prefixLength);
        best_longtext_a = longtext.substring(0, i - suffixLength);
        best_longtext_b = longtext.substring(i + prefixLength);
        best_shorttext_a = shorttext.substring(0, j - suffixLength);
        best_shorttext_b = shorttext.substring(j + prefixLength);
      }
    }
    if (best_common.length * 2 >= longtext.length) {
      return [best_longtext_a, best_longtext_b,
              best_shorttext_a, best_shorttext_b, best_common];
    } else {
      return null;
    }
  }

  // First check if the second quarter is the seed for a half-match.
  var hm1 = diff_halfMatchI_(longtext, shorttext,
                             Math.ceil(longtext.length / 4));
  // Check again based on the third quarter.
  var hm2 = diff_halfMatchI_(longtext, shorttext,
                             Math.ceil(longtext.length / 2));
  var hm;
  if (!hm1 && !hm2) {
    return null;
  } else if (!hm2) {
    hm = hm1;
  } else if (!hm1) {
    hm = hm2;
  } else {
    // Both matched.  Select the longest.
    hm = hm1[4].length > hm2[4].length ? hm1 : hm2;
  }

  // A half-match was found, sort out the return data.
  var text1_a, text1_b, text2_a, text2_b;
  if (text1.length > text2.length) {
    text1_a = hm[0];
    text1_b = hm[1];
    text2_a = hm[2];
    text2_b = hm[3];
  } else {
    text2_a = hm[0];
    text2_b = hm[1];
    text1_a = hm[2];
    text1_b = hm[3];
  }
  var mid_common = hm[4];
  return [text1_a, text1_b, text2_a, text2_b, mid_common];
};


/**
 * Reduce the number of edits by eliminating semantically trivial equalities.
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 */
diff_match_patch.prototype.diff_cleanupSemantic = function(diffs) {
  var changes = false;
  var equalities = [];  // Stack of indices where equalities are found.
  var equalitiesLength = 0;  // Keeping our own length var is faster in JS.
  /** @type {?string} */
  var lastequality = null;
  // Always equal to diffs[equalities[equalitiesLength - 1]][1]
  var pointer = 0;  // Index of current position.
  // Number of characters that changed prior to the equality.
  var length_insertions1 = 0;
  var length_deletions1 = 0;
  // Number of characters that changed after the equality.
  var length_insertions2 = 0;
  var length_deletions2 = 0;
  while (pointer < diffs.length) {
    if (diffs[pointer][0] == DIFF_EQUAL) {  // Equality found.
      equalities[equalitiesLength++] = pointer;
      length_insertions1 = length_insertions2;
      length_deletions1 = length_deletions2;
      length_insertions2 = 0;
      length_deletions2 = 0;
      lastequality = diffs[pointer][1];
    } else {  // An insertion or deletion.
      if (diffs[pointer][0] == DIFF_INSERT) {
        length_insertions2 += diffs[pointer][1].length;
      } else {
        length_deletions2 += diffs[pointer][1].length;
      }
      // Eliminate an equality that is smaller or equal to the edits on both
      // sides of it.
      if (lastequality && (lastequality.length <=
          Math.max(length_insertions1, length_deletions1)) &&
          (lastequality.length <= Math.max(length_insertions2,
                                           length_deletions2))) {
        // Duplicate record.
        diffs.splice(equalities[equalitiesLength - 1], 0,
                     [DIFF_DELETE, lastequality]);
        // Change second copy to insert.
        diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;
        // Throw away the equality we just deleted.
        equalitiesLength--;
        // Throw away the previous equality (it needs to be reevaluated).
        equalitiesLength--;
        pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1;
        length_insertions1 = 0;  // Reset the counters.
        length_deletions1 = 0;
        length_insertions2 = 0;
        length_deletions2 = 0;
        lastequality = null;
        changes = true;
      }
    }
    pointer++;
  }

  // Normalize the diff.
  if (changes) {
    this.diff_cleanupMerge(diffs);
  }
  this.diff_cleanupSemanticLossless(diffs);

  // Find any overlaps between deletions and insertions.
  // e.g: <del>abcxxx</del><ins>xxxdef</ins>
  //   -> <del>abc</del>xxx<ins>def</ins>
  // e.g: <del>xxxabc</del><ins>defxxx</ins>
  //   -> <ins>def</ins>xxx<del>abc</del>
  // Only extract an overlap if it is as big as the edit ahead or behind it.
  pointer = 1;
  while (pointer < diffs.length) {
    if (diffs[pointer - 1][0] == DIFF_DELETE &&
        diffs[pointer][0] == DIFF_INSERT) {
      var deletion = diffs[pointer - 1][1];
      var insertion = diffs[pointer][1];
      var overlap_length1 = this.diff_commonOverlap_(deletion, insertion);
      var overlap_length2 = this.diff_commonOverlap_(insertion, deletion);
      if (overlap_length1 >= overlap_length2) {
        if (overlap_length1 >= deletion.length / 2 ||
            overlap_length1 >= insertion.length / 2) {
          // Overlap found.  Insert an equality and trim the surrounding edits.
          diffs.splice(pointer, 0,
              [DIFF_EQUAL, insertion.substring(0, overlap_length1)]);
          diffs[pointer - 1][1] =
              deletion.substring(0, deletion.length - overlap_length1);
          diffs[pointer + 1][1] = insertion.substring(overlap_length1);
          pointer++;
        }
      } else {
        if (overlap_length2 >= deletion.length / 2 ||
            overlap_length2 >= insertion.length / 2) {
          // Reverse overlap found.
          // Insert an equality and swap and trim the surrounding edits.
          diffs.splice(pointer, 0,
              [DIFF_EQUAL, deletion.substring(0, overlap_length2)]);
          diffs[pointer - 1][0] = DIFF_INSERT;
          diffs[pointer - 1][1] =
              insertion.substring(0, insertion.length - overlap_length2);
          diffs[pointer + 1][0] = DIFF_DELETE;
          diffs[pointer + 1][1] =
              deletion.substring(overlap_length2);
          pointer++;
        }
      }
      pointer++;
    }
    pointer++;
  }
};


/**
 * Look for single edits surrounded on both sides by equalities
 * which can be shifted sideways to align the edit to a word boundary.
 * e.g: The c<ins>at c</ins>ame. -> The <ins>cat </ins>came.
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 */
diff_match_patch.prototype.diff_cleanupSemanticLossless = function(diffs) {
  /**
   * Given two strings, compute a score representing whether the internal
   * boundary falls on logical boundaries.
   * Scores range from 6 (best) to 0 (worst).
   * Closure, but does not reference any external variables.
   * @param {string} one First string.
   * @param {string} two Second string.
   * @return {number} The score.
   * @private
   */
  function diff_cleanupSemanticScore_(one, two) {
    if (!one || !two) {
      // Edges are the best.
      return 6;
    }

    // Each port of this function behaves slightly differently due to
    // subtle differences in each language's definition of things like
    // 'whitespace'.  Since this function's purpose is largely cosmetic,
    // the choice has been made to use each language's native features
    // rather than force total conformity.
    var char1 = one.charAt(one.length - 1);
    var char2 = two.charAt(0);
    var nonAlphaNumeric1 = char1.match(diff_match_patch.nonAlphaNumericRegex_);
    var nonAlphaNumeric2 = char2.match(diff_match_patch.nonAlphaNumericRegex_);
    var whitespace1 = nonAlphaNumeric1 &&
        char1.match(diff_match_patch.whitespaceRegex_);
    var whitespace2 = nonAlphaNumeric2 &&
        char2.match(diff_match_patch.whitespaceRegex_);
    var lineBreak1 = whitespace1 &&
        char1.match(diff_match_patch.linebreakRegex_);
    var lineBreak2 = whitespace2 &&
        char2.match(diff_match_patch.linebreakRegex_);
    var blankLine1 = lineBreak1 &&
        one.match(diff_match_patch.blanklineEndRegex_);
    var blankLine2 = lineBreak2 &&
        two.match(diff_match_patch.blanklineStartRegex_);

    if (blankLine1 || blankLine2) {
      // Five points for blank lines.
      return 5;
    } else if (lineBreak1 || lineBreak2) {
      // Four points for line breaks.
      return 4;
    } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) {
      // Three points for end of sentences.
      return 3;
    } else if (whitespace1 || whitespace2) {
      // Two points for whitespace.
      return 2;
    } else if (nonAlphaNumeric1 || nonAlphaNumeric2) {
      // One point for non-alphanumeric.
      return 1;
    }
    return 0;
  }

  var pointer = 1;
  // Intentionally ignore the first and last element (don't need checking).
  while (pointer < diffs.length - 1) {
    if (diffs[pointer - 1][0] == DIFF_EQUAL &&
        diffs[pointer + 1][0] == DIFF_EQUAL) {
      // This is a single edit surrounded by equalities.
      var equality1 = diffs[pointer - 1][1];
      var edit = diffs[pointer][1];
      var equality2 = diffs[pointer + 1][1];

      // First, shift the edit as far left as possible.
      var commonOffset = this.diff_commonSuffix(equality1, edit);
      if (commonOffset) {
        var commonString = edit.substring(edit.length - commonOffset);
        equality1 = equality1.substring(0, equality1.length - commonOffset);
        edit = commonString + edit.substring(0, edit.length - commonOffset);
        equality2 = commonString + equality2;
      }

      // Second, step character by character right, looking for the best fit.
      var bestEquality1 = equality1;
      var bestEdit = edit;
      var bestEquality2 = equality2;
      var bestScore = diff_cleanupSemanticScore_(equality1, edit) +
          diff_cleanupSemanticScore_(edit, equality2);
      while (edit.charAt(0) === equality2.charAt(0)) {
        equality1 += edit.charAt(0);
        edit = edit.substring(1) + equality2.charAt(0);
        equality2 = equality2.substring(1);
        var score = diff_cleanupSemanticScore_(equality1, edit) +
            diff_cleanupSemanticScore_(edit, equality2);
        // The >= encourages trailing rather than leading whitespace on edits.
        if (score >= bestScore) {
          bestScore = score;
          bestEquality1 = equality1;
          bestEdit = edit;
          bestEquality2 = equality2;
        }
      }

      if (diffs[pointer - 1][1] != bestEquality1) {
        // We have an improvement, save it back to the diff.
        if (bestEquality1) {
          diffs[pointer - 1][1] = bestEquality1;
        } else {
          diffs.splice(pointer - 1, 1);
          pointer--;
        }
        diffs[pointer][1] = bestEdit;
        if (bestEquality2) {
          diffs[pointer + 1][1] = bestEquality2;
        } else {
          diffs.splice(pointer + 1, 1);
          pointer--;
        }
      }
    }
    pointer++;
  }
};

// Define some regex patterns for matching boundaries.
diff_match_patch.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/;
diff_match_patch.whitespaceRegex_ = /\s/;
diff_match_patch.linebreakRegex_ = /[\r\n]/;
diff_match_patch.blanklineEndRegex_ = /\n\r?\n$/;
diff_match_patch.blanklineStartRegex_ = /^\r?\n\r?\n/;

/**
 * Reduce the number of edits by eliminating operationally trivial equalities.
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 */
diff_match_patch.prototype.diff_cleanupEfficiency = function(diffs) {
  var changes = false;
  var equalities = [];  // Stack of indices where equalities are found.
  var equalitiesLength = 0;  // Keeping our own length var is faster in JS.
  /** @type {?string} */
  var lastequality = null;
  // Always equal to diffs[equalities[equalitiesLength - 1]][1]
  var pointer = 0;  // Index of current position.
  // Is there an insertion operation before the last equality.
  var pre_ins = false;
  // Is there a deletion operation before the last equality.
  var pre_del = false;
  // Is there an insertion operation after the last equality.
  var post_ins = false;
  // Is there a deletion operation after the last equality.
  var post_del = false;
  while (pointer < diffs.length) {
    if (diffs[pointer][0] == DIFF_EQUAL) {  // Equality found.
      if (diffs[pointer][1].length < this.Diff_EditCost &&
          (post_ins || post_del)) {
        // Candidate found.
        equalities[equalitiesLength++] = pointer;
        pre_ins = post_ins;
        pre_del = post_del;
        lastequality = diffs[pointer][1];
      } else {
        // Not a candidate, and can never become one.
        equalitiesLength = 0;
        lastequality = null;
      }
      post_ins = post_del = false;
    } else {  // An insertion or deletion.
      if (diffs[pointer][0] == DIFF_DELETE) {
        post_del = true;
      } else {
        post_ins = true;
      }
      /*
       * Five types to be split:
       * <ins>A</ins><del>B</del>XY<ins>C</ins><del>D</del>
       * <ins>A</ins>X<ins>C</ins><del>D</del>
       * <ins>A</ins><del>B</del>X<ins>C</ins>
       * <ins>A</del>X<ins>C</ins><del>D</del>
       * <ins>A</ins><del>B</del>X<del>C</del>
       */
      if (lastequality && ((pre_ins && pre_del && post_ins && post_del) ||
                           ((lastequality.length < this.Diff_EditCost / 2) &&
                            (pre_ins + pre_del + post_ins + post_del) == 3))) {
        // Duplicate record.
        diffs.splice(equalities[equalitiesLength - 1], 0,
                     [DIFF_DELETE, lastequality]);
        // Change second copy to insert.
        diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;
        equalitiesLength--;  // Throw away the equality we just deleted;
        lastequality = null;
        if (pre_ins && pre_del) {
          // No changes made which could affect previous entry, keep going.
          post_ins = post_del = true;
          equalitiesLength = 0;
        } else {
          equalitiesLength--;  // Throw away the previous equality.
          pointer = equalitiesLength > 0 ?
              equalities[equalitiesLength - 1] : -1;
          post_ins = post_del = false;
        }
        changes = true;
      }
    }
    pointer++;
  }

  if (changes) {
    this.diff_cleanupMerge(diffs);
  }
};


/**
 * Reorder and merge like edit sections.  Merge equalities.
 * Any edit section can move as long as it doesn't cross an equality.
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 */
diff_match_patch.prototype.diff_cleanupMerge = function(diffs) {
  diffs.push([DIFF_EQUAL, '']);  // Add a dummy entry at the end.
  var pointer = 0;
  var count_delete = 0;
  var count_insert = 0;
  var text_delete = '';
  var text_insert = '';
  var commonlength;
  while (pointer < diffs.length) {
    switch (diffs[pointer][0]) {
      case DIFF_INSERT:
        count_insert++;
        text_insert += diffs[pointer][1];
        pointer++;
        break;
      case DIFF_DELETE:
        count_delete++;
        text_delete += diffs[pointer][1];
        pointer++;
        break;
      case DIFF_EQUAL:
        // Upon reaching an equality, check for prior redundancies.
        if (count_delete + count_insert > 1) {
          if (count_delete !== 0 && count_insert !== 0) {
            // Factor out any common prefixies.
            commonlength = this.diff_commonPrefix(text_insert, text_delete);
            if (commonlength !== 0) {
              if ((pointer - count_delete - count_insert) > 0 &&
                  diffs[pointer - count_delete - count_insert - 1][0] ==
                  DIFF_EQUAL) {
                diffs[pointer - count_delete - count_insert - 1][1] +=
                    text_insert.substring(0, commonlength);
              } else {
                diffs.splice(0, 0, [DIFF_EQUAL,
                                    text_insert.substring(0, commonlength)]);
                pointer++;
              }
              text_insert = text_insert.substring(commonlength);
              text_delete = text_delete.substring(commonlength);
            }
            // Factor out any common suffixies.
            commonlength = this.diff_commonSuffix(text_insert, text_delete);
            if (commonlength !== 0) {
              diffs[pointer][1] = text_insert.substring(text_insert.length -
                  commonlength) + diffs[pointer][1];
              text_insert = text_insert.substring(0, text_insert.length -
                  commonlength);
              text_delete = text_delete.substring(0, text_delete.length -
                  commonlength);
            }
          }
          // Delete the offending records and add the merged ones.
          if (count_delete === 0) {
            diffs.splice(pointer - count_insert,
                count_delete + count_insert, [DIFF_INSERT, text_insert]);
          } else if (count_insert === 0) {
            diffs.splice(pointer - count_delete,
                count_delete + count_insert, [DIFF_DELETE, text_delete]);
          } else {
            diffs.splice(pointer - count_delete - count_insert,
                count_delete + count_insert, [DIFF_DELETE, text_delete],
                [DIFF_INSERT, text_insert]);
          }
          pointer = pointer - count_delete - count_insert +
                    (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;
        } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {
          // Merge this equality with the previous one.
          diffs[pointer - 1][1] += diffs[pointer][1];
          diffs.splice(pointer, 1);
        } else {
          pointer++;
        }
        count_insert = 0;
        count_delete = 0;
        text_delete = '';
        text_insert = '';
        break;
    }
  }
  if (diffs[diffs.length - 1][1] === '') {
    diffs.pop();  // Remove the dummy entry at the end.
  }

  // Second pass: look for single edits surrounded on both sides by equalities
  // which can be shifted sideways to eliminate an equality.
  // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC
  var changes = false;
  pointer = 1;
  // Intentionally ignore the first and last element (don't need checking).
  while (pointer < diffs.length - 1) {
    if (diffs[pointer - 1][0] == DIFF_EQUAL &&
        diffs[pointer + 1][0] == DIFF_EQUAL) {
      // This is a single edit surrounded by equalities.
      if (diffs[pointer][1].substring(diffs[pointer][1].length -
          diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {
        // Shift the edit over the previous equality.
        diffs[pointer][1] = diffs[pointer - 1][1] +
            diffs[pointer][1].substring(0, diffs[pointer][1].length -
                                        diffs[pointer - 1][1].length);
        diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];
        diffs.splice(pointer - 1, 1);
        changes = true;
      } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==
          diffs[pointer + 1][1]) {
        // Shift the edit over the next equality.
        diffs[pointer - 1][1] += diffs[pointer + 1][1];
        diffs[pointer][1] =
            diffs[pointer][1].substring(diffs[pointer + 1][1].length) +
            diffs[pointer + 1][1];
        diffs.splice(pointer + 1, 1);
        changes = true;
      }
    }
    pointer++;
  }
  // If shifts were made, the diff needs reordering and another shift sweep.
  if (changes) {
    this.diff_cleanupMerge(diffs);
  }
};


/**
 * loc is a location in text1, compute and return the equivalent location in
 * text2.
 * e.g. 'The cat' vs 'The big cat', 1->1, 5->8
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 * @param {number} loc Location within text1.
 * @return {number} Location within text2.
 */
diff_match_patch.prototype.diff_xIndex = function(diffs, loc) {
  var chars1 = 0;
  var chars2 = 0;
  var last_chars1 = 0;
  var last_chars2 = 0;
  var x;
  for (x = 0; x < diffs.length; x++) {
    if (diffs[x][0] !== DIFF_INSERT) {  // Equality or deletion.
      chars1 += diffs[x][1].length;
    }
    if (diffs[x][0] !== DIFF_DELETE) {  // Equality or insertion.
      chars2 += diffs[x][1].length;
    }
    if (chars1 > loc) {  // Overshot the location.
      break;
    }
    last_chars1 = chars1;
    last_chars2 = chars2;
  }
  // Was the location was deleted?
  if (diffs.length != x && diffs[x][0] === DIFF_DELETE) {
    return last_chars2;
  }
  // Add the remaining character length.
  return last_chars2 + (loc - last_chars1);
};


/**
 * Convert a diff array into a pretty HTML report.
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 * @return {string} HTML representation.
 */
diff_match_patch.prototype.diff_prettyHtml = function(diffs) {
  var html = [];
  var pattern_amp = /&/g;
  var pattern_lt = /</g;
  var pattern_gt = />/g;
  var pattern_para = /\n/g;
  for (var x = 0; x < diffs.length; x++) {
    var op = diffs[x][0];    // Operation (insert, delete, equal)
    var data = diffs[x][1];  // Text of change.
    var text = data.replace(pattern_amp, '&amp;').replace(pattern_lt, '&lt;')
        .replace(pattern_gt, '&gt;').replace(pattern_para, '&para;<br>');
    switch (op) {
      case DIFF_INSERT:
        html[x] = '<ins style="background:#e6ffe6;">' + text + '</ins>';
        break;
      case DIFF_DELETE:
        html[x] = '<del style="background:#ffe6e6;">' + text + '</del>';
        break;
      case DIFF_EQUAL:
        html[x] = '<span>' + text + '</span>';
        break;
    }
  }
  return html.join('');
};


/**
 * Compute and return the source text (all equalities and deletions).
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 * @return {string} Source text.
 */
diff_match_patch.prototype.diff_text1 = function(diffs) {
  var text = [];
  for (var x = 0; x < diffs.length; x++) {
    if (diffs[x][0] !== DIFF_INSERT) {
      text[x] = diffs[x][1];
    }
  }
  return text.join('');
};


/**
 * Compute and return the destination text (all equalities and insertions).
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 * @return {string} Destination text.
 */
diff_match_patch.prototype.diff_text2 = function(diffs) {
  var text = [];
  for (var x = 0; x < diffs.length; x++) {
    if (diffs[x][0] !== DIFF_DELETE) {
      text[x] = diffs[x][1];
    }
  }
  return text.join('');
};


/**
 * Compute the Levenshtein distance; the number of inserted, deleted or
 * substituted characters.
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 * @return {number} Number of changes.
 */
diff_match_patch.prototype.diff_levenshtein = function(diffs) {
  var levenshtein = 0;
  var insertions = 0;
  var deletions = 0;
  for (var x = 0; x < diffs.length; x++) {
    var op = diffs[x][0];
    var data = diffs[x][1];
    switch (op) {
      case DIFF_INSERT:
        insertions += data.length;
        break;
      case DIFF_DELETE:
        deletions += data.length;
        break;
      case DIFF_EQUAL:
        // A deletion and an insertion is one substitution.
        levenshtein += Math.max(insertions, deletions);
        insertions = 0;
        deletions = 0;
        break;
    }
  }
  levenshtein += Math.max(insertions, deletions);
  return levenshtein;
};


/**
 * Crush the diff into an encoded string which describes the operations
 * required to transform text1 into text2.
 * E.g. =3\t-2\t+ing  -> Keep 3 chars, delete 2 chars, insert 'ing'.
 * Operations are tab-separated.  Inserted text is escaped using %xx notation.
 * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
 * @return {string} Delta text.
 */
diff_match_patch.prototype.diff_toDelta = function(diffs) {
  var text = [];
  for (var x = 0; x < diffs.length; x++) {
    switch (diffs[x][0]) {
      case DIFF_INSERT:
        text[x] = '+' + encodeURI(diffs[x][1]);
        break;
      case DIFF_DELETE:
        text[x] = '-' + diffs[x][1].length;
        break;
      case DIFF_EQUAL:
        text[x] = '=' + diffs[x][1].length;
        break;
    }
  }
  return text.join('\t').replace(/%20/g, ' ');
};


/**
 * Given the original text1, and an encoded string which describes the
 * operations required to transform text1 into text2, compute the full diff.
 * @param {string} text1 Source string for the diff.
 * @param {string} delta Delta text.
 * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.
 * @throws {!Error} If invalid input.
 */
diff_match_patch.prototype.diff_fromDelta = function(text1, delta) {
  var diffs = [];
  var diffsLength = 0;  // Keeping our own length var is faster in JS.
  var pointer = 0;  // Cursor in text1
  var tokens = delta.split(/\t/g);
  for (var x = 0; x < tokens.length; x++) {
    // Each token begins with a one character parameter which specifies the
    // operation of this token (delete, insert, equality).
    var param = tokens[x].substring(1);
    switch (tokens[x].charAt(0)) {
      case '+':
        try {
          diffs[diffsLength++] = [DIFF_INSERT, decodeURI(param)];
        } catch (ex) {
          // Malformed URI sequence.
          throw new Error('Illegal escape in diff_fromDelta: ' + param);
        }
        break;
      case '-':
        // Fall through.
      case '=':
        var n = parseInt(param, 10);
        if (isNaN(n) || n < 0) {
          throw new Error('Invalid number in diff_fromDelta: ' + param);
        }
        var text = text1.substring(pointer, pointer += n);
        if (tokens[x].charAt(0) == '=') {
          diffs[diffsLength++] = [DIFF_EQUAL, text];
        } else {
          diffs[diffsLength++] = [DIFF_DELETE, text];
        }
        break;
      default:
        // Blank tokens are ok (from a trailing \t).
        // Anything else is an error.
        if (tokens[x]) {
          throw new Error('Invalid diff operation in diff_fromDelta: ' +
                          tokens[x]);
        }
    }
  }
  if (pointer != text1.length) {
    throw new Error('Delta length (' + pointer +
        ') does not equal source text length (' + text1.length + ').');
  }
  return diffs;
};


//  MATCH FUNCTIONS


/**
 * Locate the best instance of 'pattern' in 'text' near 'loc'.
 * @param {string} text The text to search.
 * @param {string} pattern The pattern to search for.
 * @param {number} loc The location to search around.
 * @return {number} Best match index or -1.
 */
diff_match_patch.prototype.match_main = function(text, pattern, loc) {
  // Check for null inputs.
  if (text == null || pattern == null || loc == null) {
    throw new Error('Null input. (match_main)');
  }

  loc = Math.max(0, Math.min(loc, text.length));
  if (text == pattern) {
    // Shortcut (potentially not guaranteed by the algorithm)
    return 0;
  } else if (!text.length) {
    // Nothing to match.
    return -1;
  } else if (text.substring(loc, loc + pattern.length) == pattern) {
    // Perfect match at the perfect spot!  (Includes case of null pattern)
    return loc;
  } else {
    // Do a fuzzy compare.
    return this.match_bitap_(text, pattern, loc);
  }
};


/**
 * Locate the best instance of 'pattern' in 'text' near 'loc' using the
 * Bitap algorithm.
 * @param {string} text The text to search.
 * @param {string} pattern The pattern to search for.
 * @param {number} loc The location to search around.
 * @return {number} Best match index or -1.
 * @private
 */
diff_match_patch.prototype.match_bitap_ = function(text, pattern, loc) {
  if (pattern.length > this.Match_MaxBits) {
    throw new Error('Pattern too long for this browser.');
  }

  // Initialise the alphabet.
  var s = this.match_alphabet_(pattern);

  var dmp = this;  // 'this' becomes 'window' in a closure.

  /**
   * Compute and return the score for a match with e errors and x location.
   * Accesses loc and pattern through being a closure.
   * @param {number} e Number of errors in match.
   * @param {number} x Location of match.
   * @return {number} Overall score for match (0.0 = good, 1.0 = bad).
   * @private
   */
  function match_bitapScore_(e, x) {
    var accuracy = e / pattern.length;
    var proximity = Math.abs(loc - x);
    if (!dmp.Match_Distance) {
      // Dodge divide by zero error.
      return proximity ? 1.0 : accuracy;
    }
    return accuracy + (proximity / dmp.Match_Distance);
  }

  // Highest score beyond which we give up.
  var score_threshold = this.Match_Threshold;
  // Is there a nearby exact match? (speedup)
  var best_loc = text.indexOf(pattern, loc);
  if (best_loc != -1) {
    score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold);
    // What about in the other direction? (speedup)
    best_loc = text.lastIndexOf(pattern, loc + pattern.length);
    if (best_loc != -1) {
      score_threshold =
          Math.min(match_bitapScore_(0, best_loc), score_threshold);
    }
  }

  // Initialise the bit arrays.
  var matchmask = 1 << (pattern.length - 1);
  best_loc = -1;

  var bin_min, bin_mid;
  var bin_max = pattern.length + text.length;
  var last_rd;
  for (var d = 0; d < pattern.length; d++) {
    // Scan for the best match; each iteration allows for one more error.
    // Run a binary search to determine how far from 'loc' we can stray at this
    // error level.
    bin_min = 0;
    bin_mid = bin_max;
    while (bin_min < bin_mid) {
      if (match_bitapScore_(d, loc + bin_mid) <= score_threshold) {
        bin_min = bin_mid;
      } else {
        bin_max = bin_mid;
      }
      bin_mid = Math.floor((bin_max - bin_min) / 2 + bin_min);
    }
    // Use the result from this iteration as the maximum for the next.
    bin_max = bin_mid;
    var start = Math.max(1, loc - bin_mid + 1);
    var finish = Math.min(loc + bin_mid, text.length) + pattern.length;

    var rd = Array(finish + 2);
    rd[finish + 1] = (1 << d) - 1;
    for (var j = finish; j >= start; j--) {
      // The alphabet (s) is a sparse hash, so the following line generates
      // warnings.
      var charMatch = s[text.charAt(j - 1)];
      if (d === 0) {  // First pass: exact match.
        rd[j] = ((rd[j + 1] << 1) | 1) & charMatch;
      } else {  // Subsequent passes: fuzzy match.
        rd[j] = (((rd[j + 1] << 1) | 1) & charMatch) |
                (((last_rd[j + 1] | last_rd[j]) << 1) | 1) |
                last_rd[j + 1];
      }
      if (rd[j] & matchmask) {
        var score = match_bitapScore_(d, j - 1);
        // This match will almost certainly be better than any existing match.
        // But check anyway.
        if (score <= score_threshold) {
          // Told you so.
          score_threshold = score;
          best_loc = j - 1;
          if (best_loc > loc) {
            // When passing loc, don't exceed our current distance from loc.
            start = Math.max(1, 2 * loc - best_loc);
          } else {
            // Already passed loc, downhill from here on in.
            break;
          }
        }
      }
    }
    // No hope for a (better) match at greater error levels.
    if (match_bitapScore_(d + 1, loc) > score_threshold) {
      break;
    }
    last_rd = rd;
  }
  return best_loc;
};


/**
 * Initialise the alphabet for the Bitap algorithm.
 * @param {string} pattern The text to encode.
 * @return {!Object} Hash of character locations.
 * @private
 */
diff_match_patch.prototype.match_alphabet_ = function(pattern) {
  var s = {};
  for (var i = 0; i < pattern.length; i++) {
    s[pattern.charAt(i)] = 0;
  }
  for (var i = 0; i < pattern.length; i++) {
    s[pattern.charAt(i)] |= 1 << (pattern.length - i - 1);
  }
  return s;
};


//  PATCH FUNCTIONS


/**
 * Increase the context until it is unique,
 * but don't let the pattern expand beyond Match_MaxBits.
 * @param {!diff_match_patch.patch_obj} patch The patch to grow.
 * @param {string} text Source text.
 * @private
 */
diff_match_patch.prototype.patch_addContext_ = function(patch, text) {
  if (text.length == 0) {
    return;
  }
  var pattern = text.substring(patch.start2, patch.start2 + patch.length1);
  var padding = 0;

  // Look for the first and last matches of pattern in text.  If two different
  // matches are found, increase the pattern length.
  while (text.indexOf(pattern) != text.lastIndexOf(pattern) &&
         pattern.length < this.Match_MaxBits - this.Patch_Margin -
         this.Patch_Margin) {
    padding += this.Patch_Margin;
    pattern = text.substring(patch.start2 - padding,
                             patch.start2 + patch.length1 + padding);
  }
  // Add one chunk for good luck.
  padding += this.Patch_Margin;

  // Add the prefix.
  var prefix = text.substring(patch.start2 - padding, patch.start2);
  if (prefix) {
    patch.diffs.unshift([DIFF_EQUAL, prefix]);
  }
  // Add the suffix.
  var suffix = text.substring(patch.start2 + patch.length1,
                              patch.start2 + patch.length1 + padding);
  if (suffix) {
    patch.diffs.push([DIFF_EQUAL, suffix]);
  }

  // Roll back the start points.
  patch.start1 -= prefix.length;
  patch.start2 -= prefix.length;
  // Extend the lengths.
  patch.length1 += prefix.length + suffix.length;
  patch.length2 += prefix.length + suffix.length;
};


/**
 * Compute a list of patches to turn text1 into text2.
 * Use diffs if provided, otherwise compute it ourselves.
 * There are four ways to call this function, depending on what data is
 * available to the caller:
 * Method 1:
 * a = text1, b = text2
 * Method 2:
 * a = diffs
 * Method 3 (optimal):
 * a = text1, b = diffs
 * Method 4 (deprecated, use method 3):
 * a = text1, b = text2, c = diffs
 *
 * @param {string|!Array.<!diff_match_patch.Diff>} a text1 (methods 1,3,4) or
 * Array of diff tuples for text1 to text2 (method 2).
 * @param {string|!Array.<!diff_match_patch.Diff>} opt_b text2 (methods 1,4) or
 * Array of diff tuples for text1 to text2 (method 3) or undefined (method 2).
 * @param {string|!Array.<!diff_match_patch.Diff>} opt_c Array of diff tuples
 * for text1 to text2 (method 4) or undefined (methods 1,2,3).
 * @return {!Array.<!diff_match_patch.patch_obj>} Array of Patch objects.
 */
diff_match_patch.prototype.patch_make = function(a, opt_b, opt_c) {
  var text1, diffs;
  if (typeof a == 'string' && typeof opt_b == 'string' &&
      typeof opt_c == 'undefined') {
    // Method 1: text1, text2
    // Compute diffs from text1 and text2.
    text1 = /** @type {string} */(a);
    diffs = this.diff_main(text1, /** @type {string} */(opt_b), true);
    if (diffs.length > 2) {
      this.diff_cleanupSemantic(diffs);
      this.diff_cleanupEfficiency(diffs);
    }
  } else if (a && typeof a == 'object' && typeof opt_b == 'undefined' &&
      typeof opt_c == 'undefined') {
    // Method 2: diffs
    // Compute text1 from diffs.
    diffs = /** @type {!Array.<!diff_match_patch.Diff>} */(a);
    text1 = this.diff_text1(diffs);
  } else if (typeof a == 'string' && opt_b && typeof opt_b == 'object' &&
      typeof opt_c == 'undefined') {
    // Method 3: text1, diffs
    text1 = /** @type {string} */(a);
    diffs = /** @type {!Array.<!diff_match_patch.Diff>} */(opt_b);
  } else if (typeof a == 'string' && typeof opt_b == 'string' &&
      opt_c && typeof opt_c == 'object') {
    // Method 4: text1, text2, diffs
    // text2 is not used.
    text1 = /** @type {string} */(a);
    diffs = /** @type {!Array.<!diff_match_patch.Diff>} */(opt_c);
  } else {
    throw new Error('Unknown call format to patch_make.');
  }

  if (diffs.length === 0) {
    return [];  // Get rid of the null case.
  }
  var patches = [];
  var patch = new diff_match_patch.patch_obj();
  var patchDiffLength = 0;  // Keeping our own length var is faster in JS.
  var char_count1 = 0;  // Number of characters into the text1 string.
  var char_count2 = 0;  // Number of characters into the text2 string.
  // Start with text1 (prepatch_text) and apply the diffs until we arrive at
  // text2 (postpatch_text).  We recreate the patches one by one to determine
  // context info.
  var prepatch_text = text1;
  var postpatch_text = text1;
  for (var x = 0; x < diffs.length; x++) {
    var diff_type = diffs[x][0];
    var diff_text = diffs[x][1];

    if (!patchDiffLength && diff_type !== DIFF_EQUAL) {
      // A new patch starts here.
      patch.start1 = char_count1;
      patch.start2 = char_count2;
    }

    switch (diff_type) {
      case DIFF_INSERT:
        patch.diffs[patchDiffLength++] = diffs[x];
        patch.length2 += diff_text.length;
        postpatch_text = postpatch_text.substring(0, char_count2) + diff_text +
                         postpatch_text.substring(char_count2);
        break;
      case DIFF_DELETE:
        patch.length1 += diff_text.length;
        patch.diffs[patchDiffLength++] = diffs[x];
        postpatch_text = postpatch_text.substring(0, char_count2) +
                         postpatch_text.substring(char_count2 +
                             diff_text.length);
        break;
      case DIFF_EQUAL:
        if (diff_text.length <= 2 * this.Patch_Margin &&
            patchDiffLength && diffs.length != x + 1) {
          // Small equality inside a patch.
          patch.diffs[patchDiffLength++] = diffs[x];
          patch.length1 += diff_text.length;
          patch.length2 += diff_text.length;
        } else if (diff_text.length >= 2 * this.Patch_Margin) {
          // Time for a new patch.
          if (patchDiffLength) {
            this.patch_addContext_(patch, prepatch_text);
            patches.push(patch);
            patch = new diff_match_patch.patch_obj();
            patchDiffLength = 0;
            // Unlike Unidiff, our patch lists have a rolling context.
            // http://code.google.com/p/google-diff-match-patch/wiki/Unidiff
            // Update prepatch text & pos to reflect the application of the
            // just completed patch.
            prepatch_text = postpatch_text;
            char_count1 = char_count2;
          }
        }
        break;
    }

    // Update the current character count.
    if (diff_type !== DIFF_INSERT) {
      char_count1 += diff_text.length;
    }
    if (diff_type !== DIFF_DELETE) {
      char_count2 += diff_text.length;
    }
  }
  // Pick up the leftover patch if not empty.
  if (patchDiffLength) {
    this.patch_addContext_(patch, prepatch_text);
    patches.push(patch);
  }

  return patches;
};


/**
 * Given an array of patches, return another array that is identical.
 * @param {!Array.<!diff_match_patch.patch_obj>} patches Array of Patch objects.
 * @return {!Array.<!diff_match_patch.patch_obj>} Array of Patch objects.
 */
diff_match_patch.prototype.patch_deepCopy = function(patches) {
  // Making deep copies is hard in JavaScript.
  var patchesCopy = [];
  for (var x = 0; x < patches.length; x++) {
    var patch = patches[x];
    var patchCopy = new diff_match_patch.patch_obj();
    patchCopy.diffs = [];
    for (var y = 0; y < patch.diffs.length; y++) {
      patchCopy.diffs[y] = patch.diffs[y].slice();
    }
    patchCopy.start1 = patch.start1;
    patchCopy.start2 = patch.start2;
    patchCopy.length1 = patch.length1;
    patchCopy.length2 = patch.length2;
    patchesCopy[x] = patchCopy;
  }
  return patchesCopy;
};


/**
 * Merge a set of patches onto the text.  Return a patched text, as well
 * as a list of true/false values indicating which patches were applied.
 * @param {!Array.<!diff_match_patch.patch_obj>} patches Array of Patch objects.
 * @param {string} text Old text.
 * @return {!Array.<string|!Array.<boolean>>} Two element Array, containing the
 *      new text and an array of boolean values.
 */
diff_match_patch.prototype.patch_apply = function(patches, text) {
  if (patches.length == 0) {
    return [text, []];
  }

  // Deep copy the patches so that no changes are made to originals.
  patches = this.patch_deepCopy(patches);

  var nullPadding = this.patch_addPadding(patches);
  text = nullPadding + text + nullPadding;

  this.patch_splitMax(patches);
  // delta keeps track of the offset between the expected and actual location
  // of the previous patch.  If there are patches expected at positions 10 and
  // 20, but the first patch was found at 12, delta is 2 and the second patch
  // has an effective expected position of 22.
  var delta = 0;
  var results = [];
  for (var x = 0; x < patches.length; x++) {
    var expected_loc = patches[x].start2 + delta;
    var text1 = this.diff_text1(patches[x].diffs);
    var start_loc;
    var end_loc = -1;
    if (text1.length > this.Match_MaxBits) {
      // patch_splitMax will only provide an oversized pattern in the case of
      // a monster delete.
      start_loc = this.match_main(text, text1.substring(0, this.Match_MaxBits),
                                  expected_loc);
      if (start_loc != -1) {
        end_loc = this.match_main(text,
            text1.substring(text1.length - this.Match_MaxBits),
            expected_loc + text1.length - this.Match_MaxBits);
        if (end_loc == -1 || start_loc >= end_loc) {
          // Can't find valid trailing context.  Drop this patch.
          start_loc = -1;
        }
      }
    } else {
      start_loc = this.match_main(text, text1, expected_loc);
    }
    if (start_loc == -1) {
      // No match found.  :(
      results[x] = false;
      // Subtract the delta for this failed patch from subsequent patches.
      delta -= patches[x].length2 - patches[x].length1;
    } else {
      // Found a match.  :)
      results[x] = true;
      delta = start_loc - expected_loc;
      var text2;
      if (end_loc == -1) {
        text2 = text.substring(start_loc, start_loc + text1.length);
      } else {
        text2 = text.substring(start_loc, end_loc + this.Match_MaxBits);
      }
      if (text1 == text2) {
        // Perfect match, just shove the replacement text in.
        text = text.substring(0, start_loc) +
               this.diff_text2(patches[x].diffs) +
               text.substring(start_loc + text1.length);
      } else {
        // Imperfect match.  Run a diff to get a framework of equivalent
        // indices.
        var diffs = this.diff_main(text1, text2, false);
        if (text1.length > this.Match_MaxBits &&
            this.diff_levenshtein(diffs) / text1.length >
            this.Patch_DeleteThreshold) {
          // The end points match, but the content is unacceptably bad.
          results[x] = false;
        } else {
          this.diff_cleanupSemanticLossless(diffs);
          var index1 = 0;
          var index2;
          for (var y = 0; y < patches[x].diffs.length; y++) {
            var mod = patches[x].diffs[y];
            if (mod[0] !== DIFF_EQUAL) {
              index2 = this.diff_xIndex(diffs, index1);
            }
            if (mod[0] === DIFF_INSERT) {  // Insertion
              text = text.substring(0, start_loc + index2) + mod[1] +
                     text.substring(start_loc + index2);
            } else if (mod[0] === DIFF_DELETE) {  // Deletion
              text = text.substring(0, start_loc + index2) +
                     text.substring(start_loc + this.diff_xIndex(diffs,
                         index1 + mod[1].length));
            }
            if (mod[0] !== DIFF_DELETE) {
              index1 += mod[1].length;
            }
          }
        }
      }
    }
  }
  // Strip the padding off.
  text = text.substring(nullPadding.length, text.length - nullPadding.length);
  return [text, results];
};


/**
 * Add some padding on text start and end so that edges can match something.
 * Intended to be called only from within patch_apply.
 * @param {!Array.<!diff_match_patch.patch_obj>} patches Array of Patch objects.
 * @return {string} The padding string added to each side.
 */
diff_match_patch.prototype.patch_addPadding = function(patches) {
  var paddingLength = this.Patch_Margin;
  var nullPadding = '';
  for (var x = 1; x <= paddingLength; x++) {
    nullPadding += String.fromCharCode(x);
  }

  // Bump all the patches forward.
  for (var x = 0; x < patches.length; x++) {
    patches[x].start1 += paddingLength;
    patches[x].start2 += paddingLength;
  }

  // Add some padding on start of first diff.
  var patch = patches[0];
  var diffs = patch.diffs;
  if (diffs.length == 0 || diffs[0][0] != DIFF_EQUAL) {
    // Add nullPadding equality.
    diffs.unshift([DIFF_EQUAL, nullPadding]);
    patch.start1 -= paddingLength;  // Should be 0.
    patch.start2 -= paddingLength;  // Should be 0.
    patch.length1 += paddingLength;
    patch.length2 += paddingLength;
  } else if (paddingLength > diffs[0][1].length) {
    // Grow first equality.
    var extraLength = paddingLength - diffs[0][1].length;
    diffs[0][1] = nullPadding.substring(diffs[0][1].length) + diffs[0][1];
    patch.start1 -= extraLength;
    patch.start2 -= extraLength;
    patch.length1 += extraLength;
    patch.length2 += extraLength;
  }

  // Add some padding on end of last diff.
  patch = patches[patches.length - 1];
  diffs = patch.diffs;
  if (diffs.length == 0 || diffs[diffs.length - 1][0] != DIFF_EQUAL) {
    // Add nullPadding equality.
    diffs.push([DIFF_EQUAL, nullPadding]);
    patch.length1 += paddingLength;
    patch.length2 += paddingLength;
  } else if (paddingLength > diffs[diffs.length - 1][1].length) {
    // Grow last equality.
    var extraLength = paddingLength - diffs[diffs.length - 1][1].length;
    diffs[diffs.length - 1][1] += nullPadding.substring(0, extraLength);
    patch.length1 += extraLength;
    patch.length2 += extraLength;
  }

  return nullPadding;
};


/**
 * Look through the patches and break up any which are longer than the maximum
 * limit of the match algorithm.
 * Intended to be called only from within patch_apply.
 * @param {!Array.<!diff_match_patch.patch_obj>} patches Array of Patch objects.
 */
diff_match_patch.prototype.patch_splitMax = function(patches) {
  var patch_size = this.Match_MaxBits;
  for (var x = 0; x < patches.length; x++) {
    if (patches[x].length1 <= patch_size) {
      continue;
    }
    var bigpatch = patches[x];
    // Remove the big old patch.
    patches.splice(x--, 1);
    var start1 = bigpatch.start1;
    var start2 = bigpatch.start2;
    var precontext = '';
    while (bigpatch.diffs.length !== 0) {
      // Create one of several smaller patches.
      var patch = new diff_match_patch.patch_obj();
      var empty = true;
      patch.start1 = start1 - precontext.length;
      patch.start2 = start2 - precontext.length;
      if (precontext !== '') {
        patch.length1 = patch.length2 = precontext.length;
        patch.diffs.push([DIFF_EQUAL, precontext]);
      }
      while (bigpatch.diffs.length !== 0 &&
             patch.length1 < patch_size - this.Patch_Margin) {
        var diff_type = bigpatch.diffs[0][0];
        var diff_text = bigpatch.diffs[0][1];
        if (diff_type === DIFF_INSERT) {
          // Insertions are harmless.
          patch.length2 += diff_text.length;
          start2 += diff_text.length;
          patch.diffs.push(bigpatch.diffs.shift());
          empty = false;
        } else if (diff_type === DIFF_DELETE && patch.diffs.length == 1 &&
                   patch.diffs[0][0] == DIFF_EQUAL &&
                   diff_text.length > 2 * patch_size) {
          // This is a large deletion.  Let it pass in one chunk.
          patch.length1 += diff_text.length;
          start1 += diff_text.length;
          empty = false;
          patch.diffs.push([diff_type, diff_text]);
          bigpatch.diffs.shift();
        } else {
          // Deletion or equality.  Only take as much as we can stomach.
          diff_text = diff_text.substring(0,
              patch_size - patch.length1 - this.Patch_Margin);
          patch.length1 += diff_text.length;
          start1 += diff_text.length;
          if (diff_type === DIFF_EQUAL) {
            patch.length2 += diff_text.length;
            start2 += diff_text.length;
          } else {
            empty = false;
          }
          patch.diffs.push([diff_type, diff_text]);
          if (diff_text == bigpatch.diffs[0][1]) {
            bigpatch.diffs.shift();
          } else {
            bigpatch.diffs[0][1] =
                bigpatch.diffs[0][1].substring(diff_text.length);
          }
        }
      }
      // Compute the head context for the next patch.
      precontext = this.diff_text2(patch.diffs);
      precontext =
          precontext.substring(precontext.length - this.Patch_Margin);
      // Append the end context for this patch.
      var postcontext = this.diff_text1(bigpatch.diffs)
                            .substring(0, this.Patch_Margin);
      if (postcontext !== '') {
        patch.length1 += postcontext.length;
        patch.length2 += postcontext.length;
        if (patch.diffs.length !== 0 &&
            patch.diffs[patch.diffs.length - 1][0] === DIFF_EQUAL) {
          patch.diffs[patch.diffs.length - 1][1] += postcontext;
        } else {
          patch.diffs.push([DIFF_EQUAL, postcontext]);
        }
      }
      if (!empty) {
        patches.splice(++x, 0, patch);
      }
    }
  }
};


/**
 * Take a list of patches and return a textual representation.
 * @param {!Array.<!diff_match_patch.patch_obj>} patches Array of Patch objects.
 * @return {string} Text representation of patches.
 */
diff_match_patch.prototype.patch_toText = function(patches) {
  var text = [];
  for (var x = 0; x < patches.length; x++) {
    text[x] = patches[x];
  }
  return text.join('');
};


/**
 * Parse a textual representation of patches and return a list of Patch objects.
 * @param {string} textline Text representation of patches.
 * @return {!Array.<!diff_match_patch.patch_obj>} Array of Patch objects.
 * @throws {!Error} If invalid input.
 */
diff_match_patch.prototype.patch_fromText = function(textline) {
  var patches = [];
  if (!textline) {
    return patches;
  }
  var text = textline.split('\n');
  var textPointer = 0;
  var patchHeader = /^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;
  while (textPointer < text.length) {
    var m = text[textPointer].match(patchHeader);
    if (!m) {
      throw new Error('Invalid patch string: ' + text[textPointer]);
    }
    var patch = new diff_match_patch.patch_obj();
    patches.push(patch);
    patch.start1 = parseInt(m[1], 10);
    if (m[2] === '') {
      patch.start1--;
      patch.length1 = 1;
    } else if (m[2] == '0') {
      patch.length1 = 0;
    } else {
      patch.start1--;
      patch.length1 = parseInt(m[2], 10);
    }

    patch.start2 = parseInt(m[3], 10);
    if (m[4] === '') {
      patch.start2--;
      patch.length2 = 1;
    } else if (m[4] == '0') {
      patch.length2 = 0;
    } else {
      patch.start2--;
      patch.length2 = parseInt(m[4], 10);
    }
    textPointer++;

    while (textPointer < text.length) {
      var sign = text[textPointer].charAt(0);
      try {
        var line = decodeURI(text[textPointer].substring(1));
      } catch (ex) {
        // Malformed URI sequence.
        throw new Error('Illegal escape in patch_fromText: ' + line);
      }
      if (sign == '-') {
        // Deletion.
        patch.diffs.push([DIFF_DELETE, line]);
      } else if (sign == '+') {
        // Insertion.
        patch.diffs.push([DIFF_INSERT, line]);
      } else if (sign == ' ') {
        // Minor equality.
        patch.diffs.push([DIFF_EQUAL, line]);
      } else if (sign == '@') {
        // Start of next patch.
        break;
      } else if (sign === '') {
        // Blank line?  Whatever.
      } else {
        // WTF?
        throw new Error('Invalid patch mode "' + sign + '" in: ' + line);
      }
      textPointer++;
    }
  }
  return patches;
};


/**
 * Class representing one patch operation.
 * @constructor
 */
diff_match_patch.patch_obj = function() {
  /** @type {!Array.<!diff_match_patch.Diff>} */
  this.diffs = [];
  /** @type {?number} */
  this.start1 = null;
  /** @type {?number} */
  this.start2 = null;
  /** @type {number} */
  this.length1 = 0;
  /** @type {number} */
  this.length2 = 0;
};


/**
 * Emmulate GNU diff's format.
 * Header: @@ -382,8 +481,9 @@
 * Indicies are printed as 1-based, not 0-based.
 * @return {string} The GNU diff string.
 */
diff_match_patch.patch_obj.prototype.toString = function() {
  var coords1, coords2;
  if (this.length1 === 0) {
    coords1 = this.start1 + ',0';
  } else if (this.length1 == 1) {
    coords1 = this.start1 + 1;
  } else {
    coords1 = (this.start1 + 1) + ',' + this.length1;
  }
  if (this.length2 === 0) {
    coords2 = this.start2 + ',0';
  } else if (this.length2 == 1) {
    coords2 = this.start2 + 1;
  } else {
    coords2 = (this.start2 + 1) + ',' + this.length2;
  }
  var text = ['@@ -' + coords1 + ' +' + coords2 + ' @@\n'];
  var op;
  // Escape the body of the patch with %xx notation.
  for (var x = 0; x < this.diffs.length; x++) {
    switch (this.diffs[x][0]) {
      case DIFF_INSERT:
        op = '+';
        break;
      case DIFF_DELETE:
        op = '-';
        break;
      case DIFF_EQUAL:
        op = ' ';
        break;
    }
    text[x + 1] = op + encodeURI(this.diffs[x][1]) + '\n';
  }
  return text.join('').replace(/%20/g, ' ');
};


// The following export code was added by @ForbesLindesay
module.exports = diff_match_patch;
module.exports['diff_match_patch'] = diff_match_patch;
module.exports['DIFF_DELETE'] = DIFF_DELETE;
module.exports['DIFF_INSERT'] = DIFF_INSERT;
module.exports['DIFF_EQUAL'] = DIFF_EQUAL;

/***/ }),
/* 196 */
/***/ (function(module, exports, __webpack_require__) {

(function(){
  var crypt = __webpack_require__(197),
      utf8 = __webpack_require__(198).utf8,
      isBuffer = __webpack_require__(199),
      bin = __webpack_require__(198).bin,

  // The core
  md5 = function (message, options) {
    // Convert to byte array
    if (message.constructor == String)
      if (options && options.encoding === 'binary')
        message = bin.stringToBytes(message);
      else
        message = utf8.stringToBytes(message);
    else if (isBuffer(message))
      message = Array.prototype.slice.call(message, 0);
    else if (!Array.isArray(message))
      message = message.toString();
    // else, assume byte array already

    var m = crypt.bytesToWords(message),
        l = message.length * 8,
        a =  1732584193,
        b = -271733879,
        c = -1732584194,
        d =  271733878;

    // Swap endian
    for (var i = 0; i < m.length; i++) {
      m[i] = ((m[i] <<  8) | (m[i] >>> 24)) & 0x00FF00FF |
             ((m[i] << 24) | (m[i] >>>  8)) & 0xFF00FF00;
    }

    // Padding
    m[l >>> 5] |= 0x80 << (l % 32);
    m[(((l + 64) >>> 9) << 4) + 14] = l;

    // Method shortcuts
    var FF = md5._ff,
        GG = md5._gg,
        HH = md5._hh,
        II = md5._ii;

    for (var i = 0; i < m.length; i += 16) {

      var aa = a,
          bb = b,
          cc = c,
          dd = d;

      a = FF(a, b, c, d, m[i+ 0],  7, -680876936);
      d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
      c = FF(c, d, a, b, m[i+ 2], 17,  606105819);
      b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
      a = FF(a, b, c, d, m[i+ 4],  7, -176418897);
      d = FF(d, a, b, c, m[i+ 5], 12,  1200080426);
      c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
      b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
      a = FF(a, b, c, d, m[i+ 8],  7,  1770035416);
      d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
      c = FF(c, d, a, b, m[i+10], 17, -42063);
      b = FF(b, c, d, a, m[i+11], 22, -1990404162);
      a = FF(a, b, c, d, m[i+12],  7,  1804603682);
      d = FF(d, a, b, c, m[i+13], 12, -40341101);
      c = FF(c, d, a, b, m[i+14], 17, -1502002290);
      b = FF(b, c, d, a, m[i+15], 22,  1236535329);

      a = GG(a, b, c, d, m[i+ 1],  5, -165796510);
      d = GG(d, a, b, c, m[i+ 6],  9, -1069501632);
      c = GG(c, d, a, b, m[i+11], 14,  643717713);
      b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
      a = GG(a, b, c, d, m[i+ 5],  5, -701558691);
      d = GG(d, a, b, c, m[i+10],  9,  38016083);
      c = GG(c, d, a, b, m[i+15], 14, -660478335);
      b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
      a = GG(a, b, c, d, m[i+ 9],  5,  568446438);
      d = GG(d, a, b, c, m[i+14],  9, -1019803690);
      c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
      b = GG(b, c, d, a, m[i+ 8], 20,  1163531501);
      a = GG(a, b, c, d, m[i+13],  5, -1444681467);
      d = GG(d, a, b, c, m[i+ 2],  9, -51403784);
      c = GG(c, d, a, b, m[i+ 7], 14,  1735328473);
      b = GG(b, c, d, a, m[i+12], 20, -1926607734);

      a = HH(a, b, c, d, m[i+ 5],  4, -378558);
      d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
      c = HH(c, d, a, b, m[i+11], 16,  1839030562);
      b = HH(b, c, d, a, m[i+14], 23, -35309556);
      a = HH(a, b, c, d, m[i+ 1],  4, -1530992060);
      d = HH(d, a, b, c, m[i+ 4], 11,  1272893353);
      c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
      b = HH(b, c, d, a, m[i+10], 23, -1094730640);
      a = HH(a, b, c, d, m[i+13],  4,  681279174);
      d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
      c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
      b = HH(b, c, d, a, m[i+ 6], 23,  76029189);
      a = HH(a, b, c, d, m[i+ 9],  4, -640364487);
      d = HH(d, a, b, c, m[i+12], 11, -421815835);
      c = HH(c, d, a, b, m[i+15], 16,  530742520);
      b = HH(b, c, d, a, m[i+ 2], 23, -995338651);

      a = II(a, b, c, d, m[i+ 0],  6, -198630844);
      d = II(d, a, b, c, m[i+ 7], 10,  1126891415);
      c = II(c, d, a, b, m[i+14], 15, -1416354905);
      b = II(b, c, d, a, m[i+ 5], 21, -57434055);
      a = II(a, b, c, d, m[i+12],  6,  1700485571);
      d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
      c = II(c, d, a, b, m[i+10], 15, -1051523);
      b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
      a = II(a, b, c, d, m[i+ 8],  6,  1873313359);
      d = II(d, a, b, c, m[i+15], 10, -30611744);
      c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
      b = II(b, c, d, a, m[i+13], 21,  1309151649);
      a = II(a, b, c, d, m[i+ 4],  6, -145523070);
      d = II(d, a, b, c, m[i+11], 10, -1120210379);
      c = II(c, d, a, b, m[i+ 2], 15,  718787259);
      b = II(b, c, d, a, m[i+ 9], 21, -343485551);

      a = (a + aa) >>> 0;
      b = (b + bb) >>> 0;
      c = (c + cc) >>> 0;
      d = (d + dd) >>> 0;
    }

    return crypt.endian([a, b, c, d]);
  };

  // Auxiliary functions
  md5._ff  = function (a, b, c, d, x, s, t) {
    var n = a + (b & c | ~b & d) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };
  md5._gg  = function (a, b, c, d, x, s, t) {
    var n = a + (b & d | c & ~d) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };
  md5._hh  = function (a, b, c, d, x, s, t) {
    var n = a + (b ^ c ^ d) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };
  md5._ii  = function (a, b, c, d, x, s, t) {
    var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };

  // Package private blocksize
  md5._blocksize = 16;
  md5._digestsize = 16;

  module.exports = function (message, options) {
    if (message === undefined || message === null)
      throw new Error('Illegal argument ' + message);

    var digestbytes = crypt.wordsToBytes(md5(message, options));
    return options && options.asBytes ? digestbytes :
        options && options.asString ? bin.bytesToString(digestbytes) :
        crypt.bytesToHex(digestbytes);
  };

})();


/***/ }),
/* 197 */
/***/ (function(module, exports) {

(function() {
  var base64map
      = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',

  crypt = {
    // Bit-wise rotation left
    rotl: function(n, b) {
      return (n << b) | (n >>> (32 - b));
    },

    // Bit-wise rotation right
    rotr: function(n, b) {
      return (n << (32 - b)) | (n >>> b);
    },

    // Swap big-endian to little-endian and vice versa
    endian: function(n) {
      // If number given, swap endian
      if (n.constructor == Number) {
        return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;
      }

      // Else, assume array and swap all items
      for (var i = 0; i < n.length; i++)
        n[i] = crypt.endian(n[i]);
      return n;
    },

    // Generate an array of any length of random bytes
    randomBytes: function(n) {
      for (var bytes = []; n > 0; n--)
        bytes.push(Math.floor(Math.random() * 256));
      return bytes;
    },

    // Convert a byte array to big-endian 32-bit words
    bytesToWords: function(bytes) {
      for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)
        words[b >>> 5] |= bytes[i] << (24 - b % 32);
      return words;
    },

    // Convert big-endian 32-bit words to a byte array
    wordsToBytes: function(words) {
      for (var bytes = [], b = 0; b < words.length * 32; b += 8)
        bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
      return bytes;
    },

    // Convert a byte array to a hex string
    bytesToHex: function(bytes) {
      for (var hex = [], i = 0; i < bytes.length; i++) {
        hex.push((bytes[i] >>> 4).toString(16));
        hex.push((bytes[i] & 0xF).toString(16));
      }
      return hex.join('');
    },

    // Convert a hex string to a byte array
    hexToBytes: function(hex) {
      for (var bytes = [], c = 0; c < hex.length; c += 2)
        bytes.push(parseInt(hex.substr(c, 2), 16));
      return bytes;
    },

    // Convert a byte array to a base-64 string
    bytesToBase64: function(bytes) {
      for (var base64 = [], i = 0; i < bytes.length; i += 3) {
        var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
        for (var j = 0; j < 4; j++)
          if (i * 8 + j * 6 <= bytes.length * 8)
            base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));
          else
            base64.push('=');
      }
      return base64.join('');
    },

    // Convert a base-64 string to a byte array
    base64ToBytes: function(base64) {
      // Remove non-base-64 characters
      base64 = base64.replace(/[^A-Z0-9+\/]/ig, '');

      for (var bytes = [], i = 0, imod4 = 0; i < base64.length;
          imod4 = ++i % 4) {
        if (imod4 == 0) continue;
        bytes.push(((base64map.indexOf(base64.charAt(i - 1))
            & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))
            | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));
      }
      return bytes;
    }
  };

  module.exports = crypt;
})();


/***/ }),
/* 198 */
/***/ (function(module, exports) {

var charenc = {
  // UTF-8 encoding
  utf8: {
    // Convert a string to a byte array
    stringToBytes: function(str) {
      return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));
    },

    // Convert a byte array to a string
    bytesToString: function(bytes) {
      return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
    }
  },

  // Binary encoding
  bin: {
    // Convert a string to a byte array
    stringToBytes: function(str) {
      for (var bytes = [], i = 0; i < str.length; i++)
        bytes.push(str.charCodeAt(i) & 0xFF);
      return bytes;
    },

    // Convert a byte array to a string
    bytesToString: function(bytes) {
      for (var str = [], i = 0; i < bytes.length; i++)
        str.push(String.fromCharCode(bytes[i]));
      return str.join('');
    }
  }
};

module.exports = charenc;


/***/ }),
/* 199 */
/***/ (function(module, exports) {

/*!
 * Determine if an object is a Buffer
 *
 * @author   Feross Aboukhadijeh <https://feross.org>
 * @license  MIT
 */

// The _isBuffer check is for Safari 5-7 support, because it's missing
// Object.prototype.constructor. Remove this eventually
module.exports = function (obj) {
  return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
}

function isBuffer (obj) {
  return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
}

// For Node v0.10 support. Remove this eventually.
function isSlowBuffer (obj) {
  return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
}


/***/ }),
/* 200 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// tslint:disable:no-any no-empty member-ordering prefer-const prefer-template no-var-self
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const constants_1 = __webpack_require__(147);
const types_1 = __webpack_require__(148);
const async_1 = __webpack_require__(150);
const text_1 = __webpack_require__(201);
const string_1 = __webpack_require__(149);
class RefactorProxy {
    constructor(extensionDir, _pythonSettings, workspaceRoot, serviceContainer) {
        this.workspaceRoot = workspaceRoot;
        this.serviceContainer = serviceContainer;
        this._previousOutData = '';
        this._previousStdErrData = '';
        this._startedSuccessfully = false;
        this._extensionDir = extensionDir;
    }
    dispose() {
        try {
            this._process.kill();
        }
        catch (ex) {
        }
        this._process = undefined;
    }
    getOffsetAt(document, position) {
        if (!constants_1.IS_WINDOWS) {
            return document.offsetAt(position);
        }
        // get line count
        // Rope always uses LF, instead of CRLF on windows, funny isn't it
        // So for each line, reduce one characer (for CR)
        // But Not all Windows users use CRLF
        const offset = document.offsetAt(position);
        const winEols = text_1.getWindowsLineEndingCount(document, offset);
        return offset - winEols;
    }
    async rename(document, name, filePath, range) {
        let options = await coc_nvim_1.workspace.getFormatOptions();
        const command = {
            lookup: 'rename',
            file: filePath,
            start: this.getOffsetAt(document, range.start).toString(),
            id: '1',
            name,
            indent_size: options.tabSize
        };
        let res = await this.sendCommand(JSON.stringify(command));
        return res;
    }
    async extractVariable(document, name, filePath, range) {
        let options = await coc_nvim_1.workspace.getFormatOptions();
        const command = {
            lookup: 'extract_variable',
            file: filePath,
            start: this.getOffsetAt(document, range.start).toString(),
            end: this.getOffsetAt(document, range.end).toString(),
            id: '1',
            name,
            indent_size: options.tabSize
        };
        return await this.sendCommand(JSON.stringify(command));
    }
    async extractMethod(document, name, filePath, range) {
        let options = await coc_nvim_1.workspace.getFormatOptions();
        // Ensure last line is an empty line
        // if (!document.lineAt(document.lineCount - 1).isEmptyOrWhitespace && range.start.line === document.lineCount - 1) {
        //   return Promise.reject<T>('Missing blank line at the end of document (PEP8).')
        // }
        const command = {
            lookup: 'extract_method',
            file: filePath,
            start: this.getOffsetAt(document, range.start).toString(),
            end: this.getOffsetAt(document, range.end).toString(),
            id: '1',
            name,
            indent_size: options.tabSize
        };
        return await this.sendCommand(JSON.stringify(command));
    }
    sendCommand(command) {
        return this.initialize().then(() => {
            // tslint:disable-next-line:promise-must-complete
            return new Promise((resolve, reject) => {
                this._commandResolve = resolve;
                this._commandReject = reject;
                this._process.stdin.write(command + '\n');
            });
        });
    }
    async initialize() {
        const pythonProc = await this.serviceContainer.get(types_1.IPythonExecutionFactory).create({ resource: coc_nvim_1.Uri.file(this.workspaceRoot) });
        this.initialized = async_1.createDeferred();
        const args = ['refactor.py', this.workspaceRoot];
        const cwd = path.join(this._extensionDir, 'pythonFiles');
        const result = pythonProc.execObservable(args, { cwd });
        this._process = result.proc;
        result.out.subscribe(output => {
            if (output.source === 'stdout') {
                if (!this._startedSuccessfully && output.out.startsWith('STARTED')) {
                    this._startedSuccessfully = true;
                    return this.initialized.resolve();
                }
                this.onData(output.out);
            }
            else {
                this.handleStdError(output.out);
            }
        }, error => this.handleError(error));
        return this.initialized.promise;
    }
    handleStdError(data) {
        // Possible there was an exception in parsing the data returned
        // So append the data then parse it
        let dataStr = this._previousStdErrData = this._previousStdErrData + data + '';
        let errorResponse;
        try {
            errorResponse = dataStr.split(/\r?\n/g).filter(line => line.length > 0).map(resp => JSON.parse(resp));
            this._previousStdErrData = '';
        }
        catch (ex) {
            // tslint:disable-next-line: no-console
            console.error(ex);
            // Possible we've only received part of the data, hence don't clear previousData
            return;
        }
        if (typeof errorResponse[0].message !== 'string' || errorResponse[0].message.length === 0) {
            errorResponse[0].message = string_1.splitLines(errorResponse[0].traceback).pop();
        }
        let errorMessage = errorResponse[0].message + '\n' + errorResponse[0].traceback;
        if (this._startedSuccessfully) {
            this._commandReject(`Refactor failed. ${errorMessage}`);
        }
        else {
            if (typeof errorResponse[0].type === 'string' && errorResponse[0].type === 'ModuleNotFoundError') {
                this.initialized.reject('Not installed');
                return;
            }
            this.initialized.reject(`Refactor failed. ${errorMessage}`);
        }
    }
    handleError(error) {
        if (this._startedSuccessfully) {
            return this._commandReject(error);
        }
        this.initialized.reject(error);
    }
    onData(data) {
        if (!this._commandResolve) {
            return;
        }
        // Possible there was an exception in parsing the data returned
        // So append the data then parse it
        let dataStr = this._previousOutData = this._previousOutData + data + '';
        let response;
        try {
            response = dataStr.split(/\r?\n/g).filter(line => line.length > 0).map(resp => JSON.parse(resp));
            this._previousOutData = '';
        }
        catch (ex) {
            // Possible we've only received part of the data, hence don't clear previousData
            return;
        }
        this.dispose();
        this._commandResolve(response[0]);
        this._commandResolve = undefined;
    }
}
exports.RefactorProxy = RefactorProxy;


/***/ }),
/* 201 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const sysTypes_1 = __webpack_require__(202);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
function getWindowsLineEndingCount(document, offset) {
    // const eolPattern = new RegExp('\r\n', 'g')
    const eolPattern = /\r\n/g;
    const readBlock = 1024;
    let count = 0;
    let offsetDiff = offset.valueOf();
    // In order to prevent the one-time loading of large files from taking up too much memory
    for (let pos = 0; pos < offset; pos += readBlock) {
        const startAt = document.positionAt(pos);
        let endAt;
        if (offsetDiff >= readBlock) {
            endAt = document.positionAt(pos + readBlock);
            offsetDiff = offsetDiff - readBlock;
        }
        else {
            endAt = document.positionAt(pos + offsetDiff);
        }
        const text = document.getText(vscode_languageserver_protocol_1.Range.create(startAt, endAt));
        const cr = text.match(eolPattern);
        count += cr ? cr.length : 0;
    }
    return count;
}
exports.getWindowsLineEndingCount = getWindowsLineEndingCount;
/**
 * Return the range represented by the given string.
 *
 * If a number is provided then it is used as both lines and the
 * character are set to 0.
 *
 * Examples:
 *  '1:5-3:5' -> Range(1, 5, 3, 5)
 *  '1-3'     -> Range(1, 0, 3, 0)
 *  '1:3-1:5' -> Range(1, 3, 1, 5)
 *  '1-1'     -> Range(1, 0, 1, 0)
 *  '1'       -> Range(1, 0, 1, 0)
 *  '1:3-'    -> Range(1, 3, 1, 0)
 *  '1:3'     -> Range(1, 3, 1, 0)
 *  ''        -> Range(0, 0, 0, 0)
 *  '3-1'     -> Range(1, 0, 3, 0)
 */
function parseRange(raw) {
    if (sysTypes_1.isNumber(raw)) {
        return vscode_languageserver_protocol_1.Range.create(raw, 0, raw, 0);
    }
    if (raw === '') {
        return vscode_languageserver_protocol_1.Range.create(0, 0, 0, 0);
    }
    const parts = raw.split('-');
    if (parts.length > 2) {
        throw new Error(`invalid range ${raw}`);
    }
    const start = parsePosition(parts[0]);
    let end = start;
    if (parts.length === 2) {
        end = parsePosition(parts[1]);
    }
    return vscode_languageserver_protocol_1.Range.create(start, end);
}
exports.parseRange = parseRange;
/**
 * Return the line/column represented by the given string.
 *
 * If a number is provided then it is used as the line and the character
 * is set to 0.
 *
 * Examples:
 *  '1:5' -> Position(1, 5)
 *  '1'   -> Position(1, 0)
 *  ''    -> Position(0, 0)
 */
function parsePosition(raw) {
    if (sysTypes_1.isNumber(raw)) {
        return vscode_languageserver_protocol_1.Position.create(raw, 0);
    }
    if (raw === '') {
        return vscode_languageserver_protocol_1.Position.create(0, 0);
    }
    const parts = raw.split(':');
    if (parts.length > 2) {
        throw new Error(`invalid position ${raw}`);
    }
    let line = 0;
    if (parts[0] !== '') {
        if (!/^\d+$/.test(parts[0])) {
            throw new Error(`invalid position ${raw}`);
        }
        line = +parts[0];
    }
    let col = 0;
    if (parts.length === 2 && parts[1] !== '') {
        if (!/^\d+$/.test(parts[1])) {
            throw new Error(`invalid position ${raw}`);
        }
        col = +parts[1];
    }
    return vscode_languageserver_protocol_1.Position.create(line, col);
}
exports.parsePosition = parsePosition;


/***/ }),
/* 202 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:rule1 no-any no-unnecessary-callback-wrapper jsdoc-format no-for-in prefer-const no-increment-decrement
const _typeof = {
    number: 'number',
    string: 'string',
    undefined: 'undefined',
    object: 'object',
    function: 'function'
};
/**
 * @returns whether the provided parameter is a JavaScript Array or not.
 */
function isArray(array) {
    if (Array.isArray) {
        return Array.isArray(array);
    }
    if (array && typeof (array.length) === _typeof.number && array.constructor === Array) {
        return true;
    }
    return false;
}
exports.isArray = isArray;
/**
 * @returns whether the provided parameter is a JavaScript String or not.
 */
function isString(str) {
    if (typeof (str) === _typeof.string || str instanceof String) {
        return true;
    }
    return false;
}
exports.isString = isString;
/**
 * @returns whether the provided parameter is a JavaScript Array and each element in the array is a string.
 */
function isStringArray(value) {
    return isArray(value) && value.every(elem => isString(elem));
}
exports.isStringArray = isStringArray;
/**
 *
 * @returns whether the provided parameter is of type `object` but **not**
 *	`null`, an `array`, a `regexp`, nor a `date`.
 */
function isObject(obj) {
    return typeof obj === _typeof.object
        && obj !== null
        && !Array.isArray(obj)
        && !(obj instanceof RegExp)
        && !(obj instanceof Date);
}
exports.isObject = isObject;
/**
 * In **contrast** to just checking `typeof` this will return `false` for `NaN`.
 * @returns whether the provided parameter is a JavaScript Number or not.
 */
function isNumber(obj) {
    if ((typeof (obj) === _typeof.number || obj instanceof Number) && !isNaN(obj)) {
        return true;
    }
    return false;
}
exports.isNumber = isNumber;
/**
 * @returns whether the provided parameter is a JavaScript Boolean or not.
 */
function isBoolean(obj) {
    return obj === true || obj === false;
}
exports.isBoolean = isBoolean;
/**
 * @returns whether the provided parameter is undefined.
 */
function isUndefined(obj) {
    return typeof (obj) === _typeof.undefined;
}
exports.isUndefined = isUndefined;
/**
 * @returns whether the provided parameter is undefined or null.
 */
function isUndefinedOrNull(obj) {
    return isUndefined(obj) || obj === null;
}
exports.isUndefinedOrNull = isUndefinedOrNull;
const hasOwnProperty = Object.prototype.hasOwnProperty;
/**
 * @returns whether the provided parameter is an empty JavaScript Object or not.
 */
function isEmptyObject(obj) {
    if (!isObject(obj)) {
        return false;
    }
    for (let key in obj) {
        if (hasOwnProperty.call(obj, key)) {
            return false;
        }
    }
    return true;
}
exports.isEmptyObject = isEmptyObject;
/**
 * @returns whether the provided parameter is a JavaScript Function or not.
 */
function isFunction(obj) {
    return typeof obj === _typeof.function;
}
exports.isFunction = isFunction;
/**
 * @returns whether the provided parameters is are JavaScript Function or not.
 */
function areFunctions(...objects) {
    return objects && objects.length > 0 && objects.every(isFunction);
}
exports.areFunctions = areFunctions;


/***/ }),
/* 203 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const os_1 = __webpack_require__(56);
const coc_nvim_1 = __webpack_require__(2);
const proxy = __importStar(__webpack_require__(103));
const providerUtilities_1 = __webpack_require__(169);
const string_1 = __webpack_require__(149);
const DOCSTRING_PARAM_PATTERNS = [
    '\\s*:type\\s*PARAMNAME:\\s*([^\\n, ]+)',
    '\\s*:param\\s*(\\w?)\\s*PARAMNAME:[^\\n]+',
    '\\s*@type\\s*PARAMNAME:\\s*([^\\n, ]+)' // Epydoc
];
/**
 * Extract the documentation for parameters from a given docstring.
 * @param {string} paramName Name of the parameter
 * @param {string} docString The docstring for the function
 * @returns {string} Docstring for the parameter
 */
function extractParamDocString(paramName, docString) {
    let paramDocString = '';
    // In docstring the '*' is escaped with a backslash
    paramName = paramName.replace(new RegExp('\\*', 'g'), '\\\\\\*');
    DOCSTRING_PARAM_PATTERNS.forEach(pattern => {
        if (paramDocString.length > 0) {
            return;
        }
        pattern = pattern.replace('PARAMNAME', paramName);
        const regExp = new RegExp(pattern);
        const matches = regExp.exec(docString);
        if (matches && matches.length > 0) {
            paramDocString = matches[0];
            if (paramDocString.indexOf(':') >= 0) {
                paramDocString = paramDocString.substring(paramDocString.indexOf(':') + 1);
            }
            if (paramDocString.indexOf(':') >= 0) {
                paramDocString = paramDocString.substring(paramDocString.indexOf(':') + 1);
            }
        }
    });
    return paramDocString.trim();
}
class PythonSignatureProvider {
    constructor(jediFactory) {
        this.jediFactory = jediFactory;
    }
    static parseData(data) {
        if (data && Array.isArray(data.definitions) && data.definitions.length > 0) {
            const signature = {
                activeSignature: 0,
                activeParameter: 0,
                signatures: []
            };
            signature.activeSignature = 0;
            data.definitions.forEach(def => {
                signature.activeParameter = def.paramindex;
                // Don't display the documentation, as vs code doesn't format the documentation.
                // i.e. line feeds are not respected, long content is stripped.
                // Some functions do not come with parameter docs
                let label;
                let documentation;
                const validParamInfo = def.params && def.params.length > 0 && def.docstring && def.docstring.startsWith(`${def.name}(`);
                if (validParamInfo) {
                    const docLines = string_1.splitLines(def.docstring);
                    label = docLines.shift().trim();
                    documentation = docLines.join(os_1.EOL).trim();
                }
                else {
                    if (def.params && def.params.length > 0) {
                        label = `${def.name}(${def.params.map(p => p.name).join(', ')})`;
                        documentation = def.docstring;
                    }
                    else {
                        label = def.description;
                        documentation = def.docstring;
                    }
                }
                // tslint:disable-next-line:no-object-literal-type-assertion
                const sig = {
                    label,
                    documentation,
                    parameters: []
                };
                if (def.params && def.params.length) {
                    sig.parameters = def.params.map(arg => {
                        if (arg.docstring.length === 0) {
                            arg.docstring = extractParamDocString(arg.name, def.docstring);
                        }
                        // tslint:disable-next-line:no-object-literal-type-assertion
                        return {
                            documentation: arg.docstring.length > 0 ? arg.docstring : arg.description,
                            label: arg.name.trim()
                        };
                    });
                }
                signature.signatures.push(sig);
            });
            return signature;
        }
        return null;
    }
    provideSignatureHelp(document, position, token) {
        // early exit if we're in a string or comment (or in an undefined position)
        if (position.character < 0 ||
            providerUtilities_1.isPositionInsideStringOrComment(document, position)) {
            return Promise.resolve(null);
        }
        const cmd = {
            command: proxy.CommandType.Arguments,
            fileName: coc_nvim_1.Uri.parse(document.uri).fsPath,
            columnIndex: position.character,
            lineIndex: position.line,
            source: document.getText()
        };
        return this.jediFactory.getJediProxyHandler(coc_nvim_1.Uri.parse(document.uri)).sendCommand(cmd, token).then(data => {
            return data ? PythonSignatureProvider.parseData(data) : null;
        });
    }
}
exports.PythonSignatureProvider = PythonSignatureProvider;


/***/ }),
/* 204 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const coc_nvim_1 = __webpack_require__(2);
const fs_1 = __importDefault(__webpack_require__(94));
const types_1 = __webpack_require__(205);
const async_1 = __webpack_require__(150);
const proxy = __importStar(__webpack_require__(103));
function flattenSymbolTree(tree, uri, containerName = '') {
    const flattened = [];
    const range = vscode_languageserver_protocol_1.Range.create(tree.range.start.line, tree.range.start.character, tree.range.end.line, tree.range.end.character);
    // For whatever reason, the values of VS Code's SymbolKind enum
    // are off-by-one relative to the LSP:
    //  https://microsoft.github.io/language-server-protocol/specification#document-symbols-request-leftwards_arrow_with_hook
    const kind = tree.kind;
    const info = vscode_languageserver_protocol_1.SymbolInformation.create(tree.name, 
    // Type coercion is a bit fuzzy when it comes to enums, so we
    // play it safe by explicitly converting.
    // tslint:disable-next-line:no-any
    vscode_languageserver_protocol_1.SymbolKind[vscode_languageserver_protocol_1.SymbolKind[kind]], range, uri.toString(), containerName);
    flattened.push(info);
    if (tree.children && tree.children.length > 0) {
        // FYI: Jedi doesn't fully-qualify the container name so we
        // don't bother here either.
        // const fullName = `${containerName}.${tree.name}`
        for (const child of tree.children) {
            const flattenedChild = flattenSymbolTree(child, uri, tree.name);
            flattened.push(...flattenedChild);
        }
    }
    return flattened;
}
/**
 * Provides Python symbols to VS Code (from the language server).
 *
 * See:
 *   https://code.visualstudio.com/docs/extensionAPI/vscode-api#DocumentSymbolProvider
 */
class LanguageServerSymbolProvider {
    constructor(languageClient) {
        this.languageClient = languageClient;
    }
    async provideDocumentSymbols(document, token) {
        const uri = document.uri;
        const args = { textDocument: { uri: uri.toString() } };
        const raw = await Promise.resolve(this.languageClient.sendRequest('textDocument/documentSymbol', args, token));
        const symbols = [];
        for (const tree of raw) {
            const flattened = flattenSymbolTree(tree, coc_nvim_1.Uri.parse(uri));
            symbols.push(...flattened);
        }
        return Promise.resolve(symbols);
    }
}
exports.LanguageServerSymbolProvider = LanguageServerSymbolProvider;
/**
 * Provides Python symbols to VS Code (from Jedi).
 *
 * See:
 *   https://code.visualstudio.com/docs/extensionAPI/vscode-api#DocumentSymbolProvider
 */
class JediSymbolProvider {
    constructor(serviceContainer, jediFactory, debounceTimeoutMs = 500) {
        this.jediFactory = jediFactory;
        this.debounceTimeoutMs = debounceTimeoutMs;
        this.debounceRequest = new Map();
        this.fs = serviceContainer.get(types_1.IFileSystem);
    }
    provideDocumentSymbols(document, token) {
        return this.provideDocumentSymbolsThrottled(document, token);
    }
    provideDocumentSymbolsThrottled(document, token) {
        const doc = coc_nvim_1.workspace.getDocument(document.uri);
        const key = `${coc_nvim_1.Uri.parse(document.uri).fsPath}`;
        if (this.debounceRequest.has(key)) {
            const item = this.debounceRequest.get(key);
            clearTimeout(item.timer);
            item.deferred.resolve([]);
        }
        const deferred = async_1.createDeferred();
        const filename = coc_nvim_1.Uri.parse(document.uri).fsPath;
        const timer = setTimeout(() => {
            if (token.isCancellationRequested) {
                return deferred.resolve([]);
            }
            const cmd = {
                command: proxy.CommandType.Symbols,
                fileName: filename,
                columnIndex: 0,
                lineIndex: 0
            };
            if (doc.dirty) {
                cmd.source = document.getText();
            }
            this.jediFactory.getJediProxyHandler(coc_nvim_1.Uri.parse(document.uri)).sendCommand(cmd, token)
                .then(data => this.parseData(document, data))
                .then(items => deferred.resolve(items))
                .catch(ex => deferred.reject(ex));
        }, this.debounceTimeoutMs);
        token.onCancellationRequested(() => {
            clearTimeout(timer);
            deferred.resolve([]);
            this.debounceRequest.delete(key);
        });
        // When a document is not saved on FS, we cannot uniquely identify it, so lets not debounce, but delay the symbol provider.
        if (!fs_1.default.existsSync(filename)) {
            this.debounceRequest.set(key, { timer, deferred });
        }
        return deferred.promise;
    }
    // This does not appear to be used anywhere currently...
    // tslint:disable-next-line:no-unused-variable
    // private provideDocumentSymbolsUnthrottled(document: TextDocument, token: CancellationToken): Thenable<SymbolInformation[]> {
    //     const filename = document.fileName
    //     const cmd: proxy.ICommand<proxy.ISymbolResult> = {
    //         command: proxy.CommandType.Symbols,
    //         fileName: filename,
    //         columnIndex: 0,
    //         lineIndex: 0
    //     }
    //     if (document.isDirty) {
    //         cmd.source = document.getText()
    //     }
    //     return this.jediFactory.getJediProxyHandler<proxy.ISymbolResult>(document.uri).sendCommandNonCancellableCommand(cmd, token)
    //         .then(data => this.parseData(document, data))
    // }
    parseData(document, data) {
        if (data) {
            const symbols = data.definitions.filter(sym => this.fs.arePathsSame(sym.fileName, coc_nvim_1.Uri.parse(document.uri).fsPath));
            return symbols.map(sym => {
                const range = vscode_languageserver_protocol_1.Range.create(sym.range.startLine, sym.range.startColumn, sym.range.endLine, sym.range.endColumn);
                const uri = coc_nvim_1.Uri.file(sym.fileName);
                const location = vscode_languageserver_protocol_1.Location.create(uri.toString(), range);
                return vscode_languageserver_protocol_1.SymbolInformation.create(sym.text, sym.kind, location.range, location.uri, sym.container);
            });
        }
        return [];
    }
}
exports.JediSymbolProvider = JediSymbolProvider;


/***/ }),
/* 205 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
var RegistryHive;
(function (RegistryHive) {
    RegistryHive[RegistryHive["HKCU"] = 0] = "HKCU";
    RegistryHive[RegistryHive["HKLM"] = 1] = "HKLM";
})(RegistryHive = exports.RegistryHive || (exports.RegistryHive = {}));
exports.IRegistry = Symbol('IRegistry');
exports.IPlatformService = Symbol('IPlatformService');
exports.IFileSystem = Symbol('IFileSystem');


/***/ }),
/* 206 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const codeBlockFormatProvider_1 = __webpack_require__(207);
const contracts_1 = __webpack_require__(208);
class BlockFormatProviders {
    constructor() {
        this.providers = [];
        const boundaryBlocks = [
            contracts_1.DEF_REGEX,
            contracts_1.ASYNC_DEF_REGEX,
            contracts_1.CLASS_REGEX
        ];
        const elseParentBlocks = [
            contracts_1.IF_REGEX,
            contracts_1.ELIF_REGEX,
            contracts_1.FOR_IN_REGEX,
            contracts_1.ASYNC_FOR_IN_REGEX,
            contracts_1.WHILE_REGEX,
            contracts_1.TRY_REGEX,
            contracts_1.EXCEPT_REGEX
        ];
        this.providers.push(new codeBlockFormatProvider_1.CodeBlockFormatProvider(contracts_1.ELSE_REGEX, elseParentBlocks, boundaryBlocks));
        const elifParentBlocks = [
            contracts_1.IF_REGEX,
            contracts_1.ELIF_REGEX
        ];
        this.providers.push(new codeBlockFormatProvider_1.CodeBlockFormatProvider(contracts_1.ELIF_REGEX, elifParentBlocks, boundaryBlocks));
        const exceptParentBlocks = [
            contracts_1.TRY_REGEX,
            contracts_1.EXCEPT_REGEX
        ];
        this.providers.push(new codeBlockFormatProvider_1.CodeBlockFormatProvider(contracts_1.EXCEPT_REGEX, exceptParentBlocks, boundaryBlocks));
        const finallyParentBlocks = [
            contracts_1.TRY_REGEX,
            contracts_1.EXCEPT_REGEX
        ];
        this.providers.push(new codeBlockFormatProvider_1.CodeBlockFormatProvider(contracts_1.FINALLY_REGEX, finallyParentBlocks, boundaryBlocks));
    }
    provideOnTypeFormattingEdits(document, position, ch, options, _token) {
        if (position.line === 0) {
            return [];
        }
        let doc = coc_nvim_1.workspace.getDocument(document.uri);
        if (!doc)
            return [];
        const currentLine = doc.getline(position.line);
        const prevousLine = doc.getline(position.line - 1);
        // We're only interested in cases where the current block is at the same indentation level as the previous line
        // E.g. if we have an if..else block, generally the else statement would be at the same level as the code in the if...
        if (currentLine.match(/^\s*/)[0] !== prevousLine.match(/^\s*/)[0]) {
            return [];
        }
        const provider = this.providers.find(p => p.canProvideEdits(currentLine));
        if (provider)
            return provider.provideEdits(document, position, ch, options, currentLine);
        return [];
    }
}
exports.BlockFormatProviders = BlockFormatProviders;


/***/ }),
/* 207 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const coc_nvim_1 = __webpack_require__(2);
class CodeBlockFormatProvider {
    constructor(blockRegExp, previousBlockRegExps, boundaryRegExps) {
        this.blockRegExp = blockRegExp;
        this.previousBlockRegExps = previousBlockRegExps;
        this.boundaryRegExps = boundaryRegExps;
    }
    canProvideEdits(line) {
        return this.blockRegExp.test(line);
    }
    provideEdits(document, position, _ch, options, line) {
        // We can have else for the following blocks:
        // if:
        // elif x:
        // for x in y:
        // while x:
        let doc = coc_nvim_1.workspace.getDocument(document.uri);
        // We need to find a block statement that is less than or equal to this statement block (but not greater)
        for (let lineNumber = position.line - 1; lineNumber >= 0; lineNumber -= 1) {
            const prevLineText = doc.getline(lineNumber);
            // Oops, we've reached a boundary (like the function or class definition)
            // Get out of here
            if (this.boundaryRegExps.some(value => value.test(prevLineText))) {
                return [];
            }
            const blockRegEx = this.previousBlockRegExps.find(value => value.test(prevLineText));
            if (!blockRegEx) {
                continue;
            }
            const startOfBlockInLine = prevLineText.match(/^\s*/)[0].length;
            if (startOfBlockInLine > line.match(/^\s*/)[0].length) {
                continue;
            }
            const startPosition = vscode_languageserver_protocol_1.Position.create(position.line, 0);
            const endPosition = vscode_languageserver_protocol_1.Position.create(position.line, line.match(/^\s*/)[0].length - startOfBlockInLine);
            if (startPosition.line == endPosition.line && startPosition.character == endPosition.character) {
                // current block cannot be at the same level as a preivous block
                continue;
            }
            if (options.insertSpaces) {
                return [
                    vscode_languageserver_protocol_1.TextEdit.del(vscode_languageserver_protocol_1.Range.create(startPosition, endPosition))
                ];
            }
            else {
                // Delete everything before the block and insert the same characters we have in the previous block
                const prefixOfPreviousBlock = prevLineText.substring(0, startOfBlockInLine);
                const startDeletePosition = vscode_languageserver_protocol_1.Position.create(position.line, 0);
                const endDeletePosition = vscode_languageserver_protocol_1.Position.create(position.line, line.match(/^\s*/)[0].length);
                return [
                    vscode_languageserver_protocol_1.TextEdit.del(vscode_languageserver_protocol_1.Range.create(startDeletePosition, endDeletePosition)),
                    vscode_languageserver_protocol_1.TextEdit.insert(startDeletePosition, prefixOfPreviousBlock)
                ];
            }
        }
        return [];
    }
}
exports.CodeBlockFormatProvider = CodeBlockFormatProvider;


/***/ }),
/* 208 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
class BlockRegEx {
    constructor(regEx, startWord) {
        this.regEx = regEx;
        this.startWord = startWord;
    }
    test(value) {
        // Clear the cache
        this.regEx.lastIndex = -1;
        return this.regEx.test(value);
    }
}
exports.BlockRegEx = BlockRegEx;
exports.IF_REGEX = new BlockRegEx(/^( |\t)*if +.*: *$/g, 'if');
exports.ELIF_REGEX = new BlockRegEx(/^( |\t)*elif +.*: *$/g, 'elif');
exports.ELSE_REGEX = new BlockRegEx(/^( |\t)*else *: *$/g, 'else');
exports.FOR_IN_REGEX = new BlockRegEx(/^( |\t)*for \w in .*: *$/g, 'for');
exports.ASYNC_FOR_IN_REGEX = new BlockRegEx(/^( |\t)*async *for \w in .*: *$/g, 'for');
exports.WHILE_REGEX = new BlockRegEx(/^( |\t)*while .*: *$/g, 'while');
exports.TRY_REGEX = new BlockRegEx(/^( |\t)*try *: *$/g, 'try');
exports.FINALLY_REGEX = new BlockRegEx(/^( |\t)*finally *: *$/g, 'finally');
exports.EXCEPT_REGEX = new BlockRegEx(/^( |\t)*except *\w* *(as)? *\w* *: *$/g, 'except');
exports.DEF_REGEX = new BlockRegEx(/^( |\t)*def \w *\(.*$/g, 'def');
exports.ASYNC_DEF_REGEX = new BlockRegEx(/^( |\t)*async *def \w *\(.*$/g, 'async');
exports.CLASS_REGEX = new BlockRegEx(/^( |\t)*class *\w* *.*: *$/g, 'class');


/***/ }),
/* 209 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
class OnTypeFormattingDispatcher {
    constructor(providers) {
        this.providers = providers;
    }
    provideOnTypeFormattingEdits(document, position, ch, options, cancellationToken) {
        const provider = this.providers[ch];
        if (provider) {
            return provider.provideOnTypeFormattingEdits(document, position, ch, options, cancellationToken);
        }
        return [];
    }
    getTriggerCharacters() {
        const keys = Object.keys(this.providers);
        keys.sort(); // Make output deterministic
        const first = keys.shift();
        if (first) {
            return {
                first,
                more: keys
            };
        }
        return undefined;
    }
}
exports.OnTypeFormattingDispatcher = OnTypeFormattingDispatcher;


/***/ }),
/* 210 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const coc_nvim_1 = __webpack_require__(2);
const lineFormatter_1 = __webpack_require__(211);
const types_1 = __webpack_require__(186);
const providerUtilities_1 = __webpack_require__(169);
class OnEnterFormatter {
    constructor() {
        this.formatter = new lineFormatter_1.LineFormatter();
    }
    provideOnTypeFormattingEdits(document, position, _ch, _options, _cancellationToken) {
        if (position.line === 0) {
            return [];
        }
        let doc = coc_nvim_1.workspace.getDocument(document.uri);
        // Check case when the entire line belongs to a comment or string
        const prevLine = doc.getline(position.line - 1);
        const range = vscode_languageserver_protocol_1.Range.create(position.line - 1, 0, position.line - 1, prevLine.length);
        const tokens = providerUtilities_1.getDocumentTokens(document, position, types_1.TokenizerMode.CommentsAndStrings);
        const lineStartTokenIndex = tokens.getItemContaining(document.offsetAt(range.start));
        const lineEndTokenIndex = tokens.getItemContaining(document.offsetAt(range.end));
        if (lineStartTokenIndex >= 0 && lineStartTokenIndex === lineEndTokenIndex) {
            const token = tokens.getItemAt(lineStartTokenIndex);
            if (token.type === types_1.TokenType.Semicolon || token.type === types_1.TokenType.String) {
                return [];
            }
        }
        const formatted = this.formatter.formatLine(document, position.line - 1);
        if (formatted === prevLine) {
            return [];
        }
        return [vscode_languageserver_protocol_1.TextEdit.replace(range, formatted)];
    }
}
exports.OnEnterFormatter = OnEnterFormatter;


/***/ }),
/* 211 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const braceCounter_1 = __webpack_require__(212);
const coc_nvim_1 = __webpack_require__(2);
const textBuilder_1 = __webpack_require__(213);
const textRangeCollection_1 = __webpack_require__(185);
const tokenizer_1 = __webpack_require__(170);
const types_1 = __webpack_require__(186);
const keywordsWithSpaceBeforeBrace = [
    'and', 'as', 'assert', 'await',
    'del',
    'except', 'elif',
    'for', 'from',
    'global',
    'if', 'import', 'in', 'is',
    'lambda',
    'nonlocal', 'not',
    'or',
    'raise', 'return',
    'while', 'with',
    'yield'
];
class LineFormatter {
    constructor() {
        this.builder = new textBuilder_1.TextBuilder();
        this.tokens = new textRangeCollection_1.TextRangeCollection([]);
        this.braceCounter = new braceCounter_1.BraceCounter();
        this.text = '';
        this.lineNumber = 0;
    }
    // tslint:disable-next-line:cyclomatic-complexity
    formatLine(document, lineNumber) {
        this.document = coc_nvim_1.workspace.getDocument(document.uri);
        this.lineNumber = lineNumber;
        this.text = coc_nvim_1.workspace.getDocument(document.uri).getline(lineNumber);
        this.tokens = new tokenizer_1.Tokenizer().tokenize(this.text);
        this.builder = new textBuilder_1.TextBuilder();
        this.braceCounter = new braceCounter_1.BraceCounter();
        if (this.tokens.count === 0) {
            return this.text;
        }
        const ws = this.text.substr(0, this.tokens.getItemAt(0).start);
        if (ws.length > 0) {
            this.builder.append(ws); // Preserve leading indentation.
        }
        for (let i = 0; i < this.tokens.count; i += 1) {
            const t = this.tokens.getItemAt(i);
            const prev = i > 0 ? this.tokens.getItemAt(i - 1) : undefined;
            const next = i < this.tokens.count - 1 ? this.tokens.getItemAt(i + 1) : undefined;
            switch (t.type) {
                case types_1.TokenType.Operator:
                    this.handleOperator(i);
                    break;
                case types_1.TokenType.Comma:
                    this.builder.append(',');
                    if (next && !this.isCloseBraceType(next.type) && next.type !== types_1.TokenType.Colon) {
                        this.builder.softAppendSpace();
                    }
                    break;
                case types_1.TokenType.Identifier:
                    if (prev && !this.isOpenBraceType(prev.type) && prev.type !== types_1.TokenType.Colon && prev.type !== types_1.TokenType.Operator) {
                        this.builder.softAppendSpace();
                    }
                    const id = this.text.substring(t.start, t.end);
                    this.builder.append(id);
                    if (this.isKeywordWithSpaceBeforeBrace(id) && next && this.isOpenBraceType(next.type)) {
                        // for x in ()
                        this.builder.softAppendSpace();
                    }
                    break;
                case types_1.TokenType.Colon:
                    // x: 1 if not in slice, x[1:y] if inside the slice.
                    this.builder.append(':');
                    if (!this.braceCounter.isOpened(types_1.TokenType.OpenBracket) && (next && next.type !== types_1.TokenType.Colon)) {
                        // Not inside opened [[ ... ] sequence.
                        this.builder.softAppendSpace();
                    }
                    break;
                case types_1.TokenType.Comment:
                    // Add 2 spaces before in-line comment per PEP guidelines.
                    if (prev) {
                        this.builder.softAppendSpace(2);
                    }
                    this.builder.append(this.text.substring(t.start, t.end));
                    break;
                case types_1.TokenType.Semicolon:
                    this.builder.append(';');
                    break;
                default:
                    this.handleOther(t, i);
                    break;
            }
        }
        return this.builder.getText();
    }
    // tslint:disable-next-line:cyclomatic-complexity
    handleOperator(index) {
        const t = this.tokens.getItemAt(index);
        const prev = index > 0 ? this.tokens.getItemAt(index - 1) : undefined;
        const opCode = this.text.charCodeAt(t.start);
        const next = index < this.tokens.count - 1 ? this.tokens.getItemAt(index + 1) : undefined;
        if (t.length === 1) {
            switch (opCode) {
                case 61 /* Equal */:
                    this.handleEqual(t, index);
                    return;
                case 46 /* Period */:
                    if (prev && this.isKeyword(prev, 'from')) {
                        this.builder.softAppendSpace();
                    }
                    this.builder.append('.');
                    if (next && this.isKeyword(next, 'import')) {
                        this.builder.softAppendSpace();
                    }
                    return;
                case 64 /* At */:
                    if (prev) {
                        // Binary case
                        this.builder.softAppendSpace();
                        this.builder.append('@');
                        this.builder.softAppendSpace();
                    }
                    else {
                        this.builder.append('@');
                    }
                    return;
                case 33 /* ExclamationMark */:
                    this.builder.append('!');
                    return;
                case 42 /* Asterisk */:
                    if (prev && this.isKeyword(prev, 'lambda')) {
                        this.builder.softAppendSpace();
                        this.builder.append('*');
                        return;
                    }
                    if (this.handleStarOperator(t, prev)) {
                        return;
                    }
                    break;
                default:
                    break;
            }
        }
        else if (t.length === 2) {
            if (this.text.charCodeAt(t.start) === 42 /* Asterisk */ && this.text.charCodeAt(t.start + 1) === 42 /* Asterisk */) {
                if (this.handleStarOperator(t, prev)) {
                    return;
                }
            }
        }
        // Do not append space if operator is preceded by '(' or ',' as in foo(**kwarg)
        if (prev && (this.isOpenBraceType(prev.type) || prev.type === types_1.TokenType.Comma)) {
            this.builder.append(this.text.substring(t.start, t.end));
            return;
        }
        this.builder.softAppendSpace();
        this.builder.append(this.text.substring(t.start, t.end));
        // Check unary case
        if (prev && prev.type === types_1.TokenType.Operator) {
            if (opCode === 45 /* Hyphen */ || opCode === 43 /* Plus */ || opCode === 126 /* Tilde */) {
                return;
            }
        }
        this.builder.softAppendSpace();
    }
    handleStarOperator(current, prev) {
        if (this.text.charCodeAt(current.start) === 42 /* Asterisk */ && this.text.charCodeAt(current.start + 1) === 42 /* Asterisk */) {
            if (!prev || (prev.type !== types_1.TokenType.Identifier && prev.type !== types_1.TokenType.Number)) {
                this.builder.append('**');
                return true;
            }
            if (prev && this.isKeyword(prev, 'lambda')) {
                this.builder.softAppendSpace();
                this.builder.append('**');
                return true;
            }
        }
        // Check previous line for the **/* condition
        const lastLine = this.getPreviousLineTokens();
        const lastToken = lastLine && lastLine.count > 0 ? lastLine.getItemAt(lastLine.count - 1) : undefined;
        if (lastToken && (this.isOpenBraceType(lastToken.type) || lastToken.type === types_1.TokenType.Comma)) {
            this.builder.append(this.text.substring(current.start, current.end));
            return true;
        }
        return false;
    }
    handleEqual(_t, index) {
        if (this.isMultipleStatements(index) && !this.braceCounter.isOpened(types_1.TokenType.OpenBrace)) {
            // x = 1; x, y = y, x
            this.builder.softAppendSpace();
            this.builder.append('=');
            this.builder.softAppendSpace();
            return;
        }
        // Check if this is = in function arguments. If so, do not add spaces around it.
        if (this.isEqualsInsideArguments(index)) {
            this.builder.append('=');
            return;
        }
        this.builder.softAppendSpace();
        this.builder.append('=');
        this.builder.softAppendSpace();
    }
    handleOther(t, index) {
        if (this.isBraceType(t.type)) {
            this.braceCounter.countBrace(t);
            this.builder.append(this.text.substring(t.start, t.end));
            return;
        }
        const prev = index > 0 ? this.tokens.getItemAt(index - 1) : undefined;
        if (prev && prev.length === 1 && this.text.charCodeAt(prev.start) === 61 /* Equal */ && this.isEqualsInsideArguments(index - 1)) {
            // Don't add space around = inside function arguments.
            this.builder.append(this.text.substring(t.start, t.end));
            return;
        }
        if (prev && (this.isOpenBraceType(prev.type) || prev.type === types_1.TokenType.Colon)) {
            // Don't insert space after (, [ or { .
            this.builder.append(this.text.substring(t.start, t.end));
            return;
        }
        if (t.type === types_1.TokenType.Number && prev && prev.type === types_1.TokenType.Operator && prev.length === 1 && this.text.charCodeAt(prev.start) === 126 /* Tilde */) {
            // Special case for ~ before numbers
            this.builder.append(this.text.substring(t.start, t.end));
            return;
        }
        if (t.type === types_1.TokenType.Unknown) {
            this.handleUnknown(t);
        }
        else {
            // In general, keep tokens separated.
            this.builder.softAppendSpace();
            this.builder.append(this.text.substring(t.start, t.end));
        }
    }
    handleUnknown(t) {
        const prevChar = t.start > 0 ? this.text.charCodeAt(t.start - 1) : 0;
        if (prevChar === 32 /* Space */ || prevChar === 9 /* Tab */) {
            this.builder.softAppendSpace();
        }
        this.builder.append(this.text.substring(t.start, t.end));
        const nextChar = t.end < this.text.length - 1 ? this.text.charCodeAt(t.end) : 0;
        if (nextChar === 32 /* Space */ || nextChar === 9 /* Tab */) {
            this.builder.softAppendSpace();
        }
    }
    // tslint:disable-next-line:cyclomatic-complexity
    isEqualsInsideArguments(index) {
        if (index < 1) {
            return false;
        }
        // We are looking for IDENT = ?
        const prev = this.tokens.getItemAt(index - 1);
        if (prev.type !== types_1.TokenType.Identifier) {
            return false;
        }
        if (index > 1 && this.tokens.getItemAt(index - 2).type === types_1.TokenType.Colon) {
            return false; // Type hint should have spaces around like foo(x: int = 1) per PEP 8
        }
        return this.isInsideFunctionArguments(this.tokens.getItemAt(index).start);
    }
    isOpenBraceType(type) {
        return type === types_1.TokenType.OpenBrace || type === types_1.TokenType.OpenBracket || type === types_1.TokenType.OpenCurly;
    }
    isCloseBraceType(type) {
        return type === types_1.TokenType.CloseBrace || type === types_1.TokenType.CloseBracket || type === types_1.TokenType.CloseCurly;
    }
    isBraceType(type) {
        return this.isOpenBraceType(type) || this.isCloseBraceType(type);
    }
    isMultipleStatements(index) {
        for (let i = index; i >= 0; i -= 1) {
            if (this.tokens.getItemAt(i).type === types_1.TokenType.Semicolon) {
                return true;
            }
        }
        return false;
    }
    isKeywordWithSpaceBeforeBrace(s) {
        return keywordsWithSpaceBeforeBrace.indexOf(s) >= 0;
    }
    isKeyword(t, keyword) {
        return t.type === types_1.TokenType.Identifier && t.length === keyword.length && this.text.substr(t.start, t.length) === keyword;
    }
    // tslint:disable-next-line:cyclomatic-complexity
    isInsideFunctionArguments(position) {
        if (!this.document) {
            return false; // unable to determine
        }
        // Walk up until beginning of the document or line with 'def IDENT(' or line ending with :
        // IDENT( by itself is not reliable since they can be nested in IDENT(IDENT(a), x=1)
        let start = vscode_languageserver_protocol_1.Position.create(0, 0);
        for (let i = this.lineNumber; i >= 0; i -= 1) {
            const line = this.document.getline(i);
            const lineTokens = new tokenizer_1.Tokenizer().tokenize(line);
            if (lineTokens.count === 0) {
                continue;
            }
            // 'def IDENT('
            const first = lineTokens.getItemAt(0);
            if (lineTokens.count >= 3 &&
                first.length === 3 && line.substr(first.start, first.length) === 'def' &&
                lineTokens.getItemAt(1).type === types_1.TokenType.Identifier &&
                lineTokens.getItemAt(2).type === types_1.TokenType.OpenBrace) {
                start = vscode_languageserver_protocol_1.Position.create(i, 0);
                break;
            }
            if (lineTokens.count > 0 && i < this.lineNumber) {
                // One of previous lines ends with :
                const last = lineTokens.getItemAt(lineTokens.count - 1);
                if (last.type === types_1.TokenType.Colon) {
                    start = vscode_languageserver_protocol_1.Position.create(i + 1, 0);
                    break;
                }
                else if (lineTokens.count > 1) {
                    const beforeLast = lineTokens.getItemAt(lineTokens.count - 2);
                    if (beforeLast.type === types_1.TokenType.Colon && last.type === types_1.TokenType.Comment) {
                        start = vscode_languageserver_protocol_1.Position.create(i + 1, 0);
                        break;
                    }
                }
            }
        }
        // Now tokenize from the nearest reasonable point
        const currentLine = this.document.getline(this.lineNumber);
        const text = this.document.textDocument.getText(vscode_languageserver_protocol_1.Range.create(start, vscode_languageserver_protocol_1.Position.create(this.lineNumber, currentLine.length)));
        const tokens = new tokenizer_1.Tokenizer().tokenize(text);
        // Translate position in the line being formatted to the position in the tokenized block
        position = this.document.textDocument.offsetAt(vscode_languageserver_protocol_1.Position.create(this.lineNumber, 0)) + position - this.document.textDocument.offsetAt(start);
        // Walk tokens locating narrowest function signature as in IDENT( | )
        let funcCallStartIndex = -1;
        let funcCallEndIndex = -1;
        for (let i = 0; i < tokens.count - 1; i += 1) {
            const t = tokens.getItemAt(i);
            if (t.type === types_1.TokenType.Identifier) {
                const next = tokens.getItemAt(i + 1);
                if (next.type === types_1.TokenType.OpenBrace && !this.isKeywordWithSpaceBeforeBrace(text.substr(t.start, t.length))) {
                    // We are at IDENT(, try and locate the closing brace
                    let closeBraceIndex = this.findClosingBrace(tokens, i + 1);
                    // Closing brace is not required in case construct is not yet terminated
                    closeBraceIndex = closeBraceIndex > 0 ? closeBraceIndex : tokens.count - 1;
                    // Are we in range?
                    if (position > next.start && position < tokens.getItemAt(closeBraceIndex).start) {
                        funcCallStartIndex = i;
                        funcCallEndIndex = closeBraceIndex;
                    }
                }
            }
        }
        // Did we find anything?
        if (funcCallStartIndex < 0) {
            // No? See if we are between 'lambda' and ':'
            for (let i = 0; i < tokens.count; i += 1) {
                const t = tokens.getItemAt(i);
                if (t.type === types_1.TokenType.Identifier && text.substr(t.start, t.length) === 'lambda') {
                    if (position < t.start) {
                        break; // Position is before the nearest 'lambda'
                    }
                    let colonIndex = this.findNearestColon(tokens, i + 1);
                    // Closing : is not required in case construct is not yet terminated
                    colonIndex = colonIndex > 0 ? colonIndex : tokens.count - 1;
                    if (position > t.start && position < tokens.getItemAt(colonIndex).start) {
                        funcCallStartIndex = i;
                        funcCallEndIndex = colonIndex;
                    }
                }
            }
        }
        return funcCallStartIndex >= 0 && funcCallEndIndex > 0;
    }
    findNearestColon(tokens, index) {
        for (let i = index; i < tokens.count; i += 1) {
            if (tokens.getItemAt(i).type === types_1.TokenType.Colon) {
                return i;
            }
        }
        return -1;
    }
    findClosingBrace(tokens, index) {
        const braceCounter = new braceCounter_1.BraceCounter();
        for (let i = index; i < tokens.count; i += 1) {
            const t = tokens.getItemAt(i);
            if (t.type === types_1.TokenType.OpenBrace || t.type === types_1.TokenType.CloseBrace) {
                braceCounter.countBrace(t);
            }
            if (braceCounter.count === 0) {
                return i;
            }
        }
        return -1;
    }
    getPreviousLineTokens() {
        if (!this.document || this.lineNumber === 0) {
            return undefined; // unable to determine
        }
        const line = this.document.getline(this.lineNumber - 1);
        return new tokenizer_1.Tokenizer().tokenize(line);
    }
}
exports.LineFormatter = LineFormatter;


/***/ }),
/* 212 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(186);
class BracePair {
    constructor(openBrace, closeBrace) {
        this.openBrace = openBrace;
        this.closeBrace = closeBrace;
    }
}
class Stack {
    constructor() {
        this.store = [];
    }
    push(val) {
        this.store.push(val);
    }
    pop() {
        return this.store.pop();
    }
    get length() {
        return this.store.length;
    }
}
class BraceCounter {
    constructor() {
        this.bracePairs = [
            new BracePair(types_1.TokenType.OpenBrace, types_1.TokenType.CloseBrace),
            new BracePair(types_1.TokenType.OpenBracket, types_1.TokenType.CloseBracket),
            new BracePair(types_1.TokenType.OpenCurly, types_1.TokenType.CloseCurly)
        ];
        this.braceStacks = [new Stack(), new Stack(), new Stack()];
    }
    get count() {
        let c = 0;
        for (const s of this.braceStacks) {
            c += s.length;
        }
        return c;
    }
    isOpened(type) {
        for (let i = 0; i < this.bracePairs.length; i += 1) {
            const pair = this.bracePairs[i];
            if (pair.openBrace === type || pair.closeBrace === type) {
                return this.braceStacks[i].length > 0;
            }
        }
        return false;
    }
    countBrace(brace) {
        for (let i = 0; i < this.bracePairs.length; i += 1) {
            const pair = this.bracePairs[i];
            if (pair.openBrace === brace.type) {
                this.braceStacks[i].push(brace);
                return true;
            }
            if (pair.closeBrace === brace.type) {
                if (this.braceStacks[i].length > 0) {
                    this.braceStacks[i].pop();
                }
                return true;
            }
        }
        return false;
    }
}
exports.BraceCounter = BraceCounter;


/***/ }),
/* 213 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const characters_1 = __webpack_require__(171);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
class TextBuilder {
    constructor() {
        this.segments = [];
    }
    getText() {
        if (this.isLastWhiteSpace()) {
            this.segments.pop();
        }
        return this.segments.join('');
    }
    softAppendSpace(count = 1) {
        if (this.segments.length === 0) {
            return;
        }
        if (this.isLastWhiteSpace()) {
            count = count - 1;
        }
        for (let i = 0; i < count; i += 1) {
            this.segments.push(' ');
        }
    }
    append(text) {
        this.segments.push(text);
    }
    isLastWhiteSpace() {
        return this.segments.length > 0 && this.isWhitespace(this.segments[this.segments.length - 1]);
    }
    isWhitespace(s) {
        for (let i = 0; i < s.length; i += 1) {
            if (!characters_1.isWhiteSpace(s.charCodeAt(i))) {
                return false;
            }
        }
        return true;
    }
}
exports.TextBuilder = TextBuilder;


/***/ }),
/* 214 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const helpers_1 = __webpack_require__(87);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(148);
const types_4 = __webpack_require__(75);
const generator_1 = __webpack_require__(215);
const provider_1 = __webpack_require__(216);
const MAX_NUMBER_OF_ATTEMPTS_TO_INSTALL_AND_BUILD = 2;
class WorkspaceSymbols {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.generators = [];
        this.outputChannel = this.serviceContainer.get(types_4.IOutputChannel, constants_1.STANDARD_OUTPUT_CHANNEL);
        this.commandMgr = this.serviceContainer.get(types_1.ICommandManager);
        this.fs = this.serviceContainer.get(types_2.IFileSystem);
        this.workspace = this.serviceContainer.get(types_1.IWorkspaceService);
        this.processFactory = this.serviceContainer.get(types_3.IProcessServiceFactory);
        this.appShell = this.serviceContainer.get(types_1.IApplicationShell);
        this.configurationService = this.serviceContainer.get(types_4.IConfigurationService);
        this.disposables = [];
        this.disposables.push(this.outputChannel);
        this.registerCommands();
        this.initializeGenerators();
        coc_nvim_1.languages.registerWorkspaceSymbolProvider(['python'], new provider_1.WorkspaceSymbolProvider(this.fs, this.commandMgr, this.generators));
        // this.disposables.push(this.workspace.onDidChangeWorkspaceFolders(() => this.initializeGenerators()))
    }
    dispose() {
        this.disposables.forEach(d => d.dispose());
    }
    initializeGenerators() {
        while (this.generators.length > 0) {
            const generator = this.generators.shift();
            generator.dispose();
        }
        if (Array.isArray(this.workspace.workspaceFolders)) {
            this.workspace.workspaceFolders.forEach(wkSpc => {
                this.generators.push(new generator_1.Generator(coc_nvim_1.Uri.parse(wkSpc.uri), this.outputChannel, this.appShell, this.fs, this.processFactory, this.configurationService));
            });
        }
    }
    registerCommands() {
        this.disposables.push(this.commandMgr.registerCommand(constants_1.Commands.Build_Workspace_Symbols, async (rebuild = true, token) => {
            const promises = this.buildWorkspaceSymbols(rebuild, token);
            return Promise.all(promises);
        }));
    }
    // tslint:disable-next-line:no-any
    buildWorkspaceSymbols(rebuild = true, token) {
        if (token && token.isCancellationRequested) {
            return [];
        }
        if (this.generators.length === 0) {
            return [];
        }
        let promptPromise;
        let promptResponse;
        return this.generators.map(async (generator) => {
            if (!generator.enabled) {
                return;
            }
            const exists = await this.fs.fileExists(generator.tagFilePath);
            // If file doesn't exist, then run the ctag generator,
            // or check if required to rebuild.
            if (!rebuild && exists) {
                return;
            }
            for (let counter = 0; counter < MAX_NUMBER_OF_ATTEMPTS_TO_INSTALL_AND_BUILD; counter += 1) {
                try {
                    await generator.generateWorkspaceTags();
                    return;
                }
                catch (error) {
                    if (!helpers_1.isNotInstalledError(error)) {
                        this.outputChannel.show();
                        return;
                    }
                }
                if (!token || token.isCancellationRequested) {
                    return;
                }
                // Display prompt once for all workspaces.
                if (promptPromise) {
                    promptResponse = await promptPromise;
                    continue;
                }
                else {
                    const installer = this.serviceContainer.get(types_4.IInstaller);
                    const uri = this.workspace.hasWorkspaceFolders ? coc_nvim_1.Uri.parse(this.workspace.workspaceFolders[0].uri) : undefined;
                    promptPromise = installer.promptToInstall(types_4.Product.ctags, uri);
                    promptResponse = await promptPromise;
                }
                if (promptResponse !== types_4.InstallerResponse.Installed || (!token || token.isCancellationRequested)) {
                    return;
                }
            }
        });
    }
}
exports.WorkspaceSymbols = WorkspaceSymbols;


/***/ }),
/* 215 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const path = __importStar(__webpack_require__(55));
const constants_1 = __webpack_require__(85);
class Generator {
    constructor(workspaceFolder, output, appShell, fs, processServiceFactory, configurationService) {
        this.workspaceFolder = workspaceFolder;
        this.output = output;
        this.appShell = appShell;
        this.fs = fs;
        this.processServiceFactory = processServiceFactory;
        this.disposables = [];
        this.optionsFile = path.join(constants_1.EXTENSION_ROOT_DIR, 'resources', 'ctagOptions');
        this.pythonSettings = configurationService.getSettings(workspaceFolder);
    }
    get tagFilePath() {
        return this.pythonSettings.workspaceSymbols.tagFilePath;
    }
    get enabled() {
        return this.pythonSettings.workspaceSymbols.enabled;
    }
    dispose() {
        this.disposables.forEach(d => d.dispose());
    }
    async generateWorkspaceTags() {
        if (!this.pythonSettings.workspaceSymbols.enabled) {
            return;
        }
        return this.generateTags({ directory: this.workspaceFolder.fsPath });
    }
    buildCmdArgs() {
        const exclusions = this.pythonSettings.workspaceSymbols.exclusionPatterns;
        const excludes = exclusions.length === 0 ? [] : exclusions.map(pattern => `--exclude=${pattern}`);
        return [`--options=${this.optionsFile}`, '--languages=Python'].concat(excludes);
    }
    async generateTags(source) {
        const tagFile = path.normalize(this.pythonSettings.workspaceSymbols.tagFilePath);
        const cmd = this.pythonSettings.workspaceSymbols.ctagsPath;
        const args = this.buildCmdArgs();
        let outputFile = tagFile;
        if (source.file && source.file.length > 0) {
            source.directory = path.dirname(source.file);
        }
        if (path.dirname(outputFile) === source.directory) {
            outputFile = path.basename(outputFile);
        }
        const outputDir = path.dirname(outputFile);
        if (!await this.fs.directoryExists(outputDir)) {
            await this.fs.createDirectory(outputDir);
        }
        args.push('-o', outputFile, '.');
        this.output.appendLine(`${'-'.repeat(10)}Generating Tags${'-'.repeat(10)}`);
        this.output.appendLine(`${cmd} ${args.join(' ')}`);
        const promise = new Promise(async (resolve, reject) => {
            try {
                const processService = await this.processServiceFactory.create();
                const result = processService.execObservable(cmd, args, { cwd: source.directory });
                let errorMsg = '';
                result.out.subscribe(output => {
                    if (output.source === 'stderr') {
                        errorMsg += output.out;
                    }
                    this.output.append(output.out);
                }, reject, () => {
                    if (errorMsg.length > 0) {
                        reject(new Error(errorMsg));
                    }
                    else {
                        resolve();
                    }
                });
            }
            catch (ex) {
                reject(ex);
            }
        });
        this.appShell.setStatusBarMessage('Generating Tags', promise);
        await promise;
    }
}
exports.Generator = Generator;


/***/ }),
/* 216 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable-next-line:no-var-requires no-require-imports
const flatten = __webpack_require__(217);
const coc_nvim_1 = __webpack_require__(2);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const constants_1 = __webpack_require__(84);
const parser_1 = __webpack_require__(224);
class WorkspaceSymbolProvider {
    constructor(fs, commands, tagGenerators) {
        this.fs = fs;
        this.commands = commands;
        this.tagGenerators = tagGenerators;
    }
    async provideWorkspaceSymbols(query, token) {
        if (this.tagGenerators.length === 0) {
            return [];
        }
        const generatorsWithTagFiles = await Promise.all(this.tagGenerators.map(generator => this.fs.fileExists(generator.tagFilePath)));
        if (generatorsWithTagFiles.filter(exists => exists).length !== this.tagGenerators.length) {
            await Promise.resolve(this.commands.executeCommand(constants_1.Commands.Build_Workspace_Symbols, true, token));
        }
        const generators = [];
        await Promise.all(this.tagGenerators.map(async (generator) => {
            if (await this.fs.fileExists(generator.tagFilePath)) {
                generators.push(generator);
            }
        }));
        const promises = generators
            .filter(generator => generator !== undefined && generator.enabled)
            .map(async (generator) => {
            // load tags
            const items = await parser_1.parseTags(generator.workspaceFolder.fsPath, generator.tagFilePath, query, token);
            if (!Array.isArray(items)) {
                return [];
            }
            // new SymbolInformation(
            // item.symbolName, item.symbolKind, '',
            // new Location(Uri.file(item.fileName), item.position)
            return items.map(item => {
                let range = vscode_languageserver_protocol_1.Range.create(item.position, { line: item.position.line, character: item.position.character + item.symbolName.length });
                return vscode_languageserver_protocol_1.SymbolInformation.create(item.symbolName, item.symbolKind, range, coc_nvim_1.Uri.file(item.fileName).toString());
            });
        });
        const symbols = await Promise.all(promises);
        return flatten(symbols);
    }
}
exports.WorkspaceSymbolProvider = WorkspaceSymbolProvider;


/***/ }),
/* 217 */
/***/ (function(module, exports, __webpack_require__) {

var baseFlatten = __webpack_require__(218);

/**
 * Flattens `array` a single level deep.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Array
 * @param {Array} array The array to flatten.
 * @returns {Array} Returns the new flattened array.
 * @example
 *
 * _.flatten([1, [2, [3, [4]], 5]]);
 * // => [1, 2, [3, [4]], 5]
 */
function flatten(array) {
  var length = array == null ? 0 : array.length;
  return length ? baseFlatten(array, 1) : [];
}

module.exports = flatten;


/***/ }),
/* 218 */
/***/ (function(module, exports, __webpack_require__) {

var arrayPush = __webpack_require__(219),
    isFlattenable = __webpack_require__(220);

/**
 * The base implementation of `_.flatten` with support for restricting flattening.
 *
 * @private
 * @param {Array} array The array to flatten.
 * @param {number} depth The maximum recursion depth.
 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
 * @param {Array} [result=[]] The initial result value.
 * @returns {Array} Returns the new flattened array.
 */
function baseFlatten(array, depth, predicate, isStrict, result) {
  var index = -1,
      length = array.length;

  predicate || (predicate = isFlattenable);
  result || (result = []);

  while (++index < length) {
    var value = array[index];
    if (depth > 0 && predicate(value)) {
      if (depth > 1) {
        // Recursively flatten arrays (susceptible to call stack limits).
        baseFlatten(value, depth - 1, predicate, isStrict, result);
      } else {
        arrayPush(result, value);
      }
    } else if (!isStrict) {
      result[result.length] = value;
    }
  }
  return result;
}

module.exports = baseFlatten;


/***/ }),
/* 219 */
/***/ (function(module, exports) {

/**
 * Appends the elements of `values` to `array`.
 *
 * @private
 * @param {Array} array The array to modify.
 * @param {Array} values The values to append.
 * @returns {Array} Returns `array`.
 */
function arrayPush(array, values) {
  var index = -1,
      length = values.length,
      offset = array.length;

  while (++index < length) {
    array[offset + index] = values[index];
  }
  return array;
}

module.exports = arrayPush;


/***/ }),
/* 220 */
/***/ (function(module, exports, __webpack_require__) {

var Symbol = __webpack_require__(161),
    isArguments = __webpack_require__(221),
    isArray = __webpack_require__(223);

/** Built-in value references. */
var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;

/**
 * Checks if `value` is a flattenable `arguments` object or array.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
 */
function isFlattenable(value) {
  return isArray(value) || isArguments(value) ||
    !!(spreadableSymbol && value && value[spreadableSymbol]);
}

module.exports = isFlattenable;


/***/ }),
/* 221 */
/***/ (function(module, exports, __webpack_require__) {

var baseIsArguments = __webpack_require__(222),
    isObjectLike = __webpack_require__(164);

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/** Built-in value references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable;

/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */
var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
    !propertyIsEnumerable.call(value, 'callee');
};

module.exports = isArguments;


/***/ }),
/* 222 */
/***/ (function(module, exports, __webpack_require__) {

var baseGetTag = __webpack_require__(160),
    isObjectLike = __webpack_require__(164);

/** `Object#toString` result references. */
var argsTag = '[object Arguments]';

/**
 * The base implementation of `_.isArguments`.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 */
function baseIsArguments(value) {
  return isObjectLike(value) && baseGetTag(value) == argsTag;
}

module.exports = baseIsArguments;


/***/ }),
/* 223 */
/***/ (function(module, exports) {

/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */
var isArray = Array.isArray;

module.exports = isArray;


/***/ }),
/* 224 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(__webpack_require__(55));
const fs_1 = __webpack_require__(225);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
// tslint:disable:no-require-imports no-var-requires no-suspicious-comment
// tslint:disable:no-any
// TODO: Turn these into imports.
const LineByLineReader = __webpack_require__(244);
const NamedRegexp = __webpack_require__(246);
const fuzzy = __webpack_require__(247);
const IsFileRegEx = /\tkind:file\tline:\d+$/g;
const LINE_REGEX = '(?<name>\\w+)\\t(?<file>.*)\\t\\/\\^(?<code>.*)\\$\\/;"\\tkind:(?<type>\\w+)\\tline:(?<line>\\d+)$';
function matchNamedRegEx(data, regex) {
    const compiledRegexp = NamedRegexp(regex, 'g');
    const rawMatch = compiledRegexp.exec(data);
    if (rawMatch !== null) {
        return rawMatch.groups();
    }
    return null;
}
exports.matchNamedRegEx = matchNamedRegEx;
const CTagKinMapping = new Map();
CTagKinMapping.set('_array', vscode_languageserver_protocol_1.SymbolKind.Array);
CTagKinMapping.set('_boolean', vscode_languageserver_protocol_1.SymbolKind.Boolean);
CTagKinMapping.set('_class', vscode_languageserver_protocol_1.SymbolKind.Class);
CTagKinMapping.set('_classes', vscode_languageserver_protocol_1.SymbolKind.Class);
CTagKinMapping.set('_constant', vscode_languageserver_protocol_1.SymbolKind.Constant);
CTagKinMapping.set('_constants', vscode_languageserver_protocol_1.SymbolKind.Constant);
CTagKinMapping.set('_constructor', vscode_languageserver_protocol_1.SymbolKind.Constructor);
CTagKinMapping.set('_enum', vscode_languageserver_protocol_1.SymbolKind.Enum);
CTagKinMapping.set('_enums', vscode_languageserver_protocol_1.SymbolKind.Enum);
CTagKinMapping.set('_enumeration', vscode_languageserver_protocol_1.SymbolKind.Enum);
CTagKinMapping.set('_enumerations', vscode_languageserver_protocol_1.SymbolKind.Enum);
CTagKinMapping.set('_field', vscode_languageserver_protocol_1.SymbolKind.Field);
CTagKinMapping.set('_fields', vscode_languageserver_protocol_1.SymbolKind.Field);
CTagKinMapping.set('_file', vscode_languageserver_protocol_1.SymbolKind.File);
CTagKinMapping.set('_files', vscode_languageserver_protocol_1.SymbolKind.File);
CTagKinMapping.set('_function', vscode_languageserver_protocol_1.SymbolKind.Function);
CTagKinMapping.set('_functions', vscode_languageserver_protocol_1.SymbolKind.Function);
CTagKinMapping.set('_member', vscode_languageserver_protocol_1.SymbolKind.Function);
CTagKinMapping.set('_interface', vscode_languageserver_protocol_1.SymbolKind.Interface);
CTagKinMapping.set('_interfaces', vscode_languageserver_protocol_1.SymbolKind.Interface);
CTagKinMapping.set('_key', vscode_languageserver_protocol_1.SymbolKind.Key);
CTagKinMapping.set('_keys', vscode_languageserver_protocol_1.SymbolKind.Key);
CTagKinMapping.set('_method', vscode_languageserver_protocol_1.SymbolKind.Method);
CTagKinMapping.set('_methods', vscode_languageserver_protocol_1.SymbolKind.Method);
CTagKinMapping.set('_module', vscode_languageserver_protocol_1.SymbolKind.Module);
CTagKinMapping.set('_modules', vscode_languageserver_protocol_1.SymbolKind.Module);
CTagKinMapping.set('_namespace', vscode_languageserver_protocol_1.SymbolKind.Namespace);
CTagKinMapping.set('_namespaces', vscode_languageserver_protocol_1.SymbolKind.Namespace);
CTagKinMapping.set('_number', vscode_languageserver_protocol_1.SymbolKind.Number);
CTagKinMapping.set('_numbers', vscode_languageserver_protocol_1.SymbolKind.Number);
CTagKinMapping.set('_null', vscode_languageserver_protocol_1.SymbolKind.Null);
CTagKinMapping.set('_object', vscode_languageserver_protocol_1.SymbolKind.Object);
CTagKinMapping.set('_package', vscode_languageserver_protocol_1.SymbolKind.Package);
CTagKinMapping.set('_packages', vscode_languageserver_protocol_1.SymbolKind.Package);
CTagKinMapping.set('_property', vscode_languageserver_protocol_1.SymbolKind.Property);
CTagKinMapping.set('_properties', vscode_languageserver_protocol_1.SymbolKind.Property);
CTagKinMapping.set('_objects', vscode_languageserver_protocol_1.SymbolKind.Object);
CTagKinMapping.set('_string', vscode_languageserver_protocol_1.SymbolKind.String);
CTagKinMapping.set('_variable', vscode_languageserver_protocol_1.SymbolKind.Variable);
CTagKinMapping.set('_variables', vscode_languageserver_protocol_1.SymbolKind.Variable);
CTagKinMapping.set('_projects', vscode_languageserver_protocol_1.SymbolKind.Package);
CTagKinMapping.set('_defines', vscode_languageserver_protocol_1.SymbolKind.Module);
CTagKinMapping.set('_labels', vscode_languageserver_protocol_1.SymbolKind.Interface);
CTagKinMapping.set('_macros', vscode_languageserver_protocol_1.SymbolKind.Function);
CTagKinMapping.set('_types (structs and records)', vscode_languageserver_protocol_1.SymbolKind.Class);
CTagKinMapping.set('_subroutine', vscode_languageserver_protocol_1.SymbolKind.Method);
CTagKinMapping.set('_subroutines', vscode_languageserver_protocol_1.SymbolKind.Method);
CTagKinMapping.set('_types', vscode_languageserver_protocol_1.SymbolKind.Class);
CTagKinMapping.set('_programs', vscode_languageserver_protocol_1.SymbolKind.Class);
CTagKinMapping.set('_Object\'s method', vscode_languageserver_protocol_1.SymbolKind.Method);
CTagKinMapping.set('_Module or functor', vscode_languageserver_protocol_1.SymbolKind.Module);
CTagKinMapping.set('_Global variable', vscode_languageserver_protocol_1.SymbolKind.Variable);
CTagKinMapping.set('_Type name', vscode_languageserver_protocol_1.SymbolKind.Class);
CTagKinMapping.set('_A function', vscode_languageserver_protocol_1.SymbolKind.Function);
CTagKinMapping.set('_A constructor', vscode_languageserver_protocol_1.SymbolKind.Constructor);
CTagKinMapping.set('_An exception', vscode_languageserver_protocol_1.SymbolKind.Class);
CTagKinMapping.set('_A \'structure\' field', vscode_languageserver_protocol_1.SymbolKind.Field);
CTagKinMapping.set('_procedure', vscode_languageserver_protocol_1.SymbolKind.Function);
CTagKinMapping.set('_procedures', vscode_languageserver_protocol_1.SymbolKind.Function);
CTagKinMapping.set('_constant definitions', vscode_languageserver_protocol_1.SymbolKind.Constant);
CTagKinMapping.set('_javascript functions', vscode_languageserver_protocol_1.SymbolKind.Function);
CTagKinMapping.set('_singleton methods', vscode_languageserver_protocol_1.SymbolKind.Method);
const newValuesAndKeys = {};
CTagKinMapping.forEach((value, key) => {
    newValuesAndKeys[key.substring(1)] = value;
});
Object.keys(newValuesAndKeys).forEach(key => {
    CTagKinMapping.set(key, newValuesAndKeys[key]);
});
function parseTags(workspaceFolder, tagFile, query, token) {
    return fs_1.fsExistsAsync(tagFile).then(exists => {
        if (!exists) {
            return Promise.resolve([]);
        }
        return new Promise((resolve, reject) => {
            const lr = new LineByLineReader(tagFile);
            let lineNumber = 0;
            const tags = [];
            lr.on('error', (err) => {
                reject(err);
            });
            lr.on('line', (line) => {
                lineNumber = lineNumber + 1;
                if (token.isCancellationRequested) {
                    lr.close();
                    return;
                }
                const tag = parseTagsLine(workspaceFolder, line, query);
                if (tag) {
                    tags.push(tag);
                }
                if (tags.length >= 100) {
                    lr.close();
                }
            });
            lr.on('end', () => {
                resolve(tags);
            });
        });
    });
}
exports.parseTags = parseTags;
function parseTagsLine(workspaceFolder, line, searchPattern) {
    if (IsFileRegEx.test(line)) {
        return;
    }
    const match = matchNamedRegEx(line, LINE_REGEX);
    if (!match) {
        return;
    }
    if (!fuzzy.test(searchPattern, match.name)) {
        return;
    }
    let file = match.file;
    if (!path_1.default.isAbsolute(file)) {
        file = path_1.default.resolve(workspaceFolder, '.vscode', file);
    }
    const symbolKind = CTagKinMapping.get(match.type) || vscode_languageserver_protocol_1.SymbolKind.Null;
    return {
        fileName: file,
        code: match.code,
        position: vscode_languageserver_protocol_1.Position.create(Number(match.line) - 1, 0),
        symbolName: match.name,
        symbolKind
    };
}


/***/ }),
/* 225 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = __importDefault(__webpack_require__(94));
const path_1 = __importDefault(__webpack_require__(55));
const tmp_1 = __importDefault(__webpack_require__(226));
function fsExistsAsync(filePath) {
    return new Promise(resolve => {
        fs_1.default.exists(filePath, exists => {
            return resolve(exists);
        });
    });
}
exports.fsExistsAsync = fsExistsAsync;
function fsReaddirAsync(root) {
    return new Promise(resolve => {
        // Now look for Interpreters in this directory
        fs_1.default.readdir(root, (err, subDirs) => {
            if (err) {
                return resolve([]);
            }
            resolve(subDirs.map(subDir => path_1.default.join(root, subDir)));
        });
    });
}
exports.fsReaddirAsync = fsReaddirAsync;
function getSubDirectories(rootDir) {
    return new Promise(resolve => {
        fs_1.default.readdir(rootDir, (error, files) => {
            if (error) {
                return resolve([]);
            }
            const subDirs = [];
            files.forEach(name => {
                const fullPath = path_1.default.join(rootDir, name);
                try {
                    if (fs_1.default.statSync(fullPath).isDirectory()) {
                        subDirs.push(fullPath);
                    }
                }
                // tslint:disable-next-line:no-empty one-line
                catch (ex) { }
            });
            resolve(subDirs);
        });
    });
}
exports.getSubDirectories = getSubDirectories;
function createTemporaryFile(extension, temporaryDirectory) {
    // tslint:disable-next-line:no-any
    const options = { postfix: extension };
    if (temporaryDirectory) {
        options.dir = temporaryDirectory;
    }
    return new Promise((resolve, reject) => {
        tmp_1.default.file(options, (err, tmpFile, _fd, cleanupCallback) => {
            if (err) {
                return reject(err);
            }
            resolve({ filePath: tmpFile, cleanupCallback });
        });
    });
}
exports.createTemporaryFile = createTemporaryFile;


/***/ }),
/* 226 */
/***/ (function(module, exports, __webpack_require__) {

/*!
 * Tmp
 *
 * Copyright (c) 2011-2017 KARASZI Istvan <github@spam.raszi.hu>
 *
 * MIT Licensed
 */

/*
 * Module dependencies.
 */
const fs = __webpack_require__(94);
const os = __webpack_require__(56);
const path = __webpack_require__(55);
const crypto = __webpack_require__(57);
const _c = fs.constants && os.constants ?
  { fs: fs.constants, os: os.constants } :
  process.binding('constants');
const rimraf = __webpack_require__(227);

/*
 * The working inner variables.
 */
const
  // the random characters to choose from
  RANDOM_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',

  TEMPLATE_PATTERN = /XXXXXX/,

  DEFAULT_TRIES = 3,

  CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR),

  EBADF = _c.EBADF || _c.os.errno.EBADF,
  ENOENT = _c.ENOENT || _c.os.errno.ENOENT,

  DIR_MODE = 448 /* 0o700 */,
  FILE_MODE = 384 /* 0o600 */,

  EXIT = 'exit',

  SIGINT = 'SIGINT',

  // this will hold the objects need to be removed on exit
  _removeObjects = [];

var
  _gracefulCleanup = false;

/**
 * Random name generator based on crypto.
 * Adapted from http://blog.tompawlak.org/how-to-generate-random-values-nodejs-javascript
 *
 * @param {number} howMany
 * @returns {string} the generated random name
 * @private
 */
function _randomChars(howMany) {
  var
    value = [],
    rnd = null;

  // make sure that we do not fail because we ran out of entropy
  try {
    rnd = crypto.randomBytes(howMany);
  } catch (e) {
    rnd = crypto.pseudoRandomBytes(howMany);
  }

  for (var i = 0; i < howMany; i++) {
    value.push(RANDOM_CHARS[rnd[i] % RANDOM_CHARS.length]);
  }

  return value.join('');
}

/**
 * Checks whether the `obj` parameter is defined or not.
 *
 * @param {Object} obj
 * @returns {boolean} true if the object is undefined
 * @private
 */
function _isUndefined(obj) {
  return typeof obj === 'undefined';
}

/**
 * Parses the function arguments.
 *
 * This function helps to have optional arguments.
 *
 * @param {(Options|Function)} options
 * @param {Function} callback
 * @returns {Array} parsed arguments
 * @private
 */
function _parseArguments(options, callback) {
  /* istanbul ignore else */
  if (typeof options === 'function') {
    return [{}, options];
  }

  /* istanbul ignore else */
  if (_isUndefined(options)) {
    return [{}, callback];
  }

  return [options, callback];
}

/**
 * Generates a new temporary name.
 *
 * @param {Object} opts
 * @returns {string} the new random name according to opts
 * @private
 */
function _generateTmpName(opts) {

  const tmpDir = _getTmpDir();

  // fail early on missing tmp dir
  if (isBlank(opts.dir) && isBlank(tmpDir)) {
    throw new Error('No tmp dir specified');
  }

  /* istanbul ignore else */
  if (!isBlank(opts.name)) {
    return path.join(opts.dir || tmpDir, opts.name);
  }

  // mkstemps like template
  // opts.template has already been guarded in tmpName() below
  /* istanbul ignore else */
  if (opts.template) {
    var template = opts.template;
    // make sure that we prepend the tmp path if none was given
    /* istanbul ignore else */
    if (path.basename(template) === template)
      template = path.join(opts.dir || tmpDir, template);
    return template.replace(TEMPLATE_PATTERN, _randomChars(6));
  }

  // prefix and postfix
  const name = [
    (isBlank(opts.prefix) ? 'tmp-' : opts.prefix),
    process.pid,
    _randomChars(12),
    (opts.postfix ? opts.postfix : '')
  ].join('');

  return path.join(opts.dir || tmpDir, name);
}

/**
 * Gets a temporary file name.
 *
 * @param {(Options|tmpNameCallback)} options options or callback
 * @param {?tmpNameCallback} callback the callback function
 */
function tmpName(options, callback) {
  var
    args = _parseArguments(options, callback),
    opts = args[0],
    cb = args[1],
    tries = !isBlank(opts.name) ? 1 : opts.tries || DEFAULT_TRIES;

  /* istanbul ignore else */
  if (isNaN(tries) || tries < 0)
    return cb(new Error('Invalid tries'));

  /* istanbul ignore else */
  if (opts.template && !opts.template.match(TEMPLATE_PATTERN))
    return cb(new Error('Invalid template provided'));

  (function _getUniqueName() {
    try {
      const name = _generateTmpName(opts);

      // check whether the path exists then retry if needed
      fs.stat(name, function (err) {
        /* istanbul ignore else */
        if (!err) {
          /* istanbul ignore else */
          if (tries-- > 0) return _getUniqueName();

          return cb(new Error('Could not get a unique tmp filename, max tries reached ' + name));
        }

        cb(null, name);
      });
    } catch (err) {
      cb(err);
    }
  }());
}

/**
 * Synchronous version of tmpName.
 *
 * @param {Object} options
 * @returns {string} the generated random name
 * @throws {Error} if the options are invalid or could not generate a filename
 */
function tmpNameSync(options) {
  var
    args = _parseArguments(options),
    opts = args[0],
    tries = !isBlank(opts.name) ? 1 : opts.tries || DEFAULT_TRIES;

  /* istanbul ignore else */
  if (isNaN(tries) || tries < 0)
    throw new Error('Invalid tries');

  /* istanbul ignore else */
  if (opts.template && !opts.template.match(TEMPLATE_PATTERN))
    throw new Error('Invalid template provided');

  do {
    const name = _generateTmpName(opts);
    try {
      fs.statSync(name);
    } catch (e) {
      return name;
    }
  } while (tries-- > 0);

  throw new Error('Could not get a unique tmp filename, max tries reached');
}

/**
 * Creates and opens a temporary file.
 *
 * @param {(Options|fileCallback)} options the config options or the callback function
 * @param {?fileCallback} callback
 */
function file(options, callback) {
  var
    args = _parseArguments(options, callback),
    opts = args[0],
    cb = args[1];

  // gets a temporary filename
  tmpName(opts, function _tmpNameCreated(err, name) {
    /* istanbul ignore else */
    if (err) return cb(err);

    // create and open the file
    fs.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err, fd) {
      /* istanbul ignore else */
      if (err) return cb(err);

      if (opts.discardDescriptor) {
        return fs.close(fd, function _discardCallback(err) {
          /* istanbul ignore else */
          if (err) {
            // Low probability, and the file exists, so this could be
            // ignored.  If it isn't we certainly need to unlink the
            // file, and if that fails too its error is more
            // important.
            try {
              fs.unlinkSync(name);
            } catch (e) {
              if (!isENOENT(e)) {
                err = e;
              }
            }
            return cb(err);
          }
          cb(null, name, undefined, _prepareTmpFileRemoveCallback(name, -1, opts));
        });
      }
      /* istanbul ignore else */
      if (opts.detachDescriptor) {
        return cb(null, name, fd, _prepareTmpFileRemoveCallback(name, -1, opts));
      }
      cb(null, name, fd, _prepareTmpFileRemoveCallback(name, fd, opts));
    });
  });
}

/**
 * Synchronous version of file.
 *
 * @param {Options} options
 * @returns {FileSyncObject} object consists of name, fd and removeCallback
 * @throws {Error} if cannot create a file
 */
function fileSync(options) {
  var
    args = _parseArguments(options),
    opts = args[0];

  const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor;
  const name = tmpNameSync(opts);
  var fd = fs.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);
  /* istanbul ignore else */
  if (opts.discardDescriptor) {
    fs.closeSync(fd);
    fd = undefined;
  }

  return {
    name: name,
    fd: fd,
    removeCallback: _prepareTmpFileRemoveCallback(name, discardOrDetachDescriptor ? -1 : fd, opts)
  };
}

/**
 * Creates a temporary directory.
 *
 * @param {(Options|dirCallback)} options the options or the callback function
 * @param {?dirCallback} callback
 */
function dir(options, callback) {
  var
    args = _parseArguments(options, callback),
    opts = args[0],
    cb = args[1];

  // gets a temporary filename
  tmpName(opts, function _tmpNameCreated(err, name) {
    /* istanbul ignore else */
    if (err) return cb(err);

    // create the directory
    fs.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err) {
      /* istanbul ignore else */
      if (err) return cb(err);

      cb(null, name, _prepareTmpDirRemoveCallback(name, opts));
    });
  });
}

/**
 * Synchronous version of dir.
 *
 * @param {Options} options
 * @returns {DirSyncObject} object consists of name and removeCallback
 * @throws {Error} if it cannot create a directory
 */
function dirSync(options) {
  var
    args = _parseArguments(options),
    opts = args[0];

  const name = tmpNameSync(opts);
  fs.mkdirSync(name, opts.mode || DIR_MODE);

  return {
    name: name,
    removeCallback: _prepareTmpDirRemoveCallback(name, opts)
  };
}

/**
 * Removes files asynchronously.
 *
 * @param {Object} fdPath
 * @param {Function} next
 * @private
 */
function _removeFileAsync(fdPath, next) {
  const _handler = function (err) {
    if (err && !isENOENT(err)) {
      // reraise any unanticipated error
      return next(err);
    }
    next();
  }

  if (0 <= fdPath[0])
    fs.close(fdPath[0], function (err) {
      fs.unlink(fdPath[1], _handler);
    });
  else fs.unlink(fdPath[1], _handler);
}

/**
 * Removes files synchronously.
 *
 * @param {Object} fdPath
 * @private
 */
function _removeFileSync(fdPath) {
  try {
    if (0 <= fdPath[0]) fs.closeSync(fdPath[0]);
  } catch (e) {
    // reraise any unanticipated error
    if (!isEBADF(e) && !isENOENT(e)) throw e;
  } finally {
    try {
      fs.unlinkSync(fdPath[1]);
    }
    catch (e) {
      // reraise any unanticipated error
      if (!isENOENT(e)) throw e;
    }
  }
}

/**
 * Prepares the callback for removal of the temporary file.
 *
 * @param {string} name the path of the file
 * @param {number} fd file descriptor
 * @param {Object} opts
 * @returns {fileCallback}
 * @private
 */
function _prepareTmpFileRemoveCallback(name, fd, opts) {
  const removeCallbackSync = _prepareRemoveCallback(_removeFileSync, [fd, name]);
  const removeCallback = _prepareRemoveCallback(_removeFileAsync, [fd, name], removeCallbackSync);

  if (!opts.keep) _removeObjects.unshift(removeCallbackSync);

  return removeCallback;
}

/**
 * Simple wrapper for rimraf.
 *
 * @param {string} dirPath
 * @param {Function} next
 * @private
 */
function _rimrafRemoveDirWrapper(dirPath, next) {
  rimraf(dirPath, next);
}

/**
 * Simple wrapper for rimraf.sync.
 *
 * @param {string} dirPath
 * @private
 */
function _rimrafRemoveDirSyncWrapper(dirPath, next) {
  try {
    return next(null, rimraf.sync(dirPath));
  } catch (err) {
    return next(err);
  }
}

/**
 * Prepares the callback for removal of the temporary directory.
 *
 * @param {string} name
 * @param {Object} opts
 * @returns {Function} the callback
 * @private
 */
function _prepareTmpDirRemoveCallback(name, opts) {
  const removeFunction = opts.unsafeCleanup ? _rimrafRemoveDirWrapper : fs.rmdir.bind(fs);
  const removeFunctionSync = opts.unsafeCleanup ? _rimrafRemoveDirSyncWrapper : fs.rmdirSync.bind(fs);
  const removeCallbackSync = _prepareRemoveCallback(removeFunctionSync, name);
  const removeCallback = _prepareRemoveCallback(removeFunction, name, removeCallbackSync);
  if (!opts.keep) _removeObjects.unshift(removeCallbackSync);

  return removeCallback;
}

/**
 * Creates a guarded function wrapping the removeFunction call.
 *
 * @param {Function} removeFunction
 * @param {Object} arg
 * @returns {Function}
 * @private
 */
function _prepareRemoveCallback(removeFunction, arg, cleanupCallbackSync) {
  var called = false;

  return function _cleanupCallback(next) {
    next = next || function () {};
    if (!called) {
      const toRemove = cleanupCallbackSync || _cleanupCallback;
      const index = _removeObjects.indexOf(toRemove);
      /* istanbul ignore else */
      if (index >= 0) _removeObjects.splice(index, 1);

      called = true;
      // sync?
      if (removeFunction.length === 1) {
        try {
          removeFunction(arg);
          return next(null);
        }
        catch (err) {
          // if no next is provided and since we are
          // in silent cleanup mode on process exit,
          // we will ignore the error
          return next(err);
        }
      } else return removeFunction(arg, next);
    } else return next(new Error('cleanup callback has already been called'));
  };
}

/**
 * The garbage collector.
 *
 * @private
 */
function _garbageCollector() {
  /* istanbul ignore else */
  if (!_gracefulCleanup) return;

  // the function being called removes itself from _removeObjects,
  // loop until _removeObjects is empty
  while (_removeObjects.length) {
    try {
      _removeObjects[0]();
    } catch (e) {
      // already removed?
    }
  }
}

/**
 * Helper for testing against EBADF to compensate changes made to Node 7.x under Windows.
 */
function isEBADF(error) {
  return isExpectedError(error, -EBADF, 'EBADF');
}

/**
 * Helper for testing against ENOENT to compensate changes made to Node 7.x under Windows.
 */
function isENOENT(error) {
  return isExpectedError(error, -ENOENT, 'ENOENT');
}

/**
 * Helper to determine whether the expected error code matches the actual code and errno,
 * which will differ between the supported node versions.
 *
 * - Node >= 7.0:
 *   error.code {string}
 *   error.errno {string|number} any numerical value will be negated
 *
 * - Node >= 6.0 < 7.0:
 *   error.code {string}
 *   error.errno {number} negated
 *
 * - Node >= 4.0 < 6.0: introduces SystemError
 *   error.code {string}
 *   error.errno {number} negated
 *
 * - Node >= 0.10 < 4.0:
 *   error.code {number} negated
 *   error.errno n/a
 */
function isExpectedError(error, code, errno) {
  return error.code === code || error.code === errno;
}

/**
 * Helper which determines whether a string s is blank, that is undefined, or empty or null.
 *
 * @private
 * @param {string} s
 * @returns {Boolean} true whether the string s is blank, false otherwise
 */
function isBlank(s) {
  return s === null || s === undefined || !s.trim();
}

/**
 * Sets the graceful cleanup.
 */
function setGracefulCleanup() {
  _gracefulCleanup = true;
}

/**
 * Returns the currently configured tmp dir from os.tmpdir().
 *
 * @private
 * @returns {string} the currently configured tmp dir
 */
function _getTmpDir() {
  return os.tmpdir();
}

/**
 * If there are multiple different versions of tmp in place, make sure that
 * we recognize the old listeners.
 *
 * @param {Function} listener
 * @private
 * @returns {Boolean} true whether listener is a legacy listener
 */
function _is_legacy_listener(listener) {
  return (listener.name === '_exit' || listener.name === '_uncaughtExceptionThrown')
    && listener.toString().indexOf('_garbageCollector();') > -1;
}

/**
 * Safely install SIGINT listener.
 *
 * NOTE: this will only work on OSX and Linux.
 *
 * @private
 */
function _safely_install_sigint_listener() {

  const listeners = process.listeners(SIGINT);
  const existingListeners = [];
  for (let i = 0, length = listeners.length; i < length; i++) {
    const lstnr = listeners[i];
    /* istanbul ignore else */
    if (lstnr.name === '_tmp$sigint_listener') {
      existingListeners.push(lstnr);
      process.removeListener(SIGINT, lstnr);
    }
  }
  process.on(SIGINT, function _tmp$sigint_listener(doExit) {
    for (let i = 0, length = existingListeners.length; i < length; i++) {
      // let the existing listener do the garbage collection (e.g. jest sandbox)
      try {
        existingListeners[i](false);
      } catch (err) {
        // ignore
      }
    }
    try {
      // force the garbage collector even it is called again in the exit listener
      _garbageCollector();
    } finally {
      if (!!doExit) {
        process.exit(0);
      }
    }
  });
}

/**
 * Safely install process exit listener.
 *
 * @private
 */
function _safely_install_exit_listener() {
  const listeners = process.listeners(EXIT);

  // collect any existing listeners
  const existingListeners = [];
  for (let i = 0, length = listeners.length; i < length; i++) {
    const lstnr = listeners[i];
    /* istanbul ignore else */
    // TODO: remove support for legacy listeners once release 1.0.0 is out
    if (lstnr.name === '_tmp$safe_listener' || _is_legacy_listener(lstnr)) {
      // we must forget about the uncaughtException listener, hopefully it is ours
      if (lstnr.name !== '_uncaughtExceptionThrown') {
        existingListeners.push(lstnr);
      }
      process.removeListener(EXIT, lstnr);
    }
  }
  // TODO: what was the data parameter good for?
  process.addListener(EXIT, function _tmp$safe_listener(data) {
    for (let i = 0, length = existingListeners.length; i < length; i++) {
      // let the existing listener do the garbage collection (e.g. jest sandbox)
      try {
        existingListeners[i](data);
      } catch (err) {
        // ignore
      }
    }
    _garbageCollector();
  });
}

_safely_install_exit_listener();
_safely_install_sigint_listener();

/**
 * Configuration options.
 *
 * @typedef {Object} Options
 * @property {?number} tries the number of tries before give up the name generation
 * @property {?string} template the "mkstemp" like filename template
 * @property {?string} name fix name
 * @property {?string} dir the tmp directory to use
 * @property {?string} prefix prefix for the generated name
 * @property {?string} postfix postfix for the generated name
 * @property {?boolean} unsafeCleanup recursively removes the created temporary directory, even when it's not empty
 */

/**
 * @typedef {Object} FileSyncObject
 * @property {string} name the name of the file
 * @property {string} fd the file descriptor
 * @property {fileCallback} removeCallback the callback function to remove the file
 */

/**
 * @typedef {Object} DirSyncObject
 * @property {string} name the name of the directory
 * @property {fileCallback} removeCallback the callback function to remove the directory
 */

/**
 * @callback tmpNameCallback
 * @param {?Error} err the error object if anything goes wrong
 * @param {string} name the temporary file name
 */

/**
 * @callback fileCallback
 * @param {?Error} err the error object if anything goes wrong
 * @param {string} name the temporary file name
 * @param {number} fd the file descriptor
 * @param {cleanupCallback} fn the cleanup callback function
 */

/**
 * @callback dirCallback
 * @param {?Error} err the error object if anything goes wrong
 * @param {string} name the temporary file name
 * @param {cleanupCallback} fn the cleanup callback function
 */

/**
 * Removes the temporary created file or directory.
 *
 * @callback cleanupCallback
 * @param {simpleCallback} [next] function to call after entry was removed
 */

/**
 * Callback function for function composition.
 * @see {@link https://github.com/raszi/node-tmp/issues/57|raszi/node-tmp#57}
 *
 * @callback simpleCallback
 */

// exporting all the needed methods

// evaluate os.tmpdir() lazily, mainly for simplifying testing but it also will
// allow users to reconfigure the temporary directory
Object.defineProperty(module.exports, 'tmpdir', {
  enumerable: true,
  configurable: false,
  get: function () {
    return _getTmpDir();
  }
});

module.exports.dir = dir;
module.exports.dirSync = dirSync;

module.exports.file = file;
module.exports.fileSync = fileSync;

module.exports.tmpName = tmpName;
module.exports.tmpNameSync = tmpNameSync;

module.exports.setGracefulCleanup = setGracefulCleanup;


/***/ }),
/* 227 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = rimraf
rimraf.sync = rimrafSync

var assert = __webpack_require__(114)
var path = __webpack_require__(55)
var fs = __webpack_require__(94)
var glob = __webpack_require__(228)
var _0666 = parseInt('666', 8)

var defaultGlobOpts = {
  nosort: true,
  silent: true
}

// for EMFILE handling
var timeout = 0

var isWindows = (process.platform === "win32")

function defaults (options) {
  var methods = [
    'unlink',
    'chmod',
    'stat',
    'lstat',
    'rmdir',
    'readdir'
  ]
  methods.forEach(function(m) {
    options[m] = options[m] || fs[m]
    m = m + 'Sync'
    options[m] = options[m] || fs[m]
  })

  options.maxBusyTries = options.maxBusyTries || 3
  options.emfileWait = options.emfileWait || 1000
  if (options.glob === false) {
    options.disableGlob = true
  }
  options.disableGlob = options.disableGlob || false
  options.glob = options.glob || defaultGlobOpts
}

function rimraf (p, options, cb) {
  if (typeof options === 'function') {
    cb = options
    options = {}
  }

  assert(p, 'rimraf: missing path')
  assert.equal(typeof p, 'string', 'rimraf: path should be a string')
  assert.equal(typeof cb, 'function', 'rimraf: callback function required')
  assert(options, 'rimraf: invalid options argument provided')
  assert.equal(typeof options, 'object', 'rimraf: options should be object')

  defaults(options)

  var busyTries = 0
  var errState = null
  var n = 0

  if (options.disableGlob || !glob.hasMagic(p))
    return afterGlob(null, [p])

  options.lstat(p, function (er, stat) {
    if (!er)
      return afterGlob(null, [p])

    glob(p, options.glob, afterGlob)
  })

  function next (er) {
    errState = errState || er
    if (--n === 0)
      cb(errState)
  }

  function afterGlob (er, results) {
    if (er)
      return cb(er)

    n = results.length
    if (n === 0)
      return cb()

    results.forEach(function (p) {
      rimraf_(p, options, function CB (er) {
        if (er) {
          if ((er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") &&
              busyTries < options.maxBusyTries) {
            busyTries ++
            var time = busyTries * 100
            // try again, with the same exact callback as this one.
            return setTimeout(function () {
              rimraf_(p, options, CB)
            }, time)
          }

          // this one won't happen if graceful-fs is used.
          if (er.code === "EMFILE" && timeout < options.emfileWait) {
            return setTimeout(function () {
              rimraf_(p, options, CB)
            }, timeout ++)
          }

          // already gone
          if (er.code === "ENOENT") er = null
        }

        timeout = 0
        next(er)
      })
    })
  }
}

// Two possible strategies.
// 1. Assume it's a file.  unlink it, then do the dir stuff on EPERM or EISDIR
// 2. Assume it's a directory.  readdir, then do the file stuff on ENOTDIR
//
// Both result in an extra syscall when you guess wrong.  However, there
// are likely far more normal files in the world than directories.  This
// is based on the assumption that a the average number of files per
// directory is >= 1.
//
// If anyone ever complains about this, then I guess the strategy could
// be made configurable somehow.  But until then, YAGNI.
function rimraf_ (p, options, cb) {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  // sunos lets the root user unlink directories, which is... weird.
  // so we have to lstat here and make sure it's not a dir.
  options.lstat(p, function (er, st) {
    if (er && er.code === "ENOENT")
      return cb(null)

    // Windows can EPERM on stat.  Life is suffering.
    if (er && er.code === "EPERM" && isWindows)
      fixWinEPERM(p, options, er, cb)

    if (st && st.isDirectory())
      return rmdir(p, options, er, cb)

    options.unlink(p, function (er) {
      if (er) {
        if (er.code === "ENOENT")
          return cb(null)
        if (er.code === "EPERM")
          return (isWindows)
            ? fixWinEPERM(p, options, er, cb)
            : rmdir(p, options, er, cb)
        if (er.code === "EISDIR")
          return rmdir(p, options, er, cb)
      }
      return cb(er)
    })
  })
}

function fixWinEPERM (p, options, er, cb) {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')
  if (er)
    assert(er instanceof Error)

  options.chmod(p, _0666, function (er2) {
    if (er2)
      cb(er2.code === "ENOENT" ? null : er)
    else
      options.stat(p, function(er3, stats) {
        if (er3)
          cb(er3.code === "ENOENT" ? null : er)
        else if (stats.isDirectory())
          rmdir(p, options, er, cb)
        else
          options.unlink(p, cb)
      })
  })
}

function fixWinEPERMSync (p, options, er) {
  assert(p)
  assert(options)
  if (er)
    assert(er instanceof Error)

  try {
    options.chmodSync(p, _0666)
  } catch (er2) {
    if (er2.code === "ENOENT")
      return
    else
      throw er
  }

  try {
    var stats = options.statSync(p)
  } catch (er3) {
    if (er3.code === "ENOENT")
      return
    else
      throw er
  }

  if (stats.isDirectory())
    rmdirSync(p, options, er)
  else
    options.unlinkSync(p)
}

function rmdir (p, options, originalEr, cb) {
  assert(p)
  assert(options)
  if (originalEr)
    assert(originalEr instanceof Error)
  assert(typeof cb === 'function')

  // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
  // if we guessed wrong, and it's not a directory, then
  // raise the original error.
  options.rmdir(p, function (er) {
    if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM"))
      rmkids(p, options, cb)
    else if (er && er.code === "ENOTDIR")
      cb(originalEr)
    else
      cb(er)
  })
}

function rmkids(p, options, cb) {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  options.readdir(p, function (er, files) {
    if (er)
      return cb(er)
    var n = files.length
    if (n === 0)
      return options.rmdir(p, cb)
    var errState
    files.forEach(function (f) {
      rimraf(path.join(p, f), options, function (er) {
        if (errState)
          return
        if (er)
          return cb(errState = er)
        if (--n === 0)
          options.rmdir(p, cb)
      })
    })
  })
}

// this looks simpler, and is strictly *faster*, but will
// tie up the JavaScript thread and fail on excessively
// deep directory trees.
function rimrafSync (p, options) {
  options = options || {}
  defaults(options)

  assert(p, 'rimraf: missing path')
  assert.equal(typeof p, 'string', 'rimraf: path should be a string')
  assert(options, 'rimraf: missing options')
  assert.equal(typeof options, 'object', 'rimraf: options should be object')

  var results

  if (options.disableGlob || !glob.hasMagic(p)) {
    results = [p]
  } else {
    try {
      options.lstatSync(p)
      results = [p]
    } catch (er) {
      results = glob.sync(p, options.glob)
    }
  }

  if (!results.length)
    return

  for (var i = 0; i < results.length; i++) {
    var p = results[i]

    try {
      var st = options.lstatSync(p)
    } catch (er) {
      if (er.code === "ENOENT")
        return

      // Windows can EPERM on stat.  Life is suffering.
      if (er.code === "EPERM" && isWindows)
        fixWinEPERMSync(p, options, er)
    }

    try {
      // sunos lets the root user unlink directories, which is... weird.
      if (st && st.isDirectory())
        rmdirSync(p, options, null)
      else
        options.unlinkSync(p)
    } catch (er) {
      if (er.code === "ENOENT")
        return
      if (er.code === "EPERM")
        return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
      if (er.code !== "EISDIR")
        throw er

      rmdirSync(p, options, er)
    }
  }
}

function rmdirSync (p, options, originalEr) {
  assert(p)
  assert(options)
  if (originalEr)
    assert(originalEr instanceof Error)

  try {
    options.rmdirSync(p)
  } catch (er) {
    if (er.code === "ENOENT")
      return
    if (er.code === "ENOTDIR")
      throw originalEr
    if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")
      rmkidsSync(p, options)
  }
}

function rmkidsSync (p, options) {
  assert(p)
  assert(options)
  options.readdirSync(p).forEach(function (f) {
    rimrafSync(path.join(p, f), options)
  })

  // We only end up here once we got ENOTEMPTY at least once, and
  // at this point, we are guaranteed to have removed all the kids.
  // So, we know that it won't be ENOENT or ENOTDIR or anything else.
  // try really hard to delete stuff on windows, because it has a
  // PROFOUNDLY annoying habit of not closing handles promptly when
  // files are deleted, resulting in spurious ENOTEMPTY errors.
  var retries = isWindows ? 100 : 1
  var i = 0
  do {
    var threw = true
    try {
      var ret = options.rmdirSync(p, options)
      threw = false
      return ret
    } finally {
      if (++i < retries && threw)
        continue
    }
  } while (true)
}


/***/ }),
/* 228 */
/***/ (function(module, exports, __webpack_require__) {

// Approach:
//
// 1. Get the minimatch set
// 2. For each pattern in the set, PROCESS(pattern, false)
// 3. Store matches per-set, then uniq them
//
// PROCESS(pattern, inGlobStar)
// Get the first [n] items from pattern that are all strings
// Join these together.  This is PREFIX.
//   If there is no more remaining, then stat(PREFIX) and
//   add to matches if it succeeds.  END.
//
// If inGlobStar and PREFIX is symlink and points to dir
//   set ENTRIES = []
// else readdir(PREFIX) as ENTRIES
//   If fail, END
//
// with ENTRIES
//   If pattern[n] is GLOBSTAR
//     // handle the case where the globstar match is empty
//     // by pruning it out, and testing the resulting pattern
//     PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
//     // handle other cases.
//     for ENTRY in ENTRIES (not dotfiles)
//       // attach globstar + tail onto the entry
//       // Mark that this entry is a globstar match
//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
//
//   else // not globstar
//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
//       Test ENTRY against pattern[n]
//       If fails, continue
//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
//
// Caveat:
//   Cache all stats and readdirs results to minimize syscall.  Since all
//   we ever care about is existence and directory-ness, we can just keep
//   `true` for files, and [children,...] for directories, or `false` for
//   things that don't exist.

module.exports = glob

var fs = __webpack_require__(94)
var rp = __webpack_require__(229)
var minimatch = __webpack_require__(231)
var Minimatch = minimatch.Minimatch
var inherits = __webpack_require__(235)
var EE = __webpack_require__(237).EventEmitter
var path = __webpack_require__(55)
var assert = __webpack_require__(114)
var isAbsolute = __webpack_require__(238)
var globSync = __webpack_require__(239)
var common = __webpack_require__(240)
var alphasort = common.alphasort
var alphasorti = common.alphasorti
var setopts = common.setopts
var ownProp = common.ownProp
var inflight = __webpack_require__(241)
var util = __webpack_require__(113)
var childrenIgnored = common.childrenIgnored
var isIgnored = common.isIgnored

var once = __webpack_require__(243)

function glob (pattern, options, cb) {
  if (typeof options === 'function') cb = options, options = {}
  if (!options) options = {}

  if (options.sync) {
    if (cb)
      throw new TypeError('callback provided to sync glob')
    return globSync(pattern, options)
  }

  return new Glob(pattern, options, cb)
}

glob.sync = globSync
var GlobSync = glob.GlobSync = globSync.GlobSync

// old api surface
glob.glob = glob

function extend (origin, add) {
  if (add === null || typeof add !== 'object') {
    return origin
  }

  var keys = Object.keys(add)
  var i = keys.length
  while (i--) {
    origin[keys[i]] = add[keys[i]]
  }
  return origin
}

glob.hasMagic = function (pattern, options_) {
  var options = extend({}, options_)
  options.noprocess = true

  var g = new Glob(pattern, options)
  var set = g.minimatch.set

  if (!pattern)
    return false

  if (set.length > 1)
    return true

  for (var j = 0; j < set[0].length; j++) {
    if (typeof set[0][j] !== 'string')
      return true
  }

  return false
}

glob.Glob = Glob
inherits(Glob, EE)
function Glob (pattern, options, cb) {
  if (typeof options === 'function') {
    cb = options
    options = null
  }

  if (options && options.sync) {
    if (cb)
      throw new TypeError('callback provided to sync glob')
    return new GlobSync(pattern, options)
  }

  if (!(this instanceof Glob))
    return new Glob(pattern, options, cb)

  setopts(this, pattern, options)
  this._didRealPath = false

  // process each pattern in the minimatch set
  var n = this.minimatch.set.length

  // The matches are stored as {<filename>: true,...} so that
  // duplicates are automagically pruned.
  // Later, we do an Object.keys() on these.
  // Keep them as a list so we can fill in when nonull is set.
  this.matches = new Array(n)

  if (typeof cb === 'function') {
    cb = once(cb)
    this.on('error', cb)
    this.on('end', function (matches) {
      cb(null, matches)
    })
  }

  var self = this
  this._processing = 0

  this._emitQueue = []
  this._processQueue = []
  this.paused = false

  if (this.noprocess)
    return this

  if (n === 0)
    return done()

  var sync = true
  for (var i = 0; i < n; i ++) {
    this._process(this.minimatch.set[i], i, false, done)
  }
  sync = false

  function done () {
    --self._processing
    if (self._processing <= 0) {
      if (sync) {
        process.nextTick(function () {
          self._finish()
        })
      } else {
        self._finish()
      }
    }
  }
}

Glob.prototype._finish = function () {
  assert(this instanceof Glob)
  if (this.aborted)
    return

  if (this.realpath && !this._didRealpath)
    return this._realpath()

  common.finish(this)
  this.emit('end', this.found)
}

Glob.prototype._realpath = function () {
  if (this._didRealpath)
    return

  this._didRealpath = true

  var n = this.matches.length
  if (n === 0)
    return this._finish()

  var self = this
  for (var i = 0; i < this.matches.length; i++)
    this._realpathSet(i, next)

  function next () {
    if (--n === 0)
      self._finish()
  }
}

Glob.prototype._realpathSet = function (index, cb) {
  var matchset = this.matches[index]
  if (!matchset)
    return cb()

  var found = Object.keys(matchset)
  var self = this
  var n = found.length

  if (n === 0)
    return cb()

  var set = this.matches[index] = Object.create(null)
  found.forEach(function (p, i) {
    // If there's a problem with the stat, then it means that
    // one or more of the links in the realpath couldn't be
    // resolved.  just return the abs value in that case.
    p = self._makeAbs(p)
    rp.realpath(p, self.realpathCache, function (er, real) {
      if (!er)
        set[real] = true
      else if (er.syscall === 'stat')
        set[p] = true
      else
        self.emit('error', er) // srsly wtf right here

      if (--n === 0) {
        self.matches[index] = set
        cb()
      }
    })
  })
}

Glob.prototype._mark = function (p) {
  return common.mark(this, p)
}

Glob.prototype._makeAbs = function (f) {
  return common.makeAbs(this, f)
}

Glob.prototype.abort = function () {
  this.aborted = true
  this.emit('abort')
}

Glob.prototype.pause = function () {
  if (!this.paused) {
    this.paused = true
    this.emit('pause')
  }
}

Glob.prototype.resume = function () {
  if (this.paused) {
    this.emit('resume')
    this.paused = false
    if (this._emitQueue.length) {
      var eq = this._emitQueue.slice(0)
      this._emitQueue.length = 0
      for (var i = 0; i < eq.length; i ++) {
        var e = eq[i]
        this._emitMatch(e[0], e[1])
      }
    }
    if (this._processQueue.length) {
      var pq = this._processQueue.slice(0)
      this._processQueue.length = 0
      for (var i = 0; i < pq.length; i ++) {
        var p = pq[i]
        this._processing--
        this._process(p[0], p[1], p[2], p[3])
      }
    }
  }
}

Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
  assert(this instanceof Glob)
  assert(typeof cb === 'function')

  if (this.aborted)
    return

  this._processing++
  if (this.paused) {
    this._processQueue.push([pattern, index, inGlobStar, cb])
    return
  }

  //console.error('PROCESS %d', this._processing, pattern)

  // Get the first [n] parts of pattern that are all strings.
  var n = 0
  while (typeof pattern[n] === 'string') {
    n ++
  }
  // now n is the index of the first one that is *not* a string.

  // see if there's anything else
  var prefix
  switch (n) {
    // if not, then this is rather simple
    case pattern.length:
      this._processSimple(pattern.join('/'), index, cb)
      return

    case 0:
      // pattern *starts* with some non-trivial item.
      // going to readdir(cwd), but not include the prefix in matches.
      prefix = null
      break

    default:
      // pattern has some string bits in the front.
      // whatever it starts with, whether that's 'absolute' like /foo/bar,
      // or 'relative' like '../baz'
      prefix = pattern.slice(0, n).join('/')
      break
  }

  var remain = pattern.slice(n)

  // get the list of entries.
  var read
  if (prefix === null)
    read = '.'
  else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
    if (!prefix || !isAbsolute(prefix))
      prefix = '/' + prefix
    read = prefix
  } else
    read = prefix

  var abs = this._makeAbs(read)

  //if ignored, skip _processing
  if (childrenIgnored(this, read))
    return cb()

  var isGlobStar = remain[0] === minimatch.GLOBSTAR
  if (isGlobStar)
    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
  else
    this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
}

Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
  var self = this
  this._readdir(abs, inGlobStar, function (er, entries) {
    return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
  })
}

Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {

  // if the abs isn't a dir, then nothing can match!
  if (!entries)
    return cb()

  // It will only match dot entries if it starts with a dot, or if
  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
  var pn = remain[0]
  var negate = !!this.minimatch.negate
  var rawGlob = pn._glob
  var dotOk = this.dot || rawGlob.charAt(0) === '.'

  var matchedEntries = []
  for (var i = 0; i < entries.length; i++) {
    var e = entries[i]
    if (e.charAt(0) !== '.' || dotOk) {
      var m
      if (negate && !prefix) {
        m = !e.match(pn)
      } else {
        m = e.match(pn)
      }
      if (m)
        matchedEntries.push(e)
    }
  }

  //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)

  var len = matchedEntries.length
  // If there are no matched entries, then nothing matches.
  if (len === 0)
    return cb()

  // if this is the last remaining pattern bit, then no need for
  // an additional stat *unless* the user has specified mark or
  // stat explicitly.  We know they exist, since readdir returned
  // them.

  if (remain.length === 1 && !this.mark && !this.stat) {
    if (!this.matches[index])
      this.matches[index] = Object.create(null)

    for (var i = 0; i < len; i ++) {
      var e = matchedEntries[i]
      if (prefix) {
        if (prefix !== '/')
          e = prefix + '/' + e
        else
          e = prefix + e
      }

      if (e.charAt(0) === '/' && !this.nomount) {
        e = path.join(this.root, e)
      }
      this._emitMatch(index, e)
    }
    // This was the last one, and no stats were needed
    return cb()
  }

  // now test all matched entries as stand-ins for that part
  // of the pattern.
  remain.shift()
  for (var i = 0; i < len; i ++) {
    var e = matchedEntries[i]
    var newPattern
    if (prefix) {
      if (prefix !== '/')
        e = prefix + '/' + e
      else
        e = prefix + e
    }
    this._process([e].concat(remain), index, inGlobStar, cb)
  }
  cb()
}

Glob.prototype._emitMatch = function (index, e) {
  if (this.aborted)
    return

  if (isIgnored(this, e))
    return

  if (this.paused) {
    this._emitQueue.push([index, e])
    return
  }

  var abs = isAbsolute(e) ? e : this._makeAbs(e)

  if (this.mark)
    e = this._mark(e)

  if (this.absolute)
    e = abs

  if (this.matches[index][e])
    return

  if (this.nodir) {
    var c = this.cache[abs]
    if (c === 'DIR' || Array.isArray(c))
      return
  }

  this.matches[index][e] = true

  var st = this.statCache[abs]
  if (st)
    this.emit('stat', e, st)

  this.emit('match', e)
}

Glob.prototype._readdirInGlobStar = function (abs, cb) {
  if (this.aborted)
    return

  // follow all symlinked directories forever
  // just proceed as if this is a non-globstar situation
  if (this.follow)
    return this._readdir(abs, false, cb)

  var lstatkey = 'lstat\0' + abs
  var self = this
  var lstatcb = inflight(lstatkey, lstatcb_)

  if (lstatcb)
    fs.lstat(abs, lstatcb)

  function lstatcb_ (er, lstat) {
    if (er && er.code === 'ENOENT')
      return cb()

    var isSym = lstat && lstat.isSymbolicLink()
    self.symlinks[abs] = isSym

    // If it's not a symlink or a dir, then it's definitely a regular file.
    // don't bother doing a readdir in that case.
    if (!isSym && lstat && !lstat.isDirectory()) {
      self.cache[abs] = 'FILE'
      cb()
    } else
      self._readdir(abs, false, cb)
  }
}

Glob.prototype._readdir = function (abs, inGlobStar, cb) {
  if (this.aborted)
    return

  cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
  if (!cb)
    return

  //console.error('RD %j %j', +inGlobStar, abs)
  if (inGlobStar && !ownProp(this.symlinks, abs))
    return this._readdirInGlobStar(abs, cb)

  if (ownProp(this.cache, abs)) {
    var c = this.cache[abs]
    if (!c || c === 'FILE')
      return cb()

    if (Array.isArray(c))
      return cb(null, c)
  }

  var self = this
  fs.readdir(abs, readdirCb(this, abs, cb))
}

function readdirCb (self, abs, cb) {
  return function (er, entries) {
    if (er)
      self._readdirError(abs, er, cb)
    else
      self._readdirEntries(abs, entries, cb)
  }
}

Glob.prototype._readdirEntries = function (abs, entries, cb) {
  if (this.aborted)
    return

  // if we haven't asked to stat everything, then just
  // assume that everything in there exists, so we can avoid
  // having to stat it a second time.
  if (!this.mark && !this.stat) {
    for (var i = 0; i < entries.length; i ++) {
      var e = entries[i]
      if (abs === '/')
        e = abs + e
      else
        e = abs + '/' + e
      this.cache[e] = true
    }
  }

  this.cache[abs] = entries
  return cb(null, entries)
}

Glob.prototype._readdirError = function (f, er, cb) {
  if (this.aborted)
    return

  // handle errors, and cache the information
  switch (er.code) {
    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
    case 'ENOTDIR': // totally normal. means it *does* exist.
      var abs = this._makeAbs(f)
      this.cache[abs] = 'FILE'
      if (abs === this.cwdAbs) {
        var error = new Error(er.code + ' invalid cwd ' + this.cwd)
        error.path = this.cwd
        error.code = er.code
        this.emit('error', error)
        this.abort()
      }
      break

    case 'ENOENT': // not terribly unusual
    case 'ELOOP':
    case 'ENAMETOOLONG':
    case 'UNKNOWN':
      this.cache[this._makeAbs(f)] = false
      break

    default: // some unusual error.  Treat as failure.
      this.cache[this._makeAbs(f)] = false
      if (this.strict) {
        this.emit('error', er)
        // If the error is handled, then we abort
        // if not, we threw out of here
        this.abort()
      }
      if (!this.silent)
        console.error('glob error', er)
      break
  }

  return cb()
}

Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
  var self = this
  this._readdir(abs, inGlobStar, function (er, entries) {
    self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
  })
}


Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
  //console.error('pgs2', prefix, remain[0], entries)

  // no entries means not a dir, so it can never have matches
  // foo.txt/** doesn't match foo.txt
  if (!entries)
    return cb()

  // test without the globstar, and with every child both below
  // and replacing the globstar.
  var remainWithoutGlobStar = remain.slice(1)
  var gspref = prefix ? [ prefix ] : []
  var noGlobStar = gspref.concat(remainWithoutGlobStar)

  // the noGlobStar pattern exits the inGlobStar state
  this._process(noGlobStar, index, false, cb)

  var isSym = this.symlinks[abs]
  var len = entries.length

  // If it's a symlink, and we're in a globstar, then stop
  if (isSym && inGlobStar)
    return cb()

  for (var i = 0; i < len; i++) {
    var e = entries[i]
    if (e.charAt(0) === '.' && !this.dot)
      continue

    // these two cases enter the inGlobStar state
    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
    this._process(instead, index, true, cb)

    var below = gspref.concat(entries[i], remain)
    this._process(below, index, true, cb)
  }

  cb()
}

Glob.prototype._processSimple = function (prefix, index, cb) {
  // XXX review this.  Shouldn't it be doing the mounting etc
  // before doing stat?  kinda weird?
  var self = this
  this._stat(prefix, function (er, exists) {
    self._processSimple2(prefix, index, er, exists, cb)
  })
}
Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {

  //console.error('ps2', prefix, exists)

  if (!this.matches[index])
    this.matches[index] = Object.create(null)

  // If it doesn't exist, then just mark the lack of results
  if (!exists)
    return cb()

  if (prefix && isAbsolute(prefix) && !this.nomount) {
    var trail = /[\/\\]$/.test(prefix)
    if (prefix.charAt(0) === '/') {
      prefix = path.join(this.root, prefix)
    } else {
      prefix = path.resolve(this.root, prefix)
      if (trail)
        prefix += '/'
    }
  }

  if (process.platform === 'win32')
    prefix = prefix.replace(/\\/g, '/')

  // Mark this as a match
  this._emitMatch(index, prefix)
  cb()
}

// Returns either 'DIR', 'FILE', or false
Glob.prototype._stat = function (f, cb) {
  var abs = this._makeAbs(f)
  var needDir = f.slice(-1) === '/'

  if (f.length > this.maxLength)
    return cb()

  if (!this.stat && ownProp(this.cache, abs)) {
    var c = this.cache[abs]

    if (Array.isArray(c))
      c = 'DIR'

    // It exists, but maybe not how we need it
    if (!needDir || c === 'DIR')
      return cb(null, c)

    if (needDir && c === 'FILE')
      return cb()

    // otherwise we have to stat, because maybe c=true
    // if we know it exists, but not what it is.
  }

  var exists
  var stat = this.statCache[abs]
  if (stat !== undefined) {
    if (stat === false)
      return cb(null, stat)
    else {
      var type = stat.isDirectory() ? 'DIR' : 'FILE'
      if (needDir && type === 'FILE')
        return cb()
      else
        return cb(null, type, stat)
    }
  }

  var self = this
  var statcb = inflight('stat\0' + abs, lstatcb_)
  if (statcb)
    fs.lstat(abs, statcb)

  function lstatcb_ (er, lstat) {
    if (lstat && lstat.isSymbolicLink()) {
      // If it's a symlink, then treat it as the target, unless
      // the target does not exist, then treat it as a file.
      return fs.stat(abs, function (er, stat) {
        if (er)
          self._stat2(f, abs, null, lstat, cb)
        else
          self._stat2(f, abs, er, stat, cb)
      })
    } else {
      self._stat2(f, abs, er, lstat, cb)
    }
  }
}

Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
  if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
    this.statCache[abs] = false
    return cb()
  }

  var needDir = f.slice(-1) === '/'
  this.statCache[abs] = stat

  if (abs.slice(-1) === '/' && stat && !stat.isDirectory())
    return cb(null, false, stat)

  var c = true
  if (stat)
    c = stat.isDirectory() ? 'DIR' : 'FILE'
  this.cache[abs] = this.cache[abs] || c

  if (needDir && c === 'FILE')
    return cb()

  return cb(null, c, stat)
}


/***/ }),
/* 229 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = realpath
realpath.realpath = realpath
realpath.sync = realpathSync
realpath.realpathSync = realpathSync
realpath.monkeypatch = monkeypatch
realpath.unmonkeypatch = unmonkeypatch

var fs = __webpack_require__(94)
var origRealpath = fs.realpath
var origRealpathSync = fs.realpathSync

var version = process.version
var ok = /^v[0-5]\./.test(version)
var old = __webpack_require__(230)

function newError (er) {
  return er && er.syscall === 'realpath' && (
    er.code === 'ELOOP' ||
    er.code === 'ENOMEM' ||
    er.code === 'ENAMETOOLONG'
  )
}

function realpath (p, cache, cb) {
  if (ok) {
    return origRealpath(p, cache, cb)
  }

  if (typeof cache === 'function') {
    cb = cache
    cache = null
  }
  origRealpath(p, cache, function (er, result) {
    if (newError(er)) {
      old.realpath(p, cache, cb)
    } else {
      cb(er, result)
    }
  })
}

function realpathSync (p, cache) {
  if (ok) {
    return origRealpathSync(p, cache)
  }

  try {
    return origRealpathSync(p, cache)
  } catch (er) {
    if (newError(er)) {
      return old.realpathSync(p, cache)
    } else {
      throw er
    }
  }
}

function monkeypatch () {
  fs.realpath = realpath
  fs.realpathSync = realpathSync
}

function unmonkeypatch () {
  fs.realpath = origRealpath
  fs.realpathSync = origRealpathSync
}


/***/ }),
/* 230 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

var pathModule = __webpack_require__(55);
var isWindows = process.platform === 'win32';
var fs = __webpack_require__(94);

// JavaScript implementation of realpath, ported from node pre-v6

var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);

function rethrow() {
  // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and
  // is fairly slow to generate.
  var callback;
  if (DEBUG) {
    var backtrace = new Error;
    callback = debugCallback;
  } else
    callback = missingCallback;

  return callback;

  function debugCallback(err) {
    if (err) {
      backtrace.message = err.message;
      err = backtrace;
      missingCallback(err);
    }
  }

  function missingCallback(err) {
    if (err) {
      if (process.throwDeprecation)
        throw err;  // Forgot a callback but don't know where? Use NODE_DEBUG=fs
      else if (!process.noDeprecation) {
        var msg = 'fs: missing callback ' + (err.stack || err.message);
        if (process.traceDeprecation)
          console.trace(msg);
        else
          console.error(msg);
      }
    }
  }
}

function maybeCallback(cb) {
  return typeof cb === 'function' ? cb : rethrow();
}

var normalize = pathModule.normalize;

// Regexp that finds the next partion of a (partial) path
// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']
if (isWindows) {
  var nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
} else {
  var nextPartRe = /(.*?)(?:[\/]+|$)/g;
}

// Regex to find the device root, including trailing slash. E.g. 'c:\\'.
if (isWindows) {
  var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
} else {
  var splitRootRe = /^[\/]*/;
}

exports.realpathSync = function realpathSync(p, cache) {
  // make p is absolute
  p = pathModule.resolve(p);

  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
    return cache[p];
  }

  var original = p,
      seenLinks = {},
      knownHard = {};

  // current character position in p
  var pos;
  // the partial path so far, including a trailing slash if any
  var current;
  // the partial path without a trailing slash (except when pointing at a root)
  var base;
  // the partial path scanned in the previous round, with slash
  var previous;

  start();

  function start() {
    // Skip over roots
    var m = splitRootRe.exec(p);
    pos = m[0].length;
    current = m[0];
    base = m[0];
    previous = '';

    // On windows, check that the root exists. On unix there is no need.
    if (isWindows && !knownHard[base]) {
      fs.lstatSync(base);
      knownHard[base] = true;
    }
  }

  // walk down the path, swapping out linked pathparts for their real
  // values
  // NB: p.length changes.
  while (pos < p.length) {
    // find the next part
    nextPartRe.lastIndex = pos;
    var result = nextPartRe.exec(p);
    previous = current;
    current += result[0];
    base = previous + result[1];
    pos = nextPartRe.lastIndex;

    // continue if not a symlink
    if (knownHard[base] || (cache && cache[base] === base)) {
      continue;
    }

    var resolvedLink;
    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
      // some known symbolic link.  no need to stat again.
      resolvedLink = cache[base];
    } else {
      var stat = fs.lstatSync(base);
      if (!stat.isSymbolicLink()) {
        knownHard[base] = true;
        if (cache) cache[base] = base;
        continue;
      }

      // read the link if it wasn't read before
      // dev/ino always return 0 on windows, so skip the check.
      var linkTarget = null;
      if (!isWindows) {
        var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
        if (seenLinks.hasOwnProperty(id)) {
          linkTarget = seenLinks[id];
        }
      }
      if (linkTarget === null) {
        fs.statSync(base);
        linkTarget = fs.readlinkSync(base);
      }
      resolvedLink = pathModule.resolve(previous, linkTarget);
      // track this, if given a cache.
      if (cache) cache[base] = resolvedLink;
      if (!isWindows) seenLinks[id] = linkTarget;
    }

    // resolve the link, then start over
    p = pathModule.resolve(resolvedLink, p.slice(pos));
    start();
  }

  if (cache) cache[original] = p;

  return p;
};


exports.realpath = function realpath(p, cache, cb) {
  if (typeof cb !== 'function') {
    cb = maybeCallback(cache);
    cache = null;
  }

  // make p is absolute
  p = pathModule.resolve(p);

  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
    return process.nextTick(cb.bind(null, null, cache[p]));
  }

  var original = p,
      seenLinks = {},
      knownHard = {};

  // current character position in p
  var pos;
  // the partial path so far, including a trailing slash if any
  var current;
  // the partial path without a trailing slash (except when pointing at a root)
  var base;
  // the partial path scanned in the previous round, with slash
  var previous;

  start();

  function start() {
    // Skip over roots
    var m = splitRootRe.exec(p);
    pos = m[0].length;
    current = m[0];
    base = m[0];
    previous = '';

    // On windows, check that the root exists. On unix there is no need.
    if (isWindows && !knownHard[base]) {
      fs.lstat(base, function(err) {
        if (err) return cb(err);
        knownHard[base] = true;
        LOOP();
      });
    } else {
      process.nextTick(LOOP);
    }
  }

  // walk down the path, swapping out linked pathparts for their real
  // values
  function LOOP() {
    // stop if scanned past end of path
    if (pos >= p.length) {
      if (cache) cache[original] = p;
      return cb(null, p);
    }

    // find the next part
    nextPartRe.lastIndex = pos;
    var result = nextPartRe.exec(p);
    previous = current;
    current += result[0];
    base = previous + result[1];
    pos = nextPartRe.lastIndex;

    // continue if not a symlink
    if (knownHard[base] || (cache && cache[base] === base)) {
      return process.nextTick(LOOP);
    }

    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
      // known symbolic link.  no need to stat again.
      return gotResolvedLink(cache[base]);
    }

    return fs.lstat(base, gotStat);
  }

  function gotStat(err, stat) {
    if (err) return cb(err);

    // if not a symlink, skip to the next path part
    if (!stat.isSymbolicLink()) {
      knownHard[base] = true;
      if (cache) cache[base] = base;
      return process.nextTick(LOOP);
    }

    // stat & read the link if not read before
    // call gotTarget as soon as the link target is known
    // dev/ino always return 0 on windows, so skip the check.
    if (!isWindows) {
      var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
      if (seenLinks.hasOwnProperty(id)) {
        return gotTarget(null, seenLinks[id], base);
      }
    }
    fs.stat(base, function(err) {
      if (err) return cb(err);

      fs.readlink(base, function(err, target) {
        if (!isWindows) seenLinks[id] = target;
        gotTarget(err, target);
      });
    });
  }

  function gotTarget(err, target, base) {
    if (err) return cb(err);

    var resolvedLink = pathModule.resolve(previous, target);
    if (cache) cache[base] = resolvedLink;
    gotResolvedLink(resolvedLink);
  }

  function gotResolvedLink(resolvedLink) {
    // resolve the link, then start over
    p = pathModule.resolve(resolvedLink, p.slice(pos));
    start();
  }
};


/***/ }),
/* 231 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = minimatch
minimatch.Minimatch = Minimatch

var path = { sep: '/' }
try {
  path = __webpack_require__(55)
} catch (er) {}

var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
var expand = __webpack_require__(232)

var plTypes = {
  '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
  '?': { open: '(?:', close: ')?' },
  '+': { open: '(?:', close: ')+' },
  '*': { open: '(?:', close: ')*' },
  '@': { open: '(?:', close: ')' }
}

// any single thing other than /
// don't need to escape / when using new RegExp()
var qmark = '[^/]'

// * => any number of characters
var star = qmark + '*?'

// ** when dots are allowed.  Anything goes, except .. and .
// not (^ or / followed by one or two dots followed by $ or /),
// followed by anything, any number of times.
var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'

// not a ^ or / followed by a dot,
// followed by anything, any number of times.
var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'

// characters that need to be escaped in RegExp.
var reSpecials = charSet('().*{}+?[]^$\\!')

// "abc" -> { a:true, b:true, c:true }
function charSet (s) {
  return s.split('').reduce(function (set, c) {
    set[c] = true
    return set
  }, {})
}

// normalizes slashes.
var slashSplit = /\/+/

minimatch.filter = filter
function filter (pattern, options) {
  options = options || {}
  return function (p, i, list) {
    return minimatch(p, pattern, options)
  }
}

function ext (a, b) {
  a = a || {}
  b = b || {}
  var t = {}
  Object.keys(b).forEach(function (k) {
    t[k] = b[k]
  })
  Object.keys(a).forEach(function (k) {
    t[k] = a[k]
  })
  return t
}

minimatch.defaults = function (def) {
  if (!def || !Object.keys(def).length) return minimatch

  var orig = minimatch

  var m = function minimatch (p, pattern, options) {
    return orig.minimatch(p, pattern, ext(def, options))
  }

  m.Minimatch = function Minimatch (pattern, options) {
    return new orig.Minimatch(pattern, ext(def, options))
  }

  return m
}

Minimatch.defaults = function (def) {
  if (!def || !Object.keys(def).length) return Minimatch
  return minimatch.defaults(def).Minimatch
}

function minimatch (p, pattern, options) {
  if (typeof pattern !== 'string') {
    throw new TypeError('glob pattern string required')
  }

  if (!options) options = {}

  // shortcut: comments match nothing.
  if (!options.nocomment && pattern.charAt(0) === '#') {
    return false
  }

  // "" only matches ""
  if (pattern.trim() === '') return p === ''

  return new Minimatch(pattern, options).match(p)
}

function Minimatch (pattern, options) {
  if (!(this instanceof Minimatch)) {
    return new Minimatch(pattern, options)
  }

  if (typeof pattern !== 'string') {
    throw new TypeError('glob pattern string required')
  }

  if (!options) options = {}
  pattern = pattern.trim()

  // windows support: need to use /, not \
  if (path.sep !== '/') {
    pattern = pattern.split(path.sep).join('/')
  }

  this.options = options
  this.set = []
  this.pattern = pattern
  this.regexp = null
  this.negate = false
  this.comment = false
  this.empty = false

  // make the set of regexps etc.
  this.make()
}

Minimatch.prototype.debug = function () {}

Minimatch.prototype.make = make
function make () {
  // don't do it more than once.
  if (this._made) return

  var pattern = this.pattern
  var options = this.options

  // empty patterns and comments match nothing.
  if (!options.nocomment && pattern.charAt(0) === '#') {
    this.comment = true
    return
  }
  if (!pattern) {
    this.empty = true
    return
  }

  // step 1: figure out negation, etc.
  this.parseNegate()

  // step 2: expand braces
  var set = this.globSet = this.braceExpand()

  if (options.debug) this.debug = console.error

  this.debug(this.pattern, set)

  // step 3: now we have a set, so turn each one into a series of path-portion
  // matching patterns.
  // These will be regexps, except in the case of "**", which is
  // set to the GLOBSTAR object for globstar behavior,
  // and will not contain any / characters
  set = this.globParts = set.map(function (s) {
    return s.split(slashSplit)
  })

  this.debug(this.pattern, set)

  // glob --> regexps
  set = set.map(function (s, si, set) {
    return s.map(this.parse, this)
  }, this)

  this.debug(this.pattern, set)

  // filter out everything that didn't compile properly.
  set = set.filter(function (s) {
    return s.indexOf(false) === -1
  })

  this.debug(this.pattern, set)

  this.set = set
}

Minimatch.prototype.parseNegate = parseNegate
function parseNegate () {
  var pattern = this.pattern
  var negate = false
  var options = this.options
  var negateOffset = 0

  if (options.nonegate) return

  for (var i = 0, l = pattern.length
    ; i < l && pattern.charAt(i) === '!'
    ; i++) {
    negate = !negate
    negateOffset++
  }

  if (negateOffset) this.pattern = pattern.substr(negateOffset)
  this.negate = negate
}

// Brace expansion:
// a{b,c}d -> abd acd
// a{b,}c -> abc ac
// a{0..3}d -> a0d a1d a2d a3d
// a{b,c{d,e}f}g -> abg acdfg acefg
// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
//
// Invalid sets are not expanded.
// a{2..}b -> a{2..}b
// a{b}c -> a{b}c
minimatch.braceExpand = function (pattern, options) {
  return braceExpand(pattern, options)
}

Minimatch.prototype.braceExpand = braceExpand

function braceExpand (pattern, options) {
  if (!options) {
    if (this instanceof Minimatch) {
      options = this.options
    } else {
      options = {}
    }
  }

  pattern = typeof pattern === 'undefined'
    ? this.pattern : pattern

  if (typeof pattern === 'undefined') {
    throw new TypeError('undefined pattern')
  }

  if (options.nobrace ||
    !pattern.match(/\{.*\}/)) {
    // shortcut. no need to expand.
    return [pattern]
  }

  return expand(pattern)
}

// parse a component of the expanded set.
// At this point, no pattern may contain "/" in it
// so we're going to return a 2d array, where each entry is the full
// pattern, split on '/', and then turned into a regular expression.
// A regexp is made at the end which joins each array with an
// escaped /, and another full one which joins each regexp with |.
//
// Following the lead of Bash 4.1, note that "**" only has special meaning
// when it is the *only* thing in a path portion.  Otherwise, any series
// of * is equivalent to a single *.  Globstar behavior is enabled by
// default, and can be disabled by setting options.noglobstar.
Minimatch.prototype.parse = parse
var SUBPARSE = {}
function parse (pattern, isSub) {
  if (pattern.length > 1024 * 64) {
    throw new TypeError('pattern is too long')
  }

  var options = this.options

  // shortcuts
  if (!options.noglobstar && pattern === '**') return GLOBSTAR
  if (pattern === '') return ''

  var re = ''
  var hasMagic = !!options.nocase
  var escaping = false
  // ? => one single character
  var patternListStack = []
  var negativeLists = []
  var stateChar
  var inClass = false
  var reClassStart = -1
  var classStart = -1
  // . and .. never match anything that doesn't start with .,
  // even when options.dot is set.
  var patternStart = pattern.charAt(0) === '.' ? '' // anything
  // not (start or / followed by . or .. followed by / or end)
  : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
  : '(?!\\.)'
  var self = this

  function clearStateChar () {
    if (stateChar) {
      // we had some state-tracking character
      // that wasn't consumed by this pass.
      switch (stateChar) {
        case '*':
          re += star
          hasMagic = true
        break
        case '?':
          re += qmark
          hasMagic = true
        break
        default:
          re += '\\' + stateChar
        break
      }
      self.debug('clearStateChar %j %j', stateChar, re)
      stateChar = false
    }
  }

  for (var i = 0, len = pattern.length, c
    ; (i < len) && (c = pattern.charAt(i))
    ; i++) {
    this.debug('%s\t%s %s %j', pattern, i, re, c)

    // skip over any that are escaped.
    if (escaping && reSpecials[c]) {
      re += '\\' + c
      escaping = false
      continue
    }

    switch (c) {
      case '/':
        // completely not allowed, even escaped.
        // Should already be path-split by now.
        return false

      case '\\':
        clearStateChar()
        escaping = true
      continue

      // the various stateChar values
      // for the "extglob" stuff.
      case '?':
      case '*':
      case '+':
      case '@':
      case '!':
        this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)

        // all of those are literals inside a class, except that
        // the glob [!a] means [^a] in regexp
        if (inClass) {
          this.debug('  in class')
          if (c === '!' && i === classStart + 1) c = '^'
          re += c
          continue
        }

        // if we already have a stateChar, then it means
        // that there was something like ** or +? in there.
        // Handle the stateChar, then proceed with this one.
        self.debug('call clearStateChar %j', stateChar)
        clearStateChar()
        stateChar = c
        // if extglob is disabled, then +(asdf|foo) isn't a thing.
        // just clear the statechar *now*, rather than even diving into
        // the patternList stuff.
        if (options.noext) clearStateChar()
      continue

      case '(':
        if (inClass) {
          re += '('
          continue
        }

        if (!stateChar) {
          re += '\\('
          continue
        }

        patternListStack.push({
          type: stateChar,
          start: i - 1,
          reStart: re.length,
          open: plTypes[stateChar].open,
          close: plTypes[stateChar].close
        })
        // negation is (?:(?!js)[^/]*)
        re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
        this.debug('plType %j %j', stateChar, re)
        stateChar = false
      continue

      case ')':
        if (inClass || !patternListStack.length) {
          re += '\\)'
          continue
        }

        clearStateChar()
        hasMagic = true
        var pl = patternListStack.pop()
        // negation is (?:(?!js)[^/]*)
        // The others are (?:<pattern>)<type>
        re += pl.close
        if (pl.type === '!') {
          negativeLists.push(pl)
        }
        pl.reEnd = re.length
      continue

      case '|':
        if (inClass || !patternListStack.length || escaping) {
          re += '\\|'
          escaping = false
          continue
        }

        clearStateChar()
        re += '|'
      continue

      // these are mostly the same in regexp and glob
      case '[':
        // swallow any state-tracking char before the [
        clearStateChar()

        if (inClass) {
          re += '\\' + c
          continue
        }

        inClass = true
        classStart = i
        reClassStart = re.length
        re += c
      continue

      case ']':
        //  a right bracket shall lose its special
        //  meaning and represent itself in
        //  a bracket expression if it occurs
        //  first in the list.  -- POSIX.2 2.8.3.2
        if (i === classStart + 1 || !inClass) {
          re += '\\' + c
          escaping = false
          continue
        }

        // handle the case where we left a class open.
        // "[z-a]" is valid, equivalent to "\[z-a\]"
        if (inClass) {
          // split where the last [ was, make sure we don't have
          // an invalid re. if so, re-walk the contents of the
          // would-be class to re-translate any characters that
          // were passed through as-is
          // TODO: It would probably be faster to determine this
          // without a try/catch and a new RegExp, but it's tricky
          // to do safely.  For now, this is safe and works.
          var cs = pattern.substring(classStart + 1, i)
          try {
            RegExp('[' + cs + ']')
          } catch (er) {
            // not a valid class!
            var sp = this.parse(cs, SUBPARSE)
            re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
            hasMagic = hasMagic || sp[1]
            inClass = false
            continue
          }
        }

        // finish up the class.
        hasMagic = true
        inClass = false
        re += c
      continue

      default:
        // swallow any state char that wasn't consumed
        clearStateChar()

        if (escaping) {
          // no need
          escaping = false
        } else if (reSpecials[c]
          && !(c === '^' && inClass)) {
          re += '\\'
        }

        re += c

    } // switch
  } // for

  // handle the case where we left a class open.
  // "[abc" is valid, equivalent to "\[abc"
  if (inClass) {
    // split where the last [ was, and escape it
    // this is a huge pita.  We now have to re-walk
    // the contents of the would-be class to re-translate
    // any characters that were passed through as-is
    cs = pattern.substr(classStart + 1)
    sp = this.parse(cs, SUBPARSE)
    re = re.substr(0, reClassStart) + '\\[' + sp[0]
    hasMagic = hasMagic || sp[1]
  }

  // handle the case where we had a +( thing at the *end*
  // of the pattern.
  // each pattern list stack adds 3 chars, and we need to go through
  // and escape any | chars that were passed through as-is for the regexp.
  // Go through and escape them, taking care not to double-escape any
  // | chars that were already escaped.
  for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
    var tail = re.slice(pl.reStart + pl.open.length)
    this.debug('setting tail', re, pl)
    // maybe some even number of \, then maybe 1 \, followed by a |
    tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) {
      if (!$2) {
        // the | isn't already escaped, so escape it.
        $2 = '\\'
      }

      // need to escape all those slashes *again*, without escaping the
      // one that we need for escaping the | character.  As it works out,
      // escaping an even number of slashes can be done by simply repeating
      // it exactly after itself.  That's why this trick works.
      //
      // I am sorry that you have to see this.
      return $1 + $1 + $2 + '|'
    })

    this.debug('tail=%j\n   %s', tail, tail, pl, re)
    var t = pl.type === '*' ? star
      : pl.type === '?' ? qmark
      : '\\' + pl.type

    hasMagic = true
    re = re.slice(0, pl.reStart) + t + '\\(' + tail
  }

  // handle trailing things that only matter at the very end.
  clearStateChar()
  if (escaping) {
    // trailing \\
    re += '\\\\'
  }

  // only need to apply the nodot start if the re starts with
  // something that could conceivably capture a dot
  var addPatternStart = false
  switch (re.charAt(0)) {
    case '.':
    case '[':
    case '(': addPatternStart = true
  }

  // Hack to work around lack of negative lookbehind in JS
  // A pattern like: *.!(x).!(y|z) needs to ensure that a name
  // like 'a.xyz.yz' doesn't match.  So, the first negative
  // lookahead, has to look ALL the way ahead, to the end of
  // the pattern.
  for (var n = negativeLists.length - 1; n > -1; n--) {
    var nl = negativeLists[n]

    var nlBefore = re.slice(0, nl.reStart)
    var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
    var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
    var nlAfter = re.slice(nl.reEnd)

    nlLast += nlAfter

    // Handle nested stuff like *(*.js|!(*.json)), where open parens
    // mean that we should *not* include the ) in the bit that is considered
    // "after" the negated section.
    var openParensBefore = nlBefore.split('(').length - 1
    var cleanAfter = nlAfter
    for (i = 0; i < openParensBefore; i++) {
      cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
    }
    nlAfter = cleanAfter

    var dollar = ''
    if (nlAfter === '' && isSub !== SUBPARSE) {
      dollar = '$'
    }
    var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
    re = newRe
  }

  // if the re is not "" at this point, then we need to make sure
  // it doesn't match against an empty path part.
  // Otherwise a/* will match a/, which it should not.
  if (re !== '' && hasMagic) {
    re = '(?=.)' + re
  }

  if (addPatternStart) {
    re = patternStart + re
  }

  // parsing just a piece of a larger pattern.
  if (isSub === SUBPARSE) {
    return [re, hasMagic]
  }

  // skip the regexp for non-magical patterns
  // unescape anything in it, though, so that it'll be
  // an exact match against a file etc.
  if (!hasMagic) {
    return globUnescape(pattern)
  }

  var flags = options.nocase ? 'i' : ''
  try {
    var regExp = new RegExp('^' + re + '$', flags)
  } catch (er) {
    // If it was an invalid regular expression, then it can't match
    // anything.  This trick looks for a character after the end of
    // the string, which is of course impossible, except in multi-line
    // mode, but it's not a /m regex.
    return new RegExp('$.')
  }

  regExp._glob = pattern
  regExp._src = re

  return regExp
}

minimatch.makeRe = function (pattern, options) {
  return new Minimatch(pattern, options || {}).makeRe()
}

Minimatch.prototype.makeRe = makeRe
function makeRe () {
  if (this.regexp || this.regexp === false) return this.regexp

  // at this point, this.set is a 2d array of partial
  // pattern strings, or "**".
  //
  // It's better to use .match().  This function shouldn't
  // be used, really, but it's pretty convenient sometimes,
  // when you just want to work with a regex.
  var set = this.set

  if (!set.length) {
    this.regexp = false
    return this.regexp
  }
  var options = this.options

  var twoStar = options.noglobstar ? star
    : options.dot ? twoStarDot
    : twoStarNoDot
  var flags = options.nocase ? 'i' : ''

  var re = set.map(function (pattern) {
    return pattern.map(function (p) {
      return (p === GLOBSTAR) ? twoStar
      : (typeof p === 'string') ? regExpEscape(p)
      : p._src
    }).join('\\\/')
  }).join('|')

  // must match entire pattern
  // ending in a * or ** will make it less strict.
  re = '^(?:' + re + ')$'

  // can match anything, as long as it's not this.
  if (this.negate) re = '^(?!' + re + ').*$'

  try {
    this.regexp = new RegExp(re, flags)
  } catch (ex) {
    this.regexp = false
  }
  return this.regexp
}

minimatch.match = function (list, pattern, options) {
  options = options || {}
  var mm = new Minimatch(pattern, options)
  list = list.filter(function (f) {
    return mm.match(f)
  })
  if (mm.options.nonull && !list.length) {
    list.push(pattern)
  }
  return list
}

Minimatch.prototype.match = match
function match (f, partial) {
  this.debug('match', f, this.pattern)
  // short-circuit in the case of busted things.
  // comments, etc.
  if (this.comment) return false
  if (this.empty) return f === ''

  if (f === '/' && partial) return true

  var options = this.options

  // windows: need to use /, not \
  if (path.sep !== '/') {
    f = f.split(path.sep).join('/')
  }

  // treat the test path as a set of pathparts.
  f = f.split(slashSplit)
  this.debug(this.pattern, 'split', f)

  // just ONE of the pattern sets in this.set needs to match
  // in order for it to be valid.  If negating, then just one
  // match means that we have failed.
  // Either way, return on the first hit.

  var set = this.set
  this.debug(this.pattern, 'set', set)

  // Find the basename of the path by looking for the last non-empty segment
  var filename
  var i
  for (i = f.length - 1; i >= 0; i--) {
    filename = f[i]
    if (filename) break
  }

  for (i = 0; i < set.length; i++) {
    var pattern = set[i]
    var file = f
    if (options.matchBase && pattern.length === 1) {
      file = [filename]
    }
    var hit = this.matchOne(file, pattern, partial)
    if (hit) {
      if (options.flipNegate) return true
      return !this.negate
    }
  }

  // didn't get any hits.  this is success if it's a negative
  // pattern, failure otherwise.
  if (options.flipNegate) return false
  return this.negate
}

// set partial to true to test if, for example,
// "/a/b" matches the start of "/*/b/*/d"
// Partial means, if you run out of file before you run
// out of pattern, then that's fine, as long as all
// the parts match.
Minimatch.prototype.matchOne = function (file, pattern, partial) {
  var options = this.options

  this.debug('matchOne',
    { 'this': this, file: file, pattern: pattern })

  this.debug('matchOne', file.length, pattern.length)

  for (var fi = 0,
      pi = 0,
      fl = file.length,
      pl = pattern.length
      ; (fi < fl) && (pi < pl)
      ; fi++, pi++) {
    this.debug('matchOne loop')
    var p = pattern[pi]
    var f = file[fi]

    this.debug(pattern, p, f)

    // should be impossible.
    // some invalid regexp stuff in the set.
    if (p === false) return false

    if (p === GLOBSTAR) {
      this.debug('GLOBSTAR', [pattern, p, f])

      // "**"
      // a/**/b/**/c would match the following:
      // a/b/x/y/z/c
      // a/x/y/z/b/c
      // a/b/x/b/x/c
      // a/b/c
      // To do this, take the rest of the pattern after
      // the **, and see if it would match the file remainder.
      // If so, return success.
      // If not, the ** "swallows" a segment, and try again.
      // This is recursively awful.
      //
      // a/**/b/**/c matching a/b/x/y/z/c
      // - a matches a
      // - doublestar
      //   - matchOne(b/x/y/z/c, b/**/c)
      //     - b matches b
      //     - doublestar
      //       - matchOne(x/y/z/c, c) -> no
      //       - matchOne(y/z/c, c) -> no
      //       - matchOne(z/c, c) -> no
      //       - matchOne(c, c) yes, hit
      var fr = fi
      var pr = pi + 1
      if (pr === pl) {
        this.debug('** at the end')
        // a ** at the end will just swallow the rest.
        // We have found a match.
        // however, it will not swallow /.x, unless
        // options.dot is set.
        // . and .. are *never* matched by **, for explosively
        // exponential reasons.
        for (; fi < fl; fi++) {
          if (file[fi] === '.' || file[fi] === '..' ||
            (!options.dot && file[fi].charAt(0) === '.')) return false
        }
        return true
      }

      // ok, let's see if we can swallow whatever we can.
      while (fr < fl) {
        var swallowee = file[fr]

        this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)

        // XXX remove this slice.  Just pass the start index.
        if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
          this.debug('globstar found match!', fr, fl, swallowee)
          // found a match.
          return true
        } else {
          // can't swallow "." or ".." ever.
          // can only swallow ".foo" when explicitly asked.
          if (swallowee === '.' || swallowee === '..' ||
            (!options.dot && swallowee.charAt(0) === '.')) {
            this.debug('dot detected!', file, fr, pattern, pr)
            break
          }

          // ** swallows a segment, and continue.
          this.debug('globstar swallow a segment, and continue')
          fr++
        }
      }

      // no match was found.
      // However, in partial mode, we can't say this is necessarily over.
      // If there's more *pattern* left, then
      if (partial) {
        // ran out of file
        this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
        if (fr === fl) return true
      }
      return false
    }

    // something other than **
    // non-magic patterns just have to match exactly
    // patterns with magic have been turned into regexps.
    var hit
    if (typeof p === 'string') {
      if (options.nocase) {
        hit = f.toLowerCase() === p.toLowerCase()
      } else {
        hit = f === p
      }
      this.debug('string match', p, f, hit)
    } else {
      hit = f.match(p)
      this.debug('pattern match', p, f, hit)
    }

    if (!hit) return false
  }

  // Note: ending in / means that we'll get a final ""
  // at the end of the pattern.  This can only match a
  // corresponding "" at the end of the file.
  // If the file ends in /, then it can only match a
  // a pattern that ends in /, unless the pattern just
  // doesn't have any more for it. But, a/b/ should *not*
  // match "a/b/*", even though "" matches against the
  // [^/]*? pattern, except in partial mode, where it might
  // simply not be reached yet.
  // However, a/b/ should still satisfy a/*

  // now either we fell off the end of the pattern, or we're done.
  if (fi === fl && pi === pl) {
    // ran out of pattern and filename at the same time.
    // an exact hit!
    return true
  } else if (fi === fl) {
    // ran out of file, but still had pattern left.
    // this is ok if we're doing the match as part of
    // a glob fs traversal.
    return partial
  } else if (pi === pl) {
    // ran out of pattern, still have file left.
    // this is only acceptable if we're on the very last
    // empty segment of a file with a trailing slash.
    // a/* should match a/b/
    var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
    return emptyFileEnd
  }

  // should be unreachable.
  throw new Error('wtf?')
}

// replace stuff like \* with *
function globUnescape (s) {
  return s.replace(/\\(.)/g, '$1')
}

function regExpEscape (s) {
  return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
}


/***/ }),
/* 232 */
/***/ (function(module, exports, __webpack_require__) {

var concatMap = __webpack_require__(233);
var balanced = __webpack_require__(234);

module.exports = expandTop;

var escSlash = '\0SLASH'+Math.random()+'\0';
var escOpen = '\0OPEN'+Math.random()+'\0';
var escClose = '\0CLOSE'+Math.random()+'\0';
var escComma = '\0COMMA'+Math.random()+'\0';
var escPeriod = '\0PERIOD'+Math.random()+'\0';

function numeric(str) {
  return parseInt(str, 10) == str
    ? parseInt(str, 10)
    : str.charCodeAt(0);
}

function escapeBraces(str) {
  return str.split('\\\\').join(escSlash)
            .split('\\{').join(escOpen)
            .split('\\}').join(escClose)
            .split('\\,').join(escComma)
            .split('\\.').join(escPeriod);
}

function unescapeBraces(str) {
  return str.split(escSlash).join('\\')
            .split(escOpen).join('{')
            .split(escClose).join('}')
            .split(escComma).join(',')
            .split(escPeriod).join('.');
}


// Basically just str.split(","), but handling cases
// where we have nested braced sections, which should be
// treated as individual members, like {a,{b,c},d}
function parseCommaParts(str) {
  if (!str)
    return [''];

  var parts = [];
  var m = balanced('{', '}', str);

  if (!m)
    return str.split(',');

  var pre = m.pre;
  var body = m.body;
  var post = m.post;
  var p = pre.split(',');

  p[p.length-1] += '{' + body + '}';
  var postParts = parseCommaParts(post);
  if (post.length) {
    p[p.length-1] += postParts.shift();
    p.push.apply(p, postParts);
  }

  parts.push.apply(parts, p);

  return parts;
}

function expandTop(str) {
  if (!str)
    return [];

  // I don't know why Bash 4.3 does this, but it does.
  // Anything starting with {} will have the first two bytes preserved
  // but *only* at the top level, so {},a}b will not expand to anything,
  // but a{},b}c will be expanded to [a}c,abc].
  // One could argue that this is a bug in Bash, but since the goal of
  // this module is to match Bash's rules, we escape a leading {}
  if (str.substr(0, 2) === '{}') {
    str = '\\{\\}' + str.substr(2);
  }

  return expand(escapeBraces(str), true).map(unescapeBraces);
}

function identity(e) {
  return e;
}

function embrace(str) {
  return '{' + str + '}';
}
function isPadded(el) {
  return /^-?0\d/.test(el);
}

function lte(i, y) {
  return i <= y;
}
function gte(i, y) {
  return i >= y;
}

function expand(str, isTop) {
  var expansions = [];

  var m = balanced('{', '}', str);
  if (!m || /\$$/.test(m.pre)) return [str];

  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
  var isSequence = isNumericSequence || isAlphaSequence;
  var isOptions = m.body.indexOf(',') >= 0;
  if (!isSequence && !isOptions) {
    // {a},b}
    if (m.post.match(/,.*\}/)) {
      str = m.pre + '{' + m.body + escClose + m.post;
      return expand(str);
    }
    return [str];
  }

  var n;
  if (isSequence) {
    n = m.body.split(/\.\./);
  } else {
    n = parseCommaParts(m.body);
    if (n.length === 1) {
      // x{{a,b}}y ==> x{a}y x{b}y
      n = expand(n[0], false).map(embrace);
      if (n.length === 1) {
        var post = m.post.length
          ? expand(m.post, false)
          : [''];
        return post.map(function(p) {
          return m.pre + n[0] + p;
        });
      }
    }
  }

  // at this point, n is the parts, and we know it's not a comma set
  // with a single entry.

  // no need to expand pre, since it is guaranteed to be free of brace-sets
  var pre = m.pre;
  var post = m.post.length
    ? expand(m.post, false)
    : [''];

  var N;

  if (isSequence) {
    var x = numeric(n[0]);
    var y = numeric(n[1]);
    var width = Math.max(n[0].length, n[1].length)
    var incr = n.length == 3
      ? Math.abs(numeric(n[2]))
      : 1;
    var test = lte;
    var reverse = y < x;
    if (reverse) {
      incr *= -1;
      test = gte;
    }
    var pad = n.some(isPadded);

    N = [];

    for (var i = x; test(i, y); i += incr) {
      var c;
      if (isAlphaSequence) {
        c = String.fromCharCode(i);
        if (c === '\\')
          c = '';
      } else {
        c = String(i);
        if (pad) {
          var need = width - c.length;
          if (need > 0) {
            var z = new Array(need + 1).join('0');
            if (i < 0)
              c = '-' + z + c.slice(1);
            else
              c = z + c;
          }
        }
      }
      N.push(c);
    }
  } else {
    N = concatMap(n, function(el) { return expand(el, false) });
  }

  for (var j = 0; j < N.length; j++) {
    for (var k = 0; k < post.length; k++) {
      var expansion = pre + N[j] + post[k];
      if (!isTop || isSequence || expansion)
        expansions.push(expansion);
    }
  }

  return expansions;
}



/***/ }),
/* 233 */
/***/ (function(module, exports) {

module.exports = function (xs, fn) {
    var res = [];
    for (var i = 0; i < xs.length; i++) {
        var x = fn(xs[i], i);
        if (isArray(x)) res.push.apply(res, x);
        else res.push(x);
    }
    return res;
};

var isArray = Array.isArray || function (xs) {
    return Object.prototype.toString.call(xs) === '[object Array]';
};


/***/ }),
/* 234 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = balanced;
function balanced(a, b, str) {
  if (a instanceof RegExp) a = maybeMatch(a, str);
  if (b instanceof RegExp) b = maybeMatch(b, str);

  var r = range(a, b, str);

  return r && {
    start: r[0],
    end: r[1],
    pre: str.slice(0, r[0]),
    body: str.slice(r[0] + a.length, r[1]),
    post: str.slice(r[1] + b.length)
  };
}

function maybeMatch(reg, str) {
  var m = str.match(reg);
  return m ? m[0] : null;
}

balanced.range = range;
function range(a, b, str) {
  var begs, beg, left, right, result;
  var ai = str.indexOf(a);
  var bi = str.indexOf(b, ai + 1);
  var i = ai;

  if (ai >= 0 && bi > 0) {
    begs = [];
    left = str.length;

    while (i >= 0 && !result) {
      if (i == ai) {
        begs.push(i);
        ai = str.indexOf(a, i + 1);
      } else if (begs.length == 1) {
        result = [ begs.pop(), bi ];
      } else {
        beg = begs.pop();
        if (beg < left) {
          left = beg;
          right = bi;
        }

        bi = str.indexOf(b, i + 1);
      }

      i = ai < bi && ai >= 0 ? ai : bi;
    }

    if (begs.length) {
      result = [ left, right ];
    }
  }

  return result;
}


/***/ }),
/* 235 */
/***/ (function(module, exports, __webpack_require__) {

try {
  var util = __webpack_require__(113);
  /* istanbul ignore next */
  if (typeof util.inherits !== 'function') throw '';
  module.exports = util.inherits;
} catch (e) {
  /* istanbul ignore next */
  module.exports = __webpack_require__(236);
}


/***/ }),
/* 236 */
/***/ (function(module, exports) {

if (typeof Object.create === 'function') {
  // implementation from standard node.js 'util' module
  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 {
  // old school shim for old browsers
  module.exports = function inherits(ctor, superCtor) {
    if (superCtor) {
      ctor.super_ = superCtor
      var TempCtor = function () {}
      TempCtor.prototype = superCtor.prototype
      ctor.prototype = new TempCtor()
      ctor.prototype.constructor = ctor
    }
  }
}


/***/ }),
/* 237 */
/***/ (function(module, exports) {

module.exports = require("events");

/***/ }),
/* 238 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


function posix(path) {
	return path.charAt(0) === '/';
}

function win32(path) {
	// https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56
	var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
	var result = splitDeviceRe.exec(path);
	var device = result[1] || '';
	var isUnc = Boolean(device && device.charAt(1) !== ':');

	// UNC paths are always absolute
	return Boolean(result[2] || isUnc);
}

module.exports = process.platform === 'win32' ? win32 : posix;
module.exports.posix = posix;
module.exports.win32 = win32;


/***/ }),
/* 239 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = globSync
globSync.GlobSync = GlobSync

var fs = __webpack_require__(94)
var rp = __webpack_require__(229)
var minimatch = __webpack_require__(231)
var Minimatch = minimatch.Minimatch
var Glob = __webpack_require__(228).Glob
var util = __webpack_require__(113)
var path = __webpack_require__(55)
var assert = __webpack_require__(114)
var isAbsolute = __webpack_require__(238)
var common = __webpack_require__(240)
var alphasort = common.alphasort
var alphasorti = common.alphasorti
var setopts = common.setopts
var ownProp = common.ownProp
var childrenIgnored = common.childrenIgnored
var isIgnored = common.isIgnored

function globSync (pattern, options) {
  if (typeof options === 'function' || arguments.length === 3)
    throw new TypeError('callback provided to sync glob\n'+
                        'See: https://github.com/isaacs/node-glob/issues/167')

  return new GlobSync(pattern, options).found
}

function GlobSync (pattern, options) {
  if (!pattern)
    throw new Error('must provide pattern')

  if (typeof options === 'function' || arguments.length === 3)
    throw new TypeError('callback provided to sync glob\n'+
                        'See: https://github.com/isaacs/node-glob/issues/167')

  if (!(this instanceof GlobSync))
    return new GlobSync(pattern, options)

  setopts(this, pattern, options)

  if (this.noprocess)
    return this

  var n = this.minimatch.set.length
  this.matches = new Array(n)
  for (var i = 0; i < n; i ++) {
    this._process(this.minimatch.set[i], i, false)
  }
  this._finish()
}

GlobSync.prototype._finish = function () {
  assert(this instanceof GlobSync)
  if (this.realpath) {
    var self = this
    this.matches.forEach(function (matchset, index) {
      var set = self.matches[index] = Object.create(null)
      for (var p in matchset) {
        try {
          p = self._makeAbs(p)
          var real = rp.realpathSync(p, self.realpathCache)
          set[real] = true
        } catch (er) {
          if (er.syscall === 'stat')
            set[self._makeAbs(p)] = true
          else
            throw er
        }
      }
    })
  }
  common.finish(this)
}


GlobSync.prototype._process = function (pattern, index, inGlobStar) {
  assert(this instanceof GlobSync)

  // Get the first [n] parts of pattern that are all strings.
  var n = 0
  while (typeof pattern[n] === 'string') {
    n ++
  }
  // now n is the index of the first one that is *not* a string.

  // See if there's anything else
  var prefix
  switch (n) {
    // if not, then this is rather simple
    case pattern.length:
      this._processSimple(pattern.join('/'), index)
      return

    case 0:
      // pattern *starts* with some non-trivial item.
      // going to readdir(cwd), but not include the prefix in matches.
      prefix = null
      break

    default:
      // pattern has some string bits in the front.
      // whatever it starts with, whether that's 'absolute' like /foo/bar,
      // or 'relative' like '../baz'
      prefix = pattern.slice(0, n).join('/')
      break
  }

  var remain = pattern.slice(n)

  // get the list of entries.
  var read
  if (prefix === null)
    read = '.'
  else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
    if (!prefix || !isAbsolute(prefix))
      prefix = '/' + prefix
    read = prefix
  } else
    read = prefix

  var abs = this._makeAbs(read)

  //if ignored, skip processing
  if (childrenIgnored(this, read))
    return

  var isGlobStar = remain[0] === minimatch.GLOBSTAR
  if (isGlobStar)
    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
  else
    this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
}


GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
  var entries = this._readdir(abs, inGlobStar)

  // if the abs isn't a dir, then nothing can match!
  if (!entries)
    return

  // It will only match dot entries if it starts with a dot, or if
  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
  var pn = remain[0]
  var negate = !!this.minimatch.negate
  var rawGlob = pn._glob
  var dotOk = this.dot || rawGlob.charAt(0) === '.'

  var matchedEntries = []
  for (var i = 0; i < entries.length; i++) {
    var e = entries[i]
    if (e.charAt(0) !== '.' || dotOk) {
      var m
      if (negate && !prefix) {
        m = !e.match(pn)
      } else {
        m = e.match(pn)
      }
      if (m)
        matchedEntries.push(e)
    }
  }

  var len = matchedEntries.length
  // If there are no matched entries, then nothing matches.
  if (len === 0)
    return

  // if this is the last remaining pattern bit, then no need for
  // an additional stat *unless* the user has specified mark or
  // stat explicitly.  We know they exist, since readdir returned
  // them.

  if (remain.length === 1 && !this.mark && !this.stat) {
    if (!this.matches[index])
      this.matches[index] = Object.create(null)

    for (var i = 0; i < len; i ++) {
      var e = matchedEntries[i]
      if (prefix) {
        if (prefix.slice(-1) !== '/')
          e = prefix + '/' + e
        else
          e = prefix + e
      }

      if (e.charAt(0) === '/' && !this.nomount) {
        e = path.join(this.root, e)
      }
      this._emitMatch(index, e)
    }
    // This was the last one, and no stats were needed
    return
  }

  // now test all matched entries as stand-ins for that part
  // of the pattern.
  remain.shift()
  for (var i = 0; i < len; i ++) {
    var e = matchedEntries[i]
    var newPattern
    if (prefix)
      newPattern = [prefix, e]
    else
      newPattern = [e]
    this._process(newPattern.concat(remain), index, inGlobStar)
  }
}


GlobSync.prototype._emitMatch = function (index, e) {
  if (isIgnored(this, e))
    return

  var abs = this._makeAbs(e)

  if (this.mark)
    e = this._mark(e)

  if (this.absolute) {
    e = abs
  }

  if (this.matches[index][e])
    return

  if (this.nodir) {
    var c = this.cache[abs]
    if (c === 'DIR' || Array.isArray(c))
      return
  }

  this.matches[index][e] = true

  if (this.stat)
    this._stat(e)
}


GlobSync.prototype._readdirInGlobStar = function (abs) {
  // follow all symlinked directories forever
  // just proceed as if this is a non-globstar situation
  if (this.follow)
    return this._readdir(abs, false)

  var entries
  var lstat
  var stat
  try {
    lstat = fs.lstatSync(abs)
  } catch (er) {
    if (er.code === 'ENOENT') {
      // lstat failed, doesn't exist
      return null
    }
  }

  var isSym = lstat && lstat.isSymbolicLink()
  this.symlinks[abs] = isSym

  // If it's not a symlink or a dir, then it's definitely a regular file.
  // don't bother doing a readdir in that case.
  if (!isSym && lstat && !lstat.isDirectory())
    this.cache[abs] = 'FILE'
  else
    entries = this._readdir(abs, false)

  return entries
}

GlobSync.prototype._readdir = function (abs, inGlobStar) {
  var entries

  if (inGlobStar && !ownProp(this.symlinks, abs))
    return this._readdirInGlobStar(abs)

  if (ownProp(this.cache, abs)) {
    var c = this.cache[abs]
    if (!c || c === 'FILE')
      return null

    if (Array.isArray(c))
      return c
  }

  try {
    return this._readdirEntries(abs, fs.readdirSync(abs))
  } catch (er) {
    this._readdirError(abs, er)
    return null
  }
}

GlobSync.prototype._readdirEntries = function (abs, entries) {
  // if we haven't asked to stat everything, then just
  // assume that everything in there exists, so we can avoid
  // having to stat it a second time.
  if (!this.mark && !this.stat) {
    for (var i = 0; i < entries.length; i ++) {
      var e = entries[i]
      if (abs === '/')
        e = abs + e
      else
        e = abs + '/' + e
      this.cache[e] = true
    }
  }

  this.cache[abs] = entries

  // mark and cache dir-ness
  return entries
}

GlobSync.prototype._readdirError = function (f, er) {
  // handle errors, and cache the information
  switch (er.code) {
    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
    case 'ENOTDIR': // totally normal. means it *does* exist.
      var abs = this._makeAbs(f)
      this.cache[abs] = 'FILE'
      if (abs === this.cwdAbs) {
        var error = new Error(er.code + ' invalid cwd ' + this.cwd)
        error.path = this.cwd
        error.code = er.code
        throw error
      }
      break

    case 'ENOENT': // not terribly unusual
    case 'ELOOP':
    case 'ENAMETOOLONG':
    case 'UNKNOWN':
      this.cache[this._makeAbs(f)] = false
      break

    default: // some unusual error.  Treat as failure.
      this.cache[this._makeAbs(f)] = false
      if (this.strict)
        throw er
      if (!this.silent)
        console.error('glob error', er)
      break
  }
}

GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {

  var entries = this._readdir(abs, inGlobStar)

  // no entries means not a dir, so it can never have matches
  // foo.txt/** doesn't match foo.txt
  if (!entries)
    return

  // test without the globstar, and with every child both below
  // and replacing the globstar.
  var remainWithoutGlobStar = remain.slice(1)
  var gspref = prefix ? [ prefix ] : []
  var noGlobStar = gspref.concat(remainWithoutGlobStar)

  // the noGlobStar pattern exits the inGlobStar state
  this._process(noGlobStar, index, false)

  var len = entries.length
  var isSym = this.symlinks[abs]

  // If it's a symlink, and we're in a globstar, then stop
  if (isSym && inGlobStar)
    return

  for (var i = 0; i < len; i++) {
    var e = entries[i]
    if (e.charAt(0) === '.' && !this.dot)
      continue

    // these two cases enter the inGlobStar state
    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
    this._process(instead, index, true)

    var below = gspref.concat(entries[i], remain)
    this._process(below, index, true)
  }
}

GlobSync.prototype._processSimple = function (prefix, index) {
  // XXX review this.  Shouldn't it be doing the mounting etc
  // before doing stat?  kinda weird?
  var exists = this._stat(prefix)

  if (!this.matches[index])
    this.matches[index] = Object.create(null)

  // If it doesn't exist, then just mark the lack of results
  if (!exists)
    return

  if (prefix && isAbsolute(prefix) && !this.nomount) {
    var trail = /[\/\\]$/.test(prefix)
    if (prefix.charAt(0) === '/') {
      prefix = path.join(this.root, prefix)
    } else {
      prefix = path.resolve(this.root, prefix)
      if (trail)
        prefix += '/'
    }
  }

  if (process.platform === 'win32')
    prefix = prefix.replace(/\\/g, '/')

  // Mark this as a match
  this._emitMatch(index, prefix)
}

// Returns either 'DIR', 'FILE', or false
GlobSync.prototype._stat = function (f) {
  var abs = this._makeAbs(f)
  var needDir = f.slice(-1) === '/'

  if (f.length > this.maxLength)
    return false

  if (!this.stat && ownProp(this.cache, abs)) {
    var c = this.cache[abs]

    if (Array.isArray(c))
      c = 'DIR'

    // It exists, but maybe not how we need it
    if (!needDir || c === 'DIR')
      return c

    if (needDir && c === 'FILE')
      return false

    // otherwise we have to stat, because maybe c=true
    // if we know it exists, but not what it is.
  }

  var exists
  var stat = this.statCache[abs]
  if (!stat) {
    var lstat
    try {
      lstat = fs.lstatSync(abs)
    } catch (er) {
      if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
        this.statCache[abs] = false
        return false
      }
    }

    if (lstat && lstat.isSymbolicLink()) {
      try {
        stat = fs.statSync(abs)
      } catch (er) {
        stat = lstat
      }
    } else {
      stat = lstat
    }
  }

  this.statCache[abs] = stat

  var c = true
  if (stat)
    c = stat.isDirectory() ? 'DIR' : 'FILE'

  this.cache[abs] = this.cache[abs] || c

  if (needDir && c === 'FILE')
    return false

  return c
}

GlobSync.prototype._mark = function (p) {
  return common.mark(this, p)
}

GlobSync.prototype._makeAbs = function (f) {
  return common.makeAbs(this, f)
}


/***/ }),
/* 240 */
/***/ (function(module, exports, __webpack_require__) {

exports.alphasort = alphasort
exports.alphasorti = alphasorti
exports.setopts = setopts
exports.ownProp = ownProp
exports.makeAbs = makeAbs
exports.finish = finish
exports.mark = mark
exports.isIgnored = isIgnored
exports.childrenIgnored = childrenIgnored

function ownProp (obj, field) {
  return Object.prototype.hasOwnProperty.call(obj, field)
}

var path = __webpack_require__(55)
var minimatch = __webpack_require__(231)
var isAbsolute = __webpack_require__(238)
var Minimatch = minimatch.Minimatch

function alphasorti (a, b) {
  return a.toLowerCase().localeCompare(b.toLowerCase())
}

function alphasort (a, b) {
  return a.localeCompare(b)
}

function setupIgnores (self, options) {
  self.ignore = options.ignore || []

  if (!Array.isArray(self.ignore))
    self.ignore = [self.ignore]

  if (self.ignore.length) {
    self.ignore = self.ignore.map(ignoreMap)
  }
}

// ignore patterns are always in dot:true mode.
function ignoreMap (pattern) {
  var gmatcher = null
  if (pattern.slice(-3) === '/**') {
    var gpattern = pattern.replace(/(\/\*\*)+$/, '')
    gmatcher = new Minimatch(gpattern, { dot: true })
  }

  return {
    matcher: new Minimatch(pattern, { dot: true }),
    gmatcher: gmatcher
  }
}

function setopts (self, pattern, options) {
  if (!options)
    options = {}

  // base-matching: just use globstar for that.
  if (options.matchBase && -1 === pattern.indexOf("/")) {
    if (options.noglobstar) {
      throw new Error("base matching requires globstar")
    }
    pattern = "**/" + pattern
  }

  self.silent = !!options.silent
  self.pattern = pattern
  self.strict = options.strict !== false
  self.realpath = !!options.realpath
  self.realpathCache = options.realpathCache || Object.create(null)
  self.follow = !!options.follow
  self.dot = !!options.dot
  self.mark = !!options.mark
  self.nodir = !!options.nodir
  if (self.nodir)
    self.mark = true
  self.sync = !!options.sync
  self.nounique = !!options.nounique
  self.nonull = !!options.nonull
  self.nosort = !!options.nosort
  self.nocase = !!options.nocase
  self.stat = !!options.stat
  self.noprocess = !!options.noprocess
  self.absolute = !!options.absolute

  self.maxLength = options.maxLength || Infinity
  self.cache = options.cache || Object.create(null)
  self.statCache = options.statCache || Object.create(null)
  self.symlinks = options.symlinks || Object.create(null)

  setupIgnores(self, options)

  self.changedCwd = false
  var cwd = process.cwd()
  if (!ownProp(options, "cwd"))
    self.cwd = cwd
  else {
    self.cwd = path.resolve(options.cwd)
    self.changedCwd = self.cwd !== cwd
  }

  self.root = options.root || path.resolve(self.cwd, "/")
  self.root = path.resolve(self.root)
  if (process.platform === "win32")
    self.root = self.root.replace(/\\/g, "/")

  // TODO: is an absolute `cwd` supposed to be resolved against `root`?
  // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
  self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)
  if (process.platform === "win32")
    self.cwdAbs = self.cwdAbs.replace(/\\/g, "/")
  self.nomount = !!options.nomount

  // disable comments and negation in Minimatch.
  // Note that they are not supported in Glob itself anyway.
  options.nonegate = true
  options.nocomment = true

  self.minimatch = new Minimatch(pattern, options)
  self.options = self.minimatch.options
}

function finish (self) {
  var nou = self.nounique
  var all = nou ? [] : Object.create(null)

  for (var i = 0, l = self.matches.length; i < l; i ++) {
    var matches = self.matches[i]
    if (!matches || Object.keys(matches).length === 0) {
      if (self.nonull) {
        // do like the shell, and spit out the literal glob
        var literal = self.minimatch.globSet[i]
        if (nou)
          all.push(literal)
        else
          all[literal] = true
      }
    } else {
      // had matches
      var m = Object.keys(matches)
      if (nou)
        all.push.apply(all, m)
      else
        m.forEach(function (m) {
          all[m] = true
        })
    }
  }

  if (!nou)
    all = Object.keys(all)

  if (!self.nosort)
    all = all.sort(self.nocase ? alphasorti : alphasort)

  // at *some* point we statted all of these
  if (self.mark) {
    for (var i = 0; i < all.length; i++) {
      all[i] = self._mark(all[i])
    }
    if (self.nodir) {
      all = all.filter(function (e) {
        var notDir = !(/\/$/.test(e))
        var c = self.cache[e] || self.cache[makeAbs(self, e)]
        if (notDir && c)
          notDir = c !== 'DIR' && !Array.isArray(c)
        return notDir
      })
    }
  }

  if (self.ignore.length)
    all = all.filter(function(m) {
      return !isIgnored(self, m)
    })

  self.found = all
}

function mark (self, p) {
  var abs = makeAbs(self, p)
  var c = self.cache[abs]
  var m = p
  if (c) {
    var isDir = c === 'DIR' || Array.isArray(c)
    var slash = p.slice(-1) === '/'

    if (isDir && !slash)
      m += '/'
    else if (!isDir && slash)
      m = m.slice(0, -1)

    if (m !== p) {
      var mabs = makeAbs(self, m)
      self.statCache[mabs] = self.statCache[abs]
      self.cache[mabs] = self.cache[abs]
    }
  }

  return m
}

// lotta situps...
function makeAbs (self, f) {
  var abs = f
  if (f.charAt(0) === '/') {
    abs = path.join(self.root, f)
  } else if (isAbsolute(f) || f === '') {
    abs = f
  } else if (self.changedCwd) {
    abs = path.resolve(self.cwd, f)
  } else {
    abs = path.resolve(f)
  }

  if (process.platform === 'win32')
    abs = abs.replace(/\\/g, '/')

  return abs
}


// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
function isIgnored (self, path) {
  if (!self.ignore.length)
    return false

  return self.ignore.some(function(item) {
    return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
  })
}

function childrenIgnored (self, path) {
  if (!self.ignore.length)
    return false

  return self.ignore.some(function(item) {
    return !!(item.gmatcher && item.gmatcher.match(path))
  })
}


/***/ }),
/* 241 */
/***/ (function(module, exports, __webpack_require__) {

var wrappy = __webpack_require__(242)
var reqs = Object.create(null)
var once = __webpack_require__(243)

module.exports = wrappy(inflight)

function inflight (key, cb) {
  if (reqs[key]) {
    reqs[key].push(cb)
    return null
  } else {
    reqs[key] = [cb]
    return makeres(key)
  }
}

function makeres (key) {
  return once(function RES () {
    var cbs = reqs[key]
    var len = cbs.length
    var args = slice(arguments)

    // XXX It's somewhat ambiguous whether a new callback added in this
    // pass should be queued for later execution if something in the
    // list of callbacks throws, or if it should just be discarded.
    // However, it's such an edge case that it hardly matters, and either
    // choice is likely as surprising as the other.
    // As it happens, we do go ahead and schedule it for later execution.
    try {
      for (var i = 0; i < len; i++) {
        cbs[i].apply(null, args)
      }
    } finally {
      if (cbs.length > len) {
        // added more in the interim.
        // de-zalgo, just in case, but don't call again.
        cbs.splice(0, len)
        process.nextTick(function () {
          RES.apply(null, args)
        })
      } else {
        delete reqs[key]
      }
    }
  })
}

function slice (args) {
  var length = args.length
  var array = []

  for (var i = 0; i < length; i++) array[i] = args[i]
  return array
}


/***/ }),
/* 242 */
/***/ (function(module, exports) {

// Returns a wrapper function that returns a wrapped callback
// The wrapper function should do some stuff, and return a
// presumably different callback function.
// This makes sure that own properties are retained, so that
// decorations and such are not lost along the way.
module.exports = wrappy
function wrappy (fn, cb) {
  if (fn && cb) return wrappy(fn)(cb)

  if (typeof fn !== 'function')
    throw new TypeError('need wrapper function')

  Object.keys(fn).forEach(function (k) {
    wrapper[k] = fn[k]
  })

  return wrapper

  function wrapper() {
    var args = new Array(arguments.length)
    for (var i = 0; i < args.length; i++) {
      args[i] = arguments[i]
    }
    var ret = fn.apply(this, args)
    var cb = args[args.length-1]
    if (typeof ret === 'function' && ret !== cb) {
      Object.keys(cb).forEach(function (k) {
        ret[k] = cb[k]
      })
    }
    return ret
  }
}


/***/ }),
/* 243 */
/***/ (function(module, exports, __webpack_require__) {

var wrappy = __webpack_require__(242)
module.exports = wrappy(once)
module.exports.strict = wrappy(onceStrict)

once.proto = once(function () {
  Object.defineProperty(Function.prototype, 'once', {
    value: function () {
      return once(this)
    },
    configurable: true
  })

  Object.defineProperty(Function.prototype, 'onceStrict', {
    value: function () {
      return onceStrict(this)
    },
    configurable: true
  })
})

function once (fn) {
  var f = function () {
    if (f.called) return f.value
    f.called = true
    return f.value = fn.apply(this, arguments)
  }
  f.called = false
  return f
}

function onceStrict (fn) {
  var f = function () {
    if (f.called)
      throw new Error(f.onceError)
    f.called = true
    return f.value = fn.apply(this, arguments)
  }
  var name = fn.name || 'Function wrapped with `once`'
  f.onceError = name + " shouldn't be called more than once"
  f.called = false
  return f
}


/***/ }),
/* 244 */
/***/ (function(module, exports, __webpack_require__) {

/*
 * Line By Line
 *
 * A NodeJS module that helps you reading large text files, line by line,
 * without buffering the files into memory.
 *
 * Copyright (c) 2012 Markus von der Wehd <mvdw@mwin.de>
 * MIT License, see LICENSE.txt, see http://www.opensource.org/licenses/mit-license.php
 */

var stream = __webpack_require__(111);
var StringDecoder = __webpack_require__(245).StringDecoder;
var path = __webpack_require__(55);
var fs = __webpack_require__(94);
var events = __webpack_require__(237);

// let's make sure we have a setImmediate function (node.js <0.10)
if (typeof global.setImmediate == 'undefined') { setImmediate = process.nextTick;}

var LineByLineReader = function (filepath, options) {
	var self = this;

	this._encoding = options && options.encoding || 'utf8';
	if (filepath instanceof stream.Readable) {
		this._readStream = filepath;
	}
	else {
		this._readStream = null;
		this._filepath = path.normalize(filepath);
		this._streamOptions = { encoding: this._encoding };

		if (options && options.start) {
			this._streamOptions.start = options.start;
		}

		if (options && options.end) {
			this._streamOptions.end = options.end;
		}
	}
	this._skipEmptyLines = options && options.skipEmptyLines || false;

	this._lines = [];
	this._lineFragment = '';
	this._paused = false;
	this._end = false;
	this._ended = false;
	this.decoder = new StringDecoder(this._encoding);

	events.EventEmitter.call(this);

	setImmediate(function () {
		self._initStream();
	});
};

LineByLineReader.prototype = Object.create(events.EventEmitter.prototype, {
	constructor: {
		value: LineByLineReader,
		enumerable: false
	}
});

LineByLineReader.prototype._initStream = function () {
	var self = this,
		readStream = this._readStream ? this._readStream :
			fs.createReadStream(this._filepath, this._streamOptions);

	readStream.on('error', function (err) {
		self.emit('error', err);
	});

	readStream.on('open', function () {
		self.emit('open');
	});

	readStream.on('data', function (data) {
		self._readStream.pause();
		var dataAsString = data;
		if (data instanceof Buffer) {
			dataAsString = self.decoder.write(data);
		}
		self._lines = self._lines.concat(dataAsString.split(/(?:\n|\r\n|\r)/g));

		self._lines[0] = self._lineFragment + self._lines[0];
		self._lineFragment = self._lines.pop() || '';

		setImmediate(function () {
			self._nextLine();
		});
	});

	readStream.on('end', function () {
		self._end = true;

		setImmediate(function () {
			self._nextLine();
		});
	});

	this._readStream = readStream;
};

LineByLineReader.prototype._nextLine = function () {
	var self = this,
		line;

	if (this._paused) {
		return;
	}

	if (this._lines.length === 0) {
		if (this._end) {
			if (this._lineFragment) {
				this.emit('line', this._lineFragment);
				this._lineFragment = '';
			}
			if (!this._paused) {
				this.end();
			}
		} else {
			this._readStream.resume();
		}
		return;
	}

	line = this._lines.shift();

	if (!this._skipEmptyLines || line.length > 0) {
		this.emit('line', line);
	}

	setImmediate(function () {
		if (!this._paused) {
			self._nextLine();
		}
	});
};

LineByLineReader.prototype.pause = function () {
	this._paused = true;
};

LineByLineReader.prototype.resume = function () {
	var self = this;

	this._paused = false;

	setImmediate(function () {
		self._nextLine();
	});
};

LineByLineReader.prototype.end = function () {
	if (!this._ended){
		this._ended = true;
		this.emit('end');
	}
};

LineByLineReader.prototype.close = function () {
	var self = this;

	this._readStream.destroy();
	this._end = true;
	this._lines = [];

	setImmediate(function () {
		self._nextLine();
	});
};

module.exports = LineByLineReader;


/***/ }),
/* 245 */
/***/ (function(module, exports) {

module.exports = require("string_decoder");

/***/ }),
/* 246 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

(function (window) {
  var validGroupName = /^[$_a-z][$_a-z0-9]*$/i;
  var cache;

  function parseRegex(text) {
    var i, c, c1, c12, nameEnd, name, item,
      mapper = {},
      current = 0,
      regexText = "",
      inCharSet = false;

    for (i = 0; i < text.length; ++i) {
      c = text[i]; c1 = text[i + 1]; c12 = c1 + text[i + 2];
      regexText += c;
      if (c === "\\") {
        if (!inCharSet && c12 === "k<") {
          // this is back reference
          nameEnd = text.indexOf(">", i + 3);
          if (nameEnd < 0) {
            throw new Error("'>' missing in named backreference.");
          }
          name = text.substring(i + 3, nameEnd);
          item = mapper[name];
          if (!item) {
            throw new Error("Named group '" + name + "' is not defined in backreference.");
          }
          if (typeof item !== "number") {
            throw new Error("Named backreference referencing duplicate named group '" + name + "'.");
          }
          i = nameEnd;
          regexText += item;
        } else {
          regexText += c1;
          ++i;
        }
      } else if (inCharSet) {
        if (c === "]") {
          inCharSet = false;
        }
      } else if (c === "[") {
        inCharSet = true;
      } else {
        // if it starts with '(' and is neither non capturing group '(?:', nor positive lookahead "(?=" nor negative lookahead "(?!" then this is capturing group expression 
        if (c === "(" && c12 !== "?:" && c12 !== "?=" && c12 !== "?!") {
          current++;
          // if it starts with '?<' or ':<' then this is capturing named group 
          if (c12 === "?<" || c12 === ":<") {
            nameEnd = text.indexOf(">", i + 3);
            if (nameEnd < 0) {
              throw new Error("'>' missing in named group.");
            }
            name = text.substring(i + 3, nameEnd);
            if (!validGroupName.test(name)) {
              throw new Error("Invalide group name '" + name + "'. Regexp group name should start with '_$a-zA-Z' and can contain only '_$a-zA-Z0-9'.");
            }
            item = mapper[name];
            if (item === undefined) {
              mapper[name] = current;
            } else if (typeof item === "number") {
              mapper[name] = [item, current];
            } else {
              item.push(current);
            }
            i = nameEnd;
          }
        }
      }
    }
    return { mapper: mapper, regexText: regexText };
  }

  function parseReplacement(text, groupsIndices) {
    var i, c, c1, name, nameEnd, groupIndex,
      result = '';
    for (i = 0; i < text.length; ++i) {
      c = text[i]; c1 = text[i + 1];
      result += c;
      if (c === '$') {
        if (c1 === '$') {
          result += c1;
          ++i;
        } else if (c1 === '{') {
          nameEnd = text.indexOf("}", i + 2);
          if (nameEnd < 0) {
            throw new Error("'>' missing in replacement named group.");
          }
          name = text.substring(i + 2, nameEnd);
          groupIndex = groupsIndices[name];
          if (groupIndex === undefined) {
            throw new Error("Named group '" + name + "' is not defined in replacement text.");
          }
          if (typeof groupIndex !== "number") {
            throw new Error("Named replacement referencing duplicate named group '" + name + "'.");
          }
          result += groupIndex;
          i = nameEnd;
        }
      }
    }
    return result;
  }
  /**
   * Create regexp with additional properties or enable/disable cache
   * @param {(string|RegExp|boolean)} regexp string, regular literal or true/false for enable/disable cache 
   * @param {string} flags 
   */
  function createNamedRegex(regexp, flags) {

    if (typeof regexp === "boolean") {
      // options parameter
      if (regexp === false) {
        cache = undefined;
      } else if (!cache) {
        cache = {};
      }
      return;
    }

    if (typeof regexp !== "string") {
      // parameter is regexp literal
      flags = (regexp.global ? "g" : "") +
        (regexp.multiline ? "m" : "") +
        (regexp.ignoreCase ? "i" : "");
      regexp = regexp.source;
    }

    var info = cache ? (cache[regexp] || (cache[regexp] = parseRegex(regexp))) : parseRegex(regexp);
    var regex = new RegExp(info.regexText, flags);

    regex.groupsIndices = info.mapper;

    function extendMatched(matched) {
      var mapper = info.mapper;
      /**
      * Returns value for group name or undefined. If same group name was defined multiple time, it returns first not undefined value.
      * If all is set to true, then it returns array of all matched values.
      */
      matched.group = function (name, all) {
        var indices = mapper[name];
        if (typeof indices === "number") {
          // name group is defined only once
          return matched[indices];
        } else if (all) {
          // name group is defined multiple time and because all is true, return array of all matched values
          return indices.map(function (v) { return matched[v]; });
        } else if (indices) {
          // name group is defined multiple time and because all is false, return first not undefined matched value
          for (var i = 0; i < indices.length; ++i) {
            var value = matched[indices[i]];
            if (value !== undefined) {
              return value;
            }
          }
        }
        return undefined;
      };
      var cachedGroups, cachedGroupsAll;
      matched.groups = function (all) {
        var cg = all ? cachedGroupsAll : cachedGroups;
        if (cg) {
          return cg;
        }
        cg = {};
        for (var name in mapper) {
          cg[name] = matched.group(name, all);
        }
        return all ? cachedGroupsAll = cg : cachedGroups = cg;
      };
      return matched;
    }

    regex.exec = function (text) {
      var matched = RegExp.prototype.exec.call(this, text);
      if (matched) {
        extendMatched(matched);
      }
      return matched;
    }
    regex.execGroups = function (text, all) {
      var matched = this.exec(text);
      if (!matched) {
        return null;
      }
      return matched.groups(all);
    }

    regex.replace = function (text, replacement) {
      if (typeof replacement === "function") {
        return text.replace(regex, function () {
          var matched = Array.prototype.slice.call(arguments, 0, arguments.length - 2);
          extendMatched(matched);
          return replacement.apply(matched, arguments);
        });
      } else {
        var replacementText = parseReplacement(replacement, this.groupsIndices);
        return text.replace(this, replacementText);
      }
    }
    return regex;
  }

  if (true) {
    module.exports = createNamedRegex;
  } else {}


})(typeof window === "undefined" ? this : window);






/***/ }),
/* 247 */
/***/ (function(module, exports, __webpack_require__) {

/*
 * Fuzzy
 * https://github.com/myork/fuzzy
 *
 * Copyright (c) 2012 Matt York
 * Licensed under the MIT license.
 */

(function() {

var root = this;

var fuzzy = {};

// Use in node or in browser
if (true) {
  module.exports = fuzzy;
} else {}

// Return all elements of `array` that have a fuzzy
// match against `pattern`.
fuzzy.simpleFilter = function(pattern, array) {
  return array.filter(function(str) {
    return fuzzy.test(pattern, str);
  });
};

// Does `pattern` fuzzy match `str`?
fuzzy.test = function(pattern, str) {
  return fuzzy.match(pattern, str) !== null;
};

// If `pattern` matches `str`, wrap each matching character
// in `opts.pre` and `opts.post`. If no match, return null
fuzzy.match = function(pattern, str, opts) {
  opts = opts || {};
  var patternIdx = 0
    , result = []
    , len = str.length
    , totalScore = 0
    , currScore = 0
    // prefix
    , pre = opts.pre || ''
    // suffix
    , post = opts.post || ''
    // String to compare against. This might be a lowercase version of the
    // raw string
    , compareString =  opts.caseSensitive && str || str.toLowerCase()
    , ch;

  pattern = opts.caseSensitive && pattern || pattern.toLowerCase();

  // For each character in the string, either add it to the result
  // or wrap in template if it's the next string in the pattern
  for(var idx = 0; idx < len; idx++) {
    ch = str[idx];
    if(compareString[idx] === pattern[patternIdx]) {
      ch = pre + ch + post;
      patternIdx += 1;

      // consecutive characters should increase the score more than linearly
      currScore += 1 + currScore;
    } else {
      currScore = 0;
    }
    totalScore += currScore;
    result[result.length] = ch;
  }

  // return rendered string if we have a match for every char
  if(patternIdx === pattern.length) {
    // if the string is an exact match with pattern, totalScore should be maxed
    totalScore = (compareString === pattern) ? Infinity : totalScore;
    return {rendered: result.join(''), score: totalScore};
  }

  return null;
};

// The normal entry point. Filters `arr` for matches against `pattern`.
// It returns an array with matching values of the type:
//
//     [{
//         string:   '<b>lah' // The rendered string
//       , index:    2        // The index of the element in `arr`
//       , original: 'blah'   // The original element in `arr`
//     }]
//
// `opts` is an optional argument bag. Details:
//
//    opts = {
//        // string to put before a matching character
//        pre:     '<b>'
//
//        // string to put after matching character
//      , post:    '</b>'
//
//        // Optional function. Input is an entry in the given arr`,
//        // output should be the string to test `pattern` against.
//        // In this example, if `arr = [{crying: 'koala'}]` we would return
//        // 'koala'.
//      , extract: function(arg) { return arg.crying; }
//    }
fuzzy.filter = function(pattern, arr, opts) {
  if(!arr || arr.length === 0) {
    return [];
  }
  if (typeof pattern !== 'string') {
    return arr;
  }
  opts = opts || {};
  return arr
    .reduce(function(prev, element, idx, arr) {
      var str = element;
      if(opts.extract) {
        str = opts.extract(element);
      }
      var rendered = fuzzy.match(pattern, str, opts);
      if(rendered != null) {
        prev[prev.length] = {
            string: rendered.rendered
          , score: rendered.score
          , index: idx
          , original: element
        };
      }
      return prev;
    }, [])

    // Sort by score. Browsers are inconsistent wrt stable/unstable
    // sorting, so force stable by using the index in the case of tie.
    // See http://ofb.net/~sethml/is-sort-stable.html
    .sort(function(a,b) {
      var compare = b.score - a.score;
      if(compare) return compare;
      return a.index - b.index;
    });
};


}());



/***/ }),
/* 248 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(205);
const constants_1 = __webpack_require__(84);
const coc_nvim_1 = __webpack_require__(2);
const types_3 = __webpack_require__(75);
const types_4 = __webpack_require__(77);
const languageServerFolder = 'languageServer';
/**
 * Starts the language server managers per workspaces (currently one for first workspace).
 *
 * @export
 * @class LanguageServerExtensionActivator
 * @implements {ILanguageServerActivator}
 */
let LanguageServerExtensionActivator = class LanguageServerExtensionActivator {
    constructor(manager, workspace, fs, lsDownloader, languageServerFolderService, configurationService, context) {
        this.manager = manager;
        this.workspace = workspace;
        this.fs = fs;
        this.lsDownloader = lsDownloader;
        this.languageServerFolderService = languageServerFolderService;
        this.configurationService = configurationService;
        this.context = context;
        this.disposable = coc_nvim_1.commands.registerCommand(constants_1.Commands.Upgrade_Languageserver, () => {
            return this.downloadLatestLanguageServer();
        });
    }
    async activate(resource) {
        if (!resource) {
            resource = coc_nvim_1.Uri.file(this.workspace.rootPath);
        }
        await this.ensureLanguageServerIsAvailable(resource);
        await this.manager.start(resource);
    }
    dispose() {
        this.manager.dispose();
        if (this.disposable) {
            this.disposable.dispose();
        }
    }
    async ensureLanguageServerIsAvailable(resource) {
        const settings = this.configurationService.getSettings(resource);
        if (!settings.downloadLanguageServer) {
            return;
        }
        const languageServerFolder = await this.languageServerFolderService.getLanguageServerFolderName();
        const languageServerFolderPath = path.join(this.context.storagePath, languageServerFolder);
        const mscorlib = path.join(languageServerFolderPath, 'mscorlib.dll');
        if (!(await this.fs.fileExists(mscorlib))) {
            await this.lsDownloader.downloadLanguageServer(languageServerFolderPath);
        }
    }
    async downloadLatestLanguageServer() {
        const latest = await this.languageServerFolderService.getLatestLanguageServerVersion();
        const languageServerFolderPath = path.join(this.context.storagePath, languageServerFolder + '.' + latest.version.raw);
        const mscorlib = path.join(languageServerFolderPath, 'mscorlib.dll');
        if (!(await this.fs.fileExists(mscorlib))) {
            await this.lsDownloader.downloadLanguageServer(languageServerFolderPath);
        }
    }
};
__decorate([
    logger_1.traceDecorators.error('Failed to activate language server')
], LanguageServerExtensionActivator.prototype, "activate", null);
__decorate([
    logger_1.traceDecorators.error('Failed to ensure language server is available')
], LanguageServerExtensionActivator.prototype, "ensureLanguageServerIsAvailable", null);
__decorate([
    logger_1.traceDecorators.error('Failed to download latest language server')
], LanguageServerExtensionActivator.prototype, "downloadLatestLanguageServer", null);
LanguageServerExtensionActivator = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.ILanguageServerManager)),
    __param(1, inversify_1.inject(types_1.IWorkspaceService)),
    __param(2, inversify_1.inject(types_2.IFileSystem)),
    __param(3, inversify_1.inject(types_4.ILanguageServerDownloader)),
    __param(4, inversify_1.inject(types_4.ILanguageServerFolderService)),
    __param(5, inversify_1.inject(types_3.IConfigurationService)),
    __param(6, inversify_1.inject(types_3.IExtensionContext))
], LanguageServerExtensionActivator);
exports.LanguageServerExtensionActivator = LanguageServerExtensionActivator;


/***/ }),
/* 249 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
// import { CancellationToken, CompletionContext, ConfigurationChangeEvent, Disposable, Event, Emitter, OutputChannel, Position, TextDocument } from 'coc.nvim'
const coc_nvim_1 = __webpack_require__(2);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(75);
const decorators_1 = __webpack_require__(151);
const types_3 = __webpack_require__(166);
const contracts_1 = __webpack_require__(90);
const types_4 = __webpack_require__(77);
const function_1 = __webpack_require__(80);
let LanguageServerAnalysisOptions = class LanguageServerAnalysisOptions {
    constructor(context, envVarsProvider, configuration, workspace, surveyBanner, interpreterService, output, pathUtils, languageServerFolderService) {
        this.context = context;
        this.envVarsProvider = envVarsProvider;
        this.configuration = configuration;
        this.workspace = workspace;
        this.surveyBanner = surveyBanner;
        this.interpreterService = interpreterService;
        this.output = output;
        this.pathUtils = pathUtils;
        this.languageServerFolderService = languageServerFolderService;
        this.envPythonPath = '';
        this.excludedFiles = [];
        this.typeshedPaths = [];
        this.disposables = [];
        this.languageServerFolder = '';
        this.didChange = new vscode_languageserver_protocol_1.Emitter();
    }
    async initialize(resource) {
        this.resource = resource;
        this.languageServerFolder = await this.languageServerFolderService.getLanguageServerFolderName();
        let disposable = this.workspace.onDidChangeConfiguration(this.onSettingsChangedHandler, this);
        this.disposables.push(disposable);
        disposable = this.interpreterService.onDidChangeInterpreter(() => this.didChange.fire(), this);
        this.disposables.push(disposable);
        disposable = this.envVarsProvider.onDidEnvironmentVariablesChange(this.onEnvVarChange, this);
        this.disposables.push(disposable);
    }
    get onDidChange() {
        return this.didChange.event;
    }
    dispose() {
        this.disposables.forEach(d => d.dispose());
        this.didChange.dispose();
    }
    async getAnalysisOptions() {
        const properties = {};
        const interpreterInfo = await this.interpreterService.getActiveInterpreter(this.resource);
        if (!interpreterInfo) {
            // tslint:disable-next-line:no-suspicious-comment
            // TODO: How do we handle this?  It is pretty unlikely...
            throw Error('did not find an active interpreter');
        }
        // tslint:disable-next-line:no-string-literal
        properties['InterpreterPath'] = interpreterInfo.path;
        const version = interpreterInfo.version;
        if (version) {
            // tslint:disable-next-line:no-string-literal
            properties['Version'] = `${version.major}.${version.minor}.${version.patch}`;
        }
        else {
            logger_1.traceError('Unable to determine Python version. Analysis may be limited.');
        }
        let searchPaths = [];
        const settings = this.configuration.getSettings(this.resource);
        if (settings.autoComplete) {
            const extraPaths = settings.autoComplete.extraPaths;
            if (extraPaths && extraPaths.length > 0) {
                searchPaths.push(...extraPaths);
            }
        }
        // tslint:disable-next-line:no-string-literal
        properties['DatabasePath'] = path.resolve(this.context.storagePath, this.languageServerFolder);
        const vars = await this.envVarsProvider.getEnvironmentVariables();
        this.envPythonPath = vars.PYTHONPATH || '';
        if (this.envPythonPath !== '') {
            const paths = this.envPythonPath.split(this.pathUtils.delimiter).filter(item => item.trim().length > 0);
            searchPaths.push(...paths);
        }
        searchPaths = searchPaths.map(p => path.normalize(p));
        this.excludedFiles = this.getExcludedFiles();
        this.typeshedPaths = this.getTypeshedPaths();
        const documentSelector = [
            { scheme: 'file', language: constants_1.PYTHON_LANGUAGE },
            { scheme: 'untitled', language: constants_1.PYTHON_LANGUAGE }
        ];
        documentSelector[0].pattern = `${coc_nvim_1.workspace.rootPath}/**/*`;
        // Options to control the language client
        return {
            // Register the server for Python documents
            documentSelector,
            workspaceFolder: coc_nvim_1.workspace.workspaceFolder,
            disableDiagnostics: !settings.analysis.diagnosticEnabled,
            synchronize: {
                configurationSection: constants_1.PYTHON_LANGUAGE
            },
            outputChannel: this.output,
            initializationOptions: {
                interpreter: {
                    properties
                },
                displayOptions: {
                    preferredFormat: 'markdown',
                    trimDocumentationLines: false,
                    maxDocumentationLineLength: 0,
                    trimDocumentationText: false,
                    maxDocumentationTextLength: 0
                },
                searchPaths,
                typeStubSearchPaths: this.typeshedPaths,
                excludeFiles: this.excludedFiles,
                testEnvironment: constants_1.isTestExecution(),
                analysisUpdates: true,
                traceLogging: true,
                asyncStartup: true
            },
            middleware: {
                provideCompletionItem: (document, position, context, token, next) => {
                    this.surveyBanner.showBanner().catch(function_1.emptyFn);
                    return next(document, position, context, token);
                }
            }
        };
    }
    getExcludedFiles() {
        const list = ['**/Lib/**', '**/site-packages/**'];
        this.getVsCodeExcludeSection('search.exclude', list);
        this.getVsCodeExcludeSection('files.exclude', list);
        this.getVsCodeExcludeSection('files.watcherExclude', list);
        this.getPythonExcludeSection(list);
        return list;
    }
    getVsCodeExcludeSection(setting, list) {
        const states = this.workspace.getConfiguration(setting);
        if (states) {
            Object.keys(states)
                .filter(k => (k.indexOf('*') >= 0 || k.indexOf('/') >= 0) && states[k])
                .forEach(p => list.push(p));
        }
    }
    getPythonExcludeSection(list) {
        const pythonSettings = this.configuration.getSettings(this.resource);
        const paths = pythonSettings && pythonSettings.linting ? pythonSettings.linting.ignorePatterns : undefined;
        if (paths && Array.isArray(paths)) {
            paths
                .filter(p => p && p.length > 0)
                .forEach(p => list.push(p));
        }
    }
    getTypeshedPaths() {
        const settings = this.configuration.getSettings(this.resource);
        return settings.analysis.typeshedPaths && settings.analysis.typeshedPaths.length > 0
            ? settings.analysis.typeshedPaths
            : [path.join(this.context.extensionPath, this.languageServerFolder, 'Typeshed')];
    }
    async onSettingsChangedHandler(e) {
        if (e && !e.affectsConfiguration('python')) {
            return;
        }
        this.onSettingsChanged();
    }
    onSettingsChanged() {
        this.notifyIfSettingsChanged().catch(function_1.emptyFn);
    }
    async notifyIfSettingsChanged() {
        const excludedFiles = this.getExcludedFiles();
        await this.notifyIfValuesHaveChanged(this.excludedFiles, excludedFiles);
        const typeshedPaths = this.getTypeshedPaths();
        await this.notifyIfValuesHaveChanged(this.typeshedPaths, typeshedPaths);
    }
    async notifyIfValuesHaveChanged(oldArray, newArray) {
        if (newArray.length !== oldArray.length) {
            this.didChange.fire();
            return;
        }
        for (let i = 0; i < oldArray.length; i += 1) {
            if (oldArray[i] !== newArray[i]) {
                this.didChange.fire();
                return;
            }
        }
    }
    onEnvVarChange() {
        this.notifyifEnvPythonPathChanged().catch(function_1.emptyFn);
    }
    async notifyifEnvPythonPathChanged() {
        const vars = await this.envVarsProvider.getEnvironmentVariables();
        const envPythonPath = vars.PYTHONPATH;
        if (this.envPythonPath !== envPythonPath) {
            this.didChange.fire();
        }
    }
};
__decorate([
    logger_1.traceDecorators.error('Failed to get analysis options')
], LanguageServerAnalysisOptions.prototype, "getAnalysisOptions", null);
__decorate([
    decorators_1.debounce(1000)
], LanguageServerAnalysisOptions.prototype, "onSettingsChanged", null);
__decorate([
    logger_1.traceDecorators.verbose('Changes in python settings detected in analysis options')
], LanguageServerAnalysisOptions.prototype, "notifyIfSettingsChanged", null);
__decorate([
    decorators_1.debounce(1000)
], LanguageServerAnalysisOptions.prototype, "onEnvVarChange", null);
LanguageServerAnalysisOptions = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IExtensionContext)),
    __param(1, inversify_1.inject(types_3.IEnvironmentVariablesProvider)),
    __param(2, inversify_1.inject(types_2.IConfigurationService)),
    __param(3, inversify_1.inject(types_1.IWorkspaceService)),
    __param(4, inversify_1.inject(types_2.IPythonExtensionBanner)), __param(4, inversify_1.named(types_2.BANNER_NAME_PROPOSE_LS)),
    __param(5, inversify_1.inject(contracts_1.IInterpreterService)),
    __param(6, inversify_1.inject(types_2.IOutputChannel)), __param(6, inversify_1.named(constants_1.STANDARD_OUTPUT_CHANNEL)),
    __param(7, inversify_1.inject(types_2.IPathUtils)),
    __param(8, inversify_1.inject(types_4.ILanguageServerFolderService))
], LanguageServerAnalysisOptions);
exports.LanguageServerAnalysisOptions = LanguageServerAnalysisOptions;


/***/ }),
/* 250 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(75);
const types_2 = __webpack_require__(95);
const lastCheckedForLSDateTimeCacheKey = 'LS.LAST.CHECK.TIME';
const frequencyForBetalLSDownloadCheck = 1000 * 60 * 60 * 24; // One day.
let DownloadDailyChannelRule = class DownloadDailyChannelRule {
    async shouldLookForNewLanguageServer(_currentFolder) {
        return true;
    }
};
DownloadDailyChannelRule = __decorate([
    inversify_1.injectable()
], DownloadDailyChannelRule);
exports.DownloadDailyChannelRule = DownloadDailyChannelRule;
let DownloadStableChannelRule = class DownloadStableChannelRule {
    async shouldLookForNewLanguageServer(currentFolder) {
        return currentFolder ? false : true;
    }
};
DownloadStableChannelRule = __decorate([
    inversify_1.injectable()
], DownloadStableChannelRule);
exports.DownloadStableChannelRule = DownloadStableChannelRule;
let DownloadBetaChannelRule = class DownloadBetaChannelRule {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    async shouldLookForNewLanguageServer(currentFolder) {
        // For beta, we do this only once a day.
        const stateFactory = this.serviceContainer.get(types_1.IPersistentStateFactory);
        const globalState = stateFactory.createGlobalPersistentState(lastCheckedForLSDateTimeCacheKey, true, frequencyForBetalLSDownloadCheck);
        // If we haven't checked it in the last 24 hours, then ensure we don't do it again.
        if (globalState.value) {
            await globalState.updateValue(false);
            return true;
        }
        return !currentFolder || globalState.value;
    }
};
DownloadBetaChannelRule = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], DownloadBetaChannelRule);
exports.DownloadBetaChannelRule = DownloadBetaChannelRule;


/***/ }),
/* 251 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const async_1 = __webpack_require__(150);
const localize_1 = __webpack_require__(93);
const stopWatch_1 = __webpack_require__(165);
const types_4 = __webpack_require__(77);
const function_1 = __webpack_require__(80);
// tslint:disable:no-require-imports no-any
const downloadFileExtension = '.nupkg';
let LanguageServerDownloader = class LanguageServerDownloader {
    constructor(platformData, output, httpClient, lsFolderService, appShell, fs) {
        this.platformData = platformData;
        this.output = output;
        this.httpClient = httpClient;
        this.lsFolderService = lsFolderService;
        this.appShell = appShell;
        this.fs = fs;
    }
    async getDownloadInfo() {
        return this.lsFolderService.getLatestLanguageServerVersion().then(item => item);
    }
    async downloadLanguageServer(destinationFolder) {
        const downloadInfo = await this.getDownloadInfo();
        const downloadUri = downloadInfo.uri;
        const lsVersion = downloadInfo.version.raw;
        const timer = new stopWatch_1.StopWatch();
        let success = true;
        let localTempFilePath = '';
        try {
            localTempFilePath = await this.downloadFile(downloadUri, 'Downloading Microsoft Python Language Server... ');
        }
        catch (err) {
            this.output.appendLine(localize_1.LanguageService.downloadFailedOutputMessage());
            this.output.appendLine(err);
            success = false;
            this.showMessageAndOptionallyShowOutput(localize_1.LanguageService.lsFailedToDownload()).catch(function_1.emptyFn);
            throw new Error(err);
        }
        timer.reset();
        try {
            await this.unpackArchive(destinationFolder, localTempFilePath);
        }
        catch (err) {
            this.output.appendLine(localize_1.LanguageService.extractionFailedOutputMessage());
            this.output.appendLine(err);
            success = false;
            this.showMessageAndOptionallyShowOutput(localize_1.LanguageService.lsFailedToExtract()).catch(function_1.emptyFn);
            throw new Error(err);
        }
        finally {
            await this.fs.deleteFile(localTempFilePath);
        }
    }
    async showMessageAndOptionallyShowOutput(message) {
        coc_nvim_1.workspace.showMessage(message + ' checkout output for detail.', 'error');
    }
    async downloadFile(uri, title) {
        this.output.append(`Downloading ${uri}... `);
        const tempFile = await this.fs.createTemporaryFile(downloadFileExtension);
        let statusItem = coc_nvim_1.workspace.createStatusBarItem(0, { progress: true });
        statusItem.text = `Downloading ${uri}... `;
        const deferred = async_1.createDeferred();
        const fileStream = this.fs.createWriteStream(tempFile.filePath);
        fileStream.on('finish', () => {
            fileStream.close();
        }).on('error', err => {
            tempFile.dispose();
            deferred.reject(err);
        });
        statusItem.show();
        const req = await this.httpClient.downloadFile(uri);
        req.on('response', response => {
            if (response.statusCode !== 200) {
                const error = new Error(`Failed with status ${response.statusCode}, ${response.statusMessage}, Uri ${uri}`);
                deferred.reject(error);
                throw error;
            }
        });
        const requestProgress = __webpack_require__(252);
        requestProgress(req)
            .on('progress', (state) => {
            // https://www.npmjs.com/package/request-progress
            const received = Math.round(state.size.transferred / 1024);
            const total = Math.round(state.size.total / 1024);
            const percentage = Math.round(100 * state.percent);
            statusItem.text = `${title}${received} of ${total} KB (${percentage}%)`;
        })
            .on('error', (err) => {
            deferred.reject(err);
            statusItem.dispose();
        })
            .on('end', () => {
            statusItem.dispose();
            this.output.appendLine(localize_1.LanguageService.extractionCompletedOutputMessage());
            deferred.resolve();
        })
            .pipe(fileStream);
        await deferred.promise;
        return tempFile.filePath;
    }
    async unpackArchive(destinationFolder, tempFilePath) {
        this.output.append('Unpacking archive... ');
        const deferred = async_1.createDeferred();
        const title = 'Extracting files... ';
        let statusItem = coc_nvim_1.workspace.createStatusBarItem(0, { progress: true });
        statusItem.text = title;
        statusItem.show();
        // tslint:disable-next-line:no-require-imports no-var-requires
        const StreamZip = __webpack_require__(254);
        const zip = new StreamZip({
            file: tempFilePath,
            storeEntries: true
        });
        let totalFiles = 0;
        let extractedFiles = 0;
        zip.on('ready', async () => {
            totalFiles = zip.entriesCount;
            if (!await this.fs.directoryExists(destinationFolder)) {
                await this.fs.createDirectory(destinationFolder);
            }
            zip.extract(null, destinationFolder, (err) => {
                if (err) {
                    deferred.reject(err);
                }
                else {
                    deferred.resolve();
                }
                zip.close();
            });
        }).on('extract', () => {
            extractedFiles += 1;
            statusItem.text = `${title}${Math.round(100 * extractedFiles / totalFiles)}%`;
        }).on('error', (e) => {
            deferred.reject(e);
        });
        await deferred.promise;
        statusItem.dispose();
        // Set file to executable (nothing happens in Windows, as chmod has no definition there)
        const executablePath = path.join(destinationFolder, this.platformData.engineExecutableName);
        await this.fs.chmod(executablePath, '0755'); // -rwxrw-r--
        this.output.appendLine(localize_1.LanguageService.extractionDoneOutputMessage());
    }
};
LanguageServerDownloader = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.IPlatformData)),
    __param(1, inversify_1.inject(types_3.IOutputChannel)), __param(1, inversify_1.named(constants_1.STANDARD_OUTPUT_CHANNEL)),
    __param(2, inversify_1.inject(types_4.IHttpClient)),
    __param(3, inversify_1.inject(types_4.ILanguageServerFolderService)),
    __param(4, inversify_1.inject(types_1.IApplicationShell)),
    __param(5, inversify_1.inject(types_2.IFileSystem))
], LanguageServerDownloader);
exports.LanguageServerDownloader = LanguageServerDownloader;


/***/ }),
/* 252 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var throttle = __webpack_require__(253);

function onRequest(context) {
    // Reset dynamic stuff
    context.startedAt = null;

    context.state = context.request.progressState = null;

    context.delayTimer && clearTimeout(context.delayTimer);
    context.delayTimer = null;
}

function onResponse(context, response) {
    // Mark start timestamp
    context.startedAt = Date.now();

    // Create state
    // Also expose the state throught the request
    // See https://github.com/IndigoUnited/node-request-progress/pull/2/files
    context.state = context.request.progressState = {
        time: {
            elapsed: 0,
            remaining: null
        },
        speed: null,
        percent: null,
        size: {
            total: Number(response.headers[context.options.lengthHeader]) || null,
            transferred: 0
        }
    };

    // Delay the progress report
    context.delayTimer = setTimeout(function () {
        context.delayTimer = null;
    }, context.options.delay);
}

function onData(context, data) {
    context.state.size.transferred += data.length;

    !context.delayTimer && context.reportState();
}

function onEnd(context) {
    /* istanbul ignore if */
    if (context.delayTimer) {
        clearTimeout(context.delayTimer);
        context.delayTimer = null;
    }

    context.request.progressState = context.request.progressContext = null;
}

function reportState(context) {
    var state;

    // Do nothing if still within the initial delay or if already finished
    if (context.delayTimer || !context.request.progressState) {
        return;
    }

    state = context.state;
    state.time.elapsed = (Date.now() - context.startedAt) / 1000;

    // Calculate speed only if 1s has passed
    if (state.time.elapsed >= 1) {
        state.speed = state.size.transferred / state.time.elapsed;
    }

    // Calculate percent & remaining only if we know the total size
    if (state.size.total != null) {
        state.percent = Math.min(state.size.transferred, state.size.total) / state.size.total;

        if (state.speed != null) {
            state.time.remaining = state.percent !== 1 ? (state.size.total / state.speed) - state.time.elapsed : 0;
            state.time.remaining = Math.round(state.time.remaining * 1000) / 1000;  // Round to 4 decimals
        }
    }

    context.request.emit('progress', state);
}


function requestProgress(request, options) {
    var context;

    if (request.progressContext) {
        return request;
    }

    if (request.response) {
        throw new Error('Already got response, it\'s too late to track progress');
    }

    // Parse options
    options = options || {};
    options.throttle = options.throttle == null ? 1000 : options.throttle;
    options.delay = options.delay || 0;
    options.lengthHeader = options.lengthHeader || 'content-length';

    // Create context
    context = {};
    context.request = request;
    context.options = options;
    context.reportState = throttle(reportState.bind(null, context), options.throttle);
    // context.startedAt = null;
    // context.state = null;
    // context.delayTimer = null;

    // Attach listeners
    request
    .on('request', onRequest.bind(null, context))
    .on('response', function handleResponse(response) {
        response.on('data', onData.bind(null, context));
        
        return onResponse(context, response);
    })
    .on('end', onEnd.bind(null, context));

    request.progressContext = context;

    return request;
}

module.exports = requestProgress;


/***/ }),
/* 253 */
/***/ (function(module, exports) {

module.exports = throttle;

/**
 * Returns a new function that, when invoked, invokes `func` at most once per `wait` milliseconds.
 *
 * @param {Function} func Function to wrap.
 * @param {Number} wait Number of milliseconds that must elapse between `func` invocations.
 * @return {Function} A new function that wraps the `func` function passed in.
 */

function throttle (func, wait) {
  var ctx, args, rtn, timeoutID; // caching
  var last = 0;

  return function throttled () {
    ctx = this;
    args = arguments;
    var delta = new Date() - last;
    if (!timeoutID)
      if (delta >= wait) call();
      else timeoutID = setTimeout(call, wait - delta);
    return rtn;
  };

  function call () {
    timeoutID = 0;
    last = +new Date();
    rtn = func.apply(ctx, args);
    ctx = null;
    args = null;
  }
}


/***/ }),
/* 254 */
/***/ (function(module, exports, __webpack_require__) {

/**
 * @license node-stream-zip | (c) 2015 Antelle | https://github.com/antelle/node-stream-zip/blob/master/LICENSE
 * Portions copyright https://github.com/cthackers/adm-zip | https://raw.githubusercontent.com/cthackers/adm-zip/master/LICENSE
 */

// region Deps

var
    util = __webpack_require__(113),
    fs = __webpack_require__(94),
    path = __webpack_require__(55),
    events = __webpack_require__(237),
    zlib = __webpack_require__(255),
    stream = __webpack_require__(111);

// endregion

// region Constants

var consts = {
    /* The local file header */
    LOCHDR           : 30, // LOC header size
    LOCSIG           : 0x04034b50, // "PK\003\004"
    LOCVER           : 4, // version needed to extract
    LOCFLG           : 6, // general purpose bit flag
    LOCHOW           : 8, // compression method
    LOCTIM           : 10, // modification time (2 bytes time, 2 bytes date)
    LOCCRC           : 14, // uncompressed file crc-32 value
    LOCSIZ           : 18, // compressed size
    LOCLEN           : 22, // uncompressed size
    LOCNAM           : 26, // filename length
    LOCEXT           : 28, // extra field length

    /* The Data descriptor */
    EXTSIG           : 0x08074b50, // "PK\007\008"
    EXTHDR           : 16, // EXT header size
    EXTCRC           : 4, // uncompressed file crc-32 value
    EXTSIZ           : 8, // compressed size
    EXTLEN           : 12, // uncompressed size

    /* The central directory file header */
    CENHDR           : 46, // CEN header size
    CENSIG           : 0x02014b50, // "PK\001\002"
    CENVEM           : 4, // version made by
    CENVER           : 6, // version needed to extract
    CENFLG           : 8, // encrypt, decrypt flags
    CENHOW           : 10, // compression method
    CENTIM           : 12, // modification time (2 bytes time, 2 bytes date)
    CENCRC           : 16, // uncompressed file crc-32 value
    CENSIZ           : 20, // compressed size
    CENLEN           : 24, // uncompressed size
    CENNAM           : 28, // filename length
    CENEXT           : 30, // extra field length
    CENCOM           : 32, // file comment length
    CENDSK           : 34, // volume number start
    CENATT           : 36, // internal file attributes
    CENATX           : 38, // external file attributes (host system dependent)
    CENOFF           : 42, // LOC header offset

    /* The entries in the end of central directory */
    ENDHDR           : 22, // END header size
    ENDSIG           : 0x06054b50, // "PK\005\006"
    ENDSIGFIRST      : 0x50,
    ENDSUB           : 8, // number of entries on this disk
    ENDTOT           : 10, // total number of entries
    ENDSIZ           : 12, // central directory size in bytes
    ENDOFF           : 16, // offset of first CEN header
    ENDCOM           : 20, // zip file comment length
    MAXFILECOMMENT   : 0xFFFF,

    /* The entries in the end of ZIP64 central directory locator */
    ENDL64HDR       : 20, // ZIP64 end of central directory locator header size
    ENDL64SIG       : 0x07064b50, // ZIP64 end of central directory locator signature
    ENDL64SIGFIRST  : 0x50,
    ENDL64OFS       : 8, // ZIP64 end of central directory offset

    /* The entries in the end of ZIP64 central directory */
    END64HDR        : 56, // ZIP64 end of central directory header size
    END64SIG        : 0x06064b50, // ZIP64 end of central directory signature
    END64SIGFIRST   : 0x50,
    END64SUB        : 24, // number of entries on this disk
    END64TOT        : 32, // total number of entries
    END64SIZ        : 40,
    END64OFF        : 48,

    /* Compression methods */
    STORED           : 0, // no compression
    SHRUNK           : 1, // shrunk
    REDUCED1         : 2, // reduced with compression factor 1
    REDUCED2         : 3, // reduced with compression factor 2
    REDUCED3         : 4, // reduced with compression factor 3
    REDUCED4         : 5, // reduced with compression factor 4
    IMPLODED         : 6, // imploded
    // 7 reserved
    DEFLATED         : 8, // deflated
    ENHANCED_DEFLATED: 9, // enhanced deflated
    PKWARE           : 10,// PKWare DCL imploded
    // 11 reserved
    BZIP2            : 12, //  compressed using BZIP2
    // 13 reserved
    LZMA             : 14, // LZMA
    // 15-17 reserved
    IBM_TERSE        : 18, // compressed using IBM TERSE
    IBM_LZ77         : 19, //IBM LZ77 z

    /* General purpose bit flag */
    FLG_ENC          : 0,  // encrypted file
    FLG_COMP1        : 1,  // compression option
    FLG_COMP2        : 2,  // compression option
    FLG_DESC         : 4,  // data descriptor
    FLG_ENH          : 8,  // enhanced deflation
    FLG_STR          : 16, // strong encryption
    FLG_LNG          : 1024, // language encoding
    FLG_MSK          : 4096, // mask header values
    FLG_ENTRY_ENC    : 1,

    /* 4.5 Extensible data fields */
    EF_ID            : 0,
    EF_SIZE          : 2,

    /* Header IDs */
    ID_ZIP64         : 0x0001,
    ID_AVINFO        : 0x0007,
    ID_PFS           : 0x0008,
    ID_OS2           : 0x0009,
    ID_NTFS          : 0x000a,
    ID_OPENVMS       : 0x000c,
    ID_UNIX          : 0x000d,
    ID_FORK          : 0x000e,
    ID_PATCH         : 0x000f,
    ID_X509_PKCS7    : 0x0014,
    ID_X509_CERTID_F : 0x0015,
    ID_X509_CERTID_C : 0x0016,
    ID_STRONGENC     : 0x0017,
    ID_RECORD_MGT    : 0x0018,
    ID_X509_PKCS7_RL : 0x0019,
    ID_IBM1          : 0x0065,
    ID_IBM2          : 0x0066,
    ID_POSZIP        : 0x4690,

    EF_ZIP64_OR_32   : 0xffffffff,
    EF_ZIP64_OR_16   : 0xffff
};

// endregion

// region StreamZip

var StreamZip = function(config) {
    var
        fd,
        fileSize,
        chunkSize,
        ready = false,
        that = this,
        op,
        centralDirectory,

        entries = config.storeEntries !== false ? {} : null,
        fileName = config.file;

    open();

    function open() {
        fs.open(fileName, 'r', function(err, f) {
            if (err)
                return that.emit('error', err);
            fd = f;
            fs.fstat(fd, function(err, stat) {
                if (err)
                    return that.emit('error', err);
                fileSize = stat.size;
                chunkSize = config.chunkSize || Math.round(fileSize / 1000);
                chunkSize = Math.max(Math.min(chunkSize, Math.min(128*1024, fileSize)), Math.min(1024, fileSize));
                readCentralDirectory();
            });
        });
    }

    function readUntilFoundCallback(err, bytesRead) {
        if (err || !bytesRead)
            return that.emit('error', err || 'Archive read error');
        var
            buffer = op.win.buffer,
            pos = op.lastPos,
            bufferPosition = pos - op.win.position,
            minPos = op.minPos;
        while (--pos >= minPos && --bufferPosition >= 0) {
            if (buffer.length - bufferPosition >= 4 &&
                buffer[bufferPosition] === op.firstByte) { // quick check first signature byte
                if (buffer.readUInt32LE(bufferPosition) === op.sig) {
                    op.lastBufferPosition = bufferPosition;
                    op.lastBytesRead = bytesRead;
                    op.complete();
                    return;
                }
            }
        }
        if (pos === minPos) {
            return that.emit('error', 'Bad archive');
        }
        op.lastPos = pos + 1;
        op.chunkSize *= 2;
        if (pos <= minPos)
            return that.emit('error', 'Bad archive');
        var expandLength = Math.min(op.chunkSize, pos - minPos);
        op.win.expandLeft(expandLength, readUntilFoundCallback);

    }

    function readCentralDirectory() {
        var totalReadLength = Math.min(consts.ENDHDR + consts.MAXFILECOMMENT, fileSize);
        op = {
            win: new FileWindowBuffer(fd),
            totalReadLength: totalReadLength,
            minPos: fileSize - totalReadLength,
            lastPos: fileSize,
            chunkSize: Math.min(1024, chunkSize),
            firstByte: consts.ENDSIGFIRST,
            sig: consts.ENDSIG,
            complete: readCentralDirectoryComplete
        };
        op.win.read(fileSize - op.chunkSize, op.chunkSize, readUntilFoundCallback);
    }

    function readCentralDirectoryComplete() {
        var buffer = op.win.buffer;
        var pos = op.lastBufferPosition;
        try {
            centralDirectory = new CentralDirectoryHeader();
            centralDirectory.read(buffer.slice(pos, pos + consts.ENDHDR));
            centralDirectory.headerOffset = op.win.position + pos;
            if (centralDirectory.commentLength)
                that.comment = buffer.slice(pos + consts.ENDHDR,
                    pos + consts.ENDHDR + centralDirectory.commentLength).toString();
            else
                that.comment = null;
            that.entriesCount = centralDirectory.volumeEntries;
            that.centralDirectory = centralDirectory;
            if (centralDirectory.volumeEntries === consts.EF_ZIP64_OR_16 && centralDirectory.totalEntries === consts.EF_ZIP64_OR_16
                || centralDirectory.size === consts.EF_ZIP64_OR_32 || centralDirectory.offset === consts.EF_ZIP64_OR_32) {
                readZip64CentralDirectoryLocator();
            } else {
                op = {};
                readEntries();
            }
        } catch (err) {
            that.emit('error', err);
        }
    }

    function readZip64CentralDirectoryLocator() {
        var length = consts.ENDL64HDR;
        if (op.lastBufferPosition > length) {
            op.lastBufferPosition -= length;
            readZip64CentralDirectoryLocatorComplete();
        } else {
            op = {
                win: op.win,
                totalReadLength: length,
                minPos: op.win.position - length,
                lastPos: op.win.position,
                chunkSize: op.chunkSize,
                firstByte: consts.ENDL64SIGFIRST,
                sig: consts.ENDL64SIG,
                complete: readZip64CentralDirectoryLocatorComplete
            };
            op.win.read(op.lastPos - op.chunkSize, op.chunkSize, readUntilFoundCallback);
        }
    }

    function readZip64CentralDirectoryLocatorComplete() {
        var buffer = op.win.buffer;
        var locHeader = new CentralDirectoryLoc64Header();
        locHeader.read(buffer.slice(op.lastBufferPosition, op.lastBufferPosition + consts.ENDL64HDR));
        var readLength = fileSize - locHeader.headerOffset;
        op = {
            win: op.win,
            totalReadLength: readLength,
            minPos: locHeader.headerOffset,
            lastPos: op.lastPos,
            chunkSize: op.chunkSize,
            firstByte: consts.END64SIGFIRST,
            sig: consts.END64SIG,
            complete: readZip64CentralDirectoryComplete
        };
        op.win.read(fileSize - op.chunkSize, op.chunkSize, readUntilFoundCallback);
    }

    function readZip64CentralDirectoryComplete() {
        var buffer = op.win.buffer;
        var zip64cd = new CentralDirectoryZip64Header();
        zip64cd.read(buffer.slice(op.lastBufferPosition, op.lastBufferPosition + consts.END64HDR));
        that.centralDirectory.volumeEntries = zip64cd.volumeEntries;
        that.centralDirectory.totalEntries = zip64cd.totalEntries;
        that.centralDirectory.size = zip64cd.size;
        that.centralDirectory.offset = zip64cd.offset;
        that.entriesCount = zip64cd.volumeEntries;
        op = {};
        readEntries();
    }

    function readEntries() {
        op = {
            win: new FileWindowBuffer(fd),
            pos: centralDirectory.offset,
            chunkSize: chunkSize,
            entriesLeft: centralDirectory.volumeEntries
        };
        op.win.read(op.pos, Math.min(chunkSize, fileSize - op.pos), readEntriesCallback);
    }

    function readEntriesCallback(err, bytesRead) {
        if (err || !bytesRead)
            return that.emit('error', err || 'Entries read error');
        var
            buffer = op.win.buffer,
            bufferPos = op.pos - op.win.position,
            bufferLength = buffer.length,
            entry = op.entry;
        try {
            while (op.entriesLeft > 0) {
                if (!entry) {
                    entry = new ZipEntry();
                    entry.readHeader(buffer, bufferPos);
                    entry.headerOffset = op.win.position + bufferPos;
                    op.entry = entry;
                    op.pos += consts.CENHDR;
                    bufferPos += consts.CENHDR;
                }
                var entryHeaderSize = entry.fnameLen + entry.extraLen + entry.comLen;
                var advanceBytes = entryHeaderSize + (op.entriesLeft > 1 ? consts.CENHDR : 0);
                if (bufferLength - bufferPos < advanceBytes) {
                    op.win.moveRight(chunkSize, readEntriesCallback, bufferPos);
                    op.move = true;
                    return;
                }
                entry.read(buffer, bufferPos);
                if (!config.skipEntryNameValidation) {
                    entry.validateName();
                }
                if (entries)
                    entries[entry.name] = entry;
                that.emit('entry', entry);
                op.entry = entry = null;
                op.entriesLeft--;
                op.pos += entryHeaderSize;
                bufferPos += entryHeaderSize;
            }
            that.emit('ready');
        } catch (err) {
            that.emit('error', err);
        }
    }

    function checkEntriesExist() {
        if (!entries)
            throw new Error('storeEntries disabled');
    }

    Object.defineProperty(this, 'ready', { get: function() { return ready; } });

    this.entry = function(name) {
        checkEntriesExist();
        return entries[name];
    };

    this.entries = function() {
        checkEntriesExist();
        return entries;
    };

    this.stream = function(entry, callback) {
        return this.openEntry(entry, function(err, entry) {
            if (err)
                return callback(err);
            var offset = dataOffset(entry);
            var entryStream = new EntryDataReaderStream(fd, offset, entry.compressedSize);
            if (entry.method === consts.STORED) {
            } else if (entry.method === consts.DEFLATED || entry.method === consts.ENHANCED_DEFLATED) {
                entryStream = entryStream.pipe(zlib.createInflateRaw());
            } else {
                return callback('Unknown compression method: ' + entry.method);
            }
            if (canVerifyCrc(entry))
                entryStream = entryStream.pipe(new EntryVerifyStream(entryStream, entry.crc, entry.size));
            callback(null, entryStream);
        }, false);
    };

    this.entryDataSync = function(entry) {
        var err = null;
        this.openEntry(entry, function(e, en) {
            err = e;
            entry = en;
        }, true);
        if (err)
            throw err;
        var
            data = Buffer.alloc(entry.compressedSize),
            bytesRead;
        new FsRead(fd, data, 0, entry.compressedSize, dataOffset(entry), function(e, br) {
            err = e;
            bytesRead = br;
        }).read(true);
        if (err)
            throw err;
        if (entry.method === consts.STORED) {
        } else if (entry.method === consts.DEFLATED || entry.method === consts.ENHANCED_DEFLATED) {
            data = zlib.inflateRawSync(data);
        } else {
            throw new Error('Unknown compression method: ' + entry.method);
        }
        if (data.length !== entry.size)
            throw new Error('Invalid size');
        if (canVerifyCrc(entry)) {
            var verify = new CrcVerify(entry.crc, entry.size);
            verify.data(data);
        }
        return data;
    };

    this.openEntry = function(entry, callback, sync) {
        if (typeof entry === 'string') {
            checkEntriesExist();
            entry = entries[entry];
            if (!entry)
                return callback('Entry not found');
        }
        if (!entry.isFile)
            return callback('Entry is not file');
        if (!fd)
            return callback('Archive closed');
        var buffer = Buffer.alloc(consts.LOCHDR);
        new FsRead(fd, buffer, 0, buffer.length, entry.offset, function(err) {
            if (err)
                return callback(err);
            var readEx;
            try {
                entry.readDataHeader(buffer);
                if (entry.encrypted) {
                    readEx = 'Entry encrypted';
                }
            } catch (ex) {
                readEx = ex
            }
            callback(readEx, entry);
        }).read(sync);
    };

    function dataOffset(entry) {
        return entry.offset + consts.LOCHDR + entry.fnameLen + entry.extraLen;
    }

    function canVerifyCrc(entry) {
        // if bit 3 (0x08) of the general-purpose flags field is set, then the CRC-32 and file sizes are not known when the header is written
        return (entry.flags & 0x8) != 0x8;
    }

    function extract(entry, outPath, callback) {
        that.stream(entry, function (err, stm) {
            if (err) {
                callback(err);
            } else {
                var fsStm, errThrown;
                stm.on('error', function(err) {
                    errThrown = err;
                    if (fsStm) {
                        stm.unpipe(fsStm);
                        fsStm.close(function () {
                            callback(err);
                        });
                    }
                });
                fs.open(outPath, 'w', function(err, fdFile) {
                    if (err)
                        return callback(err || errThrown);
                    if (errThrown) {
                        fs.close(fd, function() {
                            callback(errThrown);
                        });
                        return;
                    }
                    fsStm = fs.createWriteStream(outPath, { fd: fdFile });
                    fsStm.on('finish', function() {
                        that.emit('extract', entry, outPath);
                        if (!errThrown)
                            callback();
                    });
                    stm.pipe(fsStm);
                });
            }
        });
    }

    function createDirectories(baseDir, dirs, callback) {
        if (!dirs.length)
            return callback();
        var dir = dirs.shift();
        dir = path.join(baseDir, path.join.apply(path, dir));
        fs.mkdir(dir, function(err) {
            if (err && err.code !== 'EEXIST')
                return callback(err);
            createDirectories(baseDir, dirs, callback);
        });
    }

    function extractFiles(baseDir, baseRelPath, files, callback, extractedCount) {
        if (!files.length)
            return callback(null, extractedCount);
        var file = files.shift();
        var targetPath = path.join(baseDir, file.name.replace(baseRelPath, ''));
        extract(file, targetPath, function (err) {
            if (err)
                return callback(err, extractedCount);
            extractFiles(baseDir, baseRelPath, files, callback, extractedCount + 1);
        });
    }

    this.extract = function(entry, outPath, callback) {
        var entryName = entry || '';
        if (typeof entry === 'string') {
            entry = this.entry(entry);
            if (entry) {
                entryName = entry.name;
            } else {
                if (entryName.length && entryName[entryName.length - 1] !== '/')
                    entryName += '/';
            }
        }
        if (!entry || entry.isDirectory) {
            var files = [], dirs = [], allDirs = {};
            for (var e in entries) {
                if (Object.prototype.hasOwnProperty.call(entries, e) && e.lastIndexOf(entryName, 0) === 0) {
                    var relPath = e.replace(entryName, '');
                    var childEntry = entries[e];
                    if (childEntry.isFile) {
                        files.push(childEntry);
                        relPath = path.dirname(relPath);
                    }
                    if (relPath && !allDirs[relPath] && relPath !== '.') {
                        allDirs[relPath] = true;
                        var parts = relPath.split('/').filter(function (f) { return f; });
                        if (parts.length)
                            dirs.push(parts);
                        while (parts.length > 1) {
                            parts = parts.slice(0, parts.length - 1);
                            var partsPath = parts.join('/');
                            if (allDirs[partsPath] || partsPath === '.') {
                                break;
                            }
                            allDirs[partsPath] = true;
                            dirs.push(parts);
                        }
                    }
                }
            }
            dirs.sort(function(x, y) { return x.length - y.length; });
            if (dirs.length) {
                createDirectories(outPath, dirs, function (err) {
                    if (err)
                        callback(err);
                    else
                        extractFiles(outPath, entryName, files, callback, 0);
                });
            } else {
                extractFiles(outPath, entryName, files, callback, 0);
            }
        } else {
            fs.stat(outPath, function(err, stat) {
                if (stat && stat.isDirectory())
                    extract(entry, path.join(outPath, path.basename(entry.name)), callback);
                else
                    extract(entry, outPath, callback);
            });
        }
    };

    this.close = function(callback) {
        if (fd) {
            fs.close(fd, function(err) {
                fd = null;
                if (callback)
                    callback(err);
            });
        } else if (callback) {
            callback();
        }
    };
};

StreamZip.setFs = function(customFs) {
    fs = customFs;
};

util.inherits(StreamZip, events.EventEmitter);

// endregion

// region CentralDirectoryHeader

var CentralDirectoryHeader = function() {
};

CentralDirectoryHeader.prototype.read = function(data) {
    if (data.length != consts.ENDHDR || data.readUInt32LE(0) != consts.ENDSIG)
        throw new Error('Invalid central directory');
    // number of entries on this volume
    this.volumeEntries = data.readUInt16LE(consts.ENDSUB);
    // total number of entries
    this.totalEntries = data.readUInt16LE(consts.ENDTOT);
    // central directory size in bytes
    this.size = data.readUInt32LE(consts.ENDSIZ);
    // offset of first CEN header
    this.offset = data.readUInt32LE(consts.ENDOFF);
    // zip file comment length
    this.commentLength = data.readUInt16LE(consts.ENDCOM);
};

// endregion

// region CentralDirectoryLoc64Header

var CentralDirectoryLoc64Header = function() {
};

CentralDirectoryLoc64Header.prototype.read = function(data) {
    if (data.length != consts.ENDL64HDR || data.readUInt32LE(0) != consts.ENDL64SIG)
        throw new Error('Invalid zip64 central directory locator');
    // ZIP64 EOCD header offset
    this.headerOffset = Util.readUInt64LE(data, consts.ENDSUB);
};

// endregion

// region CentralDirectoryZip64Header

var CentralDirectoryZip64Header = function() {
};

CentralDirectoryZip64Header.prototype.read = function(data) {
    if (data.length != consts.END64HDR || data.readUInt32LE(0) != consts.END64SIG)
        throw new Error('Invalid central directory');
    // number of entries on this volume
    this.volumeEntries = Util.readUInt64LE(data, consts.END64SUB);
    // total number of entries
    this.totalEntries = Util.readUInt64LE(data, consts.END64TOT);
    // central directory size in bytes
    this.size = Util.readUInt64LE(data, consts.END64SIZ);
    // offset of first CEN header
    this.offset = Util.readUInt64LE(data, consts.END64OFF);
};

// endregion

// region ZipEntry

var ZipEntry = function() {
};

function toBits(dec, size) {
    var b = (dec >>> 0).toString(2);
    while (b.length < size)
        b = '0' + b;
    return b.split('');
}

function parseZipTime(timebytes, datebytes) {
    var timebits = toBits(timebytes, 16);
    var datebits = toBits(datebytes, 16);

    var mt = {
        h: parseInt(timebits.slice(0,5).join(''), 2),
        m: parseInt(timebits.slice(5,11).join(''), 2),
        s: parseInt(timebits.slice(11,16).join(''), 2) * 2,
        Y: parseInt(datebits.slice(0,7).join(''), 2) + 1980,
        M: parseInt(datebits.slice(7,11).join(''), 2),
        D: parseInt(datebits.slice(11,16).join(''), 2),
    };
    var dt_str = [mt.Y, mt.M, mt.D].join('-') + ' ' + [mt.h, mt.m, mt.s].join(':') + ' GMT+0';
    return new Date(dt_str).getTime();
}

ZipEntry.prototype.readHeader = function(data, offset) {
    // data should be 46 bytes and start with "PK 01 02"
    if (data.length < offset + consts.CENHDR || data.readUInt32LE(offset) != consts.CENSIG) {
        throw new Error('Invalid entry header');
    }
    // version made by
    this.verMade = data.readUInt16LE(offset + consts.CENVEM);
    // version needed to extract
    this.version = data.readUInt16LE(offset + consts.CENVER);
    // encrypt, decrypt flags
    this.flags = data.readUInt16LE(offset + consts.CENFLG);
    // compression method
    this.method = data.readUInt16LE(offset + consts.CENHOW);
    // modification time (2 bytes time, 2 bytes date)
    var timebytes = data.readUInt16LE(offset + consts.CENTIM);
    var datebytes = data.readUInt16LE(offset + consts.CENTIM + 2);
    this.time = parseZipTime(timebytes, datebytes);

    // uncompressed file crc-32 value
    this.crc = data.readUInt32LE(offset + consts.CENCRC);
    // compressed size
    this.compressedSize = data.readUInt32LE(offset + consts.CENSIZ);
    // uncompressed size
    this.size = data.readUInt32LE(offset + consts.CENLEN);
    // filename length
    this.fnameLen = data.readUInt16LE(offset + consts.CENNAM);
    // extra field length
    this.extraLen = data.readUInt16LE(offset + consts.CENEXT);
    // file comment length
    this.comLen = data.readUInt16LE(offset + consts.CENCOM);
    // volume number start
    this.diskStart = data.readUInt16LE(offset + consts.CENDSK);
    // internal file attributes
    this.inattr = data.readUInt16LE(offset + consts.CENATT);
    // external file attributes
    this.attr = data.readUInt32LE(offset + consts.CENATX);
    // LOC header offset
    this.offset = data.readUInt32LE(offset + consts.CENOFF);
};

ZipEntry.prototype.readDataHeader = function(data) {
    // 30 bytes and should start with "PK\003\004"
    if (data.readUInt32LE(0) != consts.LOCSIG) {
        throw new Error('Invalid local header');
    }
    // version needed to extract
    this.version = data.readUInt16LE(consts.LOCVER);
    // general purpose bit flag
    this.flags = data.readUInt16LE(consts.LOCFLG);
    // compression method
    this.method = data.readUInt16LE(consts.LOCHOW);
    // modification time (2 bytes time ; 2 bytes date)
    var timebytes = data.readUInt16LE(consts.LOCTIM);
    var datebytes = data.readUInt16LE(consts.LOCTIM + 2);
    this.time = parseZipTime(timebytes, datebytes);

    // uncompressed file crc-32 value
    this.crc = data.readUInt32LE(consts.LOCCRC) || this.crc;
    // compressed size
    var compressedSize = data.readUInt32LE(consts.LOCSIZ);
    if (compressedSize && compressedSize !== consts.EF_ZIP64_OR_32) {
        this.compressedSize = compressedSize;
    }
    // uncompressed size
    var size = data.readUInt32LE(consts.LOCLEN);
    if (size && size !== consts.EF_ZIP64_OR_32) {
        this.size = size;
    }
    // filename length
    this.fnameLen = data.readUInt16LE(consts.LOCNAM);
    // extra field length
    this.extraLen = data.readUInt16LE(consts.LOCEXT);
};

ZipEntry.prototype.read = function(data, offset) {
    this.name = data.slice(offset, offset += this.fnameLen).toString();
    var lastChar = data[offset - 1];
    this.isDirectory = (lastChar == 47) || (lastChar == 92);

    if (this.extraLen) {
        this.readExtra(data, offset);
        offset += this.extraLen;
    }
    this.comment = this.comLen ? data.slice(offset, offset + this.comLen).toString() : null;
};

ZipEntry.prototype.validateName = function() {
    if (/\\|^\w+:|^\/|(^|\/)\.\.(\/|$)/.test(this.name)) {
        throw new Error('Malicious entry: ' + this.name);
    }
};

ZipEntry.prototype.readExtra = function(data, offset) {
    var signature, size, maxPos = offset + this.extraLen;
    while (offset < maxPos) {
        signature = data.readUInt16LE(offset);
        offset += 2;
        size = data.readUInt16LE(offset);
        offset += 2;
        if (consts.ID_ZIP64 === signature) {
            this.parseZip64Extra(data, offset, size);
        }
        offset += size;
    }
};

ZipEntry.prototype.parseZip64Extra = function(data, offset, length) {
    if (length >= 8 && this.size === consts.EF_ZIP64_OR_32) {
        this.size = Util.readUInt64LE(data, offset);
        offset += 8; length -= 8;
    }
    if (length >= 8 && this.compressedSize === consts.EF_ZIP64_OR_32) {
        this.compressedSize = Util.readUInt64LE(data, offset);
        offset += 8; length -= 8;
    }
    if (length >= 8 && this.offset === consts.EF_ZIP64_OR_32) {
        this.offset = Util.readUInt64LE(data, offset);
        offset += 8; length -= 8;
    }
    if (length >= 4 && this.diskStart === consts.EF_ZIP64_OR_16) {
        this.diskStart = data.readUInt32LE(offset);
        // offset += 4; length -= 4;
    }
};

Object.defineProperty(ZipEntry.prototype, 'encrypted', {
    get: function() { return (this.flags & consts.FLG_ENTRY_ENC) == consts.FLG_ENTRY_ENC; }
});

Object.defineProperty(ZipEntry.prototype, 'isFile', {
    get: function() { return !this.isDirectory; }
});

// endregion

// region FsRead

var FsRead = function(fd, buffer, offset, length, position, callback) {
    this.fd = fd;
    this.buffer = buffer;
    this.offset = offset;
    this.length = length;
    this.position = position;
    this.callback = callback;
    this.bytesRead = 0;
    this.waiting = false;
};

FsRead.prototype.read = function(sync) {
    if (StreamZip.debug) {
        console.log('read', this.position, this.bytesRead, this.length, this.offset);
    }
    this.waiting = true;
    var err;
    if (sync) {
        try {
            var bytesRead = fs.readSync(this.fd, this.buffer, this.offset + this.bytesRead,
                this.length - this.bytesRead, this.position + this.bytesRead);
        } catch (e) {
            err = e;
        }
        this.readCallback(sync, err, err ? bytesRead : null);
    } else {
        fs.read(this.fd, this.buffer, this.offset + this.bytesRead,
            this.length - this.bytesRead, this.position + this.bytesRead,
            this.readCallback.bind(this, sync));
    }
};

FsRead.prototype.readCallback = function(sync, err, bytesRead) {
    if (typeof bytesRead === 'number')
        this.bytesRead += bytesRead;
    if (err || !bytesRead || this.bytesRead === this.length) {
        this.waiting = false;
        return this.callback(err, this.bytesRead);
    } else {
        this.read(sync);
    }
};

// endregion

// region FileWindowBuffer

var FileWindowBuffer = function(fd) {
    this.position = 0;
    this.buffer = Buffer.alloc(0);

    var fsOp = null;

    this.checkOp = function() {
        if (fsOp && fsOp.waiting)
            throw new Error('Operation in progress');
    };

    this.read = function(pos, length, callback) {
        this.checkOp();
        if (this.buffer.length < length)
            this.buffer = Buffer.alloc(length);
        this.position = pos;
        fsOp = new FsRead(fd, this.buffer, 0, length, this.position, callback).read();
    };

    this.expandLeft = function(length, callback) {
        this.checkOp();
        this.buffer = Buffer.concat([Buffer.alloc(length), this.buffer]);
        this.position -= length;
        if (this.position < 0)
            this.position = 0;
        fsOp = new FsRead(fd, this.buffer, 0, length, this.position, callback).read();
    };

    this.expandRight = function(length, callback) {
        this.checkOp();
        var offset = this.buffer.length;
        this.buffer = Buffer.concat([this.buffer, Buffer.alloc(length)]);
        fsOp = new FsRead(fd, this.buffer, offset, length, this.position + offset, callback).read();
    };

    this.moveRight = function(length, callback, shift) {
        this.checkOp();
        if (shift) {
            this.buffer.copy(this.buffer, 0, shift);
        } else {
            shift = 0;
        }
        this.position += shift;
        fsOp = new FsRead(fd, this.buffer, this.buffer.length - shift, shift, this.position + this.buffer.length - shift, callback).read();
    };
};

// endregion

// region EntryDataReaderStream

var EntryDataReaderStream = function(fd, offset, length) {
    stream.Readable.prototype.constructor.call(this);
    this.fd = fd;
    this.offset = offset;
    this.length = length;
    this.pos = 0;
    this.readCallback = this.readCallback.bind(this);
};

util.inherits(EntryDataReaderStream, stream.Readable);

EntryDataReaderStream.prototype._read = function(n) {
    var buffer = Buffer.alloc(Math.min(n, this.length - this.pos));
    if (buffer.length) {
        fs.read(this.fd, buffer, 0, buffer.length, this.offset + this.pos, this.readCallback);
    } else {
        this.push(null);
    }
};

EntryDataReaderStream.prototype.readCallback = function(err, bytesRead, buffer) {
    this.pos += bytesRead;
    if (err) {
        this.emit('error', err);
        this.push(null);
    } else if (!bytesRead) {
        this.push(null);
    } else {
        if (bytesRead !== buffer.length)
            buffer = buffer.slice(0, bytesRead);
        this.push(buffer);
    }
};

// endregion

// region EntryVerifyStream

var EntryVerifyStream = function(baseStm, crc, size) {
    stream.Transform.prototype.constructor.call(this);
    this.verify = new CrcVerify(crc, size);
    var that = this;
    baseStm.on('error', function(e) {
        that.emit('error', e);
    });
};

util.inherits(EntryVerifyStream, stream.Transform);

EntryVerifyStream.prototype._transform = function(data, encoding, callback) {
    var err;
    try {
        this.verify.data(data);
    } catch (e) {
        err = e;
    }
    callback(err, data);
};

// endregion

// region CrcVerify

var CrcVerify = function(crc, size) {
    this.crc = crc;
    this.size = size;
    this.state = {
        crc: ~0,
        size: 0
    };
};

CrcVerify.prototype.data = function(data) {
    var crcTable = CrcVerify.getCrcTable();
    var crc = this.state.crc, off = 0, len = data.length;
    while (--len >= 0)
        crc = crcTable[(crc ^ data[off++]) & 0xff] ^ (crc >>> 8);
    this.state.crc = crc;
    this.state.size += data.length;
    if (this.state.size >= this.size) {
        var buf = Buffer.alloc(4);
        buf.writeInt32LE(~this.state.crc & 0xffffffff, 0);
        crc = buf.readUInt32LE(0);
        if (crc !== this.crc)
            throw new Error('Invalid CRC');
        if (this.state.size !== this.size)
            throw new Error('Invalid size');
    }
};

CrcVerify.getCrcTable = function() {
    var crcTable = CrcVerify.crcTable;
    if (!crcTable) {
        CrcVerify.crcTable = crcTable = [];
        var b = Buffer.alloc(4);
        for (var n = 0; n < 256; n++) {
            var c = n;
            for (var k = 8; --k >= 0; )
                if ((c & 1) != 0)  { c = 0xedb88320 ^ (c >>> 1); } else { c = c >>> 1; }
            if (c < 0) {
                b.writeInt32LE(c, 0);
                c = b.readUInt32LE(0);
            }
            crcTable[n] = c;
        }
    }
    return crcTable;
};

// endregion

// region Util

var Util = {
    readUInt64LE: function(buffer, offset) {
        return (buffer.readUInt32LE(offset + 4) * 0x0000000100000000) + buffer.readUInt32LE(offset);
    }
};

// endregion

// region exports

module.exports = StreamZip;

// endregion


/***/ }),
/* 255 */
/***/ (function(module, exports) {

module.exports = require("zlib");

/***/ }),
/* 256 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(75);
const types_2 = __webpack_require__(166);
const types_3 = __webpack_require__(257);
const types_4 = __webpack_require__(77);
// tslint:disable:no-require-imports no-require-imports no-var-requires max-classes-per-file
const dotNetCommand = 'dotnet';
const languageClientName = 'Python Tools';
let BaseLanguageClientFactory = class BaseLanguageClientFactory {
    constructor(downloadedFactory, simpleFactory, configurationService, envVarsProvider, environmentActivationService) {
        this.downloadedFactory = downloadedFactory;
        this.simpleFactory = simpleFactory;
        this.configurationService = configurationService;
        this.envVarsProvider = envVarsProvider;
        this.environmentActivationService = environmentActivationService;
    }
    async createLanguageClient(resource, clientOptions) {
        const settings = this.configurationService.getSettings(resource);
        const factory = settings.downloadLanguageServer ? this.downloadedFactory : this.simpleFactory;
        const env = await this.getEnvVars(resource);
        return factory.createLanguageClient(resource, clientOptions, env);
    }
    async getEnvVars(resource) {
        const envVars = await this.environmentActivationService.getActivatedEnvironmentVariables(resource);
        if (envVars && Object.keys(envVars).length > 0) {
            return envVars;
        }
        return this.envVarsProvider.getEnvironmentVariables(resource);
    }
};
BaseLanguageClientFactory = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.ILanguageClientFactory)), __param(0, inversify_1.named(types_4.LanguageClientFactory.downloaded)),
    __param(1, inversify_1.inject(types_4.ILanguageClientFactory)), __param(1, inversify_1.named(types_4.LanguageClientFactory.simple)),
    __param(2, inversify_1.inject(types_1.IConfigurationService)),
    __param(3, inversify_1.inject(types_2.IEnvironmentVariablesProvider)),
    __param(4, inversify_1.inject(types_3.IEnvironmentActivationService))
], BaseLanguageClientFactory);
exports.BaseLanguageClientFactory = BaseLanguageClientFactory;
/**
 * Creates a langauge client for use by users of the extension.
 *
 * @export
 * @class DownloadedLanguageClientFactory
 * @implements {ILanguageClientFactory}
 */
let DownloadedLanguageClientFactory = class DownloadedLanguageClientFactory {
    constructor(platformData, languageServerFolderService, context) {
        this.platformData = platformData;
        this.languageServerFolderService = languageServerFolderService;
        this.context = context;
    }
    async createLanguageClient(_resource, clientOptions, env) {
        const languageServerFolder = await this.languageServerFolderService.getLanguageServerFolderName();
        const serverModule = path.join(this.context.storagePath, languageServerFolder, this.platformData.engineExecutableName);
        const serverOptions = {
            command: serverModule,
            args: [],
            options: { stdio: 'pipe', env }
        };
        return new coc_nvim_1.LanguageClient('python', serverOptions, clientOptions, false);
    }
};
DownloadedLanguageClientFactory = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.IPlatformData)),
    __param(1, inversify_1.inject(types_4.ILanguageServerFolderService)),
    __param(2, inversify_1.inject(types_1.IExtensionContext))
], DownloadedLanguageClientFactory);
exports.DownloadedLanguageClientFactory = DownloadedLanguageClientFactory;
/**
 * Creates a language client factory primarily used for LS development purposes.
 *
 * @export
 * @class SimpleLanguageClientFactory
 * @implements {ILanguageClientFactory}
 */
let SimpleLanguageClientFactory = class SimpleLanguageClientFactory {
    constructor(platformData, languageServerFolderService, context) {
        this.platformData = platformData;
        this.languageServerFolderService = languageServerFolderService;
        this.context = context;
    }
    async createLanguageClient(_resource, clientOptions, env) {
        const languageServerFolder = await this.languageServerFolderService.getLanguageServerFolderName();
        const serverModule = path.join(this.context.storagePath, languageServerFolder, this.platformData.engineDllName);
        const serverOptions = {
            command: dotNetCommand,
            args: [serverModule],
            options: { stdio: 'pipe', env }
        };
        return new coc_nvim_1.LanguageClient('python', languageClientName, serverOptions, clientOptions);
    }
};
SimpleLanguageClientFactory = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.IPlatformData)),
    __param(1, inversify_1.inject(types_4.ILanguageServerFolderService)),
    __param(2, inversify_1.inject(types_1.IExtensionContext))
], SimpleLanguageClientFactory);
exports.SimpleLanguageClientFactory = SimpleLanguageClientFactory;


/***/ }),
/* 257 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.IEnvironmentActivationService = Symbol('IEnvironmentActivationService');


/***/ }),
/* 258 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(75);
const async_1 = __webpack_require__(150);
const misc_1 = __webpack_require__(259);
const types_2 = __webpack_require__(77);
const progress_1 = __webpack_require__(260);
const function_1 = __webpack_require__(80);
let LanguageServer = class LanguageServer {
    constructor(factory, configurationService) {
        this.factory = factory;
        this.configurationService = configurationService;
        this.disposables = [];
        this.extensionLoadedArgs = new Set();
        this.startupCompleted = async_1.createDeferred();
    }
    dispose() {
        if (this.languageClient) {
            // Do not await on this.
            this.languageClient.stop().then(misc_1.noop, ex => logger_1.traceError('Stopping language client failed', ex));
            this.languageClient = undefined;
        }
        while (this.disposables.length > 0) {
            const d = this.disposables.shift();
            d.dispose();
        }
        if (this.startupCompleted.completed) {
            this.startupCompleted.reject(new Error('Disposed Language Server'));
        }
    }
    async start(resource, options) {
        this.languageClient = await this.factory.createLanguageClient(resource, options);
        this.disposables.push(this.languageClient.start());
        await this.serverReady();
        const progressReporting = new progress_1.ProgressReporting(this.languageClient);
        this.disposables.push(progressReporting);
    }
    loadExtension(args) {
        if (this.extensionLoadedArgs.has(args || '')) {
            return;
        }
        this.extensionLoadedArgs.add(args || '');
        this.startupCompleted.promise
            .then(() => this.languageClient.sendRequest('python/loadExtension', args).then(misc_1.noop, ex => logger_1.traceError('Request python/loadExtension failed', ex)))
            .catch(function_1.emptyFn);
    }
    async serverReady() {
        while (this.languageClient && !this.languageClient.initializeResult) {
            await async_1.sleep(100);
        }
        this.startupCompleted.resolve();
    }
};
__decorate([
    logger_1.traceDecorators.verbose('Stopping Language Server')
], LanguageServer.prototype, "dispose", null);
__decorate([
    logger_1.traceDecorators.error('Failed to start language server')
], LanguageServer.prototype, "start", null);
__decorate([
    logger_1.traceDecorators.error('Failed to load Language Server extension')
], LanguageServer.prototype, "loadExtension", null);
LanguageServer = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.ILanguageClientFactory)),
    __param(0, inversify_1.named(types_2.LanguageClientFactory.base)),
    __param(1, inversify_1.inject(types_1.IConfigurationService))
], LanguageServer);
exports.LanguageServer = LanguageServer;


/***/ }),
/* 259 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable-next-line:no-empty
function noop() { }
exports.noop = noop;
function using(disposable, func) {
    try {
        func(disposable);
    }
    finally {
        disposable.dispose();
    }
}
exports.using = using;
async function usingAsync(disposable, func) {
    try {
        return await func(disposable);
    }
    finally {
        await disposable.dispose();
    }
}
exports.usingAsync = usingAsync;


/***/ }),
/* 260 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
// import { Progress, ProgressLocation, window } from 'coc.nvim'
const coc_nvim_1 = __webpack_require__(2);
class ProgressReporting {
    constructor(languageClient) {
        this.languageClient = languageClient;
        this.statusItem = coc_nvim_1.workspace.createStatusBarItem(0, { progress: true });
        this.languageClient.onNotification('python/setStatusBarMessage', (m) => {
            this.statusItem.text = m;
            this.statusItem.show();
        });
        this.languageClient.onNotification('python/beginProgress', _ => {
            this.statusItem.show();
        });
        this.languageClient.onNotification('python/reportProgress', (m) => {
            this.statusItem.text = m;
            this.statusItem.show();
        });
        this.languageClient.onNotification('python/endProgress', _ => {
            this.statusItem.hide();
        });
    }
    dispose() {
        this.statusItem.dispose();
    }
}
exports.ProgressReporting = ProgressReporting;


/***/ }),
/* 261 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(262);
const logger_1 = __webpack_require__(86);
let LanguageServerCompatibilityService = class LanguageServerCompatibilityService {
    constructor(dotnetCompatibility) {
        this.dotnetCompatibility = dotnetCompatibility;
    }
    async isSupported() {
        try {
            const supported = await this.dotnetCompatibility.isSupported();
            return supported;
        }
        catch (ex) {
            logger_1.traceError('Unable to determine whether LS is supported', ex);
            return false;
        }
    }
};
LanguageServerCompatibilityService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IDotNetCompatibilityService))
], LanguageServerCompatibilityService);
exports.LanguageServerCompatibilityService = LanguageServerCompatibilityService;


/***/ }),
/* 262 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.IDotNetCompatibilityService = Symbol('IDotNetCompatibilityService');
exports.IOSDotNetCompatibilityService = Symbol('IOSDotNetCompatibilityService');


/***/ }),
/* 263 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(78);
const coc_nvim_1 = __webpack_require__(2);
const loadExtensionCommand = 'python._loadLanguageServerExtension';
let LanguageServerExtension = class LanguageServerExtension {
    constructor(commandManager) {
        this.commandManager = commandManager;
        this._invoked = new vscode_languageserver_protocol_1.Emitter();
        this.disposables = [];
    }
    dispose() {
        coc_nvim_1.disposeAll(this.disposables);
    }
    async register() {
        if (this.disposables.length) {
            return;
        }
        this.disposables.push(coc_nvim_1.commands.registerCommand(loadExtensionCommand, args => {
            this.loadExtensionArgs = args;
            this._invoked.fire();
        }, null, true));
    }
    get invoked() {
        return this._invoked.event;
    }
};
LanguageServerExtension = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.ICommandManager))
], LanguageServerExtension);
exports.LanguageServerExtension = LanguageServerExtension;


/***/ }),
/* 264 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const semver = __importStar(__webpack_require__(265));
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const types_3 = __webpack_require__(78);
const types_4 = __webpack_require__(95);
const types_5 = __webpack_require__(77);
const languageServerFolder = 'languageServer';
let LanguageServerFolderService = class LanguageServerFolderService {
    constructor(serviceContainer, appEnv, context) {
        this.serviceContainer = serviceContainer;
        this.appEnv = appEnv;
        this.context = context;
    }
    async getLanguageServerFolderName() {
        const currentFolder = await this.getCurrentLanguageServerDirectory();
        let serverVersion;
        const shouldLookForNewVersion = await this.shouldLookForNewLanguageServer(currentFolder);
        if (currentFolder && !shouldLookForNewVersion) {
            return path.basename(currentFolder.path);
        }
        serverVersion = await this.getLatestLanguageServerVersion()
            .catch(() => undefined);
        if (currentFolder && (!serverVersion || serverVersion.version.compare(currentFolder.version) <= 0)) {
            return path.basename(currentFolder.path);
        }
        return `${languageServerFolder}.${serverVersion.version.raw}`;
    }
    getLatestLanguageServerVersion() {
        const lsPackageService = this.serviceContainer.get(types_5.ILanguageServerPackageService);
        return lsPackageService.getLatestNugetPackageVersion();
    }
    async shouldLookForNewLanguageServer(currentFolder) {
        const configService = this.serviceContainer.get(types_2.IConfigurationService);
        const autoUpdateLanguageServer = configService.getSettings().autoUpdateLanguageServer;
        const downloadLanguageServer = configService.getSettings().downloadLanguageServer;
        if (currentFolder && (!autoUpdateLanguageServer || !downloadLanguageServer)) {
            return false;
        }
        const minimumVersion = this.appEnv.packageJson.languageServerVersion;
        if (autoUpdateLanguageServer && (!currentFolder || currentFolder.version.compare(minimumVersion) < 0)) {
            return true;
        }
        const downloadChannel = this.getDownloadChannel();
        const rule = this.serviceContainer.get(types_5.IDownloadChannelRule, downloadChannel);
        return rule.shouldLookForNewLanguageServer(currentFolder);
    }
    async getCurrentLanguageServerDirectory() {
        const configService = this.serviceContainer.get(types_2.IConfigurationService);
        if (!configService.getSettings().downloadLanguageServer) {
            return { path: languageServerFolder, version: new semver.SemVer('0.0.0') };
        }
        const dirs = await this.getExistingLanguageServerDirectories();
        if (dirs.length === 0) {
            return;
        }
        dirs.sort((a, b) => a.version.compare(b.version));
        return dirs[dirs.length - 1];
    }
    async getExistingLanguageServerDirectories() {
        const fs = this.serviceContainer.get(types_1.IFileSystem);
        const subDirs = await fs.getSubDirectories(this.context.storagePath);
        return subDirs
            .filter(dir => path.basename(dir).startsWith(languageServerFolder))
            .map(dir => ({ path: dir, version: this.getFolderVersion(path.basename(dir)) }));
    }
    getFolderVersion(dirName) {
        const suffix = dirName.substring(languageServerFolder.length + 1);
        return suffix.length === 0 ? new semver.SemVer('0.0.0') : (semver.parse(suffix, true) || new semver.SemVer('0.0.0'));
    }
    getDownloadChannel() {
        const lsPackageService = this.serviceContainer.get(types_5.ILanguageServerPackageService);
        return lsPackageService.getLanguageServerDownloadChannel();
    }
};
__decorate([
    logger_1.traceDecorators.verbose('Get language server folder name')
], LanguageServerFolderService.prototype, "getLanguageServerFolderName", null);
__decorate([
    logger_1.traceDecorators.verbose('Get latest version of Language Server')
], LanguageServerFolderService.prototype, "getLatestLanguageServerVersion", null);
LanguageServerFolderService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.IServiceContainer)),
    __param(1, inversify_1.inject(types_3.IApplicationEnvironment)),
    __param(2, inversify_1.inject(types_2.IExtensionContext))
], LanguageServerFolderService);
exports.LanguageServerFolderService = LanguageServerFolderService;


/***/ }),
/* 265 */
/***/ (function(module, exports) {

exports = module.exports = SemVer

var debug
/* istanbul ignore next */
if (typeof process === 'object' &&
    process.env &&
    process.env.NODE_DEBUG &&
    /\bsemver\b/i.test(process.env.NODE_DEBUG)) {
  debug = function () {
    var args = Array.prototype.slice.call(arguments, 0)
    args.unshift('SEMVER')
    console.log.apply(console, args)
  }
} else {
  debug = function () {}
}

// Note: this is the semver.org version of the spec that it implements
// Not necessarily the package version of this code.
exports.SEMVER_SPEC_VERSION = '2.0.0'

var MAX_LENGTH = 256
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
  /* istanbul ignore next */ 9007199254740991

// Max safe segment length for coercion.
var MAX_SAFE_COMPONENT_LENGTH = 16

// The actual regexps go on exports.re
var re = exports.re = []
var src = exports.src = []
var R = 0

// The following Regular Expressions can be used for tokenizing,
// validating, and parsing SemVer version strings.

// ## Numeric Identifier
// A single `0`, or a non-zero digit followed by zero or more digits.

var NUMERICIDENTIFIER = R++
src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'
var NUMERICIDENTIFIERLOOSE = R++
src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'

// ## Non-numeric Identifier
// Zero or more digits, followed by a letter or hyphen, and then zero or
// more letters, digits, or hyphens.

var NONNUMERICIDENTIFIER = R++
src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'

// ## Main Version
// Three dot-separated numeric identifiers.

var MAINVERSION = R++
src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' +
                   '(' + src[NUMERICIDENTIFIER] + ')\\.' +
                   '(' + src[NUMERICIDENTIFIER] + ')'

var MAINVERSIONLOOSE = R++
src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
                        '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
                        '(' + src[NUMERICIDENTIFIERLOOSE] + ')'

// ## Pre-release Version Identifier
// A numeric identifier, or a non-numeric identifier.

var PRERELEASEIDENTIFIER = R++
src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
                            '|' + src[NONNUMERICIDENTIFIER] + ')'

var PRERELEASEIDENTIFIERLOOSE = R++
src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
                                 '|' + src[NONNUMERICIDENTIFIER] + ')'

// ## Pre-release Version
// Hyphen, followed by one or more dot-separated pre-release version
// identifiers.

var PRERELEASE = R++
src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
                  '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'

var PRERELEASELOOSE = R++
src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
                       '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'

// ## Build Metadata Identifier
// Any combination of digits, letters, or hyphens.

var BUILDIDENTIFIER = R++
src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'

// ## Build Metadata
// Plus sign, followed by one or more period-separated build metadata
// identifiers.

var BUILD = R++
src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
             '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'

// ## Full Version String
// A main version, followed optionally by a pre-release version and
// build metadata.

// Note that the only major, minor, patch, and pre-release sections of
// the version string are capturing groups.  The build metadata is not a
// capturing group, because it should not ever be used in version
// comparison.

var FULL = R++
var FULLPLAIN = 'v?' + src[MAINVERSION] +
                src[PRERELEASE] + '?' +
                src[BUILD] + '?'

src[FULL] = '^' + FULLPLAIN + '$'

// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
// common in the npm registry.
var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] +
                 src[PRERELEASELOOSE] + '?' +
                 src[BUILD] + '?'

var LOOSE = R++
src[LOOSE] = '^' + LOOSEPLAIN + '$'

var GTLT = R++
src[GTLT] = '((?:<|>)?=?)'

// Something like "2.*" or "1.2.x".
// Note that "x.x" is a valid xRange identifer, meaning "any version"
// Only the first item is strictly required.
var XRANGEIDENTIFIERLOOSE = R++
src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
var XRANGEIDENTIFIER = R++
src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'

var XRANGEPLAIN = R++
src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' +
                   '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
                   '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
                   '(?:' + src[PRERELEASE] + ')?' +
                   src[BUILD] + '?' +
                   ')?)?'

var XRANGEPLAINLOOSE = R++
src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
                        '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
                        '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
                        '(?:' + src[PRERELEASELOOSE] + ')?' +
                        src[BUILD] + '?' +
                        ')?)?'

var XRANGE = R++
src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'
var XRANGELOOSE = R++
src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'

// Coercion.
// Extract anything that could conceivably be a part of a valid semver
var COERCE = R++
src[COERCE] = '(?:^|[^\\d])' +
              '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +
              '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
              '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
              '(?:$|[^\\d])'

// Tilde ranges.
// Meaning is "reasonably at or greater than"
var LONETILDE = R++
src[LONETILDE] = '(?:~>?)'

var TILDETRIM = R++
src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'
re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g')
var tildeTrimReplace = '$1~'

var TILDE = R++
src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'
var TILDELOOSE = R++
src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'

// Caret ranges.
// Meaning is "at least and backwards compatible with"
var LONECARET = R++
src[LONECARET] = '(?:\\^)'

var CARETTRIM = R++
src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'
re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g')
var caretTrimReplace = '$1^'

var CARET = R++
src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'
var CARETLOOSE = R++
src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'

// A simple gt/lt/eq thing, or just "" to indicate "any version"
var COMPARATORLOOSE = R++
src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'
var COMPARATOR = R++
src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'

// An expression to strip any whitespace between the gtlt and the thing
// it modifies, so that `> 1.2.3` ==> `>1.2.3`
var COMPARATORTRIM = R++
src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] +
                      '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'

// this one has to use the /g flag
re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g')
var comparatorTrimReplace = '$1$2$3'

// Something like `1.2.3 - 1.2.4`
// Note that these all use the loose form, because they'll be
// checked against either the strict or loose comparator form
// later.
var HYPHENRANGE = R++
src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' +
                   '\\s+-\\s+' +
                   '(' + src[XRANGEPLAIN] + ')' +
                   '\\s*$'

var HYPHENRANGELOOSE = R++
src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' +
                        '\\s+-\\s+' +
                        '(' + src[XRANGEPLAINLOOSE] + ')' +
                        '\\s*$'

// Star ranges basically just allow anything at all.
var STAR = R++
src[STAR] = '(<|>)?=?\\s*\\*'

// Compile to actual regexp objects.
// All are flag-free, unless they were created above with a flag.
for (var i = 0; i < R; i++) {
  debug(i, src[i])
  if (!re[i]) {
    re[i] = new RegExp(src[i])
  }
}

exports.parse = parse
function parse (version, options) {
  if (!options || typeof options !== 'object') {
    options = {
      loose: !!options,
      includePrerelease: false
    }
  }

  if (version instanceof SemVer) {
    return version
  }

  if (typeof version !== 'string') {
    return null
  }

  if (version.length > MAX_LENGTH) {
    return null
  }

  var r = options.loose ? re[LOOSE] : re[FULL]
  if (!r.test(version)) {
    return null
  }

  try {
    return new SemVer(version, options)
  } catch (er) {
    return null
  }
}

exports.valid = valid
function valid (version, options) {
  var v = parse(version, options)
  return v ? v.version : null
}

exports.clean = clean
function clean (version, options) {
  var s = parse(version.trim().replace(/^[=v]+/, ''), options)
  return s ? s.version : null
}

exports.SemVer = SemVer

function SemVer (version, options) {
  if (!options || typeof options !== 'object') {
    options = {
      loose: !!options,
      includePrerelease: false
    }
  }
  if (version instanceof SemVer) {
    if (version.loose === options.loose) {
      return version
    } else {
      version = version.version
    }
  } else if (typeof version !== 'string') {
    throw new TypeError('Invalid Version: ' + version)
  }

  if (version.length > MAX_LENGTH) {
    throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
  }

  if (!(this instanceof SemVer)) {
    return new SemVer(version, options)
  }

  debug('SemVer', version, options)
  this.options = options
  this.loose = !!options.loose

  var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL])

  if (!m) {
    throw new TypeError('Invalid Version: ' + version)
  }

  this.raw = version

  // these are actually numbers
  this.major = +m[1]
  this.minor = +m[2]
  this.patch = +m[3]

  if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
    throw new TypeError('Invalid major version')
  }

  if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
    throw new TypeError('Invalid minor version')
  }

  if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
    throw new TypeError('Invalid patch version')
  }

  // numberify any prerelease numeric ids
  if (!m[4]) {
    this.prerelease = []
  } else {
    this.prerelease = m[4].split('.').map(function (id) {
      if (/^[0-9]+$/.test(id)) {
        var num = +id
        if (num >= 0 && num < MAX_SAFE_INTEGER) {
          return num
        }
      }
      return id
    })
  }

  this.build = m[5] ? m[5].split('.') : []
  this.format()
}

SemVer.prototype.format = function () {
  this.version = this.major + '.' + this.minor + '.' + this.patch
  if (this.prerelease.length) {
    this.version += '-' + this.prerelease.join('.')
  }
  return this.version
}

SemVer.prototype.toString = function () {
  return this.version
}

SemVer.prototype.compare = function (other) {
  debug('SemVer.compare', this.version, this.options, other)
  if (!(other instanceof SemVer)) {
    other = new SemVer(other, this.options)
  }

  return this.compareMain(other) || this.comparePre(other)
}

SemVer.prototype.compareMain = function (other) {
  if (!(other instanceof SemVer)) {
    other = new SemVer(other, this.options)
  }

  return compareIdentifiers(this.major, other.major) ||
         compareIdentifiers(this.minor, other.minor) ||
         compareIdentifiers(this.patch, other.patch)
}

SemVer.prototype.comparePre = function (other) {
  if (!(other instanceof SemVer)) {
    other = new SemVer(other, this.options)
  }

  // NOT having a prerelease is > having one
  if (this.prerelease.length && !other.prerelease.length) {
    return -1
  } else if (!this.prerelease.length && other.prerelease.length) {
    return 1
  } else if (!this.prerelease.length && !other.prerelease.length) {
    return 0
  }

  var i = 0
  do {
    var a = this.prerelease[i]
    var b = other.prerelease[i]
    debug('prerelease compare', i, a, b)
    if (a === undefined && b === undefined) {
      return 0
    } else if (b === undefined) {
      return 1
    } else if (a === undefined) {
      return -1
    } else if (a === b) {
      continue
    } else {
      return compareIdentifiers(a, b)
    }
  } while (++i)
}

// preminor will bump the version up to the next minor release, and immediately
// down to pre-release. premajor and prepatch work the same way.
SemVer.prototype.inc = function (release, identifier) {
  switch (release) {
    case 'premajor':
      this.prerelease.length = 0
      this.patch = 0
      this.minor = 0
      this.major++
      this.inc('pre', identifier)
      break
    case 'preminor':
      this.prerelease.length = 0
      this.patch = 0
      this.minor++
      this.inc('pre', identifier)
      break
    case 'prepatch':
      // If this is already a prerelease, it will bump to the next version
      // drop any prereleases that might already exist, since they are not
      // relevant at this point.
      this.prerelease.length = 0
      this.inc('patch', identifier)
      this.inc('pre', identifier)
      break
    // If the input is a non-prerelease version, this acts the same as
    // prepatch.
    case 'prerelease':
      if (this.prerelease.length === 0) {
        this.inc('patch', identifier)
      }
      this.inc('pre', identifier)
      break

    case 'major':
      // If this is a pre-major version, bump up to the same major version.
      // Otherwise increment major.
      // 1.0.0-5 bumps to 1.0.0
      // 1.1.0 bumps to 2.0.0
      if (this.minor !== 0 ||
          this.patch !== 0 ||
          this.prerelease.length === 0) {
        this.major++
      }
      this.minor = 0
      this.patch = 0
      this.prerelease = []
      break
    case 'minor':
      // If this is a pre-minor version, bump up to the same minor version.
      // Otherwise increment minor.
      // 1.2.0-5 bumps to 1.2.0
      // 1.2.1 bumps to 1.3.0
      if (this.patch !== 0 || this.prerelease.length === 0) {
        this.minor++
      }
      this.patch = 0
      this.prerelease = []
      break
    case 'patch':
      // If this is not a pre-release version, it will increment the patch.
      // If it is a pre-release it will bump up to the same patch version.
      // 1.2.0-5 patches to 1.2.0
      // 1.2.0 patches to 1.2.1
      if (this.prerelease.length === 0) {
        this.patch++
      }
      this.prerelease = []
      break
    // This probably shouldn't be used publicly.
    // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
    case 'pre':
      if (this.prerelease.length === 0) {
        this.prerelease = [0]
      } else {
        var i = this.prerelease.length
        while (--i >= 0) {
          if (typeof this.prerelease[i] === 'number') {
            this.prerelease[i]++
            i = -2
          }
        }
        if (i === -1) {
          // didn't increment anything
          this.prerelease.push(0)
        }
      }
      if (identifier) {
        // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
        // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
        if (this.prerelease[0] === identifier) {
          if (isNaN(this.prerelease[1])) {
            this.prerelease = [identifier, 0]
          }
        } else {
          this.prerelease = [identifier, 0]
        }
      }
      break

    default:
      throw new Error('invalid increment argument: ' + release)
  }
  this.format()
  this.raw = this.version
  return this
}

exports.inc = inc
function inc (version, release, loose, identifier) {
  if (typeof (loose) === 'string') {
    identifier = loose
    loose = undefined
  }

  try {
    return new SemVer(version, loose).inc(release, identifier).version
  } catch (er) {
    return null
  }
}

exports.diff = diff
function diff (version1, version2) {
  if (eq(version1, version2)) {
    return null
  } else {
    var v1 = parse(version1)
    var v2 = parse(version2)
    var prefix = ''
    if (v1.prerelease.length || v2.prerelease.length) {
      prefix = 'pre'
      var defaultResult = 'prerelease'
    }
    for (var key in v1) {
      if (key === 'major' || key === 'minor' || key === 'patch') {
        if (v1[key] !== v2[key]) {
          return prefix + key
        }
      }
    }
    return defaultResult // may be undefined
  }
}

exports.compareIdentifiers = compareIdentifiers

var numeric = /^[0-9]+$/
function compareIdentifiers (a, b) {
  var anum = numeric.test(a)
  var bnum = numeric.test(b)

  if (anum && bnum) {
    a = +a
    b = +b
  }

  return a === b ? 0
    : (anum && !bnum) ? -1
    : (bnum && !anum) ? 1
    : a < b ? -1
    : 1
}

exports.rcompareIdentifiers = rcompareIdentifiers
function rcompareIdentifiers (a, b) {
  return compareIdentifiers(b, a)
}

exports.major = major
function major (a, loose) {
  return new SemVer(a, loose).major
}

exports.minor = minor
function minor (a, loose) {
  return new SemVer(a, loose).minor
}

exports.patch = patch
function patch (a, loose) {
  return new SemVer(a, loose).patch
}

exports.compare = compare
function compare (a, b, loose) {
  return new SemVer(a, loose).compare(new SemVer(b, loose))
}

exports.compareLoose = compareLoose
function compareLoose (a, b) {
  return compare(a, b, true)
}

exports.rcompare = rcompare
function rcompare (a, b, loose) {
  return compare(b, a, loose)
}

exports.sort = sort
function sort (list, loose) {
  return list.sort(function (a, b) {
    return exports.compare(a, b, loose)
  })
}

exports.rsort = rsort
function rsort (list, loose) {
  return list.sort(function (a, b) {
    return exports.rcompare(a, b, loose)
  })
}

exports.gt = gt
function gt (a, b, loose) {
  return compare(a, b, loose) > 0
}

exports.lt = lt
function lt (a, b, loose) {
  return compare(a, b, loose) < 0
}

exports.eq = eq
function eq (a, b, loose) {
  return compare(a, b, loose) === 0
}

exports.neq = neq
function neq (a, b, loose) {
  return compare(a, b, loose) !== 0
}

exports.gte = gte
function gte (a, b, loose) {
  return compare(a, b, loose) >= 0
}

exports.lte = lte
function lte (a, b, loose) {
  return compare(a, b, loose) <= 0
}

exports.cmp = cmp
function cmp (a, op, b, loose) {
  switch (op) {
    case '===':
      if (typeof a === 'object')
        a = a.version
      if (typeof b === 'object')
        b = b.version
      return a === b

    case '!==':
      if (typeof a === 'object')
        a = a.version
      if (typeof b === 'object')
        b = b.version
      return a !== b

    case '':
    case '=':
    case '==':
      return eq(a, b, loose)

    case '!=':
      return neq(a, b, loose)

    case '>':
      return gt(a, b, loose)

    case '>=':
      return gte(a, b, loose)

    case '<':
      return lt(a, b, loose)

    case '<=':
      return lte(a, b, loose)

    default:
      throw new TypeError('Invalid operator: ' + op)
  }
}

exports.Comparator = Comparator
function Comparator (comp, options) {
  if (!options || typeof options !== 'object') {
    options = {
      loose: !!options,
      includePrerelease: false
    }
  }

  if (comp instanceof Comparator) {
    if (comp.loose === !!options.loose) {
      return comp
    } else {
      comp = comp.value
    }
  }

  if (!(this instanceof Comparator)) {
    return new Comparator(comp, options)
  }

  debug('comparator', comp, options)
  this.options = options
  this.loose = !!options.loose
  this.parse(comp)

  if (this.semver === ANY) {
    this.value = ''
  } else {
    this.value = this.operator + this.semver.version
  }

  debug('comp', this)
}

var ANY = {}
Comparator.prototype.parse = function (comp) {
  var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
  var m = comp.match(r)

  if (!m) {
    throw new TypeError('Invalid comparator: ' + comp)
  }

  this.operator = m[1]
  if (this.operator === '=') {
    this.operator = ''
  }

  // if it literally is just '>' or '' then allow anything.
  if (!m[2]) {
    this.semver = ANY
  } else {
    this.semver = new SemVer(m[2], this.options.loose)
  }
}

Comparator.prototype.toString = function () {
  return this.value
}

Comparator.prototype.test = function (version) {
  debug('Comparator.test', version, this.options.loose)

  if (this.semver === ANY) {
    return true
  }

  if (typeof version === 'string') {
    version = new SemVer(version, this.options)
  }

  return cmp(version, this.operator, this.semver, this.options)
}

Comparator.prototype.intersects = function (comp, options) {
  if (!(comp instanceof Comparator)) {
    throw new TypeError('a Comparator is required')
  }

  if (!options || typeof options !== 'object') {
    options = {
      loose: !!options,
      includePrerelease: false
    }
  }

  var rangeTmp

  if (this.operator === '') {
    rangeTmp = new Range(comp.value, options)
    return satisfies(this.value, rangeTmp, options)
  } else if (comp.operator === '') {
    rangeTmp = new Range(this.value, options)
    return satisfies(comp.semver, rangeTmp, options)
  }

  var sameDirectionIncreasing =
    (this.operator === '>=' || this.operator === '>') &&
    (comp.operator === '>=' || comp.operator === '>')
  var sameDirectionDecreasing =
    (this.operator === '<=' || this.operator === '<') &&
    (comp.operator === '<=' || comp.operator === '<')
  var sameSemVer = this.semver.version === comp.semver.version
  var differentDirectionsInclusive =
    (this.operator === '>=' || this.operator === '<=') &&
    (comp.operator === '>=' || comp.operator === '<=')
  var oppositeDirectionsLessThan =
    cmp(this.semver, '<', comp.semver, options) &&
    ((this.operator === '>=' || this.operator === '>') &&
    (comp.operator === '<=' || comp.operator === '<'))
  var oppositeDirectionsGreaterThan =
    cmp(this.semver, '>', comp.semver, options) &&
    ((this.operator === '<=' || this.operator === '<') &&
    (comp.operator === '>=' || comp.operator === '>'))

  return sameDirectionIncreasing || sameDirectionDecreasing ||
    (sameSemVer && differentDirectionsInclusive) ||
    oppositeDirectionsLessThan || oppositeDirectionsGreaterThan
}

exports.Range = Range
function Range (range, options) {
  if (!options || typeof options !== 'object') {
    options = {
      loose: !!options,
      includePrerelease: false
    }
  }

  if (range instanceof Range) {
    if (range.loose === !!options.loose &&
        range.includePrerelease === !!options.includePrerelease) {
      return range
    } else {
      return new Range(range.raw, options)
    }
  }

  if (range instanceof Comparator) {
    return new Range(range.value, options)
  }

  if (!(this instanceof Range)) {
    return new Range(range, options)
  }

  this.options = options
  this.loose = !!options.loose
  this.includePrerelease = !!options.includePrerelease

  // First, split based on boolean or ||
  this.raw = range
  this.set = range.split(/\s*\|\|\s*/).map(function (range) {
    return this.parseRange(range.trim())
  }, this).filter(function (c) {
    // throw out any that are not relevant for whatever reason
    return c.length
  })

  if (!this.set.length) {
    throw new TypeError('Invalid SemVer Range: ' + range)
  }

  this.format()
}

Range.prototype.format = function () {
  this.range = this.set.map(function (comps) {
    return comps.join(' ').trim()
  }).join('||').trim()
  return this.range
}

Range.prototype.toString = function () {
  return this.range
}

Range.prototype.parseRange = function (range) {
  var loose = this.options.loose
  range = range.trim()
  // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
  var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]
  range = range.replace(hr, hyphenReplace)
  debug('hyphen replace', range)
  // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
  range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace)
  debug('comparator trim', range, re[COMPARATORTRIM])

  // `~ 1.2.3` => `~1.2.3`
  range = range.replace(re[TILDETRIM], tildeTrimReplace)

  // `^ 1.2.3` => `^1.2.3`
  range = range.replace(re[CARETTRIM], caretTrimReplace)

  // normalize spaces
  range = range.split(/\s+/).join(' ')

  // At this point, the range is completely trimmed and
  // ready to be split into comparators.

  var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
  var set = range.split(' ').map(function (comp) {
    return parseComparator(comp, this.options)
  }, this).join(' ').split(/\s+/)
  if (this.options.loose) {
    // in loose mode, throw out any that are not valid comparators
    set = set.filter(function (comp) {
      return !!comp.match(compRe)
    })
  }
  set = set.map(function (comp) {
    return new Comparator(comp, this.options)
  }, this)

  return set
}

Range.prototype.intersects = function (range, options) {
  if (!(range instanceof Range)) {
    throw new TypeError('a Range is required')
  }

  return this.set.some(function (thisComparators) {
    return thisComparators.every(function (thisComparator) {
      return range.set.some(function (rangeComparators) {
        return rangeComparators.every(function (rangeComparator) {
          return thisComparator.intersects(rangeComparator, options)
        })
      })
    })
  })
}

// Mostly just for testing and legacy API reasons
exports.toComparators = toComparators
function toComparators (range, options) {
  return new Range(range, options).set.map(function (comp) {
    return comp.map(function (c) {
      return c.value
    }).join(' ').trim().split(' ')
  })
}

// comprised of xranges, tildes, stars, and gtlt's at this point.
// already replaced the hyphen ranges
// turn into a set of JUST comparators.
function parseComparator (comp, options) {
  debug('comp', comp, options)
  comp = replaceCarets(comp, options)
  debug('caret', comp)
  comp = replaceTildes(comp, options)
  debug('tildes', comp)
  comp = replaceXRanges(comp, options)
  debug('xrange', comp)
  comp = replaceStars(comp, options)
  debug('stars', comp)
  return comp
}

function isX (id) {
  return !id || id.toLowerCase() === 'x' || id === '*'
}

// ~, ~> --> * (any, kinda silly)
// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
function replaceTildes (comp, options) {
  return comp.trim().split(/\s+/).map(function (comp) {
    return replaceTilde(comp, options)
  }).join(' ')
}

function replaceTilde (comp, options) {
  var r = options.loose ? re[TILDELOOSE] : re[TILDE]
  return comp.replace(r, function (_, M, m, p, pr) {
    debug('tilde', comp, _, M, m, p, pr)
    var ret

    if (isX(M)) {
      ret = ''
    } else if (isX(m)) {
      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
    } else if (isX(p)) {
      // ~1.2 == >=1.2.0 <1.3.0
      ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
    } else if (pr) {
      debug('replaceTilde pr', pr)
      ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
            ' <' + M + '.' + (+m + 1) + '.0'
    } else {
      // ~1.2.3 == >=1.2.3 <1.3.0
      ret = '>=' + M + '.' + m + '.' + p +
            ' <' + M + '.' + (+m + 1) + '.0'
    }

    debug('tilde return', ret)
    return ret
  })
}

// ^ --> * (any, kinda silly)
// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
// ^1.2.3 --> >=1.2.3 <2.0.0
// ^1.2.0 --> >=1.2.0 <2.0.0
function replaceCarets (comp, options) {
  return comp.trim().split(/\s+/).map(function (comp) {
    return replaceCaret(comp, options)
  }).join(' ')
}

function replaceCaret (comp, options) {
  debug('caret', comp, options)
  var r = options.loose ? re[CARETLOOSE] : re[CARET]
  return comp.replace(r, function (_, M, m, p, pr) {
    debug('caret', comp, _, M, m, p, pr)
    var ret

    if (isX(M)) {
      ret = ''
    } else if (isX(m)) {
      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
    } else if (isX(p)) {
      if (M === '0') {
        ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
      } else {
        ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'
      }
    } else if (pr) {
      debug('replaceCaret pr', pr)
      if (M === '0') {
        if (m === '0') {
          ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
                ' <' + M + '.' + m + '.' + (+p + 1)
        } else {
          ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
                ' <' + M + '.' + (+m + 1) + '.0'
        }
      } else {
        ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
              ' <' + (+M + 1) + '.0.0'
      }
    } else {
      debug('no pr')
      if (M === '0') {
        if (m === '0') {
          ret = '>=' + M + '.' + m + '.' + p +
                ' <' + M + '.' + m + '.' + (+p + 1)
        } else {
          ret = '>=' + M + '.' + m + '.' + p +
                ' <' + M + '.' + (+m + 1) + '.0'
        }
      } else {
        ret = '>=' + M + '.' + m + '.' + p +
              ' <' + (+M + 1) + '.0.0'
      }
    }

    debug('caret return', ret)
    return ret
  })
}

function replaceXRanges (comp, options) {
  debug('replaceXRanges', comp, options)
  return comp.split(/\s+/).map(function (comp) {
    return replaceXRange(comp, options)
  }).join(' ')
}

function replaceXRange (comp, options) {
  comp = comp.trim()
  var r = options.loose ? re[XRANGELOOSE] : re[XRANGE]
  return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
    debug('xRange', comp, ret, gtlt, M, m, p, pr)
    var xM = isX(M)
    var xm = xM || isX(m)
    var xp = xm || isX(p)
    var anyX = xp

    if (gtlt === '=' && anyX) {
      gtlt = ''
    }

    if (xM) {
      if (gtlt === '>' || gtlt === '<') {
        // nothing is allowed
        ret = '<0.0.0'
      } else {
        // nothing is forbidden
        ret = '*'
      }
    } else if (gtlt && anyX) {
      // we know patch is an x, because we have any x at all.
      // replace X with 0
      if (xm) {
        m = 0
      }
      p = 0

      if (gtlt === '>') {
        // >1 => >=2.0.0
        // >1.2 => >=1.3.0
        // >1.2.3 => >= 1.2.4
        gtlt = '>='
        if (xm) {
          M = +M + 1
          m = 0
          p = 0
        } else {
          m = +m + 1
          p = 0
        }
      } else if (gtlt === '<=') {
        // <=0.7.x is actually <0.8.0, since any 0.7.x should
        // pass.  Similarly, <=7.x is actually <8.0.0, etc.
        gtlt = '<'
        if (xm) {
          M = +M + 1
        } else {
          m = +m + 1
        }
      }

      ret = gtlt + M + '.' + m + '.' + p
    } else if (xm) {
      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
    } else if (xp) {
      ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
    }

    debug('xRange return', ret)

    return ret
  })
}

// Because * is AND-ed with everything else in the comparator,
// and '' means "any version", just remove the *s entirely.
function replaceStars (comp, options) {
  debug('replaceStars', comp, options)
  // Looseness is ignored here.  star is always as loose as it gets!
  return comp.trim().replace(re[STAR], '')
}

// This function is passed to string.replace(re[HYPHENRANGE])
// M, m, patch, prerelease, build
// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
// 1.2 - 3.4 => >=1.2.0 <3.5.0
function hyphenReplace ($0,
  from, fM, fm, fp, fpr, fb,
  to, tM, tm, tp, tpr, tb) {
  if (isX(fM)) {
    from = ''
  } else if (isX(fm)) {
    from = '>=' + fM + '.0.0'
  } else if (isX(fp)) {
    from = '>=' + fM + '.' + fm + '.0'
  } else {
    from = '>=' + from
  }

  if (isX(tM)) {
    to = ''
  } else if (isX(tm)) {
    to = '<' + (+tM + 1) + '.0.0'
  } else if (isX(tp)) {
    to = '<' + tM + '.' + (+tm + 1) + '.0'
  } else if (tpr) {
    to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr
  } else {
    to = '<=' + to
  }

  return (from + ' ' + to).trim()
}

// if ANY of the sets match ALL of its comparators, then pass
Range.prototype.test = function (version) {
  if (!version) {
    return false
  }

  if (typeof version === 'string') {
    version = new SemVer(version, this.options)
  }

  for (var i = 0; i < this.set.length; i++) {
    if (testSet(this.set[i], version, this.options)) {
      return true
    }
  }
  return false
}

function testSet (set, version, options) {
  for (var i = 0; i < set.length; i++) {
    if (!set[i].test(version)) {
      return false
    }
  }

  if (version.prerelease.length && !options.includePrerelease) {
    // Find the set of versions that are allowed to have prereleases
    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
    // That should allow `1.2.3-pr.2` to pass.
    // However, `1.2.4-alpha.notready` should NOT be allowed,
    // even though it's within the range set by the comparators.
    for (i = 0; i < set.length; i++) {
      debug(set[i].semver)
      if (set[i].semver === ANY) {
        continue
      }

      if (set[i].semver.prerelease.length > 0) {
        var allowed = set[i].semver
        if (allowed.major === version.major &&
            allowed.minor === version.minor &&
            allowed.patch === version.patch) {
          return true
        }
      }
    }

    // Version has a -pre, but it's not one of the ones we like.
    return false
  }

  return true
}

exports.satisfies = satisfies
function satisfies (version, range, options) {
  try {
    range = new Range(range, options)
  } catch (er) {
    return false
  }
  return range.test(version)
}

exports.maxSatisfying = maxSatisfying
function maxSatisfying (versions, range, options) {
  var max = null
  var maxSV = null
  try {
    var rangeObj = new Range(range, options)
  } catch (er) {
    return null
  }
  versions.forEach(function (v) {
    if (rangeObj.test(v)) {
      // satisfies(v, range, options)
      if (!max || maxSV.compare(v) === -1) {
        // compare(max, v, true)
        max = v
        maxSV = new SemVer(max, options)
      }
    }
  })
  return max
}

exports.minSatisfying = minSatisfying
function minSatisfying (versions, range, options) {
  var min = null
  var minSV = null
  try {
    var rangeObj = new Range(range, options)
  } catch (er) {
    return null
  }
  versions.forEach(function (v) {
    if (rangeObj.test(v)) {
      // satisfies(v, range, options)
      if (!min || minSV.compare(v) === 1) {
        // compare(min, v, true)
        min = v
        minSV = new SemVer(min, options)
      }
    }
  })
  return min
}

exports.minVersion = minVersion
function minVersion (range, loose) {
  range = new Range(range, loose)

  var minver = new SemVer('0.0.0')
  if (range.test(minver)) {
    return minver
  }

  minver = new SemVer('0.0.0-0')
  if (range.test(minver)) {
    return minver
  }

  minver = null
  for (var i = 0; i < range.set.length; ++i) {
    var comparators = range.set[i]

    comparators.forEach(function (comparator) {
      // Clone to avoid manipulating the comparator's semver object.
      var compver = new SemVer(comparator.semver.version)
      switch (comparator.operator) {
        case '>':
          if (compver.prerelease.length === 0) {
            compver.patch++
          } else {
            compver.prerelease.push(0)
          }
          compver.raw = compver.format()
          /* fallthrough */
        case '':
        case '>=':
          if (!minver || gt(minver, compver)) {
            minver = compver
          }
          break
        case '<':
        case '<=':
          /* Ignore maximum versions */
          break
        /* istanbul ignore next */
        default:
          throw new Error('Unexpected operation: ' + comparator.operator)
      }
    })
  }

  if (minver && range.test(minver)) {
    return minver
  }

  return null
}

exports.validRange = validRange
function validRange (range, options) {
  try {
    // Return '*' instead of '' so that truthiness works.
    // This will throw if it's invalid anyway
    return new Range(range, options).range || '*'
  } catch (er) {
    return null
  }
}

// Determine if version is less than all the versions possible in the range
exports.ltr = ltr
function ltr (version, range, options) {
  return outside(version, range, '<', options)
}

// Determine if version is greater than all the versions possible in the range.
exports.gtr = gtr
function gtr (version, range, options) {
  return outside(version, range, '>', options)
}

exports.outside = outside
function outside (version, range, hilo, options) {
  version = new SemVer(version, options)
  range = new Range(range, options)

  var gtfn, ltefn, ltfn, comp, ecomp
  switch (hilo) {
    case '>':
      gtfn = gt
      ltefn = lte
      ltfn = lt
      comp = '>'
      ecomp = '>='
      break
    case '<':
      gtfn = lt
      ltefn = gte
      ltfn = gt
      comp = '<'
      ecomp = '<='
      break
    default:
      throw new TypeError('Must provide a hilo val of "<" or ">"')
  }

  // If it satisifes the range it is not outside
  if (satisfies(version, range, options)) {
    return false
  }

  // From now on, variable terms are as if we're in "gtr" mode.
  // but note that everything is flipped for the "ltr" function.

  for (var i = 0; i < range.set.length; ++i) {
    var comparators = range.set[i]

    var high = null
    var low = null

    comparators.forEach(function (comparator) {
      if (comparator.semver === ANY) {
        comparator = new Comparator('>=0.0.0')
      }
      high = high || comparator
      low = low || comparator
      if (gtfn(comparator.semver, high.semver, options)) {
        high = comparator
      } else if (ltfn(comparator.semver, low.semver, options)) {
        low = comparator
      }
    })

    // If the edge version comparator has a operator then our version
    // isn't outside it
    if (high.operator === comp || high.operator === ecomp) {
      return false
    }

    // If the lowest version comparator has an operator and our version
    // is less than it then it isn't higher than the range
    if ((!low.operator || low.operator === comp) &&
        ltefn(version, low.semver)) {
      return false
    } else if (low.operator === ecomp && ltfn(version, low.semver)) {
      return false
    }
  }
  return true
}

exports.prerelease = prerelease
function prerelease (version, options) {
  var parsed = parse(version, options)
  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
}

exports.intersects = intersects
function intersects (r1, r2, options) {
  r1 = new Range(r1, options)
  r2 = new Range(r2, options)
  return r1.intersects(r2)
}

exports.coerce = coerce
function coerce (version) {
  if (version instanceof SemVer) {
    return version
  }

  if (typeof version !== 'string') {
    return null
  }

  var match = version.match(re[COERCE])

  if (match == null) {
    return null
  }

  return parse(match[1] +
    '.' + (match[2] || '0') +
    '.' + (match[3] || '0'))
}


/***/ }),
/* 266 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const azureBlobStoreNugetRepository_1 = __webpack_require__(267);
const types_1 = __webpack_require__(95);
const azureBlobStorageAccount = 'https://pvsc.blob.core.windows.net';
exports.azureCDNBlobStorageAccount = 'https://pvsc.azureedge.net';
var LanguageServerDownloadChannel;
(function (LanguageServerDownloadChannel) {
    LanguageServerDownloadChannel["stable"] = "stable";
    LanguageServerDownloadChannel["beta"] = "beta";
    LanguageServerDownloadChannel["daily"] = "daily";
})(LanguageServerDownloadChannel = exports.LanguageServerDownloadChannel || (exports.LanguageServerDownloadChannel = {}));
var LanguageServerPackageStorageContainers;
(function (LanguageServerPackageStorageContainers) {
    LanguageServerPackageStorageContainers["stable"] = "python-language-server-stable";
    LanguageServerPackageStorageContainers["beta"] = "python-language-server-beta";
    LanguageServerPackageStorageContainers["daily"] = "python-language-server-daily";
})(LanguageServerPackageStorageContainers = exports.LanguageServerPackageStorageContainers || (exports.LanguageServerPackageStorageContainers = {}));
let StableLanguageServerPackageRepository = class StableLanguageServerPackageRepository extends azureBlobStoreNugetRepository_1.AzureBlobStoreNugetRepository {
    constructor(serviceContainer) {
        super(serviceContainer, azureBlobStorageAccount, LanguageServerPackageStorageContainers.stable, exports.azureCDNBlobStorageAccount);
    }
};
StableLanguageServerPackageRepository = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], StableLanguageServerPackageRepository);
exports.StableLanguageServerPackageRepository = StableLanguageServerPackageRepository;
let BetaLanguageServerPackageRepository = class BetaLanguageServerPackageRepository extends azureBlobStoreNugetRepository_1.AzureBlobStoreNugetRepository {
    constructor(serviceContainer) {
        super(serviceContainer, azureBlobStorageAccount, LanguageServerPackageStorageContainers.beta, exports.azureCDNBlobStorageAccount);
    }
};
BetaLanguageServerPackageRepository = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], BetaLanguageServerPackageRepository);
exports.BetaLanguageServerPackageRepository = BetaLanguageServerPackageRepository;
let DailyLanguageServerPackageRepository = class DailyLanguageServerPackageRepository extends azureBlobStoreNugetRepository_1.AzureBlobStoreNugetRepository {
    constructor(serviceContainer) {
        super(serviceContainer, azureBlobStorageAccount, LanguageServerPackageStorageContainers.daily, exports.azureCDNBlobStorageAccount);
    }
};
DailyLanguageServerPackageRepository = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], DailyLanguageServerPackageRepository);
exports.DailyLanguageServerPackageRepository = DailyLanguageServerPackageRepository;


/***/ }),
/* 267 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(95);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(74);
let AzureBlobStoreNugetRepository = class AzureBlobStoreNugetRepository {
    constructor(serviceContainer, azureBlobStorageAccount, azureBlobStorageContainer, azureCDNBlobStorageAccount) {
        this.serviceContainer = serviceContainer;
        this.azureBlobStorageAccount = azureBlobStorageAccount;
        this.azureBlobStorageContainer = azureBlobStorageContainer;
        this.azureCDNBlobStorageAccount = azureCDNBlobStorageAccount;
    }
    async getPackages(packageName) {
        return this.listPackages(this.azureBlobStorageAccount, this.azureBlobStorageContainer, packageName, this.azureCDNBlobStorageAccount);
    }
    async listPackages(azureBlobStorageAccount, azureBlobStorageContainer, packageName, azureCDNBlobStorageAccount) {
        // tslint:disable-next-line:no-require-imports
        const az = await Promise.resolve().then(() => __importStar(__webpack_require__(268)));
        const blobStore = az.createBlobServiceAnonymous(azureBlobStorageAccount);
        const nugetService = this.serviceContainer.get(types_2.INugetService);
        return new Promise((resolve, reject) => {
            // We must pass undefined according to docs, but type definition doesn't all it to be undefined or null!!!
            // tslint:disable-next-line:no-any
            const token = undefined;
            blobStore.listBlobsSegmentedWithPrefix(azureBlobStorageContainer, packageName, token, (error, result) => {
                if (error) {
                    return reject(error);
                }
                resolve(result.entries.map(item => {
                    return {
                        package: item.name,
                        uri: `${azureCDNBlobStorageAccount}/${azureBlobStorageContainer}/${item.name}`,
                        version: nugetService.getVersionFromPackageFileName(item.name)
                    };
                }));
            });
        });
    }
};
__decorate([
    logger_1.traceDecorators.verbose('Listing Nuget Packages')
], AzureBlobStoreNugetRepository.prototype, "listPackages", null);
AzureBlobStoreNugetRepository = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer)),
    __param(1, inversify_1.unmanaged()),
    __param(2, inversify_1.unmanaged()),
    __param(3, inversify_1.unmanaged())
], AzureBlobStoreNugetRepository);
exports.AzureBlobStoreNugetRepository = AzureBlobStoreNugetRepository;


/***/ }),
/* 268 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var exports = module.exports;

/**
* Creates a connection string that can be used to create a service which runs on the storage emulator. The emulator must be downloaded separately.
*
* @param {string}   [proxyUri]                  The proxyUri. By default, http://127.0.0.1
* @return {string}                              A connection string representing the development storage credentials.
* @example
* var azure = require('azure-storage');
* var devStoreCreds = azure.generateDevelopmentStorageCredentials();
* var blobService = azure.createBlobService(devStoreCreds);
*/
exports.generateDevelopmentStorageCredentials = function (proxyUri) {
  var devStore = 'UseDevelopmentStorage=true;';
  if(proxyUri){
    devStore += 'DevelopmentStorageProxyUri=' + proxyUri;
  }

  return devStore;
};

/**
 * Table client exports.
 * @ignore
 */
var TableService = __webpack_require__(269);

exports.TableService = TableService;
exports.TableQuery = __webpack_require__(598);
exports.TableBatch = __webpack_require__(601);
exports.TableUtilities = __webpack_require__(575);

/**
* Creates a new {@link TableService} object.
* If no storageaccount or storageaccesskey are provided, the AZURE_STORAGE_CONNECTION_STRING and then the AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY 
* environment variables will be used.
*
* @param {string} [storageAccountOrConnectionString]  The storage account or the connection string.
* @param {string} [storageAccessKey]                  The storage access key.
* @param {string|object} [host]                       The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @return {TableService}                              A new TableService object.
*
*/
exports.createTableService = function (storageAccountOrConnectionString, storageAccessKey, host) {
  return new TableService(storageAccountOrConnectionString, storageAccessKey, host);
};

/**
* Creates a new {@link TableService} object using the host Uri and the SAS credentials provided.
* 
* @param {string|object} host                         The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @param {string} sasToken                            The Shared Access Signature token.
* @return {TableService}                              A new TableService object with the SAS credentials.
*/
exports.createTableServiceWithSas = function (hostUri, sasToken) {
  return new TableService(null, null, hostUri, sasToken);
};

/**
 * Blob client exports.
 * @ignore
 */
var BlobService = __webpack_require__(602);

exports.BlobService = BlobService;
exports.BlobUtilities = __webpack_require__(497);

/**
* Creates a new {@link BlobService} object.
* If no storageaccount or storageaccesskey are provided, the AZURE_STORAGE_CONNECTION_STRING and then the AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY 
* environment variables will be used.
*
* @param {string} storageAccountOrConnectionString    The storage account or the connection string.
* @param {string} [storageAccessKey]                  The storage access key.
* @param {string|object} [host]                       The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @return {BlobService}                               A new BlobService object.
*/
exports.createBlobService = function (storageAccountOrConnectionString, storageAccessKey, host) {
  return new BlobService(storageAccountOrConnectionString, storageAccessKey, host, null);
};

/**
* Creates a new {@link BlobService} object using the host Uri and the SAS credentials provided.
* 
* @param {string|object} host                         The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @param {string} sasToken                            The Shared Access Signature token.
* @return {BlobService}                               A new BlobService object with the SAS credentials.
*/
exports.createBlobServiceWithSas = function (host, sasToken) {
  return new BlobService(null, null, host, sasToken);
};

/**
* Creates a new {@link BlobService} object using the host Uri and the {@link TokenCredential} provided, which supports OAuth.
* 
* @param {string|object} host                         The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @param {TokenCredential} tokenCredential            The token credential object.
* @return {BlobService}                               A new BlobService object with the {@link TokenCredential} object.
*
* @example
* var azure = require('azure-storage');
* var tokenCredential = new azure.TokenCredential('myOAuthAccessToken');
* var blobService = azure.createBlobServiceWithTokenCredential('https://account.blob.core.windows.net', tokenCredential);
* tokenCredential.set('updatedOAuthAccessToken');
*/
exports.createBlobServiceWithTokenCredential = function (host, tokenCredential) {
  return new BlobService(null, null, host, null, null, tokenCredential);
};

/**
* Creates a new {@link BlobService} object using the host uri and anonymous access.
* 
* @param {string|object} host                         The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @return {BlobService}                               A new BlobService object with the anonymous credentials.
*/
exports.createBlobServiceAnonymous = function (host) {
  return new BlobService(null, null, host, null);
};

/**
 * File client exports.
 * @ignore
 */
var FileService = __webpack_require__(615);

exports.FileService = FileService;
exports.FileUtilities = __webpack_require__(498);

/**
* Creates a new {@link FileService} object.
* If no storageaccount or storageaccesskey are provided, the AZURE_STORAGE_CONNECTION_STRING and then the AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY 
* environment variables will be used.
*
* @param {string} storageAccountOrConnectionString    The storage account or the connection string.
* @param {string} [storageAccessKey]                  The storage access key.
* @param {string|object} [host]                       The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @return {FileService}                               A new FileService object.
*/
exports.createFileService = function (storageAccountOrConnectionString, storageAccessKey, host) {
  return new FileService(storageAccountOrConnectionString, storageAccessKey, host);
};

/**
* Creates a new {@link FileService} object using the host Uri and the SAS credentials provided.
* 
* @param {string|object} host                         The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @param {string} sasToken                            The Shared Access Signature token.
* @return {FileService}                               A new FileService object with the SAS credentials.
*/
exports.createFileServiceWithSas = function (hostUri, sasToken) {
  return new FileService(null, null, hostUri, sasToken);
};

/**
 * Queue client exports.
 * @ignore
 */
var QueueService = __webpack_require__(621);

exports.QueueService = QueueService;
exports.QueueUtilities = __webpack_require__(625);
exports.QueueMessageEncoder = __webpack_require__(624);

/**
* Creates a new {@link QueueService} object.
* If no storageaccount or storageaccesskey are provided, the AZURE_STORAGE_CONNECTION_STRING and then the AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY 
* environment variables will be used.
*
* @param {string} [storageAccountOrConnectionString]  The storage account or the connection string.
* @param {string} [storageAccessKey]                  The storage access key.
* @param {string|object} [host]                       The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @return {QueueService}                              A new QueueService object.
*/
exports.createQueueService = function (storageAccountOrConnectionString, storageAccessKey, host) {
  return new QueueService(storageAccountOrConnectionString, storageAccessKey, host);
};

/**
* Creates a new {@link QueueService} object using the host Uri and the SAS credentials provided.
* 
* @param {string|object} host                         The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @param {string} sasToken                            The Shared Access Signature token.
* @return {QueueService}                              A new QueueService object with the SAS credentials.
*/
exports.createQueueServiceWithSas = function(hostUri, sasToken) {
  return new QueueService(null, null, hostUri, sasToken);
};

/**
* Creates a new {@link QueueService} object using the host Uri and the {@link TokenCredential} provided, which supports OAuth.
* 
* @param {string|object} host                         The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @param {TokenCredential} tokenCredential            The TokenCredential object.
* @return {QueueService}                              A new QueueService object with the {@link TokenCredential} object.
*
* @example
* var azure = require('azure-storage');
* var tokenCredential = new azure.TokenCredential('myOAuthAccessToken');
* var queueService = azure.createQueueServiceWithTokenCredential('https://account.queue.core.windows.net', tokenCredential);
* tokenCredential.set('updatedOAuthAccessToken');
*/
exports.createQueueServiceWithTokenCredential = function (host, tokenCredential) {
  return new QueueService(null, null, host, null, null, tokenCredential);
};

/**
* Account SAS
* @ignore
*/

var azureCommon = __webpack_require__(603);
var StorageServiceClient = azureCommon.StorageServiceClient;
var SharedKey = azureCommon.SharedKey;
/**
* Generates an account shared access signature token
* 
* @param {string}                     [storageAccountOrConnectionString]                The storage account or the connection string.
* @param {string}                     [storageAccessKey]                                The storage access key.
* @param {object}                     sharedAccessPolicy                                The shared access policy.
* @param {SharedAccessServices}       sharedAccessPolicy.AccessPolicy.Services          The services (blob, file, queue, table) for a shared access signature associated with this shared access policy.
*                                                                                       Refer to `Constants.AccountSasConstants.Services`.
* @param {SharedAccessResourceTypes}  sharedAccessPolicy.AccessPolicy.ResourceTypes     The resource type for a shared access signature associated with this shared access policy.
*                                                                                       Refer to `Constants.AccountSasConstants.ResourceTypes`.
* @param {SharedAccessPermissions}    sharedAccessPolicy.AccessPolicy.Permissions       The permissions for a shared access signature. 
*                                                                                       Refer to `Constants.AccountSasConstants.Permissions`.
* @param {date}                       sharedAccessPolicy.AccessPolicy.Start             The time at which the Shared Access Signature becomes valid.
* @param {date}                       sharedAccessPolicy.AccessPolicy.Expiry            The time at which the Shared Access Signature becomes expired.
* @param {string}                     sharedAccessPolicy.AccessPolicy.IPAddressOrRange  The permission type. Refer to `Constants.AccountSasConstants.ResourceTypes`.
* @param {string}                     sharedAccessPolicy.AccessPolicy.Protocols          The possible protocols. Refer to `Constants.AccountSasConstants.ResourceTypes`.
*/
exports.generateAccountSharedAccessSignature = function(storageAccountOrConnectionString, storageAccessKey, sharedAccessAccountPolicy)
{
  var storageSettings = StorageServiceClient.getStorageSettings(storageAccountOrConnectionString, storageAccessKey);
  var sharedKey = new SharedKey(storageSettings._name, storageSettings._key);
  
  return sharedKey.generateAccountSignedQueryString(sharedAccessAccountPolicy);
};


/**
* A callback that returns a response object.
* @callback errorOrResponse
* @param {object} error         If an error occurs, will contain information about the error.
* @param {object} response      Contains information about the response returned for the operation.
*                               For example, HTTP status codes and headers.
*/

/**
* A callback that returns result and response objects.
* @callback errorOrResult
* @param {object} error         If an error occurs, will contain information about the error.
* @param {object} result        The result of the operation.
* @param {object} response      Contains information about the response returned for the operation.
*                               For example, HTTP status codes and headers.
*/


/**
* Specifying conditional headers for blob service operations. See http://msdn.microsoft.com/en-us/library/dd179371.aspx for more information.
* @typedef    {object}          AccessConditions
* @property   {string}          EtagMatch                       If the ETag for the blob matches the specified ETag.
*                                                               Specify the wildcard character (*) to perform the operation only if the resource does exist, and fail the operation if it does not exist.
* @property   {string}          EtagNonMatch                    If the ETag for the blob does not match the specified ETag.
*                                                               Specify the wildcard character (*) to perform the operation only if the resource does not exist, and fail the operation if it does exist.
* @property   {Date|string}     DateModifedSince                If the blob has been modified since the specified date.
* @property   {Date|string}     DateUnModifiedSince             If the blob has not been modified since the specified date.
* @property   {Number|string}   SequenceNumberLessThanOrEqual   If the blob's sequence number is less than or equal to the specified value.
*                                                               For Put Page operation only. See https://msdn.microsoft.com/en-us/library/azure/ee691975.aspx for more information.
* @property   {Number|string}   SequenceNumberLessThan          If the blob's sequence number is less than the specified value.
*                                                               For Put Page operation only. See https://msdn.microsoft.com/en-us/library/azure/ee691975.aspx for more information.
* @property   {Number|string}   SequenceNumberEqual             If the blob's sequence number is equal to the specified value.
*                                                               For Put Page operation only. See https://msdn.microsoft.com/en-us/library/azure/ee691975.aspx for more information.
* @property   {Number|string}   MaxBlobSize                     If the Append Block operation would cause the blob to exceed that limit or if the blob size is already greater than the specified value. 
*                                                               For Append Block operation only. See https://msdn.microsoft.com/en-us/library/mt427365.aspx for more information.
* @property   {Number|string}   MaxAppendPosition               If the append position is equal to the specified value.
*                                                               For Append Block operation only. See https://msdn.microsoft.com/en-us/library/mt427365.aspx for more information.
*/

/**
* The properties of a storage service, including properties of Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
* @typedef    {object}              ServiceProperties
* @property   {string}              DefaultServiceVersion  The default version of Storage Analytics currently in use.
* @property   {LoggingProperties}   Logging                The Logging settings.
* @property   {MetricsProperties}   HourMetrics            The HourMetrics settings provide a summary of request statistics grouped by API in hourly aggregates.
* @property   {MetricsProperties}   MinuteMetrics          The HourMetrics settings provide request statistics grouped by API for each minute.
* @property   {object}              Cors                   Groups all CORS rules.
* @property   {CorsRule[]}          Cors.CorsRules         Groups settings for a `[CORS rule]{@link CorsRule}`.
*/

/**
* The properties of a storage account.
* @typedef    {object}              AccountProperties
* @property   {string}              SkuName                The header that specifies storage SKU, also known as account type.
* @property   {string}              AccountKind            The header that describes the flavour of the storage account, also known as account kind.
*/

/**
* The properties of a blob storage service, including properties of Storage Analytics, CORS (Cross-Origin Resource Sharing) rules and Static Webiste configurations.
* @typedef    {object}              BlobServiceProperties
* @property   {string}              DefaultServiceVersion  The default version of Storage Analytics currently in use.
* @property   {LoggingProperties}   Logging                The Logging settings.
* @property   {MetricsProperties}   HourMetrics            The HourMetrics settings provide a summary of request statistics grouped by API in hourly aggregates.
* @property   {MetricsProperties}   MinuteMetrics          The HourMetrics settings provide request statistics grouped by API for each minute.
* @property   {StaticWebsiteProperties} StaticWebsite      The Azure Static Website settings. 
* @property   {object}              Cors                   Groups all CORS rules.
* @property   {CorsRule[]}          Cors.CorsRules         Groups settings for a `[CORS rule]{@link CorsRule}`.
*/

/**
* The Azure Static Website settings.
* @typedef    {object}          StaticWebsiteProperties
* @property   {boolean}         Enabled                    Whether feature of Static Website is enabled.
* @property   {string}          IndexDocument              Indicates index document page path.
* @property   {string}          ErrorDocument404Path       Indicates 404 document page path.
*/

/**
* The Azure Analytics logging settings.
* @typedef    {object}          LoggingProperties
* @property   {string}          Version                    The version of Storage Analytics currently in use for logging.
* @property   {boolean}         Delete                     Indicates whether delete requests are being logged.
* @property   {boolean}         Read                       Indicates whether read requests are being logged.
* @property   {boolean}         Write                      Indicates whether write requests are being logged.
* @property   {RetentionPolicy} RetentionPolicy            The retention policy of the log data.
*/

/**
* The setting of Azure Analytics summary of request stastics.
* @typedef    {object}          MetricsProperties
* @property   {string}          Version                    The version of Storage Analytics currently in use for hour metrics.
* @property   {string}          Enabled                    Indicates whether metrics are enabled
* @property   {boolean}         IncludeAPIs                Indicates whether metrics generate summary statistics for called API operations.
* @property   {RetentionPolicy} RetentionPolicy            The retention policy of the metrics data.
*/

/**
* The CORS rule of a storage service.
* @typedef    {object}          CorsRule
* @property   {string[]}        AllowedMethods             A list of HTTP methods that are allowed to be executed by the origin. For Azure Storage, permitted methods are DELETE, GET, HEAD, MERGE, POST, OPTIONS or PUT.
* @property   {string[]}        AllowedOrigins             A list of origin domains that are allowed via CORS, or "*" if all domains are allowed.
* @property   {string[]}        AllowedHeaders             A list of headers allowed to be part of the cross-origin request.
* @property   {string[]}        ExposedHeaders             A list of response headers to expose to CORS clients.
* @property   {number}          MaxAgeInSeconds            The number of seconds that the client/browser should cache a preflight response.
*/

/**
* The Azure Analytics logging or metrics retention policy.
* @typedef    {object}          RetentionPolicy
* @property   {boolean}         Enabled                    Indicates whether a retention policy is enabled for the storage service.
* @property   {number}          Days                       Indicates the number of days that logging data is retained. All data older than this value will be deleted.
*/

/**
* The access policy.
* @typedef    {object}          AccessPolicy
* @property   {string}          Permissions                The permission type.
* @property   {Date}            Start                      The time at which the access policy becomes valid.
* @property   {Date}            Expiry                     The time at which the access policy becomes expired.
* @property   {string}          IPAddressOrRange           An IP address or a range of IP addresses from which to accept requests. When specifying a range, note that the range is inclusive.
* @property   {string}          Protocols                  The protocols permitted for a request made with the SAS.
* @property   {string}          Services                   The services (blob, file, queue, table) for a shared access signature associated with this shared access policy.
* @property   {string}          ResourceTypes              The resource type for a shared access signature associated with this shared access policy.
*/

/**
* The service statistics.
* @typedef    {object}          ServiceStats
* @property   {object}          GeoReplication                  The geo replication stastics.
* @property   {string}          GeoReplication.Status           The status of the secondary location.
* @property   {Date}            GeoReplication.LastSyncTime     A GMT date/time value, to the second. 
*                                                               All primary writes preceding this value are guaranteed to be available for read operations at the secondary.
*                                                               Primary writes after this point in time may or may not be available for reads. 
*/

/**
* The range.
* @typedef    {object}          Range
* @property   {number}          start                     The start of the range.
* @property   {number}          end                       The end of the range.
*/

/**
* The range diff. Refer to https://msdn.microsoft.com/en-us/library/azure/mt736912.aspx
* @typedef    {object}          RangeDiff
* @property   {number}          start                     The start of the range.
* @property   {number}          end                       The end of the range.
* @property   {boolean}         isCleared                 If the range is cleared or not.

*/

exports.Constants = azureCommon.Constants;
exports.StorageUtilities = azureCommon.StorageUtilities;
exports.AccessCondition = azureCommon.AccessCondition;

exports.SR = azureCommon.SR;
exports.StorageServiceClient = StorageServiceClient;
exports.Logger = azureCommon.Logger;
exports.WebResource = azureCommon.WebResource;
exports.Validate = azureCommon.validate;
exports.date = azureCommon.date;
exports.TokenCredential = azureCommon.TokenCredential;

// Other filters
exports.LinearRetryPolicyFilter = azureCommon.LinearRetryPolicyFilter;
exports.ExponentialRetryPolicyFilter = azureCommon.ExponentialRetryPolicyFilter;
exports.RetryPolicyFilter = azureCommon.RetryPolicyFilter;

/***/ }),
/* 269 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var util = __webpack_require__(113);
var extend = __webpack_require__(270);
var _ = __webpack_require__(271);

var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var validate = azureCommon.validate;
var SR = azureCommon.SR;
var StorageServiceClient = azureCommon.StorageServiceClient;
var SharedKeyTable = __webpack_require__(593);
var RequestHandler = __webpack_require__(594);
var TableQuery = __webpack_require__(598);
var WebResource = azureCommon.WebResource;
var Constants = azureCommon.Constants;
var QueryStringConstants = Constants.QueryStringConstants;
var HeaderConstants = Constants.HeaderConstants;
var TableConstants = Constants.TableConstants;
var RequestLocationMode = Constants.RequestLocationMode;

// Models requires
var TableResult = __webpack_require__(599);
var entityResult = __webpack_require__(595);
var BatchResult = __webpack_require__(600);
var ServiceStatsParser = azureCommon.ServiceStatsParser;
var AclResult = azureCommon.AclResult;
var TableUtilities = __webpack_require__(575);

/**
* Creates a new TableService object.
* If no connection string or storageaccount and storageaccesskey are provided,
* the AZURE_STORAGE_CONNECTION_STRING or AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY environment variables will be used.
* @class
* The TableService object allows you to peform management operations with the Microsoft Azure Table Service.
* The Table Service stores data in rows of key-value pairs. A table is composed of multiple rows, and each row
* contains key-value pairs. There is no schema, so each row in a table may store a different set of keys.
*
* For more information on the Table Service, as well as task focused information on using it from a Node.js application, see
* [How to Use the Table Service from Node.js](http://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-how-to-use-table-storage/).
* The following defaults can be set on the Table service.
* defaultTimeoutIntervalInMs                          The default timeout interval, in milliseconds, to use for request made via the Table service.
* defaultClientRequestTimeoutInMs                     The default timeout of client requests, in milliseconds, to use for the request made via the Table service.
* defaultMaximumExecutionTimeInMs                     The default maximum execution time across all potential retries, for requests made via the Table service.
* defaultLocationMode                                 The default location mode for requests made via the Table service.
* defaultPayloadFormat                                The default payload format for requests made via the Table service.
* useNagleAlgorithm                                   Determines whether the Nagle algorithm is used for requests made via the Table service.; true to use the  
*                                                     Nagle algorithm; otherwise, false. The default value is false.
* enableGlobalHttpAgent                               Determines whether global HTTP(s) agent is enabled; true to use Global HTTP(s) agent; otherwise, false to use
*                                                     http(s).Agent({keepAlive:true}).
* @constructor
* @extends {StorageServiceClient}
*
* @param {string} [storageAccountOrConnectionString]  The storage account or the connection string.
* @param {string} [storageAccessKey]                  The storage access key.
* @param {string|object} [host]                       The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @param {string} [sasToken]                          The Shared Access Signature token.
* @param {string} [endpointSuffix]                    The endpoint suffix.
*/
function TableService(storageAccountOrConnectionString, storageAccessKey, host, sasToken, endpointSuffix) {
  var storageServiceSettings = StorageServiceClient.getStorageSettings(storageAccountOrConnectionString, storageAccessKey, host, sasToken, endpointSuffix);

  TableService['super_'].call(this,
    storageServiceSettings._name,
    storageServiceSettings._key,
    storageServiceSettings._tableEndpoint,
    storageServiceSettings._usePathStyleUri,
    storageServiceSettings._sasToken);

  if (this.anonymous) {
    throw new Error(SR.ANONYMOUS_ACCESS_BLOBSERVICE_ONLY);
  }

  if(this.storageAccount && this.storageAccessKey) {
    this.storageCredentials = new SharedKeyTable(this.storageAccount, this.storageAccessKey, this.usePathStyleUri);
  }

  this.defaultPayloadFormat = TableUtilities.PayloadFormat.MINIMAL_METADATA;
}

util.inherits(TableService, StorageServiceClient);

// Table service methods

/**
* Gets the service stats for a storage account’s Table service.
*
* @this {TableService}
* @param {object}         [options]                                       The request options.
* @param {LocationMode}   [options.locationMode]                          Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}            [options.timeoutIntervalInMs]                   The server timeout interval, in milliseconds, to use for the request.
* @param {int}            [options.clientRequestTimeoutInMs]              The timeout of client requests, in milliseconds, to use for the request.
* @param {int}            [options.maximumExecutionTimeInMs]              The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}         [options.clientRequestId]                       A string that represents the client request ID with a 1KB character limit.
* @param {bool}           [options.useNagleAlgorithm]                     Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information if an error occurs; 
*                                                                         otherwise `[result]{@link ServiceStats}` will contain the stats.
*                                                                         `response` will contain information related to this operation.
*/
TableService.prototype.getServiceStats = function (optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getServiceStats', function (v) {
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var webResource = WebResource.get()
    .withQueryOption(QueryStringConstants.COMP, 'stats')
    .withQueryOption(QueryStringConstants.RESTYPE, 'service');

  var processResponseCallback = function (responseObject, next) {
    responseObject.serviceStatsResult = null;
    if (!responseObject.error) {
      responseObject.serviceStatsResult = ServiceStatsParser.parse(responseObject.response.body.StorageServiceStats);
    }

    // function to be called after all filters
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.serviceStatsResult, returnObject.response);
    };

    // call the first filter
    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Gets the properties of a storage account’s Table service, including Azure Storage Analytics.
*
* @this {TableService}
* @param {object}             [options]                                    The request options.
* @param {LocationMode}       [options.locationMode]                       Specifies the location mode used to decide which location the request should be sent to. 
*                                                                          Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]           The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]           The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                          The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                          execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                    A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                  Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                          The default value is false.
* @param {errorOrResult}  callback                                         `error` will contain information if an error occurs; 
*                                                                          otherwise `[result]{@link ServiceProperties}` will contain the properties.
*                                                                         `response` will contain information related to this operation.
*/
TableService.prototype.getServiceProperties = function (optionsOrCallback, callback) {
  return this.getAccountServiceProperties(optionsOrCallback, callback);
};

/**
* Sets the properties of a storage account’s Table service, including Azure Storage Analytics.
* You can also use this operation to set the default request version for all incoming requests that do not have a version specified.
*
* @this {TableService}
* @param {object}             serviceProperties                            The service properties.
* @param {object}             [options]                                    The request options.
* @param {LocationMode}       [options.locationMode]                       Specifies the location mode used to decide which location the request should be sent to. 
*                                                                          Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]           The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]           The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                          The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                          execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                    A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                  Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                          The default value is false.
* @param {errorOrResponse}  callback                                       `error` will contain information if an error occurs; 
*                                                                          `response` will contain information related to this operation.
*/
TableService.prototype.setServiceProperties = function (serviceProperties, optionsOrCallback, callback) {
  return this.setAccountServiceProperties(serviceProperties, optionsOrCallback, callback);
};

/**
* Lists a segment containing a collection of table items under the specified account.
*
* @this {TableService}
* @param {object}             currentToken                                      A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                                         The create options or callback function.
* @param {int}                [options.maxResults]                              Specifies the maximum number of tables to return per call to Azure ServiceClient. 
* @param {LocationMode}       [options.locationMode]                            Specifies the location mode used to decide which location the request should be sent to. 
*                                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                     The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]                The timeout of client requests, in milliseconds, to use for the request.
* @param {string}             [options.payloadFormat]                           The payload format to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]                The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                         A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                       Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                               The default value is false.
* @param {errorOrResult}  callback                                              `error` will contain information if an error occurs; 
*                                                                               otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                               `entries`  gives a list of tables and the `continuationToken` is used for the next listing operation.
*                                                                               `response` will contain information related to this operation.
*/
TableService.prototype.listTablesSegmented = function (currentToken, optionsOrCallback, callback) {
  this.listTablesSegmentedWithPrefix(null /* prefix */, currentToken, optionsOrCallback, callback);
};

/**
* Lists a segment containing a collection of table items under the specified account.
*
* @this {TableService}
* @param {string}             prefix                                            The prefix of the table name.
* @param {object}             currentToken                                      A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                                         The create options or callback function.
* @param {int}                [options.maxResults]                              Specifies the maximum number of tables to return per call to Azure ServiceClient. 
* @param {LocationMode}       [options.locationMode]                            Specifies the location mode used to decide which location the request should be sent to. 
*                                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                     The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]                The timeout of client requests, in milliseconds, to use for the request.
* @param {string}             [options.payloadFormat]                           The payload format to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]                The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                         A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                       Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                               The default value is false.
* @param {errorOrResult}  callback                                              `error` will contain information if an error occurs; 
*                                                                               otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                               `entries`  gives a list of tables and the `continuationToken` is used for the next listing operation.
*                                                                               `response` will contain information related to this operation.
*/
TableService.prototype.listTablesSegmentedWithPrefix = function (prefix, currentToken, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('listTables', function (v) {
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  options.payloadFormat = options.payloadFormat || this.defaultPayloadFormat;

  var webResource = WebResource.get(TableConstants.TABLE_SERVICE_TABLE_NAME);
  RequestHandler.setTableRequestHeadersAndBody(webResource, null, options.payloadFormat);

  if(!azureutil.objectIsNull(currentToken)) {
    webResource.withQueryOption(TableConstants.NEXT_TABLE_NAME, currentToken.nextTableName);
  }

  if(!azureutil.objectIsNull(prefix)) {
    var query = new TableQuery()
      .where(TableConstants.TABLE_NAME + ' >= ?', prefix)
      .and(TableConstants.TABLE_NAME + ' < ?', prefix + '{');
    
    webResource.withQueryOption(QueryStringConstants.FILTER, query.toQueryObject().$filter);
  }

  if(!azureutil.objectIsNull(options.maxResults)) {
    var query = new TableQuery().top(options.maxResults);
    webResource.withQueryOption(QueryStringConstants.TOP, query.toQueryObject().$top);
  }

  options.requestLocationMode = azureutil.getNextListingLocationMode(currentToken);

  var processResponseCallback = function (responseObject, next) {
    responseObject.listTablesResult = null;

    if (!responseObject.error) {
      responseObject.listTablesResult = {
        entries: null,
        continuationToken: null
      };
      responseObject.listTablesResult.entries = TableResult.parse(responseObject.response);

      if (responseObject.response.headers[TableConstants.CONTINUATION_NEXT_TABLE_NAME] &&
      !azureutil.objectIsEmpty(responseObject.response.headers[TableConstants.CONTINUATION_NEXT_TABLE_NAME])) {
        responseObject.listTablesResult.continuationToken = {
          nextTableName: null,
          targetLocation: null
        };

        responseObject.listTablesResult.continuationToken.nextTableName = responseObject.response.headers[TableConstants.CONTINUATION_NEXT_TABLE_NAME];
        responseObject.listTablesResult.continuationToken.targetLocation = responseObject.targetLocation;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.listTablesResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

// Table Methods

/**
* Gets the table's ACL.
*
* @this {TableService}
* @param {string}             table                                        The table name.
* @param {object}             [options]                                    The request options.
* @param {LocationMode}       [options.locationMode]                       Specifies the location mode used to decide which location the request should be sent to. 
*                                                                          Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]           The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]           The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                          The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                          execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                    A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                  Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                          The default value is false.
* @param {errorOrResult}  callback                                         `error` will contain information if an error occurs; 
*                                                                          otherwise `result` will contain the ACL information for the table. See `[AccessPolicy]{@link AccessPolicy}` for detailed information.
*                                                                          `response` will contain information related to this operation.
*/
TableService.prototype.getTableAcl = function (table, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getTableAcl', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var webResource = WebResource.get(table)
    .withQueryOption(QueryStringConstants.COMP, 'acl');

  var processResponseCallback = function (responseObject, next) {
    responseObject.tableResult = null;
    if (!responseObject.error) {
      responseObject.tableResult = new TableResult(table);
      responseObject.tableResult.signedIdentifiers = AclResult.parse(responseObject.response.body);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.tableResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Updates the table's ACL.
*
* @this {TableService}
* @param {string}                                 table                                        The table name.
* @param {Object.<string, AccessPolicy>}             signedIdentifiers                            The table ACL settings. See `[AccessPolicy]{@link AccessPolicy}` for detailed information.
* @param {object}                                 [options]                                    The request options.
* @param {LocationMode}                           [options.locationMode]                       Specifies the location mode used to decide which location the request should be sent to. 
*                                                                                              Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                                    [options.timeoutIntervalInMs]                The server timeout interval, in milliseconds, to use for the request.
* @param {int}                                    [options.clientRequestTimeoutInMs]           The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                                    [options.maximumExecutionTimeInMs]           The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                                              The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                                              execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}                                 [options.clientRequestId]                    A string that represents the client request ID with a 1KB character limit.
* @param {bool}                                   [options.useNagleAlgorithm]                  Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                                              The default value is false.
* @param {errorOrResult}                          callback                                     `error` will contain information if an error occurs; 
*                                                                                              otherwise `result` will contain information for the table.
*                                                                                              `response` will contain information related to this operation.
*/
TableService.prototype.setTableAcl = function (table, signedIdentifiers, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setTableAcl', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var policies = null;
  if (signedIdentifiers) {
    if(_.isArray(signedIdentifiers)) {
      throw new TypeError(SR.INVALID_SIGNED_IDENTIFIERS);
    }
    policies = AclResult.serialize(signedIdentifiers);
  }

  var webResource = WebResource.put(table)
    .withQueryOption(QueryStringConstants.COMP, 'acl')
    .withHeader(HeaderConstants.CONTENT_LENGTH, !azureutil.objectIsNull(policies) ? Buffer.byteLength(policies) : 0)
    .withBody(policies);

  var processResponseCallback = function (responseObject, next) {
    responseObject.tableResult = null;
    if (!responseObject.error) {

      // SetTableAcl doesn't actually return anything in the response
      responseObject.tableResult = new TableResult(table);
      if (signedIdentifiers) {
        responseObject.tableResult.signedIdentifiers = signedIdentifiers;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.tableResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

/**
* Retrieves a shared access signature token.
*
* @this {TableService}
* @param {string}                   table                                               The table name.
* @param {object}                   sharedAccessPolicy                                  The shared access policy.
* @param {string}                   [sharedAccessPolicy.Id]                             The signed identifier.
* @param {object}                   [sharedAccessPolicy.AccessPolicy.Permissions]       The permission type.
* @param {date|string}              [sharedAccessPolicy.AccessPolicy.Start]             The time at which the Shared Access Signature becomes valid (The UTC value will be used).
* @param {date|string}              [sharedAccessPolicy.AccessPolicy.Expiry]            The time at which the Shared Access Signature becomes expired (The UTC value will be used).
* @param {string}                   [sharedAccessPolicy.AccessPolicy.IPAddressOrRange]  An IP address or a range of IP addresses from which to accept requests. When specifying a range, note that the range is inclusive.
* @param {string}                   [sharedAccessPolicy.AccessPolicy.Protocols]         The protocols permitted for a request made with the account SAS. 
*                                                                                       Possible values are both HTTPS and HTTP (https,http) or HTTPS only (https). The default value is https,http.
* @param {string}                   [sharedAccessPolicy.AccessPolicy.StartPk]           The starting Partition Key for which the SAS will be valid.
* @param {string}                   [sharedAccessPolicy.AccessPolicy.EndPk]             The ending Partition Key for which the SAS will be valid.
* @param {string}                   [sharedAccessPolicy.AccessPolicy.StartRk]           The starting Row Key for which the SAS will be valid.
* @param {string}                   [sharedAccessPolicy.AccessPolicy.EndRk]             The ending Row Key for which the SAS will be valid.
* @return {object}                                                                      An object with the shared access signature.
*/
TableService.prototype.generateSharedAccessSignature = function (table, sharedAccessPolicy) {
  // check if the TableService is able to generate a shared access signature
  if (!this.storageCredentials || !this.storageCredentials.generateSignedQueryString) {
    throw new Error(SR.CANNOT_CREATE_SAS_WITHOUT_ACCOUNT_KEY);
  }

  validate.validateArgs('generateSharedAccessSignature', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
    v.object(sharedAccessPolicy, 'sharedAccessPolicy');
  });
  
  var lowerCasedTableName = table.toLowerCase();
  return this.storageCredentials.generateSignedQueryString(Constants.ServiceType.Table, lowerCasedTableName, sharedAccessPolicy, null, { tableName: lowerCasedTableName });
};

/**
* Checks whether or not a table exists on the service.
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}  callback                                    `error` will contain information if an error occurs; 
*                                                                     otherwise `result` will contain the table information including `exists` boolean member. 
*                                                                     `response` will contain information related to this operation.
*/
TableService.prototype.doesTableExist = function (table, optionsOrCallback, callback) {
  this._doesTableExist(table, false, optionsOrCallback, callback);
};

/**
* Creates a new table within a storage account.
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}  callback                                    `error` will contain information if an error occurs; 
*                                                                     otherwise `result` will contain the new table information.
*                                                                     `response` will contain information related to this operation.
*/
TableService.prototype.createTable = function (table, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createTable', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var tableDescriptor = TableResult.serialize(table);

  var webResource = WebResource.post('Tables')
    .withHeader(HeaderConstants.PREFER, HeaderConstants.PREFER_NO_CONTENT);

  RequestHandler.setTableRequestHeadersAndBody(webResource, tableDescriptor, this.defaultPayloadFormat);

  var processResponseCallback = function (responseObject, next) {
    responseObject.tableResponse = {};
    responseObject.tableResponse.isSuccessful = responseObject.error ? false : true;
    responseObject.tableResponse.statusCode = responseObject.response === null || responseObject.response === undefined ? undefined : responseObject.response.statusCode;
    if (!responseObject.error) {
      responseObject.tableResponse.TableName = table;
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.tableResponse, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

/**
* Creates a new table within a storage account if it does not exists.
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}  callback                                    `error` will contain information if an error occurs; 
*                                                                     `result` will contain the table information including `created` boolean member
*                                                                     `response` will contain information related to this operation.
*
* @example
* var azure = require('azure-storage');
* var tableService = azure.createTableService();
* tableService.createTableIfNotExists('tasktable', function(error) {
*   if(!error) { 
*     // Table created or exists
*   }
* });
*/
TableService.prototype.createTableIfNotExists = function (table, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createTableIfNotExists', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var self = this;
  self._doesTableExist(table, true, options, function(error, result, response) {
    var exists = result.exists;
    result.created = false;
    delete result.exists;
    
    if (error) {
      callback(error, result, response);
    } else if (exists) {
      response.isSuccessful = true;
      callback(error, result, response);
    } else {
      self.createTable(table, options, function(createError, createResult, response) {
        if (!createError) {
          createResult.created = true;
        }
        else if (createError && createError.statusCode === Constants.HttpConstants.HttpResponseCodes.Conflict && createError.code === Constants.TableErrorCodeStrings.TABLE_ALREADY_EXISTS) {
          createError = null;
          createResult.created = false;
          createResult.isSuccessful = true;
        }
        callback(createError, createResult, response);
      });
    }
  });
};

/**
* Deletes a table from a storage account.
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResponse}  callback                                  `error` will contain information if an error occurs;
*                                                                     `response` will contain information related to this operation.
*/
TableService.prototype.deleteTable = function (table, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteTable', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var webResource = WebResource.del('Tables(\'' + table + '\')');
  RequestHandler.setTableRequestHeadersAndBody(webResource, null, this.defaultPayloadFormat);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Deletes a table from a storage account, if it exists.
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}  callback                                    `error` will contain information if an error occurs; 
*                                                                     `result` will be `true` if table was deleted, false otherwise
*                                                                     `response` will contain information related to this operation.
*/
TableService.prototype.deleteTableIfExists = function (table, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteTableIfExists', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var self = this;
  self._doesTableExist(table, true, options, function(error, result, response) {
    if (error) {
      callback(error, result.exists, response);
    } else if (!result.exists) {
      response.isSuccessful = true;
      callback(error, false, response);
    } else {
      self.deleteTable(table, options, function(deleteError, deleteResponse) {
        var deleted;
        if (!deleteError) {
          deleted = true;
        } else if (deleteError && deleteError.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound && deleteError.code === Constants.StorageErrorCodeStrings.RESOURCE_NOT_FOUND) {
          deleted = false;
          deleteError = null;
          deleteResponse.isSuccessful = true;
        }

        callback(deleteError, deleted, deleteResponse);
      });
    }
  });
};

// Table Entity Methods

/**
* Queries data in a table. To retrieve a single entity by partition key and row key, use retrieve entity.
*
* @this {TableService}
* @param {string}             table                                                The table name.
* @param {TableQuery}         tableQuery                                           The query to perform. Use null, undefined, or new TableQuery() to get all of the entities in the table.
* @param {object}             currentToken                                         A continuation token returned by a previous listing operation. 
*                                                                                  Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                                            The request options.
* @param {LocationMode}       [options.locationMode]                               Specifies the location mode used to decide which location the request should be sent to. 
*                                                                                  Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                        The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]                   The timeout of client requests, in milliseconds, to use for the request.
* @param {string}             [options.payloadFormat]                              The payload format to use for the request.
* @param {bool}               [options.autoResolveProperties]                      If true, guess at all property types.
* @param {int}                [options.maximumExecutionTimeInMs]                   The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                                  The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                                  execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                            A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                          Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                                  The default value is false.
* @param {Function(entity)} [options.entityResolver]                               The entity resolver. Given a single entity returned by the query, returns a modified object which is added to 
*                                                                                  the entities array.
* @param {TableService~propertyResolver}  [options.propertyResolver]               The property resolver. Given the partition key, row key, property name, property value,
*                                                                                  and the property Edm type if given by the service, returns the Edm type of the property.
* @param {TableService~queryResponse} callback                                     `error` will contain information if an error occurs; 
*                                                                                  otherwise `entries` will contain the entities returned by the query. 
*                                                                                  If more matching entities exist, and could not be returned,
*                                                                                  `queryResultContinuation` will contain a continuation token that can be used
*                                                                                  to retrieve the next set of results.
*                                                                                  `response` will contain information related to this operation.
*
* The logic for returning entity types can get complicated.  Here is the algorithm used:
* ```
* var propertyType;
*
* if (propertyResovler) {                      // If the caller provides a propertyResolver in the options, use it
*   propertyType = propertyResolver(partitionKey, rowKey, propertyName, propertyValue, propertyTypeFromService);
* } else if (propertyTypeFromService) {        // If the service provides us a property type, use it.  See below for an explanation of when this will and won't occur.
*   propertyType = propertyTypeFromService;
* } else if (autoResolveProperties) {          // If options.autoResolveProperties is set to true
*   if (javascript type is string) {           // See below for an explanation of how and why autoResolveProperties works as it does.
*     propertyType = 'Edm.String';
*   } else if (javascript type is boolean) {
*     propertyType = 'Edm.Boolean';
*   }
* }
*
* if (propertyType) {
*   // Set the property type on the property.
* } else {
*   // Property gets no EdmType. 
* }
* ```
* Notes:
* 
* * The service only provides a type if JsonFullMetadata or JsonMinimalMetadata is used, and if the type is Int64, Guid, Binary, or DateTime.
* * Explanation of autoResolveProperties:
*     * String gets correctly resolved to 'Edm.String'.
*     * Int64, Guid, Binary, and DateTime all get resolved to 'Edm.String.'  This only happens if JsonNoMetadata is used (otherwise the service will provide the propertyType in a prior step).
*     * Boolean gets correctly resolved to 'Edm.Boolean'.
*     * For both Int32 and Double, no type information is returned, even in the case of autoResolveProperties = true.  This is due to an
*          inability to distinguish between the two in certain cases.
*
* @example
* var azure = require('azure-storage');
* var tableService = azure.createTableService();
* // tasktable should already exist and have entities
* 
* // returns all entities in tasktable, and a continuation token for the next page of results if necessary
* tableService.queryEntities('tasktable', null, null \/*currentToken*\/, function(error, result) {
*   if(!error) { 
*     var entities = result.entries;
*     // do stuff with the returned entities if there are any
*   }
* });
* 
* // returns field1 and field2 of the entities in tasktable, and a continuation token for the next page of results if necessary
* var tableQuery = new TableQuery().select('field1', 'field2');
* tableService.queryEntities('tasktable', tableQuery, null \/*currentToken*\/, function(error, result) {
*   if(!error) { 
*     var entities = result.entries;
*     // do stuff with the returned entities if there are any
*   }
* });
*/
TableService.prototype.queryEntities = function (table, tableQuery, currentToken, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('queryEntities', function (v) {
    v.string(table, 'table');
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  options.payloadFormat = options.payloadFormat || this.defaultPayloadFormat;

  var webResource = WebResource.get(table);
  RequestHandler.setTableRequestHeadersAndBody(webResource, null, options.payloadFormat);

  if (tableQuery) {
    var queryString = tableQuery.toQueryObject();
    Object.keys(queryString).forEach(function (queryStringName) {
      webResource.withQueryOption(queryStringName, queryString[queryStringName]);
    });
  }

  if(!azureutil.objectIsNull(currentToken)) {
    webResource.withQueryOption(TableConstants.NEXT_PARTITION_KEY, currentToken.nextPartitionKey);
    webResource.withQueryOption(TableConstants.NEXT_ROW_KEY, currentToken.nextRowKey);
  }

  options.requestLocationMode = azureutil.getNextListingLocationMode(currentToken);

  var processResponseCallback = function (responseObject, next) {
    responseObject.queryEntitiesResult = null;
    if (!responseObject.error) {
      responseObject.queryEntitiesResult = {
        entries: null,
        continuationToken: null
      };

      // entries
      responseObject.queryEntitiesResult.entries = entityResult.parseQuery(responseObject.response, options.autoResolveProperties, options.propertyResolver, options.entityResolver);

      // continuation token
      var continuationToken = {
          nextPartitionKey: responseObject.response.headers[TableConstants.CONTINUATION_NEXT_PARTITION_KEY],
          nextRowKey: responseObject.response.headers[TableConstants.CONTINUATION_NEXT_ROW_KEY],
          targetLocation: responseObject.targetLocation
        };

      if (!azureutil.IsNullOrEmptyOrUndefinedOrWhiteSpace(continuationToken.nextPartitionKey)) {
        responseObject.queryEntitiesResult.continuationToken = continuationToken;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.queryEntitiesResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Retrieves an entity from a table.
*
* @this {TableService}
* @param {string}             table                                           The table name.
* @param {string}             partitionKey                                    The partition key.
* @param {string}             rowKey                                          The row key.
* @param {object}             [options]                                       The request options.
* @param {LocationMode}       [options.locationMode]                          Specifies the location mode used to decide which location the request should be sent to. 
*                                                                             Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                   The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]              The timeout of client requests, in milliseconds, to use for the request.
* @param {string}             [options.payloadFormat]                         The payload format to use for the request.
* @param {bool}               [options.autoResolveProperties]                 If true, guess at all property types.
* @param {int}                [options.maximumExecutionTimeInMs]              The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                             The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                             execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                       A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                     Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                             The default value is false.
* @param {TableService~propertyResolver}  [options.propertyResolver]          The property resolver. Given the partition key, row key, property name, property value,
*                                                                             and the property Edm type if given by the service, returns the Edm type of the property.
* @param {Function(entity)} [options.entityResolver]                          The entity resolver. Given the single entity returned by the query, returns a modified object.
* @param {errorOrResult}  callback                                            `error` will contain information if an error occurs; 
*                                                                             otherwise `result` will be the matching entity.
*                                                                             `response` will contain information related to this operation.
*
* The logic for returning entity types can get complicated.  Here is the algorithm used:
* ```
* var propertyType;
*
* if (propertyResovler) {                      // If the caller provides a propertyResolver in the options, use it
*   propertyType = propertyResolver(partitionKey, rowKey, propertyName, propertyValue, propertyTypeFromService);
* } else if (propertyTypeFromService) {        // If the service provides us a property type, use it.  See below for an explanation of when this will and won't occur.
*   propertyType = propertyTypeFromService;
* } else if (autoResolveProperties) {          // If options.autoResolveProperties is set to true
*   if (javascript type is string) {           // See below for an explanation of how and why autoResolveProperties works as it does.
*     propertyType = 'Edm.String';
*   } else if (javascript type is boolean) {
*     propertyType = 'Edm.Boolean';
*   }
* }
*
* if (propertyType) {
*   // Set the property type on the property.
* } else {
*   // Property gets no EdmType. 
* }
* ```
* Notes:
* 
* * The service only provides a type if JsonFullMetadata or JsonMinimalMetadata is used, and if the type is Int64, Guid, Binary, or DateTime.
* * Explanation of autoResolveProperties:
*     * String gets correctly resolved to 'Edm.String'.
*     * Int64, Guid, Binary, and DateTime all get resolved to 'Edm.String.'  This only happens if JsonNoMetadata is used (otherwise the service will provide the propertyType in a prior step).
*     * Boolean gets correctly resolved to 'Edm.Boolean'.
*     * For both Int32 and Double, no type information is returned, even in the case of autoResolveProperties = true.  This is due to an
*          inability to distinguish between the two in certain cases.
*
* @example
* var azure = require('azure-storage');
* var tableService = azure.createTableService();
* tableService.retrieveEntity('tasktable', 'tasksSeattle', '1', function(error, serverEntity) {
*   if(!error) {
*     // Entity available in serverEntity variable
*   }
* });
*/
TableService.prototype.retrieveEntity = function (table, partitionKey, rowKey, optionsOrCallback, callback) {
  var entityDescriptor = { PartitionKey: {_: partitionKey, $: 'Edm.String'},
    RowKey: {_: rowKey, $: 'Edm.String'},
  };

  validate.validateArgs('retrieveEntity', function (v) {
    v.stringAllowEmpty(partitionKey, 'partitionKey');
    v.stringAllowEmpty(rowKey, 'rowKey');
  });

  this._performEntityOperation(TableConstants.Operations.RETRIEVE, table, entityDescriptor, optionsOrCallback, callback);
};

/**
* Inserts a new entity into a table.
*
* @this {TableService}
* @param {string}             table                                           The table name.
* @param {object}             entityDescriptor                                The entity descriptor.
* @param {object}             [options]                                       The request options.
* @param {string}             [options.echoContent]                           Whether or not to return the entity upon a successful insert. Default to false.
* @param {string}             [options.payloadFormat]                         The payload format to use in the response, if options.echoContent is true.
* @param {LocationMode}       [options.locationMode]                          Specifies the location mode used to decide which location the request should be sent to. 
*                                                                             Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                   The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]              The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]              The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                             The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                             execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                       A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                     Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                             The default value is false.
* @param {TableService~propertyResolver}  [options.propertyResolver]          The property resolver. Only applied if echoContent is true. Given the partition key, row key, property name, 
*                                                                             property value, and the property Edm type if given by the service, returns the Edm type of the property.
* @param {Function(entity)} [options.entityResolver]                          The entity resolver. Only applied if echoContent is true. Given the single entity returned by the insert, returns 
*                                                                             a modified object.
* @param {errorOrResult}  callback                                            `error` will contain information if an error occurs; 
*                                                                             otherwise `result` will contain the entity information.
*                                                                             `response` will contain information related to this operation.
*
* @example
* var azure = require('azure-storage');
* var tableService = azure.createTableService();
* var task1 = {
*   PartitionKey : {'_': 'tasksSeattle', '$':'Edm.String'},
*   RowKey: {'_': '1', '$':'Edm.String'},
*   Description: {'_': 'Take out the trash', '$':'Edm.String'},
*   DueDate: {'_': new Date(2011, 12, 14, 12), '$':'Edm.DateTime'}
* };
* tableService.insertEntity('tasktable', task1, function(error) {
*   if(!error) {
*     // Entity inserted
*   }
* }); 
*/
TableService.prototype.insertEntity = function (table, entityDescriptor, optionsOrCallback, callback) {
  this._performEntityOperation(TableConstants.Operations.INSERT, table, entityDescriptor, optionsOrCallback, callback);
};

/**
* Inserts or updates a new entity into a table.
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {object}             entityDescriptor                        The entity descriptor.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}  callback                                    `error` will contain information if an error occurs; 
*                                                                     otherwise `result` will contain the entity information.
*                                                                     `response` will contain information related to this operation.
*/
TableService.prototype.insertOrReplaceEntity = function (table, entityDescriptor, optionsOrCallback, callback) {
  this._performEntityOperation(TableConstants.Operations.INSERT_OR_REPLACE, table, entityDescriptor, optionsOrCallback, callback);
};

/**
* Replaces an existing entity within a table. To replace conditionally based on etag, set entity['.metadata']['etag'].
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {object}             entityDescriptor                        The entity descriptor.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}  callback                                    `error` will contain information if an error occurs; 
*                                                                     otherwise `result` will contain the entity information.
*                                                                     `response` will contain information related to this operation.
*/
TableService.prototype.replaceEntity = function (table, entityDescriptor, optionsOrCallback, callback) {
  this._performEntityOperation(TableConstants.Operations.REPLACE, table, entityDescriptor, optionsOrCallback, callback);
};

/**
* Updates an existing entity within a table by merging new property values into the entity. To merge conditionally based on etag, set entity['.metadata']['etag'].
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {object}             entityDescriptor                        The entity descriptor. 
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}  callback                                    `error` will contain information if an error occurs; 
*                                                                     otherwise `result` will contain the entity information.
*                                                                     response` will contain information related to this operation.
*/
TableService.prototype.mergeEntity = function (table, entityDescriptor, optionsOrCallback, callback) {
  this._performEntityOperation(TableConstants.Operations.MERGE, table, entityDescriptor, optionsOrCallback, callback);
};

/**
* Inserts or updates an existing entity within a table by merging new property values into the entity.
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {object}             entityDescriptor                        The entity descriptor.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}  callback                                    `error` will contain information if an error occurs; 
*                                                                     otherwise `result` will contain the entity information.
*                                                                     `response` will contain information related to this operation.
*/
TableService.prototype.insertOrMergeEntity = function (table, entityDescriptor, optionsOrCallback, callback) {
  this._performEntityOperation(TableConstants.Operations.INSERT_OR_MERGE, table, entityDescriptor, optionsOrCallback, callback);
};

/**
* Deletes an entity within a table. To delete conditionally based on etag, set entity['.metadata']['etag'].
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {object}             entityDescriptor                        The entity descriptor.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResponse}  callback                                  `error` will contain information if an error occurs; 
*                                                                     `response` will contain information related to this operation.
*/
TableService.prototype.deleteEntity = function (table, entityDescriptor, optionsOrCallback, callback) {
  this._performEntityOperation(TableConstants.Operations.DELETE, table, entityDescriptor, optionsOrCallback, callback);
};

/**
* Executes the operations in the batch.
*
* @this {TableService}
* @param {string}             table                                           The table name.
* @param {TableBatch}         batch                                           The table batch to execute.
* @param {object}             [options]                                       The create options or callback function.
* @param {LocationMode}       [options.locationMode]                          Specifies the location mode used to decide which location the request should be sent to. 
*                                                                             Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                   The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]              The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]              The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                             The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                             execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                       A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                     Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                             The default value is false.
* @param {errorOrResult}  callback                                            `error` will contain information if an error occurs; 
*                                                                             otherwise `result` will contain responses for each operation executed in the batch;
*                                                                             `result.entity` will contain the entity information for each operation executed.
*                                                                             `result.response` will contain the response for each operations executed.
*                                                                             `response` will contain information related to this operation.
*/
TableService.prototype.executeBatch = function (table, batch, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('executeBatch', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
    v.object(batch, 'batch');
    v.callback(callback);
  });

  if(!batch.hasOperations()) {
    throw new Error(SR.EMPTY_BATCH);
  }

  var options = extend(true, {}, userOptions);

  var batchResult = new BatchResult(this, table, batch.operations);
  var webResource = batchResult.constructWebResource();

  var body = batchResult.serialize();
  webResource.withBody(body);
  webResource.withHeader(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(body, 'utf8'));

  var processResponseCallback = function (responseObject, next) {
    var responseObjects = batchResult.parse(responseObject);

    var noError = true;
    // if the batch was unsuccesful, there will be a single response indicating the error
    if (responseObjects && responseObjects.length > 0) {
      responseObjects.forEach(function(item){
        if(noError && !item.response.isSuccessful){
          responseObject = item;
          noError = false;
        }
      });
    }
    
    if (noError) {
      responseObject.operationResponses = responseObjects;
    }

    var finalCallback = function (returnObject) {
      // perform final callback
      callback(returnObject.error, returnObject.operationResponses, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

// Private methods

/**
* Checks whether or not a table exists on the service.
* @ignore
*
* @this {TableService}
* @param {string}             table                                   The table name.
* @param {string}             primaryOnly                             If true, the request will be executed against the primary storage location.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {Function(error, result, response)}  callback                `error` will contain information if an error occurs; 
*                                                                     otherwise `result` will contain
*                                                                     the table information including `exists` boolean member. 
*                                                                     `response` will contain information related to this operation.
*/
TableService.prototype._doesTableExist = function (table, primaryOnly, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('doesTableExist', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  
  if(primaryOnly === false) {
    options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;
  }

  var webResource = WebResource.get('Tables(\'' + table + '\')');
  webResource.withHeader(HeaderConstants.ACCEPT, this.defaultPayloadFormat);

  var processResponseCallback = function (responseObject, next) {
    responseObject.tableResult = {};
    responseObject.tableResult.isSuccessful = responseObject.error ? false : true;
    responseObject.tableResult.statusCode = responseObject.response === null || responseObject.response === undefined ? undefined : responseObject.response.statusCode;
    responseObject.tableResult.TableName = table;
    
    if(!responseObject.error){
      responseObject.tableResult.exists = true;
    } else if (responseObject.error && responseObject.error.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound) {
      responseObject.error = null;
      responseObject.tableResult.exists = false;
      responseObject.response.isSuccessful = true;
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.tableResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Performs a table operation.
*
* @this {TableService}
* @param {string}             operation                           The operation to perform.
* @param {string}             table                               The table name.
* @param {object}             entityDescriptor                    The entity descriptor.
* @param {object}             [options]                           The create options or callback function.
* @param {string}             [options.echoContent]               Whether or not to return the entity upon a successful insert. Default to false.
* @param {string}             [options.payloadFormat]             The payload format to use for the request.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}  callback                                `error` will contain information if an error occurs; 
*                                                                 otherwise `entity` will contain the entity information.
*                                                                 `response` will contain information related to this operation.
* @ignore
*/
TableService.prototype._performEntityOperation = function (operation, table, entityDescriptor, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('entityOperation', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
    v.object(entityDescriptor, 'entityDescriptor');

    if(typeof entityDescriptor.PartitionKey !== 'string') {
      v.object(entityDescriptor.PartitionKey, 'entityDescriptor.PartitionKey');
      v.stringAllowEmpty(entityDescriptor.PartitionKey._, 'entityDescriptor.PartitionKey._');
    }
    
    if(typeof entityDescriptor.RowKey !== 'string') {
      v.object(entityDescriptor.RowKey, 'entityDescriptor.RowKey');
      v.stringAllowEmpty(entityDescriptor.RowKey._, 'entityDescriptor.RowKey._');
    }
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  options.payloadFormat = options.payloadFormat || this.defaultPayloadFormat;

  var webResource = RequestHandler.constructEntityWebResource(operation, table, entityDescriptor, options);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback;
    if (operation === TableConstants.Operations.DELETE) {
      finalCallback = function (returnObject) {
        callback(returnObject.error, returnObject.response);
      };
    } else {
      responseObject.entityResponse = null;
      if (!responseObject.error) {
        responseObject.entityResponse = entityResult.parseEntity(responseObject.response, options.autoResolveProperties, options.propertyResolver, options.entityResolver);
      }

      finalCallback = function (returnObject) {
        callback(returnObject.error, returnObject.entityResponse, returnObject.response);
      };
    }

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

/**
* Retrieves a table URL.
*
* @param {string}                   table                    The table name.
* @param {string}                   [sasToken]               The Shared Access Signature token.
* @param {boolean}                  [primary]                A boolean representing whether to use the primary or the secondary endpoint.
* @return {string}                                           The formatted URL string.
* @example
* var azure = require('azure-storage');
* var tableService = azure.createTableService();
* var sharedAccessPolicy = {
*   AccessPolicy: {
*     Permissions: azure.TableUtilities.SharedAccessPermissions.QUERY,
*     Start: startDate,
*     Expiry: expiryDate
*   },
* };
* 
* var sasToken = tableService.generateSharedAccessSignature(table, sharedAccessPolicy);
* var sasUrl = tableService.getUrl(table, sasToken);
*/
TableService.prototype.getUrl = function (table, sasToken, primary) {
  validate.validateArgs('getUrl', function (v) {
    v.string(table, 'table');
    v.tableNameIsValid(table);
  });

  return this._getUrl(table, sasToken, primary);
};

/**
* Given the partition key, row key, property name, property value,
* and the property Edm type if given by the service, returns the Edm type of the property.
* @typedef {function} TableService~propertyResolver
* @param {object} pk  The partition key.
* @param {object} rk  The row key.
* @param {string} name  The property name.
* @param {object} value The property value.
* @param {string} type  The EDM type.
*/

/** 
* Returns entities matched by a query.
* @callback TableService~queryResponse                                                                                
* @param {object} error                     If an error occurs, the error information.
* @param {object} entries                  The entities returned by the query.
* @param {object} queryResultContinuation   If more matching entities exist, and could not be returned,
*                                           a continuation token that can be used to retrieve more results.
* @param {object} response                  Information related to this operation.
*/

module.exports = TableService;


/***/ }),
/* 270 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var hasOwn = Object.prototype.hasOwnProperty;
var toStr = Object.prototype.toString;
var defineProperty = Object.defineProperty;
var gOPD = Object.getOwnPropertyDescriptor;

var isArray = function isArray(arr) {
	if (typeof Array.isArray === 'function') {
		return Array.isArray(arr);
	}

	return toStr.call(arr) === '[object Array]';
};

var isPlainObject = function isPlainObject(obj) {
	if (!obj || toStr.call(obj) !== '[object Object]') {
		return false;
	}

	var hasOwnConstructor = hasOwn.call(obj, 'constructor');
	var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
	// Not own constructor property must be Object
	if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
		return false;
	}

	// Own properties are enumerated firstly, so to speed up,
	// if last one is own, then all properties are own.
	var key;
	for (key in obj) { /**/ }

	return typeof key === 'undefined' || hasOwn.call(obj, key);
};

// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
var setProperty = function setProperty(target, options) {
	if (defineProperty && options.name === '__proto__') {
		defineProperty(target, options.name, {
			enumerable: true,
			configurable: true,
			value: options.newValue,
			writable: true
		});
	} else {
		target[options.name] = options.newValue;
	}
};

// Return undefined instead of __proto__ if '__proto__' is not an own property
var getProperty = function getProperty(obj, name) {
	if (name === '__proto__') {
		if (!hasOwn.call(obj, name)) {
			return void 0;
		} else if (gOPD) {
			// In early versions of node, obj['__proto__'] is buggy when obj has
			// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
			return gOPD(obj, name).value;
		}
	}

	return obj[name];
};

module.exports = function extend() {
	var options, name, src, copy, copyIsArray, clone;
	var target = arguments[0];
	var i = 1;
	var length = arguments.length;
	var deep = false;

	// Handle a deep copy situation
	if (typeof target === 'boolean') {
		deep = target;
		target = arguments[1] || {};
		// skip the boolean and the target
		i = 2;
	}
	if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
		target = {};
	}

	for (; i < length; ++i) {
		options = arguments[i];
		// Only deal with non-null/undefined values
		if (options != null) {
			// Extend the base object
			for (name in options) {
				src = getProperty(target, name);
				copy = getProperty(options, name);

				// Prevent never-ending loop
				if (target !== copy) {
					// Recurse if we're merging plain objects or arrays
					if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
						if (copyIsArray) {
							copyIsArray = false;
							clone = src && isArray(src) ? src : [];
						} else {
							clone = src && isPlainObject(src) ? src : {};
						}

						// Never move original objects, clone them
						setProperty(target, { name: name, newValue: extend(deep, clone, copy) });

					// Don't bring in undefined values
					} else if (typeof copy !== 'undefined') {
						setProperty(target, { name: name, newValue: copy });
					}
				}
			}
		}
	}

	// Return the modified object
	return target;
};


/***/ }),
/* 271 */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;//     Underscore.js 1.8.3
//     http://underscorejs.org
//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
//     Underscore may be freely distributed under the MIT license.

(function() {

  // Baseline setup
  // --------------

  // Establish the root object, `window` in the browser, or `exports` on the server.
  var root = this;

  // Save the previous value of the `_` variable.
  var previousUnderscore = root._;

  // Save bytes in the minified (but not gzipped) version:
  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;

  // Create quick reference variables for speed access to core prototypes.
  var
    push             = ArrayProto.push,
    slice            = ArrayProto.slice,
    toString         = ObjProto.toString,
    hasOwnProperty   = ObjProto.hasOwnProperty;

  // All **ECMAScript 5** native function implementations that we hope to use
  // are declared here.
  var
    nativeIsArray      = Array.isArray,
    nativeKeys         = Object.keys,
    nativeBind         = FuncProto.bind,
    nativeCreate       = Object.create;

  // Naked function reference for surrogate-prototype-swapping.
  var Ctor = function(){};

  // Create a safe reference to the Underscore object for use below.
  var _ = function(obj) {
    if (obj instanceof _) return obj;
    if (!(this instanceof _)) return new _(obj);
    this._wrapped = obj;
  };

  // Export the Underscore object for **Node.js**, with
  // backwards-compatibility for the old `require()` API. If we're in
  // the browser, add `_` as a global object.
  if (true) {
    if ( true && module.exports) {
      exports = module.exports = _;
    }
    exports._ = _;
  } else {}

  // Current version.
  _.VERSION = '1.8.3';

  // Internal function that returns an efficient (for current engines) version
  // of the passed-in callback, to be repeatedly applied in other Underscore
  // functions.
  var optimizeCb = function(func, context, argCount) {
    if (context === void 0) return func;
    switch (argCount == null ? 3 : argCount) {
      case 1: return function(value) {
        return func.call(context, value);
      };
      case 2: return function(value, other) {
        return func.call(context, value, other);
      };
      case 3: return function(value, index, collection) {
        return func.call(context, value, index, collection);
      };
      case 4: return function(accumulator, value, index, collection) {
        return func.call(context, accumulator, value, index, collection);
      };
    }
    return function() {
      return func.apply(context, arguments);
    };
  };

  // A mostly-internal function to generate callbacks that can be applied
  // to each element in a collection, returning the desired result — either
  // identity, an arbitrary callback, a property matcher, or a property accessor.
  var cb = function(value, context, argCount) {
    if (value == null) return _.identity;
    if (_.isFunction(value)) return optimizeCb(value, context, argCount);
    if (_.isObject(value)) return _.matcher(value);
    return _.property(value);
  };
  _.iteratee = function(value, context) {
    return cb(value, context, Infinity);
  };

  // An internal function for creating assigner functions.
  var createAssigner = function(keysFunc, undefinedOnly) {
    return function(obj) {
      var length = arguments.length;
      if (length < 2 || obj == null) return obj;
      for (var index = 1; index < length; index++) {
        var source = arguments[index],
            keys = keysFunc(source),
            l = keys.length;
        for (var i = 0; i < l; i++) {
          var key = keys[i];
          if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];
        }
      }
      return obj;
    };
  };

  // An internal function for creating a new object that inherits from another.
  var baseCreate = function(prototype) {
    if (!_.isObject(prototype)) return {};
    if (nativeCreate) return nativeCreate(prototype);
    Ctor.prototype = prototype;
    var result = new Ctor;
    Ctor.prototype = null;
    return result;
  };

  var property = function(key) {
    return function(obj) {
      return obj == null ? void 0 : obj[key];
    };
  };

  // Helper for collection methods to determine whether a collection
  // should be iterated as an array or as an object
  // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength
  // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094
  var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;
  var getLength = property('length');
  var isArrayLike = function(collection) {
    var length = getLength(collection);
    return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;
  };

  // Collection Functions
  // --------------------

  // The cornerstone, an `each` implementation, aka `forEach`.
  // Handles raw objects in addition to array-likes. Treats all
  // sparse array-likes as if they were dense.
  _.each = _.forEach = function(obj, iteratee, context) {
    iteratee = optimizeCb(iteratee, context);
    var i, length;
    if (isArrayLike(obj)) {
      for (i = 0, length = obj.length; i < length; i++) {
        iteratee(obj[i], i, obj);
      }
    } else {
      var keys = _.keys(obj);
      for (i = 0, length = keys.length; i < length; i++) {
        iteratee(obj[keys[i]], keys[i], obj);
      }
    }
    return obj;
  };

  // Return the results of applying the iteratee to each element.
  _.map = _.collect = function(obj, iteratee, context) {
    iteratee = cb(iteratee, context);
    var keys = !isArrayLike(obj) && _.keys(obj),
        length = (keys || obj).length,
        results = Array(length);
    for (var index = 0; index < length; index++) {
      var currentKey = keys ? keys[index] : index;
      results[index] = iteratee(obj[currentKey], currentKey, obj);
    }
    return results;
  };

  // Create a reducing function iterating left or right.
  function createReduce(dir) {
    // Optimized iterator function as using arguments.length
    // in the main function will deoptimize the, see #1991.
    function iterator(obj, iteratee, memo, keys, index, length) {
      for (; index >= 0 && index < length; index += dir) {
        var currentKey = keys ? keys[index] : index;
        memo = iteratee(memo, obj[currentKey], currentKey, obj);
      }
      return memo;
    }

    return function(obj, iteratee, memo, context) {
      iteratee = optimizeCb(iteratee, context, 4);
      var keys = !isArrayLike(obj) && _.keys(obj),
          length = (keys || obj).length,
          index = dir > 0 ? 0 : length - 1;
      // Determine the initial value if none is provided.
      if (arguments.length < 3) {
        memo = obj[keys ? keys[index] : index];
        index += dir;
      }
      return iterator(obj, iteratee, memo, keys, index, length);
    };
  }

  // **Reduce** builds up a single result from a list of values, aka `inject`,
  // or `foldl`.
  _.reduce = _.foldl = _.inject = createReduce(1);

  // The right-associative version of reduce, also known as `foldr`.
  _.reduceRight = _.foldr = createReduce(-1);

  // Return the first value which passes a truth test. Aliased as `detect`.
  _.find = _.detect = function(obj, predicate, context) {
    var key;
    if (isArrayLike(obj)) {
      key = _.findIndex(obj, predicate, context);
    } else {
      key = _.findKey(obj, predicate, context);
    }
    if (key !== void 0 && key !== -1) return obj[key];
  };

  // Return all the elements that pass a truth test.
  // Aliased as `select`.
  _.filter = _.select = function(obj, predicate, context) {
    var results = [];
    predicate = cb(predicate, context);
    _.each(obj, function(value, index, list) {
      if (predicate(value, index, list)) results.push(value);
    });
    return results;
  };

  // Return all the elements for which a truth test fails.
  _.reject = function(obj, predicate, context) {
    return _.filter(obj, _.negate(cb(predicate)), context);
  };

  // Determine whether all of the elements match a truth test.
  // Aliased as `all`.
  _.every = _.all = function(obj, predicate, context) {
    predicate = cb(predicate, context);
    var keys = !isArrayLike(obj) && _.keys(obj),
        length = (keys || obj).length;
    for (var index = 0; index < length; index++) {
      var currentKey = keys ? keys[index] : index;
      if (!predicate(obj[currentKey], currentKey, obj)) return false;
    }
    return true;
  };

  // Determine if at least one element in the object matches a truth test.
  // Aliased as `any`.
  _.some = _.any = function(obj, predicate, context) {
    predicate = cb(predicate, context);
    var keys = !isArrayLike(obj) && _.keys(obj),
        length = (keys || obj).length;
    for (var index = 0; index < length; index++) {
      var currentKey = keys ? keys[index] : index;
      if (predicate(obj[currentKey], currentKey, obj)) return true;
    }
    return false;
  };

  // Determine if the array or object contains a given item (using `===`).
  // Aliased as `includes` and `include`.
  _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {
    if (!isArrayLike(obj)) obj = _.values(obj);
    if (typeof fromIndex != 'number' || guard) fromIndex = 0;
    return _.indexOf(obj, item, fromIndex) >= 0;
  };

  // Invoke a method (with arguments) on every item in a collection.
  _.invoke = function(obj, method) {
    var args = slice.call(arguments, 2);
    var isFunc = _.isFunction(method);
    return _.map(obj, function(value) {
      var func = isFunc ? method : value[method];
      return func == null ? func : func.apply(value, args);
    });
  };

  // Convenience version of a common use case of `map`: fetching a property.
  _.pluck = function(obj, key) {
    return _.map(obj, _.property(key));
  };

  // Convenience version of a common use case of `filter`: selecting only objects
  // containing specific `key:value` pairs.
  _.where = function(obj, attrs) {
    return _.filter(obj, _.matcher(attrs));
  };

  // Convenience version of a common use case of `find`: getting the first object
  // containing specific `key:value` pairs.
  _.findWhere = function(obj, attrs) {
    return _.find(obj, _.matcher(attrs));
  };

  // Return the maximum element (or element-based computation).
  _.max = function(obj, iteratee, context) {
    var result = -Infinity, lastComputed = -Infinity,
        value, computed;
    if (iteratee == null && obj != null) {
      obj = isArrayLike(obj) ? obj : _.values(obj);
      for (var i = 0, length = obj.length; i < length; i++) {
        value = obj[i];
        if (value > result) {
          result = value;
        }
      }
    } else {
      iteratee = cb(iteratee, context);
      _.each(obj, function(value, index, list) {
        computed = iteratee(value, index, list);
        if (computed > lastComputed || computed === -Infinity && result === -Infinity) {
          result = value;
          lastComputed = computed;
        }
      });
    }
    return result;
  };

  // Return the minimum element (or element-based computation).
  _.min = function(obj, iteratee, context) {
    var result = Infinity, lastComputed = Infinity,
        value, computed;
    if (iteratee == null && obj != null) {
      obj = isArrayLike(obj) ? obj : _.values(obj);
      for (var i = 0, length = obj.length; i < length; i++) {
        value = obj[i];
        if (value < result) {
          result = value;
        }
      }
    } else {
      iteratee = cb(iteratee, context);
      _.each(obj, function(value, index, list) {
        computed = iteratee(value, index, list);
        if (computed < lastComputed || computed === Infinity && result === Infinity) {
          result = value;
          lastComputed = computed;
        }
      });
    }
    return result;
  };

  // Shuffle a collection, using the modern version of the
  // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).
  _.shuffle = function(obj) {
    var set = isArrayLike(obj) ? obj : _.values(obj);
    var length = set.length;
    var shuffled = Array(length);
    for (var index = 0, rand; index < length; index++) {
      rand = _.random(0, index);
      if (rand !== index) shuffled[index] = shuffled[rand];
      shuffled[rand] = set[index];
    }
    return shuffled;
  };

  // Sample **n** random values from a collection.
  // If **n** is not specified, returns a single random element.
  // The internal `guard` argument allows it to work with `map`.
  _.sample = function(obj, n, guard) {
    if (n == null || guard) {
      if (!isArrayLike(obj)) obj = _.values(obj);
      return obj[_.random(obj.length - 1)];
    }
    return _.shuffle(obj).slice(0, Math.max(0, n));
  };

  // Sort the object's values by a criterion produced by an iteratee.
  _.sortBy = function(obj, iteratee, context) {
    iteratee = cb(iteratee, context);
    return _.pluck(_.map(obj, function(value, index, list) {
      return {
        value: value,
        index: index,
        criteria: iteratee(value, index, list)
      };
    }).sort(function(left, right) {
      var a = left.criteria;
      var b = right.criteria;
      if (a !== b) {
        if (a > b || a === void 0) return 1;
        if (a < b || b === void 0) return -1;
      }
      return left.index - right.index;
    }), 'value');
  };

  // An internal function used for aggregate "group by" operations.
  var group = function(behavior) {
    return function(obj, iteratee, context) {
      var result = {};
      iteratee = cb(iteratee, context);
      _.each(obj, function(value, index) {
        var key = iteratee(value, index, obj);
        behavior(result, value, key);
      });
      return result;
    };
  };

  // Groups the object's values by a criterion. Pass either a string attribute
  // to group by, or a function that returns the criterion.
  _.groupBy = group(function(result, value, key) {
    if (_.has(result, key)) result[key].push(value); else result[key] = [value];
  });

  // Indexes the object's values by a criterion, similar to `groupBy`, but for
  // when you know that your index values will be unique.
  _.indexBy = group(function(result, value, key) {
    result[key] = value;
  });

  // Counts instances of an object that group by a certain criterion. Pass
  // either a string attribute to count by, or a function that returns the
  // criterion.
  _.countBy = group(function(result, value, key) {
    if (_.has(result, key)) result[key]++; else result[key] = 1;
  });

  // Safely create a real, live array from anything iterable.
  _.toArray = function(obj) {
    if (!obj) return [];
    if (_.isArray(obj)) return slice.call(obj);
    if (isArrayLike(obj)) return _.map(obj, _.identity);
    return _.values(obj);
  };

  // Return the number of elements in an object.
  _.size = function(obj) {
    if (obj == null) return 0;
    return isArrayLike(obj) ? obj.length : _.keys(obj).length;
  };

  // Split a collection into two arrays: one whose elements all satisfy the given
  // predicate, and one whose elements all do not satisfy the predicate.
  _.partition = function(obj, predicate, context) {
    predicate = cb(predicate, context);
    var pass = [], fail = [];
    _.each(obj, function(value, key, obj) {
      (predicate(value, key, obj) ? pass : fail).push(value);
    });
    return [pass, fail];
  };

  // Array Functions
  // ---------------

  // Get the first element of an array. Passing **n** will return the first N
  // values in the array. Aliased as `head` and `take`. The **guard** check
  // allows it to work with `_.map`.
  _.first = _.head = _.take = function(array, n, guard) {
    if (array == null) return void 0;
    if (n == null || guard) return array[0];
    return _.initial(array, array.length - n);
  };

  // Returns everything but the last entry of the array. Especially useful on
  // the arguments object. Passing **n** will return all the values in
  // the array, excluding the last N.
  _.initial = function(array, n, guard) {
    return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));
  };

  // Get the last element of an array. Passing **n** will return the last N
  // values in the array.
  _.last = function(array, n, guard) {
    if (array == null) return void 0;
    if (n == null || guard) return array[array.length - 1];
    return _.rest(array, Math.max(0, array.length - n));
  };

  // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.
  // Especially useful on the arguments object. Passing an **n** will return
  // the rest N values in the array.
  _.rest = _.tail = _.drop = function(array, n, guard) {
    return slice.call(array, n == null || guard ? 1 : n);
  };

  // Trim out all falsy values from an array.
  _.compact = function(array) {
    return _.filter(array, _.identity);
  };

  // Internal implementation of a recursive `flatten` function.
  var flatten = function(input, shallow, strict, startIndex) {
    var output = [], idx = 0;
    for (var i = startIndex || 0, length = getLength(input); i < length; i++) {
      var value = input[i];
      if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {
        //flatten current level of array or arguments object
        if (!shallow) value = flatten(value, shallow, strict);
        var j = 0, len = value.length;
        output.length += len;
        while (j < len) {
          output[idx++] = value[j++];
        }
      } else if (!strict) {
        output[idx++] = value;
      }
    }
    return output;
  };

  // Flatten out an array, either recursively (by default), or just one level.
  _.flatten = function(array, shallow) {
    return flatten(array, shallow, false);
  };

  // Return a version of the array that does not contain the specified value(s).
  _.without = function(array) {
    return _.difference(array, slice.call(arguments, 1));
  };

  // Produce a duplicate-free version of the array. If the array has already
  // been sorted, you have the option of using a faster algorithm.
  // Aliased as `unique`.
  _.uniq = _.unique = function(array, isSorted, iteratee, context) {
    if (!_.isBoolean(isSorted)) {
      context = iteratee;
      iteratee = isSorted;
      isSorted = false;
    }
    if (iteratee != null) iteratee = cb(iteratee, context);
    var result = [];
    var seen = [];
    for (var i = 0, length = getLength(array); i < length; i++) {
      var value = array[i],
          computed = iteratee ? iteratee(value, i, array) : value;
      if (isSorted) {
        if (!i || seen !== computed) result.push(value);
        seen = computed;
      } else if (iteratee) {
        if (!_.contains(seen, computed)) {
          seen.push(computed);
          result.push(value);
        }
      } else if (!_.contains(result, value)) {
        result.push(value);
      }
    }
    return result;
  };

  // Produce an array that contains the union: each distinct element from all of
  // the passed-in arrays.
  _.union = function() {
    return _.uniq(flatten(arguments, true, true));
  };

  // Produce an array that contains every item shared between all the
  // passed-in arrays.
  _.intersection = function(array) {
    var result = [];
    var argsLength = arguments.length;
    for (var i = 0, length = getLength(array); i < length; i++) {
      var item = array[i];
      if (_.contains(result, item)) continue;
      for (var j = 1; j < argsLength; j++) {
        if (!_.contains(arguments[j], item)) break;
      }
      if (j === argsLength) result.push(item);
    }
    return result;
  };

  // Take the difference between one array and a number of other arrays.
  // Only the elements present in just the first array will remain.
  _.difference = function(array) {
    var rest = flatten(arguments, true, true, 1);
    return _.filter(array, function(value){
      return !_.contains(rest, value);
    });
  };

  // Zip together multiple lists into a single array -- elements that share
  // an index go together.
  _.zip = function() {
    return _.unzip(arguments);
  };

  // Complement of _.zip. Unzip accepts an array of arrays and groups
  // each array's elements on shared indices
  _.unzip = function(array) {
    var length = array && _.max(array, getLength).length || 0;
    var result = Array(length);

    for (var index = 0; index < length; index++) {
      result[index] = _.pluck(array, index);
    }
    return result;
  };

  // Converts lists into objects. Pass either a single array of `[key, value]`
  // pairs, or two parallel arrays of the same length -- one of keys, and one of
  // the corresponding values.
  _.object = function(list, values) {
    var result = {};
    for (var i = 0, length = getLength(list); i < length; i++) {
      if (values) {
        result[list[i]] = values[i];
      } else {
        result[list[i][0]] = list[i][1];
      }
    }
    return result;
  };

  // Generator function to create the findIndex and findLastIndex functions
  function createPredicateIndexFinder(dir) {
    return function(array, predicate, context) {
      predicate = cb(predicate, context);
      var length = getLength(array);
      var index = dir > 0 ? 0 : length - 1;
      for (; index >= 0 && index < length; index += dir) {
        if (predicate(array[index], index, array)) return index;
      }
      return -1;
    };
  }

  // Returns the first index on an array-like that passes a predicate test
  _.findIndex = createPredicateIndexFinder(1);
  _.findLastIndex = createPredicateIndexFinder(-1);

  // Use a comparator function to figure out the smallest index at which
  // an object should be inserted so as to maintain order. Uses binary search.
  _.sortedIndex = function(array, obj, iteratee, context) {
    iteratee = cb(iteratee, context, 1);
    var value = iteratee(obj);
    var low = 0, high = getLength(array);
    while (low < high) {
      var mid = Math.floor((low + high) / 2);
      if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;
    }
    return low;
  };

  // Generator function to create the indexOf and lastIndexOf functions
  function createIndexFinder(dir, predicateFind, sortedIndex) {
    return function(array, item, idx) {
      var i = 0, length = getLength(array);
      if (typeof idx == 'number') {
        if (dir > 0) {
            i = idx >= 0 ? idx : Math.max(idx + length, i);
        } else {
            length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;
        }
      } else if (sortedIndex && idx && length) {
        idx = sortedIndex(array, item);
        return array[idx] === item ? idx : -1;
      }
      if (item !== item) {
        idx = predicateFind(slice.call(array, i, length), _.isNaN);
        return idx >= 0 ? idx + i : -1;
      }
      for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {
        if (array[idx] === item) return idx;
      }
      return -1;
    };
  }

  // Return the position of the first occurrence of an item in an array,
  // or -1 if the item is not included in the array.
  // If the array is large and already in sort order, pass `true`
  // for **isSorted** to use binary search.
  _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);
  _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);

  // Generate an integer Array containing an arithmetic progression. A port of
  // the native Python `range()` function. See
  // [the Python documentation](http://docs.python.org/library/functions.html#range).
  _.range = function(start, stop, step) {
    if (stop == null) {
      stop = start || 0;
      start = 0;
    }
    step = step || 1;

    var length = Math.max(Math.ceil((stop - start) / step), 0);
    var range = Array(length);

    for (var idx = 0; idx < length; idx++, start += step) {
      range[idx] = start;
    }

    return range;
  };

  // Function (ahem) Functions
  // ------------------

  // Determines whether to execute a function as a constructor
  // or a normal function with the provided arguments
  var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {
    if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);
    var self = baseCreate(sourceFunc.prototype);
    var result = sourceFunc.apply(self, args);
    if (_.isObject(result)) return result;
    return self;
  };

  // Create a function bound to a given object (assigning `this`, and arguments,
  // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if
  // available.
  _.bind = function(func, context) {
    if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
    if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');
    var args = slice.call(arguments, 2);
    var bound = function() {
      return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));
    };
    return bound;
  };

  // Partially apply a function by creating a version that has had some of its
  // arguments pre-filled, without changing its dynamic `this` context. _ acts
  // as a placeholder, allowing any combination of arguments to be pre-filled.
  _.partial = function(func) {
    var boundArgs = slice.call(arguments, 1);
    var bound = function() {
      var position = 0, length = boundArgs.length;
      var args = Array(length);
      for (var i = 0; i < length; i++) {
        args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];
      }
      while (position < arguments.length) args.push(arguments[position++]);
      return executeBound(func, bound, this, this, args);
    };
    return bound;
  };

  // Bind a number of an object's methods to that object. Remaining arguments
  // are the method names to be bound. Useful for ensuring that all callbacks
  // defined on an object belong to it.
  _.bindAll = function(obj) {
    var i, length = arguments.length, key;
    if (length <= 1) throw new Error('bindAll must be passed function names');
    for (i = 1; i < length; i++) {
      key = arguments[i];
      obj[key] = _.bind(obj[key], obj);
    }
    return obj;
  };

  // Memoize an expensive function by storing its results.
  _.memoize = function(func, hasher) {
    var memoize = function(key) {
      var cache = memoize.cache;
      var address = '' + (hasher ? hasher.apply(this, arguments) : key);
      if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);
      return cache[address];
    };
    memoize.cache = {};
    return memoize;
  };

  // Delays a function for the given number of milliseconds, and then calls
  // it with the arguments supplied.
  _.delay = function(func, wait) {
    var args = slice.call(arguments, 2);
    return setTimeout(function(){
      return func.apply(null, args);
    }, wait);
  };

  // Defers a function, scheduling it to run after the current call stack has
  // cleared.
  _.defer = _.partial(_.delay, _, 1);

  // Returns a function, that, when invoked, will only be triggered at most once
  // during a given window of time. Normally, the throttled function will run
  // as much as it can, without ever going more than once per `wait` duration;
  // but if you'd like to disable the execution on the leading edge, pass
  // `{leading: false}`. To disable execution on the trailing edge, ditto.
  _.throttle = function(func, wait, options) {
    var context, args, result;
    var timeout = null;
    var previous = 0;
    if (!options) options = {};
    var later = function() {
      previous = options.leading === false ? 0 : _.now();
      timeout = null;
      result = func.apply(context, args);
      if (!timeout) context = args = null;
    };
    return function() {
      var now = _.now();
      if (!previous && options.leading === false) previous = now;
      var remaining = wait - (now - previous);
      context = this;
      args = arguments;
      if (remaining <= 0 || remaining > wait) {
        if (timeout) {
          clearTimeout(timeout);
          timeout = null;
        }
        previous = now;
        result = func.apply(context, args);
        if (!timeout) context = args = null;
      } else if (!timeout && options.trailing !== false) {
        timeout = setTimeout(later, remaining);
      }
      return result;
    };
  };

  // Returns a function, that, as long as it continues to be invoked, will not
  // be triggered. The function will be called after it stops being called for
  // N milliseconds. If `immediate` is passed, trigger the function on the
  // leading edge, instead of the trailing.
  _.debounce = function(func, wait, immediate) {
    var timeout, args, context, timestamp, result;

    var later = function() {
      var last = _.now() - timestamp;

      if (last < wait && last >= 0) {
        timeout = setTimeout(later, wait - last);
      } else {
        timeout = null;
        if (!immediate) {
          result = func.apply(context, args);
          if (!timeout) context = args = null;
        }
      }
    };

    return function() {
      context = this;
      args = arguments;
      timestamp = _.now();
      var callNow = immediate && !timeout;
      if (!timeout) timeout = setTimeout(later, wait);
      if (callNow) {
        result = func.apply(context, args);
        context = args = null;
      }

      return result;
    };
  };

  // Returns the first function passed as an argument to the second,
  // allowing you to adjust arguments, run code before and after, and
  // conditionally execute the original function.
  _.wrap = function(func, wrapper) {
    return _.partial(wrapper, func);
  };

  // Returns a negated version of the passed-in predicate.
  _.negate = function(predicate) {
    return function() {
      return !predicate.apply(this, arguments);
    };
  };

  // Returns a function that is the composition of a list of functions, each
  // consuming the return value of the function that follows.
  _.compose = function() {
    var args = arguments;
    var start = args.length - 1;
    return function() {
      var i = start;
      var result = args[start].apply(this, arguments);
      while (i--) result = args[i].call(this, result);
      return result;
    };
  };

  // Returns a function that will only be executed on and after the Nth call.
  _.after = function(times, func) {
    return function() {
      if (--times < 1) {
        return func.apply(this, arguments);
      }
    };
  };

  // Returns a function that will only be executed up to (but not including) the Nth call.
  _.before = function(times, func) {
    var memo;
    return function() {
      if (--times > 0) {
        memo = func.apply(this, arguments);
      }
      if (times <= 1) func = null;
      return memo;
    };
  };

  // Returns a function that will be executed at most one time, no matter how
  // often you call it. Useful for lazy initialization.
  _.once = _.partial(_.before, 2);

  // Object Functions
  // ----------------

  // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.
  var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');
  var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',
                      'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];

  function collectNonEnumProps(obj, keys) {
    var nonEnumIdx = nonEnumerableProps.length;
    var constructor = obj.constructor;
    var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;

    // Constructor is a special case.
    var prop = 'constructor';
    if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);

    while (nonEnumIdx--) {
      prop = nonEnumerableProps[nonEnumIdx];
      if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {
        keys.push(prop);
      }
    }
  }

  // Retrieve the names of an object's own properties.
  // Delegates to **ECMAScript 5**'s native `Object.keys`
  _.keys = function(obj) {
    if (!_.isObject(obj)) return [];
    if (nativeKeys) return nativeKeys(obj);
    var keys = [];
    for (var key in obj) if (_.has(obj, key)) keys.push(key);
    // Ahem, IE < 9.
    if (hasEnumBug) collectNonEnumProps(obj, keys);
    return keys;
  };

  // Retrieve all the property names of an object.
  _.allKeys = function(obj) {
    if (!_.isObject(obj)) return [];
    var keys = [];
    for (var key in obj) keys.push(key);
    // Ahem, IE < 9.
    if (hasEnumBug) collectNonEnumProps(obj, keys);
    return keys;
  };

  // Retrieve the values of an object's properties.
  _.values = function(obj) {
    var keys = _.keys(obj);
    var length = keys.length;
    var values = Array(length);
    for (var i = 0; i < length; i++) {
      values[i] = obj[keys[i]];
    }
    return values;
  };

  // Returns the results of applying the iteratee to each element of the object
  // In contrast to _.map it returns an object
  _.mapObject = function(obj, iteratee, context) {
    iteratee = cb(iteratee, context);
    var keys =  _.keys(obj),
          length = keys.length,
          results = {},
          currentKey;
      for (var index = 0; index < length; index++) {
        currentKey = keys[index];
        results[currentKey] = iteratee(obj[currentKey], currentKey, obj);
      }
      return results;
  };

  // Convert an object into a list of `[key, value]` pairs.
  _.pairs = function(obj) {
    var keys = _.keys(obj);
    var length = keys.length;
    var pairs = Array(length);
    for (var i = 0; i < length; i++) {
      pairs[i] = [keys[i], obj[keys[i]]];
    }
    return pairs;
  };

  // Invert the keys and values of an object. The values must be serializable.
  _.invert = function(obj) {
    var result = {};
    var keys = _.keys(obj);
    for (var i = 0, length = keys.length; i < length; i++) {
      result[obj[keys[i]]] = keys[i];
    }
    return result;
  };

  // Return a sorted list of the function names available on the object.
  // Aliased as `methods`
  _.functions = _.methods = function(obj) {
    var names = [];
    for (var key in obj) {
      if (_.isFunction(obj[key])) names.push(key);
    }
    return names.sort();
  };

  // Extend a given object with all the properties in passed-in object(s).
  _.extend = createAssigner(_.allKeys);

  // Assigns a given object with all the own properties in the passed-in object(s)
  // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
  _.extendOwn = _.assign = createAssigner(_.keys);

  // Returns the first key on an object that passes a predicate test
  _.findKey = function(obj, predicate, context) {
    predicate = cb(predicate, context);
    var keys = _.keys(obj), key;
    for (var i = 0, length = keys.length; i < length; i++) {
      key = keys[i];
      if (predicate(obj[key], key, obj)) return key;
    }
  };

  // Return a copy of the object only containing the whitelisted properties.
  _.pick = function(object, oiteratee, context) {
    var result = {}, obj = object, iteratee, keys;
    if (obj == null) return result;
    if (_.isFunction(oiteratee)) {
      keys = _.allKeys(obj);
      iteratee = optimizeCb(oiteratee, context);
    } else {
      keys = flatten(arguments, false, false, 1);
      iteratee = function(value, key, obj) { return key in obj; };
      obj = Object(obj);
    }
    for (var i = 0, length = keys.length; i < length; i++) {
      var key = keys[i];
      var value = obj[key];
      if (iteratee(value, key, obj)) result[key] = value;
    }
    return result;
  };

   // Return a copy of the object without the blacklisted properties.
  _.omit = function(obj, iteratee, context) {
    if (_.isFunction(iteratee)) {
      iteratee = _.negate(iteratee);
    } else {
      var keys = _.map(flatten(arguments, false, false, 1), String);
      iteratee = function(value, key) {
        return !_.contains(keys, key);
      };
    }
    return _.pick(obj, iteratee, context);
  };

  // Fill in a given object with default properties.
  _.defaults = createAssigner(_.allKeys, true);

  // Creates an object that inherits from the given prototype object.
  // If additional properties are provided then they will be added to the
  // created object.
  _.create = function(prototype, props) {
    var result = baseCreate(prototype);
    if (props) _.extendOwn(result, props);
    return result;
  };

  // Create a (shallow-cloned) duplicate of an object.
  _.clone = function(obj) {
    if (!_.isObject(obj)) return obj;
    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
  };

  // Invokes interceptor with the obj, and then returns obj.
  // The primary purpose of this method is to "tap into" a method chain, in
  // order to perform operations on intermediate results within the chain.
  _.tap = function(obj, interceptor) {
    interceptor(obj);
    return obj;
  };

  // Returns whether an object has a given set of `key:value` pairs.
  _.isMatch = function(object, attrs) {
    var keys = _.keys(attrs), length = keys.length;
    if (object == null) return !length;
    var obj = Object(object);
    for (var i = 0; i < length; i++) {
      var key = keys[i];
      if (attrs[key] !== obj[key] || !(key in obj)) return false;
    }
    return true;
  };


  // Internal recursive comparison function for `isEqual`.
  var eq = function(a, b, aStack, bStack) {
    // Identical objects are equal. `0 === -0`, but they aren't identical.
    // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).
    if (a === b) return a !== 0 || 1 / a === 1 / b;
    // A strict comparison is necessary because `null == undefined`.
    if (a == null || b == null) return a === b;
    // Unwrap any wrapped objects.
    if (a instanceof _) a = a._wrapped;
    if (b instanceof _) b = b._wrapped;
    // Compare `[[Class]]` names.
    var className = toString.call(a);
    if (className !== toString.call(b)) return false;
    switch (className) {
      // Strings, numbers, regular expressions, dates, and booleans are compared by value.
      case '[object RegExp]':
      // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')
      case '[object String]':
        // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
        // equivalent to `new String("5")`.
        return '' + a === '' + b;
      case '[object Number]':
        // `NaN`s are equivalent, but non-reflexive.
        // Object(NaN) is equivalent to NaN
        if (+a !== +a) return +b !== +b;
        // An `egal` comparison is performed for other numeric values.
        return +a === 0 ? 1 / +a === 1 / b : +a === +b;
      case '[object Date]':
      case '[object Boolean]':
        // Coerce dates and booleans to numeric primitive values. Dates are compared by their
        // millisecond representations. Note that invalid dates with millisecond representations
        // of `NaN` are not equivalent.
        return +a === +b;
    }

    var areArrays = className === '[object Array]';
    if (!areArrays) {
      if (typeof a != 'object' || typeof b != 'object') return false;

      // Objects with different constructors are not equivalent, but `Object`s or `Array`s
      // from different frames are.
      var aCtor = a.constructor, bCtor = b.constructor;
      if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&
                               _.isFunction(bCtor) && bCtor instanceof bCtor)
                          && ('constructor' in a && 'constructor' in b)) {
        return false;
      }
    }
    // Assume equality for cyclic structures. The algorithm for detecting cyclic
    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.

    // Initializing stack of traversed objects.
    // It's done here since we only need them for objects and arrays comparison.
    aStack = aStack || [];
    bStack = bStack || [];
    var length = aStack.length;
    while (length--) {
      // Linear search. Performance is inversely proportional to the number of
      // unique nested structures.
      if (aStack[length] === a) return bStack[length] === b;
    }

    // Add the first object to the stack of traversed objects.
    aStack.push(a);
    bStack.push(b);

    // Recursively compare objects and arrays.
    if (areArrays) {
      // Compare array lengths to determine if a deep comparison is necessary.
      length = a.length;
      if (length !== b.length) return false;
      // Deep compare the contents, ignoring non-numeric properties.
      while (length--) {
        if (!eq(a[length], b[length], aStack, bStack)) return false;
      }
    } else {
      // Deep compare objects.
      var keys = _.keys(a), key;
      length = keys.length;
      // Ensure that both objects contain the same number of properties before comparing deep equality.
      if (_.keys(b).length !== length) return false;
      while (length--) {
        // Deep compare each member
        key = keys[length];
        if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;
      }
    }
    // Remove the first object from the stack of traversed objects.
    aStack.pop();
    bStack.pop();
    return true;
  };

  // Perform a deep comparison to check if two objects are equal.
  _.isEqual = function(a, b) {
    return eq(a, b);
  };

  // Is a given array, string, or object empty?
  // An "empty" object has no enumerable own-properties.
  _.isEmpty = function(obj) {
    if (obj == null) return true;
    if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;
    return _.keys(obj).length === 0;
  };

  // Is a given value a DOM element?
  _.isElement = function(obj) {
    return !!(obj && obj.nodeType === 1);
  };

  // Is a given value an array?
  // Delegates to ECMA5's native Array.isArray
  _.isArray = nativeIsArray || function(obj) {
    return toString.call(obj) === '[object Array]';
  };

  // Is a given variable an object?
  _.isObject = function(obj) {
    var type = typeof obj;
    return type === 'function' || type === 'object' && !!obj;
  };

  // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.
  _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {
    _['is' + name] = function(obj) {
      return toString.call(obj) === '[object ' + name + ']';
    };
  });

  // Define a fallback version of the method in browsers (ahem, IE < 9), where
  // there isn't any inspectable "Arguments" type.
  if (!_.isArguments(arguments)) {
    _.isArguments = function(obj) {
      return _.has(obj, 'callee');
    };
  }

  // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,
  // IE 11 (#1621), and in Safari 8 (#1929).
  if ( true && typeof Int8Array != 'object') {
    _.isFunction = function(obj) {
      return typeof obj == 'function' || false;
    };
  }

  // Is a given object a finite number?
  _.isFinite = function(obj) {
    return isFinite(obj) && !isNaN(parseFloat(obj));
  };

  // Is the given value `NaN`? (NaN is the only number which does not equal itself).
  _.isNaN = function(obj) {
    return _.isNumber(obj) && obj !== +obj;
  };

  // Is a given value a boolean?
  _.isBoolean = function(obj) {
    return obj === true || obj === false || toString.call(obj) === '[object Boolean]';
  };

  // Is a given value equal to null?
  _.isNull = function(obj) {
    return obj === null;
  };

  // Is a given variable undefined?
  _.isUndefined = function(obj) {
    return obj === void 0;
  };

  // Shortcut function for checking if an object has a given property directly
  // on itself (in other words, not on a prototype).
  _.has = function(obj, key) {
    return obj != null && hasOwnProperty.call(obj, key);
  };

  // Utility Functions
  // -----------------

  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
  // previous owner. Returns a reference to the Underscore object.
  _.noConflict = function() {
    root._ = previousUnderscore;
    return this;
  };

  // Keep the identity function around for default iteratees.
  _.identity = function(value) {
    return value;
  };

  // Predicate-generating functions. Often useful outside of Underscore.
  _.constant = function(value) {
    return function() {
      return value;
    };
  };

  _.noop = function(){};

  _.property = property;

  // Generates a function for a given object that returns a given property.
  _.propertyOf = function(obj) {
    return obj == null ? function(){} : function(key) {
      return obj[key];
    };
  };

  // Returns a predicate for checking whether an object has a given set of
  // `key:value` pairs.
  _.matcher = _.matches = function(attrs) {
    attrs = _.extendOwn({}, attrs);
    return function(obj) {
      return _.isMatch(obj, attrs);
    };
  };

  // Run a function **n** times.
  _.times = function(n, iteratee, context) {
    var accum = Array(Math.max(0, n));
    iteratee = optimizeCb(iteratee, context, 1);
    for (var i = 0; i < n; i++) accum[i] = iteratee(i);
    return accum;
  };

  // Return a random integer between min and max (inclusive).
  _.random = function(min, max) {
    if (max == null) {
      max = min;
      min = 0;
    }
    return min + Math.floor(Math.random() * (max - min + 1));
  };

  // A (possibly faster) way to get the current timestamp as an integer.
  _.now = Date.now || function() {
    return new Date().getTime();
  };

   // List of HTML entities for escaping.
  var escapeMap = {
    '&': '&amp;',
    '<': '&lt;',
    '>': '&gt;',
    '"': '&quot;',
    "'": '&#x27;',
    '`': '&#x60;'
  };
  var unescapeMap = _.invert(escapeMap);

  // Functions for escaping and unescaping strings to/from HTML interpolation.
  var createEscaper = function(map) {
    var escaper = function(match) {
      return map[match];
    };
    // Regexes for identifying a key that needs to be escaped
    var source = '(?:' + _.keys(map).join('|') + ')';
    var testRegexp = RegExp(source);
    var replaceRegexp = RegExp(source, 'g');
    return function(string) {
      string = string == null ? '' : '' + string;
      return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;
    };
  };
  _.escape = createEscaper(escapeMap);
  _.unescape = createEscaper(unescapeMap);

  // If the value of the named `property` is a function then invoke it with the
  // `object` as context; otherwise, return it.
  _.result = function(object, property, fallback) {
    var value = object == null ? void 0 : object[property];
    if (value === void 0) {
      value = fallback;
    }
    return _.isFunction(value) ? value.call(object) : value;
  };

  // Generate a unique integer id (unique within the entire client session).
  // Useful for temporary DOM ids.
  var idCounter = 0;
  _.uniqueId = function(prefix) {
    var id = ++idCounter + '';
    return prefix ? prefix + id : id;
  };

  // By default, Underscore uses ERB-style template delimiters, change the
  // following template settings to use alternative delimiters.
  _.templateSettings = {
    evaluate    : /<%([\s\S]+?)%>/g,
    interpolate : /<%=([\s\S]+?)%>/g,
    escape      : /<%-([\s\S]+?)%>/g
  };

  // When customizing `templateSettings`, if you don't want to define an
  // interpolation, evaluation or escaping regex, we need one that is
  // guaranteed not to match.
  var noMatch = /(.)^/;

  // Certain characters need to be escaped so that they can be put into a
  // string literal.
  var escapes = {
    "'":      "'",
    '\\':     '\\',
    '\r':     'r',
    '\n':     'n',
    '\u2028': 'u2028',
    '\u2029': 'u2029'
  };

  var escaper = /\\|'|\r|\n|\u2028|\u2029/g;

  var escapeChar = function(match) {
    return '\\' + escapes[match];
  };

  // JavaScript micro-templating, similar to John Resig's implementation.
  // Underscore templating handles arbitrary delimiters, preserves whitespace,
  // and correctly escapes quotes within interpolated code.
  // NB: `oldSettings` only exists for backwards compatibility.
  _.template = function(text, settings, oldSettings) {
    if (!settings && oldSettings) settings = oldSettings;
    settings = _.defaults({}, settings, _.templateSettings);

    // Combine delimiters into one regular expression via alternation.
    var matcher = RegExp([
      (settings.escape || noMatch).source,
      (settings.interpolate || noMatch).source,
      (settings.evaluate || noMatch).source
    ].join('|') + '|$', 'g');

    // Compile the template source, escaping string literals appropriately.
    var index = 0;
    var source = "__p+='";
    text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
      source += text.slice(index, offset).replace(escaper, escapeChar);
      index = offset + match.length;

      if (escape) {
        source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
      } else if (interpolate) {
        source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
      } else if (evaluate) {
        source += "';\n" + evaluate + "\n__p+='";
      }

      // Adobe VMs need the match returned to produce the correct offest.
      return match;
    });
    source += "';\n";

    // If a variable is not specified, place data values in local scope.
    if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n';

    source = "var __t,__p='',__j=Array.prototype.join," +
      "print=function(){__p+=__j.call(arguments,'');};\n" +
      source + 'return __p;\n';

    try {
      var render = new Function(settings.variable || 'obj', '_', source);
    } catch (e) {
      e.source = source;
      throw e;
    }

    var template = function(data) {
      return render.call(this, data, _);
    };

    // Provide the compiled source as a convenience for precompilation.
    var argument = settings.variable || 'obj';
    template.source = 'function(' + argument + '){\n' + source + '}';

    return template;
  };

  // Add a "chain" function. Start chaining a wrapped Underscore object.
  _.chain = function(obj) {
    var instance = _(obj);
    instance._chain = true;
    return instance;
  };

  // OOP
  // ---------------
  // If Underscore is called as a function, it returns a wrapped object that
  // can be used OO-style. This wrapper holds altered versions of all the
  // underscore functions. Wrapped objects may be chained.

  // Helper function to continue chaining intermediate results.
  var result = function(instance, obj) {
    return instance._chain ? _(obj).chain() : obj;
  };

  // Add your own custom functions to the Underscore object.
  _.mixin = function(obj) {
    _.each(_.functions(obj), function(name) {
      var func = _[name] = obj[name];
      _.prototype[name] = function() {
        var args = [this._wrapped];
        push.apply(args, arguments);
        return result(this, func.apply(_, args));
      };
    });
  };

  // Add all of the Underscore functions to the wrapper object.
  _.mixin(_);

  // Add all mutator Array functions to the wrapper.
  _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
    var method = ArrayProto[name];
    _.prototype[name] = function() {
      var obj = this._wrapped;
      method.apply(obj, arguments);
      if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];
      return result(this, obj);
    };
  });

  // Add all accessor Array functions to the wrapper.
  _.each(['concat', 'join', 'slice'], function(name) {
    var method = ArrayProto[name];
    _.prototype[name] = function() {
      return result(this, method.apply(this._wrapped, arguments));
    };
  });

  // Extracts the result from a wrapped and chained object.
  _.prototype.value = function() {
    return this._wrapped;
  };

  // Provide unwrapping proxy for some methods used in engine operations
  // such as arithmetic and JSON stringification.
  _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;

  _.prototype.toString = function() {
    return '' + this._wrapped;
  };

  // AMD registration happens at the end for compatibility with AMD loaders
  // that may not enforce next-turn semantics on modules. Even though general
  // practice for AMD registration is to be anonymous, underscore registers
  // as a named module because, like jQuery, it is a base library that is
  // popular enough to be bundled in a third party lib, but not be part of
  // an AMD load request. Those cases could generate an error when an
  // anonymous define() is called outside of a loader request.
  if (true) {
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
      return _;
    }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  }
}.call(this));


/***/ }),
/* 272 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var exports = module.exports;

var azureutil = __webpack_require__(273);

__webpack_require__(279);

var nodeVersion = azureutil.getNodeVersion();
if (nodeVersion.major === 0 && nodeVersion.minor > 8 && !(nodeVersion.minor > 10 || (nodeVersion.minor === 10 && nodeVersion.patch >= 3))) {
  throw new Error('The Microsoft Azure node SDK does not work with node versions > 0.9.0 and < 0.10.3. Please upgrade to node >= 0.10.3');
}

exports.xmlbuilder = __webpack_require__(281);
exports.xml2js = __webpack_require__(302);

exports.Logger = __webpack_require__(304);
exports.WebResource = __webpack_require__(305);

// Services
exports.StorageServiceClient = __webpack_require__(307);

// Models
exports.ServicePropertiesResult = __webpack_require__(574);
exports.ServiceStatsParser = __webpack_require__(580);
exports.AclResult = __webpack_require__(581);
exports.TokenCredential = __webpack_require__(573);

// Filters
exports.LinearRetryPolicyFilter = __webpack_require__(583);
exports.ExponentialRetryPolicyFilter = __webpack_require__(585);
exports.RetryPolicyFilter = __webpack_require__(584);

// Signing
exports.SharedAccessSignature = __webpack_require__(578);
exports.SharedKey = __webpack_require__(576);

// Streams
exports.BatchOperation = __webpack_require__(586);
exports.ChunkAllocator = __webpack_require__(587);
exports.ChunkStream = __webpack_require__(588);
exports.ChunkStreamWithStream = __webpack_require__(589);
exports.SpeedSummary = __webpack_require__(590);
exports.BufferStream = __webpack_require__(570);

// Utilities
exports.Constants = __webpack_require__(275);
exports.SR = __webpack_require__(278);
exports.date = __webpack_require__(591);
exports.ISO8061Date = __webpack_require__(582);
exports.util = __webpack_require__(273);
exports.validate = __webpack_require__(496);
exports.StorageUtilities = __webpack_require__(277);
exports.AccessCondition = __webpack_require__(592);

/***/ }),
/* 273 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var _ = __webpack_require__(271);
var util = __webpack_require__(113);
var url = __webpack_require__(274);
var stream = __webpack_require__(111);
var Constants = __webpack_require__(275);
var Md5Wrapper = __webpack_require__(276);
var StorageUtilities = __webpack_require__(277);
var SR = __webpack_require__(278);

/**
* Trim the default port in the url.
*
* @param {string} uri The URI to be encoded.
* @return {string} The URI without defualt port.
*/
exports.trimPortFromUri = function (uri) {
  var uri = url.parse(uri);
  if ((uri.protocol === Constants.HTTPS && uri.port == Constants.DEFAULT_HTTPS_PORT) || (uri.protocol === Constants.HTTP && uri.port == Constants.DEFAULT_HTTP_PORT)) {
    uri.host = uri.hostname;
  }
  return url.format(uri);
};

/**
* Returns the number of keys (properties) in an object.
*
* @param {object} value The object which keys are to be counted.
* @return {number} The number of keys in the object.
*/
exports.objectKeysLength = function (value) {
  if (!value) {
    return 0;
  }

  return _.keys(value).length;
};

/**
* Checks if in a browser environment.
*
* @return {bool} True if in a browser environment, false otherwise.
*/
exports.isBrowser = function () {
  return typeof window !== 'undefined';
};

/**
* Checks if in IE.
*
* @return {bool} True if in IE, false otherwise.
*/
exports.isIE = function () {
  if (!exports.isBrowser()) {
    return false;
  }

  var ua = window.navigator.userAgent;
  var msie = ua.indexOf('MSIE ');
  var trident = ua.indexOf('Trident/');
  return msie > 0 || trident > 0;
};

/**
* Checks if in a 32bit Node.js environment.
*
* @return {bool} True if in a 32bit Node.js environment, false otherwise.
*/
exports.is32 = function () {
  return !exports.isBrowser() && process.arch === 'ia32';
};

/**
* Checks if a value is null or undefined.
*
* @param {object} value The value to check for null or undefined.
* @return {bool} True if the value is null or undefined, false otherwise.
*/
exports.objectIsNull = function (value) {
  return _.isNull(value) || _.isUndefined(value);
};

/**
* Checks if an object is empty.
*
* @param {object} object The object to check if it is null.
* @return {bool} True if the object is empty, false otherwise.
*/
exports.objectIsEmpty = function (object) {
  return _.isEmpty(object);
};

/**
* Determines if an object contains an integer number.
*
* @param {object}  value  The object to assert.
* @return {bool} True if the object contains an integer number; false otherwise.
*/
exports.objectIsInt = function (value) {
  return typeof value === 'number' && parseFloat(value) == parseInt(value, 10) && !isNaN(value);
};

/**
* Determines if an object is a NaN.
*
* @param {object}  value  The object to assert.
* @return {bool} True if the object is a NaN; false otherwise.
*/
exports.objectIsNaN = function (value) {
  return typeof(value) === 'number' && isNaN(value);
};

/**
* Checks if an object is a string.
*
* @param {object} object The object to check if it is a string.
* @return {bool} True if the object is a string, false otherwise.
*/
exports.objectIsString = function (object) {
  return _.isString(object);
};

/**
* Check if an object is a function
* @param {object} object The object to check whether it is function
* @return {bool} True if the specified object is function, otherwise false
*/
exports.objectIsFunction = function (object) {
  return _.isFunction(object);
};


/**
* Front zero padding of string to sepcified length
*/
exports.zeroPaddingString = function(str, len) {
  var paddingStr = '0000000000' + str;
  if(paddingStr.length < len) {
    return exports.zeroPaddingString(paddingStr, len);
  } else {
    return paddingStr.substr(-1 * len);
  }
};

/**
* Checks if a value is an empty string, null or undefined.
*
* @param {object} value The value to check for an empty string, null or undefined.
* @return {bool} True if the value is an empty string, null or undefined, false otherwise.
*/
exports.stringIsEmpty = function (value) {
  return _.isNull(value) || _.isUndefined(value) || value === '';
};

/**
* Checks if a value is null, empty, undefined or consists only of white-space characters.
*
* @param {object} value The value to check for null, empty, undefined and white-space only characters.
* @return {bool} True if the value is an empty string, null, undefined, or consists only of white-space characters, false otherwise.
*/
exports.IsNullOrEmptyOrUndefinedOrWhiteSpace = function (value) {
  if(_.isNull(value) || _.isUndefined(value) || value === '') {
    return true;
  }

  if(_.isString(value) && value.trim().length === 0) {
    return true;
  }

  return false;
};

/**
* Formats a text replacing '?' by the arguments.
*
* @param {string}       text      The string where the ? should be replaced.
* @param {array}        arguments Value(s) to insert in question mark (?) parameters.
* @return {string}
*/
exports.stringFormat = function (text) {
  if (arguments.length > 1) {
    for (var i = 1; text.indexOf('?') !== -1; i++) {
      text = text.replace('?', arguments[i]);
    }
  }

  return text;
};

/**
* Determines if a string starts with another.
*
* @param {string}       text      The string to assert.
* @param {string}       prefix    The string prefix.
* @return {Bool} True if the string starts with the prefix; false otherwise.
*/
exports.stringStartsWith = function (text, prefix) {
  if (_.isNull(prefix)) {
    return true;
  }

  return text.substr(0, prefix.length) === prefix;
};

/**
* Determines if a string ends with another.
*
* @param {string}       text      The string to assert.
* @param {string}       suffix    The string suffix.
* @return {Bool} True if the string ends with the suffix; false otherwise.
*/
exports.stringEndsWith = function (text, suffix) {
  if (_.isNull(suffix)) {
    return true;
  }

  return text.substr(text.length - suffix.length) === suffix;
};

/**
* Removes the BOM from a string.
*
* @param {string} str The string from where the BOM is to be removed
* @return {string} The string without the BOM.
*/
exports.removeBOM = function (str) {
  if (str.charCodeAt(0) === 0xfeff || str.charCodeAt(0) === 0xffef) {
    str = str.substring(1);
  }

  return str;
};

/**
* Merges multiple objects.
*
* @param {object} object The objects to be merged
* @return {object} The merged object.
*/
exports.merge = function () {
  return _.extend.apply(this, arguments);
};

/**
* Checks if a value exists in an array. The comparison is done in a case
* insensitive manner.
*
* @param {string} needle     The searched value.
* @param {array}  haystack   The array.
*
* @static
*
* @return {boolean}
*/
exports.inArrayInsensitive = function (needle, haystack) {
  return _.contains(_.map(haystack, function (h) { return h.toLowerCase(); }), needle.toLowerCase());
};

/**
* Returns the specified value of the key passed from object and in case that
* this key doesn't exist, the default value is returned. The key matching is
* done in a case insensitive manner.
*
* @param {string} key      The array key.
* @param {object} haystack The object to be used.
* @param {mix}    default  The value to return if $key is not found in $array.
*
* @static
*
* @return mix
*/
exports.tryGetValueInsensitive = function (key, haystack, defaultValue) {
  if (haystack) {
    for (var i in haystack) {
      if (haystack.hasOwnProperty(i) && i.toString().toLowerCase() === key.toString().toLowerCase()) {
        return haystack[i];
      }
    }
  }

  return defaultValue;
};

/**
* Returns the value in a chained object.
*
* @param {object} object   The object with the values.
* @param {array}  keys     The keys.
* @param {mix}    default  The value to return if $key is not found in $array.
*
* @static
*
* @return mix
*/
exports.tryGetValueChain = function (object, keys, defaultValue) {
  if (keys.length === 0) {
    return object;
  }

  var currentKey = keys.shift();
  if (object && object[currentKey] !== undefined) {
    return exports.tryGetValueChain(object[currentKey], keys, defaultValue);
  }

  return defaultValue;
};

/**
* Set the value of an inner property of an object.
*
* @param {object} object   The target object.
* @param {array}  keys     The property chain keys.
* @param {mix}    object   The value to be set.
*
* @static

* @example
* // Set targetObject.propA.propB to 'testValue'
* var targetObject = {};
* util.setObjectInnerPropertyValue(targetObject, ['propA', 'propB'], 'testValue');
*/
exports.setObjectInnerPropertyValue = function(object, propertyChainKeys, value){
  if(!object || propertyChainKeys.length < 1) {
    return;
  }

  var currentKey = propertyChainKeys.shift();
  if(propertyChainKeys.length === 0) {
    object[currentKey] = value;
    return;
  }
  
  if (!object[currentKey]) {
    object[currentKey] = {};
  }
  
  exports.setObjectInnerPropertyValue(object[currentKey], propertyChainKeys, value);
};

/**
* Rounds a date off to seconds.
*
* @param {Date} a date
* @return {string} the date in ISO8061 format, with no milliseconds component
*/
exports.truncatedISO8061Date = function (date) {
  var dateString = date.toISOString();
  return dateString.substring(0, dateString.length - 5) + 'Z';
};

exports.normalizeArgs = function (optionsOrCallback, callback, result) {
  var options = {};
  if(_.isFunction(optionsOrCallback) && !callback) {
    callback = optionsOrCallback;
  } else if (optionsOrCallback) {
    options = optionsOrCallback;
  }

  result(options, callback);
};

exports.getNodeVersion = function () {
  var parsedVersion = process.version.split('.');
  return {
    major: parseInt(parsedVersion[0].substr(1), 10),
    minor: parseInt(parsedVersion[1], 10),
    patch: parseInt(parsedVersion[2], 10)
  };
};

/**
* Calculate md5sum for the stream
* @ignore
*/
exports.calculateMD5 = function(readStream, bufferLength, options, callback) {
  var internalBuff = Buffer.alloc(bufferLength);
  var index = 0;
  var internalHash = new Md5Wrapper().createMd5Hash();
  readStream.on('data', function(data) {
    if (index + data.length > bufferLength) {
      var copyLength = bufferLength - index;
      if (copyLength > 0) {
        data = data.slice(0, copyLength);
        data.copy(internalBuff, index);
        internalHash.update(data);
        index += copyLength;
      }
      readStream.emit('end');
    } else {
      data.copy(internalBuff, index);
      internalHash.update(data);
      index += data.length;
    }
  }).on('end', function() {
    if (!readStream.endEmitted) {
      internalBuff = internalBuff.slice(0, index);
      var contentMD5 = internalHash.digest('base64');
      // Set the flag to be compatible with Nodejs 0.10 which will keep emitting data from 
      // the file stream when the read stream has emitted the end event from its listner. 
      readStream.endEmitted = true;
      callback(internalBuff, contentMD5);
    }
  });
};

/**
* Whether the content of buffer is all zero
*/
exports.isBufferAllZero = function (buffer) {
  for(var i = 0, len = buffer.length; i < len; i++) {
    if (buffer[i] !== 0) {
      return false;
    }
  }
  return true;
};

/**
* Write zero to stream
*/
var zeroBuffer = null;
exports.writeZerosToStream = function (stream, length, md5Hash, progressCallback, callback) {
  var defaultBufferSize = Constants.BlobConstants.DEFAULT_WRITE_BLOCK_SIZE_IN_BYTES;
  var bufferSize = Math.min(defaultBufferSize, length);
  var remaining = length - bufferSize;
  var buffer = null;
  if (bufferSize == defaultBufferSize) {
    if (!zeroBuffer) {
      zeroBuffer = Buffer.alloc(defaultBufferSize);
      zeroBuffer.fill(0);
    }
    buffer = zeroBuffer;
  } else {
    buffer = Buffer.alloc(bufferSize);
    buffer.fill(0);
  }
  if (md5Hash) {
    md5Hash.update(buffer);
  }
  //We can only write the entire buffer to stream instead of part of buffer.
  return stream.write(buffer, function () {
    if (exports.objectIsFunction(progressCallback)) {
      progressCallback(null, buffer.length);
    }
    buffer = null;
    if (remaining > 0) {
      exports.writeZerosToStream(stream, remaining, md5Hash, progressCallback, callback);
    } else if (exports.objectIsFunction(callback)) {
      callback(null, null);
    }
  });
};

/**
* Calculate md5sum for the content
*/
exports.getContentMd5 = function (content, encoding) {
  if (!encoding) encoding = 'base64';
  var internalHash = new Md5Wrapper().createMd5Hash();
  internalHash.update(content, 'utf8');
  return internalHash.digest(encoding);
};

exports.getNextLocation = function(lastLocation, locationMode) {
  switch(locationMode) {
  case StorageUtilities.LocationMode.PRIMARY_ONLY:
    return Constants.StorageLocation.PRIMARY;
  case StorageUtilities.LocationMode.SECONDARY_ONLY:
    return Constants.StorageLocation.SECONDARY;
  case StorageUtilities.LocationMode.PRIMARY_THEN_SECONDARY:
  case StorageUtilities.LocationMode.SECONDARY_THEN_PRIMARY:
    return (lastLocation === Constants.StorageLocation.PRIMARY) ? Constants.StorageLocation.SECONDARY : Constants.StorageLocation.PRIMARY;
  default:
    throw new RangeError(util.format(SR.ARGUMENT_OUT_OF_RANGE_ERROR, 'locationMode', locationMode));
  }
};

exports.getNextListingLocationMode = function (token) {
  if(_.isNull(token) || _.isUndefined(token)) {
    return Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;
  }
  else {
    switch (token.targetLocation) {
    case Constants.StorageLocation.PRIMARY:
      return Constants.RequestLocationMode.PRIMARY_ONLY;
    case Constants.StorageLocation.SECONDARY:
      return Constants.RequestLocationMode.SECONDARY_ONLY;
    default:
      throw new RangeError(util.format(SR.ARGUMENT_OUT_OF_RANGE_ERROR, 'targetLocation', token.targetLocation));
    }
  }
};

exports.isStreamPaused = function (object) {
  if (object instanceof stream) {
    return object._paused === true || (object._readableState && object._readableState.flowing === false);
  }
  return false;
};

/**
* Parse copy progress string in the format of bytesCopied/totalBytes
*/
exports.parseCopyProgress = function (progress) {
  if (typeof progress != 'string' || progress.indexOf('/') === -1) {
    return {};
  }
  
  var progressInfo = progress.split('/');
  return { bytesCopied: progressInfo[0], totalBytes: progressInfo[1] };
};

/**
* The list of the properties should be normalized with explicit mapping
*/
var normalizePropertyNameExceptionList = {
  'x-ms-blob-sequence-number': 'sequenceNumber',
  'content-Type': 'contentSettings.contentType',
  'content-Encoding': 'contentSettings.contentEncoding',
  'content-Language': 'contentSettings.contentLanguage',
  'cache-Control': 'contentSettings.cacheControl',
  'content-Disposition': 'contentSettings.contentDisposition',
  'content-MD5': 'contentSettings.contentMD5',
  'leaseId': 'lease.id',
  'leaseStatus': 'lease.status',
  'leaseDuration': 'lease.duration',
  'leaseState': 'lease.state',
  'copyId': 'copy.id',
  'copyStatus': 'copy.status',
  'copySource': 'copy.source',
  'copyProgress': 'copy.progress',
  'copyCompletionTime': 'copy.completionTime',
  'copyStatusDescription': 'copy.statusDescription',
  'copyDestinationSnapshot': 'copy.destinationSnapshot',
  'publicAccess': 'publicAccessLevel',
  'incrementalCopy': 'isIncrementalCopy'
};

/**
* Normalize the property name from XML to keep consistent with 
* the name defined in the property headers
*/
exports.normalizePropertyNameFromXML = function (propertyName) {
  if (this.IsNullOrEmptyOrUndefinedOrWhiteSpace(propertyName)) {
    return '';
  }
  
  propertyName = propertyName.trim();
  propertyName = propertyName[0].toLowerCase() + propertyName.substring(1);
  // So far the cases are:
  //   for the 'last-modified' property in listing resources
  //   for the 'content-*' properties in listing resources
  //   for the 'cache-control' property in listing blobs
  //   for the 'x-ms-blob-sequence-number' in listing blobs
  if (propertyName in normalizePropertyNameExceptionList) {
    return normalizePropertyNameExceptionList[propertyName];
  } else if (propertyName.toLowerCase().indexOf('-') != -1) {
    return propertyName.replace('-', '');
  } else {
    return propertyName;
  }
};

/**
* Set the property value from XML
*/
exports.setPropertyValueFromXML = function (result, xmlNode, toNormalize) {
  for (var subPropertyName in xmlNode) {
    if (xmlNode.hasOwnProperty(subPropertyName)) {
      if (toNormalize) {
        var propertyChain = this.normalizePropertyNameFromXML(subPropertyName).split('.');
        exports.setObjectInnerPropertyValue(result, propertyChain, xmlNode[subPropertyName]);
      } else {
        result[subPropertyName.toLowerCase()] = xmlNode[subPropertyName];
      }
      
      if (subPropertyName.toLowerCase() === 'copyprogress') {
        var info = this.parseCopyProgress(xmlNode[subPropertyName]);
        exports.setObjectInnerPropertyValue(result, ['copy', 'bytesCopied'], parseInt(info.bytesCopied));
        exports.setObjectInnerPropertyValue(result, ['copy', 'totalBytes'], parseInt(info.totalBytes));
      }
    }
  }
};

/**
 * Filter out non-reserved properties from options
 */
exports.filterOutNonReservedProperties = function (reserved, options) {
  var nonReservedProperties = {};
  if (options) {
    for (var prop in options) {
      if (options.hasOwnProperty(prop)) {
        var isReserved = reserved.hasOwnProperty(prop);
        var isFunction = typeof options[prop] === 'function';
        if (!isReserved && !isFunction) {
          nonReservedProperties[prop] = options[prop];
        }
      }
    }
  }
  return nonReservedProperties;
};

/***/ }),
/* 274 */
/***/ (function(module, exports) {

module.exports = require("url");

/***/ }),
/* 275 */
/***/ (function(module, exports) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Expose 'Constants'.
exports = module.exports;

var storageDnsSuffix = process.env.AZURE_STORAGE_DNS_SUFFIX || 'core.windows.net';

/**
* Defines constants.
*/
var Constants = {
  /*
  * Specifies the value to use for UserAgent header.
  *
  * @const
  * @type {string}
  */
  USER_AGENT_PRODUCT_NAME: 'Azure-Storage',

  /*
  * Specifies the value to use for UserAgent header.
  *
  * @const
  * @type {string}
  */
  USER_AGENT_PRODUCT_VERSION: '2.10.3',

  /**
  * The number of default concurrent requests for parallel operation.
  *
  * @const
  * @type {int}
  */
  DEFAULT_PARALLEL_OPERATION_THREAD_COUNT: 5,

  /**
  * The value of default socket reuse for batch operation.
  *
  * @const
  * @type {boolean}
  */
  DEFAULT_ENABLE_REUSE_SOCKET: true,

  /**
  * Constant representing a kilobyte (Non-SI version).
  *
  * @const
  * @type {int}
  */
  KB: 1024,

  /**
  * Constant representing a megabyte (Non-SI version).
  *
  * @const
  * @type {int}
  */
  MB: 1024 * 1024,

  /**
  * Constant representing a gigabyte (Non-SI version).
  *
  * @const
  * @type {int}
  */
  GB: 1024 * 1024 * 1024,

  /**
  * Specifies HTTP.
  *
  * @const
  * @type {string}
  */
  HTTP: 'http:',

  /**
  * Specifies HTTPS.
  *
  * @const
  * @type {string}
  */
  HTTPS: 'https:',
  
  /**
  * Default HTTP port.
  *
  * @const
  * @type {int}
  */
  DEFAULT_HTTP_PORT: 80,
  
  /**
  * Default HTTPS port.
  *
  * @const
  * @type {int}
  */
  DEFAULT_HTTPS_PORT: 443,

  /**
   * Default client request timeout in milliseconds.
   * Integer containing the number of milliseconds to wait for a server to send response headers (and start the response body) before aborting the request.
   * 2 minutes by default.
   * 
   * @const
   * @type {int}
   */
  DEFAULT_CLIENT_REQUEST_TIMEOUT_IN_MS: 120000,

  /**
  * Marker for atom metadata.
  *
  * @const
  * @type {string}
  */
  XML_METADATA_MARKER: '$',

  /**
  * Marker for atom value.
  *
  * @const
  * @type {string}
  */
  XML_VALUE_MARKER: '_',
  
  /**
  * Defines the service types indicators.
  * 
  * @const
  * @enum {string}
  */
  ServiceType: {
    Blob: 'blob',
    Queue: 'queue',
    Table: 'table',
    File: 'file'
  },

  /**
  * Specifies the location used to indicate which location the operation can be performed against.
  *
  * @const
  * @enum {int}
  */
  RequestLocationMode: {
    PRIMARY_ONLY: 0,
    SECONDARY_ONLY: 1,
    PRIMARY_OR_SECONDARY: 2
  },

  /**
  * Represents a storage service location.
  *
  * @const
  * @enum {int}
  */
  StorageLocation: {
    PRIMARY: 0,
    SECONDARY: 1
  },

  /**
   * Defines constants for use with account SAS.
   */
  AccountSasConstants:{
    /**
    * Permission types.
    *
    * @const
    * @enum {string}
    */
    Permissions: {
      READ: 'r',
      ADD: 'a',
      CREATE: 'c',
      UPDATE: 'u',
      PROCESS: 'p',
      WRITE: 'w',
      DELETE: 'd',
      LIST: 'l'
    },
    
    /**
    * Services types.
    *
    * @const
    * @enum {string}
    */
    Services: {
      BLOB: 'b',
      FILE: 'f',
      QUEUE: 'q',
      TABLE: 't'
    },
    
    /**
    * Resources types.
    *
    * @const
    * @enum {string}
    */
    Resources: {
      SERVICE: 's',
      CONTAINER: 'c',
      OBJECT: 'o'
    },

    /**
     * Protocols types.
     *
     * @const
     * @enum {string}
     */
    Protocols: {
      HTTPSONLY: 'https',
      HTTPSORHTTP: 'https,http'
    }
  },

  /**
  * Defines constants for use with shared access policies.
  */
  AclConstants: {
    /**
    * XML element for an access policy.
    *
    * @const
    * @type {string}
    */
    ACCESS_POLICY: 'AccessPolicy',

    /**
    * XML element for the end time of an access policy.
    *
    * @const
    * @type {string}
    */
    EXPIRY: 'Expiry',

    /**
    * XML attribute for IDs.
    *
    * @const
    * @type {string}
    */
    ID: 'Id',

    /**
    * XML element for the permission of an access policy.
    *
    * @const
    * @type {string}
    */
    PERMISSION: 'Permission',

    /**
    * XML element for a signed identifier.
    *
    * @const
    * @type {string}
    */
    SIGNED_IDENTIFIER_ELEMENT: 'SignedIdentifier',

    /**
    * XML element for signed identifiers.
    *
    * @const
    * @type {string}
    */
    SIGNED_IDENTIFIERS_ELEMENT: 'SignedIdentifiers',

    /**
    * XML element for the start time of an access policy.
    *
    * @const
    * @type {string}
    */
    START: 'Start'
  },

  /**
  * Defines constants for use with service properties.
  */
  ServicePropertiesConstants: {
    /**
    * XML element for storage service properties.
    *
    * @const
    * @type {string}
    */
    STORAGE_SERVICE_PROPERTIES_ELEMENT: 'StorageServiceProperties',

    /**
    * Default analytics version to send for logging, hour metrics and minute metrics.
    *
    * @const
    * @type {string}
    */
    DEFAULT_ANALYTICS_VERSION: '1.0',

    /**
    * XML element for logging.
    *
    * @const
    * @type {string}
    */
    LOGGING_ELEMENT: 'Logging',

    /**
    * XML element for version.
    *
    * @const
    * @type {string}
    */
    VERSION_ELEMENT: 'Version',

    /**
    * XML element for delete.
    *
    * @const
    * @type {string}
    */
    DELETE_ELEMENT: 'Delete',

    /**
    * XML element for read.
    *
    * @const
    * @type {string}
    */
    READ_ELEMENT: 'Read',

    /**
    * XML element for write.
    *
    * @const
    * @type {string}
    */
    WRITE_ELEMENT: 'Write',

    /**
    * XML element for retention policy.
    *
    * @const
    * @type {string}
    */
    RETENTION_POLICY_ELEMENT: 'RetentionPolicy',

    /**
    * XML element for enabled.
    *
    * @const
    * @type {string}
    */
    ENABLED_ELEMENT: 'Enabled',

    /**
    * XML element for days.
    *
    * @const
    * @type {string}
    */
    DAYS_ELEMENT: 'Days',

    /**
    * XML element for HourMetrics.
    *
    * @const
    * @type {string}
    */
    HOUR_METRICS_ELEMENT: 'HourMetrics',

    /**
    * XML element for MinuteMetrics.
    *
    * @const
    * @type {string}
    */
    MINUTE_METRICS_ELEMENT: 'MinuteMetrics',

    /**
    * XML element for Cors.
    *
    * @const
    * @type {string}
    */
    CORS_ELEMENT: 'Cors',

    /**
    * XML element for CorsRule.
    *
    * @const
    * @type {string}
    */
    CORS_RULE_ELEMENT: 'CorsRule',

    /**
    * XML element for AllowedOrigins.
    *
    * @const
    * @type {string}
    */
    ALLOWED_ORIGINS_ELEMENT: 'AllowedOrigins',

    /**
    * XML element for AllowedMethods.
    *
    * @const
    * @type {string}
    */
    ALLOWED_METHODS_ELEMENT: 'AllowedMethods',

    /**
    * XML element for MaxAgeInSeconds.
    *
    * @const
    * @type {string}
    */
    MAX_AGE_IN_SECONDS_ELEMENT: 'MaxAgeInSeconds',

    /**
    * XML element for ExposedHeaders.
    *
    * @const
    * @type {string}
    */
    EXPOSED_HEADERS_ELEMENT: 'ExposedHeaders',

    /**
    * XML element for AllowedHeaders.
    *
    * @const
    * @type {string}
    */
    ALLOWED_HEADERS_ELEMENT: 'AllowedHeaders',

    /**
    * XML element for IncludeAPIs.
    *
    * @const
    * @type {string}
    */
    INCLUDE_APIS_ELEMENT: 'IncludeAPIs',

    /**
    * XML element for DefaultServiceVersion.
    *
    * @const
    * @type {string}
    */
    DEFAULT_SERVICE_VERSION_ELEMENT: 'DefaultServiceVersion',

    /**
    * XML element for DeleteRetentionPolicy.
    *
    * @const
    * @type {string}
    */
    DEFAULT_DELETE_RETENTION_POLICY_ELEMENT: 'DeleteRetentionPolicy',

    /**
    * XML element for StaticWebsite.
    *
    * @const
    * @type {string}
    */
    DEFAULT_STATIC_WEBSITE_ELEMENT: 'StaticWebsite',

    /**
    * XML element for StaticWebsite/IndexDocument.
    *
    * @const
    * @type {string}
    */
    DEFAULT_INDEX_DOCUMENT_ELEMENT: 'IndexDocument',

    /**
    * XML element for StaticWebsite/ErrorDocument404Path.
    *
    * @const
    * @type {string}
    */
   DEFAULT_ERROR_DOCUMENT_404_PATH_ELEMENT: 'ErrorDocument404Path'
  },

  /**
  * Defines constants for use with blob operations.
  */
  BlobConstants: {
    /**
    * XML element for the latest.
    *
    * @const
    * @type {string}
    */
    LATEST_ELEMENT: 'Latest',

    /**
    * XML element for uncommitted blocks.
    *
    * @const
    * @type {string}
    */
    UNCOMMITTED_ELEMENT: 'Uncommitted',

    /**
    * XML element for a block list.
    *
    * @const
    * @type {string}
    */
    BLOCK_LIST_ELEMENT: 'BlockList',

    /**
    * XML element for committed blocks.
    *
    * @const
    * @type {string}
    */
    COMMITTED_ELEMENT: 'Committed',

    /**
    * The default write page size, in bytes, used by blob streams.
    *
    * @const
    * @type {int}
    */
    DEFAULT_WRITE_PAGE_SIZE_IN_BYTES: 4 * 1024 * 1024,
    
    /**
    * The minimum write page size, in bytes, used by blob streams.
    *
    * @const
    * @type {int}
    */
    MIN_WRITE_PAGE_SIZE_IN_BYTES: 2 * 1024 * 1024,

    /**
    * The default maximum size, in bytes, of a blob before it must be separated into blocks.
    *
    * @const
    * @type {int}
    */
    DEFAULT_SINGLE_BLOB_PUT_THRESHOLD_IN_BYTES: 32 * 1024 * 1024,

    /**
    * The default write block size, in bytes, used by blob streams.
    *
    * @const
    * @type {int}
    */
    DEFAULT_WRITE_BLOCK_SIZE_IN_BYTES: 4 * 1024 * 1024,

    /**
    * The default critical memory limitation in 32bit Node.js environment, in bytes.
    *
    * @const
    * @type {int}
    */
    DEFAULT_CRITICAL_MEMORY_LIMITATION_32_IN_BYTES: 800 * 1024 * 1024,

   /**
    * The default critical memory limitation in browser environment, in bytes.
    *
    * @const
    * @type {int}
    */
    DEFAULT_CRITICAL_MEMORY_LIMITATION_BROWSER_IN_BYTES: 1 * 1024 * 1024 * 1024,

   /**
    * The default minimum memory usage in browser environment, in bytes.
    *
    * @const
    * @type {int}
    */
    DEFAULT_MINIMUM_MEMORY_USAGE_BROWSER_IN_BYTES: 4 * 1024 * 1024,

    /**
    * The maximum size of a single block of block blob.
    *
    * @const
    * @type {int}
    */
    MAX_BLOCK_BLOB_BLOCK_SIZE: 100 * 1024 * 1024,

    /**
    * The maximum size of a single block of append blob.
    *
    * @const
    * @type {int}
    */
    MAX_APPEND_BLOB_BLOCK_SIZE: 4 * 1024 * 1024,

    /**
    * The maximum size, in bytes, of a blob before it must be separated into blocks.
    *
    * @const
    * @type {int}
    */
    MAX_SINGLE_UPLOAD_BLOB_SIZE_IN_BYTES: 64 * 1024 * 1024,

    /**
    * The maximum range get size when requesting for a contentMD5.
    *
    * @const
    * @type {int}
    */
    MAX_RANGE_GET_SIZE_WITH_MD5 : 4 * 1024 * 1024,

    /**
    * The maximum page range size for a page update operation.
    *
    * @const
    * @type {int}
    */
    MAX_UPDATE_PAGE_SIZE : 4 * 1024 * 1024,
    
    /**
    * The maximum buffer size for writing a stream buffer.
    *
    * @const
    * @type {int}
    */
    MAX_QUEUED_WRITE_DISK_BUFFER_SIZE : 64 * 1024 * 1024,
    
    /**
    * Max size for single get page range. The max value should be 150MB.
    * http://blogs.msdn.com/b/windowsazurestorage/archive/2012/03/26/getting-the-page-ranges-of-a-large-page-blob-in-segments.aspx
    *
    * @const
    * @type {int}
    */
    MAX_SINGLE_GET_PAGE_RANGE_SIZE : 37 * 4 * 1024 * 1024,

    /**
    * The size of a page, in bytes, in a page blob.
    *
    * @const
    * @type {int}
    */
    PAGE_SIZE: 512,

    /**
    * Resource types.
    *
    * @const
    * @enum {string}
    */
    ResourceTypes: {
      CONTAINER: 'c',
      BLOB: 'b'
    },

    /**
    * List blob types.
    *
    * @const
    * @enum {string}
    */
    ListBlobTypes: {
      Blob: 'b',
      Directory: 'd'
    },

    /**
    * Put page write options
    *
    * @const
    * @enum {string}
    */
    PageWriteOptions: {
      UPDATE: 'update',
      CLEAR: 'clear'
    },

    /**
    * Blob types
    *
    * @const
    * @enum {string}
    */
    BlobTypes: {
      BLOCK: 'BlockBlob',
      PAGE: 'PageBlob',
      APPEND: 'AppendBlob'
    },

    /**
    * Blob lease constants
    *
    * @const
    * @enum {string}
    */
    LeaseOperation: {
      ACQUIRE: 'acquire',
      RENEW: 'renew',
      CHANGE: 'change',
      RELEASE: 'release',
      BREAK: 'break'
    }
  },

  /**
  * Defines constants for use with file operations.
  */
  FileConstants: {
    /**
    * The default write size, in bytes, used by file streams.
    *
    * @const
    * @type {int}
    */
    DEFAULT_WRITE_SIZE_IN_BYTES: 4 * 1024 * 1024,

    /**
    * The maximum range size when requesting for a contentMD5.
    *
    * @const
    * @type {int}
    */
    MAX_RANGE_GET_SIZE_WITH_MD5 : 4 * 1024 * 1024,

    /**
    * The maximum range size for a file update operation.
    *
    * @const
    * @type {int}
    */
    MAX_UPDATE_FILE_SIZE : 4 * 1024 * 1024,

    /**
    * The default minimum size, in bytes, of a file when it must be separated into ranges.
    *
    * @const
    * @type {int}
    */
    DEFAULT_SINGLE_FILE_GET_THRESHOLD_IN_BYTES: 32 * 1024 * 1024,

    /**
    * The minimum write file size, in bytes, used by file streams.
    *
    * @const
    * @type {int}
    */
    MIN_WRITE_FILE_SIZE_IN_BYTES: 2 * 1024 * 1024,

    /**
    * Put range write options
    *
    * @const
    * @enum {string}
    */
    RangeWriteOptions: {
      UPDATE: 'update',
      CLEAR: 'clear'
    },

    /**
    * Resource types.
    *
    * @const
    * @enum {string}
    */
    ResourceTypes: {
      SHARE: 's',
      FILE: 'f'
    }
  },

  /**
  * Defines constants for use with queue storage.
  */
  QueueConstants: {
    /**
    * XML element for QueueMessage.
    *
    * @const
    * @type {string}
    */
    QUEUE_MESSAGE_ELEMENT: 'QueueMessage',

    /**
    * XML element for MessageText.
    *
    * @const
    * @type {string}
    */
    MESSAGE_TEXT_ELEMENT: 'MessageText'
  },

  /**
  * Defines constants for use with table storage.
  */
  TableConstants: {
    /**
    * The changeset response delimiter.
    *
    * @const
    * @type {string}
    */
    CHANGESET_DELIMITER: '--changesetresponse_',

    /**
    * The batch response delimiter.
    *
    * @const
    * @type {string}
    */
    BATCH_DELIMITER: '--batchresponse_',

    /**
    * The next continuation row key token.
    *
    * @const
    * @type {string}
    */
    CONTINUATION_NEXT_ROW_KEY: 'x-ms-continuation-nextrowkey',

    /**
    * The next continuation partition key token.
    *
    * @const
    * @type {string}
    */
    CONTINUATION_NEXT_PARTITION_KEY: 'x-ms-continuation-nextpartitionkey',

    /**
    * The next continuation table name token.
    *
    * @const
    * @type {string}
    */
    CONTINUATION_NEXT_TABLE_NAME: 'x-ms-continuation-nexttablename',

    /**
    * The next row key query string argument.
    *
    * @const
    * @type {string}
    */
    NEXT_ROW_KEY: 'NextRowKey',

    /**
    * The next partition key query string argument.
    *
    * @const
    * @type {string}
    */
    NEXT_PARTITION_KEY: 'NextPartitionKey',

    /**
    * The next table name query string argument.
    *
    * @const
    * @type {string}
    */
    NEXT_TABLE_NAME: 'NextTableName',

    /**
    * Prefix of the odata properties returned in a JSON query.
    *
    * @const
    * @type {string}
    */
    ODATA_PREFIX: 'odata.',

    /**
    * Constant representing the string following a type annotation in a JSON table query.
    *
    * @const
    * @type {string}
    */
    ODATA_TYPE_SUFFIX: '@odata.type',

    /**
    * Constant representing the property where the odata metadata elements are stored.
    *
    * @const
    * @type {string}
    */
    ODATA_METADATA_MARKER: '.metadata',

    /**
    * Constant representing the value for an entity property.
    *
    * @const
    * @type {string}
    */
    ODATA_VALUE_MARKER: '_',

    /** 
    * Constant representing the type for an entity property.
    *
    * @const
    * @type {string}
    */
    ODATA_TYPE_MARKER: '$',

    /**
    * The value to set the maximum data service version header.
    *
    * @const
    * @type {string}
    */
    DEFAULT_DATA_SERVICE_VERSION: '3.0;NetFx',

    /**
    * The name of the property that stores the table name.
    *
    * @const
    * @type {string}
    */
    TABLE_NAME: 'TableName',

    /**
    * The name of the special table used to store tables.
    *
    * @const
    * @type {string}
    */
    TABLE_SERVICE_TABLE_NAME: 'Tables',

    /**
    * Operations.
    *
    * @const
    * @enum {string}
    */
    Operations: {
      RETRIEVE: 'RETRIEVE',
      INSERT: 'INSERT',
      REPLACE: 'REPLACE',
      MERGE: 'MERGE',
      DELETE: 'DELETE',
      INSERT_OR_REPLACE: 'INSERT_OR_REPLACE',
      INSERT_OR_MERGE: 'INSERT_OR_MERGE'
    }
  },

  /**
  * Defines constants for use with HTTP headers.
  */
  HeaderConstants: {
    /**
    * The accept ranges header.
    *
    * @const
    * @type {string}
    */
    ACCEPT_RANGES: 'accept_ranges',

    /**
    * The content transfer encoding header.
    *
    * @const
    * @type {string}
    */
    CONTENT_TRANSFER_ENCODING: 'content-transfer-encoding',

    /**
    * The transfer encoding header.
    *
    * @const
    * @type {string}
    */
    TRANSFER_ENCODING: 'transfer-encoding',

    /**
    * The server header.
    *
    * @const
    * @type {string}
    */
    SERVER: 'server',

    /**
    * The location header.
    *
    * @const
    * @type {string}
    */
    LOCATION: 'location',

    /**
    * The Last-Modified header.
    *
    * @const
    * @type {string}
    */
    LAST_MODIFIED: 'Last-Modified',

    /**
    * The creation time header.
    *
    * @const
    * @type {string}
    */
    CREATION_TIME: 'x-ms-creation-time',

    /**
    * The data service version.
    *
    * @const
    * @type {string}
    */
    DATA_SERVICE_VERSION: 'dataserviceversion',

    /**
    * The maximum data service version.
    *
    * @const
    * @type {string}
    */
    MAX_DATA_SERVICE_VERSION: 'maxdataserviceversion',

    /**
    * The master Windows Azure Storage header prefix.
    *
    * @const
    * @type {string}
    */
    PREFIX_FOR_STORAGE: 'x-ms-',

    /**
    * The client request Id header.
    *
    * @const
    * @type {string}
    */
    CLIENT_REQUEST_ID: 'x-ms-client-request-id',

    /**
    * The header that specifies the approximate message count of a queue.
    *
    * @const
    * @type {string}
    */
    APPROXIMATE_MESSAGES_COUNT: 'x-ms-approximate-messages-count',

    /**
    * The Authorization header.
    *
    * @const
    * @type {string}
    */
    AUTHORIZATION: 'authorization',

    /**
    * The header that is used to avoid browser cache.
    *
    * @const
    * @type {string}
    */
    FORCE_NO_CACHE_IN_BROWSER: '_',

    /**
    * The header that specifies public access to blobs.
    *
    * @const
    * @type {string}
    */
    BLOB_PUBLIC_ACCESS: 'x-ms-blob-public-access',

    /**
    * The header that specifies container immutability policy.
    *
    * @const
    * @type {boolean}
    */
    HAS_IMMUTABILITY_POLICY: 'x-ms-has-immutability-policy',

    /**
    * The header that specifies container has legal hold.
    *
    * @const
    * @type {boolean}
    */
    HAS_LEGAL_HOLD: 'x-ms-has-legal-hold',

    /**
    * The header for the blob type.
    *
    * @const
    * @type {string}
    */
    BLOB_TYPE: 'x-ms-blob-type',

    /**
    * The header for the type.
    *
    * @const
    * @type {string}
    */
    TYPE: 'x-ms-type',

    /**
    * Specifies the block blob type.
    *
    * @const
    * @type {string}
    */
    BLOCK_BLOB: 'blockblob',

    /**
    * The CacheControl header.
    *
    * @const
    * @type {string}
    */
    CACHE_CONTROL: 'cache-control',

    /**
    * The header that specifies blob caching control.
    *
    * @const
    * @type {string}
    */
    BLOB_CACHE_CONTROL: 'x-ms-blob-cache-control',

    /**
    * The header that specifies caching control.
    *
    * @const
    * @type {string}
    */
    FILE_CACHE_CONTROL: 'x-ms-cache-control',

    /**
    * The copy status.
    *
    * @const
    * @type {string}
    */
    COPY_STATUS: 'x-ms-copy-status',

    /**
    * The copy completion time
    *
    * @const
    * @type {string}
    */
    COPY_COMPLETION_TIME: 'x-ms-copy-completion-time',

    /**
    * The copy status message
    *
    * @const
    * @type {string}
    */
    COPY_STATUS_DESCRIPTION: 'x-ms-copy-status-description',

    /**
    * The copy identifier.
    *
    * @const
    * @type {string}
    */
    COPY_ID: 'x-ms-copy-id',

    /**
    * Progress of any copy operation
    *
    * @const
    * @type {string}
    */
    COPY_PROGRESS: 'x-ms-copy-progress',

    /**
    * The copy action.
    *
    * @const
    * @type {string}
    */
    COPY_ACTION: 'x-ms-copy-action',

    /**
    * Flag if the blob is incremental copy blob.
    *
    * @const
    * @type {string}
    */
    INCREMENTAL_COPY: 'x-ms-incremental-copy',

    /**
    * Snapshot time of the last successful incremental copy snapshot for this blob.
    *
    * @const
    * @type {string}
    */
    COPY_DESTINATION_SNAPSHOT: 'x-ms-copy-destination-snapshot',

    /**
    * The ContentID header.
    *
    * @const
    * @type {string}
    */
    CONTENT_ID: 'content-id',

    /**
    * The ContentEncoding header.
    *
    * @const
    * @type {string}
    */
    CONTENT_ENCODING: 'content-encoding',

    /**
    * The header that specifies blob content encoding.
    *
    * @const
    * @type {string}
    */
    BLOB_CONTENT_ENCODING: 'x-ms-blob-content-encoding',

    /**
    * The header that specifies content encoding.
    *
    * @const
    * @type {string}
    */
    FILE_CONTENT_ENCODING: 'x-ms-content-encoding',

    /**
    * The ContentLangauge header.
    *
    * @const
    * @type {string}
    */
    CONTENT_LANGUAGE: 'content-language',

    /**
    * The header that specifies blob content language.
    *
    * @const
    * @type {string}
    */
    BLOB_CONTENT_LANGUAGE: 'x-ms-blob-content-language',

    /**
    * The header that specifies content language.
    *
    * @const
    * @type {string}
    */
    FILE_CONTENT_LANGUAGE: 'x-ms-content-language',

    /**
    * The ContentLength header.
    *
    * @const
    * @type {string}
    */
    CONTENT_LENGTH: 'content-length',

    /**
    * The header that specifies blob content length.
    *
    * @const
    * @type {string}
    */
    BLOB_CONTENT_LENGTH: 'x-ms-blob-content-length',

    /**
    * The header that specifies content length.
    *
    * @const
    * @type {string}
    */
    FILE_CONTENT_LENGTH: 'x-ms-content-length',

    /**
    * The ContentDisposition header.
    * @const
    * @type {string}
    */
    CONTENT_DISPOSITION: 'content-disposition',

    /**
    * The header that specifies blob content disposition.
    *
    * @const
    * @type {string}
    */
    BLOB_CONTENT_DISPOSITION: 'x-ms-blob-content-disposition',

    /**
    * The header that specifies content disposition.
    *
    * @const
    * @type {string}
    */
    FILE_CONTENT_DISPOSITION: 'x-ms-content-disposition',

    /**
    * The ContentMD5 header.
    *
    * @const
    * @type {string}
    */
    CONTENT_MD5: 'content-md5',

    /**
    * The header that specifies blob content MD5.
    *
    * @const
    * @type {string}
    */
    BLOB_CONTENT_MD5: 'x-ms-blob-content-md5',

    /**
    * The header that specifies content MD5.
    *
    * @const
    * @type {string}
    */
    FILE_CONTENT_MD5: 'x-ms-content-md5',

    /**
    * The ContentRange header.
    *
    * @const
    * @type {string}
    */
    CONTENT_RANGE: 'cache-range',

    /**
    * The ContentType header.
    *
    * @const
    * @type {string}
    */
    CONTENT_TYPE: 'content-type',

    /**
    * The header that specifies blob content type.
    *
    * @const
    * @type {string}
    */
    BLOB_CONTENT_TYPE: 'x-ms-blob-content-type',

    /**
    * The header that specifies content type.
    *
    * @const
    * @type {string}
    */
    FILE_CONTENT_TYPE: 'x-ms-content-type',

    /**
    * The header for copy source.
    *
    * @const
    * @type {string}
    */
    COPY_SOURCE: 'x-ms-copy-source',

    /**
    * The header that specifies the date.
    *
    * @const
    * @type {string}
    */
    DATE: 'date',

    /**
    * The header that specifies the date.
    *
    * @const
    * @type {string}
    */
    MS_DATE: 'x-ms-date',

    /**
    * The header to delete snapshots.
    *
    * @const
    * @type {string}
    */
    DELETE_SNAPSHOT: 'x-ms-delete-snapshots',

    /**
    * The ETag header.
    *
    * @const
    * @type {string}
    */
    ETAG: 'etag',

    /**
    * The IfMatch header.
    *
    * @const
    * @type {string}
    */
    IF_MATCH: 'if-match',

    /**
    * The IfModifiedSince header.
    *
    * @const
    * @type {string}
    */
    IF_MODIFIED_SINCE: 'if-modified-since',

    /**
    * The IfNoneMatch header.
    *
    * @const
    * @type {string}
    */
    IF_NONE_MATCH: 'if-none-match',

    /**
    * The IfUnmodifiedSince header.
    *
    * @const
    * @type {string}
    */
    IF_UNMODIFIED_SINCE: 'if-unmodified-since',

    /**
    * Specifies snapshots are to be included.
    *
    * @const
    * @type {string}
    */
    INCLUDE_SNAPSHOTS_VALUE: 'include',

    /**
    * Specifies that the content-type is JSON.
    *
    * @const
    * @type {string}
    */
    JSON_CONTENT_TYPE_VALUE: 'application/json',

    /**
    * The header that specifies storage SKU, also known as account type.
    *
    * @const
    * @type {string}
    */
    SKU_NAME: 'x-ms-sku-name',

    /**
    * The header that describes the flavour of the storage account, also known as account kind.
    *
    * @const
    * @type {string}
    */
    ACCOUNT_KIND: 'x-ms-account-kind',

    /**
    * The header that specifies lease ID.
    *
    * @const
    * @type {string}
    */
    LEASE_ID: 'x-ms-lease-id',

    /**
    * The header that specifies the lease break period.
    *
    * @const
    * @type {string}
    */
    LEASE_BREAK_PERIOD: 'x-ms-lease-break-period',

    /**
    * The header that specifies the proposed lease identifier.
    *
    * @const
    * @type {string}
    */
    PROPOSED_LEASE_ID: 'x-ms-proposed-lease-id',

    /**
    * The header that specifies the lease duration.
    *
    * @const
    * @type {string}
    */
    LEASE_DURATION: 'x-ms-lease-duration',

    /**
    * The header that specifies the source lease ID.
    *
    * @const
    * @type {string}
    */
    SOURCE_LEASE_ID: 'x-ms-source-lease-id',

    /**
    * The header that specifies lease time.
    *
    * @const
    * @type {string}
    */
    LEASE_TIME: 'x-ms-lease-time',

    /**
    * The header that specifies lease status.
    *
    * @const
    * @type {string}
    */
    LEASE_STATUS: 'x-ms-lease-status',

    /**
    * The header that specifies lease state.
    *
    * @const
    * @type {string}
    */
    LEASE_STATE: 'x-ms-lease-state',

    /**
    * Specifies the page blob type.
    *
    * @const
    * @type {string}
    */
    PAGE_BLOB: 'PageBlob',

    /**
    * The header that specifies page write mode.
    *
    * @const
    * @type {string}
    */
    PAGE_WRITE: 'x-ms-page-write',

    /**
    * The header that specifies file range write mode.
    *
    * @const
    * @type {string}
    */
    FILE_WRITE: 'x-ms-write',

    /**
    * The header that specifies whether the response should include the inserted entity.
    *
    * @const
    * @type {string}
    */
    PREFER: 'Prefer',

    /**
    * The header value which specifies that the response should include the inserted entity.
    *
    * @const
    * @type {string}
    */
    PREFER_CONTENT: 'return-content',

    /**
    * The header value which specifies that the response should not include the inserted entity.
    *
    * @const
    * @type {string}
    */
    PREFER_NO_CONTENT: 'return-no-content',

    /**
    * The header prefix for metadata.
    *
    * @const
    * @type {string}
    */
    PREFIX_FOR_STORAGE_METADATA: 'x-ms-meta-',

    /**
    * The header prefix for properties.
    *
    * @const
    * @type {string}
    */
    PREFIX_FOR_STORAGE_PROPERTIES: 'x-ms-prop-',

    /**
    * The Range header.
    *
    * @const
    * @type {string}
    */
    RANGE: 'Range',

    /**
    * The Source Range header.
    *
    * @const
    * @type {string}
    */
    SOURCE_RANGE: 'x-ms-source-range',

    /**
    * The header that specifies if the request will populate the ContentMD5 header for range gets.
    *
    * @const
    * @type {string}
    */
    RANGE_GET_CONTENT_MD5: 'x-ms-range-get-content-md5',

    /**
    * The format string for specifying ranges.
    *
    * @const
    * @type {string}
    */
    RANGE_HEADER_FORMAT: 'bytes:%d-%d',

    /**
    * The header that indicates the request ID.
    *
    * @const
    * @type {string}
    */
    REQUEST_ID: 'x-ms-request-id',

    /**
    * The header for specifying the sequence number.
    *
    * @const
    * @type {string}
    */
    SEQUENCE_NUMBER: 'x-ms-blob-sequence-number',

    /**
    * The header for specifying the If-Sequence-Number-EQ condition.
    *
    * @const
    * @type {string}
    */
    SEQUENCE_NUMBER_EQUAL: 'x-ms-if-sequence-number-eq',

    /**
    * The header for specifying the If-Sequence-Number-LT condition.
    *
    * @const
    * @type {string}
    */
    SEQUENCE_NUMBER_LESS_THAN: 'x-ms-if-sequence-number-lt',

    /**
    * The header for specifying the If-Sequence-Number-LE condition.
    *
    * @const
    * @type {string}
    */
    SEQUENCE_NUMBER_LESS_THAN_OR_EQUAL: 'x-ms-if-sequence-number-le',

    /**
    * The header that specifies sequence number action.
    *
    * @const
    * @type {string}
    */
    SEQUENCE_NUMBER_ACTION: 'x-ms-sequence-number-action',

    /**
    * The header for the blob content length.
    *
    * @const
    * @type {string}
    */
    SIZE: 'x-ms-blob-content-length',

    /**
    * The header for snapshots.
    *
    * @const
    * @type {string}
    */
    SNAPSHOT: 'x-ms-snapshot',

    /**
    * Specifies only snapshots are to be included.
    *
    * @const
    * @type {string}
    */
    SNAPSHOTS_ONLY_VALUE: 'only',

    /**
    * The header for the If-Match condition.
    *
    * @const
    * @type {string}
    */
    SOURCE_IF_MATCH: 'x-ms-source-if-match',

    /**
    * The header for the If-Modified-Since condition.
    *
    * @const
    * @type {string}
    */
    SOURCE_IF_MODIFIED_SINCE: 'x-ms-source-if-modified-since',

    /**
    * The header for the If-None-Match condition.
    *
    * @const
    * @type {string}
    */
    SOURCE_IF_NONE_MATCH: 'x-ms-source-if-none-match',

    /**
    * The header for the If-Unmodified-Since condition.
    *
    * @const
    * @type {string}
    */
    SOURCE_IF_UNMODIFIED_SINCE: 'x-ms-source-if-unmodified-since',

    /**
    * The header for data ranges.
    *
    * @const
    * @type {string}
    */
    STORAGE_RANGE: 'x-ms-range',

    /**
    * The header for storage version.
    *
    * @const
    * @type {string}
    */
    STORAGE_VERSION: 'x-ms-version',

    /**
    * The current storage version header value.
    *
    * @const
    * @type {string}
    */
    TARGET_STORAGE_VERSION: '2018-03-28',

    /**
    * The UserAgent header.
    *
    * @const
    * @type {string}
    */
    USER_AGENT: 'user-agent',

    /**
    * The pop receipt header.
    *
    * @const
    * @type {string}
    */
    POP_RECEIPT: 'x-ms-popreceipt',

    /**
    * The time next visibile header.
    *
    * @const
    * @type {string}
    */
    TIME_NEXT_VISIBLE: 'x-ms-time-next-visible',

    /**
    * The approximate message counter header.
    *
    * @const
    * @type {string}
    */
    APPROXIMATE_MESSAGE_COUNT: 'x-ms-approximate-message-count',

    /**
    * The lease action header.
    *
    * @const
    * @type {string}
    */
    LEASE_ACTION: 'x-ms-lease-action',

    /**
    * The accept header.
    *
    * @const
    * @type {string}
    */
    ACCEPT: 'accept',

    /**
    * The accept charset header.
    *
    * @const
    * @type {string}
    */
    ACCEPT_CHARSET: 'Accept-Charset',

    /**
    * The host header.
    *
    * @const
    * @type {string}
    */
    HOST: 'host',

    /**
    * The correlation identifier header.
    *
    * @const
    * @type {string}
    */
    CORRELATION_ID: 'x-ms-correlation-id',

    /**
    * The group identifier header.
    *
    * @const
    * @type {string}
    */
    GROUP_ID: 'x-ms-group-id',

    /**
    * The share quota header.
    *
    * @const
    * @type {string}
    */
    SHARE_QUOTA: 'x-ms-share-quota',
    
    /**
    * The max blob size header.
    *
    * @const
    * @type {string}
    */
    BLOB_CONDITION_MAX_SIZE: 'x-ms-blob-condition-maxsize',

    /**
    * The append blob position header.
    *
    * @const
    * @type {string}
    */
    BLOB_CONDITION_APPEND_POSITION: 'x-ms-blob-condition-appendpos',

    /**
    * The append blob append offset header.
    *
    * @const
    * @type {string}
    */
    BLOB_APPEND_OFFSET: 'x-ms-blob-append-offset',

    /**
    * The append blob committed block header.
    *
    * @const
    * @type {string}
    */
    BLOB_COMMITTED_BLOCK_COUNT: 'x-ms-blob-committed-block-count',

    /**
     * If the contents of the request have been successfully encrypted using the specified algorithm.
     *
     * @const
     * @type {string}
     */
    REQUEST_SERVER_ENCRYPTED: 'x-ms-request-server-encrypted',

    /**
    * If the data and application metadata are completely encrypted using the specified algorithm.
    *
    * @const
    * @type {string}
    */
    SERVER_ENCRYPTED: 'x-ms-server-encrypted',

    /**
    * Header indicates the resulting tier of the blob.
    *
    * @const
    * @type {string}
    */
    ACCESS_TIER: 'x-ms-access-tier',

    /**
    * This is the datetime of when the last time tier was changed on the blob.
    *
    * @const
    * @type {string}
    */
    ACCESS_TIER_CHANGE_TIME: 'x-ms-access-tier-change-time',

    /**
    * If the access tier is not explicitly set on the blob, 
    * the tier is inferred based on its content length 
    * and this header will be returned with true value.
    *
    * @const
    * @type {string}
    */
    ACCESS_TIER_INFERRED: 'x-ms-access-tier-inferred',

    /**
    * For BlobStorage accounts, the header is returned if archive tier is set
    * and rehydrate operation is pending for the request version is 2017-04-17 or later.
    * The valid values are rehydrate-pending-to-hot or rehydrate-pending-to-cool.
    *
    * @const
    * @type {string}
    */
    ARCHIVE_STATUS: 'x-ms-archive-status'
  },

  QueryStringConstants: {

    /**
    * Query component for SAS API version.
    * @const
    * @type {string}
    */
    API_VERSION: 'api-version',

    /**
    * The Comp value.
    *
    * @const
    * @type {string}
    */
    COMP: 'comp',

    /**
    * The Res Type.
    *
    * @const
    * @type {string}
    */
    RESTYPE: 'restype',

    /**
    * The copy Id.
    * @const
    * @type {string}
    */
    COPY_ID: 'copyid',

    /**
    * The snapshot value.
    *
    * @const
    * @type {string}
    */
    SNAPSHOT: 'snapshot',

    /**
    * The share snapshot value.
    *
    * @const
    * @type {string}
    */
    SHARE_SNAPSHOT: 'sharesnapshot',

    /**
    * The previous snapshot value.
    *
    * @const
    * @type {string}
    */
    PREV_SNAPSHOT: 'prevsnapshot',

    /**
    * The timeout value.
    *
    * @const
    * @type {string}
    */
    TIMEOUT: 'timeout',

    /**
    * The signed start time query string argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNED_START: 'st',

    /**
    * The signed expiry time query string argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNED_EXPIRY: 'se',

    /**
    * The signed resource query string argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNED_RESOURCE: 'sr',

    /**
    * The signed permissions query string argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNED_PERMISSIONS: 'sp',
    
    /**
    * The signed services query string argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNED_SERVICES: 'ss',
    
    /**
    * The signed resource types query string argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNED_RESOURCE_TYPES: 'srt',
    
    /**
    * The signed IP query string argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNED_IP: 'sip',
    
    /**
    * The signed protocol query string argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNED_PROTOCOL: 'spr',

    /**
    * The signed identifier query string argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNED_IDENTIFIER: 'si',

    /**
    * The signature query string argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNATURE: 'sig',

    /**
    * The signed version argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    SIGNED_VERSION: 'sv',

    /**
    * The cache control argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    CACHE_CONTROL: 'rscc',

    /**
    * The content type argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    CONTENT_TYPE: 'rsct',

    /**
    * The content encoding argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    CONTENT_ENCODING: 'rsce',

    /**
    * The content language argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    CONTENT_LANGUAGE: 'rscl',

    /**
    * The content disposition argument for shared access signature.
    *
    * @const
    * @type {string}
    */
    CONTENT_DISPOSITION: 'rscd',

    /**
    * The block identifier query string argument for blob service.
    *
    * @const
    * @type {string}
    */
    BLOCK_ID: 'blockid',

    /**
    * The block list type query string argument for blob service.
    *
    * @const
    * @type {string}
    */
    BLOCK_LIST_TYPE: 'blocklisttype',

    /**
    * The prefix query string argument for listing operations.
    *
    * @const
    * @type {string}
    */
    PREFIX: 'prefix',

    /**
    * The marker query string argument for listing operations.
    *
    * @const
    * @type {string}
    */
    MARKER: 'marker',

    /**
    * The maxresults query string argument for listing operations.
    *
    * @const
    * @type {string}
    */
    MAX_RESULTS: 'maxresults',

    /**
    * The delimiter query string argument for listing operations.
    *
    * @const
    * @type {string}
    */
    DELIMITER: 'delimiter',

    /**
    * The include query string argument for listing operations.
    *
    * @const
    * @type {string}
    */
    INCLUDE: 'include',

    /**
    * The peekonly query string argument for queue service.
    *
    * @const
    * @type {string}
    */
    PEEK_ONLY: 'peekonly',

    /**
    * The numofmessages query string argument for queue service.
    *
    * @const
    * @type {string}
    */
    NUM_OF_MESSAGES: 'numofmessages',

    /**
    * The popreceipt query string argument for queue service.
    *
    * @const
    * @type {string}
    */
    POP_RECEIPT: 'popreceipt',

    /**
    * The visibilitytimeout query string argument for queue service.
    *
    * @const
    * @type {string}
    */
    VISIBILITY_TIMEOUT: 'visibilitytimeout',

    /**
    * The messagettl query string argument for queue service.
    *
    * @const
    * @type {string}
    */
    MESSAGE_TTL: 'messagettl',

    /**
    * The select query string argument.
    *
    * @const
    * @type {string}
    */
    SELECT: '$select',

    /**
    * The filter query string argument.
    *
    * @const
    * @type {string}
    */
    FILTER: '$filter',

    /**
    * The top query string argument.
    *
    * @const
    * @type {string}
    */
    TOP: '$top',

    /**
    * The skip query string argument.
    *
    * @const
    * @type {string}
    */
    SKIP: '$skip',

    /**
    * The next partition key query string argument for table service.
    *
    * @const
    * @type {string}
    */
    NEXT_PARTITION_KEY: 'NextPartitionKey',

    /**
    * The next row key query string argument for table service.
    *
    * @const
    * @type {string}
    */
    NEXT_ROW_KEY: 'NextRowKey',

    /**
    * The lock identifier for service bus messages.
    *
    * @const
    * @type {string}
    */
    LOCK_ID: 'lockid',

    /**
    * The table name for table SAS URI's.
    *
    * @const
    * @type {string}
    */
    TABLENAME: 'tn',

    /**
    * The starting Partition Key for tableSAS URI's.
    *
    * @const
    * @type {string}
    */
    STARTPK: 'spk',

    /**
    * The starting Partition Key for tableSAS URI's.
    *
    * @const
    * @type {string}
    */
    STARTRK: 'srk',

    /**
    * The ending Partition Key for tableSAS URI's.
    *
    * @const
    * @type {string}
    */
    ENDPK: 'epk',

    /**
    * The ending Partition Key for tableSAS URI's.
    *
    * @const
    * @type {string}
    */
    ENDRK: 'erk'
  },

  StorageServiceClientConstants: {
    /**
    * The default protocol.
    *
    * @const
    * @type {string}
    */
    DEFAULT_PROTOCOL: 'https:',

    /*
    * Used environment variables.
    *
    * @const
    * @enum {string}
    */
    EnvironmentVariables: {
      AZURE_STORAGE_ACCOUNT: 'AZURE_STORAGE_ACCOUNT',
      AZURE_STORAGE_ACCESS_KEY: 'AZURE_STORAGE_ACCESS_KEY',
      AZURE_STORAGE_DNS_SUFFIX: 'AZURE_STORAGE_DNS_SUFFIX',
      AZURE_STORAGE_CONNECTION_STRING: 'AZURE_STORAGE_CONNECTION_STRING',
      HTTP_PROXY: 'HTTP_PROXY',
      HTTPS_PROXY: 'HTTPS_PROXY',
      EMULATED: 'EMULATED'
    },

    /**
    * Default credentials.
    */
    DEVSTORE_STORAGE_ACCOUNT: 'devstoreaccount1',
    DEVSTORE_STORAGE_ACCESS_KEY: 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==',

    /**
    * The development store URI.
    *
    * @const
    * @type {string}
    */
    DEV_STORE_URI: 'http://127.0.0.1',

    /**
    * Development ServiceClient URLs.
    */
    DEVSTORE_DEFAULT_PROTOCOL: 'http://',
    DEVSTORE_BLOB_HOST: '127.0.0.1:10000',
    DEVSTORE_QUEUE_HOST: '127.0.0.1:10001',
    DEVSTORE_TABLE_HOST: '127.0.0.1:10002',

    /**
    * Production ServiceClient URLs.
    */
    CLOUD_BLOB_HOST: 'blob.' + storageDnsSuffix,
    CLOUD_QUEUE_HOST: 'queue.' + storageDnsSuffix,
    CLOUD_TABLE_HOST: 'table.' + storageDnsSuffix,
    CLOUD_FILE_HOST: 'file.' + storageDnsSuffix
  },

  HttpConstants: {
    /**
    * Http Verbs
    *
    * @const
    * @enum {string}
    */
    HttpVerbs: {
      PUT: 'PUT',
      GET: 'GET',
      DELETE: 'DELETE',
      POST: 'POST',
      MERGE: 'MERGE',
      HEAD: 'HEAD'
    },

    /**
    * Response codes.
    *
    * @const
    * @enum {int}
    */
    HttpResponseCodes: {
      Ok: 200,
      Created: 201,
      Accepted: 202,
      NoContent: 204,
      PartialContent: 206,
      BadRequest: 400,
      Unauthorized: 401,
      Forbidden: 403,
      NotFound: 404,
      Conflict: 409,
      LengthRequired: 411,
      PreconditionFailed: 412
    }
  },

  CompatibleVersionConstants: {
    /**
    * Constant for the 2013-08-15 version.
    *
    * @const
    * @type {string}
    */
    AUGUST_2013: '2013-08-15',

    /**
    * Constant for the 2012-02-12 version.
    *
    * @const
    * @type {string}
    */
    FEBRUARY_2012: '2012-02-12'
  },

  BlobErrorCodeStrings: {
    INVALID_BLOCK_ID: 'InvalidBlockId',
    BLOB_NOT_FOUND: 'BlobNotFound',
    BLOB_ALREADY_EXISTS: 'BlobAlreadyExists',
    CONTAINER_ALREADY_EXISTS: 'ContainerAlreadyExists',
    CONTAINER_NOT_FOUND: 'ContainerNotFound',
    INVALID_BLOB_OR_BLOCK: 'InvalidBlobOrBlock',
    INVALID_BLOCK_LIST: 'InvalidBlockList'
  },

  FileErrorCodeStrings: {
    SHARE_ALREADY_EXISTS: 'ShareAlreadyExists',
    SHARE_NOT_FOUND: 'ShareNotFound',
    FILE_NOT_FOUND: 'FileNotFound'
  },

  QueueErrorCodeStrings: {
    QUEUE_NOT_FOUND: 'QueueNotFound',
    QUEUE_DISABLED: 'QueueDisabled',
    QUEUE_ALREADY_EXISTS: 'QueueAlreadyExists',
    QUEUE_NOT_EMPTY: 'QueueNotEmpty',
    QUEUE_BEING_DELETED: 'QueueBeingDeleted',
    POP_RECEIPT_MISMATCH: 'PopReceiptMismatch',
    INVALID_PARAMETER: 'InvalidParameter',
    MESSAGE_NOT_FOUND: 'MessageNotFound',
    MESSAGE_TOO_LARGE: 'MessageTooLarge',
    INVALID_MARKER: 'InvalidMarker'
  },

  /**
  * Constants for storage error strings
  *
  * More details are at: http://msdn.microsoft.com/en-us/library/azure/dd179357.aspx
  */
  StorageErrorCodeStrings: {
    // Not Modified (304): The condition specified in the conditional header(s) was not met for a read operation.
    // Precondition Failed (412): The condition specified in the conditional header(s) was not met for a write operation.
    CONDITION_NOT_MET: 'ConditionNotMet', 
    // Bad Request (400): A required HTTP header was not specified.
    MISSING_REQUIRED_HEADER: 'MissingRequiredHeader', 
    // Bad Request (400): A required XML node was not specified in the request body.
    MISSING_REQUIRED_XML_NODE: 'MissingRequiredXmlNode', 
    // Bad Request (400): One of the HTTP headers specified in the request is not supported.
    UNSUPPORTED_HEADER: 'UnsupportedHeader',
    // Bad Request (400): One of the XML nodes specified in the request body is not supported.
    UNSUPPORTED_XML_NODE: 'UnsupportedXmlNode', 
    // Bad Request (400): The value provided for one of the HTTP headers was not in the correct format.
    INVALID_HEADER_VALUE: 'InvalidHeaderValue', 
    // Bad Request (400): The value provided for one of the XML nodes in the request body was not in the correct format.
    INVALID_XML_NODE_VALUE: 'InvalidXmlNodeValue',
    // Bad Request (400): A required query parameter was not specified for this request.
    MISSING_REQUIRED_QUERY_PARAMETER: 'MissingRequiredQueryParameter',
    // Bad Request (400): One of the query parameters specified in the request URI is not supported.
    UNSUPPORTED_QUERY_PARAMETER: 'UnsupportedQueryParameter',
    // Bad Request (400): An invalid value was specified for one of the query parameters in the request URI.
    INVALID_QUERY_PARAMETER_VALUE: 'InvalidQueryParameterValue',
    // Bad Request (400): A query parameter specified in the request URI is outside the permissible range.
    OUT_OF_RANGE_QUERY_PARAMETER_VALUE: 'OutOfRangeQueryParameterValue',
    // Bad Request (400): The url in the request could not be parsed.
    REQUEST_URL_FAILED_TO_PARSE: 'RequestUrlFailedToParse',
    // Bad Request (400): The requested URI does not represent any resource on the server.
    INVALID_URI: 'InvalidUri',
    // Bad Request (400): The HTTP verb specified was not recognized by the server.
    INVALID_HTTP_VERB: 'InvalidHttpVerb',
    // Bad Request (400): The key for one of the metadata key-value pairs is empty.
    EMPTY_METADATA_KEY: 'EmptyMetadataKey',
    // Bad Request (400): The specified XML is not syntactically valid.
    INVALID_XML_DOCUMENT: 'InvalidXmlDocument',
    // Bad Request (400): The MD5 value specified in the request did not match the MD5 value calculated by the server.
    MD5_MISMATCH: 'Md5Mismatch',
    // Bad Request (400): The MD5 value specified in the request is invalid. The MD5 value must be 128 bits and Base64-encoded.
    INVALID_MD5: 'InvalidMd5',
    // Bad Request (400): One of the request inputs is out of range.
    OUT_OF_RANGE_INPUT: 'OutOfRangeInput',
    // Bad Request (400): The authentication information was not provided in the correct format. Verify the value of Authorization header.
    INVALID_AUTHENTICATION_INFO: 'InvalidAuthenticationInfo',
    // Bad Request (400): One of the request inputs is not valid.
    INVALID_INPUT: 'InvalidInput',
    // Bad Request (400): The specified metadata is invalid. It includes characters that are not permitted.
    INVALID_METADATA: 'InvalidMetadata',
    // Bad Request (400): The specifed resource name contains invalid characters.
    INVALID_RESOURCE_NAME: 'InvalidResourceName',
    // Bad Request (400): The size of the specified metadata exceeds the maximum size permitted.
    METADATA_TOO_LARGE: 'MetadataTooLarge',
    // Bad Request (400): Condition headers are not supported.
    CONDITION_HEADER_NOT_SUPPORTED: 'ConditionHeadersNotSupported',
    // Bad Request (400): Multiple condition headers are not supported.
    MULTIPLE_CONDITION_HEADER_NOT_SUPPORTED: 'MultipleConditionHeadersNotSupported',
    // Forbidden (403): Server failed to authenticate the request. Make sure the value of the Authorization header is formed correctly including the signature.
    AUTHENTICATION_FAILED: 'AuthenticationFailed',
    // Forbidden (403): Read-access geo-redundant replication is not enabled for the account.
    // Forbidden (403): Write operations to the secondary location are not allowed.
    // Forbidden (403): The account being accessed does not have sufficient permissions to execute this operation.
    INSUFFICIENT_ACCOUNT_PERMISSIONS: 'InsufficientAccountPermissions',
    // Not Found (404): The specified resource does not exist.
    RESOURCE_NOT_FOUND: 'ResourceNotFound',
    // Forbidden (403): The specified account is disabled.
    ACCOUNT_IS_DISABLED: 'AccountIsDisabled',
    // Method Not Allowed (405): The resource doesn't support the specified HTTP verb.
    UNSUPPORTED_HTTP_VERB: 'UnsupportedHttpVerb',
    // Conflict (409): The specified account already exists. 
    ACCOUNT_ALREADY_EXISTS: 'AccountAlreadyExists',
    // Conflict (409): The specified account is in the process of being created.
    ACCOUNT_BEING_CREATED: 'AccountBeingCreated',
    // Conflict (409): The specified resource already exists.
    RESOURCE_ALREADY_EXISTS: 'ResourceAlreadyExists',
    // Conflict (409): The specified resource type does not match the type of the existing resource.
    RESOURCE_TYPE_MISMATCH: 'ResourceTypeMismatch',
    // Length Required (411): The Content-Length header was not specified.
    MISSING_CONTENT_LENGTH_HEADER: 'MissingContentLengthHeader',
    // Request Entity Too Large (413): The size of the request body exceeds the maximum size permitted.
    REQUEST_BODY_TOO_LARGE: 'RequestBodyTooLarge',
    // Requested Range Not Satisfiable (416): The range specified is invalid for the current size of the resource.
    INVALID_RANGE: 'InvalidRange',
    // Internal Server Error (500): The server encountered an internal error. Please retry the request.
    INTERNAL_ERROR: 'InternalError',
    // Internal Server Error (500): The operation could not be completed within the permitted time.
    OPERATION_TIMED_OUT: 'OperationTimedOut',
    // Service Unavailable (503): The server is currently unable to receive requests. Please retry your request. 
    SERVER_BUSY: 'ServerBusy',

    // Legacy error code strings
    UPDATE_CONDITION_NOT_SATISFIED: 'UpdateConditionNotSatisfied',
    CONTAINER_NOT_FOUND: 'ContainerNotFound',
    CONTAINER_ALREADY_EXISTS: 'ContainerAlreadyExists',
    CONTAINER_DISABLED: 'ContainerDisabled',
    CONTAINER_BEING_DELETED: 'ContainerBeingDeleted'
  },

  TableErrorCodeStrings: {
    XMETHOD_NOT_USING_POST: 'XMethodNotUsingPost',
    XMETHOD_INCORRECT_VALUE: 'XMethodIncorrectValue',
    XMETHOD_INCORRECT_COUNT: 'XMethodIncorrectCount',
    TABLE_HAS_NO_PROPERTIES: 'TableHasNoProperties',
    DUPLICATE_PROPERTIES_SPECIFIED: 'DuplicatePropertiesSpecified',
    TABLE_HAS_NO_SUCH_PROPERTY: 'TableHasNoSuchProperty',
    DUPLICATE_KEY_PROPERTY_SPECIFIED: 'DuplicateKeyPropertySpecified',
    TABLE_ALREADY_EXISTS: 'TableAlreadyExists',
    TABLE_NOT_FOUND: 'TableNotFound',
    ENTITY_NOT_FOUND: 'EntityNotFound',
    ENTITY_ALREADY_EXISTS: 'EntityAlreadyExists',
    PARTITION_KEY_NOT_SPECIFIED: 'PartitionKeyNotSpecified',
    OPERATOR_INVALID: 'OperatorInvalid',
    UPDATE_CONDITION_NOT_SATISFIED: 'UpdateConditionNotSatisfied',
    PROPERTIES_NEED_VALUE: 'PropertiesNeedValue',
    PARTITION_KEY_PROPERTY_CANNOT_BE_UPDATED: 'PartitionKeyPropertyCannotBeUpdated',
    TOO_MANY_PROPERTIES: 'TooManyProperties',
    ENTITY_TOO_LARGE: 'EntityTooLarge',
    PROPERTY_VALUE_TOO_LARGE: 'PropertyValueTooLarge',
    INVALID_VALUE_TYPE: 'InvalidValueType',
    TABLE_BEING_DELETED: 'TableBeingDeleted',
    TABLE_SERVER_OUT_OF_MEMORY: 'TableServerOutOfMemory',
    PRIMARY_KEY_PROPERTY_IS_INVALID_TYPE: 'PrimaryKeyPropertyIsInvalidType',
    PROPERTY_NAME_TOO_LONG: 'PropertyNameTooLong',
    PROPERTY_NAME_INVALID: 'PropertyNameInvalid',
    BATCH_OPERATION_NOT_SUPPORTED: 'BatchOperationNotSupported',
    JSON_FORMAT_NOT_SUPPORTED: 'JsonFormatNotSupported',
    METHOD_NOT_ALLOWED: 'MethodNotAllowed',
    NOT_IMPLEMENTED: 'NotImplemented'
  },

  ConnectionStringKeys: {
    USE_DEVELOPMENT_STORAGE_NAME: 'UseDevelopmentStorage',
    DEVELOPMENT_STORAGE_PROXY_URI_NAME: 'DevelopmentStorageProxyUri',
    DEFAULT_ENDPOINTS_PROTOCOL_NAME: 'DefaultEndpointsProtocol',
    ACCOUNT_NAME_NAME: 'AccountName',
    ACCOUNT_KEY_NAME: 'AccountKey',
    BLOB_ENDPOINT_NAME: 'BlobEndpoint',
    FILE_ENDPOINT_NAME: 'FileEndpoint',
    QUEUE_ENDPOINT_NAME: 'QueueEndpoint',
    TABLE_ENDPOINT_NAME: 'TableEndpoint',
    SHARED_ACCESS_SIGNATURE_NAME: 'SharedAccessSignature',
    ENDPOINT_SUFFIX_NAME: 'EndpointSuffix',
    BLOB_BASE_DNS_NAME: 'blob.core.windows.net',
    FILE_BASE_DNS_NAME: 'file.core.windows.net',
    QUEUE_BASE_DNS_NAME: 'queue.core.windows.net',
    TABLE_BASE_DNS_NAME: 'table.core.windows.net'
  }
};

module.exports = Constants;


/***/ }),
/* 276 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var crypto = __webpack_require__(57);

var Md5Wrapper = function () {
};

Md5Wrapper.prototype.createMd5Hash = function() {
    return crypto.createHash('md5');
};

module.exports = Md5Wrapper;

/***/ }),
/* 277 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Expose 'StorageUtilities'.

/**
* Defines constants, enums, and utility functions for use with storage.
* @namespace
*/
var StorageUtilities = {
	/**
  * Specifies the location mode used to decide which location the request should be sent to.
  *
  * @const
  * @enum {number}
  */
  LocationMode: {
    /** The primary location only */
    PRIMARY_ONLY: 0,
    /** The primary location first, then the secondary */
    PRIMARY_THEN_SECONDARY: 1,
    /** The secondary location only */
    SECONDARY_ONLY: 2,
    /** The secondary location first, then the primary */
    SECONDARY_THEN_PRIMARY: 3
  }
};

module.exports = StorageUtilities;

/***/ }),
/* 278 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

exports = module.exports;

var SR = {
  ANONYMOUS_ACCESS_BLOBSERVICE_ONLY: 'Anonymous access is only valid for the BlobService.',
  ARGUMENT_NULL_OR_EMPTY: 'The argument must not be null or an empty string. Argument name: %s.',
  ARGUMENT_NULL_OR_UNDEFINED: 'The argument must not be null or undefined. Argument name: %s.',
  ARGUMENT_OUT_OF_RANGE_ERROR: 'The argument is out of range. Argument name: %s, Value passed: %s.',
  BATCH_ONE_PARTITION_KEY: 'All entities in the batch must have the same PartitionKey value.',
  BATCH_ONE_RETRIEVE: 'If a retrieve operation is part of a batch, it must be the only operation in the batch.',
  BATCH_TOO_LARGE: 'Batches must not contain more than 100 operations.',
  BLOB_INVALID_SEQUENCE_NUMBER: 'The sequence number may not be specified for an increment operation.',
  BLOB_TYPE_MISMATCH: 'Blob type of the blob reference doesn\'t match blob type of the blob.',
  CANNOT_CREATE_SAS_WITHOUT_ACCOUNT_KEY: 'Cannot create Shared Access Signature unless the Account Name and Key are used to create the ServiceClient.',
  CONTENT_LENGTH_MISMATCH: 'An incorrect number of bytes was read from the connection. The connection may have been closed.',
  CONTENT_TYPE_MISSING: 'Content-Type response header is missing or invalid.',
  EMPTY_BATCH: 'Batch must not be empty.',
  EXCEEDED_SIZE_LIMITATION: 'Upload exceeds the size limitation. Max size is %s but the current size is %s',
  HASH_MISMATCH: 'Hash mismatch (integrity check failed), Expected value is %s, retrieved %s.',
  INCORRECT_ENTITY_KEYS: 'PartitionKey and RowKey must be specified as strings in the entity object.',
  INVALID_BLOB_LENGTH: 'createBlockBlobFromText requires the size of text to be less than 64MB. Please use createBlockBlobFromLocalFile or createBlockBlobFromStream to upload large blobs.',
  INVALID_CONNECTION_STRING: 'Connection strings must be of the form "key1=value1;key2=value2".',
  INVALID_CONNECTION_STRING_BAD_KEY: 'Connection string contains unrecognized key: "%s"',
  INVALID_CONNECTION_STRING_DUPLICATE_KEY: 'Connection string contains duplicate key: "%s"',
  INVALID_CONNECTION_STRING_EMPTY_KEY: 'Connection strings must not contain empty keys.',
  INVALID_DELETE_SNAPSHOT_OPTION: 'The deleteSnapshots option cannot be included when deleting a specific snapshot using the snapshotId option.',
  INVALID_EDM_TYPE: 'The value \'%s\' does not match the type \'%s\'.',
  INVALID_FILE_LENGTH: 'createFileFromText requires the size of text to be less than 4MB. Please use createFileFromLocalFile or createFileFromStream to upload large files.',
  INVALID_FILE_RANGE_FOR_UPDATE: 'Range size should be less than 4MB for a file range update operation.',
  INVALID_HEADERS: 'Headers are not supported in the 2012-02-12 version.',
  INVALID_MESSAGE_ID: 'Message ID cannot be null or undefined for deleteMessage and updateMessage operations.',
  INVALID_PAGE_BLOB_LENGTH: 'Page blob length must be multiple of 512.',
  INVALID_PAGE_END_OFFSET: 'Page end offset must be multiple of 512.',
  INVALID_PAGE_RANGE_FOR_UPDATE: 'Page range size should be less than 4MB for a page update operation.',
  INVALID_PAGE_START_OFFSET: 'Page start offset must be multiple of 512.',
  INVALID_POP_RECEIPT: 'Pop Receipt cannot be null or undefined for deleteMessage and updateMessage operations.',
  INVALID_PROPERTY_RESOLVER: 'The specified property resolver returned an invalid type. %s:{_:%s,$:%s }',
  INVALID_RANGE_FOR_MD5: 'The requested range should be less than 4MB when contentMD5 is expected from the server',
  INVALID_SAS_VERSION: 'SAS Version ? is invalid. Valid versions include: ?.',
  INVALID_SAS_TOKEN: 'The SAS token should not contain api-version.',
  INVALID_SIGNED_IDENTIFIERS: 'Signed identifiers need to be a hash object with key as the id and the value as the access policy.',
  INVALID_STREAM_LENGTH: 'The length of the provided stream is invalid.',
  INVALID_STRING_ERROR: 'Invalid string error.',
  INVALID_TABLE_OPERATION: 'Operation not found: %s',
  INVALID_TEXT_LENGTH: 'The length of the provided text is invalid.',
  MAXIMUM_EXECUTION_TIMEOUT_EXCEPTION: 'The client could not finish the operation within specified maximum execution timeout.',
  MD5_NOT_POSSIBLE: 'MD5 cannot be calculated for an existing blob because it would require reading the existing data. Please disable storeBlobContentMD5.',
  MD5_NOT_PRESENT_ERROR: 'MD5 does not exist. If you do not want to force validation, please disable useTransactionalMD5.',
  METADATA_KEY_INVALID: 'The key for one of the metadata key-value pairs is null, empty, or whitespace.',
  METADATA_VALUE_INVALID: 'The value for one of the metadata key-value pairs is null, empty, or whitespace.',
  NO_CREDENTIALS_PROVIDED: 'Credentials must be provided when creating a service client.',
  PRIMARY_ONLY_COMMAND: 'This operation can only be executed against the primary storage location.',
  QUERY_OPERATOR_REQUIRES_WHERE: '%s operator needs to be used after where.',
  SECONDARY_ONLY_COMMAND: 'This operation can only be executed against the secondary storage location.',
  STORAGE_HOST_LOCATION_REQUIRED: 'The host for the storage service must be specified.',
  STORAGE_HOST_MISSING_LOCATION: 'The host for the target storage location is not specified. Please consider changing the request\'s location mode.',
  TYPE_NOT_SUPPORTED: 'Type not supported when sending data to the service: ',
  MAX_BLOB_SIZE_CONDITION_NOT_MEET: 'Append block data should not exceed the maximum blob size condition value.',
};

module.exports = SR;

/***/ }),
/* 279 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 



var XMLStringifier = __webpack_require__(280);

// Patch xmlbuilder to allow Unicode surrogate pair code
// points in XML bodies

XMLStringifier.prototype.assertLegalChar = function(str) {
  var chars, chr;
  chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/;
  chr = str.match(chars);
  if (chr) {
    throw new Error('Invalid character (' + chr + ') in string: ' + str);
  }
  return str;
};

/***/ }),
/* 280 */
/***/ (function(module, exports) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLStringifier,
    bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
    hasProp = {}.hasOwnProperty;

  module.exports = XMLStringifier = (function() {
    function XMLStringifier(options) {
      this.assertLegalChar = bind(this.assertLegalChar, this);
      var key, ref, value;
      options || (options = {});
      this.noDoubleEncoding = options.noDoubleEncoding;
      ref = options.stringify || {};
      for (key in ref) {
        if (!hasProp.call(ref, key)) continue;
        value = ref[key];
        this[key] = value;
      }
    }

    XMLStringifier.prototype.eleName = function(val) {
      val = '' + val || '';
      return this.assertLegalChar(val);
    };

    XMLStringifier.prototype.eleText = function(val) {
      val = '' + val || '';
      return this.assertLegalChar(this.elEscape(val));
    };

    XMLStringifier.prototype.cdata = function(val) {
      val = '' + val || '';
      val = val.replace(']]>', ']]]]><![CDATA[>');
      return this.assertLegalChar(val);
    };

    XMLStringifier.prototype.comment = function(val) {
      val = '' + val || '';
      if (val.match(/--/)) {
        throw new Error("Comment text cannot contain double-hypen: " + val);
      }
      return this.assertLegalChar(val);
    };

    XMLStringifier.prototype.raw = function(val) {
      return '' + val || '';
    };

    XMLStringifier.prototype.attName = function(val) {
      return val = '' + val || '';
    };

    XMLStringifier.prototype.attValue = function(val) {
      val = '' + val || '';
      return this.attEscape(val);
    };

    XMLStringifier.prototype.insTarget = function(val) {
      return '' + val || '';
    };

    XMLStringifier.prototype.insValue = function(val) {
      val = '' + val || '';
      if (val.match(/\?>/)) {
        throw new Error("Invalid processing instruction value: " + val);
      }
      return val;
    };

    XMLStringifier.prototype.xmlVersion = function(val) {
      val = '' + val || '';
      if (!val.match(/1\.[0-9]+/)) {
        throw new Error("Invalid version number: " + val);
      }
      return val;
    };

    XMLStringifier.prototype.xmlEncoding = function(val) {
      val = '' + val || '';
      if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) {
        throw new Error("Invalid encoding: " + val);
      }
      return val;
    };

    XMLStringifier.prototype.xmlStandalone = function(val) {
      if (val) {
        return "yes";
      } else {
        return "no";
      }
    };

    XMLStringifier.prototype.dtdPubID = function(val) {
      return '' + val || '';
    };

    XMLStringifier.prototype.dtdSysID = function(val) {
      return '' + val || '';
    };

    XMLStringifier.prototype.dtdElementValue = function(val) {
      return '' + val || '';
    };

    XMLStringifier.prototype.dtdAttType = function(val) {
      return '' + val || '';
    };

    XMLStringifier.prototype.dtdAttDefault = function(val) {
      if (val != null) {
        return '' + val || '';
      } else {
        return val;
      }
    };

    XMLStringifier.prototype.dtdEntityValue = function(val) {
      return '' + val || '';
    };

    XMLStringifier.prototype.dtdNData = function(val) {
      return '' + val || '';
    };

    XMLStringifier.prototype.convertAttKey = '@';

    XMLStringifier.prototype.convertPIKey = '?';

    XMLStringifier.prototype.convertTextKey = '#text';

    XMLStringifier.prototype.convertCDataKey = '#cdata';

    XMLStringifier.prototype.convertCommentKey = '#comment';

    XMLStringifier.prototype.convertRawKey = '#raw';

    XMLStringifier.prototype.assertLegalChar = function(str) {
      var res;
      res = str.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/);
      if (res) {
        throw new Error("Invalid character in string: " + str + " at index " + res.index);
      }
      return str;
    };

    XMLStringifier.prototype.elEscape = function(str) {
      var ampregex;
      ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g;
      return str.replace(ampregex, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\r/g, '&#xD;');
    };

    XMLStringifier.prototype.attEscape = function(str) {
      var ampregex;
      ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g;
      return str.replace(ampregex, '&amp;').replace(/</g, '&lt;').replace(/"/g, '&quot;').replace(/\t/g, '&#x9;').replace(/\n/g, '&#xA;').replace(/\r/g, '&#xD;');
    };

    return XMLStringifier;

  })();

}).call(this);


/***/ }),
/* 281 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref;

  ref = __webpack_require__(282), assign = ref.assign, isFunction = ref.isFunction;

  XMLDocument = __webpack_require__(283);

  XMLDocumentCB = __webpack_require__(300);

  XMLStringWriter = __webpack_require__(298);

  XMLStreamWriter = __webpack_require__(301);

  module.exports.create = function(name, xmldec, doctype, options) {
    var doc, root;
    if (name == null) {
      throw new Error("Root element needs a name");
    }
    options = assign({}, xmldec, doctype, options);
    doc = new XMLDocument(options);
    root = doc.element(name);
    if (!options.headless) {
      doc.declaration(options);
      if ((options.pubID != null) || (options.sysID != null)) {
        doc.doctype(options);
      }
    }
    return root;
  };

  module.exports.begin = function(options, onData, onEnd) {
    var ref1;
    if (isFunction(options)) {
      ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1];
      options = {};
    }
    if (onData) {
      return new XMLDocumentCB(options, onData, onEnd);
    } else {
      return new XMLDocument(options);
    }
  };

  module.exports.stringWriter = function(options) {
    return new XMLStringWriter(options);
  };

  module.exports.streamWriter = function(stream, options) {
    return new XMLStreamWriter(stream, options);
  };

}).call(this);


/***/ }),
/* 282 */
/***/ (function(module, exports) {

// Generated by CoffeeScript 1.12.7
(function() {
  var assign, isArray, isEmpty, isFunction, isObject, isPlainObject,
    slice = [].slice,
    hasProp = {}.hasOwnProperty;

  assign = function() {
    var i, key, len, source, sources, target;
    target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];
    if (isFunction(Object.assign)) {
      Object.assign.apply(null, arguments);
    } else {
      for (i = 0, len = sources.length; i < len; i++) {
        source = sources[i];
        if (source != null) {
          for (key in source) {
            if (!hasProp.call(source, key)) continue;
            target[key] = source[key];
          }
        }
      }
    }
    return target;
  };

  isFunction = function(val) {
    return !!val && Object.prototype.toString.call(val) === '[object Function]';
  };

  isObject = function(val) {
    var ref;
    return !!val && ((ref = typeof val) === 'function' || ref === 'object');
  };

  isArray = function(val) {
    if (isFunction(Array.isArray)) {
      return Array.isArray(val);
    } else {
      return Object.prototype.toString.call(val) === '[object Array]';
    }
  };

  isEmpty = function(val) {
    var key;
    if (isArray(val)) {
      return !val.length;
    } else {
      for (key in val) {
        if (!hasProp.call(val, key)) continue;
        return false;
      }
      return true;
    }
  };

  isPlainObject = function(val) {
    var ctor, proto;
    return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));
  };

  module.exports.assign = assign;

  module.exports.isFunction = isFunction;

  module.exports.isObject = isObject;

  module.exports.isArray = isArray;

  module.exports.isEmpty = isEmpty;

  module.exports.isPlainObject = isPlainObject;

}).call(this);


/***/ }),
/* 283 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  isPlainObject = __webpack_require__(282).isPlainObject;

  XMLNode = __webpack_require__(284);

  XMLStringifier = __webpack_require__(280);

  XMLStringWriter = __webpack_require__(298);

  module.exports = XMLDocument = (function(superClass) {
    extend(XMLDocument, superClass);

    function XMLDocument(options) {
      XMLDocument.__super__.constructor.call(this, null);
      options || (options = {});
      if (!options.writer) {
        options.writer = new XMLStringWriter();
      }
      this.options = options;
      this.stringify = new XMLStringifier(options);
      this.isDocument = true;
    }

    XMLDocument.prototype.end = function(writer) {
      var writerOptions;
      if (!writer) {
        writer = this.options.writer;
      } else if (isPlainObject(writer)) {
        writerOptions = writer;
        writer = this.options.writer.set(writerOptions);
      }
      return writer.document(this);
    };

    XMLDocument.prototype.toString = function(options) {
      return this.options.writer.set(options).document(this);
    };

    return XMLDocument;

  })(XMLNode);

}).call(this);


/***/ }),
/* 284 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLProcessingInstruction, XMLRaw, XMLText, isEmpty, isFunction, isObject, ref,
    hasProp = {}.hasOwnProperty;

  ref = __webpack_require__(282), isObject = ref.isObject, isFunction = ref.isFunction, isEmpty = ref.isEmpty;

  XMLElement = null;

  XMLCData = null;

  XMLComment = null;

  XMLDeclaration = null;

  XMLDocType = null;

  XMLRaw = null;

  XMLText = null;

  XMLProcessingInstruction = null;

  module.exports = XMLNode = (function() {
    function XMLNode(parent) {
      this.parent = parent;
      if (this.parent) {
        this.options = this.parent.options;
        this.stringify = this.parent.stringify;
      }
      this.children = [];
      if (!XMLElement) {
        XMLElement = __webpack_require__(285);
        XMLCData = __webpack_require__(287);
        XMLComment = __webpack_require__(288);
        XMLDeclaration = __webpack_require__(289);
        XMLDocType = __webpack_require__(290);
        XMLRaw = __webpack_require__(295);
        XMLText = __webpack_require__(296);
        XMLProcessingInstruction = __webpack_require__(297);
      }
    }

    XMLNode.prototype.element = function(name, attributes, text) {
      var childNode, item, j, k, key, lastChild, len, len1, ref1, val;
      lastChild = null;
      if (attributes == null) {
        attributes = {};
      }
      attributes = attributes.valueOf();
      if (!isObject(attributes)) {
        ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];
      }
      if (name != null) {
        name = name.valueOf();
      }
      if (Array.isArray(name)) {
        for (j = 0, len = name.length; j < len; j++) {
          item = name[j];
          lastChild = this.element(item);
        }
      } else if (isFunction(name)) {
        lastChild = this.element(name.apply());
      } else if (isObject(name)) {
        for (key in name) {
          if (!hasProp.call(name, key)) continue;
          val = name[key];
          if (isFunction(val)) {
            val = val.apply();
          }
          if ((isObject(val)) && (isEmpty(val))) {
            val = null;
          }
          if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) {
            lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val);
          } else if (!this.options.separateArrayItems && Array.isArray(val)) {
            for (k = 0, len1 = val.length; k < len1; k++) {
              item = val[k];
              childNode = {};
              childNode[key] = item;
              lastChild = this.element(childNode);
            }
          } else if (isObject(val)) {
            lastChild = this.element(key);
            lastChild.element(val);
          } else {
            lastChild = this.element(key, val);
          }
        }
      } else {
        if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) {
          lastChild = this.text(text);
        } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) {
          lastChild = this.cdata(text);
        } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) {
          lastChild = this.comment(text);
        } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) {
          lastChild = this.raw(text);
        } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && name.indexOf(this.stringify.convertPIKey) === 0) {
          lastChild = this.instruction(name.substr(this.stringify.convertPIKey.length), text);
        } else {
          lastChild = this.node(name, attributes, text);
        }
      }
      if (lastChild == null) {
        throw new Error("Could not create any elements with: " + name);
      }
      return lastChild;
    };

    XMLNode.prototype.insertBefore = function(name, attributes, text) {
      var child, i, removed;
      if (this.isRoot) {
        throw new Error("Cannot insert elements at root level");
      }
      i = this.parent.children.indexOf(this);
      removed = this.parent.children.splice(i);
      child = this.parent.element(name, attributes, text);
      Array.prototype.push.apply(this.parent.children, removed);
      return child;
    };

    XMLNode.prototype.insertAfter = function(name, attributes, text) {
      var child, i, removed;
      if (this.isRoot) {
        throw new Error("Cannot insert elements at root level");
      }
      i = this.parent.children.indexOf(this);
      removed = this.parent.children.splice(i + 1);
      child = this.parent.element(name, attributes, text);
      Array.prototype.push.apply(this.parent.children, removed);
      return child;
    };

    XMLNode.prototype.remove = function() {
      var i, ref1;
      if (this.isRoot) {
        throw new Error("Cannot remove the root element");
      }
      i = this.parent.children.indexOf(this);
      [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref1 = [])), ref1;
      return this.parent;
    };

    XMLNode.prototype.node = function(name, attributes, text) {
      var child, ref1;
      if (name != null) {
        name = name.valueOf();
      }
      attributes || (attributes = {});
      attributes = attributes.valueOf();
      if (!isObject(attributes)) {
        ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];
      }
      child = new XMLElement(this, name, attributes);
      if (text != null) {
        child.text(text);
      }
      this.children.push(child);
      return child;
    };

    XMLNode.prototype.text = function(value) {
      var child;
      child = new XMLText(this, value);
      this.children.push(child);
      return this;
    };

    XMLNode.prototype.cdata = function(value) {
      var child;
      child = new XMLCData(this, value);
      this.children.push(child);
      return this;
    };

    XMLNode.prototype.comment = function(value) {
      var child;
      child = new XMLComment(this, value);
      this.children.push(child);
      return this;
    };

    XMLNode.prototype.commentBefore = function(value) {
      var child, i, removed;
      i = this.parent.children.indexOf(this);
      removed = this.parent.children.splice(i);
      child = this.parent.comment(value);
      Array.prototype.push.apply(this.parent.children, removed);
      return this;
    };

    XMLNode.prototype.commentAfter = function(value) {
      var child, i, removed;
      i = this.parent.children.indexOf(this);
      removed = this.parent.children.splice(i + 1);
      child = this.parent.comment(value);
      Array.prototype.push.apply(this.parent.children, removed);
      return this;
    };

    XMLNode.prototype.raw = function(value) {
      var child;
      child = new XMLRaw(this, value);
      this.children.push(child);
      return this;
    };

    XMLNode.prototype.instruction = function(target, value) {
      var insTarget, insValue, instruction, j, len;
      if (target != null) {
        target = target.valueOf();
      }
      if (value != null) {
        value = value.valueOf();
      }
      if (Array.isArray(target)) {
        for (j = 0, len = target.length; j < len; j++) {
          insTarget = target[j];
          this.instruction(insTarget);
        }
      } else if (isObject(target)) {
        for (insTarget in target) {
          if (!hasProp.call(target, insTarget)) continue;
          insValue = target[insTarget];
          this.instruction(insTarget, insValue);
        }
      } else {
        if (isFunction(value)) {
          value = value.apply();
        }
        instruction = new XMLProcessingInstruction(this, target, value);
        this.children.push(instruction);
      }
      return this;
    };

    XMLNode.prototype.instructionBefore = function(target, value) {
      var child, i, removed;
      i = this.parent.children.indexOf(this);
      removed = this.parent.children.splice(i);
      child = this.parent.instruction(target, value);
      Array.prototype.push.apply(this.parent.children, removed);
      return this;
    };

    XMLNode.prototype.instructionAfter = function(target, value) {
      var child, i, removed;
      i = this.parent.children.indexOf(this);
      removed = this.parent.children.splice(i + 1);
      child = this.parent.instruction(target, value);
      Array.prototype.push.apply(this.parent.children, removed);
      return this;
    };

    XMLNode.prototype.declaration = function(version, encoding, standalone) {
      var doc, xmldec;
      doc = this.document();
      xmldec = new XMLDeclaration(doc, version, encoding, standalone);
      if (doc.children[0] instanceof XMLDeclaration) {
        doc.children[0] = xmldec;
      } else {
        doc.children.unshift(xmldec);
      }
      return doc.root() || doc;
    };

    XMLNode.prototype.doctype = function(pubID, sysID) {
      var child, doc, doctype, i, j, k, len, len1, ref1, ref2;
      doc = this.document();
      doctype = new XMLDocType(doc, pubID, sysID);
      ref1 = doc.children;
      for (i = j = 0, len = ref1.length; j < len; i = ++j) {
        child = ref1[i];
        if (child instanceof XMLDocType) {
          doc.children[i] = doctype;
          return doctype;
        }
      }
      ref2 = doc.children;
      for (i = k = 0, len1 = ref2.length; k < len1; i = ++k) {
        child = ref2[i];
        if (child.isRoot) {
          doc.children.splice(i, 0, doctype);
          return doctype;
        }
      }
      doc.children.push(doctype);
      return doctype;
    };

    XMLNode.prototype.up = function() {
      if (this.isRoot) {
        throw new Error("The root node has no parent. Use doc() if you need to get the document object.");
      }
      return this.parent;
    };

    XMLNode.prototype.root = function() {
      var node;
      node = this;
      while (node) {
        if (node.isDocument) {
          return node.rootObject;
        } else if (node.isRoot) {
          return node;
        } else {
          node = node.parent;
        }
      }
    };

    XMLNode.prototype.document = function() {
      var node;
      node = this;
      while (node) {
        if (node.isDocument) {
          return node;
        } else {
          node = node.parent;
        }
      }
    };

    XMLNode.prototype.end = function(options) {
      return this.document().end(options);
    };

    XMLNode.prototype.prev = function() {
      var i;
      i = this.parent.children.indexOf(this);
      if (i < 1) {
        throw new Error("Already at the first node");
      }
      return this.parent.children[i - 1];
    };

    XMLNode.prototype.next = function() {
      var i;
      i = this.parent.children.indexOf(this);
      if (i === -1 || i === this.parent.children.length - 1) {
        throw new Error("Already at the last node");
      }
      return this.parent.children[i + 1];
    };

    XMLNode.prototype.importDocument = function(doc) {
      var clonedRoot;
      clonedRoot = doc.root().clone();
      clonedRoot.parent = this;
      clonedRoot.isRoot = false;
      this.children.push(clonedRoot);
      return this;
    };

    XMLNode.prototype.ele = function(name, attributes, text) {
      return this.element(name, attributes, text);
    };

    XMLNode.prototype.nod = function(name, attributes, text) {
      return this.node(name, attributes, text);
    };

    XMLNode.prototype.txt = function(value) {
      return this.text(value);
    };

    XMLNode.prototype.dat = function(value) {
      return this.cdata(value);
    };

    XMLNode.prototype.com = function(value) {
      return this.comment(value);
    };

    XMLNode.prototype.ins = function(target, value) {
      return this.instruction(target, value);
    };

    XMLNode.prototype.doc = function() {
      return this.document();
    };

    XMLNode.prototype.dec = function(version, encoding, standalone) {
      return this.declaration(version, encoding, standalone);
    };

    XMLNode.prototype.dtd = function(pubID, sysID) {
      return this.doctype(pubID, sysID);
    };

    XMLNode.prototype.e = function(name, attributes, text) {
      return this.element(name, attributes, text);
    };

    XMLNode.prototype.n = function(name, attributes, text) {
      return this.node(name, attributes, text);
    };

    XMLNode.prototype.t = function(value) {
      return this.text(value);
    };

    XMLNode.prototype.d = function(value) {
      return this.cdata(value);
    };

    XMLNode.prototype.c = function(value) {
      return this.comment(value);
    };

    XMLNode.prototype.r = function(value) {
      return this.raw(value);
    };

    XMLNode.prototype.i = function(target, value) {
      return this.instruction(target, value);
    };

    XMLNode.prototype.u = function() {
      return this.up();
    };

    XMLNode.prototype.importXMLBuilder = function(doc) {
      return this.importDocument(doc);
    };

    return XMLNode;

  })();

}).call(this);


/***/ }),
/* 285 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLAttribute, XMLElement, XMLNode, isFunction, isObject, ref,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  ref = __webpack_require__(282), isObject = ref.isObject, isFunction = ref.isFunction;

  XMLNode = __webpack_require__(284);

  XMLAttribute = __webpack_require__(286);

  module.exports = XMLElement = (function(superClass) {
    extend(XMLElement, superClass);

    function XMLElement(parent, name, attributes) {
      XMLElement.__super__.constructor.call(this, parent);
      if (name == null) {
        throw new Error("Missing element name");
      }
      this.name = this.stringify.eleName(name);
      this.attributes = {};
      if (attributes != null) {
        this.attribute(attributes);
      }
      if (parent.isDocument) {
        this.isRoot = true;
        this.documentObject = parent;
        parent.rootObject = this;
      }
    }

    XMLElement.prototype.clone = function() {
      var att, attName, clonedSelf, ref1;
      clonedSelf = Object.create(this);
      if (clonedSelf.isRoot) {
        clonedSelf.documentObject = null;
      }
      clonedSelf.attributes = {};
      ref1 = this.attributes;
      for (attName in ref1) {
        if (!hasProp.call(ref1, attName)) continue;
        att = ref1[attName];
        clonedSelf.attributes[attName] = att.clone();
      }
      clonedSelf.children = [];
      this.children.forEach(function(child) {
        var clonedChild;
        clonedChild = child.clone();
        clonedChild.parent = clonedSelf;
        return clonedSelf.children.push(clonedChild);
      });
      return clonedSelf;
    };

    XMLElement.prototype.attribute = function(name, value) {
      var attName, attValue;
      if (name != null) {
        name = name.valueOf();
      }
      if (isObject(name)) {
        for (attName in name) {
          if (!hasProp.call(name, attName)) continue;
          attValue = name[attName];
          this.attribute(attName, attValue);
        }
      } else {
        if (isFunction(value)) {
          value = value.apply();
        }
        if (!this.options.skipNullAttributes || (value != null)) {
          this.attributes[name] = new XMLAttribute(this, name, value);
        }
      }
      return this;
    };

    XMLElement.prototype.removeAttribute = function(name) {
      var attName, i, len;
      if (name == null) {
        throw new Error("Missing attribute name");
      }
      name = name.valueOf();
      if (Array.isArray(name)) {
        for (i = 0, len = name.length; i < len; i++) {
          attName = name[i];
          delete this.attributes[attName];
        }
      } else {
        delete this.attributes[name];
      }
      return this;
    };

    XMLElement.prototype.toString = function(options) {
      return this.options.writer.set(options).element(this);
    };

    XMLElement.prototype.att = function(name, value) {
      return this.attribute(name, value);
    };

    XMLElement.prototype.a = function(name, value) {
      return this.attribute(name, value);
    };

    return XMLElement;

  })(XMLNode);

}).call(this);


/***/ }),
/* 286 */
/***/ (function(module, exports) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLAttribute;

  module.exports = XMLAttribute = (function() {
    function XMLAttribute(parent, name, value) {
      this.options = parent.options;
      this.stringify = parent.stringify;
      if (name == null) {
        throw new Error("Missing attribute name of element " + parent.name);
      }
      if (value == null) {
        throw new Error("Missing attribute value for attribute " + name + " of element " + parent.name);
      }
      this.name = this.stringify.attName(name);
      this.value = this.stringify.attValue(value);
    }

    XMLAttribute.prototype.clone = function() {
      return Object.create(this);
    };

    XMLAttribute.prototype.toString = function(options) {
      return this.options.writer.set(options).attribute(this);
    };

    return XMLAttribute;

  })();

}).call(this);


/***/ }),
/* 287 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLCData, XMLNode,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  XMLNode = __webpack_require__(284);

  module.exports = XMLCData = (function(superClass) {
    extend(XMLCData, superClass);

    function XMLCData(parent, text) {
      XMLCData.__super__.constructor.call(this, parent);
      if (text == null) {
        throw new Error("Missing CDATA text");
      }
      this.text = this.stringify.cdata(text);
    }

    XMLCData.prototype.clone = function() {
      return Object.create(this);
    };

    XMLCData.prototype.toString = function(options) {
      return this.options.writer.set(options).cdata(this);
    };

    return XMLCData;

  })(XMLNode);

}).call(this);


/***/ }),
/* 288 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLComment, XMLNode,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  XMLNode = __webpack_require__(284);

  module.exports = XMLComment = (function(superClass) {
    extend(XMLComment, superClass);

    function XMLComment(parent, text) {
      XMLComment.__super__.constructor.call(this, parent);
      if (text == null) {
        throw new Error("Missing comment text");
      }
      this.text = this.stringify.comment(text);
    }

    XMLComment.prototype.clone = function() {
      return Object.create(this);
    };

    XMLComment.prototype.toString = function(options) {
      return this.options.writer.set(options).comment(this);
    };

    return XMLComment;

  })(XMLNode);

}).call(this);


/***/ }),
/* 289 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLDeclaration, XMLNode, isObject,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  isObject = __webpack_require__(282).isObject;

  XMLNode = __webpack_require__(284);

  module.exports = XMLDeclaration = (function(superClass) {
    extend(XMLDeclaration, superClass);

    function XMLDeclaration(parent, version, encoding, standalone) {
      var ref;
      XMLDeclaration.__super__.constructor.call(this, parent);
      if (isObject(version)) {
        ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;
      }
      if (!version) {
        version = '1.0';
      }
      this.version = this.stringify.xmlVersion(version);
      if (encoding != null) {
        this.encoding = this.stringify.xmlEncoding(encoding);
      }
      if (standalone != null) {
        this.standalone = this.stringify.xmlStandalone(standalone);
      }
    }

    XMLDeclaration.prototype.toString = function(options) {
      return this.options.writer.set(options).declaration(this);
    };

    return XMLDeclaration;

  })(XMLNode);

}).call(this);


/***/ }),
/* 290 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNode, isObject,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  isObject = __webpack_require__(282).isObject;

  XMLNode = __webpack_require__(284);

  XMLDTDAttList = __webpack_require__(291);

  XMLDTDEntity = __webpack_require__(292);

  XMLDTDElement = __webpack_require__(293);

  XMLDTDNotation = __webpack_require__(294);

  module.exports = XMLDocType = (function(superClass) {
    extend(XMLDocType, superClass);

    function XMLDocType(parent, pubID, sysID) {
      var ref, ref1;
      XMLDocType.__super__.constructor.call(this, parent);
      this.documentObject = parent;
      if (isObject(pubID)) {
        ref = pubID, pubID = ref.pubID, sysID = ref.sysID;
      }
      if (sysID == null) {
        ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1];
      }
      if (pubID != null) {
        this.pubID = this.stringify.dtdPubID(pubID);
      }
      if (sysID != null) {
        this.sysID = this.stringify.dtdSysID(sysID);
      }
    }

    XMLDocType.prototype.element = function(name, value) {
      var child;
      child = new XMLDTDElement(this, name, value);
      this.children.push(child);
      return this;
    };

    XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
      var child;
      child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);
      this.children.push(child);
      return this;
    };

    XMLDocType.prototype.entity = function(name, value) {
      var child;
      child = new XMLDTDEntity(this, false, name, value);
      this.children.push(child);
      return this;
    };

    XMLDocType.prototype.pEntity = function(name, value) {
      var child;
      child = new XMLDTDEntity(this, true, name, value);
      this.children.push(child);
      return this;
    };

    XMLDocType.prototype.notation = function(name, value) {
      var child;
      child = new XMLDTDNotation(this, name, value);
      this.children.push(child);
      return this;
    };

    XMLDocType.prototype.toString = function(options) {
      return this.options.writer.set(options).docType(this);
    };

    XMLDocType.prototype.ele = function(name, value) {
      return this.element(name, value);
    };

    XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
      return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);
    };

    XMLDocType.prototype.ent = function(name, value) {
      return this.entity(name, value);
    };

    XMLDocType.prototype.pent = function(name, value) {
      return this.pEntity(name, value);
    };

    XMLDocType.prototype.not = function(name, value) {
      return this.notation(name, value);
    };

    XMLDocType.prototype.up = function() {
      return this.root() || this.documentObject;
    };

    return XMLDocType;

  })(XMLNode);

}).call(this);


/***/ }),
/* 291 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLDTDAttList, XMLNode,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  XMLNode = __webpack_require__(284);

  module.exports = XMLDTDAttList = (function(superClass) {
    extend(XMLDTDAttList, superClass);

    function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {
      XMLDTDAttList.__super__.constructor.call(this, parent);
      if (elementName == null) {
        throw new Error("Missing DTD element name");
      }
      if (attributeName == null) {
        throw new Error("Missing DTD attribute name");
      }
      if (!attributeType) {
        throw new Error("Missing DTD attribute type");
      }
      if (!defaultValueType) {
        throw new Error("Missing DTD attribute default");
      }
      if (defaultValueType.indexOf('#') !== 0) {
        defaultValueType = '#' + defaultValueType;
      }
      if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {
        throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT");
      }
      if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {
        throw new Error("Default value only applies to #FIXED or #DEFAULT");
      }
      this.elementName = this.stringify.eleName(elementName);
      this.attributeName = this.stringify.attName(attributeName);
      this.attributeType = this.stringify.dtdAttType(attributeType);
      this.defaultValue = this.stringify.dtdAttDefault(defaultValue);
      this.defaultValueType = defaultValueType;
    }

    XMLDTDAttList.prototype.toString = function(options) {
      return this.options.writer.set(options).dtdAttList(this);
    };

    return XMLDTDAttList;

  })(XMLNode);

}).call(this);


/***/ }),
/* 292 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLDTDEntity, XMLNode, isObject,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  isObject = __webpack_require__(282).isObject;

  XMLNode = __webpack_require__(284);

  module.exports = XMLDTDEntity = (function(superClass) {
    extend(XMLDTDEntity, superClass);

    function XMLDTDEntity(parent, pe, name, value) {
      XMLDTDEntity.__super__.constructor.call(this, parent);
      if (name == null) {
        throw new Error("Missing entity name");
      }
      if (value == null) {
        throw new Error("Missing entity value");
      }
      this.pe = !!pe;
      this.name = this.stringify.eleName(name);
      if (!isObject(value)) {
        this.value = this.stringify.dtdEntityValue(value);
      } else {
        if (!value.pubID && !value.sysID) {
          throw new Error("Public and/or system identifiers are required for an external entity");
        }
        if (value.pubID && !value.sysID) {
          throw new Error("System identifier is required for a public external entity");
        }
        if (value.pubID != null) {
          this.pubID = this.stringify.dtdPubID(value.pubID);
        }
        if (value.sysID != null) {
          this.sysID = this.stringify.dtdSysID(value.sysID);
        }
        if (value.nData != null) {
          this.nData = this.stringify.dtdNData(value.nData);
        }
        if (this.pe && this.nData) {
          throw new Error("Notation declaration is not allowed in a parameter entity");
        }
      }
    }

    XMLDTDEntity.prototype.toString = function(options) {
      return this.options.writer.set(options).dtdEntity(this);
    };

    return XMLDTDEntity;

  })(XMLNode);

}).call(this);


/***/ }),
/* 293 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLDTDElement, XMLNode,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  XMLNode = __webpack_require__(284);

  module.exports = XMLDTDElement = (function(superClass) {
    extend(XMLDTDElement, superClass);

    function XMLDTDElement(parent, name, value) {
      XMLDTDElement.__super__.constructor.call(this, parent);
      if (name == null) {
        throw new Error("Missing DTD element name");
      }
      if (!value) {
        value = '(#PCDATA)';
      }
      if (Array.isArray(value)) {
        value = '(' + value.join(',') + ')';
      }
      this.name = this.stringify.eleName(name);
      this.value = this.stringify.dtdElementValue(value);
    }

    XMLDTDElement.prototype.toString = function(options) {
      return this.options.writer.set(options).dtdElement(this);
    };

    return XMLDTDElement;

  })(XMLNode);

}).call(this);


/***/ }),
/* 294 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLDTDNotation, XMLNode,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  XMLNode = __webpack_require__(284);

  module.exports = XMLDTDNotation = (function(superClass) {
    extend(XMLDTDNotation, superClass);

    function XMLDTDNotation(parent, name, value) {
      XMLDTDNotation.__super__.constructor.call(this, parent);
      if (name == null) {
        throw new Error("Missing notation name");
      }
      if (!value.pubID && !value.sysID) {
        throw new Error("Public or system identifiers are required for an external entity");
      }
      this.name = this.stringify.eleName(name);
      if (value.pubID != null) {
        this.pubID = this.stringify.dtdPubID(value.pubID);
      }
      if (value.sysID != null) {
        this.sysID = this.stringify.dtdSysID(value.sysID);
      }
    }

    XMLDTDNotation.prototype.toString = function(options) {
      return this.options.writer.set(options).dtdNotation(this);
    };

    return XMLDTDNotation;

  })(XMLNode);

}).call(this);


/***/ }),
/* 295 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLNode, XMLRaw,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  XMLNode = __webpack_require__(284);

  module.exports = XMLRaw = (function(superClass) {
    extend(XMLRaw, superClass);

    function XMLRaw(parent, text) {
      XMLRaw.__super__.constructor.call(this, parent);
      if (text == null) {
        throw new Error("Missing raw text");
      }
      this.value = this.stringify.raw(text);
    }

    XMLRaw.prototype.clone = function() {
      return Object.create(this);
    };

    XMLRaw.prototype.toString = function(options) {
      return this.options.writer.set(options).raw(this);
    };

    return XMLRaw;

  })(XMLNode);

}).call(this);


/***/ }),
/* 296 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLNode, XMLText,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  XMLNode = __webpack_require__(284);

  module.exports = XMLText = (function(superClass) {
    extend(XMLText, superClass);

    function XMLText(parent, text) {
      XMLText.__super__.constructor.call(this, parent);
      if (text == null) {
        throw new Error("Missing element text");
      }
      this.value = this.stringify.eleText(text);
    }

    XMLText.prototype.clone = function() {
      return Object.create(this);
    };

    XMLText.prototype.toString = function(options) {
      return this.options.writer.set(options).text(this);
    };

    return XMLText;

  })(XMLNode);

}).call(this);


/***/ }),
/* 297 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLNode, XMLProcessingInstruction,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  XMLNode = __webpack_require__(284);

  module.exports = XMLProcessingInstruction = (function(superClass) {
    extend(XMLProcessingInstruction, superClass);

    function XMLProcessingInstruction(parent, target, value) {
      XMLProcessingInstruction.__super__.constructor.call(this, parent);
      if (target == null) {
        throw new Error("Missing instruction target");
      }
      this.target = this.stringify.insTarget(target);
      if (value) {
        this.value = this.stringify.insValue(value);
      }
    }

    XMLProcessingInstruction.prototype.clone = function() {
      return Object.create(this);
    };

    XMLProcessingInstruction.prototype.toString = function(options) {
      return this.options.writer.set(options).processingInstruction(this);
    };

    return XMLProcessingInstruction;

  })(XMLNode);

}).call(this);


/***/ }),
/* 298 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLText, XMLWriterBase,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  XMLDeclaration = __webpack_require__(289);

  XMLDocType = __webpack_require__(290);

  XMLCData = __webpack_require__(287);

  XMLComment = __webpack_require__(288);

  XMLElement = __webpack_require__(285);

  XMLRaw = __webpack_require__(295);

  XMLText = __webpack_require__(296);

  XMLProcessingInstruction = __webpack_require__(297);

  XMLDTDAttList = __webpack_require__(291);

  XMLDTDElement = __webpack_require__(293);

  XMLDTDEntity = __webpack_require__(292);

  XMLDTDNotation = __webpack_require__(294);

  XMLWriterBase = __webpack_require__(299);

  module.exports = XMLStringWriter = (function(superClass) {
    extend(XMLStringWriter, superClass);

    function XMLStringWriter(options) {
      XMLStringWriter.__super__.constructor.call(this, options);
    }

    XMLStringWriter.prototype.document = function(doc) {
      var child, i, len, r, ref;
      this.textispresent = false;
      r = '';
      ref = doc.children;
      for (i = 0, len = ref.length; i < len; i++) {
        child = ref[i];
        r += (function() {
          switch (false) {
            case !(child instanceof XMLDeclaration):
              return this.declaration(child);
            case !(child instanceof XMLDocType):
              return this.docType(child);
            case !(child instanceof XMLComment):
              return this.comment(child);
            case !(child instanceof XMLProcessingInstruction):
              return this.processingInstruction(child);
            default:
              return this.element(child, 0);
          }
        }).call(this);
      }
      if (this.pretty && r.slice(-this.newline.length) === this.newline) {
        r = r.slice(0, -this.newline.length);
      }
      return r;
    };

    XMLStringWriter.prototype.attribute = function(att) {
      return ' ' + att.name + '="' + att.value + '"';
    };

    XMLStringWriter.prototype.cdata = function(node, level) {
      return this.space(level) + '<![CDATA[' + node.text + ']]>' + this.newline;
    };

    XMLStringWriter.prototype.comment = function(node, level) {
      return this.space(level) + '<!-- ' + node.text + ' -->' + this.newline;
    };

    XMLStringWriter.prototype.declaration = function(node, level) {
      var r;
      r = this.space(level);
      r += '<?xml version="' + node.version + '"';
      if (node.encoding != null) {
        r += ' encoding="' + node.encoding + '"';
      }
      if (node.standalone != null) {
        r += ' standalone="' + node.standalone + '"';
      }
      r += this.spacebeforeslash + '?>';
      r += this.newline;
      return r;
    };

    XMLStringWriter.prototype.docType = function(node, level) {
      var child, i, len, r, ref;
      level || (level = 0);
      r = this.space(level);
      r += '<!DOCTYPE ' + node.root().name;
      if (node.pubID && node.sysID) {
        r += ' PUBLIC "' + node.pubID + '" "' + node.sysID + '"';
      } else if (node.sysID) {
        r += ' SYSTEM "' + node.sysID + '"';
      }
      if (node.children.length > 0) {
        r += ' [';
        r += this.newline;
        ref = node.children;
        for (i = 0, len = ref.length; i < len; i++) {
          child = ref[i];
          r += (function() {
            switch (false) {
              case !(child instanceof XMLDTDAttList):
                return this.dtdAttList(child, level + 1);
              case !(child instanceof XMLDTDElement):
                return this.dtdElement(child, level + 1);
              case !(child instanceof XMLDTDEntity):
                return this.dtdEntity(child, level + 1);
              case !(child instanceof XMLDTDNotation):
                return this.dtdNotation(child, level + 1);
              case !(child instanceof XMLCData):
                return this.cdata(child, level + 1);
              case !(child instanceof XMLComment):
                return this.comment(child, level + 1);
              case !(child instanceof XMLProcessingInstruction):
                return this.processingInstruction(child, level + 1);
              default:
                throw new Error("Unknown DTD node type: " + child.constructor.name);
            }
          }).call(this);
        }
        r += ']';
      }
      r += this.spacebeforeslash + '>';
      r += this.newline;
      return r;
    };

    XMLStringWriter.prototype.element = function(node, level) {
      var att, child, i, j, len, len1, name, r, ref, ref1, ref2, space, textispresentwasset;
      level || (level = 0);
      textispresentwasset = false;
      if (this.textispresent) {
        this.newline = '';
        this.pretty = false;
      } else {
        this.newline = this.newlinedefault;
        this.pretty = this.prettydefault;
      }
      space = this.space(level);
      r = '';
      r += space + '<' + node.name;
      ref = node.attributes;
      for (name in ref) {
        if (!hasProp.call(ref, name)) continue;
        att = ref[name];
        r += this.attribute(att);
      }
      if (node.children.length === 0 || node.children.every(function(e) {
        return e.value === '';
      })) {
        if (this.allowEmpty) {
          r += '></' + node.name + '>' + this.newline;
        } else {
          r += this.spacebeforeslash + '/>' + this.newline;
        }
      } else if (this.pretty && node.children.length === 1 && (node.children[0].value != null)) {
        r += '>';
        r += node.children[0].value;
        r += '</' + node.name + '>' + this.newline;
      } else {
        if (this.dontprettytextnodes) {
          ref1 = node.children;
          for (i = 0, len = ref1.length; i < len; i++) {
            child = ref1[i];
            if (child.value != null) {
              this.textispresent++;
              textispresentwasset = true;
              break;
            }
          }
        }
        if (this.textispresent) {
          this.newline = '';
          this.pretty = false;
          space = this.space(level);
        }
        r += '>' + this.newline;
        ref2 = node.children;
        for (j = 0, len1 = ref2.length; j < len1; j++) {
          child = ref2[j];
          r += (function() {
            switch (false) {
              case !(child instanceof XMLCData):
                return this.cdata(child, level + 1);
              case !(child instanceof XMLComment):
                return this.comment(child, level + 1);
              case !(child instanceof XMLElement):
                return this.element(child, level + 1);
              case !(child instanceof XMLRaw):
                return this.raw(child, level + 1);
              case !(child instanceof XMLText):
                return this.text(child, level + 1);
              case !(child instanceof XMLProcessingInstruction):
                return this.processingInstruction(child, level + 1);
              default:
                throw new Error("Unknown XML node type: " + child.constructor.name);
            }
          }).call(this);
        }
        if (textispresentwasset) {
          this.textispresent--;
        }
        if (!this.textispresent) {
          this.newline = this.newlinedefault;
          this.pretty = this.prettydefault;
        }
        r += space + '</' + node.name + '>' + this.newline;
      }
      return r;
    };

    XMLStringWriter.prototype.processingInstruction = function(node, level) {
      var r;
      r = this.space(level) + '<?' + node.target;
      if (node.value) {
        r += ' ' + node.value;
      }
      r += this.spacebeforeslash + '?>' + this.newline;
      return r;
    };

    XMLStringWriter.prototype.raw = function(node, level) {
      return this.space(level) + node.value + this.newline;
    };

    XMLStringWriter.prototype.text = function(node, level) {
      return this.space(level) + node.value + this.newline;
    };

    XMLStringWriter.prototype.dtdAttList = function(node, level) {
      var r;
      r = this.space(level) + '<!ATTLIST ' + node.elementName + ' ' + node.attributeName + ' ' + node.attributeType;
      if (node.defaultValueType !== '#DEFAULT') {
        r += ' ' + node.defaultValueType;
      }
      if (node.defaultValue) {
        r += ' "' + node.defaultValue + '"';
      }
      r += this.spacebeforeslash + '>' + this.newline;
      return r;
    };

    XMLStringWriter.prototype.dtdElement = function(node, level) {
      return this.space(level) + '<!ELEMENT ' + node.name + ' ' + node.value + this.spacebeforeslash + '>' + this.newline;
    };

    XMLStringWriter.prototype.dtdEntity = function(node, level) {
      var r;
      r = this.space(level) + '<!ENTITY';
      if (node.pe) {
        r += ' %';
      }
      r += ' ' + node.name;
      if (node.value) {
        r += ' "' + node.value + '"';
      } else {
        if (node.pubID && node.sysID) {
          r += ' PUBLIC "' + node.pubID + '" "' + node.sysID + '"';
        } else if (node.sysID) {
          r += ' SYSTEM "' + node.sysID + '"';
        }
        if (node.nData) {
          r += ' NDATA ' + node.nData;
        }
      }
      r += this.spacebeforeslash + '>' + this.newline;
      return r;
    };

    XMLStringWriter.prototype.dtdNotation = function(node, level) {
      var r;
      r = this.space(level) + '<!NOTATION ' + node.name;
      if (node.pubID && node.sysID) {
        r += ' PUBLIC "' + node.pubID + '" "' + node.sysID + '"';
      } else if (node.pubID) {
        r += ' PUBLIC "' + node.pubID + '"';
      } else if (node.sysID) {
        r += ' SYSTEM "' + node.sysID + '"';
      }
      r += this.spacebeforeslash + '>' + this.newline;
      return r;
    };

    XMLStringWriter.prototype.openNode = function(node, level) {
      var att, name, r, ref;
      level || (level = 0);
      if (node instanceof XMLElement) {
        r = this.space(level) + '<' + node.name;
        ref = node.attributes;
        for (name in ref) {
          if (!hasProp.call(ref, name)) continue;
          att = ref[name];
          r += this.attribute(att);
        }
        r += (node.children ? '>' : '/>') + this.newline;
        return r;
      } else {
        r = this.space(level) + '<!DOCTYPE ' + node.rootNodeName;
        if (node.pubID && node.sysID) {
          r += ' PUBLIC "' + node.pubID + '" "' + node.sysID + '"';
        } else if (node.sysID) {
          r += ' SYSTEM "' + node.sysID + '"';
        }
        r += (node.children ? ' [' : '>') + this.newline;
        return r;
      }
    };

    XMLStringWriter.prototype.closeNode = function(node, level) {
      level || (level = 0);
      switch (false) {
        case !(node instanceof XMLElement):
          return this.space(level) + '</' + node.name + '>' + this.newline;
        case !(node instanceof XMLDocType):
          return this.space(level) + ']>' + this.newline;
      }
    };

    return XMLStringWriter;

  })(XMLWriterBase);

}).call(this);


/***/ }),
/* 299 */
/***/ (function(module, exports) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLWriterBase,
    hasProp = {}.hasOwnProperty;

  module.exports = XMLWriterBase = (function() {
    function XMLWriterBase(options) {
      var key, ref, ref1, ref2, ref3, ref4, ref5, ref6, value;
      options || (options = {});
      this.pretty = options.pretty || false;
      this.allowEmpty = (ref = options.allowEmpty) != null ? ref : false;
      if (this.pretty) {
        this.indent = (ref1 = options.indent) != null ? ref1 : '  ';
        this.newline = (ref2 = options.newline) != null ? ref2 : '\n';
        this.offset = (ref3 = options.offset) != null ? ref3 : 0;
        this.dontprettytextnodes = (ref4 = options.dontprettytextnodes) != null ? ref4 : 0;
      } else {
        this.indent = '';
        this.newline = '';
        this.offset = 0;
        this.dontprettytextnodes = 0;
      }
      this.spacebeforeslash = (ref5 = options.spacebeforeslash) != null ? ref5 : '';
      if (this.spacebeforeslash === true) {
        this.spacebeforeslash = ' ';
      }
      this.newlinedefault = this.newline;
      this.prettydefault = this.pretty;
      ref6 = options.writer || {};
      for (key in ref6) {
        if (!hasProp.call(ref6, key)) continue;
        value = ref6[key];
        this[key] = value;
      }
    }

    XMLWriterBase.prototype.set = function(options) {
      var key, ref, value;
      options || (options = {});
      if ("pretty" in options) {
        this.pretty = options.pretty;
      }
      if ("allowEmpty" in options) {
        this.allowEmpty = options.allowEmpty;
      }
      if (this.pretty) {
        this.indent = "indent" in options ? options.indent : '  ';
        this.newline = "newline" in options ? options.newline : '\n';
        this.offset = "offset" in options ? options.offset : 0;
        this.dontprettytextnodes = "dontprettytextnodes" in options ? options.dontprettytextnodes : 0;
      } else {
        this.indent = '';
        this.newline = '';
        this.offset = 0;
        this.dontprettytextnodes = 0;
      }
      this.spacebeforeslash = "spacebeforeslash" in options ? options.spacebeforeslash : '';
      if (this.spacebeforeslash === true) {
        this.spacebeforeslash = ' ';
      }
      this.newlinedefault = this.newline;
      this.prettydefault = this.pretty;
      ref = options.writer || {};
      for (key in ref) {
        if (!hasProp.call(ref, key)) continue;
        value = ref[key];
        this[key] = value;
      }
      return this;
    };

    XMLWriterBase.prototype.space = function(level) {
      var indent;
      if (this.pretty) {
        indent = (level || 0) + this.offset + 1;
        if (indent > 0) {
          return new Array(indent).join(this.indent);
        } else {
          return '';
        }
      } else {
        return '';
      }
    };

    return XMLWriterBase;

  })();

}).call(this);


/***/ }),
/* 300 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, isFunction, isObject, isPlainObject, ref,
    hasProp = {}.hasOwnProperty;

  ref = __webpack_require__(282), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject;

  XMLElement = __webpack_require__(285);

  XMLCData = __webpack_require__(287);

  XMLComment = __webpack_require__(288);

  XMLRaw = __webpack_require__(295);

  XMLText = __webpack_require__(296);

  XMLProcessingInstruction = __webpack_require__(297);

  XMLDeclaration = __webpack_require__(289);

  XMLDocType = __webpack_require__(290);

  XMLDTDAttList = __webpack_require__(291);

  XMLDTDEntity = __webpack_require__(292);

  XMLDTDElement = __webpack_require__(293);

  XMLDTDNotation = __webpack_require__(294);

  XMLAttribute = __webpack_require__(286);

  XMLStringifier = __webpack_require__(280);

  XMLStringWriter = __webpack_require__(298);

  module.exports = XMLDocumentCB = (function() {
    function XMLDocumentCB(options, onData, onEnd) {
      var writerOptions;
      options || (options = {});
      if (!options.writer) {
        options.writer = new XMLStringWriter(options);
      } else if (isPlainObject(options.writer)) {
        writerOptions = options.writer;
        options.writer = new XMLStringWriter(writerOptions);
      }
      this.options = options;
      this.writer = options.writer;
      this.stringify = new XMLStringifier(options);
      this.onDataCallback = onData || function() {};
      this.onEndCallback = onEnd || function() {};
      this.currentNode = null;
      this.currentLevel = -1;
      this.openTags = {};
      this.documentStarted = false;
      this.documentCompleted = false;
      this.root = null;
    }

    XMLDocumentCB.prototype.node = function(name, attributes, text) {
      var ref1;
      if (name == null) {
        throw new Error("Missing node name");
      }
      if (this.root && this.currentLevel === -1) {
        throw new Error("Document can only have one root node");
      }
      this.openCurrent();
      name = name.valueOf();
      if (attributes == null) {
        attributes = {};
      }
      attributes = attributes.valueOf();
      if (!isObject(attributes)) {
        ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];
      }
      this.currentNode = new XMLElement(this, name, attributes);
      this.currentNode.children = false;
      this.currentLevel++;
      this.openTags[this.currentLevel] = this.currentNode;
      if (text != null) {
        this.text(text);
      }
      return this;
    };

    XMLDocumentCB.prototype.element = function(name, attributes, text) {
      if (this.currentNode && this.currentNode instanceof XMLDocType) {
        return this.dtdElement.apply(this, arguments);
      } else {
        return this.node(name, attributes, text);
      }
    };

    XMLDocumentCB.prototype.attribute = function(name, value) {
      var attName, attValue;
      if (!this.currentNode || this.currentNode.children) {
        throw new Error("att() can only be used immediately after an ele() call in callback mode");
      }
      if (name != null) {
        name = name.valueOf();
      }
      if (isObject(name)) {
        for (attName in name) {
          if (!hasProp.call(name, attName)) continue;
          attValue = name[attName];
          this.attribute(attName, attValue);
        }
      } else {
        if (isFunction(value)) {
          value = value.apply();
        }
        if (!this.options.skipNullAttributes || (value != null)) {
          this.currentNode.attributes[name] = new XMLAttribute(this, name, value);
        }
      }
      return this;
    };

    XMLDocumentCB.prototype.text = function(value) {
      var node;
      this.openCurrent();
      node = new XMLText(this, value);
      this.onData(this.writer.text(node, this.currentLevel + 1));
      return this;
    };

    XMLDocumentCB.prototype.cdata = function(value) {
      var node;
      this.openCurrent();
      node = new XMLCData(this, value);
      this.onData(this.writer.cdata(node, this.currentLevel + 1));
      return this;
    };

    XMLDocumentCB.prototype.comment = function(value) {
      var node;
      this.openCurrent();
      node = new XMLComment(this, value);
      this.onData(this.writer.comment(node, this.currentLevel + 1));
      return this;
    };

    XMLDocumentCB.prototype.raw = function(value) {
      var node;
      this.openCurrent();
      node = new XMLRaw(this, value);
      this.onData(this.writer.raw(node, this.currentLevel + 1));
      return this;
    };

    XMLDocumentCB.prototype.instruction = function(target, value) {
      var i, insTarget, insValue, len, node;
      this.openCurrent();
      if (target != null) {
        target = target.valueOf();
      }
      if (value != null) {
        value = value.valueOf();
      }
      if (Array.isArray(target)) {
        for (i = 0, len = target.length; i < len; i++) {
          insTarget = target[i];
          this.instruction(insTarget);
        }
      } else if (isObject(target)) {
        for (insTarget in target) {
          if (!hasProp.call(target, insTarget)) continue;
          insValue = target[insTarget];
          this.instruction(insTarget, insValue);
        }
      } else {
        if (isFunction(value)) {
          value = value.apply();
        }
        node = new XMLProcessingInstruction(this, target, value);
        this.onData(this.writer.processingInstruction(node, this.currentLevel + 1));
      }
      return this;
    };

    XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) {
      var node;
      this.openCurrent();
      if (this.documentStarted) {
        throw new Error("declaration() must be the first node");
      }
      node = new XMLDeclaration(this, version, encoding, standalone);
      this.onData(this.writer.declaration(node, this.currentLevel + 1));
      return this;
    };

    XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) {
      this.openCurrent();
      if (root == null) {
        throw new Error("Missing root node name");
      }
      if (this.root) {
        throw new Error("dtd() must come before the root node");
      }
      this.currentNode = new XMLDocType(this, pubID, sysID);
      this.currentNode.rootNodeName = root;
      this.currentNode.children = false;
      this.currentLevel++;
      this.openTags[this.currentLevel] = this.currentNode;
      return this;
    };

    XMLDocumentCB.prototype.dtdElement = function(name, value) {
      var node;
      this.openCurrent();
      node = new XMLDTDElement(this, name, value);
      this.onData(this.writer.dtdElement(node, this.currentLevel + 1));
      return this;
    };

    XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
      var node;
      this.openCurrent();
      node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);
      this.onData(this.writer.dtdAttList(node, this.currentLevel + 1));
      return this;
    };

    XMLDocumentCB.prototype.entity = function(name, value) {
      var node;
      this.openCurrent();
      node = new XMLDTDEntity(this, false, name, value);
      this.onData(this.writer.dtdEntity(node, this.currentLevel + 1));
      return this;
    };

    XMLDocumentCB.prototype.pEntity = function(name, value) {
      var node;
      this.openCurrent();
      node = new XMLDTDEntity(this, true, name, value);
      this.onData(this.writer.dtdEntity(node, this.currentLevel + 1));
      return this;
    };

    XMLDocumentCB.prototype.notation = function(name, value) {
      var node;
      this.openCurrent();
      node = new XMLDTDNotation(this, name, value);
      this.onData(this.writer.dtdNotation(node, this.currentLevel + 1));
      return this;
    };

    XMLDocumentCB.prototype.up = function() {
      if (this.currentLevel < 0) {
        throw new Error("The document node has no parent");
      }
      if (this.currentNode) {
        if (this.currentNode.children) {
          this.closeNode(this.currentNode);
        } else {
          this.openNode(this.currentNode);
        }
        this.currentNode = null;
      } else {
        this.closeNode(this.openTags[this.currentLevel]);
      }
      delete this.openTags[this.currentLevel];
      this.currentLevel--;
      return this;
    };

    XMLDocumentCB.prototype.end = function() {
      while (this.currentLevel >= 0) {
        this.up();
      }
      return this.onEnd();
    };

    XMLDocumentCB.prototype.openCurrent = function() {
      if (this.currentNode) {
        this.currentNode.children = true;
        return this.openNode(this.currentNode);
      }
    };

    XMLDocumentCB.prototype.openNode = function(node) {
      if (!node.isOpen) {
        if (!this.root && this.currentLevel === 0 && node instanceof XMLElement) {
          this.root = node;
        }
        this.onData(this.writer.openNode(node, this.currentLevel));
        return node.isOpen = true;
      }
    };

    XMLDocumentCB.prototype.closeNode = function(node) {
      if (!node.isClosed) {
        this.onData(this.writer.closeNode(node, this.currentLevel));
        return node.isClosed = true;
      }
    };

    XMLDocumentCB.prototype.onData = function(chunk) {
      this.documentStarted = true;
      return this.onDataCallback(chunk);
    };

    XMLDocumentCB.prototype.onEnd = function() {
      this.documentCompleted = true;
      return this.onEndCallback();
    };

    XMLDocumentCB.prototype.ele = function() {
      return this.element.apply(this, arguments);
    };

    XMLDocumentCB.prototype.nod = function(name, attributes, text) {
      return this.node(name, attributes, text);
    };

    XMLDocumentCB.prototype.txt = function(value) {
      return this.text(value);
    };

    XMLDocumentCB.prototype.dat = function(value) {
      return this.cdata(value);
    };

    XMLDocumentCB.prototype.com = function(value) {
      return this.comment(value);
    };

    XMLDocumentCB.prototype.ins = function(target, value) {
      return this.instruction(target, value);
    };

    XMLDocumentCB.prototype.dec = function(version, encoding, standalone) {
      return this.declaration(version, encoding, standalone);
    };

    XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) {
      return this.doctype(root, pubID, sysID);
    };

    XMLDocumentCB.prototype.e = function(name, attributes, text) {
      return this.element(name, attributes, text);
    };

    XMLDocumentCB.prototype.n = function(name, attributes, text) {
      return this.node(name, attributes, text);
    };

    XMLDocumentCB.prototype.t = function(value) {
      return this.text(value);
    };

    XMLDocumentCB.prototype.d = function(value) {
      return this.cdata(value);
    };

    XMLDocumentCB.prototype.c = function(value) {
      return this.comment(value);
    };

    XMLDocumentCB.prototype.r = function(value) {
      return this.raw(value);
    };

    XMLDocumentCB.prototype.i = function(target, value) {
      return this.instruction(target, value);
    };

    XMLDocumentCB.prototype.att = function() {
      if (this.currentNode && this.currentNode instanceof XMLDocType) {
        return this.attList.apply(this, arguments);
      } else {
        return this.attribute.apply(this, arguments);
      }
    };

    XMLDocumentCB.prototype.a = function() {
      if (this.currentNode && this.currentNode instanceof XMLDocType) {
        return this.attList.apply(this, arguments);
      } else {
        return this.attribute.apply(this, arguments);
      }
    };

    XMLDocumentCB.prototype.ent = function(name, value) {
      return this.entity(name, value);
    };

    XMLDocumentCB.prototype.pent = function(name, value) {
      return this.pEntity(name, value);
    };

    XMLDocumentCB.prototype.not = function(name, value) {
      return this.notation(name, value);
    };

    return XMLDocumentCB;

  })();

}).call(this);


/***/ }),
/* 301 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.12.7
(function() {
  var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStreamWriter, XMLText, XMLWriterBase,
    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  XMLDeclaration = __webpack_require__(289);

  XMLDocType = __webpack_require__(290);

  XMLCData = __webpack_require__(287);

  XMLComment = __webpack_require__(288);

  XMLElement = __webpack_require__(285);

  XMLRaw = __webpack_require__(295);

  XMLText = __webpack_require__(296);

  XMLProcessingInstruction = __webpack_require__(297);

  XMLDTDAttList = __webpack_require__(291);

  XMLDTDElement = __webpack_require__(293);

  XMLDTDEntity = __webpack_require__(292);

  XMLDTDNotation = __webpack_require__(294);

  XMLWriterBase = __webpack_require__(299);

  module.exports = XMLStreamWriter = (function(superClass) {
    extend(XMLStreamWriter, superClass);

    function XMLStreamWriter(stream, options) {
      XMLStreamWriter.__super__.constructor.call(this, options);
      this.stream = stream;
    }

    XMLStreamWriter.prototype.document = function(doc) {
      var child, i, j, len, len1, ref, ref1, results;
      ref = doc.children;
      for (i = 0, len = ref.length; i < len; i++) {
        child = ref[i];
        child.isLastRootNode = false;
      }
      doc.children[doc.children.length - 1].isLastRootNode = true;
      ref1 = doc.children;
      results = [];
      for (j = 0, len1 = ref1.length; j < len1; j++) {
        child = ref1[j];
        switch (false) {
          case !(child instanceof XMLDeclaration):
            results.push(this.declaration(child));
            break;
          case !(child instanceof XMLDocType):
            results.push(this.docType(child));
            break;
          case !(child instanceof XMLComment):
            results.push(this.comment(child));
            break;
          case !(child instanceof XMLProcessingInstruction):
            results.push(this.processingInstruction(child));
            break;
          default:
            results.push(this.element(child));
        }
      }
      return results;
    };

    XMLStreamWriter.prototype.attribute = function(att) {
      return this.stream.write(' ' + att.name + '="' + att.value + '"');
    };

    XMLStreamWriter.prototype.cdata = function(node, level) {
      return this.stream.write(this.space(level) + '<![CDATA[' + node.text + ']]>' + this.endline(node));
    };

    XMLStreamWriter.prototype.comment = function(node, level) {
      return this.stream.write(this.space(level) + '<!-- ' + node.text + ' -->' + this.endline(node));
    };

    XMLStreamWriter.prototype.declaration = function(node, level) {
      this.stream.write(this.space(level));
      this.stream.write('<?xml version="' + node.version + '"');
      if (node.encoding != null) {
        this.stream.write(' encoding="' + node.encoding + '"');
      }
      if (node.standalone != null) {
        this.stream.write(' standalone="' + node.standalone + '"');
      }
      this.stream.write(this.spacebeforeslash + '?>');
      return this.stream.write(this.endline(node));
    };

    XMLStreamWriter.prototype.docType = function(node, level) {
      var child, i, len, ref;
      level || (level = 0);
      this.stream.write(this.space(level));
      this.stream.write('<!DOCTYPE ' + node.root().name);
      if (node.pubID && node.sysID) {
        this.stream.write(' PUBLIC "' + node.pubID + '" "' + node.sysID + '"');
      } else if (node.sysID) {
        this.stream.write(' SYSTEM "' + node.sysID + '"');
      }
      if (node.children.length > 0) {
        this.stream.write(' [');
        this.stream.write(this.endline(node));
        ref = node.children;
        for (i = 0, len = ref.length; i < len; i++) {
          child = ref[i];
          switch (false) {
            case !(child instanceof XMLDTDAttList):
              this.dtdAttList(child, level + 1);
              break;
            case !(child instanceof XMLDTDElement):
              this.dtdElement(child, level + 1);
              break;
            case !(child instanceof XMLDTDEntity):
              this.dtdEntity(child, level + 1);
              break;
            case !(child instanceof XMLDTDNotation):
              this.dtdNotation(child, level + 1);
              break;
            case !(child instanceof XMLCData):
              this.cdata(child, level + 1);
              break;
            case !(child instanceof XMLComment):
              this.comment(child, level + 1);
              break;
            case !(child instanceof XMLProcessingInstruction):
              this.processingInstruction(child, level + 1);
              break;
            default:
              throw new Error("Unknown DTD node type: " + child.constructor.name);
          }
        }
        this.stream.write(']');
      }
      this.stream.write(this.spacebeforeslash + '>');
      return this.stream.write(this.endline(node));
    };

    XMLStreamWriter.prototype.element = function(node, level) {
      var att, child, i, len, name, ref, ref1, space;
      level || (level = 0);
      space = this.space(level);
      this.stream.write(space + '<' + node.name);
      ref = node.attributes;
      for (name in ref) {
        if (!hasProp.call(ref, name)) continue;
        att = ref[name];
        this.attribute(att);
      }
      if (node.children.length === 0 || node.children.every(function(e) {
        return e.value === '';
      })) {
        if (this.allowEmpty) {
          this.stream.write('></' + node.name + '>');
        } else {
          this.stream.write(this.spacebeforeslash + '/>');
        }
      } else if (this.pretty && node.children.length === 1 && (node.children[0].value != null)) {
        this.stream.write('>');
        this.stream.write(node.children[0].value);
        this.stream.write('</' + node.name + '>');
      } else {
        this.stream.write('>' + this.newline);
        ref1 = node.children;
        for (i = 0, len = ref1.length; i < len; i++) {
          child = ref1[i];
          switch (false) {
            case !(child instanceof XMLCData):
              this.cdata(child, level + 1);
              break;
            case !(child instanceof XMLComment):
              this.comment(child, level + 1);
              break;
            case !(child instanceof XMLElement):
              this.element(child, level + 1);
              break;
            case !(child instanceof XMLRaw):
              this.raw(child, level + 1);
              break;
            case !(child instanceof XMLText):
              this.text(child, level + 1);
              break;
            case !(child instanceof XMLProcessingInstruction):
              this.processingInstruction(child, level + 1);
              break;
            default:
              throw new Error("Unknown XML node type: " + child.constructor.name);
          }
        }
        this.stream.write(space + '</' + node.name + '>');
      }
      return this.stream.write(this.endline(node));
    };

    XMLStreamWriter.prototype.processingInstruction = function(node, level) {
      this.stream.write(this.space(level) + '<?' + node.target);
      if (node.value) {
        this.stream.write(' ' + node.value);
      }
      return this.stream.write(this.spacebeforeslash + '?>' + this.endline(node));
    };

    XMLStreamWriter.prototype.raw = function(node, level) {
      return this.stream.write(this.space(level) + node.value + this.endline(node));
    };

    XMLStreamWriter.prototype.text = function(node, level) {
      return this.stream.write(this.space(level) + node.value + this.endline(node));
    };

    XMLStreamWriter.prototype.dtdAttList = function(node, level) {
      this.stream.write(this.space(level) + '<!ATTLIST ' + node.elementName + ' ' + node.attributeName + ' ' + node.attributeType);
      if (node.defaultValueType !== '#DEFAULT') {
        this.stream.write(' ' + node.defaultValueType);
      }
      if (node.defaultValue) {
        this.stream.write(' "' + node.defaultValue + '"');
      }
      return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));
    };

    XMLStreamWriter.prototype.dtdElement = function(node, level) {
      this.stream.write(this.space(level) + '<!ELEMENT ' + node.name + ' ' + node.value);
      return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));
    };

    XMLStreamWriter.prototype.dtdEntity = function(node, level) {
      this.stream.write(this.space(level) + '<!ENTITY');
      if (node.pe) {
        this.stream.write(' %');
      }
      this.stream.write(' ' + node.name);
      if (node.value) {
        this.stream.write(' "' + node.value + '"');
      } else {
        if (node.pubID && node.sysID) {
          this.stream.write(' PUBLIC "' + node.pubID + '" "' + node.sysID + '"');
        } else if (node.sysID) {
          this.stream.write(' SYSTEM "' + node.sysID + '"');
        }
        if (node.nData) {
          this.stream.write(' NDATA ' + node.nData);
        }
      }
      return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));
    };

    XMLStreamWriter.prototype.dtdNotation = function(node, level) {
      this.stream.write(this.space(level) + '<!NOTATION ' + node.name);
      if (node.pubID && node.sysID) {
        this.stream.write(' PUBLIC "' + node.pubID + '" "' + node.sysID + '"');
      } else if (node.pubID) {
        this.stream.write(' PUBLIC "' + node.pubID + '"');
      } else if (node.sysID) {
        this.stream.write(' SYSTEM "' + node.sysID + '"');
      }
      return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));
    };

    XMLStreamWriter.prototype.endline = function(node) {
      if (!node.isLastRootNode) {
        return this.newline;
      } else {
        return '';
      }
    };

    return XMLStreamWriter;

  })(XMLWriterBase);

}).call(this);


/***/ }),
/* 302 */
/***/ (function(module, exports, __webpack_require__) {

// Generated by CoffeeScript 1.6.3
(function() {
  var events, isEmpty, sax,
    __hasProp = {}.hasOwnProperty,
    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };

  sax = __webpack_require__(303);

  events = __webpack_require__(237);

  isEmpty = function(thing) {
    return typeof thing === "object" && (thing != null) && Object.keys(thing).length === 0;
  };

  exports.defaults = {
    "0.1": {
      explicitCharkey: false,
      trim: true,
      normalize: true,
      normalizeTags: false,
      attrkey: "@",
      charkey: "#",
      explicitArray: false,
      ignoreAttrs: false,
      mergeAttrs: false,
      explicitRoot: false,
      validator: null,
      xmlns: false,
      explicitChildren: false,
      childkey: '@@',
      charsAsChildren: false,
      async: false,
      strict: true
    },
    "0.2": {
      explicitCharkey: false,
      trim: false,
      normalize: false,
      normalizeTags: false,
      attrkey: "$",
      charkey: "_",
      explicitArray: true,
      ignoreAttrs: false,
      mergeAttrs: false,
      explicitRoot: true,
      validator: null,
      xmlns: false,
      explicitChildren: false,
      childkey: '$$',
      charsAsChildren: false,
      async: false,
      strict: true
    }
  };

  exports.ValidationError = (function(_super) {
    __extends(ValidationError, _super);

    function ValidationError(message) {
      this.message = message;
    }

    return ValidationError;

  })(Error);

  exports.Parser = (function(_super) {
    __extends(Parser, _super);

    function Parser(opts) {
      this.parseString = __bind(this.parseString, this);
      this.reset = __bind(this.reset, this);
      var key, value, _ref;
      if (!(this instanceof exports.Parser)) {
        return new exports.Parser(opts);
      }
      this.options = {};
      _ref = exports.defaults["0.2"];
      for (key in _ref) {
        if (!__hasProp.call(_ref, key)) continue;
        value = _ref[key];
        this.options[key] = value;
      }
      for (key in opts) {
        if (!__hasProp.call(opts, key)) continue;
        value = opts[key];
        this.options[key] = value;
      }
      if (this.options.xmlns) {
        this.options.xmlnskey = this.options.attrkey + "ns";
      }
      this.reset();
    }

    Parser.prototype.reset = function() {
      var attrkey, charkey, err, ontext, stack,
        _this = this;
      this.removeAllListeners();
      this.saxParser = sax.parser(this.options.strict, {
        trim: false,
        normalize: false,
        xmlns: this.options.xmlns
      });
      err = false;
      this.saxParser.onerror = function(error) {
        if (!err) {
          err = true;
          return _this.emit("error", error);
        }
      };
      this.EXPLICIT_CHARKEY = this.options.explicitCharkey;
      this.resultObject = null;
      stack = [];
      attrkey = this.options.attrkey;
      charkey = this.options.charkey;
      this.saxParser.onopentag = function(node) {
        var key, obj, _ref;
        obj = {};
        obj[charkey] = "";
        if (!_this.options.ignoreAttrs) {
          _ref = node.attributes;
          for (key in _ref) {
            if (!__hasProp.call(_ref, key)) continue;
            if (!(attrkey in obj) && !_this.options.mergeAttrs) {
              obj[attrkey] = {};
            }
            if (_this.options.mergeAttrs) {
              obj[key] = node.attributes[key];
            } else {
              obj[attrkey][key] = node.attributes[key];
            }
          }
        }
        obj["#name"] = _this.options.normalizeTags ? node.name.toLowerCase() : node.name;
        if (_this.options.xmlns) {
          obj[_this.options.xmlnskey] = {
            uri: node.uri,
            local: node.local
          };
        }
        return stack.push(obj);
      };
      this.saxParser.onclosetag = function() {
        var cdata, emptyStr, node, nodeName, obj, old, s, xpath;
        obj = stack.pop();
        nodeName = obj["#name"];
        delete obj["#name"];
        cdata = obj.cdata;
        delete obj.cdata;
        s = stack[stack.length - 1];
        if (obj[charkey].match(/^\s*$/) && !cdata) {
          emptyStr = obj[charkey];
          delete obj[charkey];
        } else {
          if (_this.options.trim) {
            obj[charkey] = obj[charkey].trim();
          }
          if (_this.options.normalize) {
            obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim();
          }
          if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
            obj = obj[charkey];
          }
        }
        if (isEmpty(obj)) {
          obj = _this.options.emptyTag !== void 0 ? _this.options.emptyTag : emptyStr;
        }
        if (_this.options.validator != null) {
          xpath = "/" + ((function() {
            var _i, _len, _results;
            _results = [];
            for (_i = 0, _len = stack.length; _i < _len; _i++) {
              node = stack[_i];
              _results.push(node["#name"]);
            }
            return _results;
          })()).concat(nodeName).join("/");
          try {
            obj = _this.options.validator(xpath, s && s[nodeName], obj);
          } catch (_error) {
            err = _error;
            _this.emit("error", err);
          }
        }
        if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
          node = {};
          if (_this.options.attrkey in obj) {
            node[_this.options.attrkey] = obj[_this.options.attrkey];
            delete obj[_this.options.attrkey];
          }
          if (!_this.options.charsAsChildren && _this.options.charkey in obj) {
            node[_this.options.charkey] = obj[_this.options.charkey];
            delete obj[_this.options.charkey];
          }
          if (Object.getOwnPropertyNames(obj).length > 0) {
            node[_this.options.childkey] = obj;
          }
          obj = node;
        }
        if (stack.length > 0) {
          if (!_this.options.explicitArray) {
            if (!(nodeName in s)) {
              return s[nodeName] = obj;
            } else if (s[nodeName] instanceof Array) {
              return s[nodeName].push(obj);
            } else {
              old = s[nodeName];
              s[nodeName] = [old];
              return s[nodeName].push(obj);
            }
          } else {
            if (!(s[nodeName] instanceof Array)) {
              s[nodeName] = [];
            }
            return s[nodeName].push(obj);
          }
        } else {
          if (_this.options.explicitRoot) {
            old = obj;
            obj = {};
            obj[nodeName] = old;
          }
          _this.resultObject = obj;
          return _this.emit("end", _this.resultObject);
        }
      };
      ontext = function(text) {
        var s;
        s = stack[stack.length - 1];
        if (s) {
          s[charkey] += text;
          return s;
        }
      };
      this.saxParser.ontext = ontext;
      return this.saxParser.oncdata = function(text) {
        var s;
        s = ontext(text);
        if (s) {
          return s.cdata = true;
        }
      };
    };

    Parser.prototype.parseString = function(str, cb) {
      if ((cb != null) && typeof cb === "function") {
        this.on("end", function(result) {
          this.reset();
          if (this.options.async) {
            return process.nextTick(function() {
              return cb(null, result);
            });
          } else {
            return cb(null, result);
          }
        });
        this.on("error", function(err) {
          this.reset();
          if (this.options.async) {
            return process.nextTick(function() {
              return cb(err);
            });
          } else {
            return cb(err);
          }
        });
      }
      if (str.toString().trim() === '') {
        this.emit("end", null);
        return true;
      }
      return this.saxParser.write(str.toString());
    };

    return Parser;

  })(events.EventEmitter);

  exports.parseString = function(str, a, b) {
    var cb, options, parser;
    if (b != null) {
      if (typeof b === 'function') {
        cb = b;
      }
      if (typeof a === 'object') {
        options = a;
      }
    } else {
      if (typeof a === 'function') {
        cb = a;
      }
      options = {};
    }
    parser = new exports.Parser(options);
    return parser.parseString(str, cb);
  };

}).call(this);


/***/ }),
/* 303 */
/***/ (function(module, exports, __webpack_require__) {

// wrapper for non-node envs
;(function (sax) {

sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }
sax.SAXParser = SAXParser
sax.SAXStream = SAXStream
sax.createStream = createStream

// When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.
// When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),
// since that's the earliest that a buffer overrun could occur.  This way, checks are
// as rare as required, but as often as necessary to ensure never crossing this bound.
// Furthermore, buffers are only tested at most once per write(), so passing a very
// large string into write() might have undesirable effects, but this is manageable by
// the caller, so it is assumed to be safe.  Thus, a call to write() may, in the extreme
// edge case, result in creating at most one complete copy of the string passed in.
// Set to Infinity to have unlimited buffers.
sax.MAX_BUFFER_LENGTH = 64 * 1024

var buffers = [
  "comment", "sgmlDecl", "textNode", "tagName", "doctype",
  "procInstName", "procInstBody", "entity", "attribName",
  "attribValue", "cdata", "script"
]

sax.EVENTS = // for discoverability.
  [ "text"
  , "processinginstruction"
  , "sgmldeclaration"
  , "doctype"
  , "comment"
  , "attribute"
  , "opentag"
  , "closetag"
  , "opencdata"
  , "cdata"
  , "closecdata"
  , "error"
  , "end"
  , "ready"
  , "script"
  , "opennamespace"
  , "closenamespace"
  ]

function SAXParser (strict, opt) {
  if (!(this instanceof SAXParser)) return new SAXParser(strict, opt)

  var parser = this
  clearBuffers(parser)
  parser.q = parser.c = ""
  parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH
  parser.opt = opt || {}
  parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags
  parser.looseCase = parser.opt.lowercase ? "toLowerCase" : "toUpperCase"
  parser.tags = []
  parser.closed = parser.closedRoot = parser.sawRoot = false
  parser.tag = parser.error = null
  parser.strict = !!strict
  parser.noscript = !!(strict || parser.opt.noscript)
  parser.state = S.BEGIN
  parser.ENTITIES = Object.create(sax.ENTITIES)
  parser.attribList = []

  // namespaces form a prototype chain.
  // it always points at the current tag,
  // which protos to its parent tag.
  if (parser.opt.xmlns) parser.ns = Object.create(rootNS)

  // mostly just for error reporting
  parser.trackPosition = parser.opt.position !== false
  if (parser.trackPosition) {
    parser.position = parser.line = parser.column = 0
  }
  emit(parser, "onready")
}

if (!Object.create) Object.create = function (o) {
  function f () { this.__proto__ = o }
  f.prototype = o
  return new f
}

if (!Object.getPrototypeOf) Object.getPrototypeOf = function (o) {
  return o.__proto__
}

if (!Object.keys) Object.keys = function (o) {
  var a = []
  for (var i in o) if (o.hasOwnProperty(i)) a.push(i)
  return a
}

function checkBufferLength (parser) {
  var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)
    , maxActual = 0
  for (var i = 0, l = buffers.length; i < l; i ++) {
    var len = parser[buffers[i]].length
    if (len > maxAllowed) {
      // Text/cdata nodes can get big, and since they're buffered,
      // we can get here under normal conditions.
      // Avoid issues by emitting the text node now,
      // so at least it won't get any bigger.
      switch (buffers[i]) {
        case "textNode":
          closeText(parser)
        break

        case "cdata":
          emitNode(parser, "oncdata", parser.cdata)
          parser.cdata = ""
        break

        case "script":
          emitNode(parser, "onscript", parser.script)
          parser.script = ""
        break

        default:
          error(parser, "Max buffer length exceeded: "+buffers[i])
      }
    }
    maxActual = Math.max(maxActual, len)
  }
  // schedule the next check for the earliest possible buffer overrun.
  parser.bufferCheckPosition = (sax.MAX_BUFFER_LENGTH - maxActual)
                             + parser.position
}

function clearBuffers (parser) {
  for (var i = 0, l = buffers.length; i < l; i ++) {
    parser[buffers[i]] = ""
  }
}

function flushBuffers (parser) {
  closeText(parser)
  if (parser.cdata !== "") {
    emitNode(parser, "oncdata", parser.cdata)
    parser.cdata = ""
  }
  if (parser.script !== "") {
    emitNode(parser, "onscript", parser.script)
    parser.script = ""
  }
}

SAXParser.prototype =
  { end: function () { end(this) }
  , write: write
  , resume: function () { this.error = null; return this }
  , close: function () { return this.write(null) }
  , flush: function () { flushBuffers(this) }
  }

try {
  var Stream = __webpack_require__(111).Stream
} catch (ex) {
  var Stream = function () {}
}


var streamWraps = sax.EVENTS.filter(function (ev) {
  return ev !== "error" && ev !== "end"
})

function createStream (strict, opt) {
  return new SAXStream(strict, opt)
}

function SAXStream (strict, opt) {
  if (!(this instanceof SAXStream)) return new SAXStream(strict, opt)

  Stream.apply(this)

  this._parser = new SAXParser(strict, opt)
  this.writable = true
  this.readable = true


  var me = this

  this._parser.onend = function () {
    me.emit("end")
  }

  this._parser.onerror = function (er) {
    me.emit("error", er)

    // if didn't throw, then means error was handled.
    // go ahead and clear error, so we can write again.
    me._parser.error = null
  }

  this._decoder = null;

  streamWraps.forEach(function (ev) {
    Object.defineProperty(me, "on" + ev, {
      get: function () { return me._parser["on" + ev] },
      set: function (h) {
        if (!h) {
          me.removeAllListeners(ev)
          return me._parser["on"+ev] = h
        }
        me.on(ev, h)
      },
      enumerable: true,
      configurable: false
    })
  })
}

SAXStream.prototype = Object.create(Stream.prototype,
  { constructor: { value: SAXStream } })

SAXStream.prototype.write = function (data) {
  if (typeof Buffer === 'function' &&
      typeof Buffer.isBuffer === 'function' &&
      Buffer.isBuffer(data)) {
    if (!this._decoder) {
      var SD = __webpack_require__(245).StringDecoder
      this._decoder = new SD('utf8')
    }
    data = this._decoder.write(data);
  }

  this._parser.write(data.toString())
  this.emit("data", data)
  return true
}

SAXStream.prototype.end = function (chunk) {
  if (chunk && chunk.length) this.write(chunk)
  this._parser.end()
  return true
}

SAXStream.prototype.on = function (ev, handler) {
  var me = this
  if (!me._parser["on"+ev] && streamWraps.indexOf(ev) !== -1) {
    me._parser["on"+ev] = function () {
      var args = arguments.length === 1 ? [arguments[0]]
               : Array.apply(null, arguments)
      args.splice(0, 0, ev)
      me.emit.apply(me, args)
    }
  }

  return Stream.prototype.on.call(me, ev, handler)
}



// character classes and tokens
var whitespace = "\r\n\t "
  // this really needs to be replaced with character classes.
  // XML allows all manner of ridiculous numbers and digits.
  , number = "0124356789"
  , letter = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  // (Letter | "_" | ":")
  , quote = "'\""
  , entity = number+letter+"#"
  , attribEnd = whitespace + ">"
  , CDATA = "[CDATA["
  , DOCTYPE = "DOCTYPE"
  , XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace"
  , XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/"
  , rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }

// turn all the string character sets into character class objects.
whitespace = charClass(whitespace)
number = charClass(number)
letter = charClass(letter)

// http://www.w3.org/TR/REC-xml/#NT-NameStartChar
// This implementation works on strings, a single character at a time
// as such, it cannot ever support astral-plane characters (10000-EFFFF)
// without a significant breaking change to either this  parser, or the
// JavaScript language.  Implementation of an emoji-capable xml parser
// is left as an exercise for the reader.
var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/

var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/

quote = charClass(quote)
entity = charClass(entity)
attribEnd = charClass(attribEnd)

function charClass (str) {
  return str.split("").reduce(function (s, c) {
    s[c] = true
    return s
  }, {})
}

function isRegExp (c) {
  return Object.prototype.toString.call(c) === '[object RegExp]'
}

function is (charclass, c) {
  return isRegExp(charclass) ? !!c.match(charclass) : charclass[c]
}

function not (charclass, c) {
  return !is(charclass, c)
}

var S = 0
sax.STATE =
{ BEGIN                     : S++
, TEXT                      : S++ // general stuff
, TEXT_ENTITY               : S++ // &amp and such.
, OPEN_WAKA                 : S++ // <
, SGML_DECL                 : S++ // <!BLARG
, SGML_DECL_QUOTED          : S++ // <!BLARG foo "bar
, DOCTYPE                   : S++ // <!DOCTYPE
, DOCTYPE_QUOTED            : S++ // <!DOCTYPE "//blah
, DOCTYPE_DTD               : S++ // <!DOCTYPE "//blah" [ ...
, DOCTYPE_DTD_QUOTED        : S++ // <!DOCTYPE "//blah" [ "foo
, COMMENT_STARTING          : S++ // <!-
, COMMENT                   : S++ // <!--
, COMMENT_ENDING            : S++ // <!-- blah -
, COMMENT_ENDED             : S++ // <!-- blah --
, CDATA                     : S++ // <![CDATA[ something
, CDATA_ENDING              : S++ // ]
, CDATA_ENDING_2            : S++ // ]]
, PROC_INST                 : S++ // <?hi
, PROC_INST_BODY            : S++ // <?hi there
, PROC_INST_ENDING          : S++ // <?hi "there" ?
, OPEN_TAG                  : S++ // <strong
, OPEN_TAG_SLASH            : S++ // <strong /
, ATTRIB                    : S++ // <a
, ATTRIB_NAME               : S++ // <a foo
, ATTRIB_NAME_SAW_WHITE     : S++ // <a foo _
, ATTRIB_VALUE              : S++ // <a foo=
, ATTRIB_VALUE_QUOTED       : S++ // <a foo="bar
, ATTRIB_VALUE_CLOSED       : S++ // <a foo="bar"
, ATTRIB_VALUE_UNQUOTED     : S++ // <a foo=bar
, ATTRIB_VALUE_ENTITY_Q     : S++ // <foo bar="&quot;"
, ATTRIB_VALUE_ENTITY_U     : S++ // <foo bar=&quot;
, CLOSE_TAG                 : S++ // </a
, CLOSE_TAG_SAW_WHITE       : S++ // </a   >
, SCRIPT                    : S++ // <script> ...
, SCRIPT_ENDING             : S++ // <script> ... <
}

sax.ENTITIES =
{ "amp" : "&"
, "gt" : ">"
, "lt" : "<"
, "quot" : "\""
, "apos" : "'"
, "AElig" : 198
, "Aacute" : 193
, "Acirc" : 194
, "Agrave" : 192
, "Aring" : 197
, "Atilde" : 195
, "Auml" : 196
, "Ccedil" : 199
, "ETH" : 208
, "Eacute" : 201
, "Ecirc" : 202
, "Egrave" : 200
, "Euml" : 203
, "Iacute" : 205
, "Icirc" : 206
, "Igrave" : 204
, "Iuml" : 207
, "Ntilde" : 209
, "Oacute" : 211
, "Ocirc" : 212
, "Ograve" : 210
, "Oslash" : 216
, "Otilde" : 213
, "Ouml" : 214
, "THORN" : 222
, "Uacute" : 218
, "Ucirc" : 219
, "Ugrave" : 217
, "Uuml" : 220
, "Yacute" : 221
, "aacute" : 225
, "acirc" : 226
, "aelig" : 230
, "agrave" : 224
, "aring" : 229
, "atilde" : 227
, "auml" : 228
, "ccedil" : 231
, "eacute" : 233
, "ecirc" : 234
, "egrave" : 232
, "eth" : 240
, "euml" : 235
, "iacute" : 237
, "icirc" : 238
, "igrave" : 236
, "iuml" : 239
, "ntilde" : 241
, "oacute" : 243
, "ocirc" : 244
, "ograve" : 242
, "oslash" : 248
, "otilde" : 245
, "ouml" : 246
, "szlig" : 223
, "thorn" : 254
, "uacute" : 250
, "ucirc" : 251
, "ugrave" : 249
, "uuml" : 252
, "yacute" : 253
, "yuml" : 255
, "copy" : 169
, "reg" : 174
, "nbsp" : 160
, "iexcl" : 161
, "cent" : 162
, "pound" : 163
, "curren" : 164
, "yen" : 165
, "brvbar" : 166
, "sect" : 167
, "uml" : 168
, "ordf" : 170
, "laquo" : 171
, "not" : 172
, "shy" : 173
, "macr" : 175
, "deg" : 176
, "plusmn" : 177
, "sup1" : 185
, "sup2" : 178
, "sup3" : 179
, "acute" : 180
, "micro" : 181
, "para" : 182
, "middot" : 183
, "cedil" : 184
, "ordm" : 186
, "raquo" : 187
, "frac14" : 188
, "frac12" : 189
, "frac34" : 190
, "iquest" : 191
, "times" : 215
, "divide" : 247
, "OElig" : 338
, "oelig" : 339
, "Scaron" : 352
, "scaron" : 353
, "Yuml" : 376
, "fnof" : 402
, "circ" : 710
, "tilde" : 732
, "Alpha" : 913
, "Beta" : 914
, "Gamma" : 915
, "Delta" : 916
, "Epsilon" : 917
, "Zeta" : 918
, "Eta" : 919
, "Theta" : 920
, "Iota" : 921
, "Kappa" : 922
, "Lambda" : 923
, "Mu" : 924
, "Nu" : 925
, "Xi" : 926
, "Omicron" : 927
, "Pi" : 928
, "Rho" : 929
, "Sigma" : 931
, "Tau" : 932
, "Upsilon" : 933
, "Phi" : 934
, "Chi" : 935
, "Psi" : 936
, "Omega" : 937
, "alpha" : 945
, "beta" : 946
, "gamma" : 947
, "delta" : 948
, "epsilon" : 949
, "zeta" : 950
, "eta" : 951
, "theta" : 952
, "iota" : 953
, "kappa" : 954
, "lambda" : 955
, "mu" : 956
, "nu" : 957
, "xi" : 958
, "omicron" : 959
, "pi" : 960
, "rho" : 961
, "sigmaf" : 962
, "sigma" : 963
, "tau" : 964
, "upsilon" : 965
, "phi" : 966
, "chi" : 967
, "psi" : 968
, "omega" : 969
, "thetasym" : 977
, "upsih" : 978
, "piv" : 982
, "ensp" : 8194
, "emsp" : 8195
, "thinsp" : 8201
, "zwnj" : 8204
, "zwj" : 8205
, "lrm" : 8206
, "rlm" : 8207
, "ndash" : 8211
, "mdash" : 8212
, "lsquo" : 8216
, "rsquo" : 8217
, "sbquo" : 8218
, "ldquo" : 8220
, "rdquo" : 8221
, "bdquo" : 8222
, "dagger" : 8224
, "Dagger" : 8225
, "bull" : 8226
, "hellip" : 8230
, "permil" : 8240
, "prime" : 8242
, "Prime" : 8243
, "lsaquo" : 8249
, "rsaquo" : 8250
, "oline" : 8254
, "frasl" : 8260
, "euro" : 8364
, "image" : 8465
, "weierp" : 8472
, "real" : 8476
, "trade" : 8482
, "alefsym" : 8501
, "larr" : 8592
, "uarr" : 8593
, "rarr" : 8594
, "darr" : 8595
, "harr" : 8596
, "crarr" : 8629
, "lArr" : 8656
, "uArr" : 8657
, "rArr" : 8658
, "dArr" : 8659
, "hArr" : 8660
, "forall" : 8704
, "part" : 8706
, "exist" : 8707
, "empty" : 8709
, "nabla" : 8711
, "isin" : 8712
, "notin" : 8713
, "ni" : 8715
, "prod" : 8719
, "sum" : 8721
, "minus" : 8722
, "lowast" : 8727
, "radic" : 8730
, "prop" : 8733
, "infin" : 8734
, "ang" : 8736
, "and" : 8743
, "or" : 8744
, "cap" : 8745
, "cup" : 8746
, "int" : 8747
, "there4" : 8756
, "sim" : 8764
, "cong" : 8773
, "asymp" : 8776
, "ne" : 8800
, "equiv" : 8801
, "le" : 8804
, "ge" : 8805
, "sub" : 8834
, "sup" : 8835
, "nsub" : 8836
, "sube" : 8838
, "supe" : 8839
, "oplus" : 8853
, "otimes" : 8855
, "perp" : 8869
, "sdot" : 8901
, "lceil" : 8968
, "rceil" : 8969
, "lfloor" : 8970
, "rfloor" : 8971
, "lang" : 9001
, "rang" : 9002
, "loz" : 9674
, "spades" : 9824
, "clubs" : 9827
, "hearts" : 9829
, "diams" : 9830
}

Object.keys(sax.ENTITIES).forEach(function (key) {
    var e = sax.ENTITIES[key]
    var s = typeof e === 'number' ? String.fromCharCode(e) : e
    sax.ENTITIES[key] = s
})

for (var S in sax.STATE) sax.STATE[sax.STATE[S]] = S

// shorthand
S = sax.STATE

function emit (parser, event, data) {
  parser[event] && parser[event](data)
}

function emitNode (parser, nodeType, data) {
  if (parser.textNode) closeText(parser)
  emit(parser, nodeType, data)
}

function closeText (parser) {
  parser.textNode = textopts(parser.opt, parser.textNode)
  if (parser.textNode) emit(parser, "ontext", parser.textNode)
  parser.textNode = ""
}

function textopts (opt, text) {
  if (opt.trim) text = text.trim()
  if (opt.normalize) text = text.replace(/\s+/g, " ")
  return text
}

function error (parser, er) {
  closeText(parser)
  if (parser.trackPosition) {
    er += "\nLine: "+parser.line+
          "\nColumn: "+parser.column+
          "\nChar: "+parser.c
  }
  er = new Error(er)
  parser.error = er
  emit(parser, "onerror", er)
  return parser
}

function end (parser) {
  if (!parser.closedRoot) strictFail(parser, "Unclosed root tag")
  if ((parser.state !== S.BEGIN) && (parser.state !== S.TEXT)) error(parser, "Unexpected end")
  closeText(parser)
  parser.c = ""
  parser.closed = true
  emit(parser, "onend")
  SAXParser.call(parser, parser.strict, parser.opt)
  return parser
}

function strictFail (parser, message) {
  if (typeof parser !== 'object' || !(parser instanceof SAXParser))
    throw new Error('bad call to strictFail');
  if (parser.strict) error(parser, message)
}

function newTag (parser) {
  if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()
  var parent = parser.tags[parser.tags.length - 1] || parser
    , tag = parser.tag = { name : parser.tagName, attributes : {} }

  // will be overridden if tag contails an xmlns="foo" or xmlns:foo="bar"
  if (parser.opt.xmlns) tag.ns = parent.ns
  parser.attribList.length = 0
}

function qname (name, attribute) {
  var i = name.indexOf(":")
    , qualName = i < 0 ? [ "", name ] : name.split(":")
    , prefix = qualName[0]
    , local = qualName[1]

  // <x "xmlns"="http://foo">
  if (attribute && name === "xmlns") {
    prefix = "xmlns"
    local = ""
  }

  return { prefix: prefix, local: local }
}

function attrib (parser) {
  if (!parser.strict) parser.attribName = parser.attribName[parser.looseCase]()

  if (parser.attribList.indexOf(parser.attribName) !== -1 ||
      parser.tag.attributes.hasOwnProperty(parser.attribName)) {
    return parser.attribName = parser.attribValue = ""
  }

  if (parser.opt.xmlns) {
    var qn = qname(parser.attribName, true)
      , prefix = qn.prefix
      , local = qn.local

    if (prefix === "xmlns") {
      // namespace binding attribute; push the binding into scope
      if (local === "xml" && parser.attribValue !== XML_NAMESPACE) {
        strictFail( parser
                  , "xml: prefix must be bound to " + XML_NAMESPACE + "\n"
                  + "Actual: " + parser.attribValue )
      } else if (local === "xmlns" && parser.attribValue !== XMLNS_NAMESPACE) {
        strictFail( parser
                  , "xmlns: prefix must be bound to " + XMLNS_NAMESPACE + "\n"
                  + "Actual: " + parser.attribValue )
      } else {
        var tag = parser.tag
          , parent = parser.tags[parser.tags.length - 1] || parser
        if (tag.ns === parent.ns) {
          tag.ns = Object.create(parent.ns)
        }
        tag.ns[local] = parser.attribValue
      }
    }

    // defer onattribute events until all attributes have been seen
    // so any new bindings can take effect; preserve attribute order
    // so deferred events can be emitted in document order
    parser.attribList.push([parser.attribName, parser.attribValue])
  } else {
    // in non-xmlns mode, we can emit the event right away
    parser.tag.attributes[parser.attribName] = parser.attribValue
    emitNode( parser
            , "onattribute"
            , { name: parser.attribName
              , value: parser.attribValue } )
  }

  parser.attribName = parser.attribValue = ""
}

function openTag (parser, selfClosing) {
  if (parser.opt.xmlns) {
    // emit namespace binding events
    var tag = parser.tag

    // add namespace info to tag
    var qn = qname(parser.tagName)
    tag.prefix = qn.prefix
    tag.local = qn.local
    tag.uri = tag.ns[qn.prefix] || ""

    if (tag.prefix && !tag.uri) {
      strictFail(parser, "Unbound namespace prefix: "
                       + JSON.stringify(parser.tagName))
      tag.uri = qn.prefix
    }

    var parent = parser.tags[parser.tags.length - 1] || parser
    if (tag.ns && parent.ns !== tag.ns) {
      Object.keys(tag.ns).forEach(function (p) {
        emitNode( parser
                , "onopennamespace"
                , { prefix: p , uri: tag.ns[p] } )
      })
    }

    // handle deferred onattribute events
    // Note: do not apply default ns to attributes:
    //   http://www.w3.org/TR/REC-xml-names/#defaulting
    for (var i = 0, l = parser.attribList.length; i < l; i ++) {
      var nv = parser.attribList[i]
      var name = nv[0]
        , value = nv[1]
        , qualName = qname(name, true)
        , prefix = qualName.prefix
        , local = qualName.local
        , uri = prefix == "" ? "" : (tag.ns[prefix] || "")
        , a = { name: name
              , value: value
              , prefix: prefix
              , local: local
              , uri: uri
              }

      // if there's any attributes with an undefined namespace,
      // then fail on them now.
      if (prefix && prefix != "xmlns" && !uri) {
        strictFail(parser, "Unbound namespace prefix: "
                         + JSON.stringify(prefix))
        a.uri = prefix
      }
      parser.tag.attributes[name] = a
      emitNode(parser, "onattribute", a)
    }
    parser.attribList.length = 0
  }

  parser.tag.isSelfClosing = !!selfClosing

  // process the tag
  parser.sawRoot = true
  parser.tags.push(parser.tag)
  emitNode(parser, "onopentag", parser.tag)
  if (!selfClosing) {
    // special case for <script> in non-strict mode.
    if (!parser.noscript && parser.tagName.toLowerCase() === "script") {
      parser.state = S.SCRIPT
    } else {
      parser.state = S.TEXT
    }
    parser.tag = null
    parser.tagName = ""
  }
  parser.attribName = parser.attribValue = ""
  parser.attribList.length = 0
}

function closeTag (parser) {
  if (!parser.tagName) {
    strictFail(parser, "Weird empty close tag.")
    parser.textNode += "</>"
    parser.state = S.TEXT
    return
  }

  if (parser.script) {
    if (parser.tagName !== "script") {
      parser.script += "</" + parser.tagName + ">"
      parser.tagName = ""
      parser.state = S.SCRIPT
      return
    }
    emitNode(parser, "onscript", parser.script)
    parser.script = ""
  }

  // first make sure that the closing tag actually exists.
  // <a><b></c></b></a> will close everything, otherwise.
  var t = parser.tags.length
  var tagName = parser.tagName
  if (!parser.strict) tagName = tagName[parser.looseCase]()
  var closeTo = tagName
  while (t --) {
    var close = parser.tags[t]
    if (close.name !== closeTo) {
      // fail the first time in strict mode
      strictFail(parser, "Unexpected close tag")
    } else break
  }

  // didn't find it.  we already failed for strict, so just abort.
  if (t < 0) {
    strictFail(parser, "Unmatched closing tag: "+parser.tagName)
    parser.textNode += "</" + parser.tagName + ">"
    parser.state = S.TEXT
    return
  }
  parser.tagName = tagName
  var s = parser.tags.length
  while (s --> t) {
    var tag = parser.tag = parser.tags.pop()
    parser.tagName = parser.tag.name
    emitNode(parser, "onclosetag", parser.tagName)

    var x = {}
    for (var i in tag.ns) x[i] = tag.ns[i]

    var parent = parser.tags[parser.tags.length - 1] || parser
    if (parser.opt.xmlns && tag.ns !== parent.ns) {
      // remove namespace bindings introduced by tag
      Object.keys(tag.ns).forEach(function (p) {
        var n = tag.ns[p]
        emitNode(parser, "onclosenamespace", { prefix: p, uri: n })
      })
    }
  }
  if (t === 0) parser.closedRoot = true
  parser.tagName = parser.attribValue = parser.attribName = ""
  parser.attribList.length = 0
  parser.state = S.TEXT
}

function parseEntity (parser) {
  var entity = parser.entity
    , entityLC = entity.toLowerCase()
    , num
    , numStr = ""
  if (parser.ENTITIES[entity])
    return parser.ENTITIES[entity]
  if (parser.ENTITIES[entityLC])
    return parser.ENTITIES[entityLC]
  entity = entityLC
  if (entity.charAt(0) === "#") {
    if (entity.charAt(1) === "x") {
      entity = entity.slice(2)
      num = parseInt(entity, 16)
      numStr = num.toString(16)
    } else {
      entity = entity.slice(1)
      num = parseInt(entity, 10)
      numStr = num.toString(10)
    }
  }
  entity = entity.replace(/^0+/, "")
  if (numStr.toLowerCase() !== entity) {
    strictFail(parser, "Invalid character entity")
    return "&"+parser.entity + ";"
  }
  return String.fromCharCode(num)
}

function write (chunk) {
  var parser = this
  if (this.error) throw this.error
  if (parser.closed) return error(parser,
    "Cannot write after close. Assign an onready handler.")
  if (chunk === null) return end(parser)
  var i = 0, c = ""
  while (parser.c = c = chunk.charAt(i++)) {
    if (parser.trackPosition) {
      parser.position ++
      if (c === "\n") {
        parser.line ++
        parser.column = 0
      } else parser.column ++
    }
    switch (parser.state) {

      case S.BEGIN:
        if (c === "<") {
          parser.state = S.OPEN_WAKA
          parser.startTagPosition = parser.position
        } else if (not(whitespace,c)) {
          // have to process this as a text node.
          // weird, but happens.
          strictFail(parser, "Non-whitespace before first tag.")
          parser.textNode = c
          parser.state = S.TEXT
        }
      continue

      case S.TEXT:
        if (parser.sawRoot && !parser.closedRoot) {
          var starti = i-1
          while (c && c!=="<" && c!=="&") {
            c = chunk.charAt(i++)
            if (c && parser.trackPosition) {
              parser.position ++
              if (c === "\n") {
                parser.line ++
                parser.column = 0
              } else parser.column ++
            }
          }
          parser.textNode += chunk.substring(starti, i-1)
        }
        if (c === "<") {
          parser.state = S.OPEN_WAKA
          parser.startTagPosition = parser.position
        } else {
          if (not(whitespace, c) && (!parser.sawRoot || parser.closedRoot))
            strictFail(parser, "Text data outside of root node.")
          if (c === "&") parser.state = S.TEXT_ENTITY
          else parser.textNode += c
        }
      continue

      case S.SCRIPT:
        // only non-strict
        if (c === "<") {
          parser.state = S.SCRIPT_ENDING
        } else parser.script += c
      continue

      case S.SCRIPT_ENDING:
        if (c === "/") {
          parser.state = S.CLOSE_TAG
        } else {
          parser.script += "<" + c
          parser.state = S.SCRIPT
        }
      continue

      case S.OPEN_WAKA:
        // either a /, ?, !, or text is coming next.
        if (c === "!") {
          parser.state = S.SGML_DECL
          parser.sgmlDecl = ""
        } else if (is(whitespace, c)) {
          // wait for it...
        } else if (is(nameStart,c)) {
          parser.state = S.OPEN_TAG
          parser.tagName = c
        } else if (c === "/") {
          parser.state = S.CLOSE_TAG
          parser.tagName = ""
        } else if (c === "?") {
          parser.state = S.PROC_INST
          parser.procInstName = parser.procInstBody = ""
        } else {
          strictFail(parser, "Unencoded <")
          // if there was some whitespace, then add that in.
          if (parser.startTagPosition + 1 < parser.position) {
            var pad = parser.position - parser.startTagPosition
            c = new Array(pad).join(" ") + c
          }
          parser.textNode += "<" + c
          parser.state = S.TEXT
        }
      continue

      case S.SGML_DECL:
        if ((parser.sgmlDecl+c).toUpperCase() === CDATA) {
          emitNode(parser, "onopencdata")
          parser.state = S.CDATA
          parser.sgmlDecl = ""
          parser.cdata = ""
        } else if (parser.sgmlDecl+c === "--") {
          parser.state = S.COMMENT
          parser.comment = ""
          parser.sgmlDecl = ""
        } else if ((parser.sgmlDecl+c).toUpperCase() === DOCTYPE) {
          parser.state = S.DOCTYPE
          if (parser.doctype || parser.sawRoot) strictFail(parser,
            "Inappropriately located doctype declaration")
          parser.doctype = ""
          parser.sgmlDecl = ""
        } else if (c === ">") {
          emitNode(parser, "onsgmldeclaration", parser.sgmlDecl)
          parser.sgmlDecl = ""
          parser.state = S.TEXT
        } else if (is(quote, c)) {
          parser.state = S.SGML_DECL_QUOTED
          parser.sgmlDecl += c
        } else parser.sgmlDecl += c
      continue

      case S.SGML_DECL_QUOTED:
        if (c === parser.q) {
          parser.state = S.SGML_DECL
          parser.q = ""
        }
        parser.sgmlDecl += c
      continue

      case S.DOCTYPE:
        if (c === ">") {
          parser.state = S.TEXT
          emitNode(parser, "ondoctype", parser.doctype)
          parser.doctype = true // just remember that we saw it.
        } else {
          parser.doctype += c
          if (c === "[") parser.state = S.DOCTYPE_DTD
          else if (is(quote, c)) {
            parser.state = S.DOCTYPE_QUOTED
            parser.q = c
          }
        }
      continue

      case S.DOCTYPE_QUOTED:
        parser.doctype += c
        if (c === parser.q) {
          parser.q = ""
          parser.state = S.DOCTYPE
        }
      continue

      case S.DOCTYPE_DTD:
        parser.doctype += c
        if (c === "]") parser.state = S.DOCTYPE
        else if (is(quote,c)) {
          parser.state = S.DOCTYPE_DTD_QUOTED
          parser.q = c
        }
      continue

      case S.DOCTYPE_DTD_QUOTED:
        parser.doctype += c
        if (c === parser.q) {
          parser.state = S.DOCTYPE_DTD
          parser.q = ""
        }
      continue

      case S.COMMENT:
        if (c === "-") parser.state = S.COMMENT_ENDING
        else parser.comment += c
      continue

      case S.COMMENT_ENDING:
        if (c === "-") {
          parser.state = S.COMMENT_ENDED
          parser.comment = textopts(parser.opt, parser.comment)
          if (parser.comment) emitNode(parser, "oncomment", parser.comment)
          parser.comment = ""
        } else {
          parser.comment += "-" + c
          parser.state = S.COMMENT
        }
      continue

      case S.COMMENT_ENDED:
        if (c !== ">") {
          strictFail(parser, "Malformed comment")
          // allow <!-- blah -- bloo --> in non-strict mode,
          // which is a comment of " blah -- bloo "
          parser.comment += "--" + c
          parser.state = S.COMMENT
        } else parser.state = S.TEXT
      continue

      case S.CDATA:
        if (c === "]") parser.state = S.CDATA_ENDING
        else parser.cdata += c
      continue

      case S.CDATA_ENDING:
        if (c === "]") parser.state = S.CDATA_ENDING_2
        else {
          parser.cdata += "]" + c
          parser.state = S.CDATA
        }
      continue

      case S.CDATA_ENDING_2:
        if (c === ">") {
          if (parser.cdata) emitNode(parser, "oncdata", parser.cdata)
          emitNode(parser, "onclosecdata")
          parser.cdata = ""
          parser.state = S.TEXT
        } else if (c === "]") {
          parser.cdata += "]"
        } else {
          parser.cdata += "]]" + c
          parser.state = S.CDATA
        }
      continue

      case S.PROC_INST:
        if (c === "?") parser.state = S.PROC_INST_ENDING
        else if (is(whitespace, c)) parser.state = S.PROC_INST_BODY
        else parser.procInstName += c
      continue

      case S.PROC_INST_BODY:
        if (!parser.procInstBody && is(whitespace, c)) continue
        else if (c === "?") parser.state = S.PROC_INST_ENDING
        else parser.procInstBody += c
      continue

      case S.PROC_INST_ENDING:
        if (c === ">") {
          emitNode(parser, "onprocessinginstruction", {
            name : parser.procInstName,
            body : parser.procInstBody
          })
          parser.procInstName = parser.procInstBody = ""
          parser.state = S.TEXT
        } else {
          parser.procInstBody += "?" + c
          parser.state = S.PROC_INST_BODY
        }
      continue

      case S.OPEN_TAG:
        if (is(nameBody, c)) parser.tagName += c
        else {
          newTag(parser)
          if (c === ">") openTag(parser)
          else if (c === "/") parser.state = S.OPEN_TAG_SLASH
          else {
            if (not(whitespace, c)) strictFail(
              parser, "Invalid character in tag name")
            parser.state = S.ATTRIB
          }
        }
      continue

      case S.OPEN_TAG_SLASH:
        if (c === ">") {
          openTag(parser, true)
          closeTag(parser)
        } else {
          strictFail(parser, "Forward-slash in opening tag not followed by >")
          parser.state = S.ATTRIB
        }
      continue

      case S.ATTRIB:
        // haven't read the attribute name yet.
        if (is(whitespace, c)) continue
        else if (c === ">") openTag(parser)
        else if (c === "/") parser.state = S.OPEN_TAG_SLASH
        else if (is(nameStart, c)) {
          parser.attribName = c
          parser.attribValue = ""
          parser.state = S.ATTRIB_NAME
        } else strictFail(parser, "Invalid attribute name")
      continue

      case S.ATTRIB_NAME:
        if (c === "=") parser.state = S.ATTRIB_VALUE
        else if (c === ">") {
          strictFail(parser, "Attribute without value")
          parser.attribValue = parser.attribName
          attrib(parser)
          openTag(parser)
        }
        else if (is(whitespace, c)) parser.state = S.ATTRIB_NAME_SAW_WHITE
        else if (is(nameBody, c)) parser.attribName += c
        else strictFail(parser, "Invalid attribute name")
      continue

      case S.ATTRIB_NAME_SAW_WHITE:
        if (c === "=") parser.state = S.ATTRIB_VALUE
        else if (is(whitespace, c)) continue
        else {
          strictFail(parser, "Attribute without value")
          parser.tag.attributes[parser.attribName] = ""
          parser.attribValue = ""
          emitNode(parser, "onattribute",
                   { name : parser.attribName, value : "" })
          parser.attribName = ""
          if (c === ">") openTag(parser)
          else if (is(nameStart, c)) {
            parser.attribName = c
            parser.state = S.ATTRIB_NAME
          } else {
            strictFail(parser, "Invalid attribute name")
            parser.state = S.ATTRIB
          }
        }
      continue

      case S.ATTRIB_VALUE:
        if (is(whitespace, c)) continue
        else if (is(quote, c)) {
          parser.q = c
          parser.state = S.ATTRIB_VALUE_QUOTED
        } else {
          strictFail(parser, "Unquoted attribute value")
          parser.state = S.ATTRIB_VALUE_UNQUOTED
          parser.attribValue = c
        }
      continue

      case S.ATTRIB_VALUE_QUOTED:
        if (c !== parser.q) {
          if (c === "&") parser.state = S.ATTRIB_VALUE_ENTITY_Q
          else parser.attribValue += c
          continue
        }
        attrib(parser)
        parser.q = ""
        parser.state = S.ATTRIB_VALUE_CLOSED
      continue

      case S.ATTRIB_VALUE_CLOSED:
        if (is(whitespace, c)) {
          parser.state = S.ATTRIB
        } else if (c === ">") openTag(parser)
        else if (c === "/") parser.state = S.OPEN_TAG_SLASH
        else if (is(nameStart, c)) {
          strictFail(parser, "No whitespace between attributes")
          parser.attribName = c
          parser.attribValue = ""
          parser.state = S.ATTRIB_NAME
        } else strictFail(parser, "Invalid attribute name")
      continue

      case S.ATTRIB_VALUE_UNQUOTED:
        if (not(attribEnd,c)) {
          if (c === "&") parser.state = S.ATTRIB_VALUE_ENTITY_U
          else parser.attribValue += c
          continue
        }
        attrib(parser)
        if (c === ">") openTag(parser)
        else parser.state = S.ATTRIB
      continue

      case S.CLOSE_TAG:
        if (!parser.tagName) {
          if (is(whitespace, c)) continue
          else if (not(nameStart, c)) {
            if (parser.script) {
              parser.script += "</" + c
              parser.state = S.SCRIPT
            } else {
              strictFail(parser, "Invalid tagname in closing tag.")
            }
          } else parser.tagName = c
        }
        else if (c === ">") closeTag(parser)
        else if (is(nameBody, c)) parser.tagName += c
        else if (parser.script) {
          parser.script += "</" + parser.tagName
          parser.tagName = ""
          parser.state = S.SCRIPT
        } else {
          if (not(whitespace, c)) strictFail(parser,
            "Invalid tagname in closing tag")
          parser.state = S.CLOSE_TAG_SAW_WHITE
        }
      continue

      case S.CLOSE_TAG_SAW_WHITE:
        if (is(whitespace, c)) continue
        if (c === ">") closeTag(parser)
        else strictFail(parser, "Invalid characters in closing tag")
      continue

      case S.TEXT_ENTITY:
      case S.ATTRIB_VALUE_ENTITY_Q:
      case S.ATTRIB_VALUE_ENTITY_U:
        switch(parser.state) {
          case S.TEXT_ENTITY:
            var returnState = S.TEXT, buffer = "textNode"
          break

          case S.ATTRIB_VALUE_ENTITY_Q:
            var returnState = S.ATTRIB_VALUE_QUOTED, buffer = "attribValue"
          break

          case S.ATTRIB_VALUE_ENTITY_U:
            var returnState = S.ATTRIB_VALUE_UNQUOTED, buffer = "attribValue"
          break
        }
        if (c === ";") {
          parser[buffer] += parseEntity(parser)
          parser.entity = ""
          parser.state = returnState
        }
        else if (is(entity, c)) parser.entity += c
        else {
          strictFail(parser, "Invalid character entity")
          parser[buffer] += "&" + parser.entity + c
          parser.entity = ""
          parser.state = returnState
        }
      continue

      default:
        throw new Error(parser, "Unknown state: " + parser.state)
    }
  } // while
  // cdata blocks can get very big under normal conditions. emit and move on.
  // if (parser.state === S.CDATA && parser.cdata) {
  //   emitNode(parser, "oncdata", parser.cdata)
  //   parser.cdata = ""
  // }
  if (parser.position >= parser.bufferCheckPosition) checkBufferLength(parser)
  return parser
}

})( false ? undefined : exports)


/***/ }),
/* 304 */
/***/ (function(module, exports) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

/**
* Creates a new Logger object
* @class
* The Logger class is used to write log information.
* 
* @constructor
*
* @param {string} [level]           The log level. Refer to Logger.LogLevels.
* @param {object} [loggerFunction]  The function to write log information.
*/
function Logger(level, loggerFunction) {
  /**
   * The log level. Refer to the Logger.LogLevels for available log levels. 
   * @name  Logger#level
   * @type  {string}
   * @see Logger.LogLevels
   */
  this.level = level;
  
  this.loggerFunction = loggerFunction;

  if (!this.loggerFunction) {
    this.loggerFunction = this.defaultLoggerFunction;
  }
}

/**
* The available log levels.
*
* @const
* @enum {string}
*/
Logger.LogLevels = {
  /**
  * System is unusable.
  */
  EMERGENCY: 'emergency',

  /**
  * Action must be taken immediately.
  */
  ALERT : 'alert',

  /**
  * Critical condition.
  */
  CRITICAL : 'critical',

  /**
  * Error condition.
  */
  ERROR : 'error',

  /**
  * Warning condition.
  */
  WARNING : 'warning',

  /**
  * Normal but significant condition.
  */
  NOTICE : 'notice',

  /**
  * Purely informational message.
  */
  INFO : 'info',

  /**
  * Application debug messages.
  */
  DEBUG : 'debug'
};

Logger.logPriority = [
  Logger.LogLevels.EMERGENCY,
  Logger.LogLevels.ALERT,
  Logger.LogLevels.CRITICAL,
  Logger.LogLevels.ERROR,
  Logger.LogLevels.WARNING,
  Logger.LogLevels.NOTICE,
  Logger.LogLevels.INFO,
  Logger.LogLevels.DEBUG
];

Logger.prototype.log = function (level, msg) {
  this.loggerFunction(level, msg);
};

Logger.prototype.emergency = function(msg) {
  this.log(Logger.LogLevels.EMERGENCY, msg);
};

Logger.prototype.critical = function(msg) {
  this.log(Logger.LogLevels.CRITICAL, msg);
};

Logger.prototype.alert = function(msg) {
  this.log(Logger.LogLevels.ALERT, msg);
};

Logger.prototype.error = function(msg) {
  this.log(Logger.LogLevels.ERROR, msg);
};

Logger.prototype.warn = function(msg) {
  this.log(Logger.LogLevels.WARNING, msg);
};

Logger.prototype.notice = function(msg) {
  this.log(Logger.LogLevels.NOTICE, msg);
};

Logger.prototype.info = function(msg) {
  this.log(Logger.LogLevels.INFO, msg);
};

Logger.prototype.debug = function(msg) {
  this.log(Logger.LogLevels.DEBUG, msg);
};

Logger.prototype.defaultLoggerFunction = function(logLevel , msg) {
  var currentLevelIndex = Logger.logPriority.indexOf(this.level);
  var logLevelIndex = Logger.logPriority.indexOf(logLevel);
  var time = new Date();
  var timeStamp = time.toISOString();
  if (logLevelIndex <= currentLevelIndex) {
    console.log('[' + timeStamp + ']' + this.level + ' : ' + msg);
  }
};

module.exports = Logger;


/***/ }),
/* 305 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var azureutil = __webpack_require__(273);
var SR = __webpack_require__(278);
var Constants = __webpack_require__(275);
var errors = __webpack_require__(306);
var ArgumentError = errors.ArgumentError;
var HeaderConstants = Constants.HeaderConstants;
var HttpConstants = Constants.HttpConstants;
var HttpConstants = Constants.HttpConstants;
var HttpVerbs = HttpConstants.HttpVerbs;

function encodeSpecialCharacters(path) {
  return path.replace(/'/g, '%27');
}

/**
* Creates a new WebResource object.
*
* This class provides an abstraction over a REST call by being library / implementation agnostic and wrapping the necessary
* properties to initiate a request.
*
* @constructor
*/
function WebResource() {
  this.rawResponse = false;
  this.queryString = {};
}

/**
* Creates a new put request web resource.
*
* @param {string} path The path for the put operation.
* @return {WebResource} A new webresource with a put operation for the given path.
*/
WebResource.put = function (path) {
  var webResource = new WebResource();
  webResource.path = path ? encodeSpecialCharacters(path) : null;
  webResource.method = HttpConstants.HttpVerbs.PUT;
  return webResource;
};

/**
* Creates a new get request web resource.
*
* @param {string} path The path for the get operation.
* @return {WebResource} A new webresource with a get operation for the given path.
*/
WebResource.get = function (path) {
  var webResource = new WebResource();
  webResource.path = path ? encodeSpecialCharacters(path) : null;
  webResource.method = HttpConstants.HttpVerbs.GET;
  return webResource;
};

/**
* Creates a new head request web resource.
*
* @param {string} path The path for the head operation.
* @return {WebResource} A new webresource with a head operation for the given path.
*/
WebResource.head = function (path) {
  var webResource = new WebResource();
  webResource.path = path ? encodeSpecialCharacters(path) : null;
  webResource.method = HttpConstants.HttpVerbs.HEAD;
  return webResource;
};

/**
* Creates a new delete request web resource.
*
* @param {string} path The path for the delete operation.
* @return {WebResource} A new webresource with a delete operation for the given path.
*/
WebResource.del = function (path) {
  var webResource = new WebResource();
  webResource.path = path ? encodeSpecialCharacters(path) : null;
  webResource.method = HttpConstants.HttpVerbs.DELETE;
  return webResource;
};

/**
* Creates a new post request web resource.
*
* @param {string} path The path for the post operation.
* @return {WebResource} A new webresource with a post operation for the given path.
*/
WebResource.post = function (path) {
  var webResource = new WebResource();
  webResource.path = path ? encodeSpecialCharacters(path) : null;
  webResource.method = HttpConstants.HttpVerbs.POST;
  return webResource;
};

/**
* Creates a new merge request web resource.
*
* @param {string} path The path for the merge operation.
* @return {WebResource} A new webresource with a merge operation for the given path.
*/
WebResource.merge = function (path) {
  var webResource = new WebResource();
  webResource.path = path ? encodeSpecialCharacters(path) : null;
  webResource.method = HttpConstants.HttpVerbs.MERGE;
  return webResource;
};

/**
* Specifies a custom property in the web resource.
*
* @param {string} name  The property name.
* @param {string} value The property value.
* @return {WebResource} The webresource.
*/
WebResource.prototype.withProperty = function (name, value) {
  if (!this.properties) {
    this.properties = {};
  }

  this.properties[name] = value;

  return this;
};

/**
* Specifies if the response should be parsed or not.
*
* @param {bool} rawResponse true if the response should not be parsed; false otherwise.
* @return {WebResource} The webresource.
*/
WebResource.prototype.withRawResponse = function (rawResponse) {
  this.rawResponse = rawResponse;

  if (azureutil.objectIsNull(this.rawResponse)) {
    this.rawResponse = true;
  }

  return this;
};

WebResource.prototype.withHeadersOnly = function (headersOnly) {
  if (headersOnly !== undefined) {
    this.headersOnly = headersOnly;
  } else {
    this.headersOnly = true;
  }

  return this;
};

/**
* Adds an optional query string parameter.
*
* @param {Object} name          The name of the query string parameter.
* @param {Object} value         The value of the query string parameter.
* @param {Object} defaultValue  The default value for the query string parameter to be used if no value is passed.
* @return {Object} The web resource.
*/
WebResource.prototype.withQueryOption = function (name, value, defaultValue) {
  if (!azureutil.objectIsNull(value)) {
    this.queryString[name] = value;
  } else if (defaultValue) {
    this.queryString[name] = defaultValue;
  }

  return this;
};

/**
* Adds optional query string parameters.
*
* Additional arguments will be the needles to search in the haystack. 
*
* @param {Object} object  The haystack of query string parameters.
* @return {Object} The web resource.
*/
WebResource.prototype.withQueryOptions = function (object) {
  if (object) {
    for (var i = 1; i < arguments.length; i++) {
      if (object[arguments[i]]) {
        this.withQueryOption(arguments[i], object[arguments[i]]);
      }
    }
  }

  return this;
};

/**
* Adds an optional header parameter.
*
* @param {Object} name  The name of the header parameter.
* @param {Object} value The value of the header parameter.
* @return {Object} The web resource.
*/
WebResource.prototype.withHeader = function (name, value) {
  if (!this.headers) {
    this.headers = {};
  }

  if (!azureutil.IsNullOrEmptyOrUndefinedOrWhiteSpace(value)) {
    value = value instanceof Date ? value.toUTCString() : value;
    
    this.headers[name] = value;
  }

  return this;
};

/**
* Adds an optional body.
*
* @param {Object} body  The request body.
* @return {Object} The web resource.
*/
WebResource.prototype.withBody = function (body) {
  this.body = body;
  return this;
};

/**
* Adds optional query string parameters.
*
* Additional arguments will be the needles to search in the haystack. 
*
* @param {Object} object  The haystack of headers.
* @return {Object} The web resource.
*/
WebResource.prototype.withHeaders = function (object) {
  if (object) {
    for (var i = 1; i < arguments.length; i++) {
      if (object[arguments[i]]) {
        this.withHeader(arguments[i], object[arguments[i]]);
      }
    }
  }

  return this;
};

WebResource.prototype.addOptionalMetadataHeaders = function (metadata) {
  var self = this;

  if (metadata) {
    Object.keys(metadata).forEach(function (metadataKey) {
      if (azureutil.IsNullOrEmptyOrUndefinedOrWhiteSpace(metadataKey)) {
        throw new ArgumentError('metadata', SR.METADATA_KEY_INVALID);
      }

      var value = metadata[metadataKey];
      if (azureutil.IsNullOrEmptyOrUndefinedOrWhiteSpace(value)) {
        throw new ArgumentError('metadata', SR.METADATA_VALUE_INVALID);
      }
      
      var metadataHeaderName = HeaderConstants.PREFIX_FOR_STORAGE_METADATA + metadataKey;
      var existingMetadataHeaderName = '';
      var headers = self.headers ? self.headers : {};
      if (Object.keys(headers).some(function (headerName) {
        existingMetadataHeaderName = headerName;
        return headerName.toString().toLowerCase() === metadataHeaderName.toLowerCase();
      })) {        
        self.withHeader(existingMetadataHeaderName, self.headers[existingMetadataHeaderName] + ',' + value);
      } else {
        self.withHeader(metadataHeaderName, value);
      }
    });
  }

  return this;
};

/**
* Determines if a status code corresponds to a valid response according to the WebResource's expected status codes.
*
* @param {int} statusCode The response status code.
* @return true if the response is valid; false otherwise.
*/
WebResource.validResponse = function (statusCode) {
  if (statusCode >= 200 && statusCode < 300) {
    return true;
  }

  return false;
};

function isMethodWithBody(verb) {
  return verb === HttpVerbs.PUT ||
    verb === HttpVerbs.POST ||
    verb === HttpVerbs.MERGE;
}

/**
* Hook up the given input stream to a destination output stream if the WebResource method
* requires a request body and a body is not already set.
*
* @param {Stream} inputStream the stream to pipe from
* @param {Stream} outputStream the stream to pipe to
*
* @return destStream
*/
WebResource.prototype.pipeInput = function(inputStream, destStream) {
  if (isMethodWithBody(this.method) && !this.hasOwnProperty('body')) {
    inputStream.pipe(destStream);
  }

  return destStream;
};

module.exports = WebResource;

/***/ }),
/* 306 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var util = __webpack_require__(113);
var _ = __webpack_require__(271);

function captureStackTrace(targetObject, constructorOpt) {
  if (Error.captureStackTrace) {
    Error.captureStackTrace(targetObject, constructorOpt);
  }
}

function ArgumentError(argumentName, message) {
  captureStackTrace(this, this.constructor); 
  this.name = this.constructor.name;
  this.argumentName = argumentName;
  this.message = message || util.format('Invalid or missing argument supplied: %s', argumentName);
}
util.inherits(ArgumentError, Error);

function ArgumentNullError(argumentName, message) {
  captureStackTrace(this, this.constructor); 
  this.name = this.constructor.name;
  this.argumentName = argumentName;
  this.message = message || util.format('Missing argument: %s', argumentName);
}

util.inherits(ArgumentNullError, Error);

function StorageError(message, properties) {
  captureStackTrace(this, this.constructor); 
  this.name = this.constructor.name;
  this.message = message;
  
  if(properties){
    _.extend(this, properties);
  }
}

util.inherits(StorageError, Error);

function TimeoutError(message) {
  captureStackTrace(this, this.constructor); 
  this.name = this.constructor.name;
  this.message = message;
}

util.inherits(TimeoutError, Error);

module.exports.ArgumentError = ArgumentError;
module.exports.ArgumentNullError = ArgumentNullError;
module.exports.StorageError = StorageError;
module.exports.TimeoutError = TimeoutError;
module.exports.captureStackTrace = captureStackTrace;

/***/ }),
/* 307 */
/***/ (function(module, exports, __webpack_require__) {

﻿//
// Copyright (c) Microsoft and contributors.  All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//
// See the License for the specific language governing permissions and
// limitations under the License.
//

// Module dependencies.
var request = __webpack_require__(308);
var url = __webpack_require__(274);
var qs = __webpack_require__(330);
var util = __webpack_require__(113);
var xml2js = __webpack_require__(302);
var events = __webpack_require__(237);
var _ = __webpack_require__(271);
var guid = __webpack_require__(492);
var os = __webpack_require__(56);
var extend = __webpack_require__(270);
var Parser = __webpack_require__(494);

var Md5Wrapper = __webpack_require__(276);
var azureutil = __webpack_require__(273);
var validate = __webpack_require__(496);
var SR = __webpack_require__(278);
var WebResource = __webpack_require__(305);
var BufferStream = __webpack_require__(570);

var ServiceSettings = __webpack_require__(571);
var StorageServiceSettings = __webpack_require__(572);
var Constants = __webpack_require__(275);
var StorageUtilities = __webpack_require__(277);
var ServicePropertiesResult = __webpack_require__(574);
var TableUtilities = __webpack_require__(575);

var SharedKey = __webpack_require__(576);
var SharedAccessSignature = __webpack_require__(578);
var TokenSigner = __webpack_require__(579);

var HeaderConstants = Constants.HeaderConstants;
var QueryStringConstants = Constants.QueryStringConstants;
var HttpResponseCodes = Constants.HttpConstants.HttpResponseCodes;
var StorageServiceClientConstants = Constants.StorageServiceClientConstants;
var defaultRequestLocationMode = Constants.RequestLocationMode.PRIMARY_ONLY;
var RequestLocationMode = Constants.RequestLocationMode;

var Logger = __webpack_require__(304);
var errors = __webpack_require__(306);
var ArgumentError = errors.ArgumentError;
var ArgumentNullError = errors.ArgumentNullError;
var TimeoutError = errors.TimeoutError;
var StorageError = errors.StorageError;

/**
* Creates a new StorageServiceClient object.
*
* @class
* The StorageServiceClient class is the base class of all the service classes.
* @constructor
* @param {string} storageAccount           The storage account.
* @param {string} storageAccessKey         The storage access key.
* @param {object} host                     The host for the service.
* @param {bool}   usePathStyleUri          Boolean value indicating wether to use path style uris.
* @param {string} sas                      The Shared Access Signature string.
* @param {TokenCredential} [token]         The {@link TokenCredential} object, which can be created with an OAuth access token string.
*/
function StorageServiceClient(storageAccount, storageAccessKey, host, usePathStyleUri, sas, token) {
  StorageServiceClient['super_'].call(this);

  if(storageAccount && storageAccessKey) {
    // account and key
    this.storageAccount = storageAccount;
    this.storageAccessKey = storageAccessKey;
    this.storageCredentials = new SharedKey(this.storageAccount, this.storageAccessKey, usePathStyleUri);
  } else if (sas) {
    // sas
    this.sasToken = sas;
    this.storageCredentials = new SharedAccessSignature(sas);
  } else if (token) {
    // access token
    this.token = token;
    this.storageCredentials = new TokenSigner(token);
  } else {
    // anonymous
    this.anonymous = true;
    this.storageCredentials = {
      signRequest: function(webResource, callback){
        // no op, anonymous access
        callback(null);
      }
    };
  }

  if(host){
    this.setHost(host);
  }

  this.apiVersion = HeaderConstants.TARGET_STORAGE_VERSION;
  this.usePathStyleUri = usePathStyleUri;

  this._initDefaultFilter();

  /**
   * The logger of the service. To change the log level of the services, set the `[logger.level]{@link Logger#level}`.
   * @name StorageServiceClient#logger
   * @type Logger
   * */
  this.logger = new Logger(Logger.LogLevels.INFO);

  this._setDefaultProxy();

  this.xml2jsSettings = StorageServiceClient._getDefaultXml2jsSettings();
  this.defaultLocationMode = StorageUtilities.LocationMode.PRIMARY_ONLY;
}

util.inherits(StorageServiceClient, events.EventEmitter);

/**
* Gets the default xml2js settings.
* @ignore
* @return {object} The default settings
*/
StorageServiceClient._getDefaultXml2jsSettings = function() {
  var xml2jsSettings = _.clone(xml2js.defaults['0.2']);

  // these determine what happens if the xml contains attributes
  xml2jsSettings.attrkey = Constants.TableConstants.XML_METADATA_MARKER;
  xml2jsSettings.charkey = Constants.TableConstants.XML_VALUE_MARKER;

  // from xml2js guide: always put child nodes in an array if true; otherwise an array is created only if there is more than one.
  xml2jsSettings.explicitArray = false;

  return xml2jsSettings;
};

/**
* Sets a host for the service.
* @ignore
* @param {string}     host                              The host for the service.
*/
StorageServiceClient.prototype.setHost = function (host) {
  var parseHost = function(hostUri){
    var parsedHost;
    if(!azureutil.objectIsNull(hostUri)) {
      if(hostUri.indexOf('http') === -1 && hostUri.indexOf('//') !== 0){
        hostUri = '//' + hostUri;
      }
      parsedHost = url.parse(hostUri, false, true);

      if(!parsedHost.protocol){
        parsedHost.protocol = ServiceSettings.DEFAULT_PROTOCOL;
      }

      if (!parsedHost.port) {
        if (parsedHost.protocol === Constants.HTTPS) {
          parsedHost.port = Constants.DEFAULT_HTTPS_PORT;
        } else {
          parsedHost.port = Constants.DEFAULT_HTTP_PORT;
        }
      }

      parsedHost = url.format({
        protocol: parsedHost.protocol,
        port: parsedHost.port,
        hostname: parsedHost.hostname,
        pathname: parsedHost.pathname
      });
    }

    return parsedHost;
  };

  validate.isValidHost(host);

  this.host = {
    primaryHost: parseHost(host.primaryHost),
    secondaryHost: parseHost(host.secondaryHost)
  };
};

/**
* Performs a REST service request through HTTP expecting an input stream.
* @ignore
*
* @param {WebResource} webResource                        The webresource on which to perform the request.
* @param {string}      outputData                         The outgoing request data as a raw string.
* @param {object}      [options]                          The request options.
* @param {int}         [options.timeoutIntervalInMs]      The timeout interval, in milliseconds, to use for the request.
* @param {int}         [options.clientRequestTimeoutInMs] The timeout of client requests, in milliseconds, to use for the request.
* @param {function}    callback                           The response callback function.
*/
StorageServiceClient.prototype.performRequest = function (webResource, outputData, options, callback) {
    this._performRequest(webResource, { outputData: outputData }, options, callback);
};

/**
* Performs a REST service request through HTTP expecting an input stream.
* @ignore
*
* @param {WebResource} webResource                        The webresource on which to perform the request.
* @param {Stream}      outputStream                       The outgoing request data as a stream.
* @param {object}      [options]                          The request options.
* @param {int}         [options.timeoutIntervalInMs]      The timeout interval, in milliseconds, to use for the request.
* @param {int}         [options.clientRequestTimeoutInMs] The timeout of client requests, in milliseconds, to use for the request.
* @param {function}    callback                           The response callback function.
*/
StorageServiceClient.prototype.performRequestOutputStream = function (webResource, outputStream, options, callback) {
  this._performRequest(webResource, { outputStream: outputStream }, options, callback);
};

/**
* Performs a REST service request through HTTP expecting an input stream.
* @ignore
*
* @param {WebResource} webResource                        The webresource on which to perform the request.
* @param {string}      outputData                         The outgoing request data as a raw string.
* @param {Stream}      inputStream                        The ingoing response data as a stream.
* @param {object}      [options]                          The request options.
* @param {int}         [options.timeoutIntervalInMs]      The timeout interval, in milliseconds, to use for the request.
* @param {int}         [options.clientRequestTimeoutInMs] The timeout of client requests, in milliseconds, to use for the request.
* @param {function}    callback                           The response callback function.
*/
StorageServiceClient.prototype.performRequestInputStream = function (webResource, outputData, inputStream, options, callback) {
  this._performRequest(webResource, { outputData: outputData, inputStream: inputStream }, options, callback);
};

/**
* Performs a REST service request through HTTP.
* @ignore
*
* @param {WebResource} webResource                        The webresource on which to perform the request.
* @param {object}      body                               The request body.
* @param {string}      [body.outputData]                  The outgoing request data as a raw string.
* @param {Stream}      [body.outputStream]                The outgoing request data as a stream.
* @param {Stream}      [body.inputStream]                 The ingoing response data as a stream.
* @param {object}      [options]                          The request options.
* @param {string}      [options.clientRequestId]          A string that represents the client request ID with a 1KB character limit.
* @param {int}         [options.timeoutIntervalInMs]      The timeout interval, in milliseconds, to use for the request.
* @param {int}         [options.clientRequestTimeoutInMs] The timeout of client requests, in milliseconds, to use for the request.
* @param {function}    callback                           The response callback function.
*/
StorageServiceClient.prototype._performRequest = function (webResource, body, options, callback) {
  var self = this;

  // Sets a requestId on the webResource
  if(!options.clientRequestId) {
    options.clientRequestId = guid.v1();
  }

  webResource.withHeader(HeaderConstants.CLIENT_REQUEST_ID, options.clientRequestId);

  // Sets the user-agent string if the process is not started by the browser
  if(!process.browser) {
    var userAgentComment = util.format('(NODE-VERSION %s; %s %s)', process.version, os.type(), os.release());
    webResource.withHeader(HeaderConstants.USER_AGENT, Constants.USER_AGENT_PRODUCT_NAME + '/' + Constants.USER_AGENT_PRODUCT_VERSION + ' ' + userAgentComment);
  }

  // Initialize the location that the request is going to be sent to.
  if(azureutil.objectIsNull(options.locationMode)) {
    options.locationMode = this.defaultLocationMode;
  }

  // Initialize the location that the request can be sent to.
  if(azureutil.objectIsNull(options.requestLocationMode)) {
    options.requestLocationMode = defaultRequestLocationMode;
  }

  // Initialize whether nagling is used or not.
  if(azureutil.objectIsNull(options.useNagleAlgorithm)) {
    options.useNagleAlgorithm = this.useNagleAlgorithm;
  }

  this._initializeLocation(options);

  // Initialize the operationExpiryTime
  this._setOperationExpiryTime(options);

  // If the output stream already got sent to server and got error back,
  // we should NOT retry within the SDK as the stream data is not valid anymore if we retry directly.
  // And it's very hard for SDK to re-wind the stream.
  //
  // If users want to retry on this kind of error, they can implement their own logic to parse the response and
  // determine if they need to re-prepare a stream and call our SDK API to retry.
  //
  // Currently for blobs/files with size greater than 32MB (DEFAULT_SINGLE_BLOB_PUT_THRESHOLD_IN_BYTES),
  // we'll send the steam by chunk buffers which doesn't have this issue.
  var outputStreamSent = false;

  var operation = function (options, next) {
    self._validateLocation(options);
    var currentLocation = options.currentLocation;
    self._buildRequestOptions(webResource, body, options, function (err, finalRequestOptions) {
      if (err) {
        callback({ error: err, response: null }, function (finalRequestOptions, finalCallback) {
          finalCallback(finalRequestOptions);
        });
      } else {
        self.logger.log(Logger.LogLevels.DEBUG, 'FINAL REQUEST OPTIONS:\n' + util.inspect(finalRequestOptions));

        if(self._maximumExecutionTimeExceeded(Date.now(), options.operationExpiryTime)) {
          callback({ error: new TimeoutError(SR.MAXIMUM_EXECUTION_TIMEOUT_EXCEPTION), response: null }, function (finalRequestOptions, finalCallback) {
            finalCallback(finalRequestOptions);
          });
        } else {
          var processResponseCallback = function (error, response) {
            var responseObject;

            if (error) {
              responseObject = { error: error, response: null };
            } else {
              responseObject = self._processResponse(webResource, response, options);
              responseObject.contentMD5 = response.contentMD5;
              responseObject.length = response.length;
            }

            responseObject.operationEndTime = new Date();
            // Required for listing operations to make sure successive operations go to the same location.
            responseObject.targetLocation = currentLocation;
            responseObject.outputStreamSent = outputStreamSent;

            callback(responseObject, next);
          };

          var endResponse;
          var buildRequest = function (headersOnly, inputStream) {
            // Build request (if body was set before, request will process immediately, if not it'll wait for the piping to happen
            var requestStream;

            var requestWithDefaults;

            if(self.proxy) {
              if(requestWithDefaults === undefined) {
                requestWithDefaults = request.defaults({'proxy':self.proxy});
              }
            } else {
              requestWithDefaults = request;
            }

            if (headersOnly) {
              requestStream = requestWithDefaults(finalRequestOptions);

              requestStream.on('error', processResponseCallback);
              requestStream.on('response', function (response) {
                var isValid = WebResource.validResponse(response.statusCode);
                if (!isValid) {
                    // When getting invalid response, try to get the error message for future steps to extract the detailed error information
                    var contentLength = parseInt(response.headers['content-length']);
                    var errorMessageBuffer;
                    var index = 0;
                    if (contentLength !== undefined) {
                      errorMessageBuffer = Buffer.alloc(contentLength);
                    }

                    requestStream.on('data', function (data) {
                      if (contentLength !== undefined) {
                        data.copy(errorMessageBuffer, index);
                        index += data.length;
                      } else {
                        if (!errorMessageBuffer) {
                          errorMessageBuffer = data;
                        } else {
                          errorMessageBuffer = Buffer.concat([errorMessageBuffer, data]);
                        }
                      }
                    });
                    requestStream.on('end', function () {
                      if (errorMessageBuffer) {
                        // Strip the UTF8 BOM following the same ways as 'request' module
                        if (errorMessageBuffer.length > 3 &&
                          errorMessageBuffer[0] === 239 &&
                          errorMessageBuffer[1] === 187 &&
                          errorMessageBuffer[2] === 191) {
                          response.body = errorMessageBuffer.toString('utf8', 3);
                        } else {
                          response.body = errorMessageBuffer.toString('utf8');
                        }
                      }
                      processResponseCallback(null, response);
                    });
                } else {
                  // Only pipe to the destination stream when we get a valid response from service
                  // Error message should NOT be piped to the destination stream
                  if (inputStream) {
                    requestStream.pipe(inputStream);
                  }

                  var responseLength = 0;
                  var internalHash = new Md5Wrapper().createMd5Hash();
                  response.on('data', function(data) {
                    responseLength += data.length;
                    internalHash.update(data);
                  });

                  response.on('end', function () {
                    // Calculate and set MD5 here
                    if(azureutil.objectIsNull(options.disableContentMD5Validation) || options.disableContentMD5Validation === false) {
                      response.contentMD5 = internalHash.digest('base64');
                    }

                    response.length = responseLength;
                    endResponse = response;
                  });
                }
              });
            } else {
              requestStream = requestWithDefaults(finalRequestOptions, processResponseCallback);
            }

            //If useNagleAlgorithm is not set or the value is set and is false, setNoDelay is set to true.
            if (azureutil.objectIsNull(options.useNagleAlgorithm) || options.useNagleAlgorithm === false) {
              requestStream.on('request', function(httpRequest) {
                httpRequest.setNoDelay(true);
              });
            }

            // Workaround to avoid request from potentially setting unwanted (rejected) headers by the service
            var oldEnd = requestStream.end;
            requestStream.end = function () {
              if (finalRequestOptions.headers['content-length']) {
                requestStream.headers['content-length'] = finalRequestOptions.headers['content-length'];
              } else if (requestStream.headers['content-length']) {
                delete requestStream.headers['content-length'];
              }

              oldEnd.call(requestStream);
            };

            // Bubble events up -- This is when the request is going to be made.
            requestStream.on('response', function (response) {
              self.emit('receivedResponseEvent', response);
            });

            return requestStream;
          };

          if (body && body.outputData) {
            if (!azureutil.isBrowser() && Buffer.isBuffer(body.outputData)) {
              // Request module will take 200MB additional memory when we pass a 100MB buffer as body
              // Transfer buffer to stream will highly reduce the memory used by request module
              finalRequestOptions.body = new BufferStream(body.outputData);
            } else {
              finalRequestOptions.body = body.outputData;
            }
          }

          // Pipe any input / output streams
          if (body && body.inputStream) {
            body.inputStream.on('close', function () {
              if (endResponse) {
                processResponseCallback(null, endResponse);
                endResponse = null;
              }
            });
            body.inputStream.on('end', function () {
              if (endResponse) {
                processResponseCallback(null, endResponse);
                endResponse = null;
              }
            });
            body.inputStream.on('finish', function () {
              if (endResponse) {
                processResponseCallback(null, endResponse);
                endResponse = null;
              }
            });
            buildRequest(true, body.inputStream);
          } else if (body && body.outputStream) {
            var sendUnchunked = function () {
              var size = finalRequestOptions.headers['content-length'] ?
                finalRequestOptions.headers['content-length'] :
                Constants.BlobConstants.MAX_SINGLE_UPLOAD_BLOB_SIZE_IN_BYTES;

              var concatBuf = Buffer.alloc(parseInt(size));
              var index = 0;

              body.outputStream.on('data', function (d) {
                outputStreamSent = true;
                if(self._maximumExecutionTimeExceeded(Date.now(), options.operationExpiryTime)) {
                  processResponseCallback(new TimeoutError(SR.MAXIMUM_EXECUTION_TIMEOUT_EXCEPTION));
                } else {
                  d.copy(concatBuf, index);
                  index += d.length;
                }
              }).on('end', function () {
                var requestStream = buildRequest();
                requestStream.write(concatBuf);
                requestStream.end();
              });
              if (azureutil.isStreamPaused(body.outputStream)) {
                body.outputStream.resume();
              }
            };

            var sendStream = function () {
              // NOTE: workaround for an unexpected EPIPE exception when piping streams larger than 29 MB
              if (!azureutil.objectIsNull(finalRequestOptions.headers['content-length']) && finalRequestOptions.headers['content-length'] < 29 * 1024 * 1024) {
                body.outputStream.pipe(buildRequest());
                outputStreamSent = true;

                if (azureutil.isStreamPaused(body.outputStream)) {
                  body.outputStream.resume();
                }
              } else {
                sendUnchunked();
              }
            };

            if (!body.outputStream.readable) {
              // if the content length is zero, build the request and don't send a body
              if (finalRequestOptions.headers['content-length'] === 0) {
                buildRequest();
              } else {
                // otherwise, wait until we know the readable stream is actually valid before piping
                body.outputStream.on('open', function () {
                  sendStream();
                });
              }
            } else {
              sendStream();
            }

            // This catches any errors that happen while creating the readable stream (usually invalid names)
            body.outputStream.on('error', function (error) {
              processResponseCallback(error);
            });
          } else {
            buildRequest();
          }
        }
      }
    });
  };

  // The filter will do what it needs to the requestOptions and will provide a
  // function to be handled after the reply
  self.filter(options, function (postFiltersRequestOptions, nextPostCallback) {
    if(self._maximumExecutionTimeExceeded(Date.now() + postFiltersRequestOptions.retryInterval, postFiltersRequestOptions.operationExpiryTime)) {
      callback({ error: new TimeoutError(SR.MAXIMUM_EXECUTION_TIMEOUT_EXCEPTION), response: null}, function (postFiltersRequestOptions, finalCallback) {
        finalCallback(postFiltersRequestOptions);
      });
    } else {
      // If there is a filter, flow is:
      // filter -> operation -> process response
      if(postFiltersRequestOptions.retryContext) {
        var func = function() {
          operation(postFiltersRequestOptions, nextPostCallback);
        };

        // Sleep for retryInterval before making the request
        setTimeout(func, postFiltersRequestOptions.retryInterval);
      } else {
        // No retry policy filter specified
        operation(postFiltersRequestOptions, nextPostCallback);
      }
    }
  });
};


/**
* Builds the request options to be passed to the http.request method.
* @ignore
* @param {WebResource} webResource The webresource where to build the options from.
* @param {object}      options     The request options.
* @param {function(error, requestOptions)}  callback  The callback function.
*/
StorageServiceClient.prototype._buildRequestOptions = function (webResource, body, options, callback) {
  webResource.withHeader(HeaderConstants.STORAGE_VERSION, this.apiVersion);
  webResource.withHeader(HeaderConstants.MS_DATE, new Date().toUTCString());
  if (!webResource.headers[HeaderConstants.ACCEPT]) {
    webResource.withHeader(HeaderConstants.ACCEPT, 'application/atom+xml,application/xml');
  }
  webResource.withHeader(HeaderConstants.ACCEPT_CHARSET, 'UTF-8');

  // Browsers cache GET/HEAD requests by adding conditional headers such as 'IF_MODIFIED_SINCE' after Azure Storage 'Authorization header' calculation,
  // which may result in a 403 authorization error. So add timestamp to GET/HEAD request URLs thus avoid the browser cache.
  if (azureutil.isBrowser() && (
    webResource.method === Constants.HttpConstants.HttpVerbs.GET ||
    webResource.method === Constants.HttpConstants.HttpVerbs.HEAD)) {
    webResource.withQueryOption(HeaderConstants.FORCE_NO_CACHE_IN_BROWSER, new Date().getTime());
  }

  if(azureutil.objectIsNull(options.timeoutIntervalInMs)) {
    options.timeoutIntervalInMs = this.defaultTimeoutIntervalInMs;
  }

  if(azureutil.objectIsNull(options.clientRequestTimeoutInMs)) {
    options.clientRequestTimeoutInMs = this.defaultClientRequestTimeoutInMs;
  }

  if(!azureutil.objectIsNull(options.timeoutIntervalInMs) && options.timeoutIntervalInMs > 0) {
    webResource.withQueryOption(QueryStringConstants.TIMEOUT, Math.ceil(options.timeoutIntervalInMs / 1000));
  }

  if(options.accessConditions) {
    webResource.withHeader(HeaderConstants.IF_MATCH, options.accessConditions.EtagMatch);
    webResource.withHeader(HeaderConstants.IF_MODIFIED_SINCE, options.accessConditions.DateModifedSince);
    webResource.withHeader(HeaderConstants.IF_NONE_MATCH, options.accessConditions.EtagNonMatch);
    webResource.withHeader(HeaderConstants.IF_UNMODIFIED_SINCE, options.accessConditions.DateUnModifiedSince);
    webResource.withHeader(HeaderConstants.SEQUENCE_NUMBER_EQUAL, options.accessConditions.SequenceNumberEqual);
    webResource.withHeader(HeaderConstants.SEQUENCE_NUMBER_LESS_THAN, options.accessConditions.SequenceNumberLessThan);
    webResource.withHeader(HeaderConstants.SEQUENCE_NUMBER_LESS_THAN_OR_EQUAL, options.accessConditions.SequenceNumberLessThanOrEqual);
    webResource.withHeader(HeaderConstants.BLOB_CONDITION_MAX_SIZE, options.accessConditions.MaxBlobSize);
    webResource.withHeader(HeaderConstants.BLOB_CONDITION_APPEND_POSITION, options.accessConditions.MaxAppendPosition);
  }

  if(options.sourceAccessConditions) {
    webResource.withHeader(HeaderConstants.SOURCE_IF_MATCH, options.sourceAccessConditions.EtagMatch);
    webResource.withHeader(HeaderConstants.SOURCE_IF_MODIFIED_SINCE, options.sourceAccessConditions.DateModifedSince);
    webResource.withHeader(HeaderConstants.SOURCE_IF_NONE_MATCH, options.sourceAccessConditions.EtagNonMatch);
    webResource.withHeader(HeaderConstants.SOURCE_IF_UNMODIFIED_SINCE, options.sourceAccessConditions.DateUnModifiedSince);
  }

  if (!webResource.headers || webResource.headers[HeaderConstants.CONTENT_TYPE] === undefined) {
    // work around to add an empty content type header to prevent the request module from magically adding a content type.
    webResource.headers[HeaderConstants.CONTENT_TYPE] = '';
  } else if (webResource.headers && webResource.headers[HeaderConstants.CONTENT_TYPE] === null) {
    delete webResource.headers[HeaderConstants.CONTENT_TYPE];
  }

  if (!webResource.headers || webResource.headers[HeaderConstants.CONTENT_LENGTH] === undefined) {
    if (body && body.outputData) {
      webResource.withHeader(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(body.outputData, 'UTF8'));
    } else if (webResource.headers[HeaderConstants.CONTENT_LENGTH] === undefined) {
      webResource.withHeader(HeaderConstants.CONTENT_LENGTH, 0);
    }
  } else if (webResource.headers && webResource.headers[HeaderConstants.CONTENT_LENGTH] === null) {
    delete webResource.headers[HeaderConstants.CONTENT_LENGTH];
  }

  var enableGlobalHttpAgent = this.enableGlobalHttpAgent;

  // Sets the request url in the web resource.
  this._setRequestUrl(webResource, options);

  this.emit('sendingRequestEvent', webResource);

  // Now that the web request is finalized, sign it
  this.storageCredentials.signRequest(webResource, function (error) {
    var requestOptions = null;

    if (!error) {
      var targetUrl = webResource.uri;

      requestOptions = {
        uri: url.format(targetUrl),
        method: webResource.method,
        headers: webResource.headers,
        mode: 'disable-fetch'
      };

      if (options) {
        //set encoding of response data. If set to null, the body is returned as a Buffer
        requestOptions.encoding = options.responseEncoding;
      }

      if (options && options.clientRequestTimeoutInMs) {
        requestOptions.timeout = options.clientRequestTimeoutInMs;
      } else {
        requestOptions.timeout = Constants.DEFAULT_CLIENT_REQUEST_TIMEOUT_IN_MS; // 2 minutes
      }

      // If global HTTP agent is not enabled, use forever agent.
      if (enableGlobalHttpAgent !== true) {
        requestOptions.forever = true;
      }
    }

    callback(error, requestOptions);
  });
};

/**
* Process the response.
* @ignore
*
* @param {WebResource} webResource                The web resource that made the request.
* @param {Response}    response                   The response object.
* @param {Options}     options                    The response parsing options.
* @param {String}      options.payloadFormat      The payload format.
* @return The normalized responseObject.
*/
StorageServiceClient.prototype._processResponse = function (webResource, response, options) {
  var self = this;

  function convertRawHeadersToHeaders(rawHeaders) {
    var headers = {};
    if(!rawHeaders) {
      return undefined;
    }

    for(var i = 0; i < rawHeaders.length; i++) {
      var headerName;
      if (rawHeaders[i].indexOf(HeaderConstants.PREFIX_FOR_STORAGE_METADATA) === 0) {
        headerName = rawHeaders[i];
      } else {
        headerName = rawHeaders[i].toLowerCase();
      }
      headers[headerName] = rawHeaders[++i];
    }

    return headers;
  }

  var validResponse = WebResource.validResponse(response.statusCode);
  var rsp = StorageServiceClient._buildResponse(validResponse, response.body, convertRawHeadersToHeaders(response.rawHeaders) || response.headers, response.statusCode, response.md5);
  var responseObject;

  if (validResponse && webResource.rawResponse) {
    responseObject = { error: null, response: rsp };
  } else {
    // attempt to parse the response body, errors will be returned in rsp.error without modifying the body
    rsp = StorageServiceClient._parseResponse(rsp, self.xml2jsSettings, options);

    if (validResponse && !rsp.error) {
        responseObject = { error: null, response: rsp };
    } else {
      rsp.isSuccessful = false;

      if (response.statusCode < 400 || response.statusCode >= 500) {
        this.logger.log(Logger.LogLevels.DEBUG,
            'ERROR code = ' + response.statusCode + ' :\n' + util.inspect(rsp.body));
      }

      // responseObject.error should contain normalized parser errors if they occured in _parseResponse
      // responseObject.response.body should contain the raw response body in that case
      var errorBody = rsp.body;
      if(rsp.error) {
        errorBody = rsp.error;
        delete rsp.error;
      }

      if (!errorBody) {
        var code = Object.keys(HttpResponseCodes).filter(function (name) {
          if (HttpResponseCodes[name] === rsp.statusCode) {
            return name;
          }
        });

        errorBody = { error: { code: code[0] } };
      }

      var normalizedError = StorageServiceClient._normalizeError(errorBody, response);
      responseObject = { error: normalizedError, response: rsp };
    }
  }

  this.logger.log(Logger.LogLevels.DEBUG, 'RESPONSE:\n' + util.inspect(responseObject));

  return responseObject;
};

/**
* Associate a filtering operation with this StorageServiceClient. Filtering operations
* can include logging, automatically retrying, etc. Filter operations are objects
* that implement a method with the signature:
*
*     "function handle (requestOptions, next)".
*
* After doing its preprocessing on the request options, the method needs to call
* "next" passing a callback with the following signature:
* signature:
*
*     "function (returnObject, finalCallback, next)"
*
* In this callback, and after processing the returnObject (the response from the
* request to the server), the callback needs to either invoke next if it exists to
* continue processing other filters or simply invoke finalCallback otherwise to end
* up the service invocation.
*
* @param {Object} filter The new filter object.
* @return {StorageServiceClient} A new service client with the filter applied.
*/
StorageServiceClient.prototype.withFilter = function (newFilter) {
    // Create a new object with the same members as the current service
    var derived = _.clone(this);

    // If the current service has a filter, merge it with the new filter
    // (allowing us to effectively pipeline a series of filters)
    var parentFilter = this.filter;
    var mergedFilter = newFilter;
    if (parentFilter !== undefined) {
      // The parentFilterNext is either the operation or the nextPipe function generated on a previous merge
      // Ordering is [f3 pre] -> [f2 pre] -> [f1 pre] -> operation -> [f1 post] -> [f2 post] -> [f3 post]
      mergedFilter = function (originalRequestOptions, parentFilterNext) {
        newFilter.handle(originalRequestOptions, function (postRequestOptions, newFilterCallback) {
          // handle parent filter pre and get Parent filter post
          var next = function (postPostRequestOptions, parentFilterCallback) {
            // The parentFilterNext is the filter next to the merged filter.
            // For 2 filters, that'd be the actual operation.
            parentFilterNext(postPostRequestOptions, function (responseObject, responseCallback, finalCallback) {
              parentFilterCallback(responseObject, finalCallback, function (postResponseObject) {
                newFilterCallback(postResponseObject, responseCallback, finalCallback);
              });
            });
          };

          parentFilter(postRequestOptions, next);
        });
      };
    }

    // Store the filter so it can be applied in performRequest
    derived.filter = mergedFilter;
    return derived;
  };

/*
* Builds a response object with normalized key names.
* @ignore
*
* @param {Bool}     isSuccessful    Boolean value indicating if the request was successful
* @param {Object}   body            The response body.
* @param {Object}   headers         The response headers.
* @param {int}      statusCode      The response status code.
* @param {string}   md5             The response's content md5 hash.
* @return {Object} A response object.
*/
StorageServiceClient._buildResponse = function (isSuccessful, body, headers, statusCode, md5) {
  var response = {
    isSuccessful: isSuccessful,
    statusCode: statusCode,
    body: body,
    headers: headers,
    md5: md5
  };

  if (!azureutil.objectIsNull(headers)) {
    if (headers[HeaderConstants.REQUEST_SERVER_ENCRYPTED] !== undefined) {
      response.requestServerEncrypted = (headers[HeaderConstants.REQUEST_SERVER_ENCRYPTED] === 'true');
    }
  }

  return response;
};

/**
* Parses a server response body from XML or JSON into a JS object.
* This is done using the xml2js library.
* @ignore
*
* @param {object}     response                   The response object with a property "body" with a XML or JSON string content.
* @param {object}     xml2jsSettings             The XML to json settings.
* @param {Options}    options                    The response parsing options.
* @param {String}     options.payloadFormat      The payload format.
* @return {object} The same response object with the body part as a JS object instead of a XML or JSON string.
*/
StorageServiceClient._parseResponse = function (response, xml2jsSettings, options) {
  function parseXml(body) {
    var parsed;
    var parser = new xml2js.Parser(xml2jsSettings);
    parser.parseString(azureutil.removeBOM(body.toString()), function (err, parsedBody) {
      if (err) {
        var xmlError = new SyntaxError('EXMLFORMAT');
        xmlError.innerError = err;
        throw xmlError;
      } else { parsed = parsedBody; }
    });

    return parsed;
  }

  if (response.body && Buffer.byteLength(response.body.toString()) > 0) {
    var contentType = '';
    if (response.headers && response.headers['content-type']) {
      contentType = response.headers['content-type'].toLowerCase();
    }

    try {
      if (contentType.indexOf('application/json') !== -1) {
        if (options && options.payloadFormat && options.payloadFormat !== TableUtilities.PayloadFormat.NO_METADATA) {
          var parser = new Parser();
          parser.onValue = function (value) {
            response.body = value;
          };
          parser.write(response.body);
        } else {
          response.body = JSON.parse(response.body);
        }
      } else if (contentType.indexOf('application/xml') !== -1 || contentType.indexOf('application/atom+xml') !== -1) {
        response.body = parseXml(response.body);
      } else if (contentType.indexOf('text/html') !== -1) {
        response.body = response.body;
      } else {
        response.body = parseXml(response.body);
        // throw new SyntaxError(SR.CONTENT_TYPE_MISSING, null);
      }
    } catch (e) {
      response.error = e;
    }
  }

  return response;
};

/**
* Gets the storage settings.
*
* @param {string} [storageAccountOrConnectionString]  The storage account or the connection string.
* @param {string} [storageAccessKey]                  The storage access key.
* @param {string} [host]                              The host address.
* @param {object} [sas]                               The Shared Access Signature string.
* @param {TokenCredential} [token]                    The {@link TokenCredential} object.
*
* @return {StorageServiceSettings}
*/
StorageServiceClient.getStorageSettings = function (storageAccountOrConnectionString, storageAccessKey, host, sas, endpointSuffix, token) {
  var storageServiceSettings;
  if (storageAccountOrConnectionString && !storageAccessKey && !sas) {
    // If storageAccountOrConnectionString was passed and no accessKey was passed, assume connection string
    storageServiceSettings = StorageServiceSettings.createFromConnectionString(storageAccountOrConnectionString);
  } else if ((storageAccountOrConnectionString && storageAccessKey) || sas || token || host) {
    // Account and key or credentials or anonymous
    storageServiceSettings = StorageServiceSettings.createExplicitly(storageAccountOrConnectionString, storageAccessKey, host, sas, endpointSuffix, token);
  } else {
    // Use environment variables
    storageServiceSettings = StorageServiceSettings.createFromEnvironment();
  }

  return storageServiceSettings;
};

/**
* Sets the webResource's requestUrl based on the service client settings.
* @ignore
*
* @param {WebResource} webResource The web resource where to set the request url.
*/
StorageServiceClient.prototype._setRequestUrl = function (webResource, options) {
  // Normalize the path
  // Backup the original path of the webResource to make sure it works fine even this function get executed multiple times - like RetryFilter
  webResource.originalPath = webResource.originalPath || webResource.path;
  webResource.path = this._getPath(webResource.originalPath);

  if(!this.host){
    throw new ArgumentNullError('this.host', SR.STORAGE_HOST_LOCATION_REQUIRED);
  }

  var host = this.host.primaryHost;

  if(!azureutil.objectIsNull(options) && options.currentLocation === Constants.StorageLocation.SECONDARY) {
    host = this.host.secondaryHost;
  }

  if(host && host.lastIndexOf('/') !== (host.length - 1)){
    host = host + '/';
  }

  var fullPath = url.format({pathname: webResource.path, query: webResource.queryString});
  webResource.uri = url.resolve(host, fullPath);
  webResource.path = url.parse(webResource.uri).pathname;
};

/**
* Retrieves the normalized path to be used in a request.
* It also removes any leading "/" of the path in case
* it's there before.
* @ignore
* @param {string} path The path to be normalized.
* @return {string} The normalized path.
*/
StorageServiceClient.prototype._getPath = function (path) {
  if (path === null || path === undefined) {
    path = '';
  } else if (path.indexOf('/') === 0) {
    path = path.substring(1);
  }

  return path;
};

/**
 * Get the url of a given path
 */
StorageServiceClient.prototype._getUrl = function (path, sasToken, primary) {
  var host;
  if (!azureutil.objectIsNull(primary) && primary === false) {
    host = this.host.secondaryHost;
  } else {
    host = this.host.primaryHost;
  }

  host = azureutil.trimPortFromUri(host);
  if(host && host.lastIndexOf('/') !== (host.length - 1)){
    host = host + '/';
  }

  var query = qs.parse(sasToken);
  var fullPath = url.format({ pathname: this._getPath(path), query: query });
  return url.resolve(host, fullPath);
};

/**
* Initializes the default filter.
* This filter is responsible for chaining the pre filters request into the operation and, after processing the response,
* pass it to the post processing filters. This method should only be invoked by the StorageServiceClient constructor.
* @ignore
*
*/
StorageServiceClient.prototype._initDefaultFilter = function () {
  this.filter = function (requestOptions, nextPreCallback) {
    if (nextPreCallback) {
      // Handle the next pre callback and pass the function to be handled as post call back.
      nextPreCallback(requestOptions, function (returnObject, finalCallback, nextPostCallback) {
        if (nextPostCallback) {
          nextPostCallback(returnObject);
        } else if (finalCallback) {
          finalCallback(returnObject);
        }
      });
    }
  };
};

/**
* Retrieves the metadata headers from the response headers.
* @ignore
*
* @param {object} headers The metadata headers.
* @return {object} An object with the metadata headers (without the "x-ms-" prefix).
*/
StorageServiceClient.prototype.parseMetadataHeaders = function (headers) {
  var metadata = {};

  if (!headers) {
    return metadata;
  }

  for (var header in headers) {
    if (header.indexOf(HeaderConstants.PREFIX_FOR_STORAGE_METADATA) === 0) {
      var key = header.substr(HeaderConstants.PREFIX_FOR_STORAGE_METADATA.length, header.length - HeaderConstants.PREFIX_FOR_STORAGE_METADATA.length);
      metadata[key] = headers[header];
    }
  }

  return metadata;
};

/**
* Gets the properties of a storage account’s service, including Azure Storage Analytics.
* @ignore
*
* @this {StorageServiceClient}
* @param {object}       [options]                               The request options.
* @param {LocationMode} [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to.
*                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}          [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}          [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}          [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {bool}         [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                               The default value is false.
* @param {errorOrResult}  callback                              `error` will contain information if an error occurs; otherwise, `result` will contain the properties
*                                                               and `response` will contain information related to this operation.
*/
StorageServiceClient.prototype.getAccountServiceProperties = function (optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getServiceProperties', function (v) {
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var webResource = WebResource.get()
    .withQueryOption(QueryStringConstants.COMP, 'properties')
    .withQueryOption(QueryStringConstants.RESTYPE, 'service');

  options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;

  var processResponseCallback = function (responseObject, next) {
    responseObject.servicePropertiesResult = null;
    if (!responseObject.error) {
      responseObject.servicePropertiesResult = ServicePropertiesResult.parse(responseObject.response.body.StorageServiceProperties);
    }

    // function to be called after all filters
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.servicePropertiesResult, returnObject.response);
    };

    // call the first filter
    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Sets the properties of a storage account’s service, including Azure Storage Analytics.
* You can also use this operation to set the default request version for all incoming requests that do not have a version specified.
*
* @this {StorageServiceClient}
* @param {object}             serviceProperties                        The service properties.
* @param {object}             [options]                                The request options.
* @param {LocationMode}       [options.locationMode]                   Specifies the location mode used to decide which location the request should be sent to.
*                                                                      Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]            The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]       The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]       The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                      The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                      execution time is checked intermittently while performing requests, and before executing retries.
* @param {bool}               [options.useNagleAlgorithm]              Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                      The default value is false.
* @param {errorOrResponse}    callback                                 `error` will contain information
*                                                                      if an error occurs; otherwise, `response`
*                                                                      will contain information related to this operation.
*/
StorageServiceClient.prototype.setAccountServiceProperties = function (serviceProperties, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setServiceProperties', function (v) {
    v.object(serviceProperties, 'serviceProperties');
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var servicePropertiesXml = ServicePropertiesResult.serialize(serviceProperties);

  var webResource = WebResource.put()
    .withQueryOption(QueryStringConstants.COMP, 'properties')
    .withQueryOption(QueryStringConstants.RESTYPE, 'service')
    .withHeader(HeaderConstants.CONTENT_TYPE, 'application/xml;charset="utf-8"')
    .withHeader(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(servicePropertiesXml))
    .withBody(servicePropertiesXml);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

// Other functions

/**
* Processes the error body into a normalized error object with all the properties lowercased.
*
* Error information may be returned by a service call with additional debugging information:
* http://msdn.microsoft.com/en-us/library/windowsazure/dd179382.aspx
*
* Table services returns these properties lowercased, example, "code" instead of "Code". So that the user
* can always expect the same format, this method lower cases everything.
*
* @ignore
*
* @param {Object} error The error object as returned by the service and parsed to JSON by the xml2json.
* @return {Object} The normalized error object with all properties lower cased.
*/
StorageServiceClient._normalizeError = function (error, response) {
  if (azureutil.objectIsString(error)) {
    return new StorageError(error, null);
  } else if (error) {
    var normalizedError = {};

    // blob/queue errors should have error.Error, table errors should have error['odata.error']
    var errorProperties = error.Error || error.error || error['odata.error'] || error['m:error'] || error;
    normalizedError.code = errorProperties.message; // The message exists when there is error.Error.

    for (var property in errorProperties) {
      if (errorProperties.hasOwnProperty(property)) {
        var key = property.toLowerCase();
        if(key.indexOf('m:') === 0) {
          key = key.substring(2);
        }

        normalizedError[key] = errorProperties[property];

        // if this is a table error, message is an object - flatten it to normalize with blob/queue errors
        // ex: "message":{"lang":"en-US","value":"The specified resource does not exist."} becomes message: "The specified resource does not exist."
        if (key === 'message' && _.isObject(errorProperties[property])) {
          if (errorProperties[property]['value']) {
            normalizedError[key] = errorProperties[property]['value'];
          }
        }
      }
    }

    // add status code and server request id if available
    if (response) {
      if (response.statusCode) {
        normalizedError.statusCode = response.statusCode;
      }

      if (response.headers && response.headers['x-ms-request-id']) {
        normalizedError.requestId = response.headers['x-ms-request-id'];
      }
    }

    var errorObject = new StorageError(normalizedError.code, normalizedError);
    return errorObject;
  }

  return null;
};

/**
* Sets proxy object specified by caller.
*
* @param {object}   proxy       proxy to use for tunneling
*                               {
*                                host: hostname
*                                port: port number
*                                proxyAuth: 'user:password' for basic auth
*                                headers: {...} headers for proxy server
*                                key: key for proxy server
*                                ca: ca for proxy server
*                                cert: cert for proxy server
*                               }
*                               if null or undefined, clears proxy
*/
StorageServiceClient.prototype.setProxy = function (proxy) {
  if (proxy) {
    this.proxy = proxy;
  } else {
    this.proxy = null;
  }
};

/**
* Sets the service host default proxy from the environment.
* Can be overridden by calling _setProxyUrl or _setProxy
*
*/
StorageServiceClient.prototype._setDefaultProxy = function () {
  var proxyUrl = StorageServiceClient._loadEnvironmentProxyValue();
  if (proxyUrl) {
    var parsedUrl = url.parse(proxyUrl);
    if (!parsedUrl.port) {
      parsedUrl.port = 80;
    }
    this.setProxy(parsedUrl);
  } else {
    this.setProxy(null);
  }
};

/*
* Loads the fields "useProxy" and respective protocol, port and url
* from the environment values HTTPS_PROXY and HTTP_PROXY
* in case those are set.
* @ignore
*
* @return {string} or null
*/
StorageServiceClient._loadEnvironmentProxyValue = function () {
  var proxyUrl = null;
  if (process.env[StorageServiceClientConstants.EnvironmentVariables.HTTPS_PROXY]) {
    proxyUrl = process.env[StorageServiceClientConstants.EnvironmentVariables.HTTPS_PROXY];
  } else if (process.env[StorageServiceClientConstants.EnvironmentVariables.HTTPS_PROXY.toLowerCase()]) {
    proxyUrl = process.env[StorageServiceClientConstants.EnvironmentVariables.HTTPS_PROXY.toLowerCase()];
  } else if (process.env[StorageServiceClientConstants.EnvironmentVariables.HTTP_PROXY]) {
    proxyUrl = process.env[StorageServiceClientConstants.EnvironmentVariables.HTTP_PROXY];
  } else if (process.env[StorageServiceClientConstants.EnvironmentVariables.HTTP_PROXY.toLowerCase()]) {
    proxyUrl = process.env[StorageServiceClientConstants.EnvironmentVariables.HTTP_PROXY.toLowerCase()];
  }

  return proxyUrl;
};

/**
* Initializes the location to which the operation is being sent to.
*/
StorageServiceClient.prototype._initializeLocation = function (options) {
  if(!azureutil.objectIsNull(options.locationMode)) {
    switch(options.locationMode) {
    case StorageUtilities.LocationMode.PRIMARY_ONLY:
    case StorageUtilities.LocationMode.PRIMARY_THEN_SECONDARY:
      options.currentLocation = Constants.StorageLocation.PRIMARY;
      break;
    case StorageUtilities.LocationMode.SECONDARY_ONLY:
    case StorageUtilities.LocationMode.SECONDARY_THEN_PRIMARY:
      options.currentLocation = Constants.StorageLocation.SECONDARY;
      break;
    default:
      throw new RangeError(util.format(SR.ARGUMENT_OUT_OF_RANGE_ERROR, 'locationMode', options.locationMode));
    }
  } else {
    options.locationMode = StorageUtilities.LocationMode.PRIMARY_ONLY;
    options.currentLocation = Constants.StorageLocation.PRIMARY;
  }
};

/**
* Validates the location to which the operation is being sent to.
*/
StorageServiceClient.prototype._validateLocation = function (options) {
  if(this._invalidLocationMode(options.locationMode)) {
    throw new ArgumentNullError('host', SR.STORAGE_HOST_MISSING_LOCATION);
  }

  switch(options.requestLocationMode) {
  case Constants.RequestLocationMode.PRIMARY_ONLY:
    if(options.locationMode === StorageUtilities.LocationMode.SECONDARY_ONLY) {
      throw new ArgumentError('host.primaryHost', SR.PRIMARY_ONLY_COMMAND);
    }

    options.currentLocation = Constants.StorageLocation.PRIMARY;
    options.locationMode = StorageUtilities.LocationMode.PRIMARY_ONLY;
    break;

  case Constants.RequestLocationMode.SECONDARY_ONLY:
    if(options.locationMode === StorageUtilities.LocationMode.PRIMARY_ONLY) {
      throw new ArgumentError('host.secondaryHost', SR.SECONDARY_ONLY_COMMAND);
    }

    options.currentLocation = Constants.StorageLocation.SECONDARY;
    options.locationMode = StorageUtilities.LocationMode.SECONDARY_ONLY;
    break;

  default:
   // no op
  }
};

/**
* Checks whether we have the relevant host information based on the locationMode.
*/
StorageServiceClient.prototype._invalidLocationMode = function (locationMode) {
  switch(locationMode) {
  case StorageUtilities.LocationMode.PRIMARY_ONLY:
    return azureutil.objectIsNull(this.host.primaryHost);
  case StorageUtilities.LocationMode.SECONDARY_ONLY:
    return azureutil.objectIsNull(this.host.secondaryHost);
  default:
    return (azureutil.objectIsNull(this.host.primaryHost) || azureutil.objectIsNull(this.host.secondaryHost));
  }
};

/**
* Checks to see if the maximum execution timeout provided has been exceeded.
*/
StorageServiceClient.prototype._maximumExecutionTimeExceeded = function (currentTime, expiryTime) {
  if(!azureutil.objectIsNull(expiryTime) && currentTime > expiryTime) {
    return true;
  } else {
    return false;
  }
};

/**
* Sets the operation expiry time.
*/
StorageServiceClient.prototype._setOperationExpiryTime = function (options) {
  if(azureutil.objectIsNull(options.operationExpiryTime)) {
    if(!azureutil.objectIsNull(options.maximumExecutionTimeInMs)) {
      options.operationExpiryTime = Date.now() + options.maximumExecutionTimeInMs;
    } else if(this.defaultMaximumExecutionTimeInMs) {
      options.operationExpiryTime = Date.now() + this.defaultMaximumExecutionTimeInMs;
    }
  }
};

module.exports = StorageServiceClient;


/***/ }),
/* 308 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

module.exports = __webpack_require__(309);

/***/ }),
/* 309 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright 2010-2012 Mikeal Rogers
//
//    Licensed under the Apache License, Version 2.0 (the "License");
//    you may not use this file except in compliance with the License.
//    You may obtain a copy of the License at
//
//        http://www.apache.org/licenses/LICENSE-2.0
//
//    Unless required by applicable law or agreed to in writing, software
//    distributed under the License is distributed on an "AS IS" BASIS,
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//    See the License for the specific language governing permissions and
//    limitations under the License.



var extend = __webpack_require__(270)
var cookies = __webpack_require__(310)
var helpers = __webpack_require__(321)

var paramsHaveRequestBody = helpers.paramsHaveRequestBody

// organize params for patch, post, put, head, del
function initParams (uri, options, callback) {
  if (typeof options === 'function') {
    callback = options
  }

  var params = {}
  if (typeof options === 'object') {
    extend(params, options, {uri: uri})
  } else if (typeof uri === 'string') {
    extend(params, {uri: uri})
  } else {
    extend(params, uri)
  }

  params.callback = callback || params.callback
  return params
}

function request (uri, options, callback) {
  if (typeof uri === 'undefined') {
    throw new Error('undefined is not a valid uri or options object.')
  }

  var params = initParams(uri, options, callback)

  if (params.method === 'HEAD' && paramsHaveRequestBody(params)) {
    throw new Error('HTTP HEAD requests MUST NOT include a request body.')
  }

  return new request.Request(params)
}

function verbFunc (verb) {
  var method = verb.toUpperCase()
  return function (uri, options, callback) {
    var params = initParams(uri, options, callback)
    params.method = method
    return request(params, params.callback)
  }
}

// define like this to please codeintel/intellisense IDEs
request.get = verbFunc('get')
request.head = verbFunc('head')
request.options = verbFunc('options')
request.post = verbFunc('post')
request.put = verbFunc('put')
request.patch = verbFunc('patch')
request.del = verbFunc('delete')
request['delete'] = verbFunc('delete')

request.jar = function (store) {
  return cookies.jar(store)
}

request.cookie = function (str) {
  return cookies.parse(str)
}

function wrapRequestMethod (method, options, requester, verb) {
  return function (uri, opts, callback) {
    var params = initParams(uri, opts, callback)

    var target = {}
    extend(true, target, options, params)

    target.pool = params.pool || options.pool

    if (verb) {
      target.method = verb.toUpperCase()
    }

    if (typeof requester === 'function') {
      method = requester
    }

    return method(target, target.callback)
  }
}

request.defaults = function (options, requester) {
  var self = this

  options = options || {}

  if (typeof options === 'function') {
    requester = options
    options = {}
  }

  var defaults = wrapRequestMethod(self, options, requester)

  var verbs = ['get', 'head', 'post', 'put', 'patch', 'del', 'delete']
  verbs.forEach(function (verb) {
    defaults[verb] = wrapRequestMethod(self[verb], options, requester, verb)
  })

  defaults.cookie = wrapRequestMethod(self.cookie, options, requester)
  defaults.jar = self.jar
  defaults.defaults = self.defaults
  return defaults
}

request.forever = function (agentOptions, optionsArg) {
  var options = {}
  if (optionsArg) {
    extend(options, optionsArg)
  }
  if (agentOptions) {
    options.agentOptions = agentOptions
  }

  options.forever = true
  return request.defaults(options)
}

// Exports

module.exports = request
request.Request = __webpack_require__(325)
request.initParams = initParams

// Backwards compatibility for request.debug
Object.defineProperty(request, 'debug', {
  enumerable: true,
  get: function () {
    return request.Request.debug
  },
  set: function (debug) {
    request.Request.debug = debug
  }
})


/***/ }),
/* 310 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var tough = __webpack_require__(311)

var Cookie = tough.Cookie
var CookieJar = tough.CookieJar

exports.parse = function (str) {
  if (str && str.uri) {
    str = str.uri
  }
  if (typeof str !== 'string') {
    throw new Error('The cookie function only accepts STRING as param')
  }
  return Cookie.parse(str, {loose: true})
}

// Adapt the sometimes-Async api of tough.CookieJar to our requirements
function RequestJar (store) {
  var self = this
  self._jar = new CookieJar(store, {looseMode: true})
}
RequestJar.prototype.setCookie = function (cookieOrStr, uri, options) {
  var self = this
  return self._jar.setCookieSync(cookieOrStr, uri, options || {})
}
RequestJar.prototype.getCookieString = function (uri) {
  var self = this
  return self._jar.getCookieStringSync(uri)
}
RequestJar.prototype.getCookies = function (uri) {
  var self = this
  return self._jar.getCookiesSync(uri)
}

exports.jar = function (store) {
  return new RequestJar(store)
}


/***/ }),
/* 311 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*!
 * Copyright (c) 2015, Salesforce.com, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * 3. Neither the name of Salesforce.com nor the names of its contributors may
 * be used to endorse or promote products derived from this software without
 * specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

var net = __webpack_require__(58);
var urlParse = __webpack_require__(274).parse;
var util = __webpack_require__(113);
var pubsuffix = __webpack_require__(312);
var Store = __webpack_require__(316).Store;
var MemoryCookieStore = __webpack_require__(317).MemoryCookieStore;
var pathMatch = __webpack_require__(319).pathMatch;
var VERSION = __webpack_require__(320).version;

var punycode;
try {
  punycode = __webpack_require__(314);
} catch(e) {
  console.warn("tough-cookie: can't load punycode; won't use punycode for domain normalization");
}

// From RFC6265 S4.1.1
// note that it excludes \x3B ";"
var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;

var CONTROL_CHARS = /[\x00-\x1F]/;

// From Chromium // '\r', '\n' and '\0' should be treated as a terminator in
// the "relaxed" mode, see:
// https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L60
var TERMINATORS = ['\n', '\r', '\0'];

// RFC6265 S4.1.1 defines path value as 'any CHAR except CTLs or ";"'
// Note ';' is \x3B
var PATH_VALUE = /[\x20-\x3A\x3C-\x7E]+/;

// date-time parsing constants (RFC6265 S5.1.1)

var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;

var MONTH_TO_NUM = {
  jan:0, feb:1, mar:2, apr:3, may:4, jun:5,
  jul:6, aug:7, sep:8, oct:9, nov:10, dec:11
};
var NUM_TO_MONTH = [
  'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'
];
var NUM_TO_DAY = [
  'Sun','Mon','Tue','Wed','Thu','Fri','Sat'
];

var MAX_TIME = 2147483647000; // 31-bit max
var MIN_TIME = 0; // 31-bit min

/*
 * Parses a Natural number (i.e., non-negative integer) with either the
 *    <min>*<max>DIGIT ( non-digit *OCTET )
 * or
 *    <min>*<max>DIGIT
 * grammar (RFC6265 S5.1.1).
 *
 * The "trailingOK" boolean controls if the grammar accepts a
 * "( non-digit *OCTET )" trailer.
 */
function parseDigits(token, minDigits, maxDigits, trailingOK) {
  var count = 0;
  while (count < token.length) {
    var c = token.charCodeAt(count);
    // "non-digit = %x00-2F / %x3A-FF"
    if (c <= 0x2F || c >= 0x3A) {
      break;
    }
    count++;
  }

  // constrain to a minimum and maximum number of digits.
  if (count < minDigits || count > maxDigits) {
    return null;
  }

  if (!trailingOK && count != token.length) {
    return null;
  }

  return parseInt(token.substr(0,count), 10);
}

function parseTime(token) {
  var parts = token.split(':');
  var result = [0,0,0];

  /* RF6256 S5.1.1:
   *      time            = hms-time ( non-digit *OCTET )
   *      hms-time        = time-field ":" time-field ":" time-field
   *      time-field      = 1*2DIGIT
   */

  if (parts.length !== 3) {
    return null;
  }

  for (var i = 0; i < 3; i++) {
    // "time-field" must be strictly "1*2DIGIT", HOWEVER, "hms-time" can be
    // followed by "( non-digit *OCTET )" so therefore the last time-field can
    // have a trailer
    var trailingOK = (i == 2);
    var num = parseDigits(parts[i], 1, 2, trailingOK);
    if (num === null) {
      return null;
    }
    result[i] = num;
  }

  return result;
}

function parseMonth(token) {
  token = String(token).substr(0,3).toLowerCase();
  var num = MONTH_TO_NUM[token];
  return num >= 0 ? num : null;
}

/*
 * RFC6265 S5.1.1 date parser (see RFC for full grammar)
 */
function parseDate(str) {
  if (!str) {
    return;
  }

  /* RFC6265 S5.1.1:
   * 2. Process each date-token sequentially in the order the date-tokens
   * appear in the cookie-date
   */
  var tokens = str.split(DATE_DELIM);
  if (!tokens) {
    return;
  }

  var hour = null;
  var minute = null;
  var second = null;
  var dayOfMonth = null;
  var month = null;
  var year = null;

  for (var i=0; i<tokens.length; i++) {
    var token = tokens[i].trim();
    if (!token.length) {
      continue;
    }

    var result;

    /* 2.1. If the found-time flag is not set and the token matches the time
     * production, set the found-time flag and set the hour- value,
     * minute-value, and second-value to the numbers denoted by the digits in
     * the date-token, respectively.  Skip the remaining sub-steps and continue
     * to the next date-token.
     */
    if (second === null) {
      result = parseTime(token);
      if (result) {
        hour = result[0];
        minute = result[1];
        second = result[2];
        continue;
      }
    }

    /* 2.2. If the found-day-of-month flag is not set and the date-token matches
     * the day-of-month production, set the found-day-of- month flag and set
     * the day-of-month-value to the number denoted by the date-token.  Skip
     * the remaining sub-steps and continue to the next date-token.
     */
    if (dayOfMonth === null) {
      // "day-of-month = 1*2DIGIT ( non-digit *OCTET )"
      result = parseDigits(token, 1, 2, true);
      if (result !== null) {
        dayOfMonth = result;
        continue;
      }
    }

    /* 2.3. If the found-month flag is not set and the date-token matches the
     * month production, set the found-month flag and set the month-value to
     * the month denoted by the date-token.  Skip the remaining sub-steps and
     * continue to the next date-token.
     */
    if (month === null) {
      result = parseMonth(token);
      if (result !== null) {
        month = result;
        continue;
      }
    }

    /* 2.4. If the found-year flag is not set and the date-token matches the
     * year production, set the found-year flag and set the year-value to the
     * number denoted by the date-token.  Skip the remaining sub-steps and
     * continue to the next date-token.
     */
    if (year === null) {
      // "year = 2*4DIGIT ( non-digit *OCTET )"
      result = parseDigits(token, 2, 4, true);
      if (result !== null) {
        year = result;
        /* From S5.1.1:
         * 3.  If the year-value is greater than or equal to 70 and less
         * than or equal to 99, increment the year-value by 1900.
         * 4.  If the year-value is greater than or equal to 0 and less
         * than or equal to 69, increment the year-value by 2000.
         */
        if (year >= 70 && year <= 99) {
          year += 1900;
        } else if (year >= 0 && year <= 69) {
          year += 2000;
        }
      }
    }
  }

  /* RFC 6265 S5.1.1
   * "5. Abort these steps and fail to parse the cookie-date if:
   *     *  at least one of the found-day-of-month, found-month, found-
   *        year, or found-time flags is not set,
   *     *  the day-of-month-value is less than 1 or greater than 31,
   *     *  the year-value is less than 1601,
   *     *  the hour-value is greater than 23,
   *     *  the minute-value is greater than 59, or
   *     *  the second-value is greater than 59.
   *     (Note that leap seconds cannot be represented in this syntax.)"
   *
   * So, in order as above:
   */
  if (
    dayOfMonth === null || month === null || year === null || second === null ||
    dayOfMonth < 1 || dayOfMonth > 31 ||
    year < 1601 ||
    hour > 23 ||
    minute > 59 ||
    second > 59
  ) {
    return;
  }

  return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));
}

function formatDate(date) {
  var d = date.getUTCDate(); d = d >= 10 ? d : '0'+d;
  var h = date.getUTCHours(); h = h >= 10 ? h : '0'+h;
  var m = date.getUTCMinutes(); m = m >= 10 ? m : '0'+m;
  var s = date.getUTCSeconds(); s = s >= 10 ? s : '0'+s;
  return NUM_TO_DAY[date.getUTCDay()] + ', ' +
    d+' '+ NUM_TO_MONTH[date.getUTCMonth()] +' '+ date.getUTCFullYear() +' '+
    h+':'+m+':'+s+' GMT';
}

// S5.1.2 Canonicalized Host Names
function canonicalDomain(str) {
  if (str == null) {
    return null;
  }
  str = str.trim().replace(/^\./,''); // S4.1.2.3 & S5.2.3: ignore leading .

  // convert to IDN if any non-ASCII characters
  if (punycode && /[^\u0001-\u007f]/.test(str)) {
    str = punycode.toASCII(str);
  }

  return str.toLowerCase();
}

// S5.1.3 Domain Matching
function domainMatch(str, domStr, canonicalize) {
  if (str == null || domStr == null) {
    return null;
  }
  if (canonicalize !== false) {
    str = canonicalDomain(str);
    domStr = canonicalDomain(domStr);
  }

  /*
   * "The domain string and the string are identical. (Note that both the
   * domain string and the string will have been canonicalized to lower case at
   * this point)"
   */
  if (str == domStr) {
    return true;
  }

  /* "All of the following [three] conditions hold:" (order adjusted from the RFC) */

  /* "* The string is a host name (i.e., not an IP address)." */
  if (net.isIP(str)) {
    return false;
  }

  /* "* The domain string is a suffix of the string" */
  var idx = str.indexOf(domStr);
  if (idx <= 0) {
    return false; // it's a non-match (-1) or prefix (0)
  }

  // e.g "a.b.c".indexOf("b.c") === 2
  // 5 === 3+2
  if (str.length !== domStr.length + idx) { // it's not a suffix
    return false;
  }

  /* "* The last character of the string that is not included in the domain
  * string is a %x2E (".") character." */
  if (str.substr(idx-1,1) !== '.') {
    return false;
  }

  return true;
}


// RFC6265 S5.1.4 Paths and Path-Match

/*
 * "The user agent MUST use an algorithm equivalent to the following algorithm
 * to compute the default-path of a cookie:"
 *
 * Assumption: the path (and not query part or absolute uri) is passed in.
 */
function defaultPath(path) {
  // "2. If the uri-path is empty or if the first character of the uri-path is not
  // a %x2F ("/") character, output %x2F ("/") and skip the remaining steps.
  if (!path || path.substr(0,1) !== "/") {
    return "/";
  }

  // "3. If the uri-path contains no more than one %x2F ("/") character, output
  // %x2F ("/") and skip the remaining step."
  if (path === "/") {
    return path;
  }

  var rightSlash = path.lastIndexOf("/");
  if (rightSlash === 0) {
    return "/";
  }

  // "4. Output the characters of the uri-path from the first character up to,
  // but not including, the right-most %x2F ("/")."
  return path.slice(0, rightSlash);
}

function trimTerminator(str) {
  for (var t = 0; t < TERMINATORS.length; t++) {
    var terminatorIdx = str.indexOf(TERMINATORS[t]);
    if (terminatorIdx !== -1) {
      str = str.substr(0,terminatorIdx);
    }
  }

  return str;
}

function parseCookiePair(cookiePair, looseMode) {
  cookiePair = trimTerminator(cookiePair);

  var firstEq = cookiePair.indexOf('=');
  if (looseMode) {
    if (firstEq === 0) { // '=' is immediately at start
      cookiePair = cookiePair.substr(1);
      firstEq = cookiePair.indexOf('='); // might still need to split on '='
    }
  } else { // non-loose mode
    if (firstEq <= 0) { // no '=' or is at start
      return; // needs to have non-empty "cookie-name"
    }
  }

  var cookieName, cookieValue;
  if (firstEq <= 0) {
    cookieName = "";
    cookieValue = cookiePair.trim();
  } else {
    cookieName = cookiePair.substr(0, firstEq).trim();
    cookieValue = cookiePair.substr(firstEq+1).trim();
  }

  if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {
    return;
  }

  var c = new Cookie();
  c.key = cookieName;
  c.value = cookieValue;
  return c;
}

function parse(str, options) {
  if (!options || typeof options !== 'object') {
    options = {};
  }
  str = str.trim();

  // We use a regex to parse the "name-value-pair" part of S5.2
  var firstSemi = str.indexOf(';'); // S5.2 step 1
  var cookiePair = (firstSemi === -1) ? str : str.substr(0, firstSemi);
  var c = parseCookiePair(cookiePair, !!options.loose);
  if (!c) {
    return;
  }

  if (firstSemi === -1) {
    return c;
  }

  // S5.2.3 "unparsed-attributes consist of the remainder of the set-cookie-string
  // (including the %x3B (";") in question)." plus later on in the same section
  // "discard the first ";" and trim".
  var unparsed = str.slice(firstSemi + 1).trim();

  // "If the unparsed-attributes string is empty, skip the rest of these
  // steps."
  if (unparsed.length === 0) {
    return c;
  }

  /*
   * S5.2 says that when looping over the items "[p]rocess the attribute-name
   * and attribute-value according to the requirements in the following
   * subsections" for every item.  Plus, for many of the individual attributes
   * in S5.3 it says to use the "attribute-value of the last attribute in the
   * cookie-attribute-list".  Therefore, in this implementation, we overwrite
   * the previous value.
   */
  var cookie_avs = unparsed.split(';');
  while (cookie_avs.length) {
    var av = cookie_avs.shift().trim();
    if (av.length === 0) { // happens if ";;" appears
      continue;
    }
    var av_sep = av.indexOf('=');
    var av_key, av_value;

    if (av_sep === -1) {
      av_key = av;
      av_value = null;
    } else {
      av_key = av.substr(0,av_sep);
      av_value = av.substr(av_sep+1);
    }

    av_key = av_key.trim().toLowerCase();

    if (av_value) {
      av_value = av_value.trim();
    }

    switch(av_key) {
    case 'expires': // S5.2.1
      if (av_value) {
        var exp = parseDate(av_value);
        // "If the attribute-value failed to parse as a cookie date, ignore the
        // cookie-av."
        if (exp) {
          // over and underflow not realistically a concern: V8's getTime() seems to
          // store something larger than a 32-bit time_t (even with 32-bit node)
          c.expires = exp;
        }
      }
      break;

    case 'max-age': // S5.2.2
      if (av_value) {
        // "If the first character of the attribute-value is not a DIGIT or a "-"
        // character ...[or]... If the remainder of attribute-value contains a
        // non-DIGIT character, ignore the cookie-av."
        if (/^-?[0-9]+$/.test(av_value)) {
          var delta = parseInt(av_value, 10);
          // "If delta-seconds is less than or equal to zero (0), let expiry-time
          // be the earliest representable date and time."
          c.setMaxAge(delta);
        }
      }
      break;

    case 'domain': // S5.2.3
      // "If the attribute-value is empty, the behavior is undefined.  However,
      // the user agent SHOULD ignore the cookie-av entirely."
      if (av_value) {
        // S5.2.3 "Let cookie-domain be the attribute-value without the leading %x2E
        // (".") character."
        var domain = av_value.trim().replace(/^\./, '');
        if (domain) {
          // "Convert the cookie-domain to lower case."
          c.domain = domain.toLowerCase();
        }
      }
      break;

    case 'path': // S5.2.4
      /*
       * "If the attribute-value is empty or if the first character of the
       * attribute-value is not %x2F ("/"):
       *   Let cookie-path be the default-path.
       * Otherwise:
       *   Let cookie-path be the attribute-value."
       *
       * We'll represent the default-path as null since it depends on the
       * context of the parsing.
       */
      c.path = av_value && av_value[0] === "/" ? av_value : null;
      break;

    case 'secure': // S5.2.5
      /*
       * "If the attribute-name case-insensitively matches the string "Secure",
       * the user agent MUST append an attribute to the cookie-attribute-list
       * with an attribute-name of Secure and an empty attribute-value."
       */
      c.secure = true;
      break;

    case 'httponly': // S5.2.6 -- effectively the same as 'secure'
      c.httpOnly = true;
      break;

    default:
      c.extensions = c.extensions || [];
      c.extensions.push(av);
      break;
    }
  }

  return c;
}

// avoid the V8 deoptimization monster!
function jsonParse(str) {
  var obj;
  try {
    obj = JSON.parse(str);
  } catch (e) {
    return e;
  }
  return obj;
}

function fromJSON(str) {
  if (!str) {
    return null;
  }

  var obj;
  if (typeof str === 'string') {
    obj = jsonParse(str);
    if (obj instanceof Error) {
      return null;
    }
  } else {
    // assume it's an Object
    obj = str;
  }

  var c = new Cookie();
  for (var i=0; i<Cookie.serializableProperties.length; i++) {
    var prop = Cookie.serializableProperties[i];
    if (obj[prop] === undefined ||
        obj[prop] === Cookie.prototype[prop])
    {
      continue; // leave as prototype default
    }

    if (prop === 'expires' ||
        prop === 'creation' ||
        prop === 'lastAccessed')
    {
      if (obj[prop] === null) {
        c[prop] = null;
      } else {
        c[prop] = obj[prop] == "Infinity" ?
          "Infinity" : new Date(obj[prop]);
      }
    } else {
      c[prop] = obj[prop];
    }
  }

  return c;
}

/* Section 5.4 part 2:
 * "*  Cookies with longer paths are listed before cookies with
 *     shorter paths.
 *
 *  *  Among cookies that have equal-length path fields, cookies with
 *     earlier creation-times are listed before cookies with later
 *     creation-times."
 */

function cookieCompare(a,b) {
  var cmp = 0;

  // descending for length: b CMP a
  var aPathLen = a.path ? a.path.length : 0;
  var bPathLen = b.path ? b.path.length : 0;
  cmp = bPathLen - aPathLen;
  if (cmp !== 0) {
    return cmp;
  }

  // ascending for time: a CMP b
  var aTime = a.creation ? a.creation.getTime() : MAX_TIME;
  var bTime = b.creation ? b.creation.getTime() : MAX_TIME;
  cmp = aTime - bTime;
  if (cmp !== 0) {
    return cmp;
  }

  // break ties for the same millisecond (precision of JavaScript's clock)
  cmp = a.creationIndex - b.creationIndex;

  return cmp;
}

// Gives the permutation of all possible pathMatch()es of a given path. The
// array is in longest-to-shortest order.  Handy for indexing.
function permutePath(path) {
  if (path === '/') {
    return ['/'];
  }
  if (path.lastIndexOf('/') === path.length-1) {
    path = path.substr(0,path.length-1);
  }
  var permutations = [path];
  while (path.length > 1) {
    var lindex = path.lastIndexOf('/');
    if (lindex === 0) {
      break;
    }
    path = path.substr(0,lindex);
    permutations.push(path);
  }
  permutations.push('/');
  return permutations;
}

function getCookieContext(url) {
  if (url instanceof Object) {
    return url;
  }
  // NOTE: decodeURI will throw on malformed URIs (see GH-32).
  // Therefore, we will just skip decoding for such URIs.
  try {
    url = decodeURI(url);
  }
  catch(err) {
    // Silently swallow error
  }

  return urlParse(url);
}

function Cookie(options) {
  options = options || {};

  Object.keys(options).forEach(function(prop) {
    if (Cookie.prototype.hasOwnProperty(prop) &&
        Cookie.prototype[prop] !== options[prop] &&
        prop.substr(0,1) !== '_')
    {
      this[prop] = options[prop];
    }
  }, this);

  this.creation = this.creation || new Date();

  // used to break creation ties in cookieCompare():
  Object.defineProperty(this, 'creationIndex', {
    configurable: false,
    enumerable: false, // important for assert.deepEqual checks
    writable: true,
    value: ++Cookie.cookiesCreated
  });
}

Cookie.cookiesCreated = 0; // incremented each time a cookie is created

Cookie.parse = parse;
Cookie.fromJSON = fromJSON;

Cookie.prototype.key = "";
Cookie.prototype.value = "";

// the order in which the RFC has them:
Cookie.prototype.expires = "Infinity"; // coerces to literal Infinity
Cookie.prototype.maxAge = null; // takes precedence over expires for TTL
Cookie.prototype.domain = null;
Cookie.prototype.path = null;
Cookie.prototype.secure = false;
Cookie.prototype.httpOnly = false;
Cookie.prototype.extensions = null;

// set by the CookieJar:
Cookie.prototype.hostOnly = null; // boolean when set
Cookie.prototype.pathIsDefault = null; // boolean when set
Cookie.prototype.creation = null; // Date when set; defaulted by Cookie.parse
Cookie.prototype.lastAccessed = null; // Date when set
Object.defineProperty(Cookie.prototype, 'creationIndex', {
  configurable: true,
  enumerable: false,
  writable: true,
  value: 0
});

Cookie.serializableProperties = Object.keys(Cookie.prototype)
  .filter(function(prop) {
    return !(
      Cookie.prototype[prop] instanceof Function ||
      prop === 'creationIndex' ||
      prop.substr(0,1) === '_'
    );
  });

Cookie.prototype.inspect = function inspect() {
  var now = Date.now();
  return 'Cookie="'+this.toString() +
    '; hostOnly='+(this.hostOnly != null ? this.hostOnly : '?') +
    '; aAge='+(this.lastAccessed ? (now-this.lastAccessed.getTime())+'ms' : '?') +
    '; cAge='+(this.creation ? (now-this.creation.getTime())+'ms' : '?') +
    '"';
};

// Use the new custom inspection symbol to add the custom inspect function if
// available.
if (util.inspect.custom) {
  Cookie.prototype[util.inspect.custom] = Cookie.prototype.inspect;
}

Cookie.prototype.toJSON = function() {
  var obj = {};

  var props = Cookie.serializableProperties;
  for (var i=0; i<props.length; i++) {
    var prop = props[i];
    if (this[prop] === Cookie.prototype[prop]) {
      continue; // leave as prototype default
    }

    if (prop === 'expires' ||
        prop === 'creation' ||
        prop === 'lastAccessed')
    {
      if (this[prop] === null) {
        obj[prop] = null;
      } else {
        obj[prop] = this[prop] == "Infinity" ? // intentionally not ===
          "Infinity" : this[prop].toISOString();
      }
    } else if (prop === 'maxAge') {
      if (this[prop] !== null) {
        // again, intentionally not ===
        obj[prop] = (this[prop] == Infinity || this[prop] == -Infinity) ?
          this[prop].toString() : this[prop];
      }
    } else {
      if (this[prop] !== Cookie.prototype[prop]) {
        obj[prop] = this[prop];
      }
    }
  }

  return obj;
};

Cookie.prototype.clone = function() {
  return fromJSON(this.toJSON());
};

Cookie.prototype.validate = function validate() {
  if (!COOKIE_OCTETS.test(this.value)) {
    return false;
  }
  if (this.expires != Infinity && !(this.expires instanceof Date) && !parseDate(this.expires)) {
    return false;
  }
  if (this.maxAge != null && this.maxAge <= 0) {
    return false; // "Max-Age=" non-zero-digit *DIGIT
  }
  if (this.path != null && !PATH_VALUE.test(this.path)) {
    return false;
  }

  var cdomain = this.cdomain();
  if (cdomain) {
    if (cdomain.match(/\.$/)) {
      return false; // S4.1.2.3 suggests that this is bad. domainMatch() tests confirm this
    }
    var suffix = pubsuffix.getPublicSuffix(cdomain);
    if (suffix == null) { // it's a public suffix
      return false;
    }
  }
  return true;
};

Cookie.prototype.setExpires = function setExpires(exp) {
  if (exp instanceof Date) {
    this.expires = exp;
  } else {
    this.expires = parseDate(exp) || "Infinity";
  }
};

Cookie.prototype.setMaxAge = function setMaxAge(age) {
  if (age === Infinity || age === -Infinity) {
    this.maxAge = age.toString(); // so JSON.stringify() works
  } else {
    this.maxAge = age;
  }
};

// gives Cookie header format
Cookie.prototype.cookieString = function cookieString() {
  var val = this.value;
  if (val == null) {
    val = '';
  }
  if (this.key === '') {
    return val;
  }
  return this.key+'='+val;
};

// gives Set-Cookie header format
Cookie.prototype.toString = function toString() {
  var str = this.cookieString();

  if (this.expires != Infinity) {
    if (this.expires instanceof Date) {
      str += '; Expires='+formatDate(this.expires);
    } else {
      str += '; Expires='+this.expires;
    }
  }

  if (this.maxAge != null && this.maxAge != Infinity) {
    str += '; Max-Age='+this.maxAge;
  }

  if (this.domain && !this.hostOnly) {
    str += '; Domain='+this.domain;
  }
  if (this.path) {
    str += '; Path='+this.path;
  }

  if (this.secure) {
    str += '; Secure';
  }
  if (this.httpOnly) {
    str += '; HttpOnly';
  }
  if (this.extensions) {
    this.extensions.forEach(function(ext) {
      str += '; '+ext;
    });
  }

  return str;
};

// TTL() partially replaces the "expiry-time" parts of S5.3 step 3 (setCookie()
// elsewhere)
// S5.3 says to give the "latest representable date" for which we use Infinity
// For "expired" we use 0
Cookie.prototype.TTL = function TTL(now) {
  /* RFC6265 S4.1.2.2 If a cookie has both the Max-Age and the Expires
   * attribute, the Max-Age attribute has precedence and controls the
   * expiration date of the cookie.
   * (Concurs with S5.3 step 3)
   */
  if (this.maxAge != null) {
    return this.maxAge<=0 ? 0 : this.maxAge*1000;
  }

  var expires = this.expires;
  if (expires != Infinity) {
    if (!(expires instanceof Date)) {
      expires = parseDate(expires) || Infinity;
    }

    if (expires == Infinity) {
      return Infinity;
    }

    return expires.getTime() - (now || Date.now());
  }

  return Infinity;
};

// expiryTime() replaces the "expiry-time" parts of S5.3 step 3 (setCookie()
// elsewhere)
Cookie.prototype.expiryTime = function expiryTime(now) {
  if (this.maxAge != null) {
    var relativeTo = now || this.creation || new Date();
    var age = (this.maxAge <= 0) ? -Infinity : this.maxAge*1000;
    return relativeTo.getTime() + age;
  }

  if (this.expires == Infinity) {
    return Infinity;
  }
  return this.expires.getTime();
};

// expiryDate() replaces the "expiry-time" parts of S5.3 step 3 (setCookie()
// elsewhere), except it returns a Date
Cookie.prototype.expiryDate = function expiryDate(now) {
  var millisec = this.expiryTime(now);
  if (millisec == Infinity) {
    return new Date(MAX_TIME);
  } else if (millisec == -Infinity) {
    return new Date(MIN_TIME);
  } else {
    return new Date(millisec);
  }
};

// This replaces the "persistent-flag" parts of S5.3 step 3
Cookie.prototype.isPersistent = function isPersistent() {
  return (this.maxAge != null || this.expires != Infinity);
};

// Mostly S5.1.2 and S5.2.3:
Cookie.prototype.cdomain =
Cookie.prototype.canonicalizedDomain = function canonicalizedDomain() {
  if (this.domain == null) {
    return null;
  }
  return canonicalDomain(this.domain);
};

function CookieJar(store, options) {
  if (typeof options === "boolean") {
    options = {rejectPublicSuffixes: options};
  } else if (options == null) {
    options = {};
  }
  if (options.rejectPublicSuffixes != null) {
    this.rejectPublicSuffixes = options.rejectPublicSuffixes;
  }
  if (options.looseMode != null) {
    this.enableLooseMode = options.looseMode;
  }

  if (!store) {
    store = new MemoryCookieStore();
  }
  this.store = store;
}
CookieJar.prototype.store = null;
CookieJar.prototype.rejectPublicSuffixes = true;
CookieJar.prototype.enableLooseMode = false;
var CAN_BE_SYNC = [];

CAN_BE_SYNC.push('setCookie');
CookieJar.prototype.setCookie = function(cookie, url, options, cb) {
  var err;
  var context = getCookieContext(url);
  if (options instanceof Function) {
    cb = options;
    options = {};
  }

  var host = canonicalDomain(context.hostname);
  var loose = this.enableLooseMode;
  if (options.loose != null) {
    loose = options.loose;
  }

  // S5.3 step 1
  if (!(cookie instanceof Cookie)) {
    cookie = Cookie.parse(cookie, { loose: loose });
  }
  if (!cookie) {
    err = new Error("Cookie failed to parse");
    return cb(options.ignoreError ? null : err);
  }

  // S5.3 step 2
  var now = options.now || new Date(); // will assign later to save effort in the face of errors

  // S5.3 step 3: NOOP; persistent-flag and expiry-time is handled by getCookie()

  // S5.3 step 4: NOOP; domain is null by default

  // S5.3 step 5: public suffixes
  if (this.rejectPublicSuffixes && cookie.domain) {
    var suffix = pubsuffix.getPublicSuffix(cookie.cdomain());
    if (suffix == null) { // e.g. "com"
      err = new Error("Cookie has domain set to a public suffix");
      return cb(options.ignoreError ? null : err);
    }
  }

  // S5.3 step 6:
  if (cookie.domain) {
    if (!domainMatch(host, cookie.cdomain(), false)) {
      err = new Error("Cookie not in this host's domain. Cookie:"+cookie.cdomain()+" Request:"+host);
      return cb(options.ignoreError ? null : err);
    }

    if (cookie.hostOnly == null) { // don't reset if already set
      cookie.hostOnly = false;
    }

  } else {
    cookie.hostOnly = true;
    cookie.domain = host;
  }

  //S5.2.4 If the attribute-value is empty or if the first character of the
  //attribute-value is not %x2F ("/"):
  //Let cookie-path be the default-path.
  if (!cookie.path || cookie.path[0] !== '/') {
    cookie.path = defaultPath(context.pathname);
    cookie.pathIsDefault = true;
  }

  // S5.3 step 8: NOOP; secure attribute
  // S5.3 step 9: NOOP; httpOnly attribute

  // S5.3 step 10
  if (options.http === false && cookie.httpOnly) {
    err = new Error("Cookie is HttpOnly and this isn't an HTTP API");
    return cb(options.ignoreError ? null : err);
  }

  var store = this.store;

  if (!store.updateCookie) {
    store.updateCookie = function(oldCookie, newCookie, cb) {
      this.putCookie(newCookie, cb);
    };
  }

  function withCookie(err, oldCookie) {
    if (err) {
      return cb(err);
    }

    var next = function(err) {
      if (err) {
        return cb(err);
      } else {
        cb(null, cookie);
      }
    };

    if (oldCookie) {
      // S5.3 step 11 - "If the cookie store contains a cookie with the same name,
      // domain, and path as the newly created cookie:"
      if (options.http === false && oldCookie.httpOnly) { // step 11.2
        err = new Error("old Cookie is HttpOnly and this isn't an HTTP API");
        return cb(options.ignoreError ? null : err);
      }
      cookie.creation = oldCookie.creation; // step 11.3
      cookie.creationIndex = oldCookie.creationIndex; // preserve tie-breaker
      cookie.lastAccessed = now;
      // Step 11.4 (delete cookie) is implied by just setting the new one:
      store.updateCookie(oldCookie, cookie, next); // step 12

    } else {
      cookie.creation = cookie.lastAccessed = now;
      store.putCookie(cookie, next); // step 12
    }
  }

  store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);
};

// RFC6365 S5.4
CAN_BE_SYNC.push('getCookies');
CookieJar.prototype.getCookies = function(url, options, cb) {
  var context = getCookieContext(url);
  if (options instanceof Function) {
    cb = options;
    options = {};
  }

  var host = canonicalDomain(context.hostname);
  var path = context.pathname || '/';

  var secure = options.secure;
  if (secure == null && context.protocol &&
      (context.protocol == 'https:' || context.protocol == 'wss:'))
  {
    secure = true;
  }

  var http = options.http;
  if (http == null) {
    http = true;
  }

  var now = options.now || Date.now();
  var expireCheck = options.expire !== false;
  var allPaths = !!options.allPaths;
  var store = this.store;

  function matchingCookie(c) {
    // "Either:
    //   The cookie's host-only-flag is true and the canonicalized
    //   request-host is identical to the cookie's domain.
    // Or:
    //   The cookie's host-only-flag is false and the canonicalized
    //   request-host domain-matches the cookie's domain."
    if (c.hostOnly) {
      if (c.domain != host) {
        return false;
      }
    } else {
      if (!domainMatch(host, c.domain, false)) {
        return false;
      }
    }

    // "The request-uri's path path-matches the cookie's path."
    if (!allPaths && !pathMatch(path, c.path)) {
      return false;
    }

    // "If the cookie's secure-only-flag is true, then the request-uri's
    // scheme must denote a "secure" protocol"
    if (c.secure && !secure) {
      return false;
    }

    // "If the cookie's http-only-flag is true, then exclude the cookie if the
    // cookie-string is being generated for a "non-HTTP" API"
    if (c.httpOnly && !http) {
      return false;
    }

    // deferred from S5.3
    // non-RFC: allow retention of expired cookies by choice
    if (expireCheck && c.expiryTime() <= now) {
      store.removeCookie(c.domain, c.path, c.key, function(){}); // result ignored
      return false;
    }

    return true;
  }

  store.findCookies(host, allPaths ? null : path, function(err,cookies) {
    if (err) {
      return cb(err);
    }

    cookies = cookies.filter(matchingCookie);

    // sorting of S5.4 part 2
    if (options.sort !== false) {
      cookies = cookies.sort(cookieCompare);
    }

    // S5.4 part 3
    var now = new Date();
    cookies.forEach(function(c) {
      c.lastAccessed = now;
    });
    // TODO persist lastAccessed

    cb(null,cookies);
  });
};

CAN_BE_SYNC.push('getCookieString');
CookieJar.prototype.getCookieString = function(/*..., cb*/) {
  var args = Array.prototype.slice.call(arguments,0);
  var cb = args.pop();
  var next = function(err,cookies) {
    if (err) {
      cb(err);
    } else {
      cb(null, cookies
        .sort(cookieCompare)
        .map(function(c){
          return c.cookieString();
        })
        .join('; '));
    }
  };
  args.push(next);
  this.getCookies.apply(this,args);
};

CAN_BE_SYNC.push('getSetCookieStrings');
CookieJar.prototype.getSetCookieStrings = function(/*..., cb*/) {
  var args = Array.prototype.slice.call(arguments,0);
  var cb = args.pop();
  var next = function(err,cookies) {
    if (err) {
      cb(err);
    } else {
      cb(null, cookies.map(function(c){
        return c.toString();
      }));
    }
  };
  args.push(next);
  this.getCookies.apply(this,args);
};

CAN_BE_SYNC.push('serialize');
CookieJar.prototype.serialize = function(cb) {
  var type = this.store.constructor.name;
  if (type === 'Object') {
    type = null;
  }

  // update README.md "Serialization Format" if you change this, please!
  var serialized = {
    // The version of tough-cookie that serialized this jar. Generally a good
    // practice since future versions can make data import decisions based on
    // known past behavior. When/if this matters, use `semver`.
    version: 'tough-cookie@'+VERSION,

    // add the store type, to make humans happy:
    storeType: type,

    // CookieJar configuration:
    rejectPublicSuffixes: !!this.rejectPublicSuffixes,

    // this gets filled from getAllCookies:
    cookies: []
  };

  if (!(this.store.getAllCookies &&
        typeof this.store.getAllCookies === 'function'))
  {
    return cb(new Error('store does not support getAllCookies and cannot be serialized'));
  }

  this.store.getAllCookies(function(err,cookies) {
    if (err) {
      return cb(err);
    }

    serialized.cookies = cookies.map(function(cookie) {
      // convert to serialized 'raw' cookies
      cookie = (cookie instanceof Cookie) ? cookie.toJSON() : cookie;

      // Remove the index so new ones get assigned during deserialization
      delete cookie.creationIndex;

      return cookie;
    });

    return cb(null, serialized);
  });
};

// well-known name that JSON.stringify calls
CookieJar.prototype.toJSON = function() {
  return this.serializeSync();
};

// use the class method CookieJar.deserialize instead of calling this directly
CAN_BE_SYNC.push('_importCookies');
CookieJar.prototype._importCookies = function(serialized, cb) {
  var jar = this;
  var cookies = serialized.cookies;
  if (!cookies || !Array.isArray(cookies)) {
    return cb(new Error('serialized jar has no cookies array'));
  }
  cookies = cookies.slice(); // do not modify the original

  function putNext(err) {
    if (err) {
      return cb(err);
    }

    if (!cookies.length) {
      return cb(err, jar);
    }

    var cookie;
    try {
      cookie = fromJSON(cookies.shift());
    } catch (e) {
      return cb(e);
    }

    if (cookie === null) {
      return putNext(null); // skip this cookie
    }

    jar.store.putCookie(cookie, putNext);
  }

  putNext();
};

CookieJar.deserialize = function(strOrObj, store, cb) {
  if (arguments.length !== 3) {
    // store is optional
    cb = store;
    store = null;
  }

  var serialized;
  if (typeof strOrObj === 'string') {
    serialized = jsonParse(strOrObj);
    if (serialized instanceof Error) {
      return cb(serialized);
    }
  } else {
    serialized = strOrObj;
  }

  var jar = new CookieJar(store, serialized.rejectPublicSuffixes);
  jar._importCookies(serialized, function(err) {
    if (err) {
      return cb(err);
    }
    cb(null, jar);
  });
};

CookieJar.deserializeSync = function(strOrObj, store) {
  var serialized = typeof strOrObj === 'string' ?
    JSON.parse(strOrObj) : strOrObj;
  var jar = new CookieJar(store, serialized.rejectPublicSuffixes);

  // catch this mistake early:
  if (!jar.store.synchronous) {
    throw new Error('CookieJar store is not synchronous; use async API instead.');
  }

  jar._importCookiesSync(serialized);
  return jar;
};
CookieJar.fromJSON = CookieJar.deserializeSync;

CAN_BE_SYNC.push('clone');
CookieJar.prototype.clone = function(newStore, cb) {
  if (arguments.length === 1) {
    cb = newStore;
    newStore = null;
  }

  this.serialize(function(err,serialized) {
    if (err) {
      return cb(err);
    }
    CookieJar.deserialize(newStore, serialized, cb);
  });
};

// Use a closure to provide a true imperative API for synchronous stores.
function syncWrap(method) {
  return function() {
    if (!this.store.synchronous) {
      throw new Error('CookieJar store is not synchronous; use async API instead.');
    }

    var args = Array.prototype.slice.call(arguments);
    var syncErr, syncResult;
    args.push(function syncCb(err, result) {
      syncErr = err;
      syncResult = result;
    });
    this[method].apply(this, args);

    if (syncErr) {
      throw syncErr;
    }
    return syncResult;
  };
}

// wrap all declared CAN_BE_SYNC methods in the sync wrapper
CAN_BE_SYNC.forEach(function(method) {
  CookieJar.prototype[method+'Sync'] = syncWrap(method);
});

exports.CookieJar = CookieJar;
exports.Cookie = Cookie;
exports.Store = Store;
exports.MemoryCookieStore = MemoryCookieStore;
exports.parseDate = parseDate;
exports.formatDate = formatDate;
exports.parse = parse;
exports.fromJSON = fromJSON;
exports.domainMatch = domainMatch;
exports.defaultPath = defaultPath;
exports.pathMatch = pathMatch;
exports.getPublicSuffix = pubsuffix.getPublicSuffix;
exports.cookieCompare = cookieCompare;
exports.permuteDomain = __webpack_require__(318).permuteDomain;
exports.permutePath = permutePath;
exports.canonicalDomain = canonicalDomain;


/***/ }),
/* 312 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*!
 * Copyright (c) 2018, Salesforce.com, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * 3. Neither the name of Salesforce.com nor the names of its contributors may
 * be used to endorse or promote products derived from this software without
 * specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

var psl = __webpack_require__(313);

function getPublicSuffix(domain) {
  return psl.get(domain);
}

exports.getPublicSuffix = getPublicSuffix;


/***/ }),
/* 313 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*eslint no-var:0, prefer-arrow-callback: 0, object-shorthand: 0 */



var Punycode = __webpack_require__(314);


var internals = {};


//
// Read rules from file.
//
internals.rules = __webpack_require__(315).map(function (rule) {

  return {
    rule: rule,
    suffix: rule.replace(/^(\*\.|\!)/, ''),
    punySuffix: -1,
    wildcard: rule.charAt(0) === '*',
    exception: rule.charAt(0) === '!'
  };
});


//
// Check is given string ends with `suffix`.
//
internals.endsWith = function (str, suffix) {

  return str.indexOf(suffix, str.length - suffix.length) !== -1;
};


//
// Find rule for a given domain.
//
internals.findRule = function (domain) {

  var punyDomain = Punycode.toASCII(domain);
  return internals.rules.reduce(function (memo, rule) {

    if (rule.punySuffix === -1){
      rule.punySuffix = Punycode.toASCII(rule.suffix);
    }
    if (!internals.endsWith(punyDomain, '.' + rule.punySuffix) && punyDomain !== rule.punySuffix) {
      return memo;
    }
    // This has been commented out as it never seems to run. This is because
    // sub tlds always appear after their parents and we never find a shorter
    // match.
    //if (memo) {
    //  var memoSuffix = Punycode.toASCII(memo.suffix);
    //  if (memoSuffix.length >= punySuffix.length) {
    //    return memo;
    //  }
    //}
    return rule;
  }, null);
};


//
// Error codes and messages.
//
exports.errorCodes = {
  DOMAIN_TOO_SHORT: 'Domain name too short.',
  DOMAIN_TOO_LONG: 'Domain name too long. It should be no more than 255 chars.',
  LABEL_STARTS_WITH_DASH: 'Domain name label can not start with a dash.',
  LABEL_ENDS_WITH_DASH: 'Domain name label can not end with a dash.',
  LABEL_TOO_LONG: 'Domain name label should be at most 63 chars long.',
  LABEL_TOO_SHORT: 'Domain name label should be at least 1 character long.',
  LABEL_INVALID_CHARS: 'Domain name label can only contain alphanumeric characters or dashes.'
};


//
// Validate domain name and throw if not valid.
//
// From wikipedia:
//
// Hostnames are composed of series of labels concatenated with dots, as are all
// domain names. Each label must be between 1 and 63 characters long, and the
// entire hostname (including the delimiting dots) has a maximum of 255 chars.
//
// Allowed chars:
//
// * `a-z`
// * `0-9`
// * `-` but not as a starting or ending character
// * `.` as a separator for the textual portions of a domain name
//
// * http://en.wikipedia.org/wiki/Domain_name
// * http://en.wikipedia.org/wiki/Hostname
//
internals.validate = function (input) {

  // Before we can validate we need to take care of IDNs with unicode chars.
  var ascii = Punycode.toASCII(input);

  if (ascii.length < 1) {
    return 'DOMAIN_TOO_SHORT';
  }
  if (ascii.length > 255) {
    return 'DOMAIN_TOO_LONG';
  }

  // Check each part's length and allowed chars.
  var labels = ascii.split('.');
  var label;

  for (var i = 0; i < labels.length; ++i) {
    label = labels[i];
    if (!label.length) {
      return 'LABEL_TOO_SHORT';
    }
    if (label.length > 63) {
      return 'LABEL_TOO_LONG';
    }
    if (label.charAt(0) === '-') {
      return 'LABEL_STARTS_WITH_DASH';
    }
    if (label.charAt(label.length - 1) === '-') {
      return 'LABEL_ENDS_WITH_DASH';
    }
    if (!/^[a-z0-9\-]+$/.test(label)) {
      return 'LABEL_INVALID_CHARS';
    }
  }
};


//
// Public API
//


//
// Parse domain.
//
exports.parse = function (input) {

  if (typeof input !== 'string') {
    throw new TypeError('Domain name must be a string.');
  }

  // Force domain to lowercase.
  var domain = input.slice(0).toLowerCase();

  // Handle FQDN.
  // TODO: Simply remove trailing dot?
  if (domain.charAt(domain.length - 1) === '.') {
    domain = domain.slice(0, domain.length - 1);
  }

  // Validate and sanitise input.
  var error = internals.validate(domain);
  if (error) {
    return {
      input: input,
      error: {
        message: exports.errorCodes[error],
        code: error
      }
    };
  }

  var parsed = {
    input: input,
    tld: null,
    sld: null,
    domain: null,
    subdomain: null,
    listed: false
  };

  var domainParts = domain.split('.');

  // Non-Internet TLD
  if (domainParts[domainParts.length - 1] === 'local') {
    return parsed;
  }

  var handlePunycode = function () {

    if (!/xn--/.test(domain)) {
      return parsed;
    }
    if (parsed.domain) {
      parsed.domain = Punycode.toASCII(parsed.domain);
    }
    if (parsed.subdomain) {
      parsed.subdomain = Punycode.toASCII(parsed.subdomain);
    }
    return parsed;
  };

  var rule = internals.findRule(domain);

  // Unlisted tld.
  if (!rule) {
    if (domainParts.length < 2) {
      return parsed;
    }
    parsed.tld = domainParts.pop();
    parsed.sld = domainParts.pop();
    parsed.domain = [parsed.sld, parsed.tld].join('.');
    if (domainParts.length) {
      parsed.subdomain = domainParts.pop();
    }
    return handlePunycode();
  }

  // At this point we know the public suffix is listed.
  parsed.listed = true;

  var tldParts = rule.suffix.split('.');
  var privateParts = domainParts.slice(0, domainParts.length - tldParts.length);

  if (rule.exception) {
    privateParts.push(tldParts.shift());
  }

  parsed.tld = tldParts.join('.');

  if (!privateParts.length) {
    return handlePunycode();
  }

  if (rule.wildcard) {
    tldParts.unshift(privateParts.pop());
    parsed.tld = tldParts.join('.');
  }

  if (!privateParts.length) {
    return handlePunycode();
  }

  parsed.sld = privateParts.pop();
  parsed.domain = [parsed.sld,  parsed.tld].join('.');

  if (privateParts.length) {
    parsed.subdomain = privateParts.join('.');
  }

  return handlePunycode();
};


//
// Get domain.
//
exports.get = function (domain) {

  if (!domain) {
    return null;
  }
  return exports.parse(domain).domain || null;
};


//
// Check whether domain belongs to a known public suffix.
//
exports.isValid = function (domain) {

  var parsed = exports.parse(domain);
  return Boolean(parsed.domain && parsed.listed);
};


/***/ }),
/* 314 */
/***/ (function(module, exports) {

module.exports = require("punycode");

/***/ }),
/* 315 */
/***/ (function(module) {

module.exports = JSON.parse("[\"ac\",\"com.ac\",\"edu.ac\",\"gov.ac\",\"net.ac\",\"mil.ac\",\"org.ac\",\"ad\",\"nom.ad\",\"ae\",\"co.ae\",\"net.ae\",\"org.ae\",\"sch.ae\",\"ac.ae\",\"gov.ae\",\"mil.ae\",\"aero\",\"accident-investigation.aero\",\"accident-prevention.aero\",\"aerobatic.aero\",\"aeroclub.aero\",\"aerodrome.aero\",\"agents.aero\",\"aircraft.aero\",\"airline.aero\",\"airport.aero\",\"air-surveillance.aero\",\"airtraffic.aero\",\"air-traffic-control.aero\",\"ambulance.aero\",\"amusement.aero\",\"association.aero\",\"author.aero\",\"ballooning.aero\",\"broker.aero\",\"caa.aero\",\"cargo.aero\",\"catering.aero\",\"certification.aero\",\"championship.aero\",\"charter.aero\",\"civilaviation.aero\",\"club.aero\",\"conference.aero\",\"consultant.aero\",\"consulting.aero\",\"control.aero\",\"council.aero\",\"crew.aero\",\"design.aero\",\"dgca.aero\",\"educator.aero\",\"emergency.aero\",\"engine.aero\",\"engineer.aero\",\"entertainment.aero\",\"equipment.aero\",\"exchange.aero\",\"express.aero\",\"federation.aero\",\"flight.aero\",\"freight.aero\",\"fuel.aero\",\"gliding.aero\",\"government.aero\",\"groundhandling.aero\",\"group.aero\",\"hanggliding.aero\",\"homebuilt.aero\",\"insurance.aero\",\"journal.aero\",\"journalist.aero\",\"leasing.aero\",\"logistics.aero\",\"magazine.aero\",\"maintenance.aero\",\"media.aero\",\"microlight.aero\",\"modelling.aero\",\"navigation.aero\",\"parachuting.aero\",\"paragliding.aero\",\"passenger-association.aero\",\"pilot.aero\",\"press.aero\",\"production.aero\",\"recreation.aero\",\"repbody.aero\",\"res.aero\",\"research.aero\",\"rotorcraft.aero\",\"safety.aero\",\"scientist.aero\",\"services.aero\",\"show.aero\",\"skydiving.aero\",\"software.aero\",\"student.aero\",\"trader.aero\",\"trading.aero\",\"trainer.aero\",\"union.aero\",\"workinggroup.aero\",\"works.aero\",\"af\",\"gov.af\",\"com.af\",\"org.af\",\"net.af\",\"edu.af\",\"ag\",\"com.ag\",\"org.ag\",\"net.ag\",\"co.ag\",\"nom.ag\",\"ai\",\"off.ai\",\"com.ai\",\"net.ai\",\"org.ai\",\"al\",\"com.al\",\"edu.al\",\"gov.al\",\"mil.al\",\"net.al\",\"org.al\",\"am\",\"co.am\",\"com.am\",\"commune.am\",\"net.am\",\"org.am\",\"ao\",\"ed.ao\",\"gv.ao\",\"og.ao\",\"co.ao\",\"pb.ao\",\"it.ao\",\"aq\",\"ar\",\"com.ar\",\"edu.ar\",\"gob.ar\",\"gov.ar\",\"int.ar\",\"mil.ar\",\"musica.ar\",\"net.ar\",\"org.ar\",\"tur.ar\",\"arpa\",\"e164.arpa\",\"in-addr.arpa\",\"ip6.arpa\",\"iris.arpa\",\"uri.arpa\",\"urn.arpa\",\"as\",\"gov.as\",\"asia\",\"at\",\"ac.at\",\"co.at\",\"gv.at\",\"or.at\",\"au\",\"com.au\",\"net.au\",\"org.au\",\"edu.au\",\"gov.au\",\"asn.au\",\"id.au\",\"info.au\",\"conf.au\",\"oz.au\",\"act.au\",\"nsw.au\",\"nt.au\",\"qld.au\",\"sa.au\",\"tas.au\",\"vic.au\",\"wa.au\",\"act.edu.au\",\"nsw.edu.au\",\"nt.edu.au\",\"qld.edu.au\",\"sa.edu.au\",\"tas.edu.au\",\"vic.edu.au\",\"wa.edu.au\",\"qld.gov.au\",\"sa.gov.au\",\"tas.gov.au\",\"vic.gov.au\",\"wa.gov.au\",\"aw\",\"com.aw\",\"ax\",\"az\",\"com.az\",\"net.az\",\"int.az\",\"gov.az\",\"org.az\",\"edu.az\",\"info.az\",\"pp.az\",\"mil.az\",\"name.az\",\"pro.az\",\"biz.az\",\"ba\",\"com.ba\",\"edu.ba\",\"gov.ba\",\"mil.ba\",\"net.ba\",\"org.ba\",\"bb\",\"biz.bb\",\"co.bb\",\"com.bb\",\"edu.bb\",\"gov.bb\",\"info.bb\",\"net.bb\",\"org.bb\",\"store.bb\",\"tv.bb\",\"*.bd\",\"be\",\"ac.be\",\"bf\",\"gov.bf\",\"bg\",\"a.bg\",\"b.bg\",\"c.bg\",\"d.bg\",\"e.bg\",\"f.bg\",\"g.bg\",\"h.bg\",\"i.bg\",\"j.bg\",\"k.bg\",\"l.bg\",\"m.bg\",\"n.bg\",\"o.bg\",\"p.bg\",\"q.bg\",\"r.bg\",\"s.bg\",\"t.bg\",\"u.bg\",\"v.bg\",\"w.bg\",\"x.bg\",\"y.bg\",\"z.bg\",\"0.bg\",\"1.bg\",\"2.bg\",\"3.bg\",\"4.bg\",\"5.bg\",\"6.bg\",\"7.bg\",\"8.bg\",\"9.bg\",\"bh\",\"com.bh\",\"edu.bh\",\"net.bh\",\"org.bh\",\"gov.bh\",\"bi\",\"co.bi\",\"com.bi\",\"edu.bi\",\"or.bi\",\"org.bi\",\"biz\",\"bj\",\"asso.bj\",\"barreau.bj\",\"gouv.bj\",\"bm\",\"com.bm\",\"edu.bm\",\"gov.bm\",\"net.bm\",\"org.bm\",\"bn\",\"com.bn\",\"edu.bn\",\"gov.bn\",\"net.bn\",\"org.bn\",\"bo\",\"com.bo\",\"edu.bo\",\"gob.bo\",\"int.bo\",\"org.bo\",\"net.bo\",\"mil.bo\",\"tv.bo\",\"web.bo\",\"academia.bo\",\"agro.bo\",\"arte.bo\",\"blog.bo\",\"bolivia.bo\",\"ciencia.bo\",\"cooperativa.bo\",\"democracia.bo\",\"deporte.bo\",\"ecologia.bo\",\"economia.bo\",\"empresa.bo\",\"indigena.bo\",\"industria.bo\",\"info.bo\",\"medicina.bo\",\"movimiento.bo\",\"musica.bo\",\"natural.bo\",\"nombre.bo\",\"noticias.bo\",\"patria.bo\",\"politica.bo\",\"profesional.bo\",\"plurinacional.bo\",\"pueblo.bo\",\"revista.bo\",\"salud.bo\",\"tecnologia.bo\",\"tksat.bo\",\"transporte.bo\",\"wiki.bo\",\"br\",\"9guacu.br\",\"abc.br\",\"adm.br\",\"adv.br\",\"agr.br\",\"aju.br\",\"am.br\",\"anani.br\",\"aparecida.br\",\"arq.br\",\"art.br\",\"ato.br\",\"b.br\",\"barueri.br\",\"belem.br\",\"bhz.br\",\"bio.br\",\"blog.br\",\"bmd.br\",\"boavista.br\",\"bsb.br\",\"campinagrande.br\",\"campinas.br\",\"caxias.br\",\"cim.br\",\"cng.br\",\"cnt.br\",\"com.br\",\"contagem.br\",\"coop.br\",\"cri.br\",\"cuiaba.br\",\"curitiba.br\",\"def.br\",\"ecn.br\",\"eco.br\",\"edu.br\",\"emp.br\",\"eng.br\",\"esp.br\",\"etc.br\",\"eti.br\",\"far.br\",\"feira.br\",\"flog.br\",\"floripa.br\",\"fm.br\",\"fnd.br\",\"fortal.br\",\"fot.br\",\"foz.br\",\"fst.br\",\"g12.br\",\"ggf.br\",\"goiania.br\",\"gov.br\",\"ac.gov.br\",\"al.gov.br\",\"am.gov.br\",\"ap.gov.br\",\"ba.gov.br\",\"ce.gov.br\",\"df.gov.br\",\"es.gov.br\",\"go.gov.br\",\"ma.gov.br\",\"mg.gov.br\",\"ms.gov.br\",\"mt.gov.br\",\"pa.gov.br\",\"pb.gov.br\",\"pe.gov.br\",\"pi.gov.br\",\"pr.gov.br\",\"rj.gov.br\",\"rn.gov.br\",\"ro.gov.br\",\"rr.gov.br\",\"rs.gov.br\",\"sc.gov.br\",\"se.gov.br\",\"sp.gov.br\",\"to.gov.br\",\"gru.br\",\"imb.br\",\"ind.br\",\"inf.br\",\"jab.br\",\"jampa.br\",\"jdf.br\",\"joinville.br\",\"jor.br\",\"jus.br\",\"leg.br\",\"lel.br\",\"londrina.br\",\"macapa.br\",\"maceio.br\",\"manaus.br\",\"maringa.br\",\"mat.br\",\"med.br\",\"mil.br\",\"morena.br\",\"mp.br\",\"mus.br\",\"natal.br\",\"net.br\",\"niteroi.br\",\"*.nom.br\",\"not.br\",\"ntr.br\",\"odo.br\",\"ong.br\",\"org.br\",\"osasco.br\",\"palmas.br\",\"poa.br\",\"ppg.br\",\"pro.br\",\"psc.br\",\"psi.br\",\"pvh.br\",\"qsl.br\",\"radio.br\",\"rec.br\",\"recife.br\",\"ribeirao.br\",\"rio.br\",\"riobranco.br\",\"riopreto.br\",\"salvador.br\",\"sampa.br\",\"santamaria.br\",\"santoandre.br\",\"saobernardo.br\",\"saogonca.br\",\"sjc.br\",\"slg.br\",\"slz.br\",\"sorocaba.br\",\"srv.br\",\"taxi.br\",\"tc.br\",\"teo.br\",\"the.br\",\"tmp.br\",\"trd.br\",\"tur.br\",\"tv.br\",\"udi.br\",\"vet.br\",\"vix.br\",\"vlog.br\",\"wiki.br\",\"zlg.br\",\"bs\",\"com.bs\",\"net.bs\",\"org.bs\",\"edu.bs\",\"gov.bs\",\"bt\",\"com.bt\",\"edu.bt\",\"gov.bt\",\"net.bt\",\"org.bt\",\"bv\",\"bw\",\"co.bw\",\"org.bw\",\"by\",\"gov.by\",\"mil.by\",\"com.by\",\"of.by\",\"bz\",\"com.bz\",\"net.bz\",\"org.bz\",\"edu.bz\",\"gov.bz\",\"ca\",\"ab.ca\",\"bc.ca\",\"mb.ca\",\"nb.ca\",\"nf.ca\",\"nl.ca\",\"ns.ca\",\"nt.ca\",\"nu.ca\",\"on.ca\",\"pe.ca\",\"qc.ca\",\"sk.ca\",\"yk.ca\",\"gc.ca\",\"cat\",\"cc\",\"cd\",\"gov.cd\",\"cf\",\"cg\",\"ch\",\"ci\",\"org.ci\",\"or.ci\",\"com.ci\",\"co.ci\",\"edu.ci\",\"ed.ci\",\"ac.ci\",\"net.ci\",\"go.ci\",\"asso.ci\",\"aéroport.ci\",\"int.ci\",\"presse.ci\",\"md.ci\",\"gouv.ci\",\"*.ck\",\"!www.ck\",\"cl\",\"gov.cl\",\"gob.cl\",\"co.cl\",\"mil.cl\",\"cm\",\"co.cm\",\"com.cm\",\"gov.cm\",\"net.cm\",\"cn\",\"ac.cn\",\"com.cn\",\"edu.cn\",\"gov.cn\",\"net.cn\",\"org.cn\",\"mil.cn\",\"公司.cn\",\"网络.cn\",\"網絡.cn\",\"ah.cn\",\"bj.cn\",\"cq.cn\",\"fj.cn\",\"gd.cn\",\"gs.cn\",\"gz.cn\",\"gx.cn\",\"ha.cn\",\"hb.cn\",\"he.cn\",\"hi.cn\",\"hl.cn\",\"hn.cn\",\"jl.cn\",\"js.cn\",\"jx.cn\",\"ln.cn\",\"nm.cn\",\"nx.cn\",\"qh.cn\",\"sc.cn\",\"sd.cn\",\"sh.cn\",\"sn.cn\",\"sx.cn\",\"tj.cn\",\"xj.cn\",\"xz.cn\",\"yn.cn\",\"zj.cn\",\"hk.cn\",\"mo.cn\",\"tw.cn\",\"co\",\"arts.co\",\"com.co\",\"edu.co\",\"firm.co\",\"gov.co\",\"info.co\",\"int.co\",\"mil.co\",\"net.co\",\"nom.co\",\"org.co\",\"rec.co\",\"web.co\",\"com\",\"coop\",\"cr\",\"ac.cr\",\"co.cr\",\"ed.cr\",\"fi.cr\",\"go.cr\",\"or.cr\",\"sa.cr\",\"cu\",\"com.cu\",\"edu.cu\",\"org.cu\",\"net.cu\",\"gov.cu\",\"inf.cu\",\"cv\",\"cw\",\"com.cw\",\"edu.cw\",\"net.cw\",\"org.cw\",\"cx\",\"gov.cx\",\"cy\",\"ac.cy\",\"biz.cy\",\"com.cy\",\"ekloges.cy\",\"gov.cy\",\"ltd.cy\",\"name.cy\",\"net.cy\",\"org.cy\",\"parliament.cy\",\"press.cy\",\"pro.cy\",\"tm.cy\",\"cz\",\"de\",\"dj\",\"dk\",\"dm\",\"com.dm\",\"net.dm\",\"org.dm\",\"edu.dm\",\"gov.dm\",\"do\",\"art.do\",\"com.do\",\"edu.do\",\"gob.do\",\"gov.do\",\"mil.do\",\"net.do\",\"org.do\",\"sld.do\",\"web.do\",\"dz\",\"com.dz\",\"org.dz\",\"net.dz\",\"gov.dz\",\"edu.dz\",\"asso.dz\",\"pol.dz\",\"art.dz\",\"ec\",\"com.ec\",\"info.ec\",\"net.ec\",\"fin.ec\",\"k12.ec\",\"med.ec\",\"pro.ec\",\"org.ec\",\"edu.ec\",\"gov.ec\",\"gob.ec\",\"mil.ec\",\"edu\",\"ee\",\"edu.ee\",\"gov.ee\",\"riik.ee\",\"lib.ee\",\"med.ee\",\"com.ee\",\"pri.ee\",\"aip.ee\",\"org.ee\",\"fie.ee\",\"eg\",\"com.eg\",\"edu.eg\",\"eun.eg\",\"gov.eg\",\"mil.eg\",\"name.eg\",\"net.eg\",\"org.eg\",\"sci.eg\",\"*.er\",\"es\",\"com.es\",\"nom.es\",\"org.es\",\"gob.es\",\"edu.es\",\"et\",\"com.et\",\"gov.et\",\"org.et\",\"edu.et\",\"biz.et\",\"name.et\",\"info.et\",\"net.et\",\"eu\",\"fi\",\"aland.fi\",\"*.fj\",\"*.fk\",\"fm\",\"fo\",\"fr\",\"asso.fr\",\"com.fr\",\"gouv.fr\",\"nom.fr\",\"prd.fr\",\"tm.fr\",\"aeroport.fr\",\"avocat.fr\",\"avoues.fr\",\"cci.fr\",\"chambagri.fr\",\"chirurgiens-dentistes.fr\",\"experts-comptables.fr\",\"geometre-expert.fr\",\"greta.fr\",\"huissier-justice.fr\",\"medecin.fr\",\"notaires.fr\",\"pharmacien.fr\",\"port.fr\",\"veterinaire.fr\",\"ga\",\"gb\",\"gd\",\"ge\",\"com.ge\",\"edu.ge\",\"gov.ge\",\"org.ge\",\"mil.ge\",\"net.ge\",\"pvt.ge\",\"gf\",\"gg\",\"co.gg\",\"net.gg\",\"org.gg\",\"gh\",\"com.gh\",\"edu.gh\",\"gov.gh\",\"org.gh\",\"mil.gh\",\"gi\",\"com.gi\",\"ltd.gi\",\"gov.gi\",\"mod.gi\",\"edu.gi\",\"org.gi\",\"gl\",\"co.gl\",\"com.gl\",\"edu.gl\",\"net.gl\",\"org.gl\",\"gm\",\"gn\",\"ac.gn\",\"com.gn\",\"edu.gn\",\"gov.gn\",\"org.gn\",\"net.gn\",\"gov\",\"gp\",\"com.gp\",\"net.gp\",\"mobi.gp\",\"edu.gp\",\"org.gp\",\"asso.gp\",\"gq\",\"gr\",\"com.gr\",\"edu.gr\",\"net.gr\",\"org.gr\",\"gov.gr\",\"gs\",\"gt\",\"com.gt\",\"edu.gt\",\"gob.gt\",\"ind.gt\",\"mil.gt\",\"net.gt\",\"org.gt\",\"gu\",\"com.gu\",\"edu.gu\",\"gov.gu\",\"guam.gu\",\"info.gu\",\"net.gu\",\"org.gu\",\"web.gu\",\"gw\",\"gy\",\"co.gy\",\"com.gy\",\"edu.gy\",\"gov.gy\",\"net.gy\",\"org.gy\",\"hk\",\"com.hk\",\"edu.hk\",\"gov.hk\",\"idv.hk\",\"net.hk\",\"org.hk\",\"公司.hk\",\"教育.hk\",\"敎育.hk\",\"政府.hk\",\"個人.hk\",\"个人.hk\",\"箇人.hk\",\"網络.hk\",\"网络.hk\",\"组織.hk\",\"網絡.hk\",\"网絡.hk\",\"组织.hk\",\"組織.hk\",\"組织.hk\",\"hm\",\"hn\",\"com.hn\",\"edu.hn\",\"org.hn\",\"net.hn\",\"mil.hn\",\"gob.hn\",\"hr\",\"iz.hr\",\"from.hr\",\"name.hr\",\"com.hr\",\"ht\",\"com.ht\",\"shop.ht\",\"firm.ht\",\"info.ht\",\"adult.ht\",\"net.ht\",\"pro.ht\",\"org.ht\",\"med.ht\",\"art.ht\",\"coop.ht\",\"pol.ht\",\"asso.ht\",\"edu.ht\",\"rel.ht\",\"gouv.ht\",\"perso.ht\",\"hu\",\"co.hu\",\"info.hu\",\"org.hu\",\"priv.hu\",\"sport.hu\",\"tm.hu\",\"2000.hu\",\"agrar.hu\",\"bolt.hu\",\"casino.hu\",\"city.hu\",\"erotica.hu\",\"erotika.hu\",\"film.hu\",\"forum.hu\",\"games.hu\",\"hotel.hu\",\"ingatlan.hu\",\"jogasz.hu\",\"konyvelo.hu\",\"lakas.hu\",\"media.hu\",\"news.hu\",\"reklam.hu\",\"sex.hu\",\"shop.hu\",\"suli.hu\",\"szex.hu\",\"tozsde.hu\",\"utazas.hu\",\"video.hu\",\"id\",\"ac.id\",\"biz.id\",\"co.id\",\"desa.id\",\"go.id\",\"mil.id\",\"my.id\",\"net.id\",\"or.id\",\"ponpes.id\",\"sch.id\",\"web.id\",\"ie\",\"gov.ie\",\"il\",\"ac.il\",\"co.il\",\"gov.il\",\"idf.il\",\"k12.il\",\"muni.il\",\"net.il\",\"org.il\",\"im\",\"ac.im\",\"co.im\",\"com.im\",\"ltd.co.im\",\"net.im\",\"org.im\",\"plc.co.im\",\"tt.im\",\"tv.im\",\"in\",\"co.in\",\"firm.in\",\"net.in\",\"org.in\",\"gen.in\",\"ind.in\",\"nic.in\",\"ac.in\",\"edu.in\",\"res.in\",\"gov.in\",\"mil.in\",\"info\",\"int\",\"eu.int\",\"io\",\"com.io\",\"iq\",\"gov.iq\",\"edu.iq\",\"mil.iq\",\"com.iq\",\"org.iq\",\"net.iq\",\"ir\",\"ac.ir\",\"co.ir\",\"gov.ir\",\"id.ir\",\"net.ir\",\"org.ir\",\"sch.ir\",\"ایران.ir\",\"ايران.ir\",\"is\",\"net.is\",\"com.is\",\"edu.is\",\"gov.is\",\"org.is\",\"int.is\",\"it\",\"gov.it\",\"edu.it\",\"abr.it\",\"abruzzo.it\",\"aosta-valley.it\",\"aostavalley.it\",\"bas.it\",\"basilicata.it\",\"cal.it\",\"calabria.it\",\"cam.it\",\"campania.it\",\"emilia-romagna.it\",\"emiliaromagna.it\",\"emr.it\",\"friuli-v-giulia.it\",\"friuli-ve-giulia.it\",\"friuli-vegiulia.it\",\"friuli-venezia-giulia.it\",\"friuli-veneziagiulia.it\",\"friuli-vgiulia.it\",\"friuliv-giulia.it\",\"friulive-giulia.it\",\"friulivegiulia.it\",\"friulivenezia-giulia.it\",\"friuliveneziagiulia.it\",\"friulivgiulia.it\",\"fvg.it\",\"laz.it\",\"lazio.it\",\"lig.it\",\"liguria.it\",\"lom.it\",\"lombardia.it\",\"lombardy.it\",\"lucania.it\",\"mar.it\",\"marche.it\",\"mol.it\",\"molise.it\",\"piedmont.it\",\"piemonte.it\",\"pmn.it\",\"pug.it\",\"puglia.it\",\"sar.it\",\"sardegna.it\",\"sardinia.it\",\"sic.it\",\"sicilia.it\",\"sicily.it\",\"taa.it\",\"tos.it\",\"toscana.it\",\"trentin-sud-tirol.it\",\"trentin-süd-tirol.it\",\"trentin-sudtirol.it\",\"trentin-südtirol.it\",\"trentin-sued-tirol.it\",\"trentin-suedtirol.it\",\"trentino-a-adige.it\",\"trentino-aadige.it\",\"trentino-alto-adige.it\",\"trentino-altoadige.it\",\"trentino-s-tirol.it\",\"trentino-stirol.it\",\"trentino-sud-tirol.it\",\"trentino-süd-tirol.it\",\"trentino-sudtirol.it\",\"trentino-südtirol.it\",\"trentino-sued-tirol.it\",\"trentino-suedtirol.it\",\"trentino.it\",\"trentinoa-adige.it\",\"trentinoaadige.it\",\"trentinoalto-adige.it\",\"trentinoaltoadige.it\",\"trentinos-tirol.it\",\"trentinostirol.it\",\"trentinosud-tirol.it\",\"trentinosüd-tirol.it\",\"trentinosudtirol.it\",\"trentinosüdtirol.it\",\"trentinosued-tirol.it\",\"trentinosuedtirol.it\",\"trentinsud-tirol.it\",\"trentinsüd-tirol.it\",\"trentinsudtirol.it\",\"trentinsüdtirol.it\",\"trentinsued-tirol.it\",\"trentinsuedtirol.it\",\"tuscany.it\",\"umb.it\",\"umbria.it\",\"val-d-aosta.it\",\"val-daosta.it\",\"vald-aosta.it\",\"valdaosta.it\",\"valle-aosta.it\",\"valle-d-aosta.it\",\"valle-daosta.it\",\"valleaosta.it\",\"valled-aosta.it\",\"valledaosta.it\",\"vallee-aoste.it\",\"vallée-aoste.it\",\"vallee-d-aoste.it\",\"vallée-d-aoste.it\",\"valleeaoste.it\",\"valléeaoste.it\",\"valleedaoste.it\",\"valléedaoste.it\",\"vao.it\",\"vda.it\",\"ven.it\",\"veneto.it\",\"ag.it\",\"agrigento.it\",\"al.it\",\"alessandria.it\",\"alto-adige.it\",\"altoadige.it\",\"an.it\",\"ancona.it\",\"andria-barletta-trani.it\",\"andria-trani-barletta.it\",\"andriabarlettatrani.it\",\"andriatranibarletta.it\",\"ao.it\",\"aosta.it\",\"aoste.it\",\"ap.it\",\"aq.it\",\"aquila.it\",\"ar.it\",\"arezzo.it\",\"ascoli-piceno.it\",\"ascolipiceno.it\",\"asti.it\",\"at.it\",\"av.it\",\"avellino.it\",\"ba.it\",\"balsan-sudtirol.it\",\"balsan-südtirol.it\",\"balsan-suedtirol.it\",\"balsan.it\",\"bari.it\",\"barletta-trani-andria.it\",\"barlettatraniandria.it\",\"belluno.it\",\"benevento.it\",\"bergamo.it\",\"bg.it\",\"bi.it\",\"biella.it\",\"bl.it\",\"bn.it\",\"bo.it\",\"bologna.it\",\"bolzano-altoadige.it\",\"bolzano.it\",\"bozen-sudtirol.it\",\"bozen-südtirol.it\",\"bozen-suedtirol.it\",\"bozen.it\",\"br.it\",\"brescia.it\",\"brindisi.it\",\"bs.it\",\"bt.it\",\"bulsan-sudtirol.it\",\"bulsan-südtirol.it\",\"bulsan-suedtirol.it\",\"bulsan.it\",\"bz.it\",\"ca.it\",\"cagliari.it\",\"caltanissetta.it\",\"campidano-medio.it\",\"campidanomedio.it\",\"campobasso.it\",\"carbonia-iglesias.it\",\"carboniaiglesias.it\",\"carrara-massa.it\",\"carraramassa.it\",\"caserta.it\",\"catania.it\",\"catanzaro.it\",\"cb.it\",\"ce.it\",\"cesena-forli.it\",\"cesena-forlì.it\",\"cesenaforli.it\",\"cesenaforlì.it\",\"ch.it\",\"chieti.it\",\"ci.it\",\"cl.it\",\"cn.it\",\"co.it\",\"como.it\",\"cosenza.it\",\"cr.it\",\"cremona.it\",\"crotone.it\",\"cs.it\",\"ct.it\",\"cuneo.it\",\"cz.it\",\"dell-ogliastra.it\",\"dellogliastra.it\",\"en.it\",\"enna.it\",\"fc.it\",\"fe.it\",\"fermo.it\",\"ferrara.it\",\"fg.it\",\"fi.it\",\"firenze.it\",\"florence.it\",\"fm.it\",\"foggia.it\",\"forli-cesena.it\",\"forlì-cesena.it\",\"forlicesena.it\",\"forlìcesena.it\",\"fr.it\",\"frosinone.it\",\"ge.it\",\"genoa.it\",\"genova.it\",\"go.it\",\"gorizia.it\",\"gr.it\",\"grosseto.it\",\"iglesias-carbonia.it\",\"iglesiascarbonia.it\",\"im.it\",\"imperia.it\",\"is.it\",\"isernia.it\",\"kr.it\",\"la-spezia.it\",\"laquila.it\",\"laspezia.it\",\"latina.it\",\"lc.it\",\"le.it\",\"lecce.it\",\"lecco.it\",\"li.it\",\"livorno.it\",\"lo.it\",\"lodi.it\",\"lt.it\",\"lu.it\",\"lucca.it\",\"macerata.it\",\"mantova.it\",\"massa-carrara.it\",\"massacarrara.it\",\"matera.it\",\"mb.it\",\"mc.it\",\"me.it\",\"medio-campidano.it\",\"mediocampidano.it\",\"messina.it\",\"mi.it\",\"milan.it\",\"milano.it\",\"mn.it\",\"mo.it\",\"modena.it\",\"monza-brianza.it\",\"monza-e-della-brianza.it\",\"monza.it\",\"monzabrianza.it\",\"monzaebrianza.it\",\"monzaedellabrianza.it\",\"ms.it\",\"mt.it\",\"na.it\",\"naples.it\",\"napoli.it\",\"no.it\",\"novara.it\",\"nu.it\",\"nuoro.it\",\"og.it\",\"ogliastra.it\",\"olbia-tempio.it\",\"olbiatempio.it\",\"or.it\",\"oristano.it\",\"ot.it\",\"pa.it\",\"padova.it\",\"padua.it\",\"palermo.it\",\"parma.it\",\"pavia.it\",\"pc.it\",\"pd.it\",\"pe.it\",\"perugia.it\",\"pesaro-urbino.it\",\"pesarourbino.it\",\"pescara.it\",\"pg.it\",\"pi.it\",\"piacenza.it\",\"pisa.it\",\"pistoia.it\",\"pn.it\",\"po.it\",\"pordenone.it\",\"potenza.it\",\"pr.it\",\"prato.it\",\"pt.it\",\"pu.it\",\"pv.it\",\"pz.it\",\"ra.it\",\"ragusa.it\",\"ravenna.it\",\"rc.it\",\"re.it\",\"reggio-calabria.it\",\"reggio-emilia.it\",\"reggiocalabria.it\",\"reggioemilia.it\",\"rg.it\",\"ri.it\",\"rieti.it\",\"rimini.it\",\"rm.it\",\"rn.it\",\"ro.it\",\"roma.it\",\"rome.it\",\"rovigo.it\",\"sa.it\",\"salerno.it\",\"sassari.it\",\"savona.it\",\"si.it\",\"siena.it\",\"siracusa.it\",\"so.it\",\"sondrio.it\",\"sp.it\",\"sr.it\",\"ss.it\",\"suedtirol.it\",\"südtirol.it\",\"sv.it\",\"ta.it\",\"taranto.it\",\"te.it\",\"tempio-olbia.it\",\"tempioolbia.it\",\"teramo.it\",\"terni.it\",\"tn.it\",\"to.it\",\"torino.it\",\"tp.it\",\"tr.it\",\"trani-andria-barletta.it\",\"trani-barletta-andria.it\",\"traniandriabarletta.it\",\"tranibarlettaandria.it\",\"trapani.it\",\"trento.it\",\"treviso.it\",\"trieste.it\",\"ts.it\",\"turin.it\",\"tv.it\",\"ud.it\",\"udine.it\",\"urbino-pesaro.it\",\"urbinopesaro.it\",\"va.it\",\"varese.it\",\"vb.it\",\"vc.it\",\"ve.it\",\"venezia.it\",\"venice.it\",\"verbania.it\",\"vercelli.it\",\"verona.it\",\"vi.it\",\"vibo-valentia.it\",\"vibovalentia.it\",\"vicenza.it\",\"viterbo.it\",\"vr.it\",\"vs.it\",\"vt.it\",\"vv.it\",\"je\",\"co.je\",\"net.je\",\"org.je\",\"*.jm\",\"jo\",\"com.jo\",\"org.jo\",\"net.jo\",\"edu.jo\",\"sch.jo\",\"gov.jo\",\"mil.jo\",\"name.jo\",\"jobs\",\"jp\",\"ac.jp\",\"ad.jp\",\"co.jp\",\"ed.jp\",\"go.jp\",\"gr.jp\",\"lg.jp\",\"ne.jp\",\"or.jp\",\"aichi.jp\",\"akita.jp\",\"aomori.jp\",\"chiba.jp\",\"ehime.jp\",\"fukui.jp\",\"fukuoka.jp\",\"fukushima.jp\",\"gifu.jp\",\"gunma.jp\",\"hiroshima.jp\",\"hokkaido.jp\",\"hyogo.jp\",\"ibaraki.jp\",\"ishikawa.jp\",\"iwate.jp\",\"kagawa.jp\",\"kagoshima.jp\",\"kanagawa.jp\",\"kochi.jp\",\"kumamoto.jp\",\"kyoto.jp\",\"mie.jp\",\"miyagi.jp\",\"miyazaki.jp\",\"nagano.jp\",\"nagasaki.jp\",\"nara.jp\",\"niigata.jp\",\"oita.jp\",\"okayama.jp\",\"okinawa.jp\",\"osaka.jp\",\"saga.jp\",\"saitama.jp\",\"shiga.jp\",\"shimane.jp\",\"shizuoka.jp\",\"tochigi.jp\",\"tokushima.jp\",\"tokyo.jp\",\"tottori.jp\",\"toyama.jp\",\"wakayama.jp\",\"yamagata.jp\",\"yamaguchi.jp\",\"yamanashi.jp\",\"栃木.jp\",\"愛知.jp\",\"愛媛.jp\",\"兵庫.jp\",\"熊本.jp\",\"茨城.jp\",\"北海道.jp\",\"千葉.jp\",\"和歌山.jp\",\"長崎.jp\",\"長野.jp\",\"新潟.jp\",\"青森.jp\",\"静岡.jp\",\"東京.jp\",\"石川.jp\",\"埼玉.jp\",\"三重.jp\",\"京都.jp\",\"佐賀.jp\",\"大分.jp\",\"大阪.jp\",\"奈良.jp\",\"宮城.jp\",\"宮崎.jp\",\"富山.jp\",\"山口.jp\",\"山形.jp\",\"山梨.jp\",\"岩手.jp\",\"岐阜.jp\",\"岡山.jp\",\"島根.jp\",\"広島.jp\",\"徳島.jp\",\"沖縄.jp\",\"滋賀.jp\",\"神奈川.jp\",\"福井.jp\",\"福岡.jp\",\"福島.jp\",\"秋田.jp\",\"群馬.jp\",\"香川.jp\",\"高知.jp\",\"鳥取.jp\",\"鹿児島.jp\",\"*.kawasaki.jp\",\"*.kitakyushu.jp\",\"*.kobe.jp\",\"*.nagoya.jp\",\"*.sapporo.jp\",\"*.sendai.jp\",\"*.yokohama.jp\",\"!city.kawasaki.jp\",\"!city.kitakyushu.jp\",\"!city.kobe.jp\",\"!city.nagoya.jp\",\"!city.sapporo.jp\",\"!city.sendai.jp\",\"!city.yokohama.jp\",\"aisai.aichi.jp\",\"ama.aichi.jp\",\"anjo.aichi.jp\",\"asuke.aichi.jp\",\"chiryu.aichi.jp\",\"chita.aichi.jp\",\"fuso.aichi.jp\",\"gamagori.aichi.jp\",\"handa.aichi.jp\",\"hazu.aichi.jp\",\"hekinan.aichi.jp\",\"higashiura.aichi.jp\",\"ichinomiya.aichi.jp\",\"inazawa.aichi.jp\",\"inuyama.aichi.jp\",\"isshiki.aichi.jp\",\"iwakura.aichi.jp\",\"kanie.aichi.jp\",\"kariya.aichi.jp\",\"kasugai.aichi.jp\",\"kira.aichi.jp\",\"kiyosu.aichi.jp\",\"komaki.aichi.jp\",\"konan.aichi.jp\",\"kota.aichi.jp\",\"mihama.aichi.jp\",\"miyoshi.aichi.jp\",\"nishio.aichi.jp\",\"nisshin.aichi.jp\",\"obu.aichi.jp\",\"oguchi.aichi.jp\",\"oharu.aichi.jp\",\"okazaki.aichi.jp\",\"owariasahi.aichi.jp\",\"seto.aichi.jp\",\"shikatsu.aichi.jp\",\"shinshiro.aichi.jp\",\"shitara.aichi.jp\",\"tahara.aichi.jp\",\"takahama.aichi.jp\",\"tobishima.aichi.jp\",\"toei.aichi.jp\",\"togo.aichi.jp\",\"tokai.aichi.jp\",\"tokoname.aichi.jp\",\"toyoake.aichi.jp\",\"toyohashi.aichi.jp\",\"toyokawa.aichi.jp\",\"toyone.aichi.jp\",\"toyota.aichi.jp\",\"tsushima.aichi.jp\",\"yatomi.aichi.jp\",\"akita.akita.jp\",\"daisen.akita.jp\",\"fujisato.akita.jp\",\"gojome.akita.jp\",\"hachirogata.akita.jp\",\"happou.akita.jp\",\"higashinaruse.akita.jp\",\"honjo.akita.jp\",\"honjyo.akita.jp\",\"ikawa.akita.jp\",\"kamikoani.akita.jp\",\"kamioka.akita.jp\",\"katagami.akita.jp\",\"kazuno.akita.jp\",\"kitaakita.akita.jp\",\"kosaka.akita.jp\",\"kyowa.akita.jp\",\"misato.akita.jp\",\"mitane.akita.jp\",\"moriyoshi.akita.jp\",\"nikaho.akita.jp\",\"noshiro.akita.jp\",\"odate.akita.jp\",\"oga.akita.jp\",\"ogata.akita.jp\",\"semboku.akita.jp\",\"yokote.akita.jp\",\"yurihonjo.akita.jp\",\"aomori.aomori.jp\",\"gonohe.aomori.jp\",\"hachinohe.aomori.jp\",\"hashikami.aomori.jp\",\"hiranai.aomori.jp\",\"hirosaki.aomori.jp\",\"itayanagi.aomori.jp\",\"kuroishi.aomori.jp\",\"misawa.aomori.jp\",\"mutsu.aomori.jp\",\"nakadomari.aomori.jp\",\"noheji.aomori.jp\",\"oirase.aomori.jp\",\"owani.aomori.jp\",\"rokunohe.aomori.jp\",\"sannohe.aomori.jp\",\"shichinohe.aomori.jp\",\"shingo.aomori.jp\",\"takko.aomori.jp\",\"towada.aomori.jp\",\"tsugaru.aomori.jp\",\"tsuruta.aomori.jp\",\"abiko.chiba.jp\",\"asahi.chiba.jp\",\"chonan.chiba.jp\",\"chosei.chiba.jp\",\"choshi.chiba.jp\",\"chuo.chiba.jp\",\"funabashi.chiba.jp\",\"futtsu.chiba.jp\",\"hanamigawa.chiba.jp\",\"ichihara.chiba.jp\",\"ichikawa.chiba.jp\",\"ichinomiya.chiba.jp\",\"inzai.chiba.jp\",\"isumi.chiba.jp\",\"kamagaya.chiba.jp\",\"kamogawa.chiba.jp\",\"kashiwa.chiba.jp\",\"katori.chiba.jp\",\"katsuura.chiba.jp\",\"kimitsu.chiba.jp\",\"kisarazu.chiba.jp\",\"kozaki.chiba.jp\",\"kujukuri.chiba.jp\",\"kyonan.chiba.jp\",\"matsudo.chiba.jp\",\"midori.chiba.jp\",\"mihama.chiba.jp\",\"minamiboso.chiba.jp\",\"mobara.chiba.jp\",\"mutsuzawa.chiba.jp\",\"nagara.chiba.jp\",\"nagareyama.chiba.jp\",\"narashino.chiba.jp\",\"narita.chiba.jp\",\"noda.chiba.jp\",\"oamishirasato.chiba.jp\",\"omigawa.chiba.jp\",\"onjuku.chiba.jp\",\"otaki.chiba.jp\",\"sakae.chiba.jp\",\"sakura.chiba.jp\",\"shimofusa.chiba.jp\",\"shirako.chiba.jp\",\"shiroi.chiba.jp\",\"shisui.chiba.jp\",\"sodegaura.chiba.jp\",\"sosa.chiba.jp\",\"tako.chiba.jp\",\"tateyama.chiba.jp\",\"togane.chiba.jp\",\"tohnosho.chiba.jp\",\"tomisato.chiba.jp\",\"urayasu.chiba.jp\",\"yachimata.chiba.jp\",\"yachiyo.chiba.jp\",\"yokaichiba.chiba.jp\",\"yokoshibahikari.chiba.jp\",\"yotsukaido.chiba.jp\",\"ainan.ehime.jp\",\"honai.ehime.jp\",\"ikata.ehime.jp\",\"imabari.ehime.jp\",\"iyo.ehime.jp\",\"kamijima.ehime.jp\",\"kihoku.ehime.jp\",\"kumakogen.ehime.jp\",\"masaki.ehime.jp\",\"matsuno.ehime.jp\",\"matsuyama.ehime.jp\",\"namikata.ehime.jp\",\"niihama.ehime.jp\",\"ozu.ehime.jp\",\"saijo.ehime.jp\",\"seiyo.ehime.jp\",\"shikokuchuo.ehime.jp\",\"tobe.ehime.jp\",\"toon.ehime.jp\",\"uchiko.ehime.jp\",\"uwajima.ehime.jp\",\"yawatahama.ehime.jp\",\"echizen.fukui.jp\",\"eiheiji.fukui.jp\",\"fukui.fukui.jp\",\"ikeda.fukui.jp\",\"katsuyama.fukui.jp\",\"mihama.fukui.jp\",\"minamiechizen.fukui.jp\",\"obama.fukui.jp\",\"ohi.fukui.jp\",\"ono.fukui.jp\",\"sabae.fukui.jp\",\"sakai.fukui.jp\",\"takahama.fukui.jp\",\"tsuruga.fukui.jp\",\"wakasa.fukui.jp\",\"ashiya.fukuoka.jp\",\"buzen.fukuoka.jp\",\"chikugo.fukuoka.jp\",\"chikuho.fukuoka.jp\",\"chikujo.fukuoka.jp\",\"chikushino.fukuoka.jp\",\"chikuzen.fukuoka.jp\",\"chuo.fukuoka.jp\",\"dazaifu.fukuoka.jp\",\"fukuchi.fukuoka.jp\",\"hakata.fukuoka.jp\",\"higashi.fukuoka.jp\",\"hirokawa.fukuoka.jp\",\"hisayama.fukuoka.jp\",\"iizuka.fukuoka.jp\",\"inatsuki.fukuoka.jp\",\"kaho.fukuoka.jp\",\"kasuga.fukuoka.jp\",\"kasuya.fukuoka.jp\",\"kawara.fukuoka.jp\",\"keisen.fukuoka.jp\",\"koga.fukuoka.jp\",\"kurate.fukuoka.jp\",\"kurogi.fukuoka.jp\",\"kurume.fukuoka.jp\",\"minami.fukuoka.jp\",\"miyako.fukuoka.jp\",\"miyama.fukuoka.jp\",\"miyawaka.fukuoka.jp\",\"mizumaki.fukuoka.jp\",\"munakata.fukuoka.jp\",\"nakagawa.fukuoka.jp\",\"nakama.fukuoka.jp\",\"nishi.fukuoka.jp\",\"nogata.fukuoka.jp\",\"ogori.fukuoka.jp\",\"okagaki.fukuoka.jp\",\"okawa.fukuoka.jp\",\"oki.fukuoka.jp\",\"omuta.fukuoka.jp\",\"onga.fukuoka.jp\",\"onojo.fukuoka.jp\",\"oto.fukuoka.jp\",\"saigawa.fukuoka.jp\",\"sasaguri.fukuoka.jp\",\"shingu.fukuoka.jp\",\"shinyoshitomi.fukuoka.jp\",\"shonai.fukuoka.jp\",\"soeda.fukuoka.jp\",\"sue.fukuoka.jp\",\"tachiarai.fukuoka.jp\",\"tagawa.fukuoka.jp\",\"takata.fukuoka.jp\",\"toho.fukuoka.jp\",\"toyotsu.fukuoka.jp\",\"tsuiki.fukuoka.jp\",\"ukiha.fukuoka.jp\",\"umi.fukuoka.jp\",\"usui.fukuoka.jp\",\"yamada.fukuoka.jp\",\"yame.fukuoka.jp\",\"yanagawa.fukuoka.jp\",\"yukuhashi.fukuoka.jp\",\"aizubange.fukushima.jp\",\"aizumisato.fukushima.jp\",\"aizuwakamatsu.fukushima.jp\",\"asakawa.fukushima.jp\",\"bandai.fukushima.jp\",\"date.fukushima.jp\",\"fukushima.fukushima.jp\",\"furudono.fukushima.jp\",\"futaba.fukushima.jp\",\"hanawa.fukushima.jp\",\"higashi.fukushima.jp\",\"hirata.fukushima.jp\",\"hirono.fukushima.jp\",\"iitate.fukushima.jp\",\"inawashiro.fukushima.jp\",\"ishikawa.fukushima.jp\",\"iwaki.fukushima.jp\",\"izumizaki.fukushima.jp\",\"kagamiishi.fukushima.jp\",\"kaneyama.fukushima.jp\",\"kawamata.fukushima.jp\",\"kitakata.fukushima.jp\",\"kitashiobara.fukushima.jp\",\"koori.fukushima.jp\",\"koriyama.fukushima.jp\",\"kunimi.fukushima.jp\",\"miharu.fukushima.jp\",\"mishima.fukushima.jp\",\"namie.fukushima.jp\",\"nango.fukushima.jp\",\"nishiaizu.fukushima.jp\",\"nishigo.fukushima.jp\",\"okuma.fukushima.jp\",\"omotego.fukushima.jp\",\"ono.fukushima.jp\",\"otama.fukushima.jp\",\"samegawa.fukushima.jp\",\"shimogo.fukushima.jp\",\"shirakawa.fukushima.jp\",\"showa.fukushima.jp\",\"soma.fukushima.jp\",\"sukagawa.fukushima.jp\",\"taishin.fukushima.jp\",\"tamakawa.fukushima.jp\",\"tanagura.fukushima.jp\",\"tenei.fukushima.jp\",\"yabuki.fukushima.jp\",\"yamato.fukushima.jp\",\"yamatsuri.fukushima.jp\",\"yanaizu.fukushima.jp\",\"yugawa.fukushima.jp\",\"anpachi.gifu.jp\",\"ena.gifu.jp\",\"gifu.gifu.jp\",\"ginan.gifu.jp\",\"godo.gifu.jp\",\"gujo.gifu.jp\",\"hashima.gifu.jp\",\"hichiso.gifu.jp\",\"hida.gifu.jp\",\"higashishirakawa.gifu.jp\",\"ibigawa.gifu.jp\",\"ikeda.gifu.jp\",\"kakamigahara.gifu.jp\",\"kani.gifu.jp\",\"kasahara.gifu.jp\",\"kasamatsu.gifu.jp\",\"kawaue.gifu.jp\",\"kitagata.gifu.jp\",\"mino.gifu.jp\",\"minokamo.gifu.jp\",\"mitake.gifu.jp\",\"mizunami.gifu.jp\",\"motosu.gifu.jp\",\"nakatsugawa.gifu.jp\",\"ogaki.gifu.jp\",\"sakahogi.gifu.jp\",\"seki.gifu.jp\",\"sekigahara.gifu.jp\",\"shirakawa.gifu.jp\",\"tajimi.gifu.jp\",\"takayama.gifu.jp\",\"tarui.gifu.jp\",\"toki.gifu.jp\",\"tomika.gifu.jp\",\"wanouchi.gifu.jp\",\"yamagata.gifu.jp\",\"yaotsu.gifu.jp\",\"yoro.gifu.jp\",\"annaka.gunma.jp\",\"chiyoda.gunma.jp\",\"fujioka.gunma.jp\",\"higashiagatsuma.gunma.jp\",\"isesaki.gunma.jp\",\"itakura.gunma.jp\",\"kanna.gunma.jp\",\"kanra.gunma.jp\",\"katashina.gunma.jp\",\"kawaba.gunma.jp\",\"kiryu.gunma.jp\",\"kusatsu.gunma.jp\",\"maebashi.gunma.jp\",\"meiwa.gunma.jp\",\"midori.gunma.jp\",\"minakami.gunma.jp\",\"naganohara.gunma.jp\",\"nakanojo.gunma.jp\",\"nanmoku.gunma.jp\",\"numata.gunma.jp\",\"oizumi.gunma.jp\",\"ora.gunma.jp\",\"ota.gunma.jp\",\"shibukawa.gunma.jp\",\"shimonita.gunma.jp\",\"shinto.gunma.jp\",\"showa.gunma.jp\",\"takasaki.gunma.jp\",\"takayama.gunma.jp\",\"tamamura.gunma.jp\",\"tatebayashi.gunma.jp\",\"tomioka.gunma.jp\",\"tsukiyono.gunma.jp\",\"tsumagoi.gunma.jp\",\"ueno.gunma.jp\",\"yoshioka.gunma.jp\",\"asaminami.hiroshima.jp\",\"daiwa.hiroshima.jp\",\"etajima.hiroshima.jp\",\"fuchu.hiroshima.jp\",\"fukuyama.hiroshima.jp\",\"hatsukaichi.hiroshima.jp\",\"higashihiroshima.hiroshima.jp\",\"hongo.hiroshima.jp\",\"jinsekikogen.hiroshima.jp\",\"kaita.hiroshima.jp\",\"kui.hiroshima.jp\",\"kumano.hiroshima.jp\",\"kure.hiroshima.jp\",\"mihara.hiroshima.jp\",\"miyoshi.hiroshima.jp\",\"naka.hiroshima.jp\",\"onomichi.hiroshima.jp\",\"osakikamijima.hiroshima.jp\",\"otake.hiroshima.jp\",\"saka.hiroshima.jp\",\"sera.hiroshima.jp\",\"seranishi.hiroshima.jp\",\"shinichi.hiroshima.jp\",\"shobara.hiroshima.jp\",\"takehara.hiroshima.jp\",\"abashiri.hokkaido.jp\",\"abira.hokkaido.jp\",\"aibetsu.hokkaido.jp\",\"akabira.hokkaido.jp\",\"akkeshi.hokkaido.jp\",\"asahikawa.hokkaido.jp\",\"ashibetsu.hokkaido.jp\",\"ashoro.hokkaido.jp\",\"assabu.hokkaido.jp\",\"atsuma.hokkaido.jp\",\"bibai.hokkaido.jp\",\"biei.hokkaido.jp\",\"bifuka.hokkaido.jp\",\"bihoro.hokkaido.jp\",\"biratori.hokkaido.jp\",\"chippubetsu.hokkaido.jp\",\"chitose.hokkaido.jp\",\"date.hokkaido.jp\",\"ebetsu.hokkaido.jp\",\"embetsu.hokkaido.jp\",\"eniwa.hokkaido.jp\",\"erimo.hokkaido.jp\",\"esan.hokkaido.jp\",\"esashi.hokkaido.jp\",\"fukagawa.hokkaido.jp\",\"fukushima.hokkaido.jp\",\"furano.hokkaido.jp\",\"furubira.hokkaido.jp\",\"haboro.hokkaido.jp\",\"hakodate.hokkaido.jp\",\"hamatonbetsu.hokkaido.jp\",\"hidaka.hokkaido.jp\",\"higashikagura.hokkaido.jp\",\"higashikawa.hokkaido.jp\",\"hiroo.hokkaido.jp\",\"hokuryu.hokkaido.jp\",\"hokuto.hokkaido.jp\",\"honbetsu.hokkaido.jp\",\"horokanai.hokkaido.jp\",\"horonobe.hokkaido.jp\",\"ikeda.hokkaido.jp\",\"imakane.hokkaido.jp\",\"ishikari.hokkaido.jp\",\"iwamizawa.hokkaido.jp\",\"iwanai.hokkaido.jp\",\"kamifurano.hokkaido.jp\",\"kamikawa.hokkaido.jp\",\"kamishihoro.hokkaido.jp\",\"kamisunagawa.hokkaido.jp\",\"kamoenai.hokkaido.jp\",\"kayabe.hokkaido.jp\",\"kembuchi.hokkaido.jp\",\"kikonai.hokkaido.jp\",\"kimobetsu.hokkaido.jp\",\"kitahiroshima.hokkaido.jp\",\"kitami.hokkaido.jp\",\"kiyosato.hokkaido.jp\",\"koshimizu.hokkaido.jp\",\"kunneppu.hokkaido.jp\",\"kuriyama.hokkaido.jp\",\"kuromatsunai.hokkaido.jp\",\"kushiro.hokkaido.jp\",\"kutchan.hokkaido.jp\",\"kyowa.hokkaido.jp\",\"mashike.hokkaido.jp\",\"matsumae.hokkaido.jp\",\"mikasa.hokkaido.jp\",\"minamifurano.hokkaido.jp\",\"mombetsu.hokkaido.jp\",\"moseushi.hokkaido.jp\",\"mukawa.hokkaido.jp\",\"muroran.hokkaido.jp\",\"naie.hokkaido.jp\",\"nakagawa.hokkaido.jp\",\"nakasatsunai.hokkaido.jp\",\"nakatombetsu.hokkaido.jp\",\"nanae.hokkaido.jp\",\"nanporo.hokkaido.jp\",\"nayoro.hokkaido.jp\",\"nemuro.hokkaido.jp\",\"niikappu.hokkaido.jp\",\"niki.hokkaido.jp\",\"nishiokoppe.hokkaido.jp\",\"noboribetsu.hokkaido.jp\",\"numata.hokkaido.jp\",\"obihiro.hokkaido.jp\",\"obira.hokkaido.jp\",\"oketo.hokkaido.jp\",\"okoppe.hokkaido.jp\",\"otaru.hokkaido.jp\",\"otobe.hokkaido.jp\",\"otofuke.hokkaido.jp\",\"otoineppu.hokkaido.jp\",\"oumu.hokkaido.jp\",\"ozora.hokkaido.jp\",\"pippu.hokkaido.jp\",\"rankoshi.hokkaido.jp\",\"rebun.hokkaido.jp\",\"rikubetsu.hokkaido.jp\",\"rishiri.hokkaido.jp\",\"rishirifuji.hokkaido.jp\",\"saroma.hokkaido.jp\",\"sarufutsu.hokkaido.jp\",\"shakotan.hokkaido.jp\",\"shari.hokkaido.jp\",\"shibecha.hokkaido.jp\",\"shibetsu.hokkaido.jp\",\"shikabe.hokkaido.jp\",\"shikaoi.hokkaido.jp\",\"shimamaki.hokkaido.jp\",\"shimizu.hokkaido.jp\",\"shimokawa.hokkaido.jp\",\"shinshinotsu.hokkaido.jp\",\"shintoku.hokkaido.jp\",\"shiranuka.hokkaido.jp\",\"shiraoi.hokkaido.jp\",\"shiriuchi.hokkaido.jp\",\"sobetsu.hokkaido.jp\",\"sunagawa.hokkaido.jp\",\"taiki.hokkaido.jp\",\"takasu.hokkaido.jp\",\"takikawa.hokkaido.jp\",\"takinoue.hokkaido.jp\",\"teshikaga.hokkaido.jp\",\"tobetsu.hokkaido.jp\",\"tohma.hokkaido.jp\",\"tomakomai.hokkaido.jp\",\"tomari.hokkaido.jp\",\"toya.hokkaido.jp\",\"toyako.hokkaido.jp\",\"toyotomi.hokkaido.jp\",\"toyoura.hokkaido.jp\",\"tsubetsu.hokkaido.jp\",\"tsukigata.hokkaido.jp\",\"urakawa.hokkaido.jp\",\"urausu.hokkaido.jp\",\"uryu.hokkaido.jp\",\"utashinai.hokkaido.jp\",\"wakkanai.hokkaido.jp\",\"wassamu.hokkaido.jp\",\"yakumo.hokkaido.jp\",\"yoichi.hokkaido.jp\",\"aioi.hyogo.jp\",\"akashi.hyogo.jp\",\"ako.hyogo.jp\",\"amagasaki.hyogo.jp\",\"aogaki.hyogo.jp\",\"asago.hyogo.jp\",\"ashiya.hyogo.jp\",\"awaji.hyogo.jp\",\"fukusaki.hyogo.jp\",\"goshiki.hyogo.jp\",\"harima.hyogo.jp\",\"himeji.hyogo.jp\",\"ichikawa.hyogo.jp\",\"inagawa.hyogo.jp\",\"itami.hyogo.jp\",\"kakogawa.hyogo.jp\",\"kamigori.hyogo.jp\",\"kamikawa.hyogo.jp\",\"kasai.hyogo.jp\",\"kasuga.hyogo.jp\",\"kawanishi.hyogo.jp\",\"miki.hyogo.jp\",\"minamiawaji.hyogo.jp\",\"nishinomiya.hyogo.jp\",\"nishiwaki.hyogo.jp\",\"ono.hyogo.jp\",\"sanda.hyogo.jp\",\"sannan.hyogo.jp\",\"sasayama.hyogo.jp\",\"sayo.hyogo.jp\",\"shingu.hyogo.jp\",\"shinonsen.hyogo.jp\",\"shiso.hyogo.jp\",\"sumoto.hyogo.jp\",\"taishi.hyogo.jp\",\"taka.hyogo.jp\",\"takarazuka.hyogo.jp\",\"takasago.hyogo.jp\",\"takino.hyogo.jp\",\"tamba.hyogo.jp\",\"tatsuno.hyogo.jp\",\"toyooka.hyogo.jp\",\"yabu.hyogo.jp\",\"yashiro.hyogo.jp\",\"yoka.hyogo.jp\",\"yokawa.hyogo.jp\",\"ami.ibaraki.jp\",\"asahi.ibaraki.jp\",\"bando.ibaraki.jp\",\"chikusei.ibaraki.jp\",\"daigo.ibaraki.jp\",\"fujishiro.ibaraki.jp\",\"hitachi.ibaraki.jp\",\"hitachinaka.ibaraki.jp\",\"hitachiomiya.ibaraki.jp\",\"hitachiota.ibaraki.jp\",\"ibaraki.ibaraki.jp\",\"ina.ibaraki.jp\",\"inashiki.ibaraki.jp\",\"itako.ibaraki.jp\",\"iwama.ibaraki.jp\",\"joso.ibaraki.jp\",\"kamisu.ibaraki.jp\",\"kasama.ibaraki.jp\",\"kashima.ibaraki.jp\",\"kasumigaura.ibaraki.jp\",\"koga.ibaraki.jp\",\"miho.ibaraki.jp\",\"mito.ibaraki.jp\",\"moriya.ibaraki.jp\",\"naka.ibaraki.jp\",\"namegata.ibaraki.jp\",\"oarai.ibaraki.jp\",\"ogawa.ibaraki.jp\",\"omitama.ibaraki.jp\",\"ryugasaki.ibaraki.jp\",\"sakai.ibaraki.jp\",\"sakuragawa.ibaraki.jp\",\"shimodate.ibaraki.jp\",\"shimotsuma.ibaraki.jp\",\"shirosato.ibaraki.jp\",\"sowa.ibaraki.jp\",\"suifu.ibaraki.jp\",\"takahagi.ibaraki.jp\",\"tamatsukuri.ibaraki.jp\",\"tokai.ibaraki.jp\",\"tomobe.ibaraki.jp\",\"tone.ibaraki.jp\",\"toride.ibaraki.jp\",\"tsuchiura.ibaraki.jp\",\"tsukuba.ibaraki.jp\",\"uchihara.ibaraki.jp\",\"ushiku.ibaraki.jp\",\"yachiyo.ibaraki.jp\",\"yamagata.ibaraki.jp\",\"yawara.ibaraki.jp\",\"yuki.ibaraki.jp\",\"anamizu.ishikawa.jp\",\"hakui.ishikawa.jp\",\"hakusan.ishikawa.jp\",\"kaga.ishikawa.jp\",\"kahoku.ishikawa.jp\",\"kanazawa.ishikawa.jp\",\"kawakita.ishikawa.jp\",\"komatsu.ishikawa.jp\",\"nakanoto.ishikawa.jp\",\"nanao.ishikawa.jp\",\"nomi.ishikawa.jp\",\"nonoichi.ishikawa.jp\",\"noto.ishikawa.jp\",\"shika.ishikawa.jp\",\"suzu.ishikawa.jp\",\"tsubata.ishikawa.jp\",\"tsurugi.ishikawa.jp\",\"uchinada.ishikawa.jp\",\"wajima.ishikawa.jp\",\"fudai.iwate.jp\",\"fujisawa.iwate.jp\",\"hanamaki.iwate.jp\",\"hiraizumi.iwate.jp\",\"hirono.iwate.jp\",\"ichinohe.iwate.jp\",\"ichinoseki.iwate.jp\",\"iwaizumi.iwate.jp\",\"iwate.iwate.jp\",\"joboji.iwate.jp\",\"kamaishi.iwate.jp\",\"kanegasaki.iwate.jp\",\"karumai.iwate.jp\",\"kawai.iwate.jp\",\"kitakami.iwate.jp\",\"kuji.iwate.jp\",\"kunohe.iwate.jp\",\"kuzumaki.iwate.jp\",\"miyako.iwate.jp\",\"mizusawa.iwate.jp\",\"morioka.iwate.jp\",\"ninohe.iwate.jp\",\"noda.iwate.jp\",\"ofunato.iwate.jp\",\"oshu.iwate.jp\",\"otsuchi.iwate.jp\",\"rikuzentakata.iwate.jp\",\"shiwa.iwate.jp\",\"shizukuishi.iwate.jp\",\"sumita.iwate.jp\",\"tanohata.iwate.jp\",\"tono.iwate.jp\",\"yahaba.iwate.jp\",\"yamada.iwate.jp\",\"ayagawa.kagawa.jp\",\"higashikagawa.kagawa.jp\",\"kanonji.kagawa.jp\",\"kotohira.kagawa.jp\",\"manno.kagawa.jp\",\"marugame.kagawa.jp\",\"mitoyo.kagawa.jp\",\"naoshima.kagawa.jp\",\"sanuki.kagawa.jp\",\"tadotsu.kagawa.jp\",\"takamatsu.kagawa.jp\",\"tonosho.kagawa.jp\",\"uchinomi.kagawa.jp\",\"utazu.kagawa.jp\",\"zentsuji.kagawa.jp\",\"akune.kagoshima.jp\",\"amami.kagoshima.jp\",\"hioki.kagoshima.jp\",\"isa.kagoshima.jp\",\"isen.kagoshima.jp\",\"izumi.kagoshima.jp\",\"kagoshima.kagoshima.jp\",\"kanoya.kagoshima.jp\",\"kawanabe.kagoshima.jp\",\"kinko.kagoshima.jp\",\"kouyama.kagoshima.jp\",\"makurazaki.kagoshima.jp\",\"matsumoto.kagoshima.jp\",\"minamitane.kagoshima.jp\",\"nakatane.kagoshima.jp\",\"nishinoomote.kagoshima.jp\",\"satsumasendai.kagoshima.jp\",\"soo.kagoshima.jp\",\"tarumizu.kagoshima.jp\",\"yusui.kagoshima.jp\",\"aikawa.kanagawa.jp\",\"atsugi.kanagawa.jp\",\"ayase.kanagawa.jp\",\"chigasaki.kanagawa.jp\",\"ebina.kanagawa.jp\",\"fujisawa.kanagawa.jp\",\"hadano.kanagawa.jp\",\"hakone.kanagawa.jp\",\"hiratsuka.kanagawa.jp\",\"isehara.kanagawa.jp\",\"kaisei.kanagawa.jp\",\"kamakura.kanagawa.jp\",\"kiyokawa.kanagawa.jp\",\"matsuda.kanagawa.jp\",\"minamiashigara.kanagawa.jp\",\"miura.kanagawa.jp\",\"nakai.kanagawa.jp\",\"ninomiya.kanagawa.jp\",\"odawara.kanagawa.jp\",\"oi.kanagawa.jp\",\"oiso.kanagawa.jp\",\"sagamihara.kanagawa.jp\",\"samukawa.kanagawa.jp\",\"tsukui.kanagawa.jp\",\"yamakita.kanagawa.jp\",\"yamato.kanagawa.jp\",\"yokosuka.kanagawa.jp\",\"yugawara.kanagawa.jp\",\"zama.kanagawa.jp\",\"zushi.kanagawa.jp\",\"aki.kochi.jp\",\"geisei.kochi.jp\",\"hidaka.kochi.jp\",\"higashitsuno.kochi.jp\",\"ino.kochi.jp\",\"kagami.kochi.jp\",\"kami.kochi.jp\",\"kitagawa.kochi.jp\",\"kochi.kochi.jp\",\"mihara.kochi.jp\",\"motoyama.kochi.jp\",\"muroto.kochi.jp\",\"nahari.kochi.jp\",\"nakamura.kochi.jp\",\"nankoku.kochi.jp\",\"nishitosa.kochi.jp\",\"niyodogawa.kochi.jp\",\"ochi.kochi.jp\",\"okawa.kochi.jp\",\"otoyo.kochi.jp\",\"otsuki.kochi.jp\",\"sakawa.kochi.jp\",\"sukumo.kochi.jp\",\"susaki.kochi.jp\",\"tosa.kochi.jp\",\"tosashimizu.kochi.jp\",\"toyo.kochi.jp\",\"tsuno.kochi.jp\",\"umaji.kochi.jp\",\"yasuda.kochi.jp\",\"yusuhara.kochi.jp\",\"amakusa.kumamoto.jp\",\"arao.kumamoto.jp\",\"aso.kumamoto.jp\",\"choyo.kumamoto.jp\",\"gyokuto.kumamoto.jp\",\"kamiamakusa.kumamoto.jp\",\"kikuchi.kumamoto.jp\",\"kumamoto.kumamoto.jp\",\"mashiki.kumamoto.jp\",\"mifune.kumamoto.jp\",\"minamata.kumamoto.jp\",\"minamioguni.kumamoto.jp\",\"nagasu.kumamoto.jp\",\"nishihara.kumamoto.jp\",\"oguni.kumamoto.jp\",\"ozu.kumamoto.jp\",\"sumoto.kumamoto.jp\",\"takamori.kumamoto.jp\",\"uki.kumamoto.jp\",\"uto.kumamoto.jp\",\"yamaga.kumamoto.jp\",\"yamato.kumamoto.jp\",\"yatsushiro.kumamoto.jp\",\"ayabe.kyoto.jp\",\"fukuchiyama.kyoto.jp\",\"higashiyama.kyoto.jp\",\"ide.kyoto.jp\",\"ine.kyoto.jp\",\"joyo.kyoto.jp\",\"kameoka.kyoto.jp\",\"kamo.kyoto.jp\",\"kita.kyoto.jp\",\"kizu.kyoto.jp\",\"kumiyama.kyoto.jp\",\"kyotamba.kyoto.jp\",\"kyotanabe.kyoto.jp\",\"kyotango.kyoto.jp\",\"maizuru.kyoto.jp\",\"minami.kyoto.jp\",\"minamiyamashiro.kyoto.jp\",\"miyazu.kyoto.jp\",\"muko.kyoto.jp\",\"nagaokakyo.kyoto.jp\",\"nakagyo.kyoto.jp\",\"nantan.kyoto.jp\",\"oyamazaki.kyoto.jp\",\"sakyo.kyoto.jp\",\"seika.kyoto.jp\",\"tanabe.kyoto.jp\",\"uji.kyoto.jp\",\"ujitawara.kyoto.jp\",\"wazuka.kyoto.jp\",\"yamashina.kyoto.jp\",\"yawata.kyoto.jp\",\"asahi.mie.jp\",\"inabe.mie.jp\",\"ise.mie.jp\",\"kameyama.mie.jp\",\"kawagoe.mie.jp\",\"kiho.mie.jp\",\"kisosaki.mie.jp\",\"kiwa.mie.jp\",\"komono.mie.jp\",\"kumano.mie.jp\",\"kuwana.mie.jp\",\"matsusaka.mie.jp\",\"meiwa.mie.jp\",\"mihama.mie.jp\",\"minamiise.mie.jp\",\"misugi.mie.jp\",\"miyama.mie.jp\",\"nabari.mie.jp\",\"shima.mie.jp\",\"suzuka.mie.jp\",\"tado.mie.jp\",\"taiki.mie.jp\",\"taki.mie.jp\",\"tamaki.mie.jp\",\"toba.mie.jp\",\"tsu.mie.jp\",\"udono.mie.jp\",\"ureshino.mie.jp\",\"watarai.mie.jp\",\"yokkaichi.mie.jp\",\"furukawa.miyagi.jp\",\"higashimatsushima.miyagi.jp\",\"ishinomaki.miyagi.jp\",\"iwanuma.miyagi.jp\",\"kakuda.miyagi.jp\",\"kami.miyagi.jp\",\"kawasaki.miyagi.jp\",\"marumori.miyagi.jp\",\"matsushima.miyagi.jp\",\"minamisanriku.miyagi.jp\",\"misato.miyagi.jp\",\"murata.miyagi.jp\",\"natori.miyagi.jp\",\"ogawara.miyagi.jp\",\"ohira.miyagi.jp\",\"onagawa.miyagi.jp\",\"osaki.miyagi.jp\",\"rifu.miyagi.jp\",\"semine.miyagi.jp\",\"shibata.miyagi.jp\",\"shichikashuku.miyagi.jp\",\"shikama.miyagi.jp\",\"shiogama.miyagi.jp\",\"shiroishi.miyagi.jp\",\"tagajo.miyagi.jp\",\"taiwa.miyagi.jp\",\"tome.miyagi.jp\",\"tomiya.miyagi.jp\",\"wakuya.miyagi.jp\",\"watari.miyagi.jp\",\"yamamoto.miyagi.jp\",\"zao.miyagi.jp\",\"aya.miyazaki.jp\",\"ebino.miyazaki.jp\",\"gokase.miyazaki.jp\",\"hyuga.miyazaki.jp\",\"kadogawa.miyazaki.jp\",\"kawaminami.miyazaki.jp\",\"kijo.miyazaki.jp\",\"kitagawa.miyazaki.jp\",\"kitakata.miyazaki.jp\",\"kitaura.miyazaki.jp\",\"kobayashi.miyazaki.jp\",\"kunitomi.miyazaki.jp\",\"kushima.miyazaki.jp\",\"mimata.miyazaki.jp\",\"miyakonojo.miyazaki.jp\",\"miyazaki.miyazaki.jp\",\"morotsuka.miyazaki.jp\",\"nichinan.miyazaki.jp\",\"nishimera.miyazaki.jp\",\"nobeoka.miyazaki.jp\",\"saito.miyazaki.jp\",\"shiiba.miyazaki.jp\",\"shintomi.miyazaki.jp\",\"takaharu.miyazaki.jp\",\"takanabe.miyazaki.jp\",\"takazaki.miyazaki.jp\",\"tsuno.miyazaki.jp\",\"achi.nagano.jp\",\"agematsu.nagano.jp\",\"anan.nagano.jp\",\"aoki.nagano.jp\",\"asahi.nagano.jp\",\"azumino.nagano.jp\",\"chikuhoku.nagano.jp\",\"chikuma.nagano.jp\",\"chino.nagano.jp\",\"fujimi.nagano.jp\",\"hakuba.nagano.jp\",\"hara.nagano.jp\",\"hiraya.nagano.jp\",\"iida.nagano.jp\",\"iijima.nagano.jp\",\"iiyama.nagano.jp\",\"iizuna.nagano.jp\",\"ikeda.nagano.jp\",\"ikusaka.nagano.jp\",\"ina.nagano.jp\",\"karuizawa.nagano.jp\",\"kawakami.nagano.jp\",\"kiso.nagano.jp\",\"kisofukushima.nagano.jp\",\"kitaaiki.nagano.jp\",\"komagane.nagano.jp\",\"komoro.nagano.jp\",\"matsukawa.nagano.jp\",\"matsumoto.nagano.jp\",\"miasa.nagano.jp\",\"minamiaiki.nagano.jp\",\"minamimaki.nagano.jp\",\"minamiminowa.nagano.jp\",\"minowa.nagano.jp\",\"miyada.nagano.jp\",\"miyota.nagano.jp\",\"mochizuki.nagano.jp\",\"nagano.nagano.jp\",\"nagawa.nagano.jp\",\"nagiso.nagano.jp\",\"nakagawa.nagano.jp\",\"nakano.nagano.jp\",\"nozawaonsen.nagano.jp\",\"obuse.nagano.jp\",\"ogawa.nagano.jp\",\"okaya.nagano.jp\",\"omachi.nagano.jp\",\"omi.nagano.jp\",\"ookuwa.nagano.jp\",\"ooshika.nagano.jp\",\"otaki.nagano.jp\",\"otari.nagano.jp\",\"sakae.nagano.jp\",\"sakaki.nagano.jp\",\"saku.nagano.jp\",\"sakuho.nagano.jp\",\"shimosuwa.nagano.jp\",\"shinanomachi.nagano.jp\",\"shiojiri.nagano.jp\",\"suwa.nagano.jp\",\"suzaka.nagano.jp\",\"takagi.nagano.jp\",\"takamori.nagano.jp\",\"takayama.nagano.jp\",\"tateshina.nagano.jp\",\"tatsuno.nagano.jp\",\"togakushi.nagano.jp\",\"togura.nagano.jp\",\"tomi.nagano.jp\",\"ueda.nagano.jp\",\"wada.nagano.jp\",\"yamagata.nagano.jp\",\"yamanouchi.nagano.jp\",\"yasaka.nagano.jp\",\"yasuoka.nagano.jp\",\"chijiwa.nagasaki.jp\",\"futsu.nagasaki.jp\",\"goto.nagasaki.jp\",\"hasami.nagasaki.jp\",\"hirado.nagasaki.jp\",\"iki.nagasaki.jp\",\"isahaya.nagasaki.jp\",\"kawatana.nagasaki.jp\",\"kuchinotsu.nagasaki.jp\",\"matsuura.nagasaki.jp\",\"nagasaki.nagasaki.jp\",\"obama.nagasaki.jp\",\"omura.nagasaki.jp\",\"oseto.nagasaki.jp\",\"saikai.nagasaki.jp\",\"sasebo.nagasaki.jp\",\"seihi.nagasaki.jp\",\"shimabara.nagasaki.jp\",\"shinkamigoto.nagasaki.jp\",\"togitsu.nagasaki.jp\",\"tsushima.nagasaki.jp\",\"unzen.nagasaki.jp\",\"ando.nara.jp\",\"gose.nara.jp\",\"heguri.nara.jp\",\"higashiyoshino.nara.jp\",\"ikaruga.nara.jp\",\"ikoma.nara.jp\",\"kamikitayama.nara.jp\",\"kanmaki.nara.jp\",\"kashiba.nara.jp\",\"kashihara.nara.jp\",\"katsuragi.nara.jp\",\"kawai.nara.jp\",\"kawakami.nara.jp\",\"kawanishi.nara.jp\",\"koryo.nara.jp\",\"kurotaki.nara.jp\",\"mitsue.nara.jp\",\"miyake.nara.jp\",\"nara.nara.jp\",\"nosegawa.nara.jp\",\"oji.nara.jp\",\"ouda.nara.jp\",\"oyodo.nara.jp\",\"sakurai.nara.jp\",\"sango.nara.jp\",\"shimoichi.nara.jp\",\"shimokitayama.nara.jp\",\"shinjo.nara.jp\",\"soni.nara.jp\",\"takatori.nara.jp\",\"tawaramoto.nara.jp\",\"tenkawa.nara.jp\",\"tenri.nara.jp\",\"uda.nara.jp\",\"yamatokoriyama.nara.jp\",\"yamatotakada.nara.jp\",\"yamazoe.nara.jp\",\"yoshino.nara.jp\",\"aga.niigata.jp\",\"agano.niigata.jp\",\"gosen.niigata.jp\",\"itoigawa.niigata.jp\",\"izumozaki.niigata.jp\",\"joetsu.niigata.jp\",\"kamo.niigata.jp\",\"kariwa.niigata.jp\",\"kashiwazaki.niigata.jp\",\"minamiuonuma.niigata.jp\",\"mitsuke.niigata.jp\",\"muika.niigata.jp\",\"murakami.niigata.jp\",\"myoko.niigata.jp\",\"nagaoka.niigata.jp\",\"niigata.niigata.jp\",\"ojiya.niigata.jp\",\"omi.niigata.jp\",\"sado.niigata.jp\",\"sanjo.niigata.jp\",\"seiro.niigata.jp\",\"seirou.niigata.jp\",\"sekikawa.niigata.jp\",\"shibata.niigata.jp\",\"tagami.niigata.jp\",\"tainai.niigata.jp\",\"tochio.niigata.jp\",\"tokamachi.niigata.jp\",\"tsubame.niigata.jp\",\"tsunan.niigata.jp\",\"uonuma.niigata.jp\",\"yahiko.niigata.jp\",\"yoita.niigata.jp\",\"yuzawa.niigata.jp\",\"beppu.oita.jp\",\"bungoono.oita.jp\",\"bungotakada.oita.jp\",\"hasama.oita.jp\",\"hiji.oita.jp\",\"himeshima.oita.jp\",\"hita.oita.jp\",\"kamitsue.oita.jp\",\"kokonoe.oita.jp\",\"kuju.oita.jp\",\"kunisaki.oita.jp\",\"kusu.oita.jp\",\"oita.oita.jp\",\"saiki.oita.jp\",\"taketa.oita.jp\",\"tsukumi.oita.jp\",\"usa.oita.jp\",\"usuki.oita.jp\",\"yufu.oita.jp\",\"akaiwa.okayama.jp\",\"asakuchi.okayama.jp\",\"bizen.okayama.jp\",\"hayashima.okayama.jp\",\"ibara.okayama.jp\",\"kagamino.okayama.jp\",\"kasaoka.okayama.jp\",\"kibichuo.okayama.jp\",\"kumenan.okayama.jp\",\"kurashiki.okayama.jp\",\"maniwa.okayama.jp\",\"misaki.okayama.jp\",\"nagi.okayama.jp\",\"niimi.okayama.jp\",\"nishiawakura.okayama.jp\",\"okayama.okayama.jp\",\"satosho.okayama.jp\",\"setouchi.okayama.jp\",\"shinjo.okayama.jp\",\"shoo.okayama.jp\",\"soja.okayama.jp\",\"takahashi.okayama.jp\",\"tamano.okayama.jp\",\"tsuyama.okayama.jp\",\"wake.okayama.jp\",\"yakage.okayama.jp\",\"aguni.okinawa.jp\",\"ginowan.okinawa.jp\",\"ginoza.okinawa.jp\",\"gushikami.okinawa.jp\",\"haebaru.okinawa.jp\",\"higashi.okinawa.jp\",\"hirara.okinawa.jp\",\"iheya.okinawa.jp\",\"ishigaki.okinawa.jp\",\"ishikawa.okinawa.jp\",\"itoman.okinawa.jp\",\"izena.okinawa.jp\",\"kadena.okinawa.jp\",\"kin.okinawa.jp\",\"kitadaito.okinawa.jp\",\"kitanakagusuku.okinawa.jp\",\"kumejima.okinawa.jp\",\"kunigami.okinawa.jp\",\"minamidaito.okinawa.jp\",\"motobu.okinawa.jp\",\"nago.okinawa.jp\",\"naha.okinawa.jp\",\"nakagusuku.okinawa.jp\",\"nakijin.okinawa.jp\",\"nanjo.okinawa.jp\",\"nishihara.okinawa.jp\",\"ogimi.okinawa.jp\",\"okinawa.okinawa.jp\",\"onna.okinawa.jp\",\"shimoji.okinawa.jp\",\"taketomi.okinawa.jp\",\"tarama.okinawa.jp\",\"tokashiki.okinawa.jp\",\"tomigusuku.okinawa.jp\",\"tonaki.okinawa.jp\",\"urasoe.okinawa.jp\",\"uruma.okinawa.jp\",\"yaese.okinawa.jp\",\"yomitan.okinawa.jp\",\"yonabaru.okinawa.jp\",\"yonaguni.okinawa.jp\",\"zamami.okinawa.jp\",\"abeno.osaka.jp\",\"chihayaakasaka.osaka.jp\",\"chuo.osaka.jp\",\"daito.osaka.jp\",\"fujiidera.osaka.jp\",\"habikino.osaka.jp\",\"hannan.osaka.jp\",\"higashiosaka.osaka.jp\",\"higashisumiyoshi.osaka.jp\",\"higashiyodogawa.osaka.jp\",\"hirakata.osaka.jp\",\"ibaraki.osaka.jp\",\"ikeda.osaka.jp\",\"izumi.osaka.jp\",\"izumiotsu.osaka.jp\",\"izumisano.osaka.jp\",\"kadoma.osaka.jp\",\"kaizuka.osaka.jp\",\"kanan.osaka.jp\",\"kashiwara.osaka.jp\",\"katano.osaka.jp\",\"kawachinagano.osaka.jp\",\"kishiwada.osaka.jp\",\"kita.osaka.jp\",\"kumatori.osaka.jp\",\"matsubara.osaka.jp\",\"minato.osaka.jp\",\"minoh.osaka.jp\",\"misaki.osaka.jp\",\"moriguchi.osaka.jp\",\"neyagawa.osaka.jp\",\"nishi.osaka.jp\",\"nose.osaka.jp\",\"osakasayama.osaka.jp\",\"sakai.osaka.jp\",\"sayama.osaka.jp\",\"sennan.osaka.jp\",\"settsu.osaka.jp\",\"shijonawate.osaka.jp\",\"shimamoto.osaka.jp\",\"suita.osaka.jp\",\"tadaoka.osaka.jp\",\"taishi.osaka.jp\",\"tajiri.osaka.jp\",\"takaishi.osaka.jp\",\"takatsuki.osaka.jp\",\"tondabayashi.osaka.jp\",\"toyonaka.osaka.jp\",\"toyono.osaka.jp\",\"yao.osaka.jp\",\"ariake.saga.jp\",\"arita.saga.jp\",\"fukudomi.saga.jp\",\"genkai.saga.jp\",\"hamatama.saga.jp\",\"hizen.saga.jp\",\"imari.saga.jp\",\"kamimine.saga.jp\",\"kanzaki.saga.jp\",\"karatsu.saga.jp\",\"kashima.saga.jp\",\"kitagata.saga.jp\",\"kitahata.saga.jp\",\"kiyama.saga.jp\",\"kouhoku.saga.jp\",\"kyuragi.saga.jp\",\"nishiarita.saga.jp\",\"ogi.saga.jp\",\"omachi.saga.jp\",\"ouchi.saga.jp\",\"saga.saga.jp\",\"shiroishi.saga.jp\",\"taku.saga.jp\",\"tara.saga.jp\",\"tosu.saga.jp\",\"yoshinogari.saga.jp\",\"arakawa.saitama.jp\",\"asaka.saitama.jp\",\"chichibu.saitama.jp\",\"fujimi.saitama.jp\",\"fujimino.saitama.jp\",\"fukaya.saitama.jp\",\"hanno.saitama.jp\",\"hanyu.saitama.jp\",\"hasuda.saitama.jp\",\"hatogaya.saitama.jp\",\"hatoyama.saitama.jp\",\"hidaka.saitama.jp\",\"higashichichibu.saitama.jp\",\"higashimatsuyama.saitama.jp\",\"honjo.saitama.jp\",\"ina.saitama.jp\",\"iruma.saitama.jp\",\"iwatsuki.saitama.jp\",\"kamiizumi.saitama.jp\",\"kamikawa.saitama.jp\",\"kamisato.saitama.jp\",\"kasukabe.saitama.jp\",\"kawagoe.saitama.jp\",\"kawaguchi.saitama.jp\",\"kawajima.saitama.jp\",\"kazo.saitama.jp\",\"kitamoto.saitama.jp\",\"koshigaya.saitama.jp\",\"kounosu.saitama.jp\",\"kuki.saitama.jp\",\"kumagaya.saitama.jp\",\"matsubushi.saitama.jp\",\"minano.saitama.jp\",\"misato.saitama.jp\",\"miyashiro.saitama.jp\",\"miyoshi.saitama.jp\",\"moroyama.saitama.jp\",\"nagatoro.saitama.jp\",\"namegawa.saitama.jp\",\"niiza.saitama.jp\",\"ogano.saitama.jp\",\"ogawa.saitama.jp\",\"ogose.saitama.jp\",\"okegawa.saitama.jp\",\"omiya.saitama.jp\",\"otaki.saitama.jp\",\"ranzan.saitama.jp\",\"ryokami.saitama.jp\",\"saitama.saitama.jp\",\"sakado.saitama.jp\",\"satte.saitama.jp\",\"sayama.saitama.jp\",\"shiki.saitama.jp\",\"shiraoka.saitama.jp\",\"soka.saitama.jp\",\"sugito.saitama.jp\",\"toda.saitama.jp\",\"tokigawa.saitama.jp\",\"tokorozawa.saitama.jp\",\"tsurugashima.saitama.jp\",\"urawa.saitama.jp\",\"warabi.saitama.jp\",\"yashio.saitama.jp\",\"yokoze.saitama.jp\",\"yono.saitama.jp\",\"yorii.saitama.jp\",\"yoshida.saitama.jp\",\"yoshikawa.saitama.jp\",\"yoshimi.saitama.jp\",\"aisho.shiga.jp\",\"gamo.shiga.jp\",\"higashiomi.shiga.jp\",\"hikone.shiga.jp\",\"koka.shiga.jp\",\"konan.shiga.jp\",\"kosei.shiga.jp\",\"koto.shiga.jp\",\"kusatsu.shiga.jp\",\"maibara.shiga.jp\",\"moriyama.shiga.jp\",\"nagahama.shiga.jp\",\"nishiazai.shiga.jp\",\"notogawa.shiga.jp\",\"omihachiman.shiga.jp\",\"otsu.shiga.jp\",\"ritto.shiga.jp\",\"ryuoh.shiga.jp\",\"takashima.shiga.jp\",\"takatsuki.shiga.jp\",\"torahime.shiga.jp\",\"toyosato.shiga.jp\",\"yasu.shiga.jp\",\"akagi.shimane.jp\",\"ama.shimane.jp\",\"gotsu.shimane.jp\",\"hamada.shimane.jp\",\"higashiizumo.shimane.jp\",\"hikawa.shimane.jp\",\"hikimi.shimane.jp\",\"izumo.shimane.jp\",\"kakinoki.shimane.jp\",\"masuda.shimane.jp\",\"matsue.shimane.jp\",\"misato.shimane.jp\",\"nishinoshima.shimane.jp\",\"ohda.shimane.jp\",\"okinoshima.shimane.jp\",\"okuizumo.shimane.jp\",\"shimane.shimane.jp\",\"tamayu.shimane.jp\",\"tsuwano.shimane.jp\",\"unnan.shimane.jp\",\"yakumo.shimane.jp\",\"yasugi.shimane.jp\",\"yatsuka.shimane.jp\",\"arai.shizuoka.jp\",\"atami.shizuoka.jp\",\"fuji.shizuoka.jp\",\"fujieda.shizuoka.jp\",\"fujikawa.shizuoka.jp\",\"fujinomiya.shizuoka.jp\",\"fukuroi.shizuoka.jp\",\"gotemba.shizuoka.jp\",\"haibara.shizuoka.jp\",\"hamamatsu.shizuoka.jp\",\"higashiizu.shizuoka.jp\",\"ito.shizuoka.jp\",\"iwata.shizuoka.jp\",\"izu.shizuoka.jp\",\"izunokuni.shizuoka.jp\",\"kakegawa.shizuoka.jp\",\"kannami.shizuoka.jp\",\"kawanehon.shizuoka.jp\",\"kawazu.shizuoka.jp\",\"kikugawa.shizuoka.jp\",\"kosai.shizuoka.jp\",\"makinohara.shizuoka.jp\",\"matsuzaki.shizuoka.jp\",\"minamiizu.shizuoka.jp\",\"mishima.shizuoka.jp\",\"morimachi.shizuoka.jp\",\"nishiizu.shizuoka.jp\",\"numazu.shizuoka.jp\",\"omaezaki.shizuoka.jp\",\"shimada.shizuoka.jp\",\"shimizu.shizuoka.jp\",\"shimoda.shizuoka.jp\",\"shizuoka.shizuoka.jp\",\"susono.shizuoka.jp\",\"yaizu.shizuoka.jp\",\"yoshida.shizuoka.jp\",\"ashikaga.tochigi.jp\",\"bato.tochigi.jp\",\"haga.tochigi.jp\",\"ichikai.tochigi.jp\",\"iwafune.tochigi.jp\",\"kaminokawa.tochigi.jp\",\"kanuma.tochigi.jp\",\"karasuyama.tochigi.jp\",\"kuroiso.tochigi.jp\",\"mashiko.tochigi.jp\",\"mibu.tochigi.jp\",\"moka.tochigi.jp\",\"motegi.tochigi.jp\",\"nasu.tochigi.jp\",\"nasushiobara.tochigi.jp\",\"nikko.tochigi.jp\",\"nishikata.tochigi.jp\",\"nogi.tochigi.jp\",\"ohira.tochigi.jp\",\"ohtawara.tochigi.jp\",\"oyama.tochigi.jp\",\"sakura.tochigi.jp\",\"sano.tochigi.jp\",\"shimotsuke.tochigi.jp\",\"shioya.tochigi.jp\",\"takanezawa.tochigi.jp\",\"tochigi.tochigi.jp\",\"tsuga.tochigi.jp\",\"ujiie.tochigi.jp\",\"utsunomiya.tochigi.jp\",\"yaita.tochigi.jp\",\"aizumi.tokushima.jp\",\"anan.tokushima.jp\",\"ichiba.tokushima.jp\",\"itano.tokushima.jp\",\"kainan.tokushima.jp\",\"komatsushima.tokushima.jp\",\"matsushige.tokushima.jp\",\"mima.tokushima.jp\",\"minami.tokushima.jp\",\"miyoshi.tokushima.jp\",\"mugi.tokushima.jp\",\"nakagawa.tokushima.jp\",\"naruto.tokushima.jp\",\"sanagochi.tokushima.jp\",\"shishikui.tokushima.jp\",\"tokushima.tokushima.jp\",\"wajiki.tokushima.jp\",\"adachi.tokyo.jp\",\"akiruno.tokyo.jp\",\"akishima.tokyo.jp\",\"aogashima.tokyo.jp\",\"arakawa.tokyo.jp\",\"bunkyo.tokyo.jp\",\"chiyoda.tokyo.jp\",\"chofu.tokyo.jp\",\"chuo.tokyo.jp\",\"edogawa.tokyo.jp\",\"fuchu.tokyo.jp\",\"fussa.tokyo.jp\",\"hachijo.tokyo.jp\",\"hachioji.tokyo.jp\",\"hamura.tokyo.jp\",\"higashikurume.tokyo.jp\",\"higashimurayama.tokyo.jp\",\"higashiyamato.tokyo.jp\",\"hino.tokyo.jp\",\"hinode.tokyo.jp\",\"hinohara.tokyo.jp\",\"inagi.tokyo.jp\",\"itabashi.tokyo.jp\",\"katsushika.tokyo.jp\",\"kita.tokyo.jp\",\"kiyose.tokyo.jp\",\"kodaira.tokyo.jp\",\"koganei.tokyo.jp\",\"kokubunji.tokyo.jp\",\"komae.tokyo.jp\",\"koto.tokyo.jp\",\"kouzushima.tokyo.jp\",\"kunitachi.tokyo.jp\",\"machida.tokyo.jp\",\"meguro.tokyo.jp\",\"minato.tokyo.jp\",\"mitaka.tokyo.jp\",\"mizuho.tokyo.jp\",\"musashimurayama.tokyo.jp\",\"musashino.tokyo.jp\",\"nakano.tokyo.jp\",\"nerima.tokyo.jp\",\"ogasawara.tokyo.jp\",\"okutama.tokyo.jp\",\"ome.tokyo.jp\",\"oshima.tokyo.jp\",\"ota.tokyo.jp\",\"setagaya.tokyo.jp\",\"shibuya.tokyo.jp\",\"shinagawa.tokyo.jp\",\"shinjuku.tokyo.jp\",\"suginami.tokyo.jp\",\"sumida.tokyo.jp\",\"tachikawa.tokyo.jp\",\"taito.tokyo.jp\",\"tama.tokyo.jp\",\"toshima.tokyo.jp\",\"chizu.tottori.jp\",\"hino.tottori.jp\",\"kawahara.tottori.jp\",\"koge.tottori.jp\",\"kotoura.tottori.jp\",\"misasa.tottori.jp\",\"nanbu.tottori.jp\",\"nichinan.tottori.jp\",\"sakaiminato.tottori.jp\",\"tottori.tottori.jp\",\"wakasa.tottori.jp\",\"yazu.tottori.jp\",\"yonago.tottori.jp\",\"asahi.toyama.jp\",\"fuchu.toyama.jp\",\"fukumitsu.toyama.jp\",\"funahashi.toyama.jp\",\"himi.toyama.jp\",\"imizu.toyama.jp\",\"inami.toyama.jp\",\"johana.toyama.jp\",\"kamiichi.toyama.jp\",\"kurobe.toyama.jp\",\"nakaniikawa.toyama.jp\",\"namerikawa.toyama.jp\",\"nanto.toyama.jp\",\"nyuzen.toyama.jp\",\"oyabe.toyama.jp\",\"taira.toyama.jp\",\"takaoka.toyama.jp\",\"tateyama.toyama.jp\",\"toga.toyama.jp\",\"tonami.toyama.jp\",\"toyama.toyama.jp\",\"unazuki.toyama.jp\",\"uozu.toyama.jp\",\"yamada.toyama.jp\",\"arida.wakayama.jp\",\"aridagawa.wakayama.jp\",\"gobo.wakayama.jp\",\"hashimoto.wakayama.jp\",\"hidaka.wakayama.jp\",\"hirogawa.wakayama.jp\",\"inami.wakayama.jp\",\"iwade.wakayama.jp\",\"kainan.wakayama.jp\",\"kamitonda.wakayama.jp\",\"katsuragi.wakayama.jp\",\"kimino.wakayama.jp\",\"kinokawa.wakayama.jp\",\"kitayama.wakayama.jp\",\"koya.wakayama.jp\",\"koza.wakayama.jp\",\"kozagawa.wakayama.jp\",\"kudoyama.wakayama.jp\",\"kushimoto.wakayama.jp\",\"mihama.wakayama.jp\",\"misato.wakayama.jp\",\"nachikatsuura.wakayama.jp\",\"shingu.wakayama.jp\",\"shirahama.wakayama.jp\",\"taiji.wakayama.jp\",\"tanabe.wakayama.jp\",\"wakayama.wakayama.jp\",\"yuasa.wakayama.jp\",\"yura.wakayama.jp\",\"asahi.yamagata.jp\",\"funagata.yamagata.jp\",\"higashine.yamagata.jp\",\"iide.yamagata.jp\",\"kahoku.yamagata.jp\",\"kaminoyama.yamagata.jp\",\"kaneyama.yamagata.jp\",\"kawanishi.yamagata.jp\",\"mamurogawa.yamagata.jp\",\"mikawa.yamagata.jp\",\"murayama.yamagata.jp\",\"nagai.yamagata.jp\",\"nakayama.yamagata.jp\",\"nanyo.yamagata.jp\",\"nishikawa.yamagata.jp\",\"obanazawa.yamagata.jp\",\"oe.yamagata.jp\",\"oguni.yamagata.jp\",\"ohkura.yamagata.jp\",\"oishida.yamagata.jp\",\"sagae.yamagata.jp\",\"sakata.yamagata.jp\",\"sakegawa.yamagata.jp\",\"shinjo.yamagata.jp\",\"shirataka.yamagata.jp\",\"shonai.yamagata.jp\",\"takahata.yamagata.jp\",\"tendo.yamagata.jp\",\"tozawa.yamagata.jp\",\"tsuruoka.yamagata.jp\",\"yamagata.yamagata.jp\",\"yamanobe.yamagata.jp\",\"yonezawa.yamagata.jp\",\"yuza.yamagata.jp\",\"abu.yamaguchi.jp\",\"hagi.yamaguchi.jp\",\"hikari.yamaguchi.jp\",\"hofu.yamaguchi.jp\",\"iwakuni.yamaguchi.jp\",\"kudamatsu.yamaguchi.jp\",\"mitou.yamaguchi.jp\",\"nagato.yamaguchi.jp\",\"oshima.yamaguchi.jp\",\"shimonoseki.yamaguchi.jp\",\"shunan.yamaguchi.jp\",\"tabuse.yamaguchi.jp\",\"tokuyama.yamaguchi.jp\",\"toyota.yamaguchi.jp\",\"ube.yamaguchi.jp\",\"yuu.yamaguchi.jp\",\"chuo.yamanashi.jp\",\"doshi.yamanashi.jp\",\"fuefuki.yamanashi.jp\",\"fujikawa.yamanashi.jp\",\"fujikawaguchiko.yamanashi.jp\",\"fujiyoshida.yamanashi.jp\",\"hayakawa.yamanashi.jp\",\"hokuto.yamanashi.jp\",\"ichikawamisato.yamanashi.jp\",\"kai.yamanashi.jp\",\"kofu.yamanashi.jp\",\"koshu.yamanashi.jp\",\"kosuge.yamanashi.jp\",\"minami-alps.yamanashi.jp\",\"minobu.yamanashi.jp\",\"nakamichi.yamanashi.jp\",\"nanbu.yamanashi.jp\",\"narusawa.yamanashi.jp\",\"nirasaki.yamanashi.jp\",\"nishikatsura.yamanashi.jp\",\"oshino.yamanashi.jp\",\"otsuki.yamanashi.jp\",\"showa.yamanashi.jp\",\"tabayama.yamanashi.jp\",\"tsuru.yamanashi.jp\",\"uenohara.yamanashi.jp\",\"yamanakako.yamanashi.jp\",\"yamanashi.yamanashi.jp\",\"ke\",\"ac.ke\",\"co.ke\",\"go.ke\",\"info.ke\",\"me.ke\",\"mobi.ke\",\"ne.ke\",\"or.ke\",\"sc.ke\",\"kg\",\"org.kg\",\"net.kg\",\"com.kg\",\"edu.kg\",\"gov.kg\",\"mil.kg\",\"*.kh\",\"ki\",\"edu.ki\",\"biz.ki\",\"net.ki\",\"org.ki\",\"gov.ki\",\"info.ki\",\"com.ki\",\"km\",\"org.km\",\"nom.km\",\"gov.km\",\"prd.km\",\"tm.km\",\"edu.km\",\"mil.km\",\"ass.km\",\"com.km\",\"coop.km\",\"asso.km\",\"presse.km\",\"medecin.km\",\"notaires.km\",\"pharmaciens.km\",\"veterinaire.km\",\"gouv.km\",\"kn\",\"net.kn\",\"org.kn\",\"edu.kn\",\"gov.kn\",\"kp\",\"com.kp\",\"edu.kp\",\"gov.kp\",\"org.kp\",\"rep.kp\",\"tra.kp\",\"kr\",\"ac.kr\",\"co.kr\",\"es.kr\",\"go.kr\",\"hs.kr\",\"kg.kr\",\"mil.kr\",\"ms.kr\",\"ne.kr\",\"or.kr\",\"pe.kr\",\"re.kr\",\"sc.kr\",\"busan.kr\",\"chungbuk.kr\",\"chungnam.kr\",\"daegu.kr\",\"daejeon.kr\",\"gangwon.kr\",\"gwangju.kr\",\"gyeongbuk.kr\",\"gyeonggi.kr\",\"gyeongnam.kr\",\"incheon.kr\",\"jeju.kr\",\"jeonbuk.kr\",\"jeonnam.kr\",\"seoul.kr\",\"ulsan.kr\",\"kw\",\"com.kw\",\"edu.kw\",\"emb.kw\",\"gov.kw\",\"ind.kw\",\"net.kw\",\"org.kw\",\"ky\",\"edu.ky\",\"gov.ky\",\"com.ky\",\"org.ky\",\"net.ky\",\"kz\",\"org.kz\",\"edu.kz\",\"net.kz\",\"gov.kz\",\"mil.kz\",\"com.kz\",\"la\",\"int.la\",\"net.la\",\"info.la\",\"edu.la\",\"gov.la\",\"per.la\",\"com.la\",\"org.la\",\"lb\",\"com.lb\",\"edu.lb\",\"gov.lb\",\"net.lb\",\"org.lb\",\"lc\",\"com.lc\",\"net.lc\",\"co.lc\",\"org.lc\",\"edu.lc\",\"gov.lc\",\"li\",\"lk\",\"gov.lk\",\"sch.lk\",\"net.lk\",\"int.lk\",\"com.lk\",\"org.lk\",\"edu.lk\",\"ngo.lk\",\"soc.lk\",\"web.lk\",\"ltd.lk\",\"assn.lk\",\"grp.lk\",\"hotel.lk\",\"ac.lk\",\"lr\",\"com.lr\",\"edu.lr\",\"gov.lr\",\"org.lr\",\"net.lr\",\"ls\",\"ac.ls\",\"biz.ls\",\"co.ls\",\"edu.ls\",\"gov.ls\",\"info.ls\",\"net.ls\",\"org.ls\",\"sc.ls\",\"lt\",\"gov.lt\",\"lu\",\"lv\",\"com.lv\",\"edu.lv\",\"gov.lv\",\"org.lv\",\"mil.lv\",\"id.lv\",\"net.lv\",\"asn.lv\",\"conf.lv\",\"ly\",\"com.ly\",\"net.ly\",\"gov.ly\",\"plc.ly\",\"edu.ly\",\"sch.ly\",\"med.ly\",\"org.ly\",\"id.ly\",\"ma\",\"co.ma\",\"net.ma\",\"gov.ma\",\"org.ma\",\"ac.ma\",\"press.ma\",\"mc\",\"tm.mc\",\"asso.mc\",\"md\",\"me\",\"co.me\",\"net.me\",\"org.me\",\"edu.me\",\"ac.me\",\"gov.me\",\"its.me\",\"priv.me\",\"mg\",\"org.mg\",\"nom.mg\",\"gov.mg\",\"prd.mg\",\"tm.mg\",\"edu.mg\",\"mil.mg\",\"com.mg\",\"co.mg\",\"mh\",\"mil\",\"mk\",\"com.mk\",\"org.mk\",\"net.mk\",\"edu.mk\",\"gov.mk\",\"inf.mk\",\"name.mk\",\"ml\",\"com.ml\",\"edu.ml\",\"gouv.ml\",\"gov.ml\",\"net.ml\",\"org.ml\",\"presse.ml\",\"*.mm\",\"mn\",\"gov.mn\",\"edu.mn\",\"org.mn\",\"mo\",\"com.mo\",\"net.mo\",\"org.mo\",\"edu.mo\",\"gov.mo\",\"mobi\",\"mp\",\"mq\",\"mr\",\"gov.mr\",\"ms\",\"com.ms\",\"edu.ms\",\"gov.ms\",\"net.ms\",\"org.ms\",\"mt\",\"com.mt\",\"edu.mt\",\"net.mt\",\"org.mt\",\"mu\",\"com.mu\",\"net.mu\",\"org.mu\",\"gov.mu\",\"ac.mu\",\"co.mu\",\"or.mu\",\"museum\",\"academy.museum\",\"agriculture.museum\",\"air.museum\",\"airguard.museum\",\"alabama.museum\",\"alaska.museum\",\"amber.museum\",\"ambulance.museum\",\"american.museum\",\"americana.museum\",\"americanantiques.museum\",\"americanart.museum\",\"amsterdam.museum\",\"and.museum\",\"annefrank.museum\",\"anthro.museum\",\"anthropology.museum\",\"antiques.museum\",\"aquarium.museum\",\"arboretum.museum\",\"archaeological.museum\",\"archaeology.museum\",\"architecture.museum\",\"art.museum\",\"artanddesign.museum\",\"artcenter.museum\",\"artdeco.museum\",\"arteducation.museum\",\"artgallery.museum\",\"arts.museum\",\"artsandcrafts.museum\",\"asmatart.museum\",\"assassination.museum\",\"assisi.museum\",\"association.museum\",\"astronomy.museum\",\"atlanta.museum\",\"austin.museum\",\"australia.museum\",\"automotive.museum\",\"aviation.museum\",\"axis.museum\",\"badajoz.museum\",\"baghdad.museum\",\"bahn.museum\",\"bale.museum\",\"baltimore.museum\",\"barcelona.museum\",\"baseball.museum\",\"basel.museum\",\"baths.museum\",\"bauern.museum\",\"beauxarts.museum\",\"beeldengeluid.museum\",\"bellevue.museum\",\"bergbau.museum\",\"berkeley.museum\",\"berlin.museum\",\"bern.museum\",\"bible.museum\",\"bilbao.museum\",\"bill.museum\",\"birdart.museum\",\"birthplace.museum\",\"bonn.museum\",\"boston.museum\",\"botanical.museum\",\"botanicalgarden.museum\",\"botanicgarden.museum\",\"botany.museum\",\"brandywinevalley.museum\",\"brasil.museum\",\"bristol.museum\",\"british.museum\",\"britishcolumbia.museum\",\"broadcast.museum\",\"brunel.museum\",\"brussel.museum\",\"brussels.museum\",\"bruxelles.museum\",\"building.museum\",\"burghof.museum\",\"bus.museum\",\"bushey.museum\",\"cadaques.museum\",\"california.museum\",\"cambridge.museum\",\"can.museum\",\"canada.museum\",\"capebreton.museum\",\"carrier.museum\",\"cartoonart.museum\",\"casadelamoneda.museum\",\"castle.museum\",\"castres.museum\",\"celtic.museum\",\"center.museum\",\"chattanooga.museum\",\"cheltenham.museum\",\"chesapeakebay.museum\",\"chicago.museum\",\"children.museum\",\"childrens.museum\",\"childrensgarden.museum\",\"chiropractic.museum\",\"chocolate.museum\",\"christiansburg.museum\",\"cincinnati.museum\",\"cinema.museum\",\"circus.museum\",\"civilisation.museum\",\"civilization.museum\",\"civilwar.museum\",\"clinton.museum\",\"clock.museum\",\"coal.museum\",\"coastaldefence.museum\",\"cody.museum\",\"coldwar.museum\",\"collection.museum\",\"colonialwilliamsburg.museum\",\"coloradoplateau.museum\",\"columbia.museum\",\"columbus.museum\",\"communication.museum\",\"communications.museum\",\"community.museum\",\"computer.museum\",\"computerhistory.museum\",\"comunicações.museum\",\"contemporary.museum\",\"contemporaryart.museum\",\"convent.museum\",\"copenhagen.museum\",\"corporation.museum\",\"correios-e-telecomunicações.museum\",\"corvette.museum\",\"costume.museum\",\"countryestate.museum\",\"county.museum\",\"crafts.museum\",\"cranbrook.museum\",\"creation.museum\",\"cultural.museum\",\"culturalcenter.museum\",\"culture.museum\",\"cyber.museum\",\"cymru.museum\",\"dali.museum\",\"dallas.museum\",\"database.museum\",\"ddr.museum\",\"decorativearts.museum\",\"delaware.museum\",\"delmenhorst.museum\",\"denmark.museum\",\"depot.museum\",\"design.museum\",\"detroit.museum\",\"dinosaur.museum\",\"discovery.museum\",\"dolls.museum\",\"donostia.museum\",\"durham.museum\",\"eastafrica.museum\",\"eastcoast.museum\",\"education.museum\",\"educational.museum\",\"egyptian.museum\",\"eisenbahn.museum\",\"elburg.museum\",\"elvendrell.museum\",\"embroidery.museum\",\"encyclopedic.museum\",\"england.museum\",\"entomology.museum\",\"environment.museum\",\"environmentalconservation.museum\",\"epilepsy.museum\",\"essex.museum\",\"estate.museum\",\"ethnology.museum\",\"exeter.museum\",\"exhibition.museum\",\"family.museum\",\"farm.museum\",\"farmequipment.museum\",\"farmers.museum\",\"farmstead.museum\",\"field.museum\",\"figueres.museum\",\"filatelia.museum\",\"film.museum\",\"fineart.museum\",\"finearts.museum\",\"finland.museum\",\"flanders.museum\",\"florida.museum\",\"force.museum\",\"fortmissoula.museum\",\"fortworth.museum\",\"foundation.museum\",\"francaise.museum\",\"frankfurt.museum\",\"franziskaner.museum\",\"freemasonry.museum\",\"freiburg.museum\",\"fribourg.museum\",\"frog.museum\",\"fundacio.museum\",\"furniture.museum\",\"gallery.museum\",\"garden.museum\",\"gateway.museum\",\"geelvinck.museum\",\"gemological.museum\",\"geology.museum\",\"georgia.museum\",\"giessen.museum\",\"glas.museum\",\"glass.museum\",\"gorge.museum\",\"grandrapids.museum\",\"graz.museum\",\"guernsey.museum\",\"halloffame.museum\",\"hamburg.museum\",\"handson.museum\",\"harvestcelebration.museum\",\"hawaii.museum\",\"health.museum\",\"heimatunduhren.museum\",\"hellas.museum\",\"helsinki.museum\",\"hembygdsforbund.museum\",\"heritage.museum\",\"histoire.museum\",\"historical.museum\",\"historicalsociety.museum\",\"historichouses.museum\",\"historisch.museum\",\"historisches.museum\",\"history.museum\",\"historyofscience.museum\",\"horology.museum\",\"house.museum\",\"humanities.museum\",\"illustration.museum\",\"imageandsound.museum\",\"indian.museum\",\"indiana.museum\",\"indianapolis.museum\",\"indianmarket.museum\",\"intelligence.museum\",\"interactive.museum\",\"iraq.museum\",\"iron.museum\",\"isleofman.museum\",\"jamison.museum\",\"jefferson.museum\",\"jerusalem.museum\",\"jewelry.museum\",\"jewish.museum\",\"jewishart.museum\",\"jfk.museum\",\"journalism.museum\",\"judaica.museum\",\"judygarland.museum\",\"juedisches.museum\",\"juif.museum\",\"karate.museum\",\"karikatur.museum\",\"kids.museum\",\"koebenhavn.museum\",\"koeln.museum\",\"kunst.museum\",\"kunstsammlung.museum\",\"kunstunddesign.museum\",\"labor.museum\",\"labour.museum\",\"lajolla.museum\",\"lancashire.museum\",\"landes.museum\",\"lans.museum\",\"läns.museum\",\"larsson.museum\",\"lewismiller.museum\",\"lincoln.museum\",\"linz.museum\",\"living.museum\",\"livinghistory.museum\",\"localhistory.museum\",\"london.museum\",\"losangeles.museum\",\"louvre.museum\",\"loyalist.museum\",\"lucerne.museum\",\"luxembourg.museum\",\"luzern.museum\",\"mad.museum\",\"madrid.museum\",\"mallorca.museum\",\"manchester.museum\",\"mansion.museum\",\"mansions.museum\",\"manx.museum\",\"marburg.museum\",\"maritime.museum\",\"maritimo.museum\",\"maryland.museum\",\"marylhurst.museum\",\"media.museum\",\"medical.museum\",\"medizinhistorisches.museum\",\"meeres.museum\",\"memorial.museum\",\"mesaverde.museum\",\"michigan.museum\",\"midatlantic.museum\",\"military.museum\",\"mill.museum\",\"miners.museum\",\"mining.museum\",\"minnesota.museum\",\"missile.museum\",\"missoula.museum\",\"modern.museum\",\"moma.museum\",\"money.museum\",\"monmouth.museum\",\"monticello.museum\",\"montreal.museum\",\"moscow.museum\",\"motorcycle.museum\",\"muenchen.museum\",\"muenster.museum\",\"mulhouse.museum\",\"muncie.museum\",\"museet.museum\",\"museumcenter.museum\",\"museumvereniging.museum\",\"music.museum\",\"national.museum\",\"nationalfirearms.museum\",\"nationalheritage.museum\",\"nativeamerican.museum\",\"naturalhistory.museum\",\"naturalhistorymuseum.museum\",\"naturalsciences.museum\",\"nature.museum\",\"naturhistorisches.museum\",\"natuurwetenschappen.museum\",\"naumburg.museum\",\"naval.museum\",\"nebraska.museum\",\"neues.museum\",\"newhampshire.museum\",\"newjersey.museum\",\"newmexico.museum\",\"newport.museum\",\"newspaper.museum\",\"newyork.museum\",\"niepce.museum\",\"norfolk.museum\",\"north.museum\",\"nrw.museum\",\"nuernberg.museum\",\"nuremberg.museum\",\"nyc.museum\",\"nyny.museum\",\"oceanographic.museum\",\"oceanographique.museum\",\"omaha.museum\",\"online.museum\",\"ontario.museum\",\"openair.museum\",\"oregon.museum\",\"oregontrail.museum\",\"otago.museum\",\"oxford.museum\",\"pacific.museum\",\"paderborn.museum\",\"palace.museum\",\"paleo.museum\",\"palmsprings.museum\",\"panama.museum\",\"paris.museum\",\"pasadena.museum\",\"pharmacy.museum\",\"philadelphia.museum\",\"philadelphiaarea.museum\",\"philately.museum\",\"phoenix.museum\",\"photography.museum\",\"pilots.museum\",\"pittsburgh.museum\",\"planetarium.museum\",\"plantation.museum\",\"plants.museum\",\"plaza.museum\",\"portal.museum\",\"portland.museum\",\"portlligat.museum\",\"posts-and-telecommunications.museum\",\"preservation.museum\",\"presidio.museum\",\"press.museum\",\"project.museum\",\"public.museum\",\"pubol.museum\",\"quebec.museum\",\"railroad.museum\",\"railway.museum\",\"research.museum\",\"resistance.museum\",\"riodejaneiro.museum\",\"rochester.museum\",\"rockart.museum\",\"roma.museum\",\"russia.museum\",\"saintlouis.museum\",\"salem.museum\",\"salvadordali.museum\",\"salzburg.museum\",\"sandiego.museum\",\"sanfrancisco.museum\",\"santabarbara.museum\",\"santacruz.museum\",\"santafe.museum\",\"saskatchewan.museum\",\"satx.museum\",\"savannahga.museum\",\"schlesisches.museum\",\"schoenbrunn.museum\",\"schokoladen.museum\",\"school.museum\",\"schweiz.museum\",\"science.museum\",\"scienceandhistory.museum\",\"scienceandindustry.museum\",\"sciencecenter.museum\",\"sciencecenters.museum\",\"science-fiction.museum\",\"sciencehistory.museum\",\"sciences.museum\",\"sciencesnaturelles.museum\",\"scotland.museum\",\"seaport.museum\",\"settlement.museum\",\"settlers.museum\",\"shell.museum\",\"sherbrooke.museum\",\"sibenik.museum\",\"silk.museum\",\"ski.museum\",\"skole.museum\",\"society.museum\",\"sologne.museum\",\"soundandvision.museum\",\"southcarolina.museum\",\"southwest.museum\",\"space.museum\",\"spy.museum\",\"square.museum\",\"stadt.museum\",\"stalbans.museum\",\"starnberg.museum\",\"state.museum\",\"stateofdelaware.museum\",\"station.museum\",\"steam.museum\",\"steiermark.museum\",\"stjohn.museum\",\"stockholm.museum\",\"stpetersburg.museum\",\"stuttgart.museum\",\"suisse.museum\",\"surgeonshall.museum\",\"surrey.museum\",\"svizzera.museum\",\"sweden.museum\",\"sydney.museum\",\"tank.museum\",\"tcm.museum\",\"technology.museum\",\"telekommunikation.museum\",\"television.museum\",\"texas.museum\",\"textile.museum\",\"theater.museum\",\"time.museum\",\"timekeeping.museum\",\"topology.museum\",\"torino.museum\",\"touch.museum\",\"town.museum\",\"transport.museum\",\"tree.museum\",\"trolley.museum\",\"trust.museum\",\"trustee.museum\",\"uhren.museum\",\"ulm.museum\",\"undersea.museum\",\"university.museum\",\"usa.museum\",\"usantiques.museum\",\"usarts.museum\",\"uscountryestate.museum\",\"usculture.museum\",\"usdecorativearts.museum\",\"usgarden.museum\",\"ushistory.museum\",\"ushuaia.museum\",\"uslivinghistory.museum\",\"utah.museum\",\"uvic.museum\",\"valley.museum\",\"vantaa.museum\",\"versailles.museum\",\"viking.museum\",\"village.museum\",\"virginia.museum\",\"virtual.museum\",\"virtuel.museum\",\"vlaanderen.museum\",\"volkenkunde.museum\",\"wales.museum\",\"wallonie.museum\",\"war.museum\",\"washingtondc.museum\",\"watchandclock.museum\",\"watch-and-clock.museum\",\"western.museum\",\"westfalen.museum\",\"whaling.museum\",\"wildlife.museum\",\"williamsburg.museum\",\"windmill.museum\",\"workshop.museum\",\"york.museum\",\"yorkshire.museum\",\"yosemite.museum\",\"youth.museum\",\"zoological.museum\",\"zoology.museum\",\"ירושלים.museum\",\"иком.museum\",\"mv\",\"aero.mv\",\"biz.mv\",\"com.mv\",\"coop.mv\",\"edu.mv\",\"gov.mv\",\"info.mv\",\"int.mv\",\"mil.mv\",\"museum.mv\",\"name.mv\",\"net.mv\",\"org.mv\",\"pro.mv\",\"mw\",\"ac.mw\",\"biz.mw\",\"co.mw\",\"com.mw\",\"coop.mw\",\"edu.mw\",\"gov.mw\",\"int.mw\",\"museum.mw\",\"net.mw\",\"org.mw\",\"mx\",\"com.mx\",\"org.mx\",\"gob.mx\",\"edu.mx\",\"net.mx\",\"my\",\"com.my\",\"net.my\",\"org.my\",\"gov.my\",\"edu.my\",\"mil.my\",\"name.my\",\"mz\",\"ac.mz\",\"adv.mz\",\"co.mz\",\"edu.mz\",\"gov.mz\",\"mil.mz\",\"net.mz\",\"org.mz\",\"na\",\"info.na\",\"pro.na\",\"name.na\",\"school.na\",\"or.na\",\"dr.na\",\"us.na\",\"mx.na\",\"ca.na\",\"in.na\",\"cc.na\",\"tv.na\",\"ws.na\",\"mobi.na\",\"co.na\",\"com.na\",\"org.na\",\"name\",\"nc\",\"asso.nc\",\"nom.nc\",\"ne\",\"net\",\"nf\",\"com.nf\",\"net.nf\",\"per.nf\",\"rec.nf\",\"web.nf\",\"arts.nf\",\"firm.nf\",\"info.nf\",\"other.nf\",\"store.nf\",\"ng\",\"com.ng\",\"edu.ng\",\"gov.ng\",\"i.ng\",\"mil.ng\",\"mobi.ng\",\"name.ng\",\"net.ng\",\"org.ng\",\"sch.ng\",\"ni\",\"ac.ni\",\"biz.ni\",\"co.ni\",\"com.ni\",\"edu.ni\",\"gob.ni\",\"in.ni\",\"info.ni\",\"int.ni\",\"mil.ni\",\"net.ni\",\"nom.ni\",\"org.ni\",\"web.ni\",\"nl\",\"no\",\"fhs.no\",\"vgs.no\",\"fylkesbibl.no\",\"folkebibl.no\",\"museum.no\",\"idrett.no\",\"priv.no\",\"mil.no\",\"stat.no\",\"dep.no\",\"kommune.no\",\"herad.no\",\"aa.no\",\"ah.no\",\"bu.no\",\"fm.no\",\"hl.no\",\"hm.no\",\"jan-mayen.no\",\"mr.no\",\"nl.no\",\"nt.no\",\"of.no\",\"ol.no\",\"oslo.no\",\"rl.no\",\"sf.no\",\"st.no\",\"svalbard.no\",\"tm.no\",\"tr.no\",\"va.no\",\"vf.no\",\"gs.aa.no\",\"gs.ah.no\",\"gs.bu.no\",\"gs.fm.no\",\"gs.hl.no\",\"gs.hm.no\",\"gs.jan-mayen.no\",\"gs.mr.no\",\"gs.nl.no\",\"gs.nt.no\",\"gs.of.no\",\"gs.ol.no\",\"gs.oslo.no\",\"gs.rl.no\",\"gs.sf.no\",\"gs.st.no\",\"gs.svalbard.no\",\"gs.tm.no\",\"gs.tr.no\",\"gs.va.no\",\"gs.vf.no\",\"akrehamn.no\",\"åkrehamn.no\",\"algard.no\",\"ålgård.no\",\"arna.no\",\"brumunddal.no\",\"bryne.no\",\"bronnoysund.no\",\"brønnøysund.no\",\"drobak.no\",\"drøbak.no\",\"egersund.no\",\"fetsund.no\",\"floro.no\",\"florø.no\",\"fredrikstad.no\",\"hokksund.no\",\"honefoss.no\",\"hønefoss.no\",\"jessheim.no\",\"jorpeland.no\",\"jørpeland.no\",\"kirkenes.no\",\"kopervik.no\",\"krokstadelva.no\",\"langevag.no\",\"langevåg.no\",\"leirvik.no\",\"mjondalen.no\",\"mjøndalen.no\",\"mo-i-rana.no\",\"mosjoen.no\",\"mosjøen.no\",\"nesoddtangen.no\",\"orkanger.no\",\"osoyro.no\",\"osøyro.no\",\"raholt.no\",\"råholt.no\",\"sandnessjoen.no\",\"sandnessjøen.no\",\"skedsmokorset.no\",\"slattum.no\",\"spjelkavik.no\",\"stathelle.no\",\"stavern.no\",\"stjordalshalsen.no\",\"stjørdalshalsen.no\",\"tananger.no\",\"tranby.no\",\"vossevangen.no\",\"afjord.no\",\"åfjord.no\",\"agdenes.no\",\"al.no\",\"ål.no\",\"alesund.no\",\"ålesund.no\",\"alstahaug.no\",\"alta.no\",\"áltá.no\",\"alaheadju.no\",\"álaheadju.no\",\"alvdal.no\",\"amli.no\",\"åmli.no\",\"amot.no\",\"åmot.no\",\"andebu.no\",\"andoy.no\",\"andøy.no\",\"andasuolo.no\",\"ardal.no\",\"årdal.no\",\"aremark.no\",\"arendal.no\",\"ås.no\",\"aseral.no\",\"åseral.no\",\"asker.no\",\"askim.no\",\"askvoll.no\",\"askoy.no\",\"askøy.no\",\"asnes.no\",\"åsnes.no\",\"audnedaln.no\",\"aukra.no\",\"aure.no\",\"aurland.no\",\"aurskog-holand.no\",\"aurskog-høland.no\",\"austevoll.no\",\"austrheim.no\",\"averoy.no\",\"averøy.no\",\"balestrand.no\",\"ballangen.no\",\"balat.no\",\"bálát.no\",\"balsfjord.no\",\"bahccavuotna.no\",\"báhccavuotna.no\",\"bamble.no\",\"bardu.no\",\"beardu.no\",\"beiarn.no\",\"bajddar.no\",\"bájddar.no\",\"baidar.no\",\"báidár.no\",\"berg.no\",\"bergen.no\",\"berlevag.no\",\"berlevåg.no\",\"bearalvahki.no\",\"bearalváhki.no\",\"bindal.no\",\"birkenes.no\",\"bjarkoy.no\",\"bjarkøy.no\",\"bjerkreim.no\",\"bjugn.no\",\"bodo.no\",\"bodø.no\",\"badaddja.no\",\"bådåddjå.no\",\"budejju.no\",\"bokn.no\",\"bremanger.no\",\"bronnoy.no\",\"brønnøy.no\",\"bygland.no\",\"bykle.no\",\"barum.no\",\"bærum.no\",\"bo.telemark.no\",\"bø.telemark.no\",\"bo.nordland.no\",\"bø.nordland.no\",\"bievat.no\",\"bievát.no\",\"bomlo.no\",\"bømlo.no\",\"batsfjord.no\",\"båtsfjord.no\",\"bahcavuotna.no\",\"báhcavuotna.no\",\"dovre.no\",\"drammen.no\",\"drangedal.no\",\"dyroy.no\",\"dyrøy.no\",\"donna.no\",\"dønna.no\",\"eid.no\",\"eidfjord.no\",\"eidsberg.no\",\"eidskog.no\",\"eidsvoll.no\",\"eigersund.no\",\"elverum.no\",\"enebakk.no\",\"engerdal.no\",\"etne.no\",\"etnedal.no\",\"evenes.no\",\"evenassi.no\",\"evenášši.no\",\"evje-og-hornnes.no\",\"farsund.no\",\"fauske.no\",\"fuossko.no\",\"fuoisku.no\",\"fedje.no\",\"fet.no\",\"finnoy.no\",\"finnøy.no\",\"fitjar.no\",\"fjaler.no\",\"fjell.no\",\"flakstad.no\",\"flatanger.no\",\"flekkefjord.no\",\"flesberg.no\",\"flora.no\",\"fla.no\",\"flå.no\",\"folldal.no\",\"forsand.no\",\"fosnes.no\",\"frei.no\",\"frogn.no\",\"froland.no\",\"frosta.no\",\"frana.no\",\"fræna.no\",\"froya.no\",\"frøya.no\",\"fusa.no\",\"fyresdal.no\",\"forde.no\",\"førde.no\",\"gamvik.no\",\"gangaviika.no\",\"gáŋgaviika.no\",\"gaular.no\",\"gausdal.no\",\"gildeskal.no\",\"gildeskål.no\",\"giske.no\",\"gjemnes.no\",\"gjerdrum.no\",\"gjerstad.no\",\"gjesdal.no\",\"gjovik.no\",\"gjøvik.no\",\"gloppen.no\",\"gol.no\",\"gran.no\",\"grane.no\",\"granvin.no\",\"gratangen.no\",\"grimstad.no\",\"grong.no\",\"kraanghke.no\",\"kråanghke.no\",\"grue.no\",\"gulen.no\",\"hadsel.no\",\"halden.no\",\"halsa.no\",\"hamar.no\",\"hamaroy.no\",\"habmer.no\",\"hábmer.no\",\"hapmir.no\",\"hápmir.no\",\"hammerfest.no\",\"hammarfeasta.no\",\"hámmárfeasta.no\",\"haram.no\",\"hareid.no\",\"harstad.no\",\"hasvik.no\",\"aknoluokta.no\",\"ákŋoluokta.no\",\"hattfjelldal.no\",\"aarborte.no\",\"haugesund.no\",\"hemne.no\",\"hemnes.no\",\"hemsedal.no\",\"heroy.more-og-romsdal.no\",\"herøy.møre-og-romsdal.no\",\"heroy.nordland.no\",\"herøy.nordland.no\",\"hitra.no\",\"hjartdal.no\",\"hjelmeland.no\",\"hobol.no\",\"hobøl.no\",\"hof.no\",\"hol.no\",\"hole.no\",\"holmestrand.no\",\"holtalen.no\",\"holtålen.no\",\"hornindal.no\",\"horten.no\",\"hurdal.no\",\"hurum.no\",\"hvaler.no\",\"hyllestad.no\",\"hagebostad.no\",\"hægebostad.no\",\"hoyanger.no\",\"høyanger.no\",\"hoylandet.no\",\"høylandet.no\",\"ha.no\",\"hå.no\",\"ibestad.no\",\"inderoy.no\",\"inderøy.no\",\"iveland.no\",\"jevnaker.no\",\"jondal.no\",\"jolster.no\",\"jølster.no\",\"karasjok.no\",\"karasjohka.no\",\"kárášjohka.no\",\"karlsoy.no\",\"galsa.no\",\"gálsá.no\",\"karmoy.no\",\"karmøy.no\",\"kautokeino.no\",\"guovdageaidnu.no\",\"klepp.no\",\"klabu.no\",\"klæbu.no\",\"kongsberg.no\",\"kongsvinger.no\",\"kragero.no\",\"kragerø.no\",\"kristiansand.no\",\"kristiansund.no\",\"krodsherad.no\",\"krødsherad.no\",\"kvalsund.no\",\"rahkkeravju.no\",\"ráhkkerávju.no\",\"kvam.no\",\"kvinesdal.no\",\"kvinnherad.no\",\"kviteseid.no\",\"kvitsoy.no\",\"kvitsøy.no\",\"kvafjord.no\",\"kvæfjord.no\",\"giehtavuoatna.no\",\"kvanangen.no\",\"kvænangen.no\",\"navuotna.no\",\"návuotna.no\",\"kafjord.no\",\"kåfjord.no\",\"gaivuotna.no\",\"gáivuotna.no\",\"larvik.no\",\"lavangen.no\",\"lavagis.no\",\"loabat.no\",\"loabát.no\",\"lebesby.no\",\"davvesiida.no\",\"leikanger.no\",\"leirfjord.no\",\"leka.no\",\"leksvik.no\",\"lenvik.no\",\"leangaviika.no\",\"leaŋgaviika.no\",\"lesja.no\",\"levanger.no\",\"lier.no\",\"lierne.no\",\"lillehammer.no\",\"lillesand.no\",\"lindesnes.no\",\"lindas.no\",\"lindås.no\",\"lom.no\",\"loppa.no\",\"lahppi.no\",\"láhppi.no\",\"lund.no\",\"lunner.no\",\"luroy.no\",\"lurøy.no\",\"luster.no\",\"lyngdal.no\",\"lyngen.no\",\"ivgu.no\",\"lardal.no\",\"lerdal.no\",\"lærdal.no\",\"lodingen.no\",\"lødingen.no\",\"lorenskog.no\",\"lørenskog.no\",\"loten.no\",\"løten.no\",\"malvik.no\",\"masoy.no\",\"måsøy.no\",\"muosat.no\",\"muosát.no\",\"mandal.no\",\"marker.no\",\"marnardal.no\",\"masfjorden.no\",\"meland.no\",\"meldal.no\",\"melhus.no\",\"meloy.no\",\"meløy.no\",\"meraker.no\",\"meråker.no\",\"moareke.no\",\"moåreke.no\",\"midsund.no\",\"midtre-gauldal.no\",\"modalen.no\",\"modum.no\",\"molde.no\",\"moskenes.no\",\"moss.no\",\"mosvik.no\",\"malselv.no\",\"målselv.no\",\"malatvuopmi.no\",\"málatvuopmi.no\",\"namdalseid.no\",\"aejrie.no\",\"namsos.no\",\"namsskogan.no\",\"naamesjevuemie.no\",\"nååmesjevuemie.no\",\"laakesvuemie.no\",\"nannestad.no\",\"narvik.no\",\"narviika.no\",\"naustdal.no\",\"nedre-eiker.no\",\"nes.akershus.no\",\"nes.buskerud.no\",\"nesna.no\",\"nesodden.no\",\"nesseby.no\",\"unjarga.no\",\"unjárga.no\",\"nesset.no\",\"nissedal.no\",\"nittedal.no\",\"nord-aurdal.no\",\"nord-fron.no\",\"nord-odal.no\",\"norddal.no\",\"nordkapp.no\",\"davvenjarga.no\",\"davvenjárga.no\",\"nordre-land.no\",\"nordreisa.no\",\"raisa.no\",\"ráisa.no\",\"nore-og-uvdal.no\",\"notodden.no\",\"naroy.no\",\"nærøy.no\",\"notteroy.no\",\"nøtterøy.no\",\"odda.no\",\"oksnes.no\",\"øksnes.no\",\"oppdal.no\",\"oppegard.no\",\"oppegård.no\",\"orkdal.no\",\"orland.no\",\"ørland.no\",\"orskog.no\",\"ørskog.no\",\"orsta.no\",\"ørsta.no\",\"os.hedmark.no\",\"os.hordaland.no\",\"osen.no\",\"osteroy.no\",\"osterøy.no\",\"ostre-toten.no\",\"østre-toten.no\",\"overhalla.no\",\"ovre-eiker.no\",\"øvre-eiker.no\",\"oyer.no\",\"øyer.no\",\"oygarden.no\",\"øygarden.no\",\"oystre-slidre.no\",\"øystre-slidre.no\",\"porsanger.no\",\"porsangu.no\",\"porsáŋgu.no\",\"porsgrunn.no\",\"radoy.no\",\"radøy.no\",\"rakkestad.no\",\"rana.no\",\"ruovat.no\",\"randaberg.no\",\"rauma.no\",\"rendalen.no\",\"rennebu.no\",\"rennesoy.no\",\"rennesøy.no\",\"rindal.no\",\"ringebu.no\",\"ringerike.no\",\"ringsaker.no\",\"rissa.no\",\"risor.no\",\"risør.no\",\"roan.no\",\"rollag.no\",\"rygge.no\",\"ralingen.no\",\"rælingen.no\",\"rodoy.no\",\"rødøy.no\",\"romskog.no\",\"rømskog.no\",\"roros.no\",\"røros.no\",\"rost.no\",\"røst.no\",\"royken.no\",\"røyken.no\",\"royrvik.no\",\"røyrvik.no\",\"rade.no\",\"råde.no\",\"salangen.no\",\"siellak.no\",\"saltdal.no\",\"salat.no\",\"sálát.no\",\"sálat.no\",\"samnanger.no\",\"sande.more-og-romsdal.no\",\"sande.møre-og-romsdal.no\",\"sande.vestfold.no\",\"sandefjord.no\",\"sandnes.no\",\"sandoy.no\",\"sandøy.no\",\"sarpsborg.no\",\"sauda.no\",\"sauherad.no\",\"sel.no\",\"selbu.no\",\"selje.no\",\"seljord.no\",\"sigdal.no\",\"siljan.no\",\"sirdal.no\",\"skaun.no\",\"skedsmo.no\",\"ski.no\",\"skien.no\",\"skiptvet.no\",\"skjervoy.no\",\"skjervøy.no\",\"skierva.no\",\"skiervá.no\",\"skjak.no\",\"skjåk.no\",\"skodje.no\",\"skanland.no\",\"skånland.no\",\"skanit.no\",\"skánit.no\",\"smola.no\",\"smøla.no\",\"snillfjord.no\",\"snasa.no\",\"snåsa.no\",\"snoasa.no\",\"snaase.no\",\"snåase.no\",\"sogndal.no\",\"sokndal.no\",\"sola.no\",\"solund.no\",\"songdalen.no\",\"sortland.no\",\"spydeberg.no\",\"stange.no\",\"stavanger.no\",\"steigen.no\",\"steinkjer.no\",\"stjordal.no\",\"stjørdal.no\",\"stokke.no\",\"stor-elvdal.no\",\"stord.no\",\"stordal.no\",\"storfjord.no\",\"omasvuotna.no\",\"strand.no\",\"stranda.no\",\"stryn.no\",\"sula.no\",\"suldal.no\",\"sund.no\",\"sunndal.no\",\"surnadal.no\",\"sveio.no\",\"svelvik.no\",\"sykkylven.no\",\"sogne.no\",\"søgne.no\",\"somna.no\",\"sømna.no\",\"sondre-land.no\",\"søndre-land.no\",\"sor-aurdal.no\",\"sør-aurdal.no\",\"sor-fron.no\",\"sør-fron.no\",\"sor-odal.no\",\"sør-odal.no\",\"sor-varanger.no\",\"sør-varanger.no\",\"matta-varjjat.no\",\"mátta-várjjat.no\",\"sorfold.no\",\"sørfold.no\",\"sorreisa.no\",\"sørreisa.no\",\"sorum.no\",\"sørum.no\",\"tana.no\",\"deatnu.no\",\"time.no\",\"tingvoll.no\",\"tinn.no\",\"tjeldsund.no\",\"dielddanuorri.no\",\"tjome.no\",\"tjøme.no\",\"tokke.no\",\"tolga.no\",\"torsken.no\",\"tranoy.no\",\"tranøy.no\",\"tromso.no\",\"tromsø.no\",\"tromsa.no\",\"romsa.no\",\"trondheim.no\",\"troandin.no\",\"trysil.no\",\"trana.no\",\"træna.no\",\"trogstad.no\",\"trøgstad.no\",\"tvedestrand.no\",\"tydal.no\",\"tynset.no\",\"tysfjord.no\",\"divtasvuodna.no\",\"divttasvuotna.no\",\"tysnes.no\",\"tysvar.no\",\"tysvær.no\",\"tonsberg.no\",\"tønsberg.no\",\"ullensaker.no\",\"ullensvang.no\",\"ulvik.no\",\"utsira.no\",\"vadso.no\",\"vadsø.no\",\"cahcesuolo.no\",\"čáhcesuolo.no\",\"vaksdal.no\",\"valle.no\",\"vang.no\",\"vanylven.no\",\"vardo.no\",\"vardø.no\",\"varggat.no\",\"várggát.no\",\"vefsn.no\",\"vaapste.no\",\"vega.no\",\"vegarshei.no\",\"vegårshei.no\",\"vennesla.no\",\"verdal.no\",\"verran.no\",\"vestby.no\",\"vestnes.no\",\"vestre-slidre.no\",\"vestre-toten.no\",\"vestvagoy.no\",\"vestvågøy.no\",\"vevelstad.no\",\"vik.no\",\"vikna.no\",\"vindafjord.no\",\"volda.no\",\"voss.no\",\"varoy.no\",\"værøy.no\",\"vagan.no\",\"vågan.no\",\"voagat.no\",\"vagsoy.no\",\"vågsøy.no\",\"vaga.no\",\"vågå.no\",\"valer.ostfold.no\",\"våler.østfold.no\",\"valer.hedmark.no\",\"våler.hedmark.no\",\"*.np\",\"nr\",\"biz.nr\",\"info.nr\",\"gov.nr\",\"edu.nr\",\"org.nr\",\"net.nr\",\"com.nr\",\"nu\",\"nz\",\"ac.nz\",\"co.nz\",\"cri.nz\",\"geek.nz\",\"gen.nz\",\"govt.nz\",\"health.nz\",\"iwi.nz\",\"kiwi.nz\",\"maori.nz\",\"mil.nz\",\"māori.nz\",\"net.nz\",\"org.nz\",\"parliament.nz\",\"school.nz\",\"om\",\"co.om\",\"com.om\",\"edu.om\",\"gov.om\",\"med.om\",\"museum.om\",\"net.om\",\"org.om\",\"pro.om\",\"onion\",\"org\",\"pa\",\"ac.pa\",\"gob.pa\",\"com.pa\",\"org.pa\",\"sld.pa\",\"edu.pa\",\"net.pa\",\"ing.pa\",\"abo.pa\",\"med.pa\",\"nom.pa\",\"pe\",\"edu.pe\",\"gob.pe\",\"nom.pe\",\"mil.pe\",\"org.pe\",\"com.pe\",\"net.pe\",\"pf\",\"com.pf\",\"org.pf\",\"edu.pf\",\"*.pg\",\"ph\",\"com.ph\",\"net.ph\",\"org.ph\",\"gov.ph\",\"edu.ph\",\"ngo.ph\",\"mil.ph\",\"i.ph\",\"pk\",\"com.pk\",\"net.pk\",\"edu.pk\",\"org.pk\",\"fam.pk\",\"biz.pk\",\"web.pk\",\"gov.pk\",\"gob.pk\",\"gok.pk\",\"gon.pk\",\"gop.pk\",\"gos.pk\",\"info.pk\",\"pl\",\"com.pl\",\"net.pl\",\"org.pl\",\"aid.pl\",\"agro.pl\",\"atm.pl\",\"auto.pl\",\"biz.pl\",\"edu.pl\",\"gmina.pl\",\"gsm.pl\",\"info.pl\",\"mail.pl\",\"miasta.pl\",\"media.pl\",\"mil.pl\",\"nieruchomosci.pl\",\"nom.pl\",\"pc.pl\",\"powiat.pl\",\"priv.pl\",\"realestate.pl\",\"rel.pl\",\"sex.pl\",\"shop.pl\",\"sklep.pl\",\"sos.pl\",\"szkola.pl\",\"targi.pl\",\"tm.pl\",\"tourism.pl\",\"travel.pl\",\"turystyka.pl\",\"gov.pl\",\"ap.gov.pl\",\"ic.gov.pl\",\"is.gov.pl\",\"us.gov.pl\",\"kmpsp.gov.pl\",\"kppsp.gov.pl\",\"kwpsp.gov.pl\",\"psp.gov.pl\",\"wskr.gov.pl\",\"kwp.gov.pl\",\"mw.gov.pl\",\"ug.gov.pl\",\"um.gov.pl\",\"umig.gov.pl\",\"ugim.gov.pl\",\"upow.gov.pl\",\"uw.gov.pl\",\"starostwo.gov.pl\",\"pa.gov.pl\",\"po.gov.pl\",\"psse.gov.pl\",\"pup.gov.pl\",\"rzgw.gov.pl\",\"sa.gov.pl\",\"so.gov.pl\",\"sr.gov.pl\",\"wsa.gov.pl\",\"sko.gov.pl\",\"uzs.gov.pl\",\"wiih.gov.pl\",\"winb.gov.pl\",\"pinb.gov.pl\",\"wios.gov.pl\",\"witd.gov.pl\",\"wzmiuw.gov.pl\",\"piw.gov.pl\",\"wiw.gov.pl\",\"griw.gov.pl\",\"wif.gov.pl\",\"oum.gov.pl\",\"sdn.gov.pl\",\"zp.gov.pl\",\"uppo.gov.pl\",\"mup.gov.pl\",\"wuoz.gov.pl\",\"konsulat.gov.pl\",\"oirm.gov.pl\",\"augustow.pl\",\"babia-gora.pl\",\"bedzin.pl\",\"beskidy.pl\",\"bialowieza.pl\",\"bialystok.pl\",\"bielawa.pl\",\"bieszczady.pl\",\"boleslawiec.pl\",\"bydgoszcz.pl\",\"bytom.pl\",\"cieszyn.pl\",\"czeladz.pl\",\"czest.pl\",\"dlugoleka.pl\",\"elblag.pl\",\"elk.pl\",\"glogow.pl\",\"gniezno.pl\",\"gorlice.pl\",\"grajewo.pl\",\"ilawa.pl\",\"jaworzno.pl\",\"jelenia-gora.pl\",\"jgora.pl\",\"kalisz.pl\",\"kazimierz-dolny.pl\",\"karpacz.pl\",\"kartuzy.pl\",\"kaszuby.pl\",\"katowice.pl\",\"kepno.pl\",\"ketrzyn.pl\",\"klodzko.pl\",\"kobierzyce.pl\",\"kolobrzeg.pl\",\"konin.pl\",\"konskowola.pl\",\"kutno.pl\",\"lapy.pl\",\"lebork.pl\",\"legnica.pl\",\"lezajsk.pl\",\"limanowa.pl\",\"lomza.pl\",\"lowicz.pl\",\"lubin.pl\",\"lukow.pl\",\"malbork.pl\",\"malopolska.pl\",\"mazowsze.pl\",\"mazury.pl\",\"mielec.pl\",\"mielno.pl\",\"mragowo.pl\",\"naklo.pl\",\"nowaruda.pl\",\"nysa.pl\",\"olawa.pl\",\"olecko.pl\",\"olkusz.pl\",\"olsztyn.pl\",\"opoczno.pl\",\"opole.pl\",\"ostroda.pl\",\"ostroleka.pl\",\"ostrowiec.pl\",\"ostrowwlkp.pl\",\"pila.pl\",\"pisz.pl\",\"podhale.pl\",\"podlasie.pl\",\"polkowice.pl\",\"pomorze.pl\",\"pomorskie.pl\",\"prochowice.pl\",\"pruszkow.pl\",\"przeworsk.pl\",\"pulawy.pl\",\"radom.pl\",\"rawa-maz.pl\",\"rybnik.pl\",\"rzeszow.pl\",\"sanok.pl\",\"sejny.pl\",\"slask.pl\",\"slupsk.pl\",\"sosnowiec.pl\",\"stalowa-wola.pl\",\"skoczow.pl\",\"starachowice.pl\",\"stargard.pl\",\"suwalki.pl\",\"swidnica.pl\",\"swiebodzin.pl\",\"swinoujscie.pl\",\"szczecin.pl\",\"szczytno.pl\",\"tarnobrzeg.pl\",\"tgory.pl\",\"turek.pl\",\"tychy.pl\",\"ustka.pl\",\"walbrzych.pl\",\"warmia.pl\",\"warszawa.pl\",\"waw.pl\",\"wegrow.pl\",\"wielun.pl\",\"wlocl.pl\",\"wloclawek.pl\",\"wodzislaw.pl\",\"wolomin.pl\",\"wroclaw.pl\",\"zachpomor.pl\",\"zagan.pl\",\"zarow.pl\",\"zgora.pl\",\"zgorzelec.pl\",\"pm\",\"pn\",\"gov.pn\",\"co.pn\",\"org.pn\",\"edu.pn\",\"net.pn\",\"post\",\"pr\",\"com.pr\",\"net.pr\",\"org.pr\",\"gov.pr\",\"edu.pr\",\"isla.pr\",\"pro.pr\",\"biz.pr\",\"info.pr\",\"name.pr\",\"est.pr\",\"prof.pr\",\"ac.pr\",\"pro\",\"aaa.pro\",\"aca.pro\",\"acct.pro\",\"avocat.pro\",\"bar.pro\",\"cpa.pro\",\"eng.pro\",\"jur.pro\",\"law.pro\",\"med.pro\",\"recht.pro\",\"ps\",\"edu.ps\",\"gov.ps\",\"sec.ps\",\"plo.ps\",\"com.ps\",\"org.ps\",\"net.ps\",\"pt\",\"net.pt\",\"gov.pt\",\"org.pt\",\"edu.pt\",\"int.pt\",\"publ.pt\",\"com.pt\",\"nome.pt\",\"pw\",\"co.pw\",\"ne.pw\",\"or.pw\",\"ed.pw\",\"go.pw\",\"belau.pw\",\"py\",\"com.py\",\"coop.py\",\"edu.py\",\"gov.py\",\"mil.py\",\"net.py\",\"org.py\",\"qa\",\"com.qa\",\"edu.qa\",\"gov.qa\",\"mil.qa\",\"name.qa\",\"net.qa\",\"org.qa\",\"sch.qa\",\"re\",\"asso.re\",\"com.re\",\"nom.re\",\"ro\",\"arts.ro\",\"com.ro\",\"firm.ro\",\"info.ro\",\"nom.ro\",\"nt.ro\",\"org.ro\",\"rec.ro\",\"store.ro\",\"tm.ro\",\"www.ro\",\"rs\",\"ac.rs\",\"co.rs\",\"edu.rs\",\"gov.rs\",\"in.rs\",\"org.rs\",\"ru\",\"ac.ru\",\"edu.ru\",\"gov.ru\",\"int.ru\",\"mil.ru\",\"test.ru\",\"rw\",\"ac.rw\",\"co.rw\",\"coop.rw\",\"gov.rw\",\"mil.rw\",\"net.rw\",\"org.rw\",\"sa\",\"com.sa\",\"net.sa\",\"org.sa\",\"gov.sa\",\"med.sa\",\"pub.sa\",\"edu.sa\",\"sch.sa\",\"sb\",\"com.sb\",\"edu.sb\",\"gov.sb\",\"net.sb\",\"org.sb\",\"sc\",\"com.sc\",\"gov.sc\",\"net.sc\",\"org.sc\",\"edu.sc\",\"sd\",\"com.sd\",\"net.sd\",\"org.sd\",\"edu.sd\",\"med.sd\",\"tv.sd\",\"gov.sd\",\"info.sd\",\"se\",\"a.se\",\"ac.se\",\"b.se\",\"bd.se\",\"brand.se\",\"c.se\",\"d.se\",\"e.se\",\"f.se\",\"fh.se\",\"fhsk.se\",\"fhv.se\",\"g.se\",\"h.se\",\"i.se\",\"k.se\",\"komforb.se\",\"kommunalforbund.se\",\"komvux.se\",\"l.se\",\"lanbib.se\",\"m.se\",\"n.se\",\"naturbruksgymn.se\",\"o.se\",\"org.se\",\"p.se\",\"parti.se\",\"pp.se\",\"press.se\",\"r.se\",\"s.se\",\"t.se\",\"tm.se\",\"u.se\",\"w.se\",\"x.se\",\"y.se\",\"z.se\",\"sg\",\"com.sg\",\"net.sg\",\"org.sg\",\"gov.sg\",\"edu.sg\",\"per.sg\",\"sh\",\"com.sh\",\"net.sh\",\"gov.sh\",\"org.sh\",\"mil.sh\",\"si\",\"sj\",\"sk\",\"sl\",\"com.sl\",\"net.sl\",\"edu.sl\",\"gov.sl\",\"org.sl\",\"sm\",\"sn\",\"art.sn\",\"com.sn\",\"edu.sn\",\"gouv.sn\",\"org.sn\",\"perso.sn\",\"univ.sn\",\"so\",\"com.so\",\"net.so\",\"org.so\",\"sr\",\"st\",\"co.st\",\"com.st\",\"consulado.st\",\"edu.st\",\"embaixada.st\",\"gov.st\",\"mil.st\",\"net.st\",\"org.st\",\"principe.st\",\"saotome.st\",\"store.st\",\"su\",\"sv\",\"com.sv\",\"edu.sv\",\"gob.sv\",\"org.sv\",\"red.sv\",\"sx\",\"gov.sx\",\"sy\",\"edu.sy\",\"gov.sy\",\"net.sy\",\"mil.sy\",\"com.sy\",\"org.sy\",\"sz\",\"co.sz\",\"ac.sz\",\"org.sz\",\"tc\",\"td\",\"tel\",\"tf\",\"tg\",\"th\",\"ac.th\",\"co.th\",\"go.th\",\"in.th\",\"mi.th\",\"net.th\",\"or.th\",\"tj\",\"ac.tj\",\"biz.tj\",\"co.tj\",\"com.tj\",\"edu.tj\",\"go.tj\",\"gov.tj\",\"int.tj\",\"mil.tj\",\"name.tj\",\"net.tj\",\"nic.tj\",\"org.tj\",\"test.tj\",\"web.tj\",\"tk\",\"tl\",\"gov.tl\",\"tm\",\"com.tm\",\"co.tm\",\"org.tm\",\"net.tm\",\"nom.tm\",\"gov.tm\",\"mil.tm\",\"edu.tm\",\"tn\",\"com.tn\",\"ens.tn\",\"fin.tn\",\"gov.tn\",\"ind.tn\",\"intl.tn\",\"nat.tn\",\"net.tn\",\"org.tn\",\"info.tn\",\"perso.tn\",\"tourism.tn\",\"edunet.tn\",\"rnrt.tn\",\"rns.tn\",\"rnu.tn\",\"mincom.tn\",\"agrinet.tn\",\"defense.tn\",\"turen.tn\",\"to\",\"com.to\",\"gov.to\",\"net.to\",\"org.to\",\"edu.to\",\"mil.to\",\"tr\",\"av.tr\",\"bbs.tr\",\"bel.tr\",\"biz.tr\",\"com.tr\",\"dr.tr\",\"edu.tr\",\"gen.tr\",\"gov.tr\",\"info.tr\",\"mil.tr\",\"k12.tr\",\"kep.tr\",\"name.tr\",\"net.tr\",\"org.tr\",\"pol.tr\",\"tel.tr\",\"tsk.tr\",\"tv.tr\",\"web.tr\",\"nc.tr\",\"gov.nc.tr\",\"tt\",\"co.tt\",\"com.tt\",\"org.tt\",\"net.tt\",\"biz.tt\",\"info.tt\",\"pro.tt\",\"int.tt\",\"coop.tt\",\"jobs.tt\",\"mobi.tt\",\"travel.tt\",\"museum.tt\",\"aero.tt\",\"name.tt\",\"gov.tt\",\"edu.tt\",\"tv\",\"tw\",\"edu.tw\",\"gov.tw\",\"mil.tw\",\"com.tw\",\"net.tw\",\"org.tw\",\"idv.tw\",\"game.tw\",\"ebiz.tw\",\"club.tw\",\"網路.tw\",\"組織.tw\",\"商業.tw\",\"tz\",\"ac.tz\",\"co.tz\",\"go.tz\",\"hotel.tz\",\"info.tz\",\"me.tz\",\"mil.tz\",\"mobi.tz\",\"ne.tz\",\"or.tz\",\"sc.tz\",\"tv.tz\",\"ua\",\"com.ua\",\"edu.ua\",\"gov.ua\",\"in.ua\",\"net.ua\",\"org.ua\",\"cherkassy.ua\",\"cherkasy.ua\",\"chernigov.ua\",\"chernihiv.ua\",\"chernivtsi.ua\",\"chernovtsy.ua\",\"ck.ua\",\"cn.ua\",\"cr.ua\",\"crimea.ua\",\"cv.ua\",\"dn.ua\",\"dnepropetrovsk.ua\",\"dnipropetrovsk.ua\",\"dominic.ua\",\"donetsk.ua\",\"dp.ua\",\"if.ua\",\"ivano-frankivsk.ua\",\"kh.ua\",\"kharkiv.ua\",\"kharkov.ua\",\"kherson.ua\",\"khmelnitskiy.ua\",\"khmelnytskyi.ua\",\"kiev.ua\",\"kirovograd.ua\",\"km.ua\",\"kr.ua\",\"krym.ua\",\"ks.ua\",\"kv.ua\",\"kyiv.ua\",\"lg.ua\",\"lt.ua\",\"lugansk.ua\",\"lutsk.ua\",\"lv.ua\",\"lviv.ua\",\"mk.ua\",\"mykolaiv.ua\",\"nikolaev.ua\",\"od.ua\",\"odesa.ua\",\"odessa.ua\",\"pl.ua\",\"poltava.ua\",\"rivne.ua\",\"rovno.ua\",\"rv.ua\",\"sb.ua\",\"sebastopol.ua\",\"sevastopol.ua\",\"sm.ua\",\"sumy.ua\",\"te.ua\",\"ternopil.ua\",\"uz.ua\",\"uzhgorod.ua\",\"vinnica.ua\",\"vinnytsia.ua\",\"vn.ua\",\"volyn.ua\",\"yalta.ua\",\"zaporizhzhe.ua\",\"zaporizhzhia.ua\",\"zhitomir.ua\",\"zhytomyr.ua\",\"zp.ua\",\"zt.ua\",\"ug\",\"co.ug\",\"or.ug\",\"ac.ug\",\"sc.ug\",\"go.ug\",\"ne.ug\",\"com.ug\",\"org.ug\",\"uk\",\"ac.uk\",\"co.uk\",\"gov.uk\",\"ltd.uk\",\"me.uk\",\"net.uk\",\"nhs.uk\",\"org.uk\",\"plc.uk\",\"police.uk\",\"*.sch.uk\",\"us\",\"dni.us\",\"fed.us\",\"isa.us\",\"kids.us\",\"nsn.us\",\"ak.us\",\"al.us\",\"ar.us\",\"as.us\",\"az.us\",\"ca.us\",\"co.us\",\"ct.us\",\"dc.us\",\"de.us\",\"fl.us\",\"ga.us\",\"gu.us\",\"hi.us\",\"ia.us\",\"id.us\",\"il.us\",\"in.us\",\"ks.us\",\"ky.us\",\"la.us\",\"ma.us\",\"md.us\",\"me.us\",\"mi.us\",\"mn.us\",\"mo.us\",\"ms.us\",\"mt.us\",\"nc.us\",\"nd.us\",\"ne.us\",\"nh.us\",\"nj.us\",\"nm.us\",\"nv.us\",\"ny.us\",\"oh.us\",\"ok.us\",\"or.us\",\"pa.us\",\"pr.us\",\"ri.us\",\"sc.us\",\"sd.us\",\"tn.us\",\"tx.us\",\"ut.us\",\"vi.us\",\"vt.us\",\"va.us\",\"wa.us\",\"wi.us\",\"wv.us\",\"wy.us\",\"k12.ak.us\",\"k12.al.us\",\"k12.ar.us\",\"k12.as.us\",\"k12.az.us\",\"k12.ca.us\",\"k12.co.us\",\"k12.ct.us\",\"k12.dc.us\",\"k12.de.us\",\"k12.fl.us\",\"k12.ga.us\",\"k12.gu.us\",\"k12.ia.us\",\"k12.id.us\",\"k12.il.us\",\"k12.in.us\",\"k12.ks.us\",\"k12.ky.us\",\"k12.la.us\",\"k12.ma.us\",\"k12.md.us\",\"k12.me.us\",\"k12.mi.us\",\"k12.mn.us\",\"k12.mo.us\",\"k12.ms.us\",\"k12.mt.us\",\"k12.nc.us\",\"k12.ne.us\",\"k12.nh.us\",\"k12.nj.us\",\"k12.nm.us\",\"k12.nv.us\",\"k12.ny.us\",\"k12.oh.us\",\"k12.ok.us\",\"k12.or.us\",\"k12.pa.us\",\"k12.pr.us\",\"k12.ri.us\",\"k12.sc.us\",\"k12.tn.us\",\"k12.tx.us\",\"k12.ut.us\",\"k12.vi.us\",\"k12.vt.us\",\"k12.va.us\",\"k12.wa.us\",\"k12.wi.us\",\"k12.wy.us\",\"cc.ak.us\",\"cc.al.us\",\"cc.ar.us\",\"cc.as.us\",\"cc.az.us\",\"cc.ca.us\",\"cc.co.us\",\"cc.ct.us\",\"cc.dc.us\",\"cc.de.us\",\"cc.fl.us\",\"cc.ga.us\",\"cc.gu.us\",\"cc.hi.us\",\"cc.ia.us\",\"cc.id.us\",\"cc.il.us\",\"cc.in.us\",\"cc.ks.us\",\"cc.ky.us\",\"cc.la.us\",\"cc.ma.us\",\"cc.md.us\",\"cc.me.us\",\"cc.mi.us\",\"cc.mn.us\",\"cc.mo.us\",\"cc.ms.us\",\"cc.mt.us\",\"cc.nc.us\",\"cc.nd.us\",\"cc.ne.us\",\"cc.nh.us\",\"cc.nj.us\",\"cc.nm.us\",\"cc.nv.us\",\"cc.ny.us\",\"cc.oh.us\",\"cc.ok.us\",\"cc.or.us\",\"cc.pa.us\",\"cc.pr.us\",\"cc.ri.us\",\"cc.sc.us\",\"cc.sd.us\",\"cc.tn.us\",\"cc.tx.us\",\"cc.ut.us\",\"cc.vi.us\",\"cc.vt.us\",\"cc.va.us\",\"cc.wa.us\",\"cc.wi.us\",\"cc.wv.us\",\"cc.wy.us\",\"lib.ak.us\",\"lib.al.us\",\"lib.ar.us\",\"lib.as.us\",\"lib.az.us\",\"lib.ca.us\",\"lib.co.us\",\"lib.ct.us\",\"lib.dc.us\",\"lib.fl.us\",\"lib.ga.us\",\"lib.gu.us\",\"lib.hi.us\",\"lib.ia.us\",\"lib.id.us\",\"lib.il.us\",\"lib.in.us\",\"lib.ks.us\",\"lib.ky.us\",\"lib.la.us\",\"lib.ma.us\",\"lib.md.us\",\"lib.me.us\",\"lib.mi.us\",\"lib.mn.us\",\"lib.mo.us\",\"lib.ms.us\",\"lib.mt.us\",\"lib.nc.us\",\"lib.nd.us\",\"lib.ne.us\",\"lib.nh.us\",\"lib.nj.us\",\"lib.nm.us\",\"lib.nv.us\",\"lib.ny.us\",\"lib.oh.us\",\"lib.ok.us\",\"lib.or.us\",\"lib.pa.us\",\"lib.pr.us\",\"lib.ri.us\",\"lib.sc.us\",\"lib.sd.us\",\"lib.tn.us\",\"lib.tx.us\",\"lib.ut.us\",\"lib.vi.us\",\"lib.vt.us\",\"lib.va.us\",\"lib.wa.us\",\"lib.wi.us\",\"lib.wy.us\",\"pvt.k12.ma.us\",\"chtr.k12.ma.us\",\"paroch.k12.ma.us\",\"ann-arbor.mi.us\",\"cog.mi.us\",\"dst.mi.us\",\"eaton.mi.us\",\"gen.mi.us\",\"mus.mi.us\",\"tec.mi.us\",\"washtenaw.mi.us\",\"uy\",\"com.uy\",\"edu.uy\",\"gub.uy\",\"mil.uy\",\"net.uy\",\"org.uy\",\"uz\",\"co.uz\",\"com.uz\",\"net.uz\",\"org.uz\",\"va\",\"vc\",\"com.vc\",\"net.vc\",\"org.vc\",\"gov.vc\",\"mil.vc\",\"edu.vc\",\"ve\",\"arts.ve\",\"co.ve\",\"com.ve\",\"e12.ve\",\"edu.ve\",\"firm.ve\",\"gob.ve\",\"gov.ve\",\"info.ve\",\"int.ve\",\"mil.ve\",\"net.ve\",\"org.ve\",\"rec.ve\",\"store.ve\",\"tec.ve\",\"web.ve\",\"vg\",\"vi\",\"co.vi\",\"com.vi\",\"k12.vi\",\"net.vi\",\"org.vi\",\"vn\",\"com.vn\",\"net.vn\",\"org.vn\",\"edu.vn\",\"gov.vn\",\"int.vn\",\"ac.vn\",\"biz.vn\",\"info.vn\",\"name.vn\",\"pro.vn\",\"health.vn\",\"vu\",\"com.vu\",\"edu.vu\",\"net.vu\",\"org.vu\",\"wf\",\"ws\",\"com.ws\",\"net.ws\",\"org.ws\",\"gov.ws\",\"edu.ws\",\"yt\",\"امارات\",\"հայ\",\"বাংলা\",\"бг\",\"бел\",\"中国\",\"中國\",\"الجزائر\",\"مصر\",\"ею\",\"გე\",\"ελ\",\"香港\",\"公司.香港\",\"教育.香港\",\"政府.香港\",\"個人.香港\",\"網絡.香港\",\"組織.香港\",\"ಭಾರತ\",\"ଭାରତ\",\"ভাৰত\",\"भारतम्\",\"भारोत\",\"ڀارت\",\"ഭാരതം\",\"भारत\",\"بارت\",\"بھارت\",\"భారత్\",\"ભારત\",\"ਭਾਰਤ\",\"ভারত\",\"இந்தியா\",\"ایران\",\"ايران\",\"عراق\",\"الاردن\",\"한국\",\"қаз\",\"ලංකා\",\"இலங்கை\",\"المغرب\",\"мкд\",\"мон\",\"澳門\",\"澳门\",\"مليسيا\",\"عمان\",\"پاکستان\",\"پاكستان\",\"فلسطين\",\"срб\",\"пр.срб\",\"орг.срб\",\"обр.срб\",\"од.срб\",\"упр.срб\",\"ак.срб\",\"рф\",\"قطر\",\"السعودية\",\"السعودیة\",\"السعودیۃ\",\"السعوديه\",\"سودان\",\"新加坡\",\"சிங்கப்பூர்\",\"سورية\",\"سوريا\",\"ไทย\",\"ศึกษา.ไทย\",\"ธุรกิจ.ไทย\",\"รัฐบาล.ไทย\",\"ทหาร.ไทย\",\"เน็ต.ไทย\",\"องค์กร.ไทย\",\"تونس\",\"台灣\",\"台湾\",\"臺灣\",\"укр\",\"اليمن\",\"xxx\",\"*.ye\",\"ac.za\",\"agric.za\",\"alt.za\",\"co.za\",\"edu.za\",\"gov.za\",\"grondar.za\",\"law.za\",\"mil.za\",\"net.za\",\"ngo.za\",\"nis.za\",\"nom.za\",\"org.za\",\"school.za\",\"tm.za\",\"web.za\",\"zm\",\"ac.zm\",\"biz.zm\",\"co.zm\",\"com.zm\",\"edu.zm\",\"gov.zm\",\"info.zm\",\"mil.zm\",\"net.zm\",\"org.zm\",\"sch.zm\",\"zw\",\"ac.zw\",\"co.zw\",\"gov.zw\",\"mil.zw\",\"org.zw\",\"aaa\",\"aarp\",\"abarth\",\"abb\",\"abbott\",\"abbvie\",\"abc\",\"able\",\"abogado\",\"abudhabi\",\"academy\",\"accenture\",\"accountant\",\"accountants\",\"aco\",\"actor\",\"adac\",\"ads\",\"adult\",\"aeg\",\"aetna\",\"afamilycompany\",\"afl\",\"africa\",\"agakhan\",\"agency\",\"aig\",\"aigo\",\"airbus\",\"airforce\",\"airtel\",\"akdn\",\"alfaromeo\",\"alibaba\",\"alipay\",\"allfinanz\",\"allstate\",\"ally\",\"alsace\",\"alstom\",\"americanexpress\",\"americanfamily\",\"amex\",\"amfam\",\"amica\",\"amsterdam\",\"analytics\",\"android\",\"anquan\",\"anz\",\"aol\",\"apartments\",\"app\",\"apple\",\"aquarelle\",\"arab\",\"aramco\",\"archi\",\"army\",\"art\",\"arte\",\"asda\",\"associates\",\"athleta\",\"attorney\",\"auction\",\"audi\",\"audible\",\"audio\",\"auspost\",\"author\",\"auto\",\"autos\",\"avianca\",\"aws\",\"axa\",\"azure\",\"baby\",\"baidu\",\"banamex\",\"bananarepublic\",\"band\",\"bank\",\"bar\",\"barcelona\",\"barclaycard\",\"barclays\",\"barefoot\",\"bargains\",\"baseball\",\"basketball\",\"bauhaus\",\"bayern\",\"bbc\",\"bbt\",\"bbva\",\"bcg\",\"bcn\",\"beats\",\"beauty\",\"beer\",\"bentley\",\"berlin\",\"best\",\"bestbuy\",\"bet\",\"bharti\",\"bible\",\"bid\",\"bike\",\"bing\",\"bingo\",\"bio\",\"black\",\"blackfriday\",\"blockbuster\",\"blog\",\"bloomberg\",\"blue\",\"bms\",\"bmw\",\"bnl\",\"bnpparibas\",\"boats\",\"boehringer\",\"bofa\",\"bom\",\"bond\",\"boo\",\"book\",\"booking\",\"bosch\",\"bostik\",\"boston\",\"bot\",\"boutique\",\"box\",\"bradesco\",\"bridgestone\",\"broadway\",\"broker\",\"brother\",\"brussels\",\"budapest\",\"bugatti\",\"build\",\"builders\",\"business\",\"buy\",\"buzz\",\"bzh\",\"cab\",\"cafe\",\"cal\",\"call\",\"calvinklein\",\"cam\",\"camera\",\"camp\",\"cancerresearch\",\"canon\",\"capetown\",\"capital\",\"capitalone\",\"car\",\"caravan\",\"cards\",\"care\",\"career\",\"careers\",\"cars\",\"cartier\",\"casa\",\"case\",\"caseih\",\"cash\",\"casino\",\"catering\",\"catholic\",\"cba\",\"cbn\",\"cbre\",\"cbs\",\"ceb\",\"center\",\"ceo\",\"cern\",\"cfa\",\"cfd\",\"chanel\",\"channel\",\"charity\",\"chase\",\"chat\",\"cheap\",\"chintai\",\"christmas\",\"chrome\",\"chrysler\",\"church\",\"cipriani\",\"circle\",\"cisco\",\"citadel\",\"citi\",\"citic\",\"city\",\"cityeats\",\"claims\",\"cleaning\",\"click\",\"clinic\",\"clinique\",\"clothing\",\"cloud\",\"club\",\"clubmed\",\"coach\",\"codes\",\"coffee\",\"college\",\"cologne\",\"comcast\",\"commbank\",\"community\",\"company\",\"compare\",\"computer\",\"comsec\",\"condos\",\"construction\",\"consulting\",\"contact\",\"contractors\",\"cooking\",\"cookingchannel\",\"cool\",\"corsica\",\"country\",\"coupon\",\"coupons\",\"courses\",\"cpa\",\"credit\",\"creditcard\",\"creditunion\",\"cricket\",\"crown\",\"crs\",\"cruise\",\"cruises\",\"csc\",\"cuisinella\",\"cymru\",\"cyou\",\"dabur\",\"dad\",\"dance\",\"data\",\"date\",\"dating\",\"datsun\",\"day\",\"dclk\",\"dds\",\"deal\",\"dealer\",\"deals\",\"degree\",\"delivery\",\"dell\",\"deloitte\",\"delta\",\"democrat\",\"dental\",\"dentist\",\"desi\",\"design\",\"dev\",\"dhl\",\"diamonds\",\"diet\",\"digital\",\"direct\",\"directory\",\"discount\",\"discover\",\"dish\",\"diy\",\"dnp\",\"docs\",\"doctor\",\"dodge\",\"dog\",\"domains\",\"dot\",\"download\",\"drive\",\"dtv\",\"dubai\",\"duck\",\"dunlop\",\"duns\",\"dupont\",\"durban\",\"dvag\",\"dvr\",\"earth\",\"eat\",\"eco\",\"edeka\",\"education\",\"email\",\"emerck\",\"energy\",\"engineer\",\"engineering\",\"enterprises\",\"epson\",\"equipment\",\"ericsson\",\"erni\",\"esq\",\"estate\",\"esurance\",\"etisalat\",\"eurovision\",\"eus\",\"events\",\"everbank\",\"exchange\",\"expert\",\"exposed\",\"express\",\"extraspace\",\"fage\",\"fail\",\"fairwinds\",\"faith\",\"family\",\"fan\",\"fans\",\"farm\",\"farmers\",\"fashion\",\"fast\",\"fedex\",\"feedback\",\"ferrari\",\"ferrero\",\"fiat\",\"fidelity\",\"fido\",\"film\",\"final\",\"finance\",\"financial\",\"fire\",\"firestone\",\"firmdale\",\"fish\",\"fishing\",\"fit\",\"fitness\",\"flickr\",\"flights\",\"flir\",\"florist\",\"flowers\",\"fly\",\"foo\",\"food\",\"foodnetwork\",\"football\",\"ford\",\"forex\",\"forsale\",\"forum\",\"foundation\",\"fox\",\"free\",\"fresenius\",\"frl\",\"frogans\",\"frontdoor\",\"frontier\",\"ftr\",\"fujitsu\",\"fujixerox\",\"fun\",\"fund\",\"furniture\",\"futbol\",\"fyi\",\"gal\",\"gallery\",\"gallo\",\"gallup\",\"game\",\"games\",\"gap\",\"garden\",\"gay\",\"gbiz\",\"gdn\",\"gea\",\"gent\",\"genting\",\"george\",\"ggee\",\"gift\",\"gifts\",\"gives\",\"giving\",\"glade\",\"glass\",\"gle\",\"global\",\"globo\",\"gmail\",\"gmbh\",\"gmo\",\"gmx\",\"godaddy\",\"gold\",\"goldpoint\",\"golf\",\"goo\",\"goodyear\",\"goog\",\"google\",\"gop\",\"got\",\"grainger\",\"graphics\",\"gratis\",\"green\",\"gripe\",\"grocery\",\"group\",\"guardian\",\"gucci\",\"guge\",\"guide\",\"guitars\",\"guru\",\"hair\",\"hamburg\",\"hangout\",\"haus\",\"hbo\",\"hdfc\",\"hdfcbank\",\"health\",\"healthcare\",\"help\",\"helsinki\",\"here\",\"hermes\",\"hgtv\",\"hiphop\",\"hisamitsu\",\"hitachi\",\"hiv\",\"hkt\",\"hockey\",\"holdings\",\"holiday\",\"homedepot\",\"homegoods\",\"homes\",\"homesense\",\"honda\",\"honeywell\",\"horse\",\"hospital\",\"host\",\"hosting\",\"hot\",\"hoteles\",\"hotels\",\"hotmail\",\"house\",\"how\",\"hsbc\",\"hughes\",\"hyatt\",\"hyundai\",\"ibm\",\"icbc\",\"ice\",\"icu\",\"ieee\",\"ifm\",\"ikano\",\"imamat\",\"imdb\",\"immo\",\"immobilien\",\"inc\",\"industries\",\"infiniti\",\"ing\",\"ink\",\"institute\",\"insurance\",\"insure\",\"intel\",\"international\",\"intuit\",\"investments\",\"ipiranga\",\"irish\",\"iselect\",\"ismaili\",\"ist\",\"istanbul\",\"itau\",\"itv\",\"iveco\",\"jaguar\",\"java\",\"jcb\",\"jcp\",\"jeep\",\"jetzt\",\"jewelry\",\"jio\",\"jll\",\"jmp\",\"jnj\",\"joburg\",\"jot\",\"joy\",\"jpmorgan\",\"jprs\",\"juegos\",\"juniper\",\"kaufen\",\"kddi\",\"kerryhotels\",\"kerrylogistics\",\"kerryproperties\",\"kfh\",\"kia\",\"kim\",\"kinder\",\"kindle\",\"kitchen\",\"kiwi\",\"koeln\",\"komatsu\",\"kosher\",\"kpmg\",\"kpn\",\"krd\",\"kred\",\"kuokgroup\",\"kyoto\",\"lacaixa\",\"ladbrokes\",\"lamborghini\",\"lamer\",\"lancaster\",\"lancia\",\"lancome\",\"land\",\"landrover\",\"lanxess\",\"lasalle\",\"lat\",\"latino\",\"latrobe\",\"law\",\"lawyer\",\"lds\",\"lease\",\"leclerc\",\"lefrak\",\"legal\",\"lego\",\"lexus\",\"lgbt\",\"liaison\",\"lidl\",\"life\",\"lifeinsurance\",\"lifestyle\",\"lighting\",\"like\",\"lilly\",\"limited\",\"limo\",\"lincoln\",\"linde\",\"link\",\"lipsy\",\"live\",\"living\",\"lixil\",\"llc\",\"loan\",\"loans\",\"locker\",\"locus\",\"loft\",\"lol\",\"london\",\"lotte\",\"lotto\",\"love\",\"lpl\",\"lplfinancial\",\"ltd\",\"ltda\",\"lundbeck\",\"lupin\",\"luxe\",\"luxury\",\"macys\",\"madrid\",\"maif\",\"maison\",\"makeup\",\"man\",\"management\",\"mango\",\"map\",\"market\",\"marketing\",\"markets\",\"marriott\",\"marshalls\",\"maserati\",\"mattel\",\"mba\",\"mckinsey\",\"med\",\"media\",\"meet\",\"melbourne\",\"meme\",\"memorial\",\"men\",\"menu\",\"merckmsd\",\"metlife\",\"miami\",\"microsoft\",\"mini\",\"mint\",\"mit\",\"mitsubishi\",\"mlb\",\"mls\",\"mma\",\"mobile\",\"mobily\",\"moda\",\"moe\",\"moi\",\"mom\",\"monash\",\"money\",\"monster\",\"mopar\",\"mormon\",\"mortgage\",\"moscow\",\"moto\",\"motorcycles\",\"mov\",\"movie\",\"movistar\",\"msd\",\"mtn\",\"mtr\",\"mutual\",\"nab\",\"nadex\",\"nagoya\",\"nationwide\",\"natura\",\"navy\",\"nba\",\"nec\",\"netbank\",\"netflix\",\"network\",\"neustar\",\"new\",\"newholland\",\"news\",\"next\",\"nextdirect\",\"nexus\",\"nfl\",\"ngo\",\"nhk\",\"nico\",\"nike\",\"nikon\",\"ninja\",\"nissan\",\"nissay\",\"nokia\",\"northwesternmutual\",\"norton\",\"now\",\"nowruz\",\"nowtv\",\"nra\",\"nrw\",\"ntt\",\"nyc\",\"obi\",\"observer\",\"off\",\"office\",\"okinawa\",\"olayan\",\"olayangroup\",\"oldnavy\",\"ollo\",\"omega\",\"one\",\"ong\",\"onl\",\"online\",\"onyourside\",\"ooo\",\"open\",\"oracle\",\"orange\",\"organic\",\"origins\",\"osaka\",\"otsuka\",\"ott\",\"ovh\",\"page\",\"panasonic\",\"paris\",\"pars\",\"partners\",\"parts\",\"party\",\"passagens\",\"pay\",\"pccw\",\"pet\",\"pfizer\",\"pharmacy\",\"phd\",\"philips\",\"phone\",\"photo\",\"photography\",\"photos\",\"physio\",\"piaget\",\"pics\",\"pictet\",\"pictures\",\"pid\",\"pin\",\"ping\",\"pink\",\"pioneer\",\"pizza\",\"place\",\"play\",\"playstation\",\"plumbing\",\"plus\",\"pnc\",\"pohl\",\"poker\",\"politie\",\"porn\",\"pramerica\",\"praxi\",\"press\",\"prime\",\"prod\",\"productions\",\"prof\",\"progressive\",\"promo\",\"properties\",\"property\",\"protection\",\"pru\",\"prudential\",\"pub\",\"pwc\",\"qpon\",\"quebec\",\"quest\",\"qvc\",\"racing\",\"radio\",\"raid\",\"read\",\"realestate\",\"realtor\",\"realty\",\"recipes\",\"red\",\"redstone\",\"redumbrella\",\"rehab\",\"reise\",\"reisen\",\"reit\",\"reliance\",\"ren\",\"rent\",\"rentals\",\"repair\",\"report\",\"republican\",\"rest\",\"restaurant\",\"review\",\"reviews\",\"rexroth\",\"rich\",\"richardli\",\"ricoh\",\"rightathome\",\"ril\",\"rio\",\"rip\",\"rmit\",\"rocher\",\"rocks\",\"rodeo\",\"rogers\",\"room\",\"rsvp\",\"rugby\",\"ruhr\",\"run\",\"rwe\",\"ryukyu\",\"saarland\",\"safe\",\"safety\",\"sakura\",\"sale\",\"salon\",\"samsclub\",\"samsung\",\"sandvik\",\"sandvikcoromant\",\"sanofi\",\"sap\",\"sarl\",\"sas\",\"save\",\"saxo\",\"sbi\",\"sbs\",\"sca\",\"scb\",\"schaeffler\",\"schmidt\",\"scholarships\",\"school\",\"schule\",\"schwarz\",\"science\",\"scjohnson\",\"scor\",\"scot\",\"search\",\"seat\",\"secure\",\"security\",\"seek\",\"select\",\"sener\",\"services\",\"ses\",\"seven\",\"sew\",\"sex\",\"sexy\",\"sfr\",\"shangrila\",\"sharp\",\"shaw\",\"shell\",\"shia\",\"shiksha\",\"shoes\",\"shop\",\"shopping\",\"shouji\",\"show\",\"showtime\",\"shriram\",\"silk\",\"sina\",\"singles\",\"site\",\"ski\",\"skin\",\"sky\",\"skype\",\"sling\",\"smart\",\"smile\",\"sncf\",\"soccer\",\"social\",\"softbank\",\"software\",\"sohu\",\"solar\",\"solutions\",\"song\",\"sony\",\"soy\",\"space\",\"sport\",\"spot\",\"spreadbetting\",\"srl\",\"srt\",\"stada\",\"staples\",\"star\",\"starhub\",\"statebank\",\"statefarm\",\"stc\",\"stcgroup\",\"stockholm\",\"storage\",\"store\",\"stream\",\"studio\",\"study\",\"style\",\"sucks\",\"supplies\",\"supply\",\"support\",\"surf\",\"surgery\",\"suzuki\",\"swatch\",\"swiftcover\",\"swiss\",\"sydney\",\"symantec\",\"systems\",\"tab\",\"taipei\",\"talk\",\"taobao\",\"target\",\"tatamotors\",\"tatar\",\"tattoo\",\"tax\",\"taxi\",\"tci\",\"tdk\",\"team\",\"tech\",\"technology\",\"telefonica\",\"temasek\",\"tennis\",\"teva\",\"thd\",\"theater\",\"theatre\",\"tiaa\",\"tickets\",\"tienda\",\"tiffany\",\"tips\",\"tires\",\"tirol\",\"tjmaxx\",\"tjx\",\"tkmaxx\",\"tmall\",\"today\",\"tokyo\",\"tools\",\"top\",\"toray\",\"toshiba\",\"total\",\"tours\",\"town\",\"toyota\",\"toys\",\"trade\",\"trading\",\"training\",\"travel\",\"travelchannel\",\"travelers\",\"travelersinsurance\",\"trust\",\"trv\",\"tube\",\"tui\",\"tunes\",\"tushu\",\"tvs\",\"ubank\",\"ubs\",\"uconnect\",\"unicom\",\"university\",\"uno\",\"uol\",\"ups\",\"vacations\",\"vana\",\"vanguard\",\"vegas\",\"ventures\",\"verisign\",\"versicherung\",\"vet\",\"viajes\",\"video\",\"vig\",\"viking\",\"villas\",\"vin\",\"vip\",\"virgin\",\"visa\",\"vision\",\"vistaprint\",\"viva\",\"vivo\",\"vlaanderen\",\"vodka\",\"volkswagen\",\"volvo\",\"vote\",\"voting\",\"voto\",\"voyage\",\"vuelos\",\"wales\",\"walmart\",\"walter\",\"wang\",\"wanggou\",\"warman\",\"watch\",\"watches\",\"weather\",\"weatherchannel\",\"webcam\",\"weber\",\"website\",\"wed\",\"wedding\",\"weibo\",\"weir\",\"whoswho\",\"wien\",\"wiki\",\"williamhill\",\"win\",\"windows\",\"wine\",\"winners\",\"wme\",\"wolterskluwer\",\"woodside\",\"work\",\"works\",\"world\",\"wow\",\"wtc\",\"wtf\",\"xbox\",\"xerox\",\"xfinity\",\"xihuan\",\"xin\",\"कॉम\",\"セール\",\"佛山\",\"慈善\",\"集团\",\"在线\",\"大众汽车\",\"点看\",\"คอม\",\"八卦\",\"موقع\",\"公益\",\"公司\",\"香格里拉\",\"网站\",\"移动\",\"我爱你\",\"москва\",\"католик\",\"онлайн\",\"сайт\",\"联通\",\"קום\",\"时尚\",\"微博\",\"淡马锡\",\"ファッション\",\"орг\",\"नेट\",\"ストア\",\"삼성\",\"商标\",\"商店\",\"商城\",\"дети\",\"ポイント\",\"新闻\",\"工行\",\"家電\",\"كوم\",\"中文网\",\"中信\",\"娱乐\",\"谷歌\",\"電訊盈科\",\"购物\",\"クラウド\",\"通販\",\"网店\",\"संगठन\",\"餐厅\",\"网络\",\"ком\",\"诺基亚\",\"食品\",\"飞利浦\",\"手表\",\"手机\",\"ارامكو\",\"العليان\",\"اتصالات\",\"بازار\",\"موبايلي\",\"ابوظبي\",\"كاثوليك\",\"همراه\",\"닷컴\",\"政府\",\"شبكة\",\"بيتك\",\"عرب\",\"机构\",\"组织机构\",\"健康\",\"招聘\",\"рус\",\"珠宝\",\"大拿\",\"みんな\",\"グーグル\",\"世界\",\"書籍\",\"网址\",\"닷넷\",\"コム\",\"天主教\",\"游戏\",\"vermögensberater\",\"vermögensberatung\",\"企业\",\"信息\",\"嘉里大酒店\",\"嘉里\",\"广东\",\"政务\",\"xyz\",\"yachts\",\"yahoo\",\"yamaxun\",\"yandex\",\"yodobashi\",\"yoga\",\"yokohama\",\"you\",\"youtube\",\"yun\",\"zappos\",\"zara\",\"zero\",\"zip\",\"zone\",\"zuerich\",\"cc.ua\",\"inf.ua\",\"ltd.ua\",\"beep.pl\",\"barsy.ca\",\"*.compute.estate\",\"*.alces.network\",\"alwaysdata.net\",\"cloudfront.net\",\"*.compute.amazonaws.com\",\"*.compute-1.amazonaws.com\",\"*.compute.amazonaws.com.cn\",\"us-east-1.amazonaws.com\",\"cn-north-1.eb.amazonaws.com.cn\",\"cn-northwest-1.eb.amazonaws.com.cn\",\"elasticbeanstalk.com\",\"ap-northeast-1.elasticbeanstalk.com\",\"ap-northeast-2.elasticbeanstalk.com\",\"ap-northeast-3.elasticbeanstalk.com\",\"ap-south-1.elasticbeanstalk.com\",\"ap-southeast-1.elasticbeanstalk.com\",\"ap-southeast-2.elasticbeanstalk.com\",\"ca-central-1.elasticbeanstalk.com\",\"eu-central-1.elasticbeanstalk.com\",\"eu-west-1.elasticbeanstalk.com\",\"eu-west-2.elasticbeanstalk.com\",\"eu-west-3.elasticbeanstalk.com\",\"sa-east-1.elasticbeanstalk.com\",\"us-east-1.elasticbeanstalk.com\",\"us-east-2.elasticbeanstalk.com\",\"us-gov-west-1.elasticbeanstalk.com\",\"us-west-1.elasticbeanstalk.com\",\"us-west-2.elasticbeanstalk.com\",\"*.elb.amazonaws.com\",\"*.elb.amazonaws.com.cn\",\"s3.amazonaws.com\",\"s3-ap-northeast-1.amazonaws.com\",\"s3-ap-northeast-2.amazonaws.com\",\"s3-ap-south-1.amazonaws.com\",\"s3-ap-southeast-1.amazonaws.com\",\"s3-ap-southeast-2.amazonaws.com\",\"s3-ca-central-1.amazonaws.com\",\"s3-eu-central-1.amazonaws.com\",\"s3-eu-west-1.amazonaws.com\",\"s3-eu-west-2.amazonaws.com\",\"s3-eu-west-3.amazonaws.com\",\"s3-external-1.amazonaws.com\",\"s3-fips-us-gov-west-1.amazonaws.com\",\"s3-sa-east-1.amazonaws.com\",\"s3-us-gov-west-1.amazonaws.com\",\"s3-us-east-2.amazonaws.com\",\"s3-us-west-1.amazonaws.com\",\"s3-us-west-2.amazonaws.com\",\"s3.ap-northeast-2.amazonaws.com\",\"s3.ap-south-1.amazonaws.com\",\"s3.cn-north-1.amazonaws.com.cn\",\"s3.ca-central-1.amazonaws.com\",\"s3.eu-central-1.amazonaws.com\",\"s3.eu-west-2.amazonaws.com\",\"s3.eu-west-3.amazonaws.com\",\"s3.us-east-2.amazonaws.com\",\"s3.dualstack.ap-northeast-1.amazonaws.com\",\"s3.dualstack.ap-northeast-2.amazonaws.com\",\"s3.dualstack.ap-south-1.amazonaws.com\",\"s3.dualstack.ap-southeast-1.amazonaws.com\",\"s3.dualstack.ap-southeast-2.amazonaws.com\",\"s3.dualstack.ca-central-1.amazonaws.com\",\"s3.dualstack.eu-central-1.amazonaws.com\",\"s3.dualstack.eu-west-1.amazonaws.com\",\"s3.dualstack.eu-west-2.amazonaws.com\",\"s3.dualstack.eu-west-3.amazonaws.com\",\"s3.dualstack.sa-east-1.amazonaws.com\",\"s3.dualstack.us-east-1.amazonaws.com\",\"s3.dualstack.us-east-2.amazonaws.com\",\"s3-website-us-east-1.amazonaws.com\",\"s3-website-us-west-1.amazonaws.com\",\"s3-website-us-west-2.amazonaws.com\",\"s3-website-ap-northeast-1.amazonaws.com\",\"s3-website-ap-southeast-1.amazonaws.com\",\"s3-website-ap-southeast-2.amazonaws.com\",\"s3-website-eu-west-1.amazonaws.com\",\"s3-website-sa-east-1.amazonaws.com\",\"s3-website.ap-northeast-2.amazonaws.com\",\"s3-website.ap-south-1.amazonaws.com\",\"s3-website.ca-central-1.amazonaws.com\",\"s3-website.eu-central-1.amazonaws.com\",\"s3-website.eu-west-2.amazonaws.com\",\"s3-website.eu-west-3.amazonaws.com\",\"s3-website.us-east-2.amazonaws.com\",\"t3l3p0rt.net\",\"tele.amune.org\",\"apigee.io\",\"on-aptible.com\",\"user.party.eus\",\"pimienta.org\",\"poivron.org\",\"potager.org\",\"sweetpepper.org\",\"myasustor.com\",\"go-vip.co\",\"go-vip.net\",\"wpcomstaging.com\",\"myfritz.net\",\"*.awdev.ca\",\"*.advisor.ws\",\"b-data.io\",\"backplaneapp.io\",\"balena-devices.com\",\"app.banzaicloud.io\",\"betainabox.com\",\"bnr.la\",\"blackbaudcdn.net\",\"boomla.net\",\"boxfuse.io\",\"square7.ch\",\"bplaced.com\",\"bplaced.de\",\"square7.de\",\"bplaced.net\",\"square7.net\",\"browsersafetymark.io\",\"uk0.bigv.io\",\"dh.bytemark.co.uk\",\"vm.bytemark.co.uk\",\"mycd.eu\",\"carrd.co\",\"crd.co\",\"uwu.ai\",\"ae.org\",\"ar.com\",\"br.com\",\"cn.com\",\"com.de\",\"com.se\",\"de.com\",\"eu.com\",\"gb.com\",\"gb.net\",\"hu.com\",\"hu.net\",\"jp.net\",\"jpn.com\",\"kr.com\",\"mex.com\",\"no.com\",\"qc.com\",\"ru.com\",\"sa.com\",\"se.net\",\"uk.com\",\"uk.net\",\"us.com\",\"uy.com\",\"za.bz\",\"za.com\",\"africa.com\",\"gr.com\",\"in.net\",\"us.org\",\"co.com\",\"c.la\",\"certmgr.org\",\"xenapponazure.com\",\"discourse.group\",\"virtueeldomein.nl\",\"cleverapps.io\",\"*.lcl.dev\",\"*.stg.dev\",\"c66.me\",\"cloud66.ws\",\"cloud66.zone\",\"jdevcloud.com\",\"wpdevcloud.com\",\"cloudaccess.host\",\"freesite.host\",\"cloudaccess.net\",\"cloudcontrolled.com\",\"cloudcontrolapp.com\",\"cloudera.site\",\"trycloudflare.com\",\"workers.dev\",\"wnext.app\",\"co.ca\",\"*.otap.co\",\"co.cz\",\"c.cdn77.org\",\"cdn77-ssl.net\",\"r.cdn77.net\",\"rsc.cdn77.org\",\"ssl.origin.cdn77-secure.org\",\"cloudns.asia\",\"cloudns.biz\",\"cloudns.club\",\"cloudns.cc\",\"cloudns.eu\",\"cloudns.in\",\"cloudns.info\",\"cloudns.org\",\"cloudns.pro\",\"cloudns.pw\",\"cloudns.us\",\"cloudeity.net\",\"cnpy.gdn\",\"co.nl\",\"co.no\",\"webhosting.be\",\"hosting-cluster.nl\",\"dyn.cosidns.de\",\"dynamisches-dns.de\",\"dnsupdater.de\",\"internet-dns.de\",\"l-o-g-i-n.de\",\"dynamic-dns.info\",\"feste-ip.net\",\"knx-server.net\",\"static-access.net\",\"realm.cz\",\"*.cryptonomic.net\",\"cupcake.is\",\"cyon.link\",\"cyon.site\",\"daplie.me\",\"localhost.daplie.me\",\"dattolocal.com\",\"dattorelay.com\",\"dattoweb.com\",\"mydatto.com\",\"dattolocal.net\",\"mydatto.net\",\"biz.dk\",\"co.dk\",\"firm.dk\",\"reg.dk\",\"store.dk\",\"*.dapps.earth\",\"*.bzz.dapps.earth\",\"debian.net\",\"dedyn.io\",\"dnshome.de\",\"online.th\",\"shop.th\",\"drayddns.com\",\"dreamhosters.com\",\"mydrobo.com\",\"drud.io\",\"drud.us\",\"duckdns.org\",\"dy.fi\",\"tunk.org\",\"dyndns-at-home.com\",\"dyndns-at-work.com\",\"dyndns-blog.com\",\"dyndns-free.com\",\"dyndns-home.com\",\"dyndns-ip.com\",\"dyndns-mail.com\",\"dyndns-office.com\",\"dyndns-pics.com\",\"dyndns-remote.com\",\"dyndns-server.com\",\"dyndns-web.com\",\"dyndns-wiki.com\",\"dyndns-work.com\",\"dyndns.biz\",\"dyndns.info\",\"dyndns.org\",\"dyndns.tv\",\"at-band-camp.net\",\"ath.cx\",\"barrel-of-knowledge.info\",\"barrell-of-knowledge.info\",\"better-than.tv\",\"blogdns.com\",\"blogdns.net\",\"blogdns.org\",\"blogsite.org\",\"boldlygoingnowhere.org\",\"broke-it.net\",\"buyshouses.net\",\"cechire.com\",\"dnsalias.com\",\"dnsalias.net\",\"dnsalias.org\",\"dnsdojo.com\",\"dnsdojo.net\",\"dnsdojo.org\",\"does-it.net\",\"doesntexist.com\",\"doesntexist.org\",\"dontexist.com\",\"dontexist.net\",\"dontexist.org\",\"doomdns.com\",\"doomdns.org\",\"dvrdns.org\",\"dyn-o-saur.com\",\"dynalias.com\",\"dynalias.net\",\"dynalias.org\",\"dynathome.net\",\"dyndns.ws\",\"endofinternet.net\",\"endofinternet.org\",\"endoftheinternet.org\",\"est-a-la-maison.com\",\"est-a-la-masion.com\",\"est-le-patron.com\",\"est-mon-blogueur.com\",\"for-better.biz\",\"for-more.biz\",\"for-our.info\",\"for-some.biz\",\"for-the.biz\",\"forgot.her.name\",\"forgot.his.name\",\"from-ak.com\",\"from-al.com\",\"from-ar.com\",\"from-az.net\",\"from-ca.com\",\"from-co.net\",\"from-ct.com\",\"from-dc.com\",\"from-de.com\",\"from-fl.com\",\"from-ga.com\",\"from-hi.com\",\"from-ia.com\",\"from-id.com\",\"from-il.com\",\"from-in.com\",\"from-ks.com\",\"from-ky.com\",\"from-la.net\",\"from-ma.com\",\"from-md.com\",\"from-me.org\",\"from-mi.com\",\"from-mn.com\",\"from-mo.com\",\"from-ms.com\",\"from-mt.com\",\"from-nc.com\",\"from-nd.com\",\"from-ne.com\",\"from-nh.com\",\"from-nj.com\",\"from-nm.com\",\"from-nv.com\",\"from-ny.net\",\"from-oh.com\",\"from-ok.com\",\"from-or.com\",\"from-pa.com\",\"from-pr.com\",\"from-ri.com\",\"from-sc.com\",\"from-sd.com\",\"from-tn.com\",\"from-tx.com\",\"from-ut.com\",\"from-va.com\",\"from-vt.com\",\"from-wa.com\",\"from-wi.com\",\"from-wv.com\",\"from-wy.com\",\"ftpaccess.cc\",\"fuettertdasnetz.de\",\"game-host.org\",\"game-server.cc\",\"getmyip.com\",\"gets-it.net\",\"go.dyndns.org\",\"gotdns.com\",\"gotdns.org\",\"groks-the.info\",\"groks-this.info\",\"ham-radio-op.net\",\"here-for-more.info\",\"hobby-site.com\",\"hobby-site.org\",\"home.dyndns.org\",\"homedns.org\",\"homeftp.net\",\"homeftp.org\",\"homeip.net\",\"homelinux.com\",\"homelinux.net\",\"homelinux.org\",\"homeunix.com\",\"homeunix.net\",\"homeunix.org\",\"iamallama.com\",\"in-the-band.net\",\"is-a-anarchist.com\",\"is-a-blogger.com\",\"is-a-bookkeeper.com\",\"is-a-bruinsfan.org\",\"is-a-bulls-fan.com\",\"is-a-candidate.org\",\"is-a-caterer.com\",\"is-a-celticsfan.org\",\"is-a-chef.com\",\"is-a-chef.net\",\"is-a-chef.org\",\"is-a-conservative.com\",\"is-a-cpa.com\",\"is-a-cubicle-slave.com\",\"is-a-democrat.com\",\"is-a-designer.com\",\"is-a-doctor.com\",\"is-a-financialadvisor.com\",\"is-a-geek.com\",\"is-a-geek.net\",\"is-a-geek.org\",\"is-a-green.com\",\"is-a-guru.com\",\"is-a-hard-worker.com\",\"is-a-hunter.com\",\"is-a-knight.org\",\"is-a-landscaper.com\",\"is-a-lawyer.com\",\"is-a-liberal.com\",\"is-a-libertarian.com\",\"is-a-linux-user.org\",\"is-a-llama.com\",\"is-a-musician.com\",\"is-a-nascarfan.com\",\"is-a-nurse.com\",\"is-a-painter.com\",\"is-a-patsfan.org\",\"is-a-personaltrainer.com\",\"is-a-photographer.com\",\"is-a-player.com\",\"is-a-republican.com\",\"is-a-rockstar.com\",\"is-a-socialist.com\",\"is-a-soxfan.org\",\"is-a-student.com\",\"is-a-teacher.com\",\"is-a-techie.com\",\"is-a-therapist.com\",\"is-an-accountant.com\",\"is-an-actor.com\",\"is-an-actress.com\",\"is-an-anarchist.com\",\"is-an-artist.com\",\"is-an-engineer.com\",\"is-an-entertainer.com\",\"is-by.us\",\"is-certified.com\",\"is-found.org\",\"is-gone.com\",\"is-into-anime.com\",\"is-into-cars.com\",\"is-into-cartoons.com\",\"is-into-games.com\",\"is-leet.com\",\"is-lost.org\",\"is-not-certified.com\",\"is-saved.org\",\"is-slick.com\",\"is-uberleet.com\",\"is-very-bad.org\",\"is-very-evil.org\",\"is-very-good.org\",\"is-very-nice.org\",\"is-very-sweet.org\",\"is-with-theband.com\",\"isa-geek.com\",\"isa-geek.net\",\"isa-geek.org\",\"isa-hockeynut.com\",\"issmarterthanyou.com\",\"isteingeek.de\",\"istmein.de\",\"kicks-ass.net\",\"kicks-ass.org\",\"knowsitall.info\",\"land-4-sale.us\",\"lebtimnetz.de\",\"leitungsen.de\",\"likes-pie.com\",\"likescandy.com\",\"merseine.nu\",\"mine.nu\",\"misconfused.org\",\"mypets.ws\",\"myphotos.cc\",\"neat-url.com\",\"office-on-the.net\",\"on-the-web.tv\",\"podzone.net\",\"podzone.org\",\"readmyblog.org\",\"saves-the-whales.com\",\"scrapper-site.net\",\"scrapping.cc\",\"selfip.biz\",\"selfip.com\",\"selfip.info\",\"selfip.net\",\"selfip.org\",\"sells-for-less.com\",\"sells-for-u.com\",\"sells-it.net\",\"sellsyourhome.org\",\"servebbs.com\",\"servebbs.net\",\"servebbs.org\",\"serveftp.net\",\"serveftp.org\",\"servegame.org\",\"shacknet.nu\",\"simple-url.com\",\"space-to-rent.com\",\"stuff-4-sale.org\",\"stuff-4-sale.us\",\"teaches-yoga.com\",\"thruhere.net\",\"traeumtgerade.de\",\"webhop.biz\",\"webhop.info\",\"webhop.net\",\"webhop.org\",\"worse-than.tv\",\"writesthisblog.com\",\"ddnss.de\",\"dyn.ddnss.de\",\"dyndns.ddnss.de\",\"dyndns1.de\",\"dyn-ip24.de\",\"home-webserver.de\",\"dyn.home-webserver.de\",\"myhome-server.de\",\"ddnss.org\",\"definima.net\",\"definima.io\",\"bci.dnstrace.pro\",\"ddnsfree.com\",\"ddnsgeek.com\",\"giize.com\",\"gleeze.com\",\"kozow.com\",\"loseyourip.com\",\"ooguy.com\",\"theworkpc.com\",\"casacam.net\",\"dynu.net\",\"accesscam.org\",\"camdvr.org\",\"freeddns.org\",\"mywire.org\",\"webredirect.org\",\"myddns.rocks\",\"blogsite.xyz\",\"dynv6.net\",\"e4.cz\",\"mytuleap.com\",\"onred.one\",\"staging.onred.one\",\"enonic.io\",\"customer.enonic.io\",\"eu.org\",\"al.eu.org\",\"asso.eu.org\",\"at.eu.org\",\"au.eu.org\",\"be.eu.org\",\"bg.eu.org\",\"ca.eu.org\",\"cd.eu.org\",\"ch.eu.org\",\"cn.eu.org\",\"cy.eu.org\",\"cz.eu.org\",\"de.eu.org\",\"dk.eu.org\",\"edu.eu.org\",\"ee.eu.org\",\"es.eu.org\",\"fi.eu.org\",\"fr.eu.org\",\"gr.eu.org\",\"hr.eu.org\",\"hu.eu.org\",\"ie.eu.org\",\"il.eu.org\",\"in.eu.org\",\"int.eu.org\",\"is.eu.org\",\"it.eu.org\",\"jp.eu.org\",\"kr.eu.org\",\"lt.eu.org\",\"lu.eu.org\",\"lv.eu.org\",\"mc.eu.org\",\"me.eu.org\",\"mk.eu.org\",\"mt.eu.org\",\"my.eu.org\",\"net.eu.org\",\"ng.eu.org\",\"nl.eu.org\",\"no.eu.org\",\"nz.eu.org\",\"paris.eu.org\",\"pl.eu.org\",\"pt.eu.org\",\"q-a.eu.org\",\"ro.eu.org\",\"ru.eu.org\",\"se.eu.org\",\"si.eu.org\",\"sk.eu.org\",\"tr.eu.org\",\"uk.eu.org\",\"us.eu.org\",\"eu-1.evennode.com\",\"eu-2.evennode.com\",\"eu-3.evennode.com\",\"eu-4.evennode.com\",\"us-1.evennode.com\",\"us-2.evennode.com\",\"us-3.evennode.com\",\"us-4.evennode.com\",\"twmail.cc\",\"twmail.net\",\"twmail.org\",\"mymailer.com.tw\",\"url.tw\",\"apps.fbsbx.com\",\"ru.net\",\"adygeya.ru\",\"bashkiria.ru\",\"bir.ru\",\"cbg.ru\",\"com.ru\",\"dagestan.ru\",\"grozny.ru\",\"kalmykia.ru\",\"kustanai.ru\",\"marine.ru\",\"mordovia.ru\",\"msk.ru\",\"mytis.ru\",\"nalchik.ru\",\"nov.ru\",\"pyatigorsk.ru\",\"spb.ru\",\"vladikavkaz.ru\",\"vladimir.ru\",\"abkhazia.su\",\"adygeya.su\",\"aktyubinsk.su\",\"arkhangelsk.su\",\"armenia.su\",\"ashgabad.su\",\"azerbaijan.su\",\"balashov.su\",\"bashkiria.su\",\"bryansk.su\",\"bukhara.su\",\"chimkent.su\",\"dagestan.su\",\"east-kazakhstan.su\",\"exnet.su\",\"georgia.su\",\"grozny.su\",\"ivanovo.su\",\"jambyl.su\",\"kalmykia.su\",\"kaluga.su\",\"karacol.su\",\"karaganda.su\",\"karelia.su\",\"khakassia.su\",\"krasnodar.su\",\"kurgan.su\",\"kustanai.su\",\"lenug.su\",\"mangyshlak.su\",\"mordovia.su\",\"msk.su\",\"murmansk.su\",\"nalchik.su\",\"navoi.su\",\"north-kazakhstan.su\",\"nov.su\",\"obninsk.su\",\"penza.su\",\"pokrovsk.su\",\"sochi.su\",\"spb.su\",\"tashkent.su\",\"termez.su\",\"togliatti.su\",\"troitsk.su\",\"tselinograd.su\",\"tula.su\",\"tuva.su\",\"vladikavkaz.su\",\"vladimir.su\",\"vologda.su\",\"channelsdvr.net\",\"fastly-terrarium.com\",\"fastlylb.net\",\"map.fastlylb.net\",\"freetls.fastly.net\",\"map.fastly.net\",\"a.prod.fastly.net\",\"global.prod.fastly.net\",\"a.ssl.fastly.net\",\"b.ssl.fastly.net\",\"global.ssl.fastly.net\",\"fastpanel.direct\",\"fastvps-server.com\",\"fhapp.xyz\",\"fedorainfracloud.org\",\"fedorapeople.org\",\"cloud.fedoraproject.org\",\"app.os.fedoraproject.org\",\"app.os.stg.fedoraproject.org\",\"mydobiss.com\",\"filegear.me\",\"filegear-au.me\",\"filegear-de.me\",\"filegear-gb.me\",\"filegear-ie.me\",\"filegear-jp.me\",\"filegear-sg.me\",\"firebaseapp.com\",\"flynnhub.com\",\"flynnhosting.net\",\"freebox-os.com\",\"freeboxos.com\",\"fbx-os.fr\",\"fbxos.fr\",\"freebox-os.fr\",\"freeboxos.fr\",\"freedesktop.org\",\"*.futurecms.at\",\"*.ex.futurecms.at\",\"*.in.futurecms.at\",\"futurehosting.at\",\"futuremailing.at\",\"*.ex.ortsinfo.at\",\"*.kunden.ortsinfo.at\",\"*.statics.cloud\",\"service.gov.uk\",\"gehirn.ne.jp\",\"usercontent.jp\",\"lab.ms\",\"github.io\",\"githubusercontent.com\",\"gitlab.io\",\"glitch.me\",\"cloudapps.digital\",\"london.cloudapps.digital\",\"homeoffice.gov.uk\",\"ro.im\",\"shop.ro\",\"goip.de\",\"run.app\",\"a.run.app\",\"web.app\",\"*.0emm.com\",\"appspot.com\",\"blogspot.ae\",\"blogspot.al\",\"blogspot.am\",\"blogspot.ba\",\"blogspot.be\",\"blogspot.bg\",\"blogspot.bj\",\"blogspot.ca\",\"blogspot.cf\",\"blogspot.ch\",\"blogspot.cl\",\"blogspot.co.at\",\"blogspot.co.id\",\"blogspot.co.il\",\"blogspot.co.ke\",\"blogspot.co.nz\",\"blogspot.co.uk\",\"blogspot.co.za\",\"blogspot.com\",\"blogspot.com.ar\",\"blogspot.com.au\",\"blogspot.com.br\",\"blogspot.com.by\",\"blogspot.com.co\",\"blogspot.com.cy\",\"blogspot.com.ee\",\"blogspot.com.eg\",\"blogspot.com.es\",\"blogspot.com.mt\",\"blogspot.com.ng\",\"blogspot.com.tr\",\"blogspot.com.uy\",\"blogspot.cv\",\"blogspot.cz\",\"blogspot.de\",\"blogspot.dk\",\"blogspot.fi\",\"blogspot.fr\",\"blogspot.gr\",\"blogspot.hk\",\"blogspot.hr\",\"blogspot.hu\",\"blogspot.ie\",\"blogspot.in\",\"blogspot.is\",\"blogspot.it\",\"blogspot.jp\",\"blogspot.kr\",\"blogspot.li\",\"blogspot.lt\",\"blogspot.lu\",\"blogspot.md\",\"blogspot.mk\",\"blogspot.mr\",\"blogspot.mx\",\"blogspot.my\",\"blogspot.nl\",\"blogspot.no\",\"blogspot.pe\",\"blogspot.pt\",\"blogspot.qa\",\"blogspot.re\",\"blogspot.ro\",\"blogspot.rs\",\"blogspot.ru\",\"blogspot.se\",\"blogspot.sg\",\"blogspot.si\",\"blogspot.sk\",\"blogspot.sn\",\"blogspot.td\",\"blogspot.tw\",\"blogspot.ug\",\"blogspot.vn\",\"cloudfunctions.net\",\"cloud.goog\",\"codespot.com\",\"googleapis.com\",\"googlecode.com\",\"pagespeedmobilizer.com\",\"publishproxy.com\",\"withgoogle.com\",\"withyoutube.com\",\"fin.ci\",\"free.hr\",\"caa.li\",\"ua.rs\",\"conf.se\",\"hs.zone\",\"hs.run\",\"hashbang.sh\",\"hasura.app\",\"hasura-app.io\",\"hepforge.org\",\"herokuapp.com\",\"herokussl.com\",\"myravendb.com\",\"ravendb.community\",\"ravendb.me\",\"development.run\",\"ravendb.run\",\"bpl.biz\",\"orx.biz\",\"ng.city\",\"ng.ink\",\"biz.gl\",\"col.ng\",\"gen.ng\",\"ltd.ng\",\"sch.so\",\"häkkinen.fi\",\"*.moonscale.io\",\"moonscale.net\",\"iki.fi\",\"dyn-berlin.de\",\"in-berlin.de\",\"in-brb.de\",\"in-butter.de\",\"in-dsl.de\",\"in-dsl.net\",\"in-dsl.org\",\"in-vpn.de\",\"in-vpn.net\",\"in-vpn.org\",\"biz.at\",\"info.at\",\"info.cx\",\"ac.leg.br\",\"al.leg.br\",\"am.leg.br\",\"ap.leg.br\",\"ba.leg.br\",\"ce.leg.br\",\"df.leg.br\",\"es.leg.br\",\"go.leg.br\",\"ma.leg.br\",\"mg.leg.br\",\"ms.leg.br\",\"mt.leg.br\",\"pa.leg.br\",\"pb.leg.br\",\"pe.leg.br\",\"pi.leg.br\",\"pr.leg.br\",\"rj.leg.br\",\"rn.leg.br\",\"ro.leg.br\",\"rr.leg.br\",\"rs.leg.br\",\"sc.leg.br\",\"se.leg.br\",\"sp.leg.br\",\"to.leg.br\",\"pixolino.com\",\"ipifony.net\",\"mein-iserv.de\",\"test-iserv.de\",\"iserv.dev\",\"iobb.net\",\"myjino.ru\",\"*.hosting.myjino.ru\",\"*.landing.myjino.ru\",\"*.spectrum.myjino.ru\",\"*.vps.myjino.ru\",\"*.triton.zone\",\"*.cns.joyent.com\",\"js.org\",\"kaas.gg\",\"khplay.nl\",\"keymachine.de\",\"kinghost.net\",\"uni5.net\",\"knightpoint.systems\",\"co.krd\",\"edu.krd\",\"git-repos.de\",\"lcube-server.de\",\"svn-repos.de\",\"leadpages.co\",\"lpages.co\",\"lpusercontent.com\",\"co.business\",\"co.education\",\"co.events\",\"co.financial\",\"co.network\",\"co.place\",\"co.technology\",\"app.lmpm.com\",\"linkitools.space\",\"linkyard.cloud\",\"linkyard-cloud.ch\",\"members.linode.com\",\"nodebalancer.linode.com\",\"we.bs\",\"loginline.app\",\"loginline.dev\",\"loginline.io\",\"loginline.services\",\"loginline.site\",\"krasnik.pl\",\"leczna.pl\",\"lubartow.pl\",\"lublin.pl\",\"poniatowa.pl\",\"swidnik.pl\",\"uklugs.org\",\"glug.org.uk\",\"lug.org.uk\",\"lugs.org.uk\",\"barsy.bg\",\"barsy.co.uk\",\"barsyonline.co.uk\",\"barsycenter.com\",\"barsyonline.com\",\"barsy.club\",\"barsy.de\",\"barsy.eu\",\"barsy.in\",\"barsy.info\",\"barsy.io\",\"barsy.me\",\"barsy.menu\",\"barsy.mobi\",\"barsy.net\",\"barsy.online\",\"barsy.org\",\"barsy.pro\",\"barsy.pub\",\"barsy.shop\",\"barsy.site\",\"barsy.support\",\"barsy.uk\",\"*.magentosite.cloud\",\"mayfirst.info\",\"mayfirst.org\",\"hb.cldmail.ru\",\"miniserver.com\",\"memset.net\",\"cloud.metacentrum.cz\",\"custom.metacentrum.cz\",\"flt.cloud.muni.cz\",\"usr.cloud.muni.cz\",\"meteorapp.com\",\"eu.meteorapp.com\",\"co.pl\",\"azurecontainer.io\",\"azurewebsites.net\",\"azure-mobile.net\",\"cloudapp.net\",\"mozilla-iot.org\",\"bmoattachments.org\",\"net.ru\",\"org.ru\",\"pp.ru\",\"ui.nabu.casa\",\"pony.club\",\"of.fashion\",\"on.fashion\",\"of.football\",\"in.london\",\"of.london\",\"for.men\",\"and.mom\",\"for.mom\",\"for.one\",\"for.sale\",\"of.work\",\"to.work\",\"nctu.me\",\"bitballoon.com\",\"netlify.com\",\"4u.com\",\"ngrok.io\",\"nh-serv.co.uk\",\"nfshost.com\",\"dnsking.ch\",\"mypi.co\",\"n4t.co\",\"001www.com\",\"ddnslive.com\",\"myiphost.com\",\"forumz.info\",\"16-b.it\",\"32-b.it\",\"64-b.it\",\"soundcast.me\",\"tcp4.me\",\"dnsup.net\",\"hicam.net\",\"now-dns.net\",\"ownip.net\",\"vpndns.net\",\"dynserv.org\",\"now-dns.org\",\"x443.pw\",\"now-dns.top\",\"ntdll.top\",\"freeddns.us\",\"crafting.xyz\",\"zapto.xyz\",\"nsupdate.info\",\"nerdpol.ovh\",\"blogsyte.com\",\"brasilia.me\",\"cable-modem.org\",\"ciscofreak.com\",\"collegefan.org\",\"couchpotatofries.org\",\"damnserver.com\",\"ddns.me\",\"ditchyourip.com\",\"dnsfor.me\",\"dnsiskinky.com\",\"dvrcam.info\",\"dynns.com\",\"eating-organic.net\",\"fantasyleague.cc\",\"geekgalaxy.com\",\"golffan.us\",\"health-carereform.com\",\"homesecuritymac.com\",\"homesecuritypc.com\",\"hopto.me\",\"ilovecollege.info\",\"loginto.me\",\"mlbfan.org\",\"mmafan.biz\",\"myactivedirectory.com\",\"mydissent.net\",\"myeffect.net\",\"mymediapc.net\",\"mypsx.net\",\"mysecuritycamera.com\",\"mysecuritycamera.net\",\"mysecuritycamera.org\",\"net-freaks.com\",\"nflfan.org\",\"nhlfan.net\",\"no-ip.ca\",\"no-ip.co.uk\",\"no-ip.net\",\"noip.us\",\"onthewifi.com\",\"pgafan.net\",\"point2this.com\",\"pointto.us\",\"privatizehealthinsurance.net\",\"quicksytes.com\",\"read-books.org\",\"securitytactics.com\",\"serveexchange.com\",\"servehumour.com\",\"servep2p.com\",\"servesarcasm.com\",\"stufftoread.com\",\"ufcfan.org\",\"unusualperson.com\",\"workisboring.com\",\"3utilities.com\",\"bounceme.net\",\"ddns.net\",\"ddnsking.com\",\"gotdns.ch\",\"hopto.org\",\"myftp.biz\",\"myftp.org\",\"myvnc.com\",\"no-ip.biz\",\"no-ip.info\",\"no-ip.org\",\"noip.me\",\"redirectme.net\",\"servebeer.com\",\"serveblog.net\",\"servecounterstrike.com\",\"serveftp.com\",\"servegame.com\",\"servehalflife.com\",\"servehttp.com\",\"serveirc.com\",\"serveminecraft.net\",\"servemp3.com\",\"servepics.com\",\"servequake.com\",\"sytes.net\",\"webhop.me\",\"zapto.org\",\"stage.nodeart.io\",\"nodum.co\",\"nodum.io\",\"pcloud.host\",\"nyc.mn\",\"nom.ae\",\"nom.af\",\"nom.ai\",\"nom.al\",\"nym.by\",\"nym.bz\",\"nom.cl\",\"nom.gd\",\"nom.ge\",\"nom.gl\",\"nym.gr\",\"nom.gt\",\"nym.gy\",\"nom.hn\",\"nym.ie\",\"nom.im\",\"nom.ke\",\"nym.kz\",\"nym.la\",\"nym.lc\",\"nom.li\",\"nym.li\",\"nym.lt\",\"nym.lu\",\"nym.me\",\"nom.mk\",\"nym.mn\",\"nym.mx\",\"nom.nu\",\"nym.nz\",\"nym.pe\",\"nym.pt\",\"nom.pw\",\"nom.qa\",\"nym.ro\",\"nom.rs\",\"nom.si\",\"nym.sk\",\"nom.st\",\"nym.su\",\"nym.sx\",\"nom.tj\",\"nym.tw\",\"nom.ug\",\"nom.uy\",\"nom.vc\",\"nom.vg\",\"cya.gg\",\"cloudycluster.net\",\"nid.io\",\"opencraft.hosting\",\"operaunite.com\",\"outsystemscloud.com\",\"ownprovider.com\",\"own.pm\",\"ox.rs\",\"oy.lc\",\"pgfog.com\",\"pagefrontapp.com\",\"art.pl\",\"gliwice.pl\",\"krakow.pl\",\"poznan.pl\",\"wroc.pl\",\"zakopane.pl\",\"pantheonsite.io\",\"gotpantheon.com\",\"mypep.link\",\"on-web.fr\",\"*.platform.sh\",\"*.platformsh.site\",\"dyn53.io\",\"co.bn\",\"xen.prgmr.com\",\"priv.at\",\"prvcy.page\",\"*.dweb.link\",\"protonet.io\",\"chirurgiens-dentistes-en-france.fr\",\"byen.site\",\"pubtls.org\",\"qualifioapp.com\",\"instantcloud.cn\",\"ras.ru\",\"qa2.com\",\"dev-myqnapcloud.com\",\"alpha-myqnapcloud.com\",\"myqnapcloud.com\",\"*.quipelements.com\",\"vapor.cloud\",\"vaporcloud.io\",\"rackmaze.com\",\"rackmaze.net\",\"*.on-rancher.cloud\",\"*.on-rio.io\",\"readthedocs.io\",\"rhcloud.com\",\"app.render.com\",\"onrender.com\",\"repl.co\",\"repl.run\",\"resindevice.io\",\"devices.resinstaging.io\",\"hzc.io\",\"wellbeingzone.eu\",\"ptplus.fit\",\"wellbeingzone.co.uk\",\"git-pages.rit.edu\",\"sandcats.io\",\"logoip.de\",\"logoip.com\",\"schokokeks.net\",\"scrysec.com\",\"firewall-gateway.com\",\"firewall-gateway.de\",\"my-gateway.de\",\"my-router.de\",\"spdns.de\",\"spdns.eu\",\"firewall-gateway.net\",\"my-firewall.org\",\"myfirewall.org\",\"spdns.org\",\"*.s5y.io\",\"*.sensiosite.cloud\",\"biz.ua\",\"co.ua\",\"pp.ua\",\"shiftedit.io\",\"myshopblocks.com\",\"shopitsite.com\",\"mo-siemens.io\",\"1kapp.com\",\"appchizi.com\",\"applinzi.com\",\"sinaapp.com\",\"vipsinaapp.com\",\"siteleaf.net\",\"bounty-full.com\",\"alpha.bounty-full.com\",\"beta.bounty-full.com\",\"stackhero-network.com\",\"static.land\",\"dev.static.land\",\"sites.static.land\",\"apps.lair.io\",\"*.stolos.io\",\"spacekit.io\",\"customer.speedpartner.de\",\"api.stdlib.com\",\"storj.farm\",\"utwente.io\",\"soc.srcf.net\",\"user.srcf.net\",\"temp-dns.com\",\"applicationcloud.io\",\"scapp.io\",\"syncloud.it\",\"diskstation.me\",\"dscloud.biz\",\"dscloud.me\",\"dscloud.mobi\",\"dsmynas.com\",\"dsmynas.net\",\"dsmynas.org\",\"familyds.com\",\"familyds.net\",\"familyds.org\",\"i234.me\",\"myds.me\",\"synology.me\",\"vpnplus.to\",\"taifun-dns.de\",\"gda.pl\",\"gdansk.pl\",\"gdynia.pl\",\"med.pl\",\"sopot.pl\",\"edugit.org\",\"telebit.app\",\"telebit.io\",\"*.telebit.xyz\",\"gwiddle.co.uk\",\"thingdustdata.com\",\"cust.dev.thingdust.io\",\"cust.disrec.thingdust.io\",\"cust.prod.thingdust.io\",\"cust.testing.thingdust.io\",\"arvo.network\",\"azimuth.network\",\"bloxcms.com\",\"townnews-staging.com\",\"12hp.at\",\"2ix.at\",\"4lima.at\",\"lima-city.at\",\"12hp.ch\",\"2ix.ch\",\"4lima.ch\",\"lima-city.ch\",\"trafficplex.cloud\",\"de.cool\",\"12hp.de\",\"2ix.de\",\"4lima.de\",\"lima-city.de\",\"1337.pictures\",\"clan.rip\",\"lima-city.rocks\",\"webspace.rocks\",\"lima.zone\",\"*.transurl.be\",\"*.transurl.eu\",\"*.transurl.nl\",\"tuxfamily.org\",\"dd-dns.de\",\"diskstation.eu\",\"diskstation.org\",\"dray-dns.de\",\"draydns.de\",\"dyn-vpn.de\",\"dynvpn.de\",\"mein-vigor.de\",\"my-vigor.de\",\"my-wan.de\",\"syno-ds.de\",\"synology-diskstation.de\",\"synology-ds.de\",\"uber.space\",\"*.uberspace.de\",\"hk.com\",\"hk.org\",\"ltd.hk\",\"inc.hk\",\"virtualuser.de\",\"virtual-user.de\",\"lib.de.us\",\"2038.io\",\"router.management\",\"v-info.info\",\"voorloper.cloud\",\"wafflecell.com\",\"wedeploy.io\",\"wedeploy.me\",\"wedeploy.sh\",\"remotewd.com\",\"wmflabs.org\",\"half.host\",\"xnbay.com\",\"u2.xnbay.com\",\"u2-local.xnbay.com\",\"cistron.nl\",\"demon.nl\",\"xs4all.space\",\"official.academy\",\"yolasite.com\",\"ybo.faith\",\"yombo.me\",\"homelink.one\",\"ybo.party\",\"ybo.review\",\"ybo.science\",\"ybo.trade\",\"nohost.me\",\"noho.st\",\"za.net\",\"za.org\",\"now.sh\",\"bss.design\",\"basicserver.io\",\"virtualserver.io\",\"site.builder.nu\",\"enterprisecloud.nu\",\"zone.id\"]");

/***/ }),
/* 316 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*!
 * Copyright (c) 2015, Salesforce.com, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * 3. Neither the name of Salesforce.com nor the names of its contributors may
 * be used to endorse or promote products derived from this software without
 * specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

/*jshint unused:false */

function Store() {
}
exports.Store = Store;

// Stores may be synchronous, but are still required to use a
// Continuation-Passing Style API.  The CookieJar itself will expose a "*Sync"
// API that converts from synchronous-callbacks to imperative style.
Store.prototype.synchronous = false;

Store.prototype.findCookie = function(domain, path, key, cb) {
  throw new Error('findCookie is not implemented');
};

Store.prototype.findCookies = function(domain, path, cb) {
  throw new Error('findCookies is not implemented');
};

Store.prototype.putCookie = function(cookie, cb) {
  throw new Error('putCookie is not implemented');
};

Store.prototype.updateCookie = function(oldCookie, newCookie, cb) {
  // recommended default implementation:
  // return this.putCookie(newCookie, cb);
  throw new Error('updateCookie is not implemented');
};

Store.prototype.removeCookie = function(domain, path, key, cb) {
  throw new Error('removeCookie is not implemented');
};

Store.prototype.removeCookies = function(domain, path, cb) {
  throw new Error('removeCookies is not implemented');
};

Store.prototype.getAllCookies = function(cb) {
  throw new Error('getAllCookies is not implemented (therefore jar cannot be serialized)');
};


/***/ }),
/* 317 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*!
 * Copyright (c) 2015, Salesforce.com, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * 3. Neither the name of Salesforce.com nor the names of its contributors may
 * be used to endorse or promote products derived from this software without
 * specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

var Store = __webpack_require__(316).Store;
var permuteDomain = __webpack_require__(318).permuteDomain;
var pathMatch = __webpack_require__(319).pathMatch;
var util = __webpack_require__(113);

function MemoryCookieStore() {
  Store.call(this);
  this.idx = {};
}
util.inherits(MemoryCookieStore, Store);
exports.MemoryCookieStore = MemoryCookieStore;
MemoryCookieStore.prototype.idx = null;

// Since it's just a struct in RAM, this Store is synchronous
MemoryCookieStore.prototype.synchronous = true;

// force a default depth:
MemoryCookieStore.prototype.inspect = function() {
  return "{ idx: "+util.inspect(this.idx, false, 2)+' }';
};

// Use the new custom inspection symbol to add the custom inspect function if
// available.
if (util.inspect.custom) {
  MemoryCookieStore.prototype[util.inspect.custom] = MemoryCookieStore.prototype.inspect;
}

MemoryCookieStore.prototype.findCookie = function(domain, path, key, cb) {
  if (!this.idx[domain]) {
    return cb(null,undefined);
  }
  if (!this.idx[domain][path]) {
    return cb(null,undefined);
  }
  return cb(null,this.idx[domain][path][key]||null);
};

MemoryCookieStore.prototype.findCookies = function(domain, path, cb) {
  var results = [];
  if (!domain) {
    return cb(null,[]);
  }

  var pathMatcher;
  if (!path) {
    // null means "all paths"
    pathMatcher = function matchAll(domainIndex) {
      for (var curPath in domainIndex) {
        var pathIndex = domainIndex[curPath];
        for (var key in pathIndex) {
          results.push(pathIndex[key]);
        }
      }
    };

  } else {
    pathMatcher = function matchRFC(domainIndex) {
       //NOTE: we should use path-match algorithm from S5.1.4 here
       //(see : https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/canonical_cookie.cc#L299)
       Object.keys(domainIndex).forEach(function (cookiePath) {
         if (pathMatch(path, cookiePath)) {
           var pathIndex = domainIndex[cookiePath];

           for (var key in pathIndex) {
             results.push(pathIndex[key]);
           }
         }
       });
     };
  }

  var domains = permuteDomain(domain) || [domain];
  var idx = this.idx;
  domains.forEach(function(curDomain) {
    var domainIndex = idx[curDomain];
    if (!domainIndex) {
      return;
    }
    pathMatcher(domainIndex);
  });

  cb(null,results);
};

MemoryCookieStore.prototype.putCookie = function(cookie, cb) {
  if (!this.idx[cookie.domain]) {
    this.idx[cookie.domain] = {};
  }
  if (!this.idx[cookie.domain][cookie.path]) {
    this.idx[cookie.domain][cookie.path] = {};
  }
  this.idx[cookie.domain][cookie.path][cookie.key] = cookie;
  cb(null);
};

MemoryCookieStore.prototype.updateCookie = function(oldCookie, newCookie, cb) {
  // updateCookie() may avoid updating cookies that are identical.  For example,
  // lastAccessed may not be important to some stores and an equality
  // comparison could exclude that field.
  this.putCookie(newCookie,cb);
};

MemoryCookieStore.prototype.removeCookie = function(domain, path, key, cb) {
  if (this.idx[domain] && this.idx[domain][path] && this.idx[domain][path][key]) {
    delete this.idx[domain][path][key];
  }
  cb(null);
};

MemoryCookieStore.prototype.removeCookies = function(domain, path, cb) {
  if (this.idx[domain]) {
    if (path) {
      delete this.idx[domain][path];
    } else {
      delete this.idx[domain];
    }
  }
  return cb(null);
};

MemoryCookieStore.prototype.getAllCookies = function(cb) {
  var cookies = [];
  var idx = this.idx;

  var domains = Object.keys(idx);
  domains.forEach(function(domain) {
    var paths = Object.keys(idx[domain]);
    paths.forEach(function(path) {
      var keys = Object.keys(idx[domain][path]);
      keys.forEach(function(key) {
        if (key !== null) {
          cookies.push(idx[domain][path][key]);
        }
      });
    });
  });

  // Sort by creationIndex so deserializing retains the creation order.
  // When implementing your own store, this SHOULD retain the order too
  cookies.sort(function(a,b) {
    return (a.creationIndex||0) - (b.creationIndex||0);
  });

  cb(null, cookies);
};


/***/ }),
/* 318 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*!
 * Copyright (c) 2015, Salesforce.com, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * 3. Neither the name of Salesforce.com nor the names of its contributors may
 * be used to endorse or promote products derived from this software without
 * specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

var pubsuffix = __webpack_require__(312);

// Gives the permutation of all possible domainMatch()es of a given domain. The
// array is in shortest-to-longest order.  Handy for indexing.
function permuteDomain (domain) {
  var pubSuf = pubsuffix.getPublicSuffix(domain);
  if (!pubSuf) {
    return null;
  }
  if (pubSuf == domain) {
    return [domain];
  }

  var prefix = domain.slice(0, -(pubSuf.length + 1)); // ".example.com"
  var parts = prefix.split('.').reverse();
  var cur = pubSuf;
  var permutations = [cur];
  while (parts.length) {
    cur = parts.shift() + '.' + cur;
    permutations.push(cur);
  }
  return permutations;
}

exports.permuteDomain = permuteDomain;


/***/ }),
/* 319 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*!
 * Copyright (c) 2015, Salesforce.com, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * 3. Neither the name of Salesforce.com nor the names of its contributors may
 * be used to endorse or promote products derived from this software without
 * specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

/*
 * "A request-path path-matches a given cookie-path if at least one of the
 * following conditions holds:"
 */
function pathMatch (reqPath, cookiePath) {
  // "o  The cookie-path and the request-path are identical."
  if (cookiePath === reqPath) {
    return true;
  }

  var idx = reqPath.indexOf(cookiePath);
  if (idx === 0) {
    // "o  The cookie-path is a prefix of the request-path, and the last
    // character of the cookie-path is %x2F ("/")."
    if (cookiePath.substr(-1) === "/") {
      return true;
    }

    // " o  The cookie-path is a prefix of the request-path, and the first
    // character of the request-path that is not included in the cookie- path
    // is a %x2F ("/") character."
    if (reqPath.substr(cookiePath.length, 1) === "/") {
      return true;
    }
  }

  return false;
}

exports.pathMatch = pathMatch;


/***/ }),
/* 320 */
/***/ (function(module) {

module.exports = JSON.parse("{\"author\":{\"name\":\"Jeremy Stashewsky\",\"email\":\"jstash@gmail.com\",\"website\":\"https://github.com/stash\"},\"contributors\":[{\"name\":\"Alexander Savin\",\"website\":\"https://github.com/apsavin\"},{\"name\":\"Ian Livingstone\",\"website\":\"https://github.com/ianlivingstone\"},{\"name\":\"Ivan Nikulin\",\"website\":\"https://github.com/inikulin\"},{\"name\":\"Lalit Kapoor\",\"website\":\"https://github.com/lalitkapoor\"},{\"name\":\"Sam Thompson\",\"website\":\"https://github.com/sambthompson\"},{\"name\":\"Sebastian Mayr\",\"website\":\"https://github.com/Sebmaster\"}],\"license\":\"BSD-3-Clause\",\"name\":\"tough-cookie\",\"description\":\"RFC6265 Cookies and Cookie Jar for node.js\",\"keywords\":[\"HTTP\",\"cookie\",\"cookies\",\"set-cookie\",\"cookiejar\",\"jar\",\"RFC6265\",\"RFC2965\"],\"version\":\"2.4.3\",\"homepage\":\"https://github.com/salesforce/tough-cookie\",\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/salesforce/tough-cookie.git\"},\"bugs\":{\"url\":\"https://github.com/salesforce/tough-cookie/issues\"},\"main\":\"./lib/cookie\",\"files\":[\"lib\"],\"scripts\":{\"test\":\"vows test/*_test.js\",\"cover\":\"nyc --reporter=lcov --reporter=html vows test/*_test.js\"},\"engines\":{\"node\":\">=0.8\"},\"devDependencies\":{\"async\":\"^1.4.2\",\"nyc\":\"^11.6.0\",\"string.prototype.repeat\":\"^0.2.0\",\"vows\":\"^0.8.1\"},\"dependencies\":{\"psl\":\"^1.1.24\",\"punycode\":\"^1.4.1\"}}");

/***/ }),
/* 321 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var jsonSafeStringify = __webpack_require__(322)
var crypto = __webpack_require__(57)
var Buffer = __webpack_require__(323).Buffer

var defer = typeof setImmediate === 'undefined'
  ? process.nextTick
  : setImmediate

function paramsHaveRequestBody (params) {
  return (
    params.body ||
    params.requestBodyStream ||
    (params.json && typeof params.json !== 'boolean') ||
    params.multipart
  )
}

function safeStringify (obj, replacer) {
  var ret
  try {
    ret = JSON.stringify(obj, replacer)
  } catch (e) {
    ret = jsonSafeStringify(obj, replacer)
  }
  return ret
}

function md5 (str) {
  return crypto.createHash('md5').update(str).digest('hex')
}

function isReadStream (rs) {
  return rs.readable && rs.path && rs.mode
}

function toBase64 (str) {
  return Buffer.from(str || '', 'utf8').toString('base64')
}

function copy (obj) {
  var o = {}
  Object.keys(obj).forEach(function (i) {
    o[i] = obj[i]
  })
  return o
}

function version () {
  var numbers = process.version.replace('v', '').split('.')
  return {
    major: parseInt(numbers[0], 10),
    minor: parseInt(numbers[1], 10),
    patch: parseInt(numbers[2], 10)
  }
}

exports.paramsHaveRequestBody = paramsHaveRequestBody
exports.safeStringify = safeStringify
exports.md5 = md5
exports.isReadStream = isReadStream
exports.toBase64 = toBase64
exports.copy = copy
exports.version = version
exports.defer = defer


/***/ }),
/* 322 */
/***/ (function(module, exports) {

exports = module.exports = stringify
exports.getSerialize = serializer

function stringify(obj, replacer, spaces, cycleReplacer) {
  return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)
}

function serializer(replacer, cycleReplacer) {
  var stack = [], keys = []

  if (cycleReplacer == null) cycleReplacer = function(key, value) {
    if (stack[0] === value) return "[Circular ~]"
    return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]"
  }

  return function(key, value) {
    if (stack.length > 0) {
      var thisPos = stack.indexOf(this)
      ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)
      ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)
      if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)
    }
    else stack.push(value)

    return replacer == null ? value : replacer.call(this, key, value)
  }
}


/***/ }),
/* 323 */
/***/ (function(module, exports, __webpack_require__) {

/* eslint-disable node/no-deprecated-api */
var buffer = __webpack_require__(324)
var Buffer = buffer.Buffer

// alternative to using Object.keys for old browsers
function copyProps (src, dst) {
  for (var key in src) {
    dst[key] = src[key]
  }
}
if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
  module.exports = buffer
} else {
  // Copy properties from require('buffer')
  copyProps(buffer, exports)
  exports.Buffer = SafeBuffer
}

function SafeBuffer (arg, encodingOrOffset, length) {
  return Buffer(arg, encodingOrOffset, length)
}

SafeBuffer.prototype = Object.create(Buffer.prototype)

// Copy static methods from Buffer
copyProps(Buffer, SafeBuffer)

SafeBuffer.from = function (arg, encodingOrOffset, length) {
  if (typeof arg === 'number') {
    throw new TypeError('Argument must not be a number')
  }
  return Buffer(arg, encodingOrOffset, length)
}

SafeBuffer.alloc = function (size, fill, encoding) {
  if (typeof size !== 'number') {
    throw new TypeError('Argument must be a number')
  }
  var buf = Buffer(size)
  if (fill !== undefined) {
    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 Buffer(size)
}

SafeBuffer.allocUnsafeSlow = function (size) {
  if (typeof size !== 'number') {
    throw new TypeError('Argument must be a number')
  }
  return buffer.SlowBuffer(size)
}


/***/ }),
/* 324 */
/***/ (function(module, exports) {

module.exports = require("buffer");

/***/ }),
/* 325 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var http = __webpack_require__(326)
var https = __webpack_require__(327)
var url = __webpack_require__(274)
var util = __webpack_require__(113)
var stream = __webpack_require__(111)
var zlib = __webpack_require__(255)
var aws2 = __webpack_require__(328)
var aws4 = __webpack_require__(329)
var httpSignature = __webpack_require__(332)
var mime = __webpack_require__(382)
var caseless = __webpack_require__(385)
var ForeverAgent = __webpack_require__(386)
var FormData = __webpack_require__(388)
var extend = __webpack_require__(270)
var isstream = __webpack_require__(402)
var isTypedArray = __webpack_require__(403).strict
var helpers = __webpack_require__(321)
var cookies = __webpack_require__(310)
var getProxyFromURI = __webpack_require__(404)
var Querystring = __webpack_require__(405).Querystring
var Har = __webpack_require__(411).Har
var Auth = __webpack_require__(480).Auth
var OAuth = __webpack_require__(484).OAuth
var hawk = __webpack_require__(486)
var Multipart = __webpack_require__(487).Multipart
var Redirect = __webpack_require__(488).Redirect
var Tunnel = __webpack_require__(489).Tunnel
var now = __webpack_require__(491)
var Buffer = __webpack_require__(323).Buffer

var safeStringify = helpers.safeStringify
var isReadStream = helpers.isReadStream
var toBase64 = helpers.toBase64
var defer = helpers.defer
var copy = helpers.copy
var version = helpers.version
var globalCookieJar = cookies.jar()

var globalPool = {}

function filterForNonReserved (reserved, options) {
  // Filter out properties that are not reserved.
  // Reserved values are passed in at call site.

  var object = {}
  for (var i in options) {
    var notReserved = (reserved.indexOf(i) === -1)
    if (notReserved) {
      object[i] = options[i]
    }
  }
  return object
}

function filterOutReservedFunctions (reserved, options) {
  // Filter out properties that are functions and are reserved.
  // Reserved values are passed in at call site.

  var object = {}
  for (var i in options) {
    var isReserved = !(reserved.indexOf(i) === -1)
    var isFunction = (typeof options[i] === 'function')
    if (!(isReserved && isFunction)) {
      object[i] = options[i]
    }
  }
  return object
}

// Return a simpler request object to allow serialization
function requestToJSON () {
  var self = this
  return {
    uri: self.uri,
    method: self.method,
    headers: self.headers
  }
}

// Return a simpler response object to allow serialization
function responseToJSON () {
  var self = this
  return {
    statusCode: self.statusCode,
    body: self.body,
    headers: self.headers,
    request: requestToJSON.call(self.request)
  }
}

function Request (options) {
  // if given the method property in options, set property explicitMethod to true

  // extend the Request instance with any non-reserved properties
  // remove any reserved functions from the options object
  // set Request instance to be readable and writable
  // call init

  var self = this

  // start with HAR, then override with additional options
  if (options.har) {
    self._har = new Har(self)
    options = self._har.options(options)
  }

  stream.Stream.call(self)
  var reserved = Object.keys(Request.prototype)
  var nonReserved = filterForNonReserved(reserved, options)

  extend(self, nonReserved)
  options = filterOutReservedFunctions(reserved, options)

  self.readable = true
  self.writable = true
  if (options.method) {
    self.explicitMethod = true
  }
  self._qs = new Querystring(self)
  self._auth = new Auth(self)
  self._oauth = new OAuth(self)
  self._multipart = new Multipart(self)
  self._redirect = new Redirect(self)
  self._tunnel = new Tunnel(self)
  self.init(options)
}

util.inherits(Request, stream.Stream)

// Debugging
Request.debug = process.env.NODE_DEBUG && /\brequest\b/.test(process.env.NODE_DEBUG)
function debug () {
  if (Request.debug) {
    console.error('REQUEST %s', util.format.apply(util, arguments))
  }
}
Request.prototype.debug = debug

Request.prototype.init = function (options) {
  // init() contains all the code to setup the request object.
  // the actual outgoing request is not started until start() is called
  // this function is called from both the constructor and on redirect.
  var self = this
  if (!options) {
    options = {}
  }
  self.headers = self.headers ? copy(self.headers) : {}

  // Delete headers with value undefined since they break
  // ClientRequest.OutgoingMessage.setHeader in node 0.12
  for (var headerName in self.headers) {
    if (typeof self.headers[headerName] === 'undefined') {
      delete self.headers[headerName]
    }
  }

  caseless.httpify(self, self.headers)

  if (!self.method) {
    self.method = options.method || 'GET'
  }
  if (!self.localAddress) {
    self.localAddress = options.localAddress
  }

  self._qs.init(options)

  debug(options)
  if (!self.pool && self.pool !== false) {
    self.pool = globalPool
  }
  self.dests = self.dests || []
  self.__isRequestRequest = true

  // Protect against double callback
  if (!self._callback && self.callback) {
    self._callback = self.callback
    self.callback = function () {
      if (self._callbackCalled) {
        return // Print a warning maybe?
      }
      self._callbackCalled = true
      self._callback.apply(self, arguments)
    }
    self.on('error', self.callback.bind())
    self.on('complete', self.callback.bind(self, null))
  }

  // People use this property instead all the time, so support it
  if (!self.uri && self.url) {
    self.uri = self.url
    delete self.url
  }

  // If there's a baseUrl, then use it as the base URL (i.e. uri must be
  // specified as a relative path and is appended to baseUrl).
  if (self.baseUrl) {
    if (typeof self.baseUrl !== 'string') {
      return self.emit('error', new Error('options.baseUrl must be a string'))
    }

    if (typeof self.uri !== 'string') {
      return self.emit('error', new Error('options.uri must be a string when using options.baseUrl'))
    }

    if (self.uri.indexOf('//') === 0 || self.uri.indexOf('://') !== -1) {
      return self.emit('error', new Error('options.uri must be a path when using options.baseUrl'))
    }

    // Handle all cases to make sure that there's only one slash between
    // baseUrl and uri.
    var baseUrlEndsWithSlash = self.baseUrl.lastIndexOf('/') === self.baseUrl.length - 1
    var uriStartsWithSlash = self.uri.indexOf('/') === 0

    if (baseUrlEndsWithSlash && uriStartsWithSlash) {
      self.uri = self.baseUrl + self.uri.slice(1)
    } else if (baseUrlEndsWithSlash || uriStartsWithSlash) {
      self.uri = self.baseUrl + self.uri
    } else if (self.uri === '') {
      self.uri = self.baseUrl
    } else {
      self.uri = self.baseUrl + '/' + self.uri
    }
    delete self.baseUrl
  }

  // A URI is needed by this point, emit error if we haven't been able to get one
  if (!self.uri) {
    return self.emit('error', new Error('options.uri is a required argument'))
  }

  // If a string URI/URL was given, parse it into a URL object
  if (typeof self.uri === 'string') {
    self.uri = url.parse(self.uri)
  }

  // Some URL objects are not from a URL parsed string and need href added
  if (!self.uri.href) {
    self.uri.href = url.format(self.uri)
  }

  // DEPRECATED: Warning for users of the old Unix Sockets URL Scheme
  if (self.uri.protocol === 'unix:') {
    return self.emit('error', new Error('`unix://` URL scheme is no longer supported. Please use the format `http://unix:SOCKET:PATH`'))
  }

  // Support Unix Sockets
  if (self.uri.host === 'unix') {
    self.enableUnixSocket()
  }

  if (self.strictSSL === false) {
    self.rejectUnauthorized = false
  }

  if (!self.uri.pathname) { self.uri.pathname = '/' }

  if (!(self.uri.host || (self.uri.hostname && self.uri.port)) && !self.uri.isUnix) {
    // Invalid URI: it may generate lot of bad errors, like 'TypeError: Cannot call method `indexOf` of undefined' in CookieJar
    // Detect and reject it as soon as possible
    var faultyUri = url.format(self.uri)
    var message = 'Invalid URI "' + faultyUri + '"'
    if (Object.keys(options).length === 0) {
      // No option ? This can be the sign of a redirect
      // As this is a case where the user cannot do anything (they didn't call request directly with this URL)
      // they should be warned that it can be caused by a redirection (can save some hair)
      message += '. This can be caused by a crappy redirection.'
    }
    // This error was fatal
    self.abort()
    return self.emit('error', new Error(message))
  }

  if (!self.hasOwnProperty('proxy')) {
    self.proxy = getProxyFromURI(self.uri)
  }

  self.tunnel = self._tunnel.isEnabled()
  if (self.proxy) {
    self._tunnel.setup(options)
  }

  self._redirect.onRequest(options)

  self.setHost = false
  if (!self.hasHeader('host')) {
    var hostHeaderName = self.originalHostHeaderName || 'host'
    self.setHeader(hostHeaderName, self.uri.host)
    // Drop :port suffix from Host header if known protocol.
    if (self.uri.port) {
      if ((self.uri.port === '80' && self.uri.protocol === 'http:') ||
          (self.uri.port === '443' && self.uri.protocol === 'https:')) {
        self.setHeader(hostHeaderName, self.uri.hostname)
      }
    }
    self.setHost = true
  }

  self.jar(self._jar || options.jar)

  if (!self.uri.port) {
    if (self.uri.protocol === 'http:') { self.uri.port = 80 } else if (self.uri.protocol === 'https:') { self.uri.port = 443 }
  }

  if (self.proxy && !self.tunnel) {
    self.port = self.proxy.port
    self.host = self.proxy.hostname
  } else {
    self.port = self.uri.port
    self.host = self.uri.hostname
  }

  if (options.form) {
    self.form(options.form)
  }

  if (options.formData) {
    var formData = options.formData
    var requestForm = self.form()
    var appendFormValue = function (key, value) {
      if (value && value.hasOwnProperty('value') && value.hasOwnProperty('options')) {
        requestForm.append(key, value.value, value.options)
      } else {
        requestForm.append(key, value)
      }
    }
    for (var formKey in formData) {
      if (formData.hasOwnProperty(formKey)) {
        var formValue = formData[formKey]
        if (formValue instanceof Array) {
          for (var j = 0; j < formValue.length; j++) {
            appendFormValue(formKey, formValue[j])
          }
        } else {
          appendFormValue(formKey, formValue)
        }
      }
    }
  }

  if (options.qs) {
    self.qs(options.qs)
  }

  if (self.uri.path) {
    self.path = self.uri.path
  } else {
    self.path = self.uri.pathname + (self.uri.search || '')
  }

  if (self.path.length === 0) {
    self.path = '/'
  }

  // Auth must happen last in case signing is dependent on other headers
  if (options.aws) {
    self.aws(options.aws)
  }

  if (options.hawk) {
    self.hawk(options.hawk)
  }

  if (options.httpSignature) {
    self.httpSignature(options.httpSignature)
  }

  if (options.auth) {
    if (Object.prototype.hasOwnProperty.call(options.auth, 'username')) {
      options.auth.user = options.auth.username
    }
    if (Object.prototype.hasOwnProperty.call(options.auth, 'password')) {
      options.auth.pass = options.auth.password
    }

    self.auth(
      options.auth.user,
      options.auth.pass,
      options.auth.sendImmediately,
      options.auth.bearer
    )
  }

  if (self.gzip && !self.hasHeader('accept-encoding')) {
    self.setHeader('accept-encoding', 'gzip, deflate')
  }

  if (self.uri.auth && !self.hasHeader('authorization')) {
    var uriAuthPieces = self.uri.auth.split(':').map(function (item) { return self._qs.unescape(item) })
    self.auth(uriAuthPieces[0], uriAuthPieces.slice(1).join(':'), true)
  }

  if (!self.tunnel && self.proxy && self.proxy.auth && !self.hasHeader('proxy-authorization')) {
    var proxyAuthPieces = self.proxy.auth.split(':').map(function (item) { return self._qs.unescape(item) })
    var authHeader = 'Basic ' + toBase64(proxyAuthPieces.join(':'))
    self.setHeader('proxy-authorization', authHeader)
  }

  if (self.proxy && !self.tunnel) {
    self.path = (self.uri.protocol + '//' + self.uri.host + self.path)
  }

  if (options.json) {
    self.json(options.json)
  }
  if (options.multipart) {
    self.multipart(options.multipart)
  }

  if (options.time) {
    self.timing = true

    // NOTE: elapsedTime is deprecated in favor of .timings
    self.elapsedTime = self.elapsedTime || 0
  }

  function setContentLength () {
    if (isTypedArray(self.body)) {
      self.body = Buffer.from(self.body)
    }

    if (!self.hasHeader('content-length')) {
      var length
      if (typeof self.body === 'string') {
        length = Buffer.byteLength(self.body)
      } else if (Array.isArray(self.body)) {
        length = self.body.reduce(function (a, b) { return a + b.length }, 0)
      } else {
        length = self.body.length
      }

      if (length) {
        self.setHeader('content-length', length)
      } else {
        self.emit('error', new Error('Argument error, options.body.'))
      }
    }
  }
  if (self.body && !isstream(self.body)) {
    setContentLength()
  }

  if (options.oauth) {
    self.oauth(options.oauth)
  } else if (self._oauth.params && self.hasHeader('authorization')) {
    self.oauth(self._oauth.params)
  }

  var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol
  var defaultModules = {'http:': http, 'https:': https}
  var httpModules = self.httpModules || {}

  self.httpModule = httpModules[protocol] || defaultModules[protocol]

  if (!self.httpModule) {
    return self.emit('error', new Error('Invalid protocol: ' + protocol))
  }

  if (options.ca) {
    self.ca = options.ca
  }

  if (!self.agent) {
    if (options.agentOptions) {
      self.agentOptions = options.agentOptions
    }

    if (options.agentClass) {
      self.agentClass = options.agentClass
    } else if (options.forever) {
      var v = version()
      // use ForeverAgent in node 0.10- only
      if (v.major === 0 && v.minor <= 10) {
        self.agentClass = protocol === 'http:' ? ForeverAgent : ForeverAgent.SSL
      } else {
        self.agentClass = self.httpModule.Agent
        self.agentOptions = self.agentOptions || {}
        self.agentOptions.keepAlive = true
      }
    } else {
      self.agentClass = self.httpModule.Agent
    }
  }

  if (self.pool === false) {
    self.agent = false
  } else {
    self.agent = self.agent || self.getNewAgent()
  }

  self.on('pipe', function (src) {
    if (self.ntick && self._started) {
      self.emit('error', new Error('You cannot pipe to this stream after the outbound request has started.'))
    }
    self.src = src
    if (isReadStream(src)) {
      if (!self.hasHeader('content-type')) {
        self.setHeader('content-type', mime.lookup(src.path))
      }
    } else {
      if (src.headers) {
        for (var i in src.headers) {
          if (!self.hasHeader(i)) {
            self.setHeader(i, src.headers[i])
          }
        }
      }
      if (self._json && !self.hasHeader('content-type')) {
        self.setHeader('content-type', 'application/json')
      }
      if (src.method && !self.explicitMethod) {
        self.method = src.method
      }
    }

  // self.on('pipe', function () {
  //   console.error('You have already piped to this stream. Pipeing twice is likely to break the request.')
  // })
  })

  defer(function () {
    if (self._aborted) {
      return
    }

    var end = function () {
      if (self._form) {
        if (!self._auth.hasAuth) {
          self._form.pipe(self)
        } else if (self._auth.hasAuth && self._auth.sentAuth) {
          self._form.pipe(self)
        }
      }
      if (self._multipart && self._multipart.chunked) {
        self._multipart.body.pipe(self)
      }
      if (self.body) {
        if (isstream(self.body)) {
          self.body.pipe(self)
        } else {
          setContentLength()
          if (Array.isArray(self.body)) {
            self.body.forEach(function (part) {
              self.write(part)
            })
          } else {
            self.write(self.body)
          }
          self.end()
        }
      } else if (self.requestBodyStream) {
        console.warn('options.requestBodyStream is deprecated, please pass the request object to stream.pipe.')
        self.requestBodyStream.pipe(self)
      } else if (!self.src) {
        if (self._auth.hasAuth && !self._auth.sentAuth) {
          self.end()
          return
        }
        if (self.method !== 'GET' && typeof self.method !== 'undefined') {
          self.setHeader('content-length', 0)
        }
        self.end()
      }
    }

    if (self._form && !self.hasHeader('content-length')) {
      // Before ending the request, we had to compute the length of the whole form, asyncly
      self.setHeader(self._form.getHeaders(), true)
      self._form.getLength(function (err, length) {
        if (!err && !isNaN(length)) {
          self.setHeader('content-length', length)
        }
        end()
      })
    } else {
      end()
    }

    self.ntick = true
  })
}

Request.prototype.getNewAgent = function () {
  var self = this
  var Agent = self.agentClass
  var options = {}
  if (self.agentOptions) {
    for (var i in self.agentOptions) {
      options[i] = self.agentOptions[i]
    }
  }
  if (self.ca) {
    options.ca = self.ca
  }
  if (self.ciphers) {
    options.ciphers = self.ciphers
  }
  if (self.secureProtocol) {
    options.secureProtocol = self.secureProtocol
  }
  if (self.secureOptions) {
    options.secureOptions = self.secureOptions
  }
  if (typeof self.rejectUnauthorized !== 'undefined') {
    options.rejectUnauthorized = self.rejectUnauthorized
  }

  if (self.cert && self.key) {
    options.key = self.key
    options.cert = self.cert
  }

  if (self.pfx) {
    options.pfx = self.pfx
  }

  if (self.passphrase) {
    options.passphrase = self.passphrase
  }

  var poolKey = ''

  // different types of agents are in different pools
  if (Agent !== self.httpModule.Agent) {
    poolKey += Agent.name
  }

  // ca option is only relevant if proxy or destination are https
  var proxy = self.proxy
  if (typeof proxy === 'string') {
    proxy = url.parse(proxy)
  }
  var isHttps = (proxy && proxy.protocol === 'https:') || this.uri.protocol === 'https:'

  if (isHttps) {
    if (options.ca) {
      if (poolKey) {
        poolKey += ':'
      }
      poolKey += options.ca
    }

    if (typeof options.rejectUnauthorized !== 'undefined') {
      if (poolKey) {
        poolKey += ':'
      }
      poolKey += options.rejectUnauthorized
    }

    if (options.cert) {
      if (poolKey) {
        poolKey += ':'
      }
      poolKey += options.cert.toString('ascii') + options.key.toString('ascii')
    }

    if (options.pfx) {
      if (poolKey) {
        poolKey += ':'
      }
      poolKey += options.pfx.toString('ascii')
    }

    if (options.ciphers) {
      if (poolKey) {
        poolKey += ':'
      }
      poolKey += options.ciphers
    }

    if (options.secureProtocol) {
      if (poolKey) {
        poolKey += ':'
      }
      poolKey += options.secureProtocol
    }

    if (options.secureOptions) {
      if (poolKey) {
        poolKey += ':'
      }
      poolKey += options.secureOptions
    }
  }

  if (self.pool === globalPool && !poolKey && Object.keys(options).length === 0 && self.httpModule.globalAgent) {
    // not doing anything special.  Use the globalAgent
    return self.httpModule.globalAgent
  }

  // we're using a stored agent.  Make sure it's protocol-specific
  poolKey = self.uri.protocol + poolKey

  // generate a new agent for this setting if none yet exists
  if (!self.pool[poolKey]) {
    self.pool[poolKey] = new Agent(options)
    // properly set maxSockets on new agents
    if (self.pool.maxSockets) {
      self.pool[poolKey].maxSockets = self.pool.maxSockets
    }
  }

  return self.pool[poolKey]
}

Request.prototype.start = function () {
  // start() is called once we are ready to send the outgoing HTTP request.
  // this is usually called on the first write(), end() or on nextTick()
  var self = this

  if (self.timing) {
    // All timings will be relative to this request's startTime.  In order to do this,
    // we need to capture the wall-clock start time (via Date), immediately followed
    // by the high-resolution timer (via now()).  While these two won't be set
    // at the _exact_ same time, they should be close enough to be able to calculate
    // high-resolution, monotonically non-decreasing timestamps relative to startTime.
    var startTime = new Date().getTime()
    var startTimeNow = now()
  }

  if (self._aborted) {
    return
  }

  self._started = true
  self.method = self.method || 'GET'
  self.href = self.uri.href

  if (self.src && self.src.stat && self.src.stat.size && !self.hasHeader('content-length')) {
    self.setHeader('content-length', self.src.stat.size)
  }
  if (self._aws) {
    self.aws(self._aws, true)
  }

  // We have a method named auth, which is completely different from the http.request
  // auth option.  If we don't remove it, we're gonna have a bad time.
  var reqOptions = copy(self)
  delete reqOptions.auth

  debug('make request', self.uri.href)

  // node v6.8.0 now supports a `timeout` value in `http.request()`, but we
  // should delete it for now since we handle timeouts manually for better
  // consistency with node versions before v6.8.0
  delete reqOptions.timeout

  try {
    self.req = self.httpModule.request(reqOptions)
  } catch (err) {
    self.emit('error', err)
    return
  }

  if (self.timing) {
    self.startTime = startTime
    self.startTimeNow = startTimeNow

    // Timing values will all be relative to startTime (by comparing to startTimeNow
    // so we have an accurate clock)
    self.timings = {}
  }

  var timeout
  if (self.timeout && !self.timeoutTimer) {
    if (self.timeout < 0) {
      timeout = 0
    } else if (typeof self.timeout === 'number' && isFinite(self.timeout)) {
      timeout = self.timeout
    }
  }

  self.req.on('response', self.onRequestResponse.bind(self))
  self.req.on('error', self.onRequestError.bind(self))
  self.req.on('drain', function () {
    self.emit('drain')
  })

  self.req.on('socket', function (socket) {
    // `._connecting` was the old property which was made public in node v6.1.0
    var isConnecting = socket._connecting || socket.connecting
    if (self.timing) {
      self.timings.socket = now() - self.startTimeNow

      if (isConnecting) {
        var onLookupTiming = function () {
          self.timings.lookup = now() - self.startTimeNow
        }

        var onConnectTiming = function () {
          self.timings.connect = now() - self.startTimeNow
        }

        socket.once('lookup', onLookupTiming)
        socket.once('connect', onConnectTiming)

        // clean up timing event listeners if needed on error
        self.req.once('error', function () {
          socket.removeListener('lookup', onLookupTiming)
          socket.removeListener('connect', onConnectTiming)
        })
      }
    }

    var setReqTimeout = function () {
      // This timeout sets the amount of time to wait *between* bytes sent
      // from the server once connected.
      //
      // In particular, it's useful for erroring if the server fails to send
      // data halfway through streaming a response.
      self.req.setTimeout(timeout, function () {
        if (self.req) {
          self.abort()
          var e = new Error('ESOCKETTIMEDOUT')
          e.code = 'ESOCKETTIMEDOUT'
          e.connect = false
          self.emit('error', e)
        }
      })
    }
    if (timeout !== undefined) {
      // Only start the connection timer if we're actually connecting a new
      // socket, otherwise if we're already connected (because this is a
      // keep-alive connection) do not bother. This is important since we won't
      // get a 'connect' event for an already connected socket.
      if (isConnecting) {
        var onReqSockConnect = function () {
          socket.removeListener('connect', onReqSockConnect)
          clearTimeout(self.timeoutTimer)
          self.timeoutTimer = null
          setReqTimeout()
        }

        socket.on('connect', onReqSockConnect)

        self.req.on('error', function (err) { // eslint-disable-line handle-callback-err
          socket.removeListener('connect', onReqSockConnect)
        })

        // Set a timeout in memory - this block will throw if the server takes more
        // than `timeout` to write the HTTP status and headers (corresponding to
        // the on('response') event on the client). NB: this measures wall-clock
        // time, not the time between bytes sent by the server.
        self.timeoutTimer = setTimeout(function () {
          socket.removeListener('connect', onReqSockConnect)
          self.abort()
          var e = new Error('ETIMEDOUT')
          e.code = 'ETIMEDOUT'
          e.connect = true
          self.emit('error', e)
        }, timeout)
      } else {
        // We're already connected
        setReqTimeout()
      }
    }
    self.emit('socket', socket)
  })

  self.emit('request', self.req)
}

Request.prototype.onRequestError = function (error) {
  var self = this
  if (self._aborted) {
    return
  }
  if (self.req && self.req._reusedSocket && error.code === 'ECONNRESET' &&
    self.agent.addRequestNoreuse) {
    self.agent = { addRequest: self.agent.addRequestNoreuse.bind(self.agent) }
    self.start()
    self.req.end()
    return
  }
  if (self.timeout && self.timeoutTimer) {
    clearTimeout(self.timeoutTimer)
    self.timeoutTimer = null
  }
  self.emit('error', error)
}

Request.prototype.onRequestResponse = function (response) {
  var self = this

  if (self.timing) {
    self.timings.response = now() - self.startTimeNow
  }

  debug('onRequestResponse', self.uri.href, response.statusCode, response.headers)
  response.on('end', function () {
    if (self.timing) {
      self.timings.end = now() - self.startTimeNow
      response.timingStart = self.startTime

      // fill in the blanks for any periods that didn't trigger, such as
      // no lookup or connect due to keep alive
      if (!self.timings.socket) {
        self.timings.socket = 0
      }
      if (!self.timings.lookup) {
        self.timings.lookup = self.timings.socket
      }
      if (!self.timings.connect) {
        self.timings.connect = self.timings.lookup
      }
      if (!self.timings.response) {
        self.timings.response = self.timings.connect
      }

      debug('elapsed time', self.timings.end)

      // elapsedTime includes all redirects
      self.elapsedTime += Math.round(self.timings.end)

      // NOTE: elapsedTime is deprecated in favor of .timings
      response.elapsedTime = self.elapsedTime

      // timings is just for the final fetch
      response.timings = self.timings

      // pre-calculate phase timings as well
      response.timingPhases = {
        wait: self.timings.socket,
        dns: self.timings.lookup - self.timings.socket,
        tcp: self.timings.connect - self.timings.lookup,
        firstByte: self.timings.response - self.timings.connect,
        download: self.timings.end - self.timings.response,
        total: self.timings.end
      }
    }
    debug('response end', self.uri.href, response.statusCode, response.headers)
  })

  if (self._aborted) {
    debug('aborted', self.uri.href)
    response.resume()
    return
  }

  self.response = response
  response.request = self
  response.toJSON = responseToJSON

  // XXX This is different on 0.10, because SSL is strict by default
  if (self.httpModule === https &&
    self.strictSSL && (!response.hasOwnProperty('socket') ||
    !response.socket.authorized)) {
    debug('strict ssl error', self.uri.href)
    var sslErr = response.hasOwnProperty('socket') ? response.socket.authorizationError : self.uri.href + ' does not support SSL'
    self.emit('error', new Error('SSL Error: ' + sslErr))
    return
  }

  // Save the original host before any redirect (if it changes, we need to
  // remove any authorization headers).  Also remember the case of the header
  // name because lots of broken servers expect Host instead of host and we
  // want the caller to be able to specify this.
  self.originalHost = self.getHeader('host')
  if (!self.originalHostHeaderName) {
    self.originalHostHeaderName = self.hasHeader('host')
  }
  if (self.setHost) {
    self.removeHeader('host')
  }
  if (self.timeout && self.timeoutTimer) {
    clearTimeout(self.timeoutTimer)
    self.timeoutTimer = null
  }

  var targetCookieJar = (self._jar && self._jar.setCookie) ? self._jar : globalCookieJar
  var addCookie = function (cookie) {
    // set the cookie if it's domain in the href's domain.
    try {
      targetCookieJar.setCookie(cookie, self.uri.href, {ignoreError: true})
    } catch (e) {
      self.emit('error', e)
    }
  }

  response.caseless = caseless(response.headers)

  if (response.caseless.has('set-cookie') && (!self._disableCookies)) {
    var headerName = response.caseless.has('set-cookie')
    if (Array.isArray(response.headers[headerName])) {
      response.headers[headerName].forEach(addCookie)
    } else {
      addCookie(response.headers[headerName])
    }
  }

  if (self._redirect.onResponse(response)) {
    return // Ignore the rest of the response
  } else {
    // Be a good stream and emit end when the response is finished.
    // Hack to emit end on close because of a core bug that never fires end
    response.on('close', function () {
      if (!self._ended) {
        self.response.emit('end')
      }
    })

    response.once('end', function () {
      self._ended = true
    })

    var noBody = function (code) {
      return (
        self.method === 'HEAD' ||
        // Informational
        (code >= 100 && code < 200) ||
        // No Content
        code === 204 ||
        // Not Modified
        code === 304
      )
    }

    var responseContent
    if (self.gzip && !noBody(response.statusCode)) {
      var contentEncoding = response.headers['content-encoding'] || 'identity'
      contentEncoding = contentEncoding.trim().toLowerCase()

      // Be more lenient with decoding compressed responses, since (very rarely)
      // servers send slightly invalid gzip responses that are still accepted
      // by common browsers.
      // Always using Z_SYNC_FLUSH is what cURL does.
      var zlibOptions = {
        flush: zlib.Z_SYNC_FLUSH,
        finishFlush: zlib.Z_SYNC_FLUSH
      }

      if (contentEncoding === 'gzip') {
        responseContent = zlib.createGunzip(zlibOptions)
        response.pipe(responseContent)
      } else if (contentEncoding === 'deflate') {
        responseContent = zlib.createInflate(zlibOptions)
        response.pipe(responseContent)
      } else {
        // Since previous versions didn't check for Content-Encoding header,
        // ignore any invalid values to preserve backwards-compatibility
        if (contentEncoding !== 'identity') {
          debug('ignoring unrecognized Content-Encoding ' + contentEncoding)
        }
        responseContent = response
      }
    } else {
      responseContent = response
    }

    if (self.encoding) {
      if (self.dests.length !== 0) {
        console.error('Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.')
      } else {
        responseContent.setEncoding(self.encoding)
      }
    }

    if (self._paused) {
      responseContent.pause()
    }

    self.responseContent = responseContent

    self.emit('response', response)

    self.dests.forEach(function (dest) {
      self.pipeDest(dest)
    })

    responseContent.on('data', function (chunk) {
      if (self.timing && !self.responseStarted) {
        self.responseStartTime = (new Date()).getTime()

        // NOTE: responseStartTime is deprecated in favor of .timings
        response.responseStartTime = self.responseStartTime
      }
      self._destdata = true
      self.emit('data', chunk)
    })
    responseContent.once('end', function (chunk) {
      self.emit('end', chunk)
    })
    responseContent.on('error', function (error) {
      self.emit('error', error)
    })
    responseContent.on('close', function () { self.emit('close') })

    if (self.callback) {
      self.readResponseBody(response)
    } else { // if no callback
      self.on('end', function () {
        if (self._aborted) {
          debug('aborted', self.uri.href)
          return
        }
        self.emit('complete', response)
      })
    }
  }
  debug('finish init function', self.uri.href)
}

Request.prototype.readResponseBody = function (response) {
  var self = this
  debug("reading response's body")
  var buffers = []
  var bufferLength = 0
  var strings = []

  self.on('data', function (chunk) {
    if (!Buffer.isBuffer(chunk)) {
      strings.push(chunk)
    } else if (chunk.length) {
      bufferLength += chunk.length
      buffers.push(chunk)
    }
  })
  self.on('end', function () {
    debug('end event', self.uri.href)
    if (self._aborted) {
      debug('aborted', self.uri.href)
      // `buffer` is defined in the parent scope and used in a closure it exists for the life of the request.
      // This can lead to leaky behavior if the user retains a reference to the request object.
      buffers = []
      bufferLength = 0
      return
    }

    if (bufferLength) {
      debug('has body', self.uri.href, bufferLength)
      response.body = Buffer.concat(buffers, bufferLength)
      if (self.encoding !== null) {
        response.body = response.body.toString(self.encoding)
      }
      // `buffer` is defined in the parent scope and used in a closure it exists for the life of the Request.
      // This can lead to leaky behavior if the user retains a reference to the request object.
      buffers = []
      bufferLength = 0
    } else if (strings.length) {
      // The UTF8 BOM [0xEF,0xBB,0xBF] is converted to [0xFE,0xFF] in the JS UTC16/UCS2 representation.
      // Strip this value out when the encoding is set to 'utf8', as upstream consumers won't expect it and it breaks JSON.parse().
      if (self.encoding === 'utf8' && strings[0].length > 0 && strings[0][0] === '\uFEFF') {
        strings[0] = strings[0].substring(1)
      }
      response.body = strings.join('')
    }

    if (self._json) {
      try {
        response.body = JSON.parse(response.body, self._jsonReviver)
      } catch (e) {
        debug('invalid JSON received', self.uri.href)
      }
    }
    debug('emitting complete', self.uri.href)
    if (typeof response.body === 'undefined' && !self._json) {
      response.body = self.encoding === null ? Buffer.alloc(0) : ''
    }
    self.emit('complete', response, response.body)
  })
}

Request.prototype.abort = function () {
  var self = this
  self._aborted = true

  if (self.req) {
    self.req.abort()
  } else if (self.response) {
    self.response.destroy()
  }

  self.emit('abort')
}

Request.prototype.pipeDest = function (dest) {
  var self = this
  var response = self.response
  // Called after the response is received
  if (dest.headers && !dest.headersSent) {
    if (response.caseless.has('content-type')) {
      var ctname = response.caseless.has('content-type')
      if (dest.setHeader) {
        dest.setHeader(ctname, response.headers[ctname])
      } else {
        dest.headers[ctname] = response.headers[ctname]
      }
    }

    if (response.caseless.has('content-length')) {
      var clname = response.caseless.has('content-length')
      if (dest.setHeader) {
        dest.setHeader(clname, response.headers[clname])
      } else {
        dest.headers[clname] = response.headers[clname]
      }
    }
  }
  if (dest.setHeader && !dest.headersSent) {
    for (var i in response.headers) {
      // If the response content is being decoded, the Content-Encoding header
      // of the response doesn't represent the piped content, so don't pass it.
      if (!self.gzip || i !== 'content-encoding') {
        dest.setHeader(i, response.headers[i])
      }
    }
    dest.statusCode = response.statusCode
  }
  if (self.pipefilter) {
    self.pipefilter(response, dest)
  }
}

Request.prototype.qs = function (q, clobber) {
  var self = this
  var base
  if (!clobber && self.uri.query) {
    base = self._qs.parse(self.uri.query)
  } else {
    base = {}
  }

  for (var i in q) {
    base[i] = q[i]
  }

  var qs = self._qs.stringify(base)

  if (qs === '') {
    return self
  }

  self.uri = url.parse(self.uri.href.split('?')[0] + '?' + qs)
  self.url = self.uri
  self.path = self.uri.path

  if (self.uri.host === 'unix') {
    self.enableUnixSocket()
  }

  return self
}
Request.prototype.form = function (form) {
  var self = this
  if (form) {
    if (!/^application\/x-www-form-urlencoded\b/.test(self.getHeader('content-type'))) {
      self.setHeader('content-type', 'application/x-www-form-urlencoded')
    }
    self.body = (typeof form === 'string')
      ? self._qs.rfc3986(form.toString('utf8'))
      : self._qs.stringify(form).toString('utf8')
    return self
  }
  // create form-data object
  self._form = new FormData()
  self._form.on('error', function (err) {
    err.message = 'form-data: ' + err.message
    self.emit('error', err)
    self.abort()
  })
  return self._form
}
Request.prototype.multipart = function (multipart) {
  var self = this

  self._multipart.onRequest(multipart)

  if (!self._multipart.chunked) {
    self.body = self._multipart.body
  }

  return self
}
Request.prototype.json = function (val) {
  var self = this

  if (!self.hasHeader('accept')) {
    self.setHeader('accept', 'application/json')
  }

  if (typeof self.jsonReplacer === 'function') {
    self._jsonReplacer = self.jsonReplacer
  }

  self._json = true
  if (typeof val === 'boolean') {
    if (self.body !== undefined) {
      if (!/^application\/x-www-form-urlencoded\b/.test(self.getHeader('content-type'))) {
        self.body = safeStringify(self.body, self._jsonReplacer)
      } else {
        self.body = self._qs.rfc3986(self.body)
      }
      if (!self.hasHeader('content-type')) {
        self.setHeader('content-type', 'application/json')
      }
    }
  } else {
    self.body = safeStringify(val, self._jsonReplacer)
    if (!self.hasHeader('content-type')) {
      self.setHeader('content-type', 'application/json')
    }
  }

  if (typeof self.jsonReviver === 'function') {
    self._jsonReviver = self.jsonReviver
  }

  return self
}
Request.prototype.getHeader = function (name, headers) {
  var self = this
  var result, re, match
  if (!headers) {
    headers = self.headers
  }
  Object.keys(headers).forEach(function (key) {
    if (key.length !== name.length) {
      return
    }
    re = new RegExp(name, 'i')
    match = key.match(re)
    if (match) {
      result = headers[key]
    }
  })
  return result
}
Request.prototype.enableUnixSocket = function () {
  // Get the socket & request paths from the URL
  var unixParts = this.uri.path.split(':')
  var host = unixParts[0]
  var path = unixParts[1]
  // Apply unix properties to request
  this.socketPath = host
  this.uri.pathname = path
  this.uri.path = path
  this.uri.host = host
  this.uri.hostname = host
  this.uri.isUnix = true
}

Request.prototype.auth = function (user, pass, sendImmediately, bearer) {
  var self = this

  self._auth.onRequest(user, pass, sendImmediately, bearer)

  return self
}
Request.prototype.aws = function (opts, now) {
  var self = this

  if (!now) {
    self._aws = opts
    return self
  }

  if (opts.sign_version === 4 || opts.sign_version === '4') {
    // use aws4
    var options = {
      host: self.uri.host,
      path: self.uri.path,
      method: self.method,
      headers: self.headers,
      body: self.body
    }
    if (opts.service) {
      options.service = opts.service
    }
    var signRes = aws4.sign(options, {
      accessKeyId: opts.key,
      secretAccessKey: opts.secret,
      sessionToken: opts.session
    })
    self.setHeader('authorization', signRes.headers.Authorization)
    self.setHeader('x-amz-date', signRes.headers['X-Amz-Date'])
    if (signRes.headers['X-Amz-Security-Token']) {
      self.setHeader('x-amz-security-token', signRes.headers['X-Amz-Security-Token'])
    }
  } else {
    // default: use aws-sign2
    var date = new Date()
    self.setHeader('date', date.toUTCString())
    var auth = {
      key: opts.key,
      secret: opts.secret,
      verb: self.method.toUpperCase(),
      date: date,
      contentType: self.getHeader('content-type') || '',
      md5: self.getHeader('content-md5') || '',
      amazonHeaders: aws2.canonicalizeHeaders(self.headers)
    }
    var path = self.uri.path
    if (opts.bucket && path) {
      auth.resource = '/' + opts.bucket + path
    } else if (opts.bucket && !path) {
      auth.resource = '/' + opts.bucket
    } else if (!opts.bucket && path) {
      auth.resource = path
    } else if (!opts.bucket && !path) {
      auth.resource = '/'
    }
    auth.resource = aws2.canonicalizeResource(auth.resource)
    self.setHeader('authorization', aws2.authorization(auth))
  }

  return self
}
Request.prototype.httpSignature = function (opts) {
  var self = this
  httpSignature.signRequest({
    getHeader: function (header) {
      return self.getHeader(header, self.headers)
    },
    setHeader: function (header, value) {
      self.setHeader(header, value)
    },
    method: self.method,
    path: self.path
  }, opts)
  debug('httpSignature authorization', self.getHeader('authorization'))

  return self
}
Request.prototype.hawk = function (opts) {
  var self = this
  self.setHeader('Authorization', hawk.header(self.uri, self.method, opts))
}
Request.prototype.oauth = function (_oauth) {
  var self = this

  self._oauth.onRequest(_oauth)

  return self
}

Request.prototype.jar = function (jar) {
  var self = this
  var cookies

  if (self._redirect.redirectsFollowed === 0) {
    self.originalCookieHeader = self.getHeader('cookie')
  }

  if (!jar) {
    // disable cookies
    cookies = false
    self._disableCookies = true
  } else {
    var targetCookieJar = (jar && jar.getCookieString) ? jar : globalCookieJar
    var urihref = self.uri.href
    // fetch cookie in the Specified host
    if (targetCookieJar) {
      cookies = targetCookieJar.getCookieString(urihref)
    }
  }

  // if need cookie and cookie is not empty
  if (cookies && cookies.length) {
    if (self.originalCookieHeader) {
      // Don't overwrite existing Cookie header
      self.setHeader('cookie', self.originalCookieHeader + '; ' + cookies)
    } else {
      self.setHeader('cookie', cookies)
    }
  }
  self._jar = jar
  return self
}

// Stream API
Request.prototype.pipe = function (dest, opts) {
  var self = this

  if (self.response) {
    if (self._destdata) {
      self.emit('error', new Error('You cannot pipe after data has been emitted from the response.'))
    } else if (self._ended) {
      self.emit('error', new Error('You cannot pipe after the response has been ended.'))
    } else {
      stream.Stream.prototype.pipe.call(self, dest, opts)
      self.pipeDest(dest)
      return dest
    }
  } else {
    self.dests.push(dest)
    stream.Stream.prototype.pipe.call(self, dest, opts)
    return dest
  }
}
Request.prototype.write = function () {
  var self = this
  if (self._aborted) { return }

  if (!self._started) {
    self.start()
  }
  if (self.req) {
    return self.req.write.apply(self.req, arguments)
  }
}
Request.prototype.end = function (chunk) {
  var self = this
  if (self._aborted) { return }

  if (chunk) {
    self.write(chunk)
  }
  if (!self._started) {
    self.start()
  }
  if (self.req) {
    self.req.end()
  }
}
Request.prototype.pause = function () {
  var self = this
  if (!self.responseContent) {
    self._paused = true
  } else {
    self.responseContent.pause.apply(self.responseContent, arguments)
  }
}
Request.prototype.resume = function () {
  var self = this
  if (!self.responseContent) {
    self._paused = false
  } else {
    self.responseContent.resume.apply(self.responseContent, arguments)
  }
}
Request.prototype.destroy = function () {
  var self = this
  if (!self._ended) {
    self.end()
  } else if (self.response) {
    self.response.destroy()
  }
}

Request.defaultProxyHeaderWhiteList =
  Tunnel.defaultProxyHeaderWhiteList.slice()

Request.defaultProxyHeaderExclusiveList =
  Tunnel.defaultProxyHeaderExclusiveList.slice()

// Exports

Request.prototype.toJSON = requestToJSON
module.exports = Request


/***/ }),
/* 326 */
/***/ (function(module, exports) {

module.exports = require("http");

/***/ }),
/* 327 */
/***/ (function(module, exports) {

module.exports = require("https");

/***/ }),
/* 328 */
/***/ (function(module, exports, __webpack_require__) {


/*!
 *  Copyright 2010 LearnBoost <dev@learnboost.com>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Module dependencies.
 */

var crypto = __webpack_require__(57)
  , parse = __webpack_require__(274).parse
  ;

/**
 * Valid keys.
 */

var keys = 
  [ 'acl'
  , 'location'
  , 'logging'
  , 'notification'
  , 'partNumber'
  , 'policy'
  , 'requestPayment'
  , 'torrent'
  , 'uploadId'
  , 'uploads'
  , 'versionId'
  , 'versioning'
  , 'versions'
  , 'website'
  ]

/**
 * Return an "Authorization" header value with the given `options`
 * in the form of "AWS <key>:<signature>"
 *
 * @param {Object} options
 * @return {String}
 * @api private
 */

function authorization (options) {
  return 'AWS ' + options.key + ':' + sign(options)
}

module.exports = authorization
module.exports.authorization = authorization

/**
 * Simple HMAC-SHA1 Wrapper
 *
 * @param {Object} options
 * @return {String}
 * @api private
 */ 

function hmacSha1 (options) {
  return crypto.createHmac('sha1', options.secret).update(options.message).digest('base64')
}

module.exports.hmacSha1 = hmacSha1

/**
 * Create a base64 sha1 HMAC for `options`. 
 * 
 * @param {Object} options
 * @return {String}
 * @api private
 */

function sign (options) {
  options.message = stringToSign(options)
  return hmacSha1(options)
}
module.exports.sign = sign

/**
 * Create a base64 sha1 HMAC for `options`. 
 *
 * Specifically to be used with S3 presigned URLs
 * 
 * @param {Object} options
 * @return {String}
 * @api private
 */

function signQuery (options) {
  options.message = queryStringToSign(options)
  return hmacSha1(options)
}
module.exports.signQuery= signQuery

/**
 * Return a string for sign() with the given `options`.
 *
 * Spec:
 * 
 *    <verb>\n
 *    <md5>\n
 *    <content-type>\n
 *    <date>\n
 *    [headers\n]
 *    <resource>
 *
 * @param {Object} options
 * @return {String}
 * @api private
 */

function stringToSign (options) {
  var headers = options.amazonHeaders || ''
  if (headers) headers += '\n'
  var r = 
    [ options.verb
    , options.md5
    , options.contentType
    , options.date ? options.date.toUTCString() : ''
    , headers + options.resource
    ]
  return r.join('\n')
}
module.exports.stringToSign = stringToSign

/**
 * Return a string for sign() with the given `options`, but is meant exclusively
 * for S3 presigned URLs
 *
 * Spec:
 * 
 *    <date>\n
 *    <resource>
 *
 * @param {Object} options
 * @return {String}
 * @api private
 */

function queryStringToSign (options){
  return 'GET\n\n\n' + options.date + '\n' + options.resource
}
module.exports.queryStringToSign = queryStringToSign

/**
 * Perform the following:
 *
 *  - ignore non-amazon headers
 *  - lowercase fields
 *  - sort lexicographically
 *  - trim whitespace between ":"
 *  - join with newline
 *
 * @param {Object} headers
 * @return {String}
 * @api private
 */

function canonicalizeHeaders (headers) {
  var buf = []
    , fields = Object.keys(headers)
    ;
  for (var i = 0, len = fields.length; i < len; ++i) {
    var field = fields[i]
      , val = headers[field]
      , field = field.toLowerCase()
      ;
    if (0 !== field.indexOf('x-amz')) continue
    buf.push(field + ':' + val)
  }
  return buf.sort().join('\n')
}
module.exports.canonicalizeHeaders = canonicalizeHeaders

/**
 * Perform the following:
 *
 *  - ignore non sub-resources
 *  - sort lexicographically
 *
 * @param {String} resource
 * @return {String}
 * @api private
 */

function canonicalizeResource (resource) {
  var url = parse(resource, true)
    , path = url.pathname
    , buf = []
    ;

  Object.keys(url.query).forEach(function(key){
    if (!~keys.indexOf(key)) return
    var val = '' == url.query[key] ? '' : '=' + encodeURIComponent(url.query[key])
    buf.push(key + val)
  })

  return path + (buf.length ? '?' + buf.sort().join('&') : '')
}
module.exports.canonicalizeResource = canonicalizeResource


/***/ }),
/* 329 */
/***/ (function(module, exports, __webpack_require__) {

var aws4 = exports,
    url = __webpack_require__(274),
    querystring = __webpack_require__(330),
    crypto = __webpack_require__(57),
    lru = __webpack_require__(331),
    credentialsCache = lru(1000)

// http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html

function hmac(key, string, encoding) {
  return crypto.createHmac('sha256', key).update(string, 'utf8').digest(encoding)
}

function hash(string, encoding) {
  return crypto.createHash('sha256').update(string, 'utf8').digest(encoding)
}

// This function assumes the string has already been percent encoded
function encodeRfc3986(urlEncodedString) {
  return urlEncodedString.replace(/[!'()*]/g, function(c) {
    return '%' + c.charCodeAt(0).toString(16).toUpperCase()
  })
}

// request: { path | body, [host], [method], [headers], [service], [region] }
// credentials: { accessKeyId, secretAccessKey, [sessionToken] }
function RequestSigner(request, credentials) {

  if (typeof request === 'string') request = url.parse(request)

  var headers = request.headers = (request.headers || {}),
      hostParts = this.matchHost(request.hostname || request.host || headers.Host || headers.host)

  this.request = request
  this.credentials = credentials || this.defaultCredentials()

  this.service = request.service || hostParts[0] || ''
  this.region = request.region || hostParts[1] || 'us-east-1'

  // SES uses a different domain from the service name
  if (this.service === 'email') this.service = 'ses'

  if (!request.method && request.body)
    request.method = 'POST'

  if (!headers.Host && !headers.host) {
    headers.Host = request.hostname || request.host || this.createHost()

    // If a port is specified explicitly, use it as is
    if (request.port)
      headers.Host += ':' + request.port
  }
  if (!request.hostname && !request.host)
    request.hostname = headers.Host || headers.host

  this.isCodeCommitGit = this.service === 'codecommit' && request.method === 'GIT'
}

RequestSigner.prototype.matchHost = function(host) {
  var match = (host || '').match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com(\.cn)?$/)
  var hostParts = (match || []).slice(1, 3)

  // ES's hostParts are sometimes the other way round, if the value that is expected
  // to be region equals ‘es’ switch them back
  // e.g. search-cluster-name-aaaa00aaaa0aaa0aaaaaaa0aaa.us-east-1.es.amazonaws.com
  if (hostParts[1] === 'es')
    hostParts = hostParts.reverse()

  return hostParts
}

// http://docs.aws.amazon.com/general/latest/gr/rande.html
RequestSigner.prototype.isSingleRegion = function() {
  // Special case for S3 and SimpleDB in us-east-1
  if (['s3', 'sdb'].indexOf(this.service) >= 0 && this.region === 'us-east-1') return true

  return ['cloudfront', 'ls', 'route53', 'iam', 'importexport', 'sts']
    .indexOf(this.service) >= 0
}

RequestSigner.prototype.createHost = function() {
  var region = this.isSingleRegion() ? '' :
        (this.service === 's3' && this.region !== 'us-east-1' ? '-' : '.') + this.region,
      service = this.service === 'ses' ? 'email' : this.service
  return service + region + '.amazonaws.com'
}

RequestSigner.prototype.prepareRequest = function() {
  this.parsePath()

  var request = this.request, headers = request.headers, query

  if (request.signQuery) {

    this.parsedPath.query = query = this.parsedPath.query || {}

    if (this.credentials.sessionToken)
      query['X-Amz-Security-Token'] = this.credentials.sessionToken

    if (this.service === 's3' && !query['X-Amz-Expires'])
      query['X-Amz-Expires'] = 86400

    if (query['X-Amz-Date'])
      this.datetime = query['X-Amz-Date']
    else
      query['X-Amz-Date'] = this.getDateTime()

    query['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256'
    query['X-Amz-Credential'] = this.credentials.accessKeyId + '/' + this.credentialString()
    query['X-Amz-SignedHeaders'] = this.signedHeaders()

  } else {

    if (!request.doNotModifyHeaders && !this.isCodeCommitGit) {
      if (request.body && !headers['Content-Type'] && !headers['content-type'])
        headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8'

      if (request.body && !headers['Content-Length'] && !headers['content-length'])
        headers['Content-Length'] = Buffer.byteLength(request.body)

      if (this.credentials.sessionToken && !headers['X-Amz-Security-Token'] && !headers['x-amz-security-token'])
        headers['X-Amz-Security-Token'] = this.credentials.sessionToken

      if (this.service === 's3' && !headers['X-Amz-Content-Sha256'] && !headers['x-amz-content-sha256'])
        headers['X-Amz-Content-Sha256'] = hash(this.request.body || '', 'hex')

      if (headers['X-Amz-Date'] || headers['x-amz-date'])
        this.datetime = headers['X-Amz-Date'] || headers['x-amz-date']
      else
        headers['X-Amz-Date'] = this.getDateTime()
    }

    delete headers.Authorization
    delete headers.authorization
  }
}

RequestSigner.prototype.sign = function() {
  if (!this.parsedPath) this.prepareRequest()

  if (this.request.signQuery) {
    this.parsedPath.query['X-Amz-Signature'] = this.signature()
  } else {
    this.request.headers.Authorization = this.authHeader()
  }

  this.request.path = this.formatPath()

  return this.request
}

RequestSigner.prototype.getDateTime = function() {
  if (!this.datetime) {
    var headers = this.request.headers,
      date = new Date(headers.Date || headers.date || new Date)

    this.datetime = date.toISOString().replace(/[:\-]|\.\d{3}/g, '')

    // Remove the trailing 'Z' on the timestamp string for CodeCommit git access
    if (this.isCodeCommitGit) this.datetime = this.datetime.slice(0, -1)
  }
  return this.datetime
}

RequestSigner.prototype.getDate = function() {
  return this.getDateTime().substr(0, 8)
}

RequestSigner.prototype.authHeader = function() {
  return [
    'AWS4-HMAC-SHA256 Credential=' + this.credentials.accessKeyId + '/' + this.credentialString(),
    'SignedHeaders=' + this.signedHeaders(),
    'Signature=' + this.signature(),
  ].join(', ')
}

RequestSigner.prototype.signature = function() {
  var date = this.getDate(),
      cacheKey = [this.credentials.secretAccessKey, date, this.region, this.service].join(),
      kDate, kRegion, kService, kCredentials = credentialsCache.get(cacheKey)
  if (!kCredentials) {
    kDate = hmac('AWS4' + this.credentials.secretAccessKey, date)
    kRegion = hmac(kDate, this.region)
    kService = hmac(kRegion, this.service)
    kCredentials = hmac(kService, 'aws4_request')
    credentialsCache.set(cacheKey, kCredentials)
  }
  return hmac(kCredentials, this.stringToSign(), 'hex')
}

RequestSigner.prototype.stringToSign = function() {
  return [
    'AWS4-HMAC-SHA256',
    this.getDateTime(),
    this.credentialString(),
    hash(this.canonicalString(), 'hex'),
  ].join('\n')
}

RequestSigner.prototype.canonicalString = function() {
  if (!this.parsedPath) this.prepareRequest()

  var pathStr = this.parsedPath.path,
      query = this.parsedPath.query,
      headers = this.request.headers,
      queryStr = '',
      normalizePath = this.service !== 's3',
      decodePath = this.service === 's3' || this.request.doNotEncodePath,
      decodeSlashesInPath = this.service === 's3',
      firstValOnly = this.service === 's3',
      bodyHash

  if (this.service === 's3' && this.request.signQuery) {
    bodyHash = 'UNSIGNED-PAYLOAD'
  } else if (this.isCodeCommitGit) {
    bodyHash = ''
  } else {
    bodyHash = headers['X-Amz-Content-Sha256'] || headers['x-amz-content-sha256'] ||
      hash(this.request.body || '', 'hex')
  }

  if (query) {
    queryStr = encodeRfc3986(querystring.stringify(Object.keys(query).sort().reduce(function(obj, key) {
      if (!key) return obj
      obj[key] = !Array.isArray(query[key]) ? query[key] :
        (firstValOnly ? query[key][0] : query[key].slice().sort())
      return obj
    }, {})))
  }
  if (pathStr !== '/') {
    if (normalizePath) pathStr = pathStr.replace(/\/{2,}/g, '/')
    pathStr = pathStr.split('/').reduce(function(path, piece) {
      if (normalizePath && piece === '..') {
        path.pop()
      } else if (!normalizePath || piece !== '.') {
        if (decodePath) piece = decodeURIComponent(piece)
        path.push(encodeRfc3986(encodeURIComponent(piece)))
      }
      return path
    }, []).join('/')
    if (pathStr[0] !== '/') pathStr = '/' + pathStr
    if (decodeSlashesInPath) pathStr = pathStr.replace(/%2F/g, '/')
  }

  return [
    this.request.method || 'GET',
    pathStr,
    queryStr,
    this.canonicalHeaders() + '\n',
    this.signedHeaders(),
    bodyHash,
  ].join('\n')
}

RequestSigner.prototype.canonicalHeaders = function() {
  var headers = this.request.headers
  function trimAll(header) {
    return header.toString().trim().replace(/\s+/g, ' ')
  }
  return Object.keys(headers)
    .sort(function(a, b) { return a.toLowerCase() < b.toLowerCase() ? -1 : 1 })
    .map(function(key) { return key.toLowerCase() + ':' + trimAll(headers[key]) })
    .join('\n')
}

RequestSigner.prototype.signedHeaders = function() {
  return Object.keys(this.request.headers)
    .map(function(key) { return key.toLowerCase() })
    .sort()
    .join(';')
}

RequestSigner.prototype.credentialString = function() {
  return [
    this.getDate(),
    this.region,
    this.service,
    'aws4_request',
  ].join('/')
}

RequestSigner.prototype.defaultCredentials = function() {
  var env = process.env
  return {
    accessKeyId: env.AWS_ACCESS_KEY_ID || env.AWS_ACCESS_KEY,
    secretAccessKey: env.AWS_SECRET_ACCESS_KEY || env.AWS_SECRET_KEY,
    sessionToken: env.AWS_SESSION_TOKEN,
  }
}

RequestSigner.prototype.parsePath = function() {
  var path = this.request.path || '/',
      queryIx = path.indexOf('?'),
      query = null

  if (queryIx >= 0) {
    query = querystring.parse(path.slice(queryIx + 1))
    path = path.slice(0, queryIx)
  }

  // S3 doesn't always encode characters > 127 correctly and
  // all services don't encode characters > 255 correctly
  // So if there are non-reserved chars (and it's not already all % encoded), just encode them all
  if (/[^0-9A-Za-z!'()*\-._~%/]/.test(path)) {
    path = path.split('/').map(function(piece) {
      return encodeURIComponent(decodeURIComponent(piece))
    }).join('/')
  }

  this.parsedPath = {
    path: path,
    query: query,
  }
}

RequestSigner.prototype.formatPath = function() {
  var path = this.parsedPath.path,
      query = this.parsedPath.query

  if (!query) return path

  // Services don't support empty query string keys
  if (query[''] != null) delete query['']

  return path + '?' + encodeRfc3986(querystring.stringify(query))
}

aws4.RequestSigner = RequestSigner

aws4.sign = function(request, credentials) {
  return new RequestSigner(request, credentials).sign()
}


/***/ }),
/* 330 */
/***/ (function(module, exports) {

module.exports = require("querystring");

/***/ }),
/* 331 */
/***/ (function(module, exports) {

module.exports = function(size) {
  return new LruCache(size)
}

function LruCache(size) {
  this.capacity = size | 0
  this.map = Object.create(null)
  this.list = new DoublyLinkedList()
}

LruCache.prototype.get = function(key) {
  var node = this.map[key]
  if (node == null) return undefined
  this.used(node)
  return node.val
}

LruCache.prototype.set = function(key, val) {
  var node = this.map[key]
  if (node != null) {
    node.val = val
  } else {
    if (!this.capacity) this.prune()
    if (!this.capacity) return false
    node = new DoublyLinkedNode(key, val)
    this.map[key] = node
    this.capacity--
  }
  this.used(node)
  return true
}

LruCache.prototype.used = function(node) {
  this.list.moveToFront(node)
}

LruCache.prototype.prune = function() {
  var node = this.list.pop()
  if (node != null) {
    delete this.map[node.key]
    this.capacity++
  }
}


function DoublyLinkedList() {
  this.firstNode = null
  this.lastNode = null
}

DoublyLinkedList.prototype.moveToFront = function(node) {
  if (this.firstNode == node) return

  this.remove(node)

  if (this.firstNode == null) {
    this.firstNode = node
    this.lastNode = node
    node.prev = null
    node.next = null
  } else {
    node.prev = null
    node.next = this.firstNode
    node.next.prev = node
    this.firstNode = node
  }
}

DoublyLinkedList.prototype.pop = function() {
  var lastNode = this.lastNode
  if (lastNode != null) {
    this.remove(lastNode)
  }
  return lastNode
}

DoublyLinkedList.prototype.remove = function(node) {
  if (this.firstNode == node) {
    this.firstNode = node.next
  } else if (node.prev != null) {
    node.prev.next = node.next
  }
  if (this.lastNode == node) {
    this.lastNode = node.prev
  } else if (node.next != null) {
    node.next.prev = node.prev
  }
}


function DoublyLinkedNode(key, val) {
  this.key = key
  this.val = val
  this.prev = null
  this.next = null
}


/***/ }),
/* 332 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

var parser = __webpack_require__(333);
var signer = __webpack_require__(374);
var verify = __webpack_require__(381);
var utils = __webpack_require__(335);



///--- API

module.exports = {

  parse: parser.parseRequest,
  parseRequest: parser.parseRequest,

  sign: signer.signRequest,
  signRequest: signer.signRequest,
  createSigner: signer.createSigner,
  isSigner: signer.isSigner,

  sshKeyToPEM: utils.sshKeyToPEM,
  sshKeyFingerprint: utils.fingerprint,
  pemToRsaSSHKey: utils.pemToRsaSSHKey,

  verify: verify.verifySignature,
  verifySignature: verify.verifySignature,
  verifyHMAC: verify.verifyHMAC
};


/***/ }),
/* 333 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2012 Joyent, Inc.  All rights reserved.

var assert = __webpack_require__(334);
var util = __webpack_require__(113);
var utils = __webpack_require__(335);



///--- Globals

var HASH_ALGOS = utils.HASH_ALGOS;
var PK_ALGOS = utils.PK_ALGOS;
var HttpSignatureError = utils.HttpSignatureError;
var InvalidAlgorithmError = utils.InvalidAlgorithmError;
var validateAlgorithm = utils.validateAlgorithm;

var State = {
  New: 0,
  Params: 1
};

var ParamsState = {
  Name: 0,
  Quote: 1,
  Value: 2,
  Comma: 3
};


///--- Specific Errors


function ExpiredRequestError(message) {
  HttpSignatureError.call(this, message, ExpiredRequestError);
}
util.inherits(ExpiredRequestError, HttpSignatureError);


function InvalidHeaderError(message) {
  HttpSignatureError.call(this, message, InvalidHeaderError);
}
util.inherits(InvalidHeaderError, HttpSignatureError);


function InvalidParamsError(message) {
  HttpSignatureError.call(this, message, InvalidParamsError);
}
util.inherits(InvalidParamsError, HttpSignatureError);


function MissingHeaderError(message) {
  HttpSignatureError.call(this, message, MissingHeaderError);
}
util.inherits(MissingHeaderError, HttpSignatureError);

function StrictParsingError(message) {
  HttpSignatureError.call(this, message, StrictParsingError);
}
util.inherits(StrictParsingError, HttpSignatureError);

///--- Exported API

module.exports = {

  /**
   * Parses the 'Authorization' header out of an http.ServerRequest object.
   *
   * Note that this API will fully validate the Authorization header, and throw
   * on any error.  It will not however check the signature, or the keyId format
   * as those are specific to your environment.  You can use the options object
   * to pass in extra constraints.
   *
   * As a response object you can expect this:
   *
   *     {
   *       "scheme": "Signature",
   *       "params": {
   *         "keyId": "foo",
   *         "algorithm": "rsa-sha256",
   *         "headers": [
   *           "date" or "x-date",
   *           "digest"
   *         ],
   *         "signature": "base64"
   *       },
   *       "signingString": "ready to be passed to crypto.verify()"
   *     }
   *
   * @param {Object} request an http.ServerRequest.
   * @param {Object} options an optional options object with:
   *                   - clockSkew: allowed clock skew in seconds (default 300).
   *                   - headers: required header names (def: date or x-date)
   *                   - algorithms: algorithms to support (default: all).
   *                   - strict: should enforce latest spec parsing
   *                             (default: false).
   * @return {Object} parsed out object (see above).
   * @throws {TypeError} on invalid input.
   * @throws {InvalidHeaderError} on an invalid Authorization header error.
   * @throws {InvalidParamsError} if the params in the scheme are invalid.
   * @throws {MissingHeaderError} if the params indicate a header not present,
   *                              either in the request headers from the params,
   *                              or not in the params from a required header
   *                              in options.
   * @throws {StrictParsingError} if old attributes are used in strict parsing
   *                              mode.
   * @throws {ExpiredRequestError} if the value of date or x-date exceeds skew.
   */
  parseRequest: function parseRequest(request, options) {
    assert.object(request, 'request');
    assert.object(request.headers, 'request.headers');
    if (options === undefined) {
      options = {};
    }
    if (options.headers === undefined) {
      options.headers = [request.headers['x-date'] ? 'x-date' : 'date'];
    }
    assert.object(options, 'options');
    assert.arrayOfString(options.headers, 'options.headers');
    assert.optionalFinite(options.clockSkew, 'options.clockSkew');

    var authzHeaderName = options.authorizationHeaderName || 'authorization';

    if (!request.headers[authzHeaderName]) {
      throw new MissingHeaderError('no ' + authzHeaderName + ' header ' +
                                   'present in the request');
    }

    options.clockSkew = options.clockSkew || 300;


    var i = 0;
    var state = State.New;
    var substate = ParamsState.Name;
    var tmpName = '';
    var tmpValue = '';

    var parsed = {
      scheme: '',
      params: {},
      signingString: ''
    };

    var authz = request.headers[authzHeaderName];
    for (i = 0; i < authz.length; i++) {
      var c = authz.charAt(i);

      switch (Number(state)) {

      case State.New:
        if (c !== ' ') parsed.scheme += c;
        else state = State.Params;
        break;

      case State.Params:
        switch (Number(substate)) {

        case ParamsState.Name:
          var code = c.charCodeAt(0);
          // restricted name of A-Z / a-z
          if ((code >= 0x41 && code <= 0x5a) || // A-Z
              (code >= 0x61 && code <= 0x7a)) { // a-z
            tmpName += c;
          } else if (c === '=') {
            if (tmpName.length === 0)
              throw new InvalidHeaderError('bad param format');
            substate = ParamsState.Quote;
          } else {
            throw new InvalidHeaderError('bad param format');
          }
          break;

        case ParamsState.Quote:
          if (c === '"') {
            tmpValue = '';
            substate = ParamsState.Value;
          } else {
            throw new InvalidHeaderError('bad param format');
          }
          break;

        case ParamsState.Value:
          if (c === '"') {
            parsed.params[tmpName] = tmpValue;
            substate = ParamsState.Comma;
          } else {
            tmpValue += c;
          }
          break;

        case ParamsState.Comma:
          if (c === ',') {
            tmpName = '';
            substate = ParamsState.Name;
          } else {
            throw new InvalidHeaderError('bad param format');
          }
          break;

        default:
          throw new Error('Invalid substate');
        }
        break;

      default:
        throw new Error('Invalid substate');
      }

    }

    if (!parsed.params.headers || parsed.params.headers === '') {
      if (request.headers['x-date']) {
        parsed.params.headers = ['x-date'];
      } else {
        parsed.params.headers = ['date'];
      }
    } else {
      parsed.params.headers = parsed.params.headers.split(' ');
    }

    // Minimally validate the parsed object
    if (!parsed.scheme || parsed.scheme !== 'Signature')
      throw new InvalidHeaderError('scheme was not "Signature"');

    if (!parsed.params.keyId)
      throw new InvalidHeaderError('keyId was not specified');

    if (!parsed.params.algorithm)
      throw new InvalidHeaderError('algorithm was not specified');

    if (!parsed.params.signature)
      throw new InvalidHeaderError('signature was not specified');

    // Check the algorithm against the official list
    parsed.params.algorithm = parsed.params.algorithm.toLowerCase();
    try {
      validateAlgorithm(parsed.params.algorithm);
    } catch (e) {
      if (e instanceof InvalidAlgorithmError)
        throw (new InvalidParamsError(parsed.params.algorithm + ' is not ' +
          'supported'));
      else
        throw (e);
    }

    // Build the signingString
    for (i = 0; i < parsed.params.headers.length; i++) {
      var h = parsed.params.headers[i].toLowerCase();
      parsed.params.headers[i] = h;

      if (h === 'request-line') {
        if (!options.strict) {
          /*
           * We allow headers from the older spec drafts if strict parsing isn't
           * specified in options.
           */
          parsed.signingString +=
            request.method + ' ' + request.url + ' HTTP/' + request.httpVersion;
        } else {
          /* Strict parsing doesn't allow older draft headers. */
          throw (new StrictParsingError('request-line is not a valid header ' +
            'with strict parsing enabled.'));
        }
      } else if (h === '(request-target)') {
        parsed.signingString +=
          '(request-target): ' + request.method.toLowerCase() + ' ' +
          request.url;
      } else {
        var value = request.headers[h];
        if (value === undefined)
          throw new MissingHeaderError(h + ' was not in the request');
        parsed.signingString += h + ': ' + value;
      }

      if ((i + 1) < parsed.params.headers.length)
        parsed.signingString += '\n';
    }

    // Check against the constraints
    var date;
    if (request.headers.date || request.headers['x-date']) {
        if (request.headers['x-date']) {
          date = new Date(request.headers['x-date']);
        } else {
          date = new Date(request.headers.date);
        }
      var now = new Date();
      var skew = Math.abs(now.getTime() - date.getTime());

      if (skew > options.clockSkew * 1000) {
        throw new ExpiredRequestError('clock skew of ' +
                                      (skew / 1000) +
                                      's was greater than ' +
                                      options.clockSkew + 's');
      }
    }

    options.headers.forEach(function (hdr) {
      // Remember that we already checked any headers in the params
      // were in the request, so if this passes we're good.
      if (parsed.params.headers.indexOf(hdr.toLowerCase()) < 0)
        throw new MissingHeaderError(hdr + ' was not a signed header');
    });

    if (options.algorithms) {
      if (options.algorithms.indexOf(parsed.params.algorithm) === -1)
        throw new InvalidParamsError(parsed.params.algorithm +
                                     ' is not a supported algorithm');
    }

    parsed.algorithm = parsed.params.algorithm.toUpperCase();
    parsed.keyId = parsed.params.keyId;
    return parsed;
  }

};


/***/ }),
/* 334 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright (c) 2012, Mark Cavage. All rights reserved.
// Copyright 2015 Joyent, Inc.

var assert = __webpack_require__(114);
var Stream = __webpack_require__(111).Stream;
var util = __webpack_require__(113);


///--- Globals

/* JSSTYLED */
var UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/;


///--- Internal

function _capitalize(str) {
    return (str.charAt(0).toUpperCase() + str.slice(1));
}

function _toss(name, expected, oper, arg, actual) {
    throw new assert.AssertionError({
        message: util.format('%s (%s) is required', name, expected),
        actual: (actual === undefined) ? typeof (arg) : actual(arg),
        expected: expected,
        operator: oper || '===',
        stackStartFunction: _toss.caller
    });
}

function _getClass(arg) {
    return (Object.prototype.toString.call(arg).slice(8, -1));
}

function noop() {
    // Why even bother with asserts?
}


///--- Exports

var types = {
    bool: {
        check: function (arg) { return typeof (arg) === 'boolean'; }
    },
    func: {
        check: function (arg) { return typeof (arg) === 'function'; }
    },
    string: {
        check: function (arg) { return typeof (arg) === 'string'; }
    },
    object: {
        check: function (arg) {
            return typeof (arg) === 'object' && arg !== null;
        }
    },
    number: {
        check: function (arg) {
            return typeof (arg) === 'number' && !isNaN(arg);
        }
    },
    finite: {
        check: function (arg) {
            return typeof (arg) === 'number' && !isNaN(arg) && isFinite(arg);
        }
    },
    buffer: {
        check: function (arg) { return Buffer.isBuffer(arg); },
        operator: 'Buffer.isBuffer'
    },
    array: {
        check: function (arg) { return Array.isArray(arg); },
        operator: 'Array.isArray'
    },
    stream: {
        check: function (arg) { return arg instanceof Stream; },
        operator: 'instanceof',
        actual: _getClass
    },
    date: {
        check: function (arg) { return arg instanceof Date; },
        operator: 'instanceof',
        actual: _getClass
    },
    regexp: {
        check: function (arg) { return arg instanceof RegExp; },
        operator: 'instanceof',
        actual: _getClass
    },
    uuid: {
        check: function (arg) {
            return typeof (arg) === 'string' && UUID_REGEXP.test(arg);
        },
        operator: 'isUUID'
    }
};

function _setExports(ndebug) {
    var keys = Object.keys(types);
    var out;

    /* re-export standard assert */
    if (process.env.NODE_NDEBUG) {
        out = noop;
    } else {
        out = function (arg, msg) {
            if (!arg) {
                _toss(msg, 'true', arg);
            }
        };
    }

    /* standard checks */
    keys.forEach(function (k) {
        if (ndebug) {
            out[k] = noop;
            return;
        }
        var type = types[k];
        out[k] = function (arg, msg) {
            if (!type.check(arg)) {
                _toss(msg, k, type.operator, arg, type.actual);
            }
        };
    });

    /* optional checks */
    keys.forEach(function (k) {
        var name = 'optional' + _capitalize(k);
        if (ndebug) {
            out[name] = noop;
            return;
        }
        var type = types[k];
        out[name] = function (arg, msg) {
            if (arg === undefined || arg === null) {
                return;
            }
            if (!type.check(arg)) {
                _toss(msg, k, type.operator, arg, type.actual);
            }
        };
    });

    /* arrayOf checks */
    keys.forEach(function (k) {
        var name = 'arrayOf' + _capitalize(k);
        if (ndebug) {
            out[name] = noop;
            return;
        }
        var type = types[k];
        var expected = '[' + k + ']';
        out[name] = function (arg, msg) {
            if (!Array.isArray(arg)) {
                _toss(msg, expected, type.operator, arg, type.actual);
            }
            var i;
            for (i = 0; i < arg.length; i++) {
                if (!type.check(arg[i])) {
                    _toss(msg, expected, type.operator, arg, type.actual);
                }
            }
        };
    });

    /* optionalArrayOf checks */
    keys.forEach(function (k) {
        var name = 'optionalArrayOf' + _capitalize(k);
        if (ndebug) {
            out[name] = noop;
            return;
        }
        var type = types[k];
        var expected = '[' + k + ']';
        out[name] = function (arg, msg) {
            if (arg === undefined || arg === null) {
                return;
            }
            if (!Array.isArray(arg)) {
                _toss(msg, expected, type.operator, arg, type.actual);
            }
            var i;
            for (i = 0; i < arg.length; i++) {
                if (!type.check(arg[i])) {
                    _toss(msg, expected, type.operator, arg, type.actual);
                }
            }
        };
    });

    /* re-export built-in assertions */
    Object.keys(assert).forEach(function (k) {
        if (k === 'AssertionError') {
            out[k] = assert[k];
            return;
        }
        if (ndebug) {
            out[k] = noop;
            return;
        }
        out[k] = assert[k];
    });

    /* export ourselves (for unit tests _only_) */
    out._setExports = _setExports;

    return out;
}

module.exports = _setExports(process.env.NODE_NDEBUG);


/***/ }),
/* 335 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2012 Joyent, Inc.  All rights reserved.

var assert = __webpack_require__(334);
var sshpk = __webpack_require__(336);
var util = __webpack_require__(113);

var HASH_ALGOS = {
  'sha1': true,
  'sha256': true,
  'sha512': true
};

var PK_ALGOS = {
  'rsa': true,
  'dsa': true,
  'ecdsa': true
};

function HttpSignatureError(message, caller) {
  if (Error.captureStackTrace)
    Error.captureStackTrace(this, caller || HttpSignatureError);

  this.message = message;
  this.name = caller.name;
}
util.inherits(HttpSignatureError, Error);

function InvalidAlgorithmError(message) {
  HttpSignatureError.call(this, message, InvalidAlgorithmError);
}
util.inherits(InvalidAlgorithmError, HttpSignatureError);

function validateAlgorithm(algorithm) {
  var alg = algorithm.toLowerCase().split('-');

  if (alg.length !== 2) {
    throw (new InvalidAlgorithmError(alg[0].toUpperCase() + ' is not a ' +
      'valid algorithm'));
  }

  if (alg[0] !== 'hmac' && !PK_ALGOS[alg[0]]) {
    throw (new InvalidAlgorithmError(alg[0].toUpperCase() + ' type keys ' +
      'are not supported'));
  }

  if (!HASH_ALGOS[alg[1]]) {
    throw (new InvalidAlgorithmError(alg[1].toUpperCase() + ' is not a ' +
      'supported hash algorithm'));
  }

  return (alg);
}

///--- API

module.exports = {

  HASH_ALGOS: HASH_ALGOS,
  PK_ALGOS: PK_ALGOS,

  HttpSignatureError: HttpSignatureError,
  InvalidAlgorithmError: InvalidAlgorithmError,

  validateAlgorithm: validateAlgorithm,

  /**
   * Converts an OpenSSH public key (rsa only) to a PKCS#8 PEM file.
   *
   * The intent of this module is to interoperate with OpenSSL only,
   * specifically the node crypto module's `verify` method.
   *
   * @param {String} key an OpenSSH public key.
   * @return {String} PEM encoded form of the RSA public key.
   * @throws {TypeError} on bad input.
   * @throws {Error} on invalid ssh key formatted data.
   */
  sshKeyToPEM: function sshKeyToPEM(key) {
    assert.string(key, 'ssh_key');

    var k = sshpk.parseKey(key, 'ssh');
    return (k.toString('pem'));
  },


  /**
   * Generates an OpenSSH fingerprint from an ssh public key.
   *
   * @param {String} key an OpenSSH public key.
   * @return {String} key fingerprint.
   * @throws {TypeError} on bad input.
   * @throws {Error} if what you passed doesn't look like an ssh public key.
   */
  fingerprint: function fingerprint(key) {
    assert.string(key, 'ssh_key');

    var k = sshpk.parseKey(key, 'ssh');
    return (k.fingerprint('md5').toString('hex'));
  },

  /**
   * Converts a PKGCS#8 PEM file to an OpenSSH public key (rsa)
   *
   * The reverse of the above function.
   */
  pemToRsaSSHKey: function pemToRsaSSHKey(pem, comment) {
    assert.equal('string', typeof (pem), 'typeof pem');

    var k = sshpk.parseKey(pem, 'pem');
    k.comment = comment;
    return (k.toString('ssh'));
  }
};


/***/ }),
/* 336 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

var Key = __webpack_require__(337);
var Fingerprint = __webpack_require__(340);
var Signature = __webpack_require__(343);
var PrivateKey = __webpack_require__(342);
var Certificate = __webpack_require__(369);
var Identity = __webpack_require__(370);
var errs = __webpack_require__(341);

module.exports = {
	/* top-level classes */
	Key: Key,
	parseKey: Key.parse,
	Fingerprint: Fingerprint,
	parseFingerprint: Fingerprint.parse,
	Signature: Signature,
	parseSignature: Signature.parse,
	PrivateKey: PrivateKey,
	parsePrivateKey: PrivateKey.parse,
	generatePrivateKey: PrivateKey.generate,
	Certificate: Certificate,
	parseCertificate: Certificate.parse,
	createSelfSignedCertificate: Certificate.createSelfSigned,
	createCertificate: Certificate.create,
	Identity: Identity,
	identityFromDN: Identity.parseDN,
	identityForHost: Identity.forHost,
	identityForUser: Identity.forUser,
	identityForEmail: Identity.forEmail,
	identityFromArray: Identity.fromArray,

	/* errors */
	FingerprintFormatError: errs.FingerprintFormatError,
	InvalidAlgorithmError: errs.InvalidAlgorithmError,
	KeyParseError: errs.KeyParseError,
	SignatureParseError: errs.SignatureParseError,
	KeyEncryptedError: errs.KeyEncryptedError,
	CertificateParseError: errs.CertificateParseError
};


/***/ }),
/* 337 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2018 Joyent, Inc.

module.exports = Key;

var assert = __webpack_require__(334);
var algs = __webpack_require__(338);
var crypto = __webpack_require__(57);
var Fingerprint = __webpack_require__(340);
var Signature = __webpack_require__(343);
var DiffieHellman = __webpack_require__(355).DiffieHellman;
var errs = __webpack_require__(341);
var utils = __webpack_require__(344);
var PrivateKey = __webpack_require__(342);
var edCompat;

try {
	edCompat = __webpack_require__(358);
} catch (e) {
	/* Just continue through, and bail out if we try to use it. */
}

var InvalidAlgorithmError = errs.InvalidAlgorithmError;
var KeyParseError = errs.KeyParseError;

var formats = {};
formats['auto'] = __webpack_require__(359);
formats['pem'] = __webpack_require__(360);
formats['pkcs1'] = __webpack_require__(361);
formats['pkcs8'] = __webpack_require__(362);
formats['rfc4253'] = __webpack_require__(364);
formats['ssh'] = __webpack_require__(366);
formats['ssh-private'] = __webpack_require__(363);
formats['openssh'] = formats['ssh-private'];
formats['dnssec'] = __webpack_require__(367);
formats['putty'] = __webpack_require__(368);
formats['ppk'] = formats['putty'];

function Key(opts) {
	assert.object(opts, 'options');
	assert.arrayOfObject(opts.parts, 'options.parts');
	assert.string(opts.type, 'options.type');
	assert.optionalString(opts.comment, 'options.comment');

	var algInfo = algs.info[opts.type];
	if (typeof (algInfo) !== 'object')
		throw (new InvalidAlgorithmError(opts.type));

	var partLookup = {};
	for (var i = 0; i < opts.parts.length; ++i) {
		var part = opts.parts[i];
		partLookup[part.name] = part;
	}

	this.type = opts.type;
	this.parts = opts.parts;
	this.part = partLookup;
	this.comment = undefined;
	this.source = opts.source;

	/* for speeding up hashing/fingerprint operations */
	this._rfc4253Cache = opts._rfc4253Cache;
	this._hashCache = {};

	var sz;
	this.curve = undefined;
	if (this.type === 'ecdsa') {
		var curve = this.part.curve.data.toString();
		this.curve = curve;
		sz = algs.curves[curve].size;
	} else if (this.type === 'ed25519' || this.type === 'curve25519') {
		sz = 256;
		this.curve = 'curve25519';
	} else {
		var szPart = this.part[algInfo.sizePart];
		sz = szPart.data.length;
		sz = sz * 8 - utils.countZeros(szPart.data);
	}
	this.size = sz;
}

Key.formats = formats;

Key.prototype.toBuffer = function (format, options) {
	if (format === undefined)
		format = 'ssh';
	assert.string(format, 'format');
	assert.object(formats[format], 'formats[format]');
	assert.optionalObject(options, 'options');

	if (format === 'rfc4253') {
		if (this._rfc4253Cache === undefined)
			this._rfc4253Cache = formats['rfc4253'].write(this);
		return (this._rfc4253Cache);
	}

	return (formats[format].write(this, options));
};

Key.prototype.toString = function (format, options) {
	return (this.toBuffer(format, options).toString());
};

Key.prototype.hash = function (algo, type) {
	assert.string(algo, 'algorithm');
	assert.optionalString(type, 'type');
	if (type === undefined)
		type = 'ssh';
	algo = algo.toLowerCase();
	if (algs.hashAlgs[algo] === undefined)
		throw (new InvalidAlgorithmError(algo));

	var cacheKey = algo + '||' + type;
	if (this._hashCache[cacheKey])
		return (this._hashCache[cacheKey]);

	var buf;
	if (type === 'ssh') {
		buf = this.toBuffer('rfc4253');
	} else if (type === 'spki') {
		buf = formats.pkcs8.pkcs8ToBuffer(this);
	} else {
		throw (new Error('Hash type ' + type + ' not supported'));
	}
	var hash = crypto.createHash(algo).update(buf).digest();
	this._hashCache[cacheKey] = hash;
	return (hash);
};

Key.prototype.fingerprint = function (algo, type) {
	if (algo === undefined)
		algo = 'sha256';
	if (type === undefined)
		type = 'ssh';
	assert.string(algo, 'algorithm');
	assert.string(type, 'type');
	var opts = {
		type: 'key',
		hash: this.hash(algo, type),
		algorithm: algo,
		hashType: type
	};
	return (new Fingerprint(opts));
};

Key.prototype.defaultHashAlgorithm = function () {
	var hashAlgo = 'sha1';
	if (this.type === 'rsa')
		hashAlgo = 'sha256';
	if (this.type === 'dsa' && this.size > 1024)
		hashAlgo = 'sha256';
	if (this.type === 'ed25519')
		hashAlgo = 'sha512';
	if (this.type === 'ecdsa') {
		if (this.size <= 256)
			hashAlgo = 'sha256';
		else if (this.size <= 384)
			hashAlgo = 'sha384';
		else
			hashAlgo = 'sha512';
	}
	return (hashAlgo);
};

Key.prototype.createVerify = function (hashAlgo) {
	if (hashAlgo === undefined)
		hashAlgo = this.defaultHashAlgorithm();
	assert.string(hashAlgo, 'hash algorithm');

	/* ED25519 is not supported by OpenSSL, use a javascript impl. */
	if (this.type === 'ed25519' && edCompat !== undefined)
		return (new edCompat.Verifier(this, hashAlgo));
	if (this.type === 'curve25519')
		throw (new Error('Curve25519 keys are not suitable for ' +
		    'signing or verification'));

	var v, nm, err;
	try {
		nm = hashAlgo.toUpperCase();
		v = crypto.createVerify(nm);
	} catch (e) {
		err = e;
	}
	if (v === undefined || (err instanceof Error &&
	    err.message.match(/Unknown message digest/))) {
		nm = 'RSA-';
		nm += hashAlgo.toUpperCase();
		v = crypto.createVerify(nm);
	}
	assert.ok(v, 'failed to create verifier');
	var oldVerify = v.verify.bind(v);
	var key = this.toBuffer('pkcs8');
	var curve = this.curve;
	var self = this;
	v.verify = function (signature, fmt) {
		if (Signature.isSignature(signature, [2, 0])) {
			if (signature.type !== self.type)
				return (false);
			if (signature.hashAlgorithm &&
			    signature.hashAlgorithm !== hashAlgo)
				return (false);
			if (signature.curve && self.type === 'ecdsa' &&
			    signature.curve !== curve)
				return (false);
			return (oldVerify(key, signature.toBuffer('asn1')));

		} else if (typeof (signature) === 'string' ||
		    Buffer.isBuffer(signature)) {
			return (oldVerify(key, signature, fmt));

		/*
		 * Avoid doing this on valid arguments, walking the prototype
		 * chain can be quite slow.
		 */
		} else if (Signature.isSignature(signature, [1, 0])) {
			throw (new Error('signature was created by too old ' +
			    'a version of sshpk and cannot be verified'));

		} else {
			throw (new TypeError('signature must be a string, ' +
			    'Buffer, or Signature object'));
		}
	};
	return (v);
};

Key.prototype.createDiffieHellman = function () {
	if (this.type === 'rsa')
		throw (new Error('RSA keys do not support Diffie-Hellman'));

	return (new DiffieHellman(this));
};
Key.prototype.createDH = Key.prototype.createDiffieHellman;

Key.parse = function (data, format, options) {
	if (typeof (data) !== 'string')
		assert.buffer(data, 'data');
	if (format === undefined)
		format = 'auto';
	assert.string(format, 'format');
	if (typeof (options) === 'string')
		options = { filename: options };
	assert.optionalObject(options, 'options');
	if (options === undefined)
		options = {};
	assert.optionalString(options.filename, 'options.filename');
	if (options.filename === undefined)
		options.filename = '(unnamed)';

	assert.object(formats[format], 'formats[format]');

	try {
		var k = formats[format].read(data, options);
		if (k instanceof PrivateKey)
			k = k.toPublic();
		if (!k.comment)
			k.comment = options.filename;
		return (k);
	} catch (e) {
		if (e.name === 'KeyEncryptedError')
			throw (e);
		throw (new KeyParseError(options.filename, format, e));
	}
};

Key.isKey = function (obj, ver) {
	return (utils.isCompatible(obj, Key, ver));
};

/*
 * API versions for Key:
 * [1,0] -- initial ver, may take Signature for createVerify or may not
 * [1,1] -- added pkcs1, pkcs8 formats
 * [1,2] -- added auto, ssh-private, openssh formats
 * [1,3] -- added defaultHashAlgorithm
 * [1,4] -- added ed support, createDH
 * [1,5] -- first explicitly tagged version
 * [1,6] -- changed ed25519 part names
 * [1,7] -- spki hash types
 */
Key.prototype._sshpkApiVersion = [1, 7];

Key._oldVersionDetect = function (obj) {
	assert.func(obj.toBuffer);
	assert.func(obj.fingerprint);
	if (obj.createDH)
		return ([1, 4]);
	if (obj.defaultHashAlgorithm)
		return ([1, 3]);
	if (obj.formats['auto'])
		return ([1, 2]);
	if (obj.formats['pkcs1'])
		return ([1, 1]);
	return ([1, 0]);
};


/***/ }),
/* 338 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

var Buffer = __webpack_require__(339).Buffer;

var algInfo = {
	'dsa': {
		parts: ['p', 'q', 'g', 'y'],
		sizePart: 'p'
	},
	'rsa': {
		parts: ['e', 'n'],
		sizePart: 'n'
	},
	'ecdsa': {
		parts: ['curve', 'Q'],
		sizePart: 'Q'
	},
	'ed25519': {
		parts: ['A'],
		sizePart: 'A'
	}
};
algInfo['curve25519'] = algInfo['ed25519'];

var algPrivInfo = {
	'dsa': {
		parts: ['p', 'q', 'g', 'y', 'x']
	},
	'rsa': {
		parts: ['n', 'e', 'd', 'iqmp', 'p', 'q']
	},
	'ecdsa': {
		parts: ['curve', 'Q', 'd']
	},
	'ed25519': {
		parts: ['A', 'k']
	}
};
algPrivInfo['curve25519'] = algPrivInfo['ed25519'];

var hashAlgs = {
	'md5': true,
	'sha1': true,
	'sha256': true,
	'sha384': true,
	'sha512': true
};

/*
 * Taken from
 * http://csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf
 */
var curves = {
	'nistp256': {
		size: 256,
		pkcs8oid: '1.2.840.10045.3.1.7',
		p: Buffer.from(('00' +
		    'ffffffff 00000001 00000000 00000000' +
		    '00000000 ffffffff ffffffff ffffffff').
		    replace(/ /g, ''), 'hex'),
		a: Buffer.from(('00' +
		    'FFFFFFFF 00000001 00000000 00000000' +
		    '00000000 FFFFFFFF FFFFFFFF FFFFFFFC').
		    replace(/ /g, ''), 'hex'),
		b: Buffer.from((
		    '5ac635d8 aa3a93e7 b3ebbd55 769886bc' +
		    '651d06b0 cc53b0f6 3bce3c3e 27d2604b').
		    replace(/ /g, ''), 'hex'),
		s: Buffer.from(('00' +
		    'c49d3608 86e70493 6a6678e1 139d26b7' +
		    '819f7e90').
		    replace(/ /g, ''), 'hex'),
		n: Buffer.from(('00' +
		    'ffffffff 00000000 ffffffff ffffffff' +
		    'bce6faad a7179e84 f3b9cac2 fc632551').
		    replace(/ /g, ''), 'hex'),
		G: Buffer.from(('04' +
		    '6b17d1f2 e12c4247 f8bce6e5 63a440f2' +
		    '77037d81 2deb33a0 f4a13945 d898c296' +
		    '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16' +
		    '2bce3357 6b315ece cbb64068 37bf51f5').
		    replace(/ /g, ''), 'hex')
	},
	'nistp384': {
		size: 384,
		pkcs8oid: '1.3.132.0.34',
		p: Buffer.from(('00' +
		    'ffffffff ffffffff ffffffff ffffffff' +
		    'ffffffff ffffffff ffffffff fffffffe' +
		    'ffffffff 00000000 00000000 ffffffff').
		    replace(/ /g, ''), 'hex'),
		a: Buffer.from(('00' +
		    'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' +
		    'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE' +
		    'FFFFFFFF 00000000 00000000 FFFFFFFC').
		    replace(/ /g, ''), 'hex'),
		b: Buffer.from((
		    'b3312fa7 e23ee7e4 988e056b e3f82d19' +
		    '181d9c6e fe814112 0314088f 5013875a' +
		    'c656398d 8a2ed19d 2a85c8ed d3ec2aef').
		    replace(/ /g, ''), 'hex'),
		s: Buffer.from(('00' +
		    'a335926a a319a27a 1d00896a 6773a482' +
		    '7acdac73').
		    replace(/ /g, ''), 'hex'),
		n: Buffer.from(('00' +
		    'ffffffff ffffffff ffffffff ffffffff' +
		    'ffffffff ffffffff c7634d81 f4372ddf' +
		    '581a0db2 48b0a77a ecec196a ccc52973').
		    replace(/ /g, ''), 'hex'),
		G: Buffer.from(('04' +
		    'aa87ca22 be8b0537 8eb1c71e f320ad74' +
		    '6e1d3b62 8ba79b98 59f741e0 82542a38' +
		    '5502f25d bf55296c 3a545e38 72760ab7' +
		    '3617de4a 96262c6f 5d9e98bf 9292dc29' +
		    'f8f41dbd 289a147c e9da3113 b5f0b8c0' +
		    '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f').
		    replace(/ /g, ''), 'hex')
	},
	'nistp521': {
		size: 521,
		pkcs8oid: '1.3.132.0.35',
		p: Buffer.from((
		    '01ffffff ffffffff ffffffff ffffffff' +
		    'ffffffff ffffffff ffffffff ffffffff' +
		    'ffffffff ffffffff ffffffff ffffffff' +
		    'ffffffff ffffffff ffffffff ffffffff' +
		    'ffff').replace(/ /g, ''), 'hex'),
		a: Buffer.from(('01FF' +
		    'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' +
		    'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' +
		    'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' +
		    'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFC').
		    replace(/ /g, ''), 'hex'),
		b: Buffer.from(('51' +
		    '953eb961 8e1c9a1f 929a21a0 b68540ee' +
		    'a2da725b 99b315f3 b8b48991 8ef109e1' +
		    '56193951 ec7e937b 1652c0bd 3bb1bf07' +
		    '3573df88 3d2c34f1 ef451fd4 6b503f00').
		    replace(/ /g, ''), 'hex'),
		s: Buffer.from(('00' +
		    'd09e8800 291cb853 96cc6717 393284aa' +
		    'a0da64ba').replace(/ /g, ''), 'hex'),
		n: Buffer.from(('01ff' +
		    'ffffffff ffffffff ffffffff ffffffff' +
		    'ffffffff ffffffff ffffffff fffffffa' +
		    '51868783 bf2f966b 7fcc0148 f709a5d0' +
		    '3bb5c9b8 899c47ae bb6fb71e 91386409').
		    replace(/ /g, ''), 'hex'),
		G: Buffer.from(('04' +
		    '00c6 858e06b7 0404e9cd 9e3ecb66 2395b442' +
		         '9c648139 053fb521 f828af60 6b4d3dba' +
		         'a14b5e77 efe75928 fe1dc127 a2ffa8de' +
		         '3348b3c1 856a429b f97e7e31 c2e5bd66' +
		    '0118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9' +
		         '98f54449 579b4468 17afbd17 273e662c' +
		         '97ee7299 5ef42640 c550b901 3fad0761' +
		         '353c7086 a272c240 88be9476 9fd16650').
		    replace(/ /g, ''), 'hex')
	}
};

module.exports = {
	info: algInfo,
	privInfo: algPrivInfo,
	hashAlgs: hashAlgs,
	curves: curves
};


/***/ }),
/* 339 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* eslint-disable node/no-deprecated-api */



var buffer = __webpack_require__(324)
var Buffer = buffer.Buffer

var safer = {}

var key

for (key in buffer) {
  if (!buffer.hasOwnProperty(key)) continue
  if (key === 'SlowBuffer' || key === 'Buffer') continue
  safer[key] = buffer[key]
}

var Safer = safer.Buffer = {}
for (key in Buffer) {
  if (!Buffer.hasOwnProperty(key)) continue
  if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue
  Safer[key] = Buffer[key]
}

safer.Buffer.prototype = Buffer.prototype

if (!Safer.from || Safer.from === Uint8Array.from) {
  Safer.from = function (value, encodingOrOffset, length) {
    if (typeof value === 'number') {
      throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value)
    }
    if (value && typeof value.length === 'undefined') {
      throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)
    }
    return Buffer(value, encodingOrOffset, length)
  }
}

if (!Safer.alloc) {
  Safer.alloc = function (size, fill, encoding) {
    if (typeof size !== 'number') {
      throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size)
    }
    if (size < 0 || size >= 2 * (1 << 30)) {
      throw new RangeError('The value "' + size + '" is invalid for option "size"')
    }
    var buf = Buffer(size)
    if (!fill || fill.length === 0) {
      buf.fill(0)
    } else if (typeof encoding === 'string') {
      buf.fill(fill, encoding)
    } else {
      buf.fill(fill)
    }
    return buf
  }
}

if (!safer.kStringMaxLength) {
  try {
    safer.kStringMaxLength = process.binding('buffer').kStringMaxLength
  } catch (e) {
    // we can't determine kStringMaxLength in environments where process.binding
    // is unsupported, so let's not set it
  }
}

if (!safer.constants) {
  safer.constants = {
    MAX_LENGTH: safer.kMaxLength
  }
  if (safer.kStringMaxLength) {
    safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength
  }
}

module.exports = safer


/***/ }),
/* 340 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2018 Joyent, Inc.

module.exports = Fingerprint;

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var crypto = __webpack_require__(57);
var errs = __webpack_require__(341);
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);
var Certificate = __webpack_require__(369);
var utils = __webpack_require__(344);

var FingerprintFormatError = errs.FingerprintFormatError;
var InvalidAlgorithmError = errs.InvalidAlgorithmError;

function Fingerprint(opts) {
	assert.object(opts, 'options');
	assert.string(opts.type, 'options.type');
	assert.buffer(opts.hash, 'options.hash');
	assert.string(opts.algorithm, 'options.algorithm');

	this.algorithm = opts.algorithm.toLowerCase();
	if (algs.hashAlgs[this.algorithm] !== true)
		throw (new InvalidAlgorithmError(this.algorithm));

	this.hash = opts.hash;
	this.type = opts.type;
	this.hashType = opts.hashType;
}

Fingerprint.prototype.toString = function (format) {
	if (format === undefined) {
		if (this.algorithm === 'md5' || this.hashType === 'spki')
			format = 'hex';
		else
			format = 'base64';
	}
	assert.string(format);

	switch (format) {
	case 'hex':
		if (this.hashType === 'spki')
			return (this.hash.toString('hex'));
		return (addColons(this.hash.toString('hex')));
	case 'base64':
		if (this.hashType === 'spki')
			return (this.hash.toString('base64'));
		return (sshBase64Format(this.algorithm,
		    this.hash.toString('base64')));
	default:
		throw (new FingerprintFormatError(undefined, format));
	}
};

Fingerprint.prototype.matches = function (other) {
	assert.object(other, 'key or certificate');
	if (this.type === 'key' && this.hashType !== 'ssh') {
		utils.assertCompatible(other, Key, [1, 7], 'key with spki');
		if (PrivateKey.isPrivateKey(other)) {
			utils.assertCompatible(other, PrivateKey, [1, 6],
			    'privatekey with spki support');
		}
	} else if (this.type === 'key') {
		utils.assertCompatible(other, Key, [1, 0], 'key');
	} else {
		utils.assertCompatible(other, Certificate, [1, 0],
		    'certificate');
	}

	var theirHash = other.hash(this.algorithm, this.hashType);
	var theirHash2 = crypto.createHash(this.algorithm).
	    update(theirHash).digest('base64');

	if (this.hash2 === undefined)
		this.hash2 = crypto.createHash(this.algorithm).
		    update(this.hash).digest('base64');

	return (this.hash2 === theirHash2);
};

/*JSSTYLED*/
var base64RE = /^[A-Za-z0-9+\/=]+$/;
/*JSSTYLED*/
var hexRE = /^[a-fA-F0-9]+$/;

Fingerprint.parse = function (fp, options) {
	assert.string(fp, 'fingerprint');

	var alg, hash, enAlgs;
	if (Array.isArray(options)) {
		enAlgs = options;
		options = {};
	}
	assert.optionalObject(options, 'options');
	if (options === undefined)
		options = {};
	if (options.enAlgs !== undefined)
		enAlgs = options.enAlgs;
	if (options.algorithms !== undefined)
		enAlgs = options.algorithms;
	assert.optionalArrayOfString(enAlgs, 'algorithms');

	var hashType = 'ssh';
	if (options.hashType !== undefined)
		hashType = options.hashType;
	assert.string(hashType, 'options.hashType');

	var parts = fp.split(':');
	if (parts.length == 2) {
		alg = parts[0].toLowerCase();
		if (!base64RE.test(parts[1]))
			throw (new FingerprintFormatError(fp));
		try {
			hash = Buffer.from(parts[1], 'base64');
		} catch (e) {
			throw (new FingerprintFormatError(fp));
		}
	} else if (parts.length > 2) {
		alg = 'md5';
		if (parts[0].toLowerCase() === 'md5')
			parts = parts.slice(1);
		parts = parts.map(function (p) {
			while (p.length < 2)
				p = '0' + p;
			if (p.length > 2)
				throw (new FingerprintFormatError(fp));
			return (p);
		});
		parts = parts.join('');
		if (!hexRE.test(parts) || parts.length % 2 !== 0)
			throw (new FingerprintFormatError(fp));
		try {
			hash = Buffer.from(parts, 'hex');
		} catch (e) {
			throw (new FingerprintFormatError(fp));
		}
	} else {
		if (hexRE.test(fp)) {
			hash = Buffer.from(fp, 'hex');
		} else if (base64RE.test(fp)) {
			hash = Buffer.from(fp, 'base64');
		} else {
			throw (new FingerprintFormatError(fp));
		}

		switch (hash.length) {
		case 32:
			alg = 'sha256';
			break;
		case 16:
			alg = 'md5';
			break;
		case 20:
			alg = 'sha1';
			break;
		case 64:
			alg = 'sha512';
			break;
		default:
			throw (new FingerprintFormatError(fp));
		}

		/* Plain hex/base64: guess it's probably SPKI unless told. */
		if (options.hashType === undefined)
			hashType = 'spki';
	}

	if (alg === undefined)
		throw (new FingerprintFormatError(fp));

	if (algs.hashAlgs[alg] === undefined)
		throw (new InvalidAlgorithmError(alg));

	if (enAlgs !== undefined) {
		enAlgs = enAlgs.map(function (a) { return a.toLowerCase(); });
		if (enAlgs.indexOf(alg) === -1)
			throw (new InvalidAlgorithmError(alg));
	}

	return (new Fingerprint({
		algorithm: alg,
		hash: hash,
		type: options.type || 'key',
		hashType: hashType
	}));
};

function addColons(s) {
	/*JSSTYLED*/
	return (s.replace(/(.{2})(?=.)/g, '$1:'));
}

function base64Strip(s) {
	/*JSSTYLED*/
	return (s.replace(/=*$/, ''));
}

function sshBase64Format(alg, h) {
	return (alg.toUpperCase() + ':' + base64Strip(h));
}

Fingerprint.isFingerprint = function (obj, ver) {
	return (utils.isCompatible(obj, Fingerprint, ver));
};

/*
 * API versions for Fingerprint:
 * [1,0] -- initial ver
 * [1,1] -- first tagged ver
 * [1,2] -- hashType and spki support
 */
Fingerprint.prototype._sshpkApiVersion = [1, 2];

Fingerprint._oldVersionDetect = function (obj) {
	assert.func(obj.toString);
	assert.func(obj.matches);
	return ([1, 0]);
};


/***/ }),
/* 341 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

var assert = __webpack_require__(334);
var util = __webpack_require__(113);

function FingerprintFormatError(fp, format) {
	if (Error.captureStackTrace)
		Error.captureStackTrace(this, FingerprintFormatError);
	this.name = 'FingerprintFormatError';
	this.fingerprint = fp;
	this.format = format;
	this.message = 'Fingerprint format is not supported, or is invalid: ';
	if (fp !== undefined)
		this.message += ' fingerprint = ' + fp;
	if (format !== undefined)
		this.message += ' format = ' + format;
}
util.inherits(FingerprintFormatError, Error);

function InvalidAlgorithmError(alg) {
	if (Error.captureStackTrace)
		Error.captureStackTrace(this, InvalidAlgorithmError);
	this.name = 'InvalidAlgorithmError';
	this.algorithm = alg;
	this.message = 'Algorithm "' + alg + '" is not supported';
}
util.inherits(InvalidAlgorithmError, Error);

function KeyParseError(name, format, innerErr) {
	if (Error.captureStackTrace)
		Error.captureStackTrace(this, KeyParseError);
	this.name = 'KeyParseError';
	this.format = format;
	this.keyName = name;
	this.innerErr = innerErr;
	this.message = 'Failed to parse ' + name + ' as a valid ' + format +
	    ' format key: ' + innerErr.message;
}
util.inherits(KeyParseError, Error);

function SignatureParseError(type, format, innerErr) {
	if (Error.captureStackTrace)
		Error.captureStackTrace(this, SignatureParseError);
	this.name = 'SignatureParseError';
	this.type = type;
	this.format = format;
	this.innerErr = innerErr;
	this.message = 'Failed to parse the given data as a ' + type +
	    ' signature in ' + format + ' format: ' + innerErr.message;
}
util.inherits(SignatureParseError, Error);

function CertificateParseError(name, format, innerErr) {
	if (Error.captureStackTrace)
		Error.captureStackTrace(this, CertificateParseError);
	this.name = 'CertificateParseError';
	this.format = format;
	this.certName = name;
	this.innerErr = innerErr;
	this.message = 'Failed to parse ' + name + ' as a valid ' + format +
	    ' format certificate: ' + innerErr.message;
}
util.inherits(CertificateParseError, Error);

function KeyEncryptedError(name, format) {
	if (Error.captureStackTrace)
		Error.captureStackTrace(this, KeyEncryptedError);
	this.name = 'KeyEncryptedError';
	this.format = format;
	this.keyName = name;
	this.message = 'The ' + format + ' format key ' + name + ' is ' +
	    'encrypted (password-protected), and no passphrase was ' +
	    'provided in `options`';
}
util.inherits(KeyEncryptedError, Error);

module.exports = {
	FingerprintFormatError: FingerprintFormatError,
	InvalidAlgorithmError: InvalidAlgorithmError,
	KeyParseError: KeyParseError,
	SignatureParseError: SignatureParseError,
	KeyEncryptedError: KeyEncryptedError,
	CertificateParseError: CertificateParseError
};


/***/ }),
/* 342 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2017 Joyent, Inc.

module.exports = PrivateKey;

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var crypto = __webpack_require__(57);
var Fingerprint = __webpack_require__(340);
var Signature = __webpack_require__(343);
var errs = __webpack_require__(341);
var util = __webpack_require__(113);
var utils = __webpack_require__(344);
var dhe = __webpack_require__(355);
var generateECDSA = dhe.generateECDSA;
var generateED25519 = dhe.generateED25519;
var edCompat = __webpack_require__(358);
var nacl = __webpack_require__(353);

var Key = __webpack_require__(337);

var InvalidAlgorithmError = errs.InvalidAlgorithmError;
var KeyParseError = errs.KeyParseError;
var KeyEncryptedError = errs.KeyEncryptedError;

var formats = {};
formats['auto'] = __webpack_require__(359);
formats['pem'] = __webpack_require__(360);
formats['pkcs1'] = __webpack_require__(361);
formats['pkcs8'] = __webpack_require__(362);
formats['rfc4253'] = __webpack_require__(364);
formats['ssh-private'] = __webpack_require__(363);
formats['openssh'] = formats['ssh-private'];
formats['ssh'] = formats['ssh-private'];
formats['dnssec'] = __webpack_require__(367);

function PrivateKey(opts) {
	assert.object(opts, 'options');
	Key.call(this, opts);

	this._pubCache = undefined;
}
util.inherits(PrivateKey, Key);

PrivateKey.formats = formats;

PrivateKey.prototype.toBuffer = function (format, options) {
	if (format === undefined)
		format = 'pkcs1';
	assert.string(format, 'format');
	assert.object(formats[format], 'formats[format]');
	assert.optionalObject(options, 'options');

	return (formats[format].write(this, options));
};

PrivateKey.prototype.hash = function (algo, type) {
	return (this.toPublic().hash(algo, type));
};

PrivateKey.prototype.fingerprint = function (algo, type) {
	return (this.toPublic().fingerprint(algo, type));
};

PrivateKey.prototype.toPublic = function () {
	if (this._pubCache)
		return (this._pubCache);

	var algInfo = algs.info[this.type];
	var pubParts = [];
	for (var i = 0; i < algInfo.parts.length; ++i) {
		var p = algInfo.parts[i];
		pubParts.push(this.part[p]);
	}

	this._pubCache = new Key({
		type: this.type,
		source: this,
		parts: pubParts
	});
	if (this.comment)
		this._pubCache.comment = this.comment;
	return (this._pubCache);
};

PrivateKey.prototype.derive = function (newType) {
	assert.string(newType, 'type');
	var priv, pub, pair;

	if (this.type === 'ed25519' && newType === 'curve25519') {
		priv = this.part.k.data;
		if (priv[0] === 0x00)
			priv = priv.slice(1);

		pair = nacl.box.keyPair.fromSecretKey(new Uint8Array(priv));
		pub = Buffer.from(pair.publicKey);

		return (new PrivateKey({
			type: 'curve25519',
			parts: [
				{ name: 'A', data: utils.mpNormalize(pub) },
				{ name: 'k', data: utils.mpNormalize(priv) }
			]
		}));
	} else if (this.type === 'curve25519' && newType === 'ed25519') {
		priv = this.part.k.data;
		if (priv[0] === 0x00)
			priv = priv.slice(1);

		pair = nacl.sign.keyPair.fromSeed(new Uint8Array(priv));
		pub = Buffer.from(pair.publicKey);

		return (new PrivateKey({
			type: 'ed25519',
			parts: [
				{ name: 'A', data: utils.mpNormalize(pub) },
				{ name: 'k', data: utils.mpNormalize(priv) }
			]
		}));
	}
	throw (new Error('Key derivation not supported from ' + this.type +
	    ' to ' + newType));
};

PrivateKey.prototype.createVerify = function (hashAlgo) {
	return (this.toPublic().createVerify(hashAlgo));
};

PrivateKey.prototype.createSign = function (hashAlgo) {
	if (hashAlgo === undefined)
		hashAlgo = this.defaultHashAlgorithm();
	assert.string(hashAlgo, 'hash algorithm');

	/* ED25519 is not supported by OpenSSL, use a javascript impl. */
	if (this.type === 'ed25519' && edCompat !== undefined)
		return (new edCompat.Signer(this, hashAlgo));
	if (this.type === 'curve25519')
		throw (new Error('Curve25519 keys are not suitable for ' +
		    'signing or verification'));

	var v, nm, err;
	try {
		nm = hashAlgo.toUpperCase();
		v = crypto.createSign(nm);
	} catch (e) {
		err = e;
	}
	if (v === undefined || (err instanceof Error &&
	    err.message.match(/Unknown message digest/))) {
		nm = 'RSA-';
		nm += hashAlgo.toUpperCase();
		v = crypto.createSign(nm);
	}
	assert.ok(v, 'failed to create verifier');
	var oldSign = v.sign.bind(v);
	var key = this.toBuffer('pkcs1');
	var type = this.type;
	var curve = this.curve;
	v.sign = function () {
		var sig = oldSign(key);
		if (typeof (sig) === 'string')
			sig = Buffer.from(sig, 'binary');
		sig = Signature.parse(sig, type, 'asn1');
		sig.hashAlgorithm = hashAlgo;
		sig.curve = curve;
		return (sig);
	};
	return (v);
};

PrivateKey.parse = function (data, format, options) {
	if (typeof (data) !== 'string')
		assert.buffer(data, 'data');
	if (format === undefined)
		format = 'auto';
	assert.string(format, 'format');
	if (typeof (options) === 'string')
		options = { filename: options };
	assert.optionalObject(options, 'options');
	if (options === undefined)
		options = {};
	assert.optionalString(options.filename, 'options.filename');
	if (options.filename === undefined)
		options.filename = '(unnamed)';

	assert.object(formats[format], 'formats[format]');

	try {
		var k = formats[format].read(data, options);
		assert.ok(k instanceof PrivateKey, 'key is not a private key');
		if (!k.comment)
			k.comment = options.filename;
		return (k);
	} catch (e) {
		if (e.name === 'KeyEncryptedError')
			throw (e);
		throw (new KeyParseError(options.filename, format, e));
	}
};

PrivateKey.isPrivateKey = function (obj, ver) {
	return (utils.isCompatible(obj, PrivateKey, ver));
};

PrivateKey.generate = function (type, options) {
	if (options === undefined)
		options = {};
	assert.object(options, 'options');

	switch (type) {
	case 'ecdsa':
		if (options.curve === undefined)
			options.curve = 'nistp256';
		assert.string(options.curve, 'options.curve');
		return (generateECDSA(options.curve));
	case 'ed25519':
		return (generateED25519());
	default:
		throw (new Error('Key generation not supported with key ' +
		    'type "' + type + '"'));
	}
};

/*
 * API versions for PrivateKey:
 * [1,0] -- initial ver
 * [1,1] -- added auto, pkcs[18], openssh/ssh-private formats
 * [1,2] -- added defaultHashAlgorithm
 * [1,3] -- added derive, ed, createDH
 * [1,4] -- first tagged version
 * [1,5] -- changed ed25519 part names and format
 * [1,6] -- type arguments for hash() and fingerprint()
 */
PrivateKey.prototype._sshpkApiVersion = [1, 6];

PrivateKey._oldVersionDetect = function (obj) {
	assert.func(obj.toPublic);
	assert.func(obj.createSign);
	if (obj.derive)
		return ([1, 3]);
	if (obj.defaultHashAlgorithm)
		return ([1, 2]);
	if (obj.formats['auto'])
		return ([1, 1]);
	return ([1, 0]);
};


/***/ }),
/* 343 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

module.exports = Signature;

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var crypto = __webpack_require__(57);
var errs = __webpack_require__(341);
var utils = __webpack_require__(344);
var asn1 = __webpack_require__(345);
var SSHBuffer = __webpack_require__(354);

var InvalidAlgorithmError = errs.InvalidAlgorithmError;
var SignatureParseError = errs.SignatureParseError;

function Signature(opts) {
	assert.object(opts, 'options');
	assert.arrayOfObject(opts.parts, 'options.parts');
	assert.string(opts.type, 'options.type');

	var partLookup = {};
	for (var i = 0; i < opts.parts.length; ++i) {
		var part = opts.parts[i];
		partLookup[part.name] = part;
	}

	this.type = opts.type;
	this.hashAlgorithm = opts.hashAlgo;
	this.curve = opts.curve;
	this.parts = opts.parts;
	this.part = partLookup;
}

Signature.prototype.toBuffer = function (format) {
	if (format === undefined)
		format = 'asn1';
	assert.string(format, 'format');

	var buf;
	var stype = 'ssh-' + this.type;

	switch (this.type) {
	case 'rsa':
		switch (this.hashAlgorithm) {
		case 'sha256':
			stype = 'rsa-sha2-256';
			break;
		case 'sha512':
			stype = 'rsa-sha2-512';
			break;
		case 'sha1':
		case undefined:
			break;
		default:
			throw (new Error('SSH signature ' +
			    'format does not support hash ' +
			    'algorithm ' + this.hashAlgorithm));
		}
		if (format === 'ssh') {
			buf = new SSHBuffer({});
			buf.writeString(stype);
			buf.writePart(this.part.sig);
			return (buf.toBuffer());
		} else {
			return (this.part.sig.data);
		}
		break;

	case 'ed25519':
		if (format === 'ssh') {
			buf = new SSHBuffer({});
			buf.writeString(stype);
			buf.writePart(this.part.sig);
			return (buf.toBuffer());
		} else {
			return (this.part.sig.data);
		}
		break;

	case 'dsa':
	case 'ecdsa':
		var r, s;
		if (format === 'asn1') {
			var der = new asn1.BerWriter();
			der.startSequence();
			r = utils.mpNormalize(this.part.r.data);
			s = utils.mpNormalize(this.part.s.data);
			der.writeBuffer(r, asn1.Ber.Integer);
			der.writeBuffer(s, asn1.Ber.Integer);
			der.endSequence();
			return (der.buffer);
		} else if (format === 'ssh' && this.type === 'dsa') {
			buf = new SSHBuffer({});
			buf.writeString('ssh-dss');
			r = this.part.r.data;
			if (r.length > 20 && r[0] === 0x00)
				r = r.slice(1);
			s = this.part.s.data;
			if (s.length > 20 && s[0] === 0x00)
				s = s.slice(1);
			if ((this.hashAlgorithm &&
			    this.hashAlgorithm !== 'sha1') ||
			    r.length + s.length !== 40) {
				throw (new Error('OpenSSH only supports ' +
				    'DSA signatures with SHA1 hash'));
			}
			buf.writeBuffer(Buffer.concat([r, s]));
			return (buf.toBuffer());
		} else if (format === 'ssh' && this.type === 'ecdsa') {
			var inner = new SSHBuffer({});
			r = this.part.r.data;
			inner.writeBuffer(r);
			inner.writePart(this.part.s);

			buf = new SSHBuffer({});
			/* XXX: find a more proper way to do this? */
			var curve;
			if (r[0] === 0x00)
				r = r.slice(1);
			var sz = r.length * 8;
			if (sz === 256)
				curve = 'nistp256';
			else if (sz === 384)
				curve = 'nistp384';
			else if (sz === 528)
				curve = 'nistp521';
			buf.writeString('ecdsa-sha2-' + curve);
			buf.writeBuffer(inner.toBuffer());
			return (buf.toBuffer());
		}
		throw (new Error('Invalid signature format'));
	default:
		throw (new Error('Invalid signature data'));
	}
};

Signature.prototype.toString = function (format) {
	assert.optionalString(format, 'format');
	return (this.toBuffer(format).toString('base64'));
};

Signature.parse = function (data, type, format) {
	if (typeof (data) === 'string')
		data = Buffer.from(data, 'base64');
	assert.buffer(data, 'data');
	assert.string(format, 'format');
	assert.string(type, 'type');

	var opts = {};
	opts.type = type.toLowerCase();
	opts.parts = [];

	try {
		assert.ok(data.length > 0, 'signature must not be empty');
		switch (opts.type) {
		case 'rsa':
			return (parseOneNum(data, type, format, opts));
		case 'ed25519':
			return (parseOneNum(data, type, format, opts));

		case 'dsa':
		case 'ecdsa':
			if (format === 'asn1')
				return (parseDSAasn1(data, type, format, opts));
			else if (opts.type === 'dsa')
				return (parseDSA(data, type, format, opts));
			else
				return (parseECDSA(data, type, format, opts));

		default:
			throw (new InvalidAlgorithmError(type));
		}

	} catch (e) {
		if (e instanceof InvalidAlgorithmError)
			throw (e);
		throw (new SignatureParseError(type, format, e));
	}
};

function parseOneNum(data, type, format, opts) {
	if (format === 'ssh') {
		try {
			var buf = new SSHBuffer({buffer: data});
			var head = buf.readString();
		} catch (e) {
			/* fall through */
		}
		if (buf !== undefined) {
			var msg = 'SSH signature does not match expected ' +
			    'type (expected ' + type + ', got ' + head + ')';
			switch (head) {
			case 'ssh-rsa':
				assert.strictEqual(type, 'rsa', msg);
				opts.hashAlgo = 'sha1';
				break;
			case 'rsa-sha2-256':
				assert.strictEqual(type, 'rsa', msg);
				opts.hashAlgo = 'sha256';
				break;
			case 'rsa-sha2-512':
				assert.strictEqual(type, 'rsa', msg);
				opts.hashAlgo = 'sha512';
				break;
			case 'ssh-ed25519':
				assert.strictEqual(type, 'ed25519', msg);
				opts.hashAlgo = 'sha512';
				break;
			default:
				throw (new Error('Unknown SSH signature ' +
				    'type: ' + head));
			}
			var sig = buf.readPart();
			assert.ok(buf.atEnd(), 'extra trailing bytes');
			sig.name = 'sig';
			opts.parts.push(sig);
			return (new Signature(opts));
		}
	}
	opts.parts.push({name: 'sig', data: data});
	return (new Signature(opts));
}

function parseDSAasn1(data, type, format, opts) {
	var der = new asn1.BerReader(data);
	der.readSequence();
	var r = der.readString(asn1.Ber.Integer, true);
	var s = der.readString(asn1.Ber.Integer, true);

	opts.parts.push({name: 'r', data: utils.mpNormalize(r)});
	opts.parts.push({name: 's', data: utils.mpNormalize(s)});

	return (new Signature(opts));
}

function parseDSA(data, type, format, opts) {
	if (data.length != 40) {
		var buf = new SSHBuffer({buffer: data});
		var d = buf.readBuffer();
		if (d.toString('ascii') === 'ssh-dss')
			d = buf.readBuffer();
		assert.ok(buf.atEnd(), 'extra trailing bytes');
		assert.strictEqual(d.length, 40, 'invalid inner length');
		data = d;
	}
	opts.parts.push({name: 'r', data: data.slice(0, 20)});
	opts.parts.push({name: 's', data: data.slice(20, 40)});
	return (new Signature(opts));
}

function parseECDSA(data, type, format, opts) {
	var buf = new SSHBuffer({buffer: data});

	var r, s;
	var inner = buf.readBuffer();
	var stype = inner.toString('ascii');
	if (stype.slice(0, 6) === 'ecdsa-') {
		var parts = stype.split('-');
		assert.strictEqual(parts[0], 'ecdsa');
		assert.strictEqual(parts[1], 'sha2');
		opts.curve = parts[2];
		switch (opts.curve) {
		case 'nistp256':
			opts.hashAlgo = 'sha256';
			break;
		case 'nistp384':
			opts.hashAlgo = 'sha384';
			break;
		case 'nistp521':
			opts.hashAlgo = 'sha512';
			break;
		default:
			throw (new Error('Unsupported ECDSA curve: ' +
			    opts.curve));
		}
		inner = buf.readBuffer();
		assert.ok(buf.atEnd(), 'extra trailing bytes on outer');
		buf = new SSHBuffer({buffer: inner});
		r = buf.readPart();
	} else {
		r = {data: inner};
	}

	s = buf.readPart();
	assert.ok(buf.atEnd(), 'extra trailing bytes');

	r.name = 'r';
	s.name = 's';

	opts.parts.push(r);
	opts.parts.push(s);
	return (new Signature(opts));
}

Signature.isSignature = function (obj, ver) {
	return (utils.isCompatible(obj, Signature, ver));
};

/*
 * API versions for Signature:
 * [1,0] -- initial ver
 * [2,0] -- support for rsa in full ssh format, compat with sshpk-agent
 *          hashAlgorithm property
 * [2,1] -- first tagged version
 */
Signature.prototype._sshpkApiVersion = [2, 1];

Signature._oldVersionDetect = function (obj) {
	assert.func(obj.toBuffer);
	if (obj.hasOwnProperty('hashAlgorithm'))
		return ([2, 0]);
	return ([1, 0]);
};


/***/ }),
/* 344 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

module.exports = {
	bufferSplit: bufferSplit,
	addRSAMissing: addRSAMissing,
	calculateDSAPublic: calculateDSAPublic,
	calculateED25519Public: calculateED25519Public,
	calculateX25519Public: calculateX25519Public,
	mpNormalize: mpNormalize,
	mpDenormalize: mpDenormalize,
	ecNormalize: ecNormalize,
	countZeros: countZeros,
	assertCompatible: assertCompatible,
	isCompatible: isCompatible,
	opensslKeyDeriv: opensslKeyDeriv,
	opensshCipherInfo: opensshCipherInfo,
	publicFromPrivateECDSA: publicFromPrivateECDSA,
	zeroPadToLength: zeroPadToLength,
	writeBitString: writeBitString,
	readBitString: readBitString,
	pbkdf2: pbkdf2
};

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var PrivateKey = __webpack_require__(342);
var Key = __webpack_require__(337);
var crypto = __webpack_require__(57);
var algs = __webpack_require__(338);
var asn1 = __webpack_require__(345);

var ec = __webpack_require__(351);
var jsbn = __webpack_require__(352).BigInteger;
var nacl = __webpack_require__(353);

var MAX_CLASS_DEPTH = 3;

function isCompatible(obj, klass, needVer) {
	if (obj === null || typeof (obj) !== 'object')
		return (false);
	if (needVer === undefined)
		needVer = klass.prototype._sshpkApiVersion;
	if (obj instanceof klass &&
	    klass.prototype._sshpkApiVersion[0] == needVer[0])
		return (true);
	var proto = Object.getPrototypeOf(obj);
	var depth = 0;
	while (proto.constructor.name !== klass.name) {
		proto = Object.getPrototypeOf(proto);
		if (!proto || ++depth > MAX_CLASS_DEPTH)
			return (false);
	}
	if (proto.constructor.name !== klass.name)
		return (false);
	var ver = proto._sshpkApiVersion;
	if (ver === undefined)
		ver = klass._oldVersionDetect(obj);
	if (ver[0] != needVer[0] || ver[1] < needVer[1])
		return (false);
	return (true);
}

function assertCompatible(obj, klass, needVer, name) {
	if (name === undefined)
		name = 'object';
	assert.ok(obj, name + ' must not be null');
	assert.object(obj, name + ' must be an object');
	if (needVer === undefined)
		needVer = klass.prototype._sshpkApiVersion;
	if (obj instanceof klass &&
	    klass.prototype._sshpkApiVersion[0] == needVer[0])
		return;
	var proto = Object.getPrototypeOf(obj);
	var depth = 0;
	while (proto.constructor.name !== klass.name) {
		proto = Object.getPrototypeOf(proto);
		assert.ok(proto && ++depth <= MAX_CLASS_DEPTH,
		    name + ' must be a ' + klass.name + ' instance');
	}
	assert.strictEqual(proto.constructor.name, klass.name,
	    name + ' must be a ' + klass.name + ' instance');
	var ver = proto._sshpkApiVersion;
	if (ver === undefined)
		ver = klass._oldVersionDetect(obj);
	assert.ok(ver[0] == needVer[0] && ver[1] >= needVer[1],
	    name + ' must be compatible with ' + klass.name + ' klass ' +
	    'version ' + needVer[0] + '.' + needVer[1]);
}

var CIPHER_LEN = {
	'des-ede3-cbc': { key: 24, iv: 8 },
	'aes-128-cbc': { key: 16, iv: 16 },
	'aes-256-cbc': { key: 32, iv: 16 }
};
var PKCS5_SALT_LEN = 8;

function opensslKeyDeriv(cipher, salt, passphrase, count) {
	assert.buffer(salt, 'salt');
	assert.buffer(passphrase, 'passphrase');
	assert.number(count, 'iteration count');

	var clen = CIPHER_LEN[cipher];
	assert.object(clen, 'supported cipher');

	salt = salt.slice(0, PKCS5_SALT_LEN);

	var D, D_prev, bufs;
	var material = Buffer.alloc(0);
	while (material.length < clen.key + clen.iv) {
		bufs = [];
		if (D_prev)
			bufs.push(D_prev);
		bufs.push(passphrase);
		bufs.push(salt);
		D = Buffer.concat(bufs);
		for (var j = 0; j < count; ++j)
			D = crypto.createHash('md5').update(D).digest();
		material = Buffer.concat([material, D]);
		D_prev = D;
	}

	return ({
	    key: material.slice(0, clen.key),
	    iv: material.slice(clen.key, clen.key + clen.iv)
	});
}

/* See: RFC2898 */
function pbkdf2(hashAlg, salt, iterations, size, passphrase) {
	var hkey = Buffer.alloc(salt.length + 4);
	salt.copy(hkey);

	var gen = 0, ts = [];
	var i = 1;
	while (gen < size) {
		var t = T(i++);
		gen += t.length;
		ts.push(t);
	}
	return (Buffer.concat(ts).slice(0, size));

	function T(I) {
		hkey.writeUInt32BE(I, hkey.length - 4);

		var hmac = crypto.createHmac(hashAlg, passphrase);
		hmac.update(hkey);

		var Ti = hmac.digest();
		var Uc = Ti;
		var c = 1;
		while (c++ < iterations) {
			hmac = crypto.createHmac(hashAlg, passphrase);
			hmac.update(Uc);
			Uc = hmac.digest();
			for (var x = 0; x < Ti.length; ++x)
				Ti[x] ^= Uc[x];
		}
		return (Ti);
	}
}

/* Count leading zero bits on a buffer */
function countZeros(buf) {
	var o = 0, obit = 8;
	while (o < buf.length) {
		var mask = (1 << obit);
		if ((buf[o] & mask) === mask)
			break;
		obit--;
		if (obit < 0) {
			o++;
			obit = 8;
		}
	}
	return (o*8 + (8 - obit) - 1);
}

function bufferSplit(buf, chr) {
	assert.buffer(buf);
	assert.string(chr);

	var parts = [];
	var lastPart = 0;
	var matches = 0;
	for (var i = 0; i < buf.length; ++i) {
		if (buf[i] === chr.charCodeAt(matches))
			++matches;
		else if (buf[i] === chr.charCodeAt(0))
			matches = 1;
		else
			matches = 0;

		if (matches >= chr.length) {
			var newPart = i + 1;
			parts.push(buf.slice(lastPart, newPart - matches));
			lastPart = newPart;
			matches = 0;
		}
	}
	if (lastPart <= buf.length)
		parts.push(buf.slice(lastPart, buf.length));

	return (parts);
}

function ecNormalize(buf, addZero) {
	assert.buffer(buf);
	if (buf[0] === 0x00 && buf[1] === 0x04) {
		if (addZero)
			return (buf);
		return (buf.slice(1));
	} else if (buf[0] === 0x04) {
		if (!addZero)
			return (buf);
	} else {
		while (buf[0] === 0x00)
			buf = buf.slice(1);
		if (buf[0] === 0x02 || buf[0] === 0x03)
			throw (new Error('Compressed elliptic curve points ' +
			    'are not supported'));
		if (buf[0] !== 0x04)
			throw (new Error('Not a valid elliptic curve point'));
		if (!addZero)
			return (buf);
	}
	var b = Buffer.alloc(buf.length + 1);
	b[0] = 0x0;
	buf.copy(b, 1);
	return (b);
}

function readBitString(der, tag) {
	if (tag === undefined)
		tag = asn1.Ber.BitString;
	var buf = der.readString(tag, true);
	assert.strictEqual(buf[0], 0x00, 'bit strings with unused bits are ' +
	    'not supported (0x' + buf[0].toString(16) + ')');
	return (buf.slice(1));
}

function writeBitString(der, buf, tag) {
	if (tag === undefined)
		tag = asn1.Ber.BitString;
	var b = Buffer.alloc(buf.length + 1);
	b[0] = 0x00;
	buf.copy(b, 1);
	der.writeBuffer(b, tag);
}

function mpNormalize(buf) {
	assert.buffer(buf);
	while (buf.length > 1 && buf[0] === 0x00 && (buf[1] & 0x80) === 0x00)
		buf = buf.slice(1);
	if ((buf[0] & 0x80) === 0x80) {
		var b = Buffer.alloc(buf.length + 1);
		b[0] = 0x00;
		buf.copy(b, 1);
		buf = b;
	}
	return (buf);
}

function mpDenormalize(buf) {
	assert.buffer(buf);
	while (buf.length > 1 && buf[0] === 0x00)
		buf = buf.slice(1);
	return (buf);
}

function zeroPadToLength(buf, len) {
	assert.buffer(buf);
	assert.number(len);
	while (buf.length > len) {
		assert.equal(buf[0], 0x00);
		buf = buf.slice(1);
	}
	while (buf.length < len) {
		var b = Buffer.alloc(buf.length + 1);
		b[0] = 0x00;
		buf.copy(b, 1);
		buf = b;
	}
	return (buf);
}

function bigintToMpBuf(bigint) {
	var buf = Buffer.from(bigint.toByteArray());
	buf = mpNormalize(buf);
	return (buf);
}

function calculateDSAPublic(g, p, x) {
	assert.buffer(g);
	assert.buffer(p);
	assert.buffer(x);
	g = new jsbn(g);
	p = new jsbn(p);
	x = new jsbn(x);
	var y = g.modPow(x, p);
	var ybuf = bigintToMpBuf(y);
	return (ybuf);
}

function calculateED25519Public(k) {
	assert.buffer(k);

	var kp = nacl.sign.keyPair.fromSeed(new Uint8Array(k));
	return (Buffer.from(kp.publicKey));
}

function calculateX25519Public(k) {
	assert.buffer(k);

	var kp = nacl.box.keyPair.fromSeed(new Uint8Array(k));
	return (Buffer.from(kp.publicKey));
}

function addRSAMissing(key) {
	assert.object(key);
	assertCompatible(key, PrivateKey, [1, 1]);

	var d = new jsbn(key.part.d.data);
	var buf;

	if (!key.part.dmodp) {
		var p = new jsbn(key.part.p.data);
		var dmodp = d.mod(p.subtract(1));

		buf = bigintToMpBuf(dmodp);
		key.part.dmodp = {name: 'dmodp', data: buf};
		key.parts.push(key.part.dmodp);
	}
	if (!key.part.dmodq) {
		var q = new jsbn(key.part.q.data);
		var dmodq = d.mod(q.subtract(1));

		buf = bigintToMpBuf(dmodq);
		key.part.dmodq = {name: 'dmodq', data: buf};
		key.parts.push(key.part.dmodq);
	}
}

function publicFromPrivateECDSA(curveName, priv) {
	assert.string(curveName, 'curveName');
	assert.buffer(priv);
	var params = algs.curves[curveName];
	var p = new jsbn(params.p);
	var a = new jsbn(params.a);
	var b = new jsbn(params.b);
	var curve = new ec.ECCurveFp(p, a, b);
	var G = curve.decodePointHex(params.G.toString('hex'));

	var d = new jsbn(mpNormalize(priv));
	var pub = G.multiply(d);
	pub = Buffer.from(curve.encodePointHex(pub), 'hex');

	var parts = [];
	parts.push({name: 'curve', data: Buffer.from(curveName)});
	parts.push({name: 'Q', data: pub});

	var key = new Key({type: 'ecdsa', curve: curve, parts: parts});
	return (key);
}

function opensshCipherInfo(cipher) {
	var inf = {};
	switch (cipher) {
	case '3des-cbc':
		inf.keySize = 24;
		inf.blockSize = 8;
		inf.opensslName = 'des-ede3-cbc';
		break;
	case 'blowfish-cbc':
		inf.keySize = 16;
		inf.blockSize = 8;
		inf.opensslName = 'bf-cbc';
		break;
	case 'aes128-cbc':
	case 'aes128-ctr':
	case 'aes128-gcm@openssh.com':
		inf.keySize = 16;
		inf.blockSize = 16;
		inf.opensslName = 'aes-128-' + cipher.slice(7, 10);
		break;
	case 'aes192-cbc':
	case 'aes192-ctr':
	case 'aes192-gcm@openssh.com':
		inf.keySize = 24;
		inf.blockSize = 16;
		inf.opensslName = 'aes-192-' + cipher.slice(7, 10);
		break;
	case 'aes256-cbc':
	case 'aes256-ctr':
	case 'aes256-gcm@openssh.com':
		inf.keySize = 32;
		inf.blockSize = 16;
		inf.opensslName = 'aes-256-' + cipher.slice(7, 10);
		break;
	default:
		throw (new Error(
		    'Unsupported openssl cipher "' + cipher + '"'));
	}
	return (inf);
}


/***/ }),
/* 345 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.

// If you have no idea what ASN.1 or BER is, see this:
// ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc

var Ber = __webpack_require__(346);



// --- Exported API

module.exports = {

  Ber: Ber,

  BerReader: Ber.Reader,

  BerWriter: Ber.Writer

};


/***/ }),
/* 346 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.

var errors = __webpack_require__(347);
var types = __webpack_require__(348);

var Reader = __webpack_require__(349);
var Writer = __webpack_require__(350);


// --- Exports

module.exports = {

  Reader: Reader,

  Writer: Writer

};

for (var t in types) {
  if (types.hasOwnProperty(t))
    module.exports[t] = types[t];
}
for (var e in errors) {
  if (errors.hasOwnProperty(e))
    module.exports[e] = errors[e];
}


/***/ }),
/* 347 */
/***/ (function(module, exports) {

// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.


module.exports = {

  newInvalidAsn1Error: function (msg) {
    var e = new Error();
    e.name = 'InvalidAsn1Error';
    e.message = msg || '';
    return e;
  }

};


/***/ }),
/* 348 */
/***/ (function(module, exports) {

// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.


module.exports = {
  EOC: 0,
  Boolean: 1,
  Integer: 2,
  BitString: 3,
  OctetString: 4,
  Null: 5,
  OID: 6,
  ObjectDescriptor: 7,
  External: 8,
  Real: 9, // float
  Enumeration: 10,
  PDV: 11,
  Utf8String: 12,
  RelativeOID: 13,
  Sequence: 16,
  Set: 17,
  NumericString: 18,
  PrintableString: 19,
  T61String: 20,
  VideotexString: 21,
  IA5String: 22,
  UTCTime: 23,
  GeneralizedTime: 24,
  GraphicString: 25,
  VisibleString: 26,
  GeneralString: 28,
  UniversalString: 29,
  CharacterString: 30,
  BMPString: 31,
  Constructor: 32,
  Context: 128
};


/***/ }),
/* 349 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.

var assert = __webpack_require__(114);
var Buffer = __webpack_require__(339).Buffer;

var ASN1 = __webpack_require__(348);
var errors = __webpack_require__(347);


// --- Globals

var newInvalidAsn1Error = errors.newInvalidAsn1Error;



// --- API

function Reader(data) {
  if (!data || !Buffer.isBuffer(data))
    throw new TypeError('data must be a node Buffer');

  this._buf = data;
  this._size = data.length;

  // These hold the "current" state
  this._len = 0;
  this._offset = 0;
}

Object.defineProperty(Reader.prototype, 'length', {
  enumerable: true,
  get: function () { return (this._len); }
});

Object.defineProperty(Reader.prototype, 'offset', {
  enumerable: true,
  get: function () { return (this._offset); }
});

Object.defineProperty(Reader.prototype, 'remain', {
  get: function () { return (this._size - this._offset); }
});

Object.defineProperty(Reader.prototype, 'buffer', {
  get: function () { return (this._buf.slice(this._offset)); }
});


/**
 * Reads a single byte and advances offset; you can pass in `true` to make this
 * a "peek" operation (i.e., get the byte, but don't advance the offset).
 *
 * @param {Boolean} peek true means don't move offset.
 * @return {Number} the next byte, null if not enough data.
 */
Reader.prototype.readByte = function (peek) {
  if (this._size - this._offset < 1)
    return null;

  var b = this._buf[this._offset] & 0xff;

  if (!peek)
    this._offset += 1;

  return b;
};


Reader.prototype.peek = function () {
  return this.readByte(true);
};


/**
 * Reads a (potentially) variable length off the BER buffer.  This call is
 * not really meant to be called directly, as callers have to manipulate
 * the internal buffer afterwards.
 *
 * As a result of this call, you can call `Reader.length`, until the
 * next thing called that does a readLength.
 *
 * @return {Number} the amount of offset to advance the buffer.
 * @throws {InvalidAsn1Error} on bad ASN.1
 */
Reader.prototype.readLength = function (offset) {
  if (offset === undefined)
    offset = this._offset;

  if (offset >= this._size)
    return null;

  var lenB = this._buf[offset++] & 0xff;
  if (lenB === null)
    return null;

  if ((lenB & 0x80) === 0x80) {
    lenB &= 0x7f;

    if (lenB === 0)
      throw newInvalidAsn1Error('Indefinite length not supported');

    if (lenB > 4)
      throw newInvalidAsn1Error('encoding too long');

    if (this._size - offset < lenB)
      return null;

    this._len = 0;
    for (var i = 0; i < lenB; i++)
      this._len = (this._len << 8) + (this._buf[offset++] & 0xff);

  } else {
    // Wasn't a variable length
    this._len = lenB;
  }

  return offset;
};


/**
 * Parses the next sequence in this BER buffer.
 *
 * To get the length of the sequence, call `Reader.length`.
 *
 * @return {Number} the sequence's tag.
 */
Reader.prototype.readSequence = function (tag) {
  var seq = this.peek();
  if (seq === null)
    return null;
  if (tag !== undefined && tag !== seq)
    throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
                              ': got 0x' + seq.toString(16));

  var o = this.readLength(this._offset + 1); // stored in `length`
  if (o === null)
    return null;

  this._offset = o;
  return seq;
};


Reader.prototype.readInt = function () {
  return this._readTag(ASN1.Integer);
};


Reader.prototype.readBoolean = function () {
  return (this._readTag(ASN1.Boolean) === 0 ? false : true);
};


Reader.prototype.readEnumeration = function () {
  return this._readTag(ASN1.Enumeration);
};


Reader.prototype.readString = function (tag, retbuf) {
  if (!tag)
    tag = ASN1.OctetString;

  var b = this.peek();
  if (b === null)
    return null;

  if (b !== tag)
    throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
                              ': got 0x' + b.toString(16));

  var o = this.readLength(this._offset + 1); // stored in `length`

  if (o === null)
    return null;

  if (this.length > this._size - o)
    return null;

  this._offset = o;

  if (this.length === 0)
    return retbuf ? Buffer.alloc(0) : '';

  var str = this._buf.slice(this._offset, this._offset + this.length);
  this._offset += this.length;

  return retbuf ? str : str.toString('utf8');
};

Reader.prototype.readOID = function (tag) {
  if (!tag)
    tag = ASN1.OID;

  var b = this.readString(tag, true);
  if (b === null)
    return null;

  var values = [];
  var value = 0;

  for (var i = 0; i < b.length; i++) {
    var byte = b[i] & 0xff;

    value <<= 7;
    value += byte & 0x7f;
    if ((byte & 0x80) === 0) {
      values.push(value);
      value = 0;
    }
  }

  value = values.shift();
  values.unshift(value % 40);
  values.unshift((value / 40) >> 0);

  return values.join('.');
};


Reader.prototype._readTag = function (tag) {
  assert.ok(tag !== undefined);

  var b = this.peek();

  if (b === null)
    return null;

  if (b !== tag)
    throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
                              ': got 0x' + b.toString(16));

  var o = this.readLength(this._offset + 1); // stored in `length`
  if (o === null)
    return null;

  if (this.length > 4)
    throw newInvalidAsn1Error('Integer too long: ' + this.length);

  if (this.length > this._size - o)
    return null;
  this._offset = o;

  var fb = this._buf[this._offset];
  var value = 0;

  for (var i = 0; i < this.length; i++) {
    value <<= 8;
    value |= (this._buf[this._offset++] & 0xff);
  }

  if ((fb & 0x80) === 0x80 && i !== 4)
    value -= (1 << (i * 8));

  return value >> 0;
};



// --- Exported API

module.exports = Reader;


/***/ }),
/* 350 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.

var assert = __webpack_require__(114);
var Buffer = __webpack_require__(339).Buffer;
var ASN1 = __webpack_require__(348);
var errors = __webpack_require__(347);


// --- Globals

var newInvalidAsn1Error = errors.newInvalidAsn1Error;

var DEFAULT_OPTS = {
  size: 1024,
  growthFactor: 8
};


// --- Helpers

function merge(from, to) {
  assert.ok(from);
  assert.equal(typeof (from), 'object');
  assert.ok(to);
  assert.equal(typeof (to), 'object');

  var keys = Object.getOwnPropertyNames(from);
  keys.forEach(function (key) {
    if (to[key])
      return;

    var value = Object.getOwnPropertyDescriptor(from, key);
    Object.defineProperty(to, key, value);
  });

  return to;
}



// --- API

function Writer(options) {
  options = merge(DEFAULT_OPTS, options || {});

  this._buf = Buffer.alloc(options.size || 1024);
  this._size = this._buf.length;
  this._offset = 0;
  this._options = options;

  // A list of offsets in the buffer where we need to insert
  // sequence tag/len pairs.
  this._seq = [];
}

Object.defineProperty(Writer.prototype, 'buffer', {
  get: function () {
    if (this._seq.length)
      throw newInvalidAsn1Error(this._seq.length + ' unended sequence(s)');

    return (this._buf.slice(0, this._offset));
  }
});

Writer.prototype.writeByte = function (b) {
  if (typeof (b) !== 'number')
    throw new TypeError('argument must be a Number');

  this._ensure(1);
  this._buf[this._offset++] = b;
};


Writer.prototype.writeInt = function (i, tag) {
  if (typeof (i) !== 'number')
    throw new TypeError('argument must be a Number');
  if (typeof (tag) !== 'number')
    tag = ASN1.Integer;

  var sz = 4;

  while ((((i & 0xff800000) === 0) || ((i & 0xff800000) === 0xff800000 >> 0)) &&
        (sz > 1)) {
    sz--;
    i <<= 8;
  }

  if (sz > 4)
    throw newInvalidAsn1Error('BER ints cannot be > 0xffffffff');

  this._ensure(2 + sz);
  this._buf[this._offset++] = tag;
  this._buf[this._offset++] = sz;

  while (sz-- > 0) {
    this._buf[this._offset++] = ((i & 0xff000000) >>> 24);
    i <<= 8;
  }

};


Writer.prototype.writeNull = function () {
  this.writeByte(ASN1.Null);
  this.writeByte(0x00);
};


Writer.prototype.writeEnumeration = function (i, tag) {
  if (typeof (i) !== 'number')
    throw new TypeError('argument must be a Number');
  if (typeof (tag) !== 'number')
    tag = ASN1.Enumeration;

  return this.writeInt(i, tag);
};


Writer.prototype.writeBoolean = function (b, tag) {
  if (typeof (b) !== 'boolean')
    throw new TypeError('argument must be a Boolean');
  if (typeof (tag) !== 'number')
    tag = ASN1.Boolean;

  this._ensure(3);
  this._buf[this._offset++] = tag;
  this._buf[this._offset++] = 0x01;
  this._buf[this._offset++] = b ? 0xff : 0x00;
};


Writer.prototype.writeString = function (s, tag) {
  if (typeof (s) !== 'string')
    throw new TypeError('argument must be a string (was: ' + typeof (s) + ')');
  if (typeof (tag) !== 'number')
    tag = ASN1.OctetString;

  var len = Buffer.byteLength(s);
  this.writeByte(tag);
  this.writeLength(len);
  if (len) {
    this._ensure(len);
    this._buf.write(s, this._offset);
    this._offset += len;
  }
};


Writer.prototype.writeBuffer = function (buf, tag) {
  if (typeof (tag) !== 'number')
    throw new TypeError('tag must be a number');
  if (!Buffer.isBuffer(buf))
    throw new TypeError('argument must be a buffer');

  this.writeByte(tag);
  this.writeLength(buf.length);
  this._ensure(buf.length);
  buf.copy(this._buf, this._offset, 0, buf.length);
  this._offset += buf.length;
};


Writer.prototype.writeStringArray = function (strings) {
  if ((!strings instanceof Array))
    throw new TypeError('argument must be an Array[String]');

  var self = this;
  strings.forEach(function (s) {
    self.writeString(s);
  });
};

// This is really to solve DER cases, but whatever for now
Writer.prototype.writeOID = function (s, tag) {
  if (typeof (s) !== 'string')
    throw new TypeError('argument must be a string');
  if (typeof (tag) !== 'number')
    tag = ASN1.OID;

  if (!/^([0-9]+\.){3,}[0-9]+$/.test(s))
    throw new Error('argument is not a valid OID string');

  function encodeOctet(bytes, octet) {
    if (octet < 128) {
        bytes.push(octet);
    } else if (octet < 16384) {
        bytes.push((octet >>> 7) | 0x80);
        bytes.push(octet & 0x7F);
    } else if (octet < 2097152) {
      bytes.push((octet >>> 14) | 0x80);
      bytes.push(((octet >>> 7) | 0x80) & 0xFF);
      bytes.push(octet & 0x7F);
    } else if (octet < 268435456) {
      bytes.push((octet >>> 21) | 0x80);
      bytes.push(((octet >>> 14) | 0x80) & 0xFF);
      bytes.push(((octet >>> 7) | 0x80) & 0xFF);
      bytes.push(octet & 0x7F);
    } else {
      bytes.push(((octet >>> 28) | 0x80) & 0xFF);
      bytes.push(((octet >>> 21) | 0x80) & 0xFF);
      bytes.push(((octet >>> 14) | 0x80) & 0xFF);
      bytes.push(((octet >>> 7) | 0x80) & 0xFF);
      bytes.push(octet & 0x7F);
    }
  }

  var tmp = s.split('.');
  var bytes = [];
  bytes.push(parseInt(tmp[0], 10) * 40 + parseInt(tmp[1], 10));
  tmp.slice(2).forEach(function (b) {
    encodeOctet(bytes, parseInt(b, 10));
  });

  var self = this;
  this._ensure(2 + bytes.length);
  this.writeByte(tag);
  this.writeLength(bytes.length);
  bytes.forEach(function (b) {
    self.writeByte(b);
  });
};


Writer.prototype.writeLength = function (len) {
  if (typeof (len) !== 'number')
    throw new TypeError('argument must be a Number');

  this._ensure(4);

  if (len <= 0x7f) {
    this._buf[this._offset++] = len;
  } else if (len <= 0xff) {
    this._buf[this._offset++] = 0x81;
    this._buf[this._offset++] = len;
  } else if (len <= 0xffff) {
    this._buf[this._offset++] = 0x82;
    this._buf[this._offset++] = len >> 8;
    this._buf[this._offset++] = len;
  } else if (len <= 0xffffff) {
    this._buf[this._offset++] = 0x83;
    this._buf[this._offset++] = len >> 16;
    this._buf[this._offset++] = len >> 8;
    this._buf[this._offset++] = len;
  } else {
    throw newInvalidAsn1Error('Length too long (> 4 bytes)');
  }
};

Writer.prototype.startSequence = function (tag) {
  if (typeof (tag) !== 'number')
    tag = ASN1.Sequence | ASN1.Constructor;

  this.writeByte(tag);
  this._seq.push(this._offset);
  this._ensure(3);
  this._offset += 3;
};


Writer.prototype.endSequence = function () {
  var seq = this._seq.pop();
  var start = seq + 3;
  var len = this._offset - start;

  if (len <= 0x7f) {
    this._shift(start, len, -2);
    this._buf[seq] = len;
  } else if (len <= 0xff) {
    this._shift(start, len, -1);
    this._buf[seq] = 0x81;
    this._buf[seq + 1] = len;
  } else if (len <= 0xffff) {
    this._buf[seq] = 0x82;
    this._buf[seq + 1] = len >> 8;
    this._buf[seq + 2] = len;
  } else if (len <= 0xffffff) {
    this._shift(start, len, 1);
    this._buf[seq] = 0x83;
    this._buf[seq + 1] = len >> 16;
    this._buf[seq + 2] = len >> 8;
    this._buf[seq + 3] = len;
  } else {
    throw newInvalidAsn1Error('Sequence too long');
  }
};


Writer.prototype._shift = function (start, len, shift) {
  assert.ok(start !== undefined);
  assert.ok(len !== undefined);
  assert.ok(shift);

  this._buf.copy(this._buf, start + shift, start, start + len);
  this._offset += shift;
};

Writer.prototype._ensure = function (len) {
  assert.ok(len);

  if (this._size - this._offset < len) {
    var sz = this._size * this._options.growthFactor;
    if (sz - this._offset < len)
      sz += len;

    var buf = Buffer.alloc(sz);

    this._buf.copy(buf, 0, 0, this._offset);
    this._buf = buf;
    this._size = sz;
  }
};



// --- Exported API

module.exports = Writer;


/***/ }),
/* 351 */
/***/ (function(module, exports, __webpack_require__) {

// Basic Javascript Elliptic Curve implementation
// Ported loosely from BouncyCastle's Java EC code
// Only Fp curves implemented for now

// Requires jsbn.js and jsbn2.js
var BigInteger = __webpack_require__(352).BigInteger
var Barrett = BigInteger.prototype.Barrett

// ----------------
// ECFieldElementFp

// constructor
function ECFieldElementFp(q,x) {
    this.x = x;
    // TODO if(x.compareTo(q) >= 0) error
    this.q = q;
}

function feFpEquals(other) {
    if(other == this) return true;
    return (this.q.equals(other.q) && this.x.equals(other.x));
}

function feFpToBigInteger() {
    return this.x;
}

function feFpNegate() {
    return new ECFieldElementFp(this.q, this.x.negate().mod(this.q));
}

function feFpAdd(b) {
    return new ECFieldElementFp(this.q, this.x.add(b.toBigInteger()).mod(this.q));
}

function feFpSubtract(b) {
    return new ECFieldElementFp(this.q, this.x.subtract(b.toBigInteger()).mod(this.q));
}

function feFpMultiply(b) {
    return new ECFieldElementFp(this.q, this.x.multiply(b.toBigInteger()).mod(this.q));
}

function feFpSquare() {
    return new ECFieldElementFp(this.q, this.x.square().mod(this.q));
}

function feFpDivide(b) {
    return new ECFieldElementFp(this.q, this.x.multiply(b.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;

// ----------------
// ECPointFp

// constructor
function ECPointFp(curve,x,y,z) {
    this.curve = curve;
    this.x = x;
    this.y = y;
    // Projective coordinates: either zinv == null or z * zinv == 1
    // z and zinv are just BigIntegers, not fieldElements
    if(z == null) {
      this.z = BigInteger.ONE;
    }
    else {
      this.z = z;
    }
    this.zinv = null;
    //TODO: compression flag
}

function pointFpGetX() {
    if(this.zinv == null) {
      this.zinv = this.z.modInverse(this.curve.q);
    }
    var r = this.x.toBigInteger().multiply(this.zinv);
    this.curve.reduce(r);
    return this.curve.fromBigInteger(r);
}

function pointFpGetY() {
    if(this.zinv == null) {
      this.zinv = this.z.modInverse(this.curve.q);
    }
    var r = this.y.toBigInteger().multiply(this.zinv);
    this.curve.reduce(r);
    return this.curve.fromBigInteger(r);
}

function pointFpEquals(other) {
    if(other == this) return true;
    if(this.isInfinity()) return other.isInfinity();
    if(other.isInfinity()) return this.isInfinity();
    var u, v;
    // u = Y2 * Z1 - Y1 * Z2
    u = other.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(other.z)).mod(this.curve.q);
    if(!u.equals(BigInteger.ZERO)) return false;
    // v = X2 * Z1 - X1 * Z2
    v = other.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(other.z)).mod(this.curve.q);
    return v.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(b) {
    if(this.isInfinity()) return b;
    if(b.isInfinity()) return this;

    // u = Y2 * Z1 - Y1 * Z2
    var u = b.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(b.z)).mod(this.curve.q);
    // v = X2 * Z1 - X1 * Z2
    var v = b.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(b.z)).mod(this.curve.q);

    if(BigInteger.ZERO.equals(v)) {
        if(BigInteger.ZERO.equals(u)) {
            return this.twice(); // this == b, so double
        }
	return this.curve.getInfinity(); // this = -b, so infinity
    }

    var THREE = new BigInteger("3");
    var x1 = this.x.toBigInteger();
    var y1 = this.y.toBigInteger();
    var x2 = b.x.toBigInteger();
    var y2 = b.y.toBigInteger();

    var v2 = v.square();
    var v3 = v2.multiply(v);
    var x1v2 = x1.multiply(v2);
    var zu2 = u.square().multiply(this.z);

    // x3 = v * (z2 * (z1 * u^2 - 2 * x1 * v^2) - v^3)
    var x3 = zu2.subtract(x1v2.shiftLeft(1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.q);
    // y3 = z2 * (3 * x1 * u * v^2 - y1 * v^3 - z1 * u^3) + u * v^3
    var y3 = x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.q);
    // z3 = v^3 * z1 * z2
    var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.q);

    return new ECPointFp(this.curve, this.curve.fromBigInteger(x3), this.curve.fromBigInteger(y3), z3);
}

function pointFpTwice() {
    if(this.isInfinity()) return this;
    if(this.y.toBigInteger().signum() == 0) return this.curve.getInfinity();

    // TODO: optimized handling of constants
    var THREE = new BigInteger("3");
    var x1 = this.x.toBigInteger();
    var y1 = this.y.toBigInteger();

    var y1z1 = y1.multiply(this.z);
    var y1sqz1 = y1z1.multiply(y1).mod(this.curve.q);
    var a = this.curve.a.toBigInteger();

    // w = 3 * x1^2 + a * z1^2
    var w = x1.square().multiply(THREE);
    if(!BigInteger.ZERO.equals(a)) {
      w = w.add(this.z.square().multiply(a));
    }
    w = w.mod(this.curve.q);
    //this.curve.reduce(w);
    // x3 = 2 * y1 * z1 * (w^2 - 8 * x1 * y1^2 * z1)
    var x3 = w.square().subtract(x1.shiftLeft(3).multiply(y1sqz1)).shiftLeft(1).multiply(y1z1).mod(this.curve.q);
    // y3 = 4 * y1^2 * z1 * (3 * w * x1 - 2 * y1^2 * z1) - w^3
    var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(1)).shiftLeft(2).multiply(y1sqz1).subtract(w.square().multiply(w)).mod(this.curve.q);
    // z3 = 8 * (y1 * z1)^3
    var z3 = y1z1.square().multiply(y1z1).shiftLeft(3).mod(this.curve.q);

    return new ECPointFp(this.curve, this.curve.fromBigInteger(x3), this.curve.fromBigInteger(y3), z3);
}

// Simple NAF (Non-Adjacent Form) multiplication algorithm
// TODO: modularize the multiplication algorithm
function pointFpMultiply(k) {
    if(this.isInfinity()) return this;
    if(k.signum() == 0) return this.curve.getInfinity();

    var e = k;
    var h = e.multiply(new BigInteger("3"));

    var neg = this.negate();
    var R = this;

    var i;
    for(i = h.bitLength() - 2; i > 0; --i) {
	R = R.twice();

	var hBit = h.testBit(i);
	var eBit = e.testBit(i);

	if (hBit != eBit) {
	    R = R.add(hBit ? this : neg);
	}
    }

    return R;
}

// Compute this*j + x*k (simultaneous multiplication)
function pointFpMultiplyTwo(j,x,k) {
  var i;
  if(j.bitLength() > k.bitLength())
    i = j.bitLength() - 1;
  else
    i = k.bitLength() - 1;

  var R = this.curve.getInfinity();
  var both = this.add(x);
  while(i >= 0) {
    R = R.twice();
    if(j.testBit(i)) {
      if(k.testBit(i)) {
        R = R.add(both);
      }
      else {
        R = R.add(this);
      }
    }
    else {
      if(k.testBit(i)) {
        R = R.add(x);
      }
    }
    --i;
  }

  return R;
}

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;

// ----------------
// ECCurveFp

// constructor
function ECCurveFp(q,a,b) {
    this.q = q;
    this.a = this.fromBigInteger(a);
    this.b = this.fromBigInteger(b);
    this.infinity = new ECPointFp(this, null, null);
    this.reducer = new Barrett(this.q);
}

function curveFpGetQ() {
    return this.q;
}

function curveFpGetA() {
    return this.a;
}

function curveFpGetB() {
    return this.b;
}

function curveFpEquals(other) {
    if(other == this) return true;
    return(this.q.equals(other.q) && this.a.equals(other.a) && this.b.equals(other.b));
}

function curveFpGetInfinity() {
    return this.infinity;
}

function curveFpFromBigInteger(x) {
    return new ECFieldElementFp(this.q, x);
}

function curveReduce(x) {
    this.reducer.reduce(x);
}

// for now, work with hex strings because they're easier in JS
function curveFpDecodePointHex(s) {
    switch(parseInt(s.substr(0,2), 16)) { // first byte
    case 0:
	return this.infinity;
    case 2:
    case 3:
	// point compression not supported yet
	return null;
    case 4:
    case 6:
    case 7:
	var len = (s.length - 2) / 2;
	var xHex = s.substr(2, len);
	var yHex = s.substr(len+2, len);

	return new ECPointFp(this,
			     this.fromBigInteger(new BigInteger(xHex, 16)),
			     this.fromBigInteger(new BigInteger(yHex, 16)));

    default: // unsupported
	return null;
    }
}

function curveFpEncodePointHex(p) {
	if (p.isInfinity()) return "00";
	var xHex = p.getX().toBigInteger().toString(16);
	var yHex = p.getY().toBigInteger().toString(16);
	var oLen = this.getQ().toString(16).length;
	if ((oLen % 2) != 0) oLen++;
	while (xHex.length < oLen) {
		xHex = "0" + xHex;
	}
	while (yHex.length < oLen) {
		yHex = "0" + yHex;
	}
	return "04" + xHex + yHex;
}

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.reduce = curveReduce;
//ECCurveFp.prototype.decodePointHex = curveFpDecodePointHex;
ECCurveFp.prototype.encodePointHex = curveFpEncodePointHex;

// from: https://github.com/kaielvin/jsbn-ec-point-compression
ECCurveFp.prototype.decodePointHex = function(s)
{
	var yIsEven;
    switch(parseInt(s.substr(0,2), 16)) { // first byte
    case 0:
	return this.infinity;
    case 2:
	yIsEven = false;
    case 3:
	if(yIsEven == undefined) yIsEven = true;
	var len = s.length - 2;
	var xHex = s.substr(2, len);
	var x = this.fromBigInteger(new BigInteger(xHex,16));
	var alpha = x.multiply(x.square().add(this.getA())).add(this.getB());
	var beta = alpha.sqrt();

    if (beta == null) throw "Invalid point compression";

    var betaValue = beta.toBigInteger();
    if (betaValue.testBit(0) != yIsEven)
    {
        // Use the other root
        beta = this.fromBigInteger(this.getQ().subtract(betaValue));
    }
    return new ECPointFp(this,x,beta);
    case 4:
    case 6:
    case 7:
	var len = (s.length - 2) / 2;
	var xHex = s.substr(2, len);
	var yHex = s.substr(len+2, len);

	return new ECPointFp(this,
			     this.fromBigInteger(new BigInteger(xHex, 16)),
			     this.fromBigInteger(new BigInteger(yHex, 16)));

    default: // unsupported
	return null;
    }
}
ECCurveFp.prototype.encodeCompressedPointHex = function(p)
{
	if (p.isInfinity()) return "00";
	var xHex = p.getX().toBigInteger().toString(16);
	var oLen = this.getQ().toString(16).length;
	if ((oLen % 2) != 0) oLen++;
	while (xHex.length < oLen)
		xHex = "0" + xHex;
	var yPrefix;
	if(p.getY().toBigInteger().isEven()) yPrefix = "02";
	else                                 yPrefix = "03";

	return yPrefix + xHex;
}


ECFieldElementFp.prototype.getR = function()
{
	if(this.r != undefined) return this.r;

    this.r = null;
    var bitLength = this.q.bitLength();
    if (bitLength > 128)
    {
        var firstWord = this.q.shiftRight(bitLength - 64);
        if (firstWord.intValue() == -1)
        {
            this.r = BigInteger.ONE.shiftLeft(bitLength).subtract(this.q);
        }
    }
    return this.r;
}
ECFieldElementFp.prototype.modMult = function(x1,x2)
{
    return this.modReduce(x1.multiply(x2));
}
ECFieldElementFp.prototype.modReduce = function(x)
{
    if (this.getR() != null)
    {
        var qLen = q.bitLength();
        while (x.bitLength() > (qLen + 1))
        {
            var u = x.shiftRight(qLen);
            var v = x.subtract(u.shiftLeft(qLen));
            if (!this.getR().equals(BigInteger.ONE))
            {
                u = u.multiply(this.getR());
            }
            x = u.add(v); 
        }
        while (x.compareTo(q) >= 0)
        {
            x = x.subtract(q);
        }
    }
    else
    {
        x = x.mod(q);
    }
    return x;
}
ECFieldElementFp.prototype.sqrt = function()
{
    if (!this.q.testBit(0)) throw "unsupported";

    // p mod 4 == 3
    if (this.q.testBit(1))
    {
    	var z = new ECFieldElementFp(this.q,this.x.modPow(this.q.shiftRight(2).add(BigInteger.ONE),this.q));
    	return z.square().equals(this) ? z : null;
    }

    // p mod 4 == 1
    var qMinusOne = this.q.subtract(BigInteger.ONE);

    var legendreExponent = qMinusOne.shiftRight(1);
    if (!(this.x.modPow(legendreExponent, this.q).equals(BigInteger.ONE)))
    {
        return null;
    }

    var u = qMinusOne.shiftRight(2);
    var k = u.shiftLeft(1).add(BigInteger.ONE);

    var Q = this.x;
    var fourQ = modDouble(modDouble(Q));

    var U, V;
    do
    {
        var P;
        do
        {
            P = new BigInteger(this.q.bitLength(), new SecureRandom());
        }
        while (P.compareTo(this.q) >= 0
            || !(P.multiply(P).subtract(fourQ).modPow(legendreExponent, this.q).equals(qMinusOne)));

        var result = this.lucasSequence(P, Q, k);
        U = result[0];
        V = result[1];

        if (this.modMult(V, V).equals(fourQ))
        {
            // Integer division by 2, mod q
            if (V.testBit(0))
            {
                V = V.add(q);
            }

            V = V.shiftRight(1);

            return new ECFieldElementFp(q,V);
        }
    }
    while (U.equals(BigInteger.ONE) || U.equals(qMinusOne));

    return null;
}
ECFieldElementFp.prototype.lucasSequence = function(P,Q,k)
{
    var n = k.bitLength();
    var s = k.getLowestSetBit();

    var Uh = BigInteger.ONE;
    var Vl = BigInteger.TWO;
    var Vh = P;
    var Ql = BigInteger.ONE;
    var Qh = BigInteger.ONE;

    for (var j = n - 1; j >= s + 1; --j)
    {
        Ql = this.modMult(Ql, Qh);

        if (k.testBit(j))
        {
            Qh = this.modMult(Ql, Q);
            Uh = this.modMult(Uh, Vh);
            Vl = this.modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql)));
            Vh = this.modReduce(Vh.multiply(Vh).subtract(Qh.shiftLeft(1)));
        }
        else
        {
            Qh = Ql;
            Uh = this.modReduce(Uh.multiply(Vl).subtract(Ql));
            Vh = this.modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql)));
            Vl = this.modReduce(Vl.multiply(Vl).subtract(Ql.shiftLeft(1)));
        }
    }

    Ql = this.modMult(Ql, Qh);
    Qh = this.modMult(Ql, Q);
    Uh = this.modReduce(Uh.multiply(Vl).subtract(Ql));
    Vl = this.modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql)));
    Ql = this.modMult(Ql, Qh);

    for (var j = 1; j <= s; ++j)
    {
        Uh = this.modMult(Uh, Vl);
        Vl = this.modReduce(Vl.multiply(Vl).subtract(Ql.shiftLeft(1)));
        Ql = this.modMult(Ql, Ql);
    }

    return [ Uh, Vl ];
}

var exports = {
  ECCurveFp: ECCurveFp,
  ECPointFp: ECPointFp,
  ECFieldElementFp: ECFieldElementFp
}

module.exports = exports


/***/ }),
/* 352 */
/***/ (function(module, exports, __webpack_require__) {

(function(){

    // Copyright (c) 2005  Tom Wu
    // All Rights Reserved.
    // See "LICENSE" for details.

    // Basic JavaScript BN library - subset useful for RSA encryption.

    // Bits per digit
    var dbits;

    // JavaScript engine analysis
    var canary = 0xdeadbeefcafe;
    var j_lm = ((canary&0xffffff)==0xefcafe);

    // (public) Constructor
    function BigInteger(a,b,c) {
      if(a != null)
        if("number" == typeof a) this.fromNumber(a,b,c);
        else if(b == null && "string" != typeof a) this.fromString(a,256);
        else this.fromString(a,b);
    }

    // return new, unset BigInteger
    function nbi() { return new BigInteger(null); }

    // am: Compute w_j += (x*this_i), propagate carries,
    // c is initial carry, returns final carry.
    // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
    // We need to select the fastest one that works in this environment.

    // am1: use a single mult and divide to get the high bits,
    // max digit bits should be 26 because
    // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
    function am1(i,x,w,j,c,n) {
      while(--n >= 0) {
        var v = x*this[i++]+w[j]+c;
        c = Math.floor(v/0x4000000);
        w[j++] = v&0x3ffffff;
      }
      return c;
    }
    // am2 avoids a big mult-and-extract completely.
    // Max digit bits should be <= 30 because we do bitwise ops
    // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
    function am2(i,x,w,j,c,n) {
      var xl = x&0x7fff, xh = x>>15;
      while(--n >= 0) {
        var l = this[i]&0x7fff;
        var h = this[i++]>>15;
        var m = xh*l+h*xl;
        l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
        c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
        w[j++] = l&0x3fffffff;
      }
      return c;
    }
    // Alternately, set max digit bits to 28 since some
    // browsers slow down when dealing with 32-bit numbers.
    function am3(i,x,w,j,c,n) {
      var xl = x&0x3fff, xh = x>>14;
      while(--n >= 0) {
        var l = this[i]&0x3fff;
        var h = this[i++]>>14;
        var m = xh*l+h*xl;
        l = xl*l+((m&0x3fff)<<14)+w[j]+c;
        c = (l>>28)+(m>>14)+xh*h;
        w[j++] = l&0xfffffff;
      }
      return c;
    }
    var inBrowser = typeof navigator !== "undefined";
    if(inBrowser && j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
      BigInteger.prototype.am = am2;
      dbits = 30;
    }
    else if(inBrowser && j_lm && (navigator.appName != "Netscape")) {
      BigInteger.prototype.am = am1;
      dbits = 26;
    }
    else { // Mozilla/Netscape seems to prefer am3
      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;

    // Digit conversions
    var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
    var BI_RC = new Array();
    var rr,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(n) { return BI_RM.charAt(n); }
    function intAt(s,i) {
      var c = BI_RC[s.charCodeAt(i)];
      return (c==null)?-1:c;
    }

    // (protected) copy this to r
    function bnpCopyTo(r) {
      for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
      r.t = this.t;
      r.s = this.s;
    }

    // (protected) set from integer value x, -DV <= x < DV
    function bnpFromInt(x) {
      this.t = 1;
      this.s = (x<0)?-1:0;
      if(x > 0) this[0] = x;
      else if(x < -1) this[0] = x+this.DV;
      else this.t = 0;
    }

    // return bigint initialized to value
    function nbv(i) { var r = nbi(); r.fromInt(i); return r; }

    // (protected) set from string and radix
    function bnpFromString(s,b) {
      var k;
      if(b == 16) k = 4;
      else if(b == 8) k = 3;
      else if(b == 256) k = 8; // byte array
      else if(b == 2) k = 1;
      else if(b == 32) k = 5;
      else if(b == 4) k = 2;
      else { this.fromRadix(s,b); return; }
      this.t = 0;
      this.s = 0;
      var i = s.length, mi = false, sh = 0;
      while(--i >= 0) {
        var x = (k==8)?s[i]&0xff:intAt(s,i);
        if(x < 0) {
          if(s.charAt(i) == "-") mi = true;
          continue;
        }
        mi = false;
        if(sh == 0)
          this[this.t++] = x;
        else if(sh+k > this.DB) {
          this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
          this[this.t++] = (x>>(this.DB-sh));
        }
        else
          this[this.t-1] |= x<<sh;
        sh += k;
        if(sh >= this.DB) sh -= this.DB;
      }
      if(k == 8 && (s[0]&0x80) != 0) {
        this.s = -1;
        if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
      }
      this.clamp();
      if(mi) BigInteger.ZERO.subTo(this,this);
    }

    // (protected) clamp off excess high words
    function bnpClamp() {
      var c = this.s&this.DM;
      while(this.t > 0 && this[this.t-1] == c) --this.t;
    }

    // (public) return string representation in given radix
    function bnToString(b) {
      if(this.s < 0) return "-"+this.negate().toString(b);
      var k;
      if(b == 16) k = 4;
      else if(b == 8) k = 3;
      else if(b == 2) k = 1;
      else if(b == 32) k = 5;
      else if(b == 4) k = 2;
      else return this.toRadix(b);
      var km = (1<<k)-1, d, m = false, r = "", i = this.t;
      var p = this.DB-(i*this.DB)%k;
      if(i-- > 0) {
        if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
        while(i >= 0) {
          if(p < k) {
            d = (this[i]&((1<<p)-1))<<(k-p);
            d |= this[--i]>>(p+=this.DB-k);
          }
          else {
            d = (this[i]>>(p-=k))&km;
            if(p <= 0) { p += this.DB; --i; }
          }
          if(d > 0) m = true;
          if(m) r += int2char(d);
        }
      }
      return m?r:"0";
    }

    // (public) -this
    function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }

    // (public) |this|
    function bnAbs() { return (this.s<0)?this.negate():this; }

    // (public) return + if this > a, - if this < a, 0 if equal
    function bnCompareTo(a) {
      var r = this.s-a.s;
      if(r != 0) return r;
      var i = this.t;
      r = i-a.t;
      if(r != 0) return (this.s<0)?-r:r;
      while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
      return 0;
    }

    // returns bit length of the integer x
    function nbits(x) {
      var r = 1, t;
      if((t=x>>>16) != 0) { x = t; r += 16; }
      if((t=x>>8) != 0) { x = t; r += 8; }
      if((t=x>>4) != 0) { x = t; r += 4; }
      if((t=x>>2) != 0) { x = t; r += 2; }
      if((t=x>>1) != 0) { x = t; r += 1; }
      return r;
    }

    // (public) return the number of bits in "this"
    function bnBitLength() {
      if(this.t <= 0) return 0;
      return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
    }

    // (protected) r = this << n*DB
    function bnpDLShiftTo(n,r) {
      var i;
      for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
      for(i = n-1; i >= 0; --i) r[i] = 0;
      r.t = this.t+n;
      r.s = this.s;
    }

    // (protected) r = this >> n*DB
    function bnpDRShiftTo(n,r) {
      for(var i = n; i < this.t; ++i) r[i-n] = this[i];
      r.t = Math.max(this.t-n,0);
      r.s = this.s;
    }

    // (protected) r = this << n
    function bnpLShiftTo(n,r) {
      var bs = n%this.DB;
      var cbs = this.DB-bs;
      var bm = (1<<cbs)-1;
      var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
      for(i = this.t-1; i >= 0; --i) {
        r[i+ds+1] = (this[i]>>cbs)|c;
        c = (this[i]&bm)<<bs;
      }
      for(i = ds-1; i >= 0; --i) r[i] = 0;
      r[ds] = c;
      r.t = this.t+ds+1;
      r.s = this.s;
      r.clamp();
    }

    // (protected) r = this >> n
    function bnpRShiftTo(n,r) {
      r.s = this.s;
      var ds = Math.floor(n/this.DB);
      if(ds >= this.t) { r.t = 0; return; }
      var bs = n%this.DB;
      var cbs = this.DB-bs;
      var bm = (1<<bs)-1;
      r[0] = this[ds]>>bs;
      for(var i = ds+1; i < this.t; ++i) {
        r[i-ds-1] |= (this[i]&bm)<<cbs;
        r[i-ds] = this[i]>>bs;
      }
      if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
      r.t = this.t-ds;
      r.clamp();
    }

    // (protected) r = this - a
    function bnpSubTo(a,r) {
      var i = 0, c = 0, m = Math.min(a.t,this.t);
      while(i < m) {
        c += this[i]-a[i];
        r[i++] = c&this.DM;
        c >>= this.DB;
      }
      if(a.t < this.t) {
        c -= a.s;
        while(i < this.t) {
          c += this[i];
          r[i++] = c&this.DM;
          c >>= this.DB;
        }
        c += this.s;
      }
      else {
        c += this.s;
        while(i < a.t) {
          c -= a[i];
          r[i++] = c&this.DM;
          c >>= this.DB;
        }
        c -= a.s;
      }
      r.s = (c<0)?-1:0;
      if(c < -1) r[i++] = this.DV+c;
      else if(c > 0) r[i++] = c;
      r.t = i;
      r.clamp();
    }

    // (protected) r = this * a, r != this,a (HAC 14.12)
    // "this" should be the larger one if appropriate.
    function bnpMultiplyTo(a,r) {
      var x = this.abs(), y = a.abs();
      var i = x.t;
      r.t = i+y.t;
      while(--i >= 0) r[i] = 0;
      for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
      r.s = 0;
      r.clamp();
      if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
    }

    // (protected) r = this^2, r != this (HAC 14.16)
    function bnpSquareTo(r) {
      var x = this.abs();
      var i = r.t = 2*x.t;
      while(--i >= 0) r[i] = 0;
      for(i = 0; i < x.t-1; ++i) {
        var c = x.am(i,x[i],r,2*i,0,1);
        if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
          r[i+x.t] -= x.DV;
          r[i+x.t+1] = 1;
        }
      }
      if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
      r.s = 0;
      r.clamp();
    }

    // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
    // r != q, this != m.  q or r may be null.
    function bnpDivRemTo(m,q,r) {
      var pm = m.abs();
      if(pm.t <= 0) return;
      var pt = this.abs();
      if(pt.t < pm.t) {
        if(q != null) q.fromInt(0);
        if(r != null) this.copyTo(r);
        return;
      }
      if(r == null) r = nbi();
      var y = nbi(), ts = this.s, ms = m.s;
      var nsh = this.DB-nbits(pm[pm.t-1]);   // normalize modulus
      if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
      else { pm.copyTo(y); pt.copyTo(r); }
      var ys = y.t;
      var y0 = y[ys-1];
      if(y0 == 0) return;
      var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
      var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
      var i = r.t, j = i-ys, t = (q==null)?nbi():q;
      y.dlShiftTo(j,t);
      if(r.compareTo(t) >= 0) {
        r[r.t++] = 1;
        r.subTo(t,r);
      }
      BigInteger.ONE.dlShiftTo(ys,t);
      t.subTo(y,y);  // "negative" y so we can replace sub with am later
      while(y.t < ys) y[y.t++] = 0;
      while(--j >= 0) {
        // Estimate quotient digit
        var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
        if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) {   // Try it out
          y.dlShiftTo(j,t);
          r.subTo(t,r);
          while(r[i] < --qd) r.subTo(t,r);
        }
      }
      if(q != null) {
        r.drShiftTo(ys,q);
        if(ts != ms) BigInteger.ZERO.subTo(q,q);
      }
      r.t = ys;
      r.clamp();
      if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
      if(ts < 0) BigInteger.ZERO.subTo(r,r);
    }

    // (public) this mod a
    function bnMod(a) {
      var r = nbi();
      this.abs().divRemTo(a,null,r);
      if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
      return r;
    }

    // Modular reduction using "classic" algorithm
    function Classic(m) { this.m = m; }
    function cConvert(x) {
      if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
      else return x;
    }
    function cRevert(x) { return x; }
    function cReduce(x) { x.divRemTo(this.m,null,x); }
    function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
    function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }

    Classic.prototype.convert = cConvert;
    Classic.prototype.revert = cRevert;
    Classic.prototype.reduce = cReduce;
    Classic.prototype.mulTo = cMulTo;
    Classic.prototype.sqrTo = cSqrTo;

    // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
    // justification:
    //         xy == 1 (mod m)
    //         xy =  1+km
    //   xy(2-xy) = (1+km)(1-km)
    // x[y(2-xy)] = 1-k^2m^2
    // x[y(2-xy)] == 1 (mod m^2)
    // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
    // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
    // JS multiply "overflows" differently from C/C++, so care is needed here.
    function bnpInvDigit() {
      if(this.t < 1) return 0;
      var x = this[0];
      if((x&1) == 0) return 0;
      var y = x&3;       // y == 1/x mod 2^2
      y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
      y = (y*(2-(x&0xff)*y))&0xff;   // y == 1/x mod 2^8
      y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;    // y == 1/x mod 2^16
      // last step - calculate inverse mod DV directly;
      // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
      y = (y*(2-x*y%this.DV))%this.DV;       // y == 1/x mod 2^dbits
      // we really want the negative inverse, and -DV < y < DV
      return (y>0)?this.DV-y:-y;
    }

    // Montgomery reduction
    function Montgomery(m) {
      this.m = m;
      this.mp = m.invDigit();
      this.mpl = this.mp&0x7fff;
      this.mph = this.mp>>15;
      this.um = (1<<(m.DB-15))-1;
      this.mt2 = 2*m.t;
    }

    // xR mod m
    function montConvert(x) {
      var r = nbi();
      x.abs().dlShiftTo(this.m.t,r);
      r.divRemTo(this.m,null,r);
      if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
      return r;
    }

    // x/R mod m
    function montRevert(x) {
      var r = nbi();
      x.copyTo(r);
      this.reduce(r);
      return r;
    }

    // x = x/R mod m (HAC 14.32)
    function montReduce(x) {
      while(x.t <= this.mt2) // pad x so am has enough room later
        x[x.t++] = 0;
      for(var i = 0; i < this.m.t; ++i) {
        // faster way of calculating u0 = x[i]*mp mod DV
        var j = x[i]&0x7fff;
        var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
        // use am to combine the multiply-shift-add into one call
        j = i+this.m.t;
        x[j] += this.m.am(0,u0,x,i,0,this.m.t);
        // propagate carry
        while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
      }
      x.clamp();
      x.drShiftTo(this.m.t,x);
      if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
    }

    // r = "x^2/R mod m"; x != r
    function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }

    // r = "xy/R mod m"; x,y != r
    function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }

    Montgomery.prototype.convert = montConvert;
    Montgomery.prototype.revert = montRevert;
    Montgomery.prototype.reduce = montReduce;
    Montgomery.prototype.mulTo = montMulTo;
    Montgomery.prototype.sqrTo = montSqrTo;

    // (protected) true iff this is even
    function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }

    // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
    function bnpExp(e,z) {
      if(e > 0xffffffff || e < 1) return BigInteger.ONE;
      var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
      g.copyTo(r);
      while(--i >= 0) {
        z.sqrTo(r,r2);
        if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
        else { var t = r; r = r2; r2 = t; }
      }
      return z.revert(r);
    }

    // (public) this^e % m, 0 <= e < 2^32
    function bnModPowInt(e,m) {
      var z;
      if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
      return this.exp(e,z);
    }

    // protected
    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;

    // public
    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;

    // "constants"
    BigInteger.ZERO = nbv(0);
    BigInteger.ONE = nbv(1);

    // Copyright (c) 2005-2009  Tom Wu
    // All Rights Reserved.
    // See "LICENSE" for details.

    // Extended JavaScript BN functions, required for RSA private ops.

    // Version 1.1: new BigInteger("0", 10) returns "proper" zero
    // Version 1.2: square() API, isProbablePrime fix

    // (public)
    function bnClone() { var r = nbi(); this.copyTo(r); return r; }

    // (public) return value as integer
    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;
      // assumes 16 < DB < 32
      return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];
    }

    // (public) return value as byte
    function bnByteValue() { return (this.t==0)?this.s:(this[0]<<24)>>24; }

    // (public) return value as short (assumes DB>=16)
    function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; }

    // (protected) return x s.t. r^x < DV
    function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }

    // (public) 0 if this == 0, 1 if this > 0
    function bnSigNum() {
      if(this.s < 0) return -1;
      else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
      else return 1;
    }

    // (protected) convert to radix string
    function bnpToRadix(b) {
      if(b == null) b = 10;
      if(this.signum() == 0 || b < 2 || b > 36) return "0";
      var cs = this.chunkSize(b);
      var a = Math.pow(b,cs);
      var d = nbv(a), y = nbi(), z = nbi(), r = "";
      this.divRemTo(d,y,z);
      while(y.signum() > 0) {
        r = (a+z.intValue()).toString(b).substr(1) + r;
        y.divRemTo(d,y,z);
      }
      return z.intValue().toString(b) + r;
    }

    // (protected) convert from radix string
    function bnpFromRadix(s,b) {
      this.fromInt(0);
      if(b == null) b = 10;
      var cs = this.chunkSize(b);
      var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
      for(var i = 0; i < s.length; ++i) {
        var x = intAt(s,i);
        if(x < 0) {
          if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
          continue;
        }
        w = b*w+x;
        if(++j >= cs) {
          this.dMultiply(d);
          this.dAddOffset(w,0);
          j = 0;
          w = 0;
        }
      }
      if(j > 0) {
        this.dMultiply(Math.pow(b,j));
        this.dAddOffset(w,0);
      }
      if(mi) BigInteger.ZERO.subTo(this,this);
    }

    // (protected) alternate constructor
    function bnpFromNumber(a,b,c) {
      if("number" == typeof b) {
        // new BigInteger(int,int,RNG)
        if(a < 2) this.fromInt(1);
        else {
          this.fromNumber(a,c);
          if(!this.testBit(a-1))	// force MSB set
            this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);
          if(this.isEven()) this.dAddOffset(1,0); // force odd
          while(!this.isProbablePrime(b)) {
            this.dAddOffset(2,0);
            if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);
          }
        }
      }
      else {
        // new BigInteger(int,RNG)
        var x = new Array(), t = a&7;
        x.length = (a>>3)+1;
        b.nextBytes(x);
        if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;
        this.fromString(x,256);
      }
    }

    // (public) convert to bigendian byte array
    function bnToByteArray() {
      var i = this.t, r = new Array();
      r[0] = this.s;
      var p = this.DB-(i*this.DB)%8, d, k = 0;
      if(i-- > 0) {
        if(p < this.DB && (d = this[i]>>p) != (this.s&this.DM)>>p)
          r[k++] = d|(this.s<<(this.DB-p));
        while(i >= 0) {
          if(p < 8) {
            d = (this[i]&((1<<p)-1))<<(8-p);
            d |= this[--i]>>(p+=this.DB-8);
          }
          else {
            d = (this[i]>>(p-=8))&0xff;
            if(p <= 0) { p += this.DB; --i; }
          }
          if((d&0x80) != 0) d |= -256;
          if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;
          if(k > 0 || d != this.s) r[k++] = d;
        }
      }
      return r;
    }

    function bnEquals(a) { return(this.compareTo(a)==0); }
    function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
    function bnMax(a) { return(this.compareTo(a)>0)?this:a; }

    // (protected) r = this op a (bitwise)
    function bnpBitwiseTo(a,op,r) {
      var i, f, m = Math.min(a.t,this.t);
      for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]);
      if(a.t < this.t) {
        f = a.s&this.DM;
        for(i = m; i < this.t; ++i) r[i] = op(this[i],f);
        r.t = this.t;
      }
      else {
        f = this.s&this.DM;
        for(i = m; i < a.t; ++i) r[i] = op(f,a[i]);
        r.t = a.t;
      }
      r.s = op(this.s,a.s);
      r.clamp();
    }

    // (public) this & a
    function op_and(x,y) { return x&y; }
    function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }

    // (public) this | a
    function op_or(x,y) { return x|y; }
    function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }

    // (public) this ^ a
    function op_xor(x,y) { return x^y; }
    function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }

    // (public) this & ~a
    function op_andnot(x,y) { return x&~y; }
    function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }

    // (public) ~this
    function bnNot() {
      var r = nbi();
      for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i];
      r.t = this.t;
      r.s = ~this.s;
      return r;
    }

    // (public) this << n
    function bnShiftLeft(n) {
      var r = nbi();
      if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);
      return r;
    }

    // (public) this >> n
    function bnShiftRight(n) {
      var r = nbi();
      if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);
      return r;
    }

    // return index of lowest 1-bit in x, x < 2^31
    function lbit(x) {
      if(x == 0) return -1;
      var r = 0;
      if((x&0xffff) == 0) { x >>= 16; r += 16; }
      if((x&0xff) == 0) { x >>= 8; r += 8; }
      if((x&0xf) == 0) { x >>= 4; r += 4; }
      if((x&3) == 0) { x >>= 2; r += 2; }
      if((x&1) == 0) ++r;
      return r;
    }

    // (public) returns index of lowest 1-bit (or -1 if none)
    function bnGetLowestSetBit() {
      for(var i = 0; i < this.t; ++i)
        if(this[i] != 0) return i*this.DB+lbit(this[i]);
      if(this.s < 0) return this.t*this.DB;
      return -1;
    }

    // return number of 1 bits in x
    function cbit(x) {
      var r = 0;
      while(x != 0) { x &= x-1; ++r; }
      return r;
    }

    // (public) return number of set bits
    function bnBitCount() {
      var r = 0, x = this.s&this.DM;
      for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x);
      return r;
    }

    // (public) true iff nth bit is set
    function bnTestBit(n) {
      var j = Math.floor(n/this.DB);
      if(j >= this.t) return(this.s!=0);
      return((this[j]&(1<<(n%this.DB)))!=0);
    }

    // (protected) this op (1<<n)
    function bnpChangeBit(n,op) {
      var r = BigInteger.ONE.shiftLeft(n);
      this.bitwiseTo(r,op,r);
      return r;
    }

    // (public) this | (1<<n)
    function bnSetBit(n) { return this.changeBit(n,op_or); }

    // (public) this & ~(1<<n)
    function bnClearBit(n) { return this.changeBit(n,op_andnot); }

    // (public) this ^ (1<<n)
    function bnFlipBit(n) { return this.changeBit(n,op_xor); }

    // (protected) r = this + a
    function bnpAddTo(a,r) {
      var i = 0, c = 0, m = Math.min(a.t,this.t);
      while(i < m) {
        c += this[i]+a[i];
        r[i++] = c&this.DM;
        c >>= this.DB;
      }
      if(a.t < this.t) {
        c += a.s;
        while(i < this.t) {
          c += this[i];
          r[i++] = c&this.DM;
          c >>= this.DB;
        }
        c += this.s;
      }
      else {
        c += this.s;
        while(i < a.t) {
          c += a[i];
          r[i++] = c&this.DM;
          c >>= this.DB;
        }
        c += a.s;
      }
      r.s = (c<0)?-1:0;
      if(c > 0) r[i++] = c;
      else if(c < -1) r[i++] = this.DV+c;
      r.t = i;
      r.clamp();
    }

    // (public) this + a
    function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }

    // (public) this - a
    function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }

    // (public) this * a
    function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }

    // (public) this^2
    function bnSquare() { var r = nbi(); this.squareTo(r); return r; }

    // (public) this / a
    function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }

    // (public) this % a
    function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }

    // (public) [this/a,this%a]
    function bnDivideAndRemainder(a) {
      var q = nbi(), r = nbi();
      this.divRemTo(a,q,r);
      return new Array(q,r);
    }

    // (protected) this *= n, this >= 0, 1 < n < DV
    function bnpDMultiply(n) {
      this[this.t] = this.am(0,n-1,this,0,0,this.t);
      ++this.t;
      this.clamp();
    }

    // (protected) this += n << w words, this >= 0
    function bnpDAddOffset(n,w) {
      if(n == 0) return;
      while(this.t <= w) this[this.t++] = 0;
      this[w] += n;
      while(this[w] >= this.DV) {
        this[w] -= this.DV;
        if(++w >= this.t) this[this.t++] = 0;
        ++this[w];
      }
    }

    // A "null" reducer
    function NullExp() {}
    function nNop(x) { return x; }
    function nMulTo(x,y,r) { x.multiplyTo(y,r); }
    function nSqrTo(x,r) { x.squareTo(r); }

    NullExp.prototype.convert = nNop;
    NullExp.prototype.revert = nNop;
    NullExp.prototype.mulTo = nMulTo;
    NullExp.prototype.sqrTo = nSqrTo;

    // (public) this^e
    function bnPow(e) { return this.exp(e,new NullExp()); }

    // (protected) r = lower n words of "this * a", a.t <= n
    // "this" should be the larger one if appropriate.
    function bnpMultiplyLowerTo(a,n,r) {
      var i = Math.min(this.t+a.t,n);
      r.s = 0; // assumes a,this >= 0
      r.t = i;
      while(i > 0) r[--i] = 0;
      var j;
      for(j = r.t-this.t; i < j; ++i) r[i+this.t] = this.am(0,a[i],r,i,0,this.t);
      for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a[i],r,i,0,n-i);
      r.clamp();
    }

    // (protected) r = "this * a" without lower n words, n > 0
    // "this" should be the larger one if appropriate.
    function bnpMultiplyUpperTo(a,n,r) {
      --n;
      var i = r.t = this.t+a.t-n;
      r.s = 0; // assumes a,this >= 0
      while(--i >= 0) r[i] = 0;
      for(i = Math.max(n-this.t,0); i < a.t; ++i)
        r[this.t+i-n] = this.am(n-i,a[i],r,0,0,this.t+i-n);
      r.clamp();
      r.drShiftTo(1,r);
    }

    // Barrett modular reduction
    function Barrett(m) {
      // setup Barrett
      this.r2 = nbi();
      this.q3 = nbi();
      BigInteger.ONE.dlShiftTo(2*m.t,this.r2);
      this.mu = this.r2.divide(m);
      this.m = m;
    }

    function barrettConvert(x) {
      if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);
      else if(x.compareTo(this.m) < 0) return x;
      else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }
    }

    function barrettRevert(x) { return x; }

    // x = x mod m (HAC 14.42)
    function barrettReduce(x) {
      x.drShiftTo(this.m.t-1,this.r2);
      if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }
      this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);
      this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);
      while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);
      x.subTo(this.r2,x);
      while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
    }

    // r = x^2 mod m; x != r
    function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }

    // r = x*y mod m; x,y != r
    function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }

    Barrett.prototype.convert = barrettConvert;
    Barrett.prototype.revert = barrettRevert;
    Barrett.prototype.reduce = barrettReduce;
    Barrett.prototype.mulTo = barrettMulTo;
    Barrett.prototype.sqrTo = barrettSqrTo;

    // (public) this^e % m (HAC 14.85)
    function bnModPow(e,m) {
      var i = e.bitLength(), k, r = nbv(1), z;
      if(i <= 0) return r;
      else if(i < 18) k = 1;
      else if(i < 48) k = 3;
      else if(i < 144) k = 4;
      else if(i < 768) k = 5;
      else k = 6;
      if(i < 8)
        z = new Classic(m);
      else if(m.isEven())
        z = new Barrett(m);
      else
        z = new Montgomery(m);

      // precomputation
      var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;
      g[1] = z.convert(this);
      if(k > 1) {
        var g2 = nbi();
        z.sqrTo(g[1],g2);
        while(n <= km) {
          g[n] = nbi();
          z.mulTo(g2,g[n-2],g[n]);
          n += 2;
        }
      }

      var j = e.t-1, w, is1 = true, r2 = nbi(), t;
      i = nbits(e[j])-1;
      while(j >= 0) {
        if(i >= k1) w = (e[j]>>(i-k1))&km;
        else {
          w = (e[j]&((1<<(i+1))-1))<<(k1-i);
          if(j > 0) w |= e[j-1]>>(this.DB+i-k1);
        }

        n = k;
        while((w&1) == 0) { w >>= 1; --n; }
        if((i -= n) < 0) { i += this.DB; --j; }
        if(is1) {	// ret == 1, don't bother squaring or multiplying it
          g[w].copyTo(r);
          is1 = false;
        }
        else {
          while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }
          if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }
          z.mulTo(r2,g[w],r);
        }

        while(j >= 0 && (e[j]&(1<<i)) == 0) {
          z.sqrTo(r,r2); t = r; r = r2; r2 = t;
          if(--i < 0) { i = this.DB-1; --j; }
        }
      }
      return z.revert(r);
    }

    // (public) gcd(this,a) (HAC 14.54)
    function bnGCD(a) {
      var x = (this.s<0)?this.negate():this.clone();
      var y = (a.s<0)?a.negate():a.clone();
      if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }
      var i = x.getLowestSetBit(), g = y.getLowestSetBit();
      if(g < 0) return x;
      if(i < g) g = i;
      if(g > 0) {
        x.rShiftTo(g,x);
        y.rShiftTo(g,y);
      }
      while(x.signum() > 0) {
        if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);
        if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);
        if(x.compareTo(y) >= 0) {
          x.subTo(y,x);
          x.rShiftTo(1,x);
        }
        else {
          y.subTo(x,y);
          y.rShiftTo(1,y);
        }
      }
      if(g > 0) y.lShiftTo(g,y);
      return y;
    }

    // (protected) this % n, n < 2^26
    function bnpModInt(n) {
      if(n <= 0) return 0;
      var d = this.DV%n, r = (this.s<0)?n-1:0;
      if(this.t > 0)
        if(d == 0) r = this[0]%n;
        else for(var i = this.t-1; i >= 0; --i) r = (d*r+this[i])%n;
      return r;
    }

    // (public) 1/this % m (HAC 14.61)
    function bnModInverse(m) {
      var ac = m.isEven();
      if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;
      var u = m.clone(), v = this.clone();
      var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);
      while(u.signum() != 0) {
        while(u.isEven()) {
          u.rShiftTo(1,u);
          if(ac) {
            if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }
            a.rShiftTo(1,a);
          }
          else if(!b.isEven()) b.subTo(m,b);
          b.rShiftTo(1,b);
        }
        while(v.isEven()) {
          v.rShiftTo(1,v);
          if(ac) {
            if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }
            c.rShiftTo(1,c);
          }
          else if(!d.isEven()) d.subTo(m,d);
          d.rShiftTo(1,d);
        }
        if(u.compareTo(v) >= 0) {
          u.subTo(v,u);
          if(ac) a.subTo(c,a);
          b.subTo(d,b);
        }
        else {
          v.subTo(u,v);
          if(ac) c.subTo(a,c);
          d.subTo(b,d);
        }
      }
      if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;
      if(d.compareTo(m) >= 0) return d.subtract(m);
      if(d.signum() < 0) d.addTo(m,d); else return d;
      if(d.signum() < 0) return d.add(m); else return d;
    }

    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];

    // (public) test primality with certainty >= 1-.5^t
    function bnIsProbablePrime(t) {
      var i, x = this.abs();
      if(x.t == 1 && x[0] <= lowprimes[lowprimes.length-1]) {
        for(i = 0; i < lowprimes.length; ++i)
          if(x[0] == lowprimes[i]) return true;
        return false;
      }
      if(x.isEven()) return false;
      i = 1;
      while(i < lowprimes.length) {
        var m = lowprimes[i], j = i+1;
        while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];
        m = x.modInt(m);
        while(i < j) if(m%lowprimes[i++] == 0) return false;
      }
      return x.millerRabin(t);
    }

    // (protected) true if probably prime (HAC 4.24, Miller-Rabin)
    function bnpMillerRabin(t) {
      var n1 = this.subtract(BigInteger.ONE);
      var k = n1.getLowestSetBit();
      if(k <= 0) return false;
      var r = n1.shiftRight(k);
      t = (t+1)>>1;
      if(t > lowprimes.length) t = lowprimes.length;
      var a = nbi();
      for(var i = 0; i < t; ++i) {
        //Pick bases at random, instead of starting at 2
        a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);
        var y = a.modPow(r,this);
        if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {
          var j = 1;
          while(j++ < k && y.compareTo(n1) != 0) {
            y = y.modPowInt(2,this);
            if(y.compareTo(BigInteger.ONE) == 0) return false;
          }
          if(y.compareTo(n1) != 0) return false;
        }
      }
      return true;
    }

    // protected
    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;

    // public
    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;

    // JSBN-specific extension
    BigInteger.prototype.square = bnSquare;

    // Expose the Barrett function
    BigInteger.prototype.Barrett = Barrett

    // BigInteger interfaces not implemented in jsbn:

    // BigInteger(int signum, byte[] magnitude)
    // double doubleValue()
    // float floatValue()
    // int hashCode()
    // long longValue()
    // static BigInteger valueOf(long val)

	// Random number generator - requires a PRNG backend, e.g. prng4.js

	// For best results, put code like
	// <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
	// in your main HTML document.

	var rng_state;
	var rng_pool;
	var rng_pptr;

	// Mix in a 32-bit integer into the pool
	function rng_seed_int(x) {
	  rng_pool[rng_pptr++] ^= x & 255;
	  rng_pool[rng_pptr++] ^= (x >> 8) & 255;
	  rng_pool[rng_pptr++] ^= (x >> 16) & 255;
	  rng_pool[rng_pptr++] ^= (x >> 24) & 255;
	  if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;
	}

	// Mix in the current time (w/milliseconds) into the pool
	function rng_seed_time() {
	  rng_seed_int(new Date().getTime());
	}

	// Initialize the pool with junk if needed.
	if(rng_pool == null) {
	  rng_pool = new Array();
	  rng_pptr = 0;
	  var t;
	  if(typeof window !== "undefined" && window.crypto) {
		if (window.crypto.getRandomValues) {
		  // Use webcrypto if available
		  var ua = new Uint8Array(32);
		  window.crypto.getRandomValues(ua);
		  for(t = 0; t < 32; ++t)
			rng_pool[rng_pptr++] = ua[t];
		}
		else if(navigator.appName == "Netscape" && navigator.appVersion < "5") {
		  // Extract entropy (256 bits) from NS4 RNG if available
		  var z = window.crypto.random(32);
		  for(t = 0; t < z.length; ++t)
			rng_pool[rng_pptr++] = z.charCodeAt(t) & 255;
		}
	  }
	  while(rng_pptr < rng_psize) {  // extract some randomness from Math.random()
		t = Math.floor(65536 * Math.random());
		rng_pool[rng_pptr++] = t >>> 8;
		rng_pool[rng_pptr++] = t & 255;
	  }
	  rng_pptr = 0;
	  rng_seed_time();
	  //rng_seed_int(window.screenX);
	  //rng_seed_int(window.screenY);
	}

	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;
		//rng_pool = null;
	  }
	  // TODO: allow reseeding after first request
	  return rng_state.next();
	}

	function rng_get_bytes(ba) {
	  var i;
	  for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();
	}

	function SecureRandom() {}

	SecureRandom.prototype.nextBytes = rng_get_bytes;

	// prng4.js - uses Arcfour as a PRNG

	function Arcfour() {
	  this.i = 0;
	  this.j = 0;
	  this.S = new Array();
	}

	// Initialize arcfour context from key, an array of ints, each from [0..255]
	function ARC4init(key) {
	  var i, j, t;
	  for(i = 0; i < 256; ++i)
		this.S[i] = i;
	  j = 0;
	  for(i = 0; i < 256; ++i) {
		j = (j + this.S[i] + key[i % key.length]) & 255;
		t = this.S[i];
		this.S[i] = this.S[j];
		this.S[j] = t;
	  }
	  this.i = 0;
	  this.j = 0;
	}

	function ARC4next() {
	  var t;
	  this.i = (this.i + 1) & 255;
	  this.j = (this.j + this.S[this.i]) & 255;
	  t = this.S[this.i];
	  this.S[this.i] = this.S[this.j];
	  this.S[this.j] = t;
	  return this.S[(t + this.S[this.i]) & 255];
	}

	Arcfour.prototype.init = ARC4init;
	Arcfour.prototype.next = ARC4next;

	// Plug in your RNG constructor here
	function prng_newstate() {
	  return new Arcfour();
	}

	// Pool size must be a multiple of 4 and greater than 32.
	// An array of bytes the size of the pool will be passed to init()
	var rng_psize = 256;

  BigInteger.SecureRandom = SecureRandom;
  BigInteger.BigInteger = BigInteger;
  if (true) {
    exports = module.exports = BigInteger;
  } else {}

}).call(this);


/***/ }),
/* 353 */
/***/ (function(module, exports, __webpack_require__) {

(function(nacl) {
'use strict';

// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.
// Public domain.
//
// Implementation derived from TweetNaCl version 20140427.
// See for details: http://tweetnacl.cr.yp.to/

var gf = function(init) {
  var i, r = new Float64Array(16);
  if (init) for (i = 0; i < init.length; i++) r[i] = init[i];
  return r;
};

//  Pluggable, initialized in high-level API below.
var randombytes = function(/* x, n */) { throw new Error('no PRNG'); };

var _0 = new Uint8Array(16);
var _9 = new Uint8Array(32); _9[0] = 9;

var gf0 = gf(),
    gf1 = gf([1]),
    _121665 = gf([0xdb41, 1]),
    D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),
    D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),
    X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),
    Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),
    I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);

function ts64(x, i, h, l) {
  x[i]   = (h >> 24) & 0xff;
  x[i+1] = (h >> 16) & 0xff;
  x[i+2] = (h >>  8) & 0xff;
  x[i+3] = h & 0xff;
  x[i+4] = (l >> 24)  & 0xff;
  x[i+5] = (l >> 16)  & 0xff;
  x[i+6] = (l >>  8)  & 0xff;
  x[i+7] = l & 0xff;
}

function vn(x, xi, y, yi, n) {
  var i,d = 0;
  for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];
  return (1 & ((d - 1) >>> 8)) - 1;
}

function crypto_verify_16(x, xi, y, yi) {
  return vn(x,xi,y,yi,16);
}

function crypto_verify_32(x, xi, y, yi) {
  return vn(x,xi,y,yi,32);
}

function core_salsa20(o, p, k, c) {
  var j0  = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,
      j1  = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,
      j2  = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,
      j3  = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,
      j4  = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,
      j5  = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,
      j6  = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,
      j7  = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,
      j8  = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,
      j9  = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,
      j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,
      j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,
      j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,
      j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,
      j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,
      j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;

  var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,
      x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,
      x15 = j15, u;

  for (var i = 0; i < 20; i += 2) {
    u = x0 + x12 | 0;
    x4 ^= u<<7 | u>>>(32-7);
    u = x4 + x0 | 0;
    x8 ^= u<<9 | u>>>(32-9);
    u = x8 + x4 | 0;
    x12 ^= u<<13 | u>>>(32-13);
    u = x12 + x8 | 0;
    x0 ^= u<<18 | u>>>(32-18);

    u = x5 + x1 | 0;
    x9 ^= u<<7 | u>>>(32-7);
    u = x9 + x5 | 0;
    x13 ^= u<<9 | u>>>(32-9);
    u = x13 + x9 | 0;
    x1 ^= u<<13 | u>>>(32-13);
    u = x1 + x13 | 0;
    x5 ^= u<<18 | u>>>(32-18);

    u = x10 + x6 | 0;
    x14 ^= u<<7 | u>>>(32-7);
    u = x14 + x10 | 0;
    x2 ^= u<<9 | u>>>(32-9);
    u = x2 + x14 | 0;
    x6 ^= u<<13 | u>>>(32-13);
    u = x6 + x2 | 0;
    x10 ^= u<<18 | u>>>(32-18);

    u = x15 + x11 | 0;
    x3 ^= u<<7 | u>>>(32-7);
    u = x3 + x15 | 0;
    x7 ^= u<<9 | u>>>(32-9);
    u = x7 + x3 | 0;
    x11 ^= u<<13 | u>>>(32-13);
    u = x11 + x7 | 0;
    x15 ^= u<<18 | u>>>(32-18);

    u = x0 + x3 | 0;
    x1 ^= u<<7 | u>>>(32-7);
    u = x1 + x0 | 0;
    x2 ^= u<<9 | u>>>(32-9);
    u = x2 + x1 | 0;
    x3 ^= u<<13 | u>>>(32-13);
    u = x3 + x2 | 0;
    x0 ^= u<<18 | u>>>(32-18);

    u = x5 + x4 | 0;
    x6 ^= u<<7 | u>>>(32-7);
    u = x6 + x5 | 0;
    x7 ^= u<<9 | u>>>(32-9);
    u = x7 + x6 | 0;
    x4 ^= u<<13 | u>>>(32-13);
    u = x4 + x7 | 0;
    x5 ^= u<<18 | u>>>(32-18);

    u = x10 + x9 | 0;
    x11 ^= u<<7 | u>>>(32-7);
    u = x11 + x10 | 0;
    x8 ^= u<<9 | u>>>(32-9);
    u = x8 + x11 | 0;
    x9 ^= u<<13 | u>>>(32-13);
    u = x9 + x8 | 0;
    x10 ^= u<<18 | u>>>(32-18);

    u = x15 + x14 | 0;
    x12 ^= u<<7 | u>>>(32-7);
    u = x12 + x15 | 0;
    x13 ^= u<<9 | u>>>(32-9);
    u = x13 + x12 | 0;
    x14 ^= u<<13 | u>>>(32-13);
    u = x14 + x13 | 0;
    x15 ^= u<<18 | u>>>(32-18);
  }
   x0 =  x0 +  j0 | 0;
   x1 =  x1 +  j1 | 0;
   x2 =  x2 +  j2 | 0;
   x3 =  x3 +  j3 | 0;
   x4 =  x4 +  j4 | 0;
   x5 =  x5 +  j5 | 0;
   x6 =  x6 +  j6 | 0;
   x7 =  x7 +  j7 | 0;
   x8 =  x8 +  j8 | 0;
   x9 =  x9 +  j9 | 0;
  x10 = x10 + j10 | 0;
  x11 = x11 + j11 | 0;
  x12 = x12 + j12 | 0;
  x13 = x13 + j13 | 0;
  x14 = x14 + j14 | 0;
  x15 = x15 + j15 | 0;

  o[ 0] = x0 >>>  0 & 0xff;
  o[ 1] = x0 >>>  8 & 0xff;
  o[ 2] = x0 >>> 16 & 0xff;
  o[ 3] = x0 >>> 24 & 0xff;

  o[ 4] = x1 >>>  0 & 0xff;
  o[ 5] = x1 >>>  8 & 0xff;
  o[ 6] = x1 >>> 16 & 0xff;
  o[ 7] = x1 >>> 24 & 0xff;

  o[ 8] = x2 >>>  0 & 0xff;
  o[ 9] = x2 >>>  8 & 0xff;
  o[10] = x2 >>> 16 & 0xff;
  o[11] = x2 >>> 24 & 0xff;

  o[12] = x3 >>>  0 & 0xff;
  o[13] = x3 >>>  8 & 0xff;
  o[14] = x3 >>> 16 & 0xff;
  o[15] = x3 >>> 24 & 0xff;

  o[16] = x4 >>>  0 & 0xff;
  o[17] = x4 >>>  8 & 0xff;
  o[18] = x4 >>> 16 & 0xff;
  o[19] = x4 >>> 24 & 0xff;

  o[20] = x5 >>>  0 & 0xff;
  o[21] = x5 >>>  8 & 0xff;
  o[22] = x5 >>> 16 & 0xff;
  o[23] = x5 >>> 24 & 0xff;

  o[24] = x6 >>>  0 & 0xff;
  o[25] = x6 >>>  8 & 0xff;
  o[26] = x6 >>> 16 & 0xff;
  o[27] = x6 >>> 24 & 0xff;

  o[28] = x7 >>>  0 & 0xff;
  o[29] = x7 >>>  8 & 0xff;
  o[30] = x7 >>> 16 & 0xff;
  o[31] = x7 >>> 24 & 0xff;

  o[32] = x8 >>>  0 & 0xff;
  o[33] = x8 >>>  8 & 0xff;
  o[34] = x8 >>> 16 & 0xff;
  o[35] = x8 >>> 24 & 0xff;

  o[36] = x9 >>>  0 & 0xff;
  o[37] = x9 >>>  8 & 0xff;
  o[38] = x9 >>> 16 & 0xff;
  o[39] = x9 >>> 24 & 0xff;

  o[40] = x10 >>>  0 & 0xff;
  o[41] = x10 >>>  8 & 0xff;
  o[42] = x10 >>> 16 & 0xff;
  o[43] = x10 >>> 24 & 0xff;

  o[44] = x11 >>>  0 & 0xff;
  o[45] = x11 >>>  8 & 0xff;
  o[46] = x11 >>> 16 & 0xff;
  o[47] = x11 >>> 24 & 0xff;

  o[48] = x12 >>>  0 & 0xff;
  o[49] = x12 >>>  8 & 0xff;
  o[50] = x12 >>> 16 & 0xff;
  o[51] = x12 >>> 24 & 0xff;

  o[52] = x13 >>>  0 & 0xff;
  o[53] = x13 >>>  8 & 0xff;
  o[54] = x13 >>> 16 & 0xff;
  o[55] = x13 >>> 24 & 0xff;

  o[56] = x14 >>>  0 & 0xff;
  o[57] = x14 >>>  8 & 0xff;
  o[58] = x14 >>> 16 & 0xff;
  o[59] = x14 >>> 24 & 0xff;

  o[60] = x15 >>>  0 & 0xff;
  o[61] = x15 >>>  8 & 0xff;
  o[62] = x15 >>> 16 & 0xff;
  o[63] = x15 >>> 24 & 0xff;
}

function core_hsalsa20(o,p,k,c) {
  var j0  = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,
      j1  = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,
      j2  = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,
      j3  = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,
      j4  = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,
      j5  = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,
      j6  = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,
      j7  = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,
      j8  = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,
      j9  = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,
      j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,
      j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,
      j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,
      j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,
      j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,
      j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;

  var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,
      x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,
      x15 = j15, u;

  for (var i = 0; i < 20; i += 2) {
    u = x0 + x12 | 0;
    x4 ^= u<<7 | u>>>(32-7);
    u = x4 + x0 | 0;
    x8 ^= u<<9 | u>>>(32-9);
    u = x8 + x4 | 0;
    x12 ^= u<<13 | u>>>(32-13);
    u = x12 + x8 | 0;
    x0 ^= u<<18 | u>>>(32-18);

    u = x5 + x1 | 0;
    x9 ^= u<<7 | u>>>(32-7);
    u = x9 + x5 | 0;
    x13 ^= u<<9 | u>>>(32-9);
    u = x13 + x9 | 0;
    x1 ^= u<<13 | u>>>(32-13);
    u = x1 + x13 | 0;
    x5 ^= u<<18 | u>>>(32-18);

    u = x10 + x6 | 0;
    x14 ^= u<<7 | u>>>(32-7);
    u = x14 + x10 | 0;
    x2 ^= u<<9 | u>>>(32-9);
    u = x2 + x14 | 0;
    x6 ^= u<<13 | u>>>(32-13);
    u = x6 + x2 | 0;
    x10 ^= u<<18 | u>>>(32-18);

    u = x15 + x11 | 0;
    x3 ^= u<<7 | u>>>(32-7);
    u = x3 + x15 | 0;
    x7 ^= u<<9 | u>>>(32-9);
    u = x7 + x3 | 0;
    x11 ^= u<<13 | u>>>(32-13);
    u = x11 + x7 | 0;
    x15 ^= u<<18 | u>>>(32-18);

    u = x0 + x3 | 0;
    x1 ^= u<<7 | u>>>(32-7);
    u = x1 + x0 | 0;
    x2 ^= u<<9 | u>>>(32-9);
    u = x2 + x1 | 0;
    x3 ^= u<<13 | u>>>(32-13);
    u = x3 + x2 | 0;
    x0 ^= u<<18 | u>>>(32-18);

    u = x5 + x4 | 0;
    x6 ^= u<<7 | u>>>(32-7);
    u = x6 + x5 | 0;
    x7 ^= u<<9 | u>>>(32-9);
    u = x7 + x6 | 0;
    x4 ^= u<<13 | u>>>(32-13);
    u = x4 + x7 | 0;
    x5 ^= u<<18 | u>>>(32-18);

    u = x10 + x9 | 0;
    x11 ^= u<<7 | u>>>(32-7);
    u = x11 + x10 | 0;
    x8 ^= u<<9 | u>>>(32-9);
    u = x8 + x11 | 0;
    x9 ^= u<<13 | u>>>(32-13);
    u = x9 + x8 | 0;
    x10 ^= u<<18 | u>>>(32-18);

    u = x15 + x14 | 0;
    x12 ^= u<<7 | u>>>(32-7);
    u = x12 + x15 | 0;
    x13 ^= u<<9 | u>>>(32-9);
    u = x13 + x12 | 0;
    x14 ^= u<<13 | u>>>(32-13);
    u = x14 + x13 | 0;
    x15 ^= u<<18 | u>>>(32-18);
  }

  o[ 0] = x0 >>>  0 & 0xff;
  o[ 1] = x0 >>>  8 & 0xff;
  o[ 2] = x0 >>> 16 & 0xff;
  o[ 3] = x0 >>> 24 & 0xff;

  o[ 4] = x5 >>>  0 & 0xff;
  o[ 5] = x5 >>>  8 & 0xff;
  o[ 6] = x5 >>> 16 & 0xff;
  o[ 7] = x5 >>> 24 & 0xff;

  o[ 8] = x10 >>>  0 & 0xff;
  o[ 9] = x10 >>>  8 & 0xff;
  o[10] = x10 >>> 16 & 0xff;
  o[11] = x10 >>> 24 & 0xff;

  o[12] = x15 >>>  0 & 0xff;
  o[13] = x15 >>>  8 & 0xff;
  o[14] = x15 >>> 16 & 0xff;
  o[15] = x15 >>> 24 & 0xff;

  o[16] = x6 >>>  0 & 0xff;
  o[17] = x6 >>>  8 & 0xff;
  o[18] = x6 >>> 16 & 0xff;
  o[19] = x6 >>> 24 & 0xff;

  o[20] = x7 >>>  0 & 0xff;
  o[21] = x7 >>>  8 & 0xff;
  o[22] = x7 >>> 16 & 0xff;
  o[23] = x7 >>> 24 & 0xff;

  o[24] = x8 >>>  0 & 0xff;
  o[25] = x8 >>>  8 & 0xff;
  o[26] = x8 >>> 16 & 0xff;
  o[27] = x8 >>> 24 & 0xff;

  o[28] = x9 >>>  0 & 0xff;
  o[29] = x9 >>>  8 & 0xff;
  o[30] = x9 >>> 16 & 0xff;
  o[31] = x9 >>> 24 & 0xff;
}

function crypto_core_salsa20(out,inp,k,c) {
  core_salsa20(out,inp,k,c);
}

function crypto_core_hsalsa20(out,inp,k,c) {
  core_hsalsa20(out,inp,k,c);
}

var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);
            // "expand 32-byte k"

function crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {
  var z = new Uint8Array(16), x = new Uint8Array(64);
  var u, i;
  for (i = 0; i < 16; i++) z[i] = 0;
  for (i = 0; i < 8; i++) z[i] = n[i];
  while (b >= 64) {
    crypto_core_salsa20(x,z,k,sigma);
    for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];
    u = 1;
    for (i = 8; i < 16; i++) {
      u = u + (z[i] & 0xff) | 0;
      z[i] = u & 0xff;
      u >>>= 8;
    }
    b -= 64;
    cpos += 64;
    mpos += 64;
  }
  if (b > 0) {
    crypto_core_salsa20(x,z,k,sigma);
    for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];
  }
  return 0;
}

function crypto_stream_salsa20(c,cpos,b,n,k) {
  var z = new Uint8Array(16), x = new Uint8Array(64);
  var u, i;
  for (i = 0; i < 16; i++) z[i] = 0;
  for (i = 0; i < 8; i++) z[i] = n[i];
  while (b >= 64) {
    crypto_core_salsa20(x,z,k,sigma);
    for (i = 0; i < 64; i++) c[cpos+i] = x[i];
    u = 1;
    for (i = 8; i < 16; i++) {
      u = u + (z[i] & 0xff) | 0;
      z[i] = u & 0xff;
      u >>>= 8;
    }
    b -= 64;
    cpos += 64;
  }
  if (b > 0) {
    crypto_core_salsa20(x,z,k,sigma);
    for (i = 0; i < b; i++) c[cpos+i] = x[i];
  }
  return 0;
}

function crypto_stream(c,cpos,d,n,k) {
  var s = new Uint8Array(32);
  crypto_core_hsalsa20(s,n,k,sigma);
  var sn = new Uint8Array(8);
  for (var i = 0; i < 8; i++) sn[i] = n[i+16];
  return crypto_stream_salsa20(c,cpos,d,sn,s);
}

function crypto_stream_xor(c,cpos,m,mpos,d,n,k) {
  var s = new Uint8Array(32);
  crypto_core_hsalsa20(s,n,k,sigma);
  var sn = new Uint8Array(8);
  for (var i = 0; i < 8; i++) sn[i] = n[i+16];
  return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);
}

/*
* Port of Andrew Moon's Poly1305-donna-16. Public domain.
* https://github.com/floodyberry/poly1305-donna
*/

var poly1305 = function(key) {
  this.buffer = new Uint8Array(16);
  this.r = new Uint16Array(10);
  this.h = new Uint16Array(10);
  this.pad = new Uint16Array(8);
  this.leftover = 0;
  this.fin = 0;

  var t0, t1, t2, t3, t4, t5, t6, t7;

  t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0                     ) & 0x1fff;
  t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 <<  3)) & 0x1fff;
  t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 <<  6)) & 0x1f03;
  t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>>  7) | (t3 <<  9)) & 0x1fff;
  t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>>  4) | (t4 << 12)) & 0x00ff;
  this.r[5] = ((t4 >>>  1)) & 0x1ffe;
  t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 <<  2)) & 0x1fff;
  t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 <<  5)) & 0x1f81;
  t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>>  8) | (t7 <<  8)) & 0x1fff;
  this.r[9] = ((t7 >>>  5)) & 0x007f;

  this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;
  this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;
  this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;
  this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;
  this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;
  this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;
  this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;
  this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;
};

poly1305.prototype.blocks = function(m, mpos, bytes) {
  var hibit = this.fin ? 0 : (1 << 11);
  var t0, t1, t2, t3, t4, t5, t6, t7, c;
  var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;

  var h0 = this.h[0],
      h1 = this.h[1],
      h2 = this.h[2],
      h3 = this.h[3],
      h4 = this.h[4],
      h5 = this.h[5],
      h6 = this.h[6],
      h7 = this.h[7],
      h8 = this.h[8],
      h9 = this.h[9];

  var r0 = this.r[0],
      r1 = this.r[1],
      r2 = this.r[2],
      r3 = this.r[3],
      r4 = this.r[4],
      r5 = this.r[5],
      r6 = this.r[6],
      r7 = this.r[7],
      r8 = this.r[8],
      r9 = this.r[9];

  while (bytes >= 16) {
    t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0                     ) & 0x1fff;
    t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 <<  3)) & 0x1fff;
    t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 <<  6)) & 0x1fff;
    t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>>  7) | (t3 <<  9)) & 0x1fff;
    t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>>  4) | (t4 << 12)) & 0x1fff;
    h5 += ((t4 >>>  1)) & 0x1fff;
    t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 <<  2)) & 0x1fff;
    t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 <<  5)) & 0x1fff;
    t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>>  8) | (t7 <<  8)) & 0x1fff;
    h9 += ((t7 >>> 5)) | hibit;

    c = 0;

    d0 = c;
    d0 += h0 * r0;
    d0 += h1 * (5 * r9);
    d0 += h2 * (5 * r8);
    d0 += h3 * (5 * r7);
    d0 += h4 * (5 * r6);
    c = (d0 >>> 13); d0 &= 0x1fff;
    d0 += h5 * (5 * r5);
    d0 += h6 * (5 * r4);
    d0 += h7 * (5 * r3);
    d0 += h8 * (5 * r2);
    d0 += h9 * (5 * r1);
    c += (d0 >>> 13); d0 &= 0x1fff;

    d1 = c;
    d1 += h0 * r1;
    d1 += h1 * r0;
    d1 += h2 * (5 * r9);
    d1 += h3 * (5 * r8);
    d1 += h4 * (5 * r7);
    c = (d1 >>> 13); d1 &= 0x1fff;
    d1 += h5 * (5 * r6);
    d1 += h6 * (5 * r5);
    d1 += h7 * (5 * r4);
    d1 += h8 * (5 * r3);
    d1 += h9 * (5 * r2);
    c += (d1 >>> 13); d1 &= 0x1fff;

    d2 = c;
    d2 += h0 * r2;
    d2 += h1 * r1;
    d2 += h2 * r0;
    d2 += h3 * (5 * r9);
    d2 += h4 * (5 * r8);
    c = (d2 >>> 13); d2 &= 0x1fff;
    d2 += h5 * (5 * r7);
    d2 += h6 * (5 * r6);
    d2 += h7 * (5 * r5);
    d2 += h8 * (5 * r4);
    d2 += h9 * (5 * r3);
    c += (d2 >>> 13); d2 &= 0x1fff;

    d3 = c;
    d3 += h0 * r3;
    d3 += h1 * r2;
    d3 += h2 * r1;
    d3 += h3 * r0;
    d3 += h4 * (5 * r9);
    c = (d3 >>> 13); d3 &= 0x1fff;
    d3 += h5 * (5 * r8);
    d3 += h6 * (5 * r7);
    d3 += h7 * (5 * r6);
    d3 += h8 * (5 * r5);
    d3 += h9 * (5 * r4);
    c += (d3 >>> 13); d3 &= 0x1fff;

    d4 = c;
    d4 += h0 * r4;
    d4 += h1 * r3;
    d4 += h2 * r2;
    d4 += h3 * r1;
    d4 += h4 * r0;
    c = (d4 >>> 13); d4 &= 0x1fff;
    d4 += h5 * (5 * r9);
    d4 += h6 * (5 * r8);
    d4 += h7 * (5 * r7);
    d4 += h8 * (5 * r6);
    d4 += h9 * (5 * r5);
    c += (d4 >>> 13); d4 &= 0x1fff;

    d5 = c;
    d5 += h0 * r5;
    d5 += h1 * r4;
    d5 += h2 * r3;
    d5 += h3 * r2;
    d5 += h4 * r1;
    c = (d5 >>> 13); d5 &= 0x1fff;
    d5 += h5 * r0;
    d5 += h6 * (5 * r9);
    d5 += h7 * (5 * r8);
    d5 += h8 * (5 * r7);
    d5 += h9 * (5 * r6);
    c += (d5 >>> 13); d5 &= 0x1fff;

    d6 = c;
    d6 += h0 * r6;
    d6 += h1 * r5;
    d6 += h2 * r4;
    d6 += h3 * r3;
    d6 += h4 * r2;
    c = (d6 >>> 13); d6 &= 0x1fff;
    d6 += h5 * r1;
    d6 += h6 * r0;
    d6 += h7 * (5 * r9);
    d6 += h8 * (5 * r8);
    d6 += h9 * (5 * r7);
    c += (d6 >>> 13); d6 &= 0x1fff;

    d7 = c;
    d7 += h0 * r7;
    d7 += h1 * r6;
    d7 += h2 * r5;
    d7 += h3 * r4;
    d7 += h4 * r3;
    c = (d7 >>> 13); d7 &= 0x1fff;
    d7 += h5 * r2;
    d7 += h6 * r1;
    d7 += h7 * r0;
    d7 += h8 * (5 * r9);
    d7 += h9 * (5 * r8);
    c += (d7 >>> 13); d7 &= 0x1fff;

    d8 = c;
    d8 += h0 * r8;
    d8 += h1 * r7;
    d8 += h2 * r6;
    d8 += h3 * r5;
    d8 += h4 * r4;
    c = (d8 >>> 13); d8 &= 0x1fff;
    d8 += h5 * r3;
    d8 += h6 * r2;
    d8 += h7 * r1;
    d8 += h8 * r0;
    d8 += h9 * (5 * r9);
    c += (d8 >>> 13); d8 &= 0x1fff;

    d9 = c;
    d9 += h0 * r9;
    d9 += h1 * r8;
    d9 += h2 * r7;
    d9 += h3 * r6;
    d9 += h4 * r5;
    c = (d9 >>> 13); d9 &= 0x1fff;
    d9 += h5 * r4;
    d9 += h6 * r3;
    d9 += h7 * r2;
    d9 += h8 * r1;
    d9 += h9 * r0;
    c += (d9 >>> 13); d9 &= 0x1fff;

    c = (((c << 2) + c)) | 0;
    c = (c + d0) | 0;
    d0 = c & 0x1fff;
    c = (c >>> 13);
    d1 += c;

    h0 = d0;
    h1 = d1;
    h2 = d2;
    h3 = d3;
    h4 = d4;
    h5 = d5;
    h6 = d6;
    h7 = d7;
    h8 = d8;
    h9 = d9;

    mpos += 16;
    bytes -= 16;
  }
  this.h[0] = h0;
  this.h[1] = h1;
  this.h[2] = h2;
  this.h[3] = h3;
  this.h[4] = h4;
  this.h[5] = h5;
  this.h[6] = h6;
  this.h[7] = h7;
  this.h[8] = h8;
  this.h[9] = h9;
};

poly1305.prototype.finish = function(mac, macpos) {
  var g = new Uint16Array(10);
  var c, mask, f, i;

  if (this.leftover) {
    i = this.leftover;
    this.buffer[i++] = 1;
    for (; i < 16; i++) this.buffer[i] = 0;
    this.fin = 1;
    this.blocks(this.buffer, 0, 16);
  }

  c = this.h[1] >>> 13;
  this.h[1] &= 0x1fff;
  for (i = 2; i < 10; i++) {
    this.h[i] += c;
    c = this.h[i] >>> 13;
    this.h[i] &= 0x1fff;
  }
  this.h[0] += (c * 5);
  c = this.h[0] >>> 13;
  this.h[0] &= 0x1fff;
  this.h[1] += c;
  c = this.h[1] >>> 13;
  this.h[1] &= 0x1fff;
  this.h[2] += c;

  g[0] = this.h[0] + 5;
  c = g[0] >>> 13;
  g[0] &= 0x1fff;
  for (i = 1; i < 10; i++) {
    g[i] = this.h[i] + c;
    c = g[i] >>> 13;
    g[i] &= 0x1fff;
  }
  g[9] -= (1 << 13);

  mask = (c ^ 1) - 1;
  for (i = 0; i < 10; i++) g[i] &= mask;
  mask = ~mask;
  for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];

  this.h[0] = ((this.h[0]       ) | (this.h[1] << 13)                    ) & 0xffff;
  this.h[1] = ((this.h[1] >>>  3) | (this.h[2] << 10)                    ) & 0xffff;
  this.h[2] = ((this.h[2] >>>  6) | (this.h[3] <<  7)                    ) & 0xffff;
  this.h[3] = ((this.h[3] >>>  9) | (this.h[4] <<  4)                    ) & 0xffff;
  this.h[4] = ((this.h[4] >>> 12) | (this.h[5] <<  1) | (this.h[6] << 14)) & 0xffff;
  this.h[5] = ((this.h[6] >>>  2) | (this.h[7] << 11)                    ) & 0xffff;
  this.h[6] = ((this.h[7] >>>  5) | (this.h[8] <<  8)                    ) & 0xffff;
  this.h[7] = ((this.h[8] >>>  8) | (this.h[9] <<  5)                    ) & 0xffff;

  f = this.h[0] + this.pad[0];
  this.h[0] = f & 0xffff;
  for (i = 1; i < 8; i++) {
    f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;
    this.h[i] = f & 0xffff;
  }

  mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;
  mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;
  mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;
  mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;
  mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;
  mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;
  mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;
  mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;
  mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;
  mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;
  mac[macpos+10] = (this.h[5] >>> 0) & 0xff;
  mac[macpos+11] = (this.h[5] >>> 8) & 0xff;
  mac[macpos+12] = (this.h[6] >>> 0) & 0xff;
  mac[macpos+13] = (this.h[6] >>> 8) & 0xff;
  mac[macpos+14] = (this.h[7] >>> 0) & 0xff;
  mac[macpos+15] = (this.h[7] >>> 8) & 0xff;
};

poly1305.prototype.update = function(m, mpos, bytes) {
  var i, want;

  if (this.leftover) {
    want = (16 - this.leftover);
    if (want > bytes)
      want = bytes;
    for (i = 0; i < want; i++)
      this.buffer[this.leftover + i] = m[mpos+i];
    bytes -= want;
    mpos += want;
    this.leftover += want;
    if (this.leftover < 16)
      return;
    this.blocks(this.buffer, 0, 16);
    this.leftover = 0;
  }

  if (bytes >= 16) {
    want = bytes - (bytes % 16);
    this.blocks(m, mpos, want);
    mpos += want;
    bytes -= want;
  }

  if (bytes) {
    for (i = 0; i < bytes; i++)
      this.buffer[this.leftover + i] = m[mpos+i];
    this.leftover += bytes;
  }
};

function crypto_onetimeauth(out, outpos, m, mpos, n, k) {
  var s = new poly1305(k);
  s.update(m, mpos, n);
  s.finish(out, outpos);
  return 0;
}

function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {
  var x = new Uint8Array(16);
  crypto_onetimeauth(x,0,m,mpos,n,k);
  return crypto_verify_16(h,hpos,x,0);
}

function crypto_secretbox(c,m,d,n,k) {
  var i;
  if (d < 32) return -1;
  crypto_stream_xor(c,0,m,0,d,n,k);
  crypto_onetimeauth(c, 16, c, 32, d - 32, c);
  for (i = 0; i < 16; i++) c[i] = 0;
  return 0;
}

function crypto_secretbox_open(m,c,d,n,k) {
  var i;
  var x = new Uint8Array(32);
  if (d < 32) return -1;
  crypto_stream(x,0,32,n,k);
  if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;
  crypto_stream_xor(m,0,c,0,d,n,k);
  for (i = 0; i < 32; i++) m[i] = 0;
  return 0;
}

function set25519(r, a) {
  var i;
  for (i = 0; i < 16; i++) r[i] = a[i]|0;
}

function car25519(o) {
  var i, v, c = 1;
  for (i = 0; i < 16; i++) {
    v = o[i] + c + 65535;
    c = Math.floor(v / 65536);
    o[i] = v - c * 65536;
  }
  o[0] += c-1 + 37 * (c-1);
}

function sel25519(p, q, b) {
  var t, c = ~(b-1);
  for (var i = 0; i < 16; i++) {
    t = c & (p[i] ^ q[i]);
    p[i] ^= t;
    q[i] ^= t;
  }
}

function pack25519(o, n) {
  var i, j, b;
  var m = gf(), t = gf();
  for (i = 0; i < 16; i++) t[i] = n[i];
  car25519(t);
  car25519(t);
  car25519(t);
  for (j = 0; j < 2; j++) {
    m[0] = t[0] - 0xffed;
    for (i = 1; i < 15; i++) {
      m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);
      m[i-1] &= 0xffff;
    }
    m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);
    b = (m[15]>>16) & 1;
    m[14] &= 0xffff;
    sel25519(t, m, 1-b);
  }
  for (i = 0; i < 16; i++) {
    o[2*i] = t[i] & 0xff;
    o[2*i+1] = t[i]>>8;
  }
}

function neq25519(a, b) {
  var c = new Uint8Array(32), d = new Uint8Array(32);
  pack25519(c, a);
  pack25519(d, b);
  return crypto_verify_32(c, 0, d, 0);
}

function par25519(a) {
  var d = new Uint8Array(32);
  pack25519(d, a);
  return d[0] & 1;
}

function unpack25519(o, n) {
  var i;
  for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);
  o[15] &= 0x7fff;
}

function A(o, a, b) {
  for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];
}

function Z(o, a, b) {
  for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];
}

function M(o, a, b) {
  var v, c,
     t0 = 0,  t1 = 0,  t2 = 0,  t3 = 0,  t4 = 0,  t5 = 0,  t6 = 0,  t7 = 0,
     t8 = 0,  t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,
    t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,
    t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,
    b0 = b[0],
    b1 = b[1],
    b2 = b[2],
    b3 = b[3],
    b4 = b[4],
    b5 = b[5],
    b6 = b[6],
    b7 = b[7],
    b8 = b[8],
    b9 = b[9],
    b10 = b[10],
    b11 = b[11],
    b12 = b[12],
    b13 = b[13],
    b14 = b[14],
    b15 = b[15];

  v = a[0];
  t0 += v * b0;
  t1 += v * b1;
  t2 += v * b2;
  t3 += v * b3;
  t4 += v * b4;
  t5 += v * b5;
  t6 += v * b6;
  t7 += v * b7;
  t8 += v * b8;
  t9 += v * b9;
  t10 += v * b10;
  t11 += v * b11;
  t12 += v * b12;
  t13 += v * b13;
  t14 += v * b14;
  t15 += v * b15;
  v = a[1];
  t1 += v * b0;
  t2 += v * b1;
  t3 += v * b2;
  t4 += v * b3;
  t5 += v * b4;
  t6 += v * b5;
  t7 += v * b6;
  t8 += v * b7;
  t9 += v * b8;
  t10 += v * b9;
  t11 += v * b10;
  t12 += v * b11;
  t13 += v * b12;
  t14 += v * b13;
  t15 += v * b14;
  t16 += v * b15;
  v = a[2];
  t2 += v * b0;
  t3 += v * b1;
  t4 += v * b2;
  t5 += v * b3;
  t6 += v * b4;
  t7 += v * b5;
  t8 += v * b6;
  t9 += v * b7;
  t10 += v * b8;
  t11 += v * b9;
  t12 += v * b10;
  t13 += v * b11;
  t14 += v * b12;
  t15 += v * b13;
  t16 += v * b14;
  t17 += v * b15;
  v = a[3];
  t3 += v * b0;
  t4 += v * b1;
  t5 += v * b2;
  t6 += v * b3;
  t7 += v * b4;
  t8 += v * b5;
  t9 += v * b6;
  t10 += v * b7;
  t11 += v * b8;
  t12 += v * b9;
  t13 += v * b10;
  t14 += v * b11;
  t15 += v * b12;
  t16 += v * b13;
  t17 += v * b14;
  t18 += v * b15;
  v = a[4];
  t4 += v * b0;
  t5 += v * b1;
  t6 += v * b2;
  t7 += v * b3;
  t8 += v * b4;
  t9 += v * b5;
  t10 += v * b6;
  t11 += v * b7;
  t12 += v * b8;
  t13 += v * b9;
  t14 += v * b10;
  t15 += v * b11;
  t16 += v * b12;
  t17 += v * b13;
  t18 += v * b14;
  t19 += v * b15;
  v = a[5];
  t5 += v * b0;
  t6 += v * b1;
  t7 += v * b2;
  t8 += v * b3;
  t9 += v * b4;
  t10 += v * b5;
  t11 += v * b6;
  t12 += v * b7;
  t13 += v * b8;
  t14 += v * b9;
  t15 += v * b10;
  t16 += v * b11;
  t17 += v * b12;
  t18 += v * b13;
  t19 += v * b14;
  t20 += v * b15;
  v = a[6];
  t6 += v * b0;
  t7 += v * b1;
  t8 += v * b2;
  t9 += v * b3;
  t10 += v * b4;
  t11 += v * b5;
  t12 += v * b6;
  t13 += v * b7;
  t14 += v * b8;
  t15 += v * b9;
  t16 += v * b10;
  t17 += v * b11;
  t18 += v * b12;
  t19 += v * b13;
  t20 += v * b14;
  t21 += v * b15;
  v = a[7];
  t7 += v * b0;
  t8 += v * b1;
  t9 += v * b2;
  t10 += v * b3;
  t11 += v * b4;
  t12 += v * b5;
  t13 += v * b6;
  t14 += v * b7;
  t15 += v * b8;
  t16 += v * b9;
  t17 += v * b10;
  t18 += v * b11;
  t19 += v * b12;
  t20 += v * b13;
  t21 += v * b14;
  t22 += v * b15;
  v = a[8];
  t8 += v * b0;
  t9 += v * b1;
  t10 += v * b2;
  t11 += v * b3;
  t12 += v * b4;
  t13 += v * b5;
  t14 += v * b6;
  t15 += v * b7;
  t16 += v * b8;
  t17 += v * b9;
  t18 += v * b10;
  t19 += v * b11;
  t20 += v * b12;
  t21 += v * b13;
  t22 += v * b14;
  t23 += v * b15;
  v = a[9];
  t9 += v * b0;
  t10 += v * b1;
  t11 += v * b2;
  t12 += v * b3;
  t13 += v * b4;
  t14 += v * b5;
  t15 += v * b6;
  t16 += v * b7;
  t17 += v * b8;
  t18 += v * b9;
  t19 += v * b10;
  t20 += v * b11;
  t21 += v * b12;
  t22 += v * b13;
  t23 += v * b14;
  t24 += v * b15;
  v = a[10];
  t10 += v * b0;
  t11 += v * b1;
  t12 += v * b2;
  t13 += v * b3;
  t14 += v * b4;
  t15 += v * b5;
  t16 += v * b6;
  t17 += v * b7;
  t18 += v * b8;
  t19 += v * b9;
  t20 += v * b10;
  t21 += v * b11;
  t22 += v * b12;
  t23 += v * b13;
  t24 += v * b14;
  t25 += v * b15;
  v = a[11];
  t11 += v * b0;
  t12 += v * b1;
  t13 += v * b2;
  t14 += v * b3;
  t15 += v * b4;
  t16 += v * b5;
  t17 += v * b6;
  t18 += v * b7;
  t19 += v * b8;
  t20 += v * b9;
  t21 += v * b10;
  t22 += v * b11;
  t23 += v * b12;
  t24 += v * b13;
  t25 += v * b14;
  t26 += v * b15;
  v = a[12];
  t12 += v * b0;
  t13 += v * b1;
  t14 += v * b2;
  t15 += v * b3;
  t16 += v * b4;
  t17 += v * b5;
  t18 += v * b6;
  t19 += v * b7;
  t20 += v * b8;
  t21 += v * b9;
  t22 += v * b10;
  t23 += v * b11;
  t24 += v * b12;
  t25 += v * b13;
  t26 += v * b14;
  t27 += v * b15;
  v = a[13];
  t13 += v * b0;
  t14 += v * b1;
  t15 += v * b2;
  t16 += v * b3;
  t17 += v * b4;
  t18 += v * b5;
  t19 += v * b6;
  t20 += v * b7;
  t21 += v * b8;
  t22 += v * b9;
  t23 += v * b10;
  t24 += v * b11;
  t25 += v * b12;
  t26 += v * b13;
  t27 += v * b14;
  t28 += v * b15;
  v = a[14];
  t14 += v * b0;
  t15 += v * b1;
  t16 += v * b2;
  t17 += v * b3;
  t18 += v * b4;
  t19 += v * b5;
  t20 += v * b6;
  t21 += v * b7;
  t22 += v * b8;
  t23 += v * b9;
  t24 += v * b10;
  t25 += v * b11;
  t26 += v * b12;
  t27 += v * b13;
  t28 += v * b14;
  t29 += v * b15;
  v = a[15];
  t15 += v * b0;
  t16 += v * b1;
  t17 += v * b2;
  t18 += v * b3;
  t19 += v * b4;
  t20 += v * b5;
  t21 += v * b6;
  t22 += v * b7;
  t23 += v * b8;
  t24 += v * b9;
  t25 += v * b10;
  t26 += v * b11;
  t27 += v * b12;
  t28 += v * b13;
  t29 += v * b14;
  t30 += v * b15;

  t0  += 38 * t16;
  t1  += 38 * t17;
  t2  += 38 * t18;
  t3  += 38 * t19;
  t4  += 38 * t20;
  t5  += 38 * t21;
  t6  += 38 * t22;
  t7  += 38 * t23;
  t8  += 38 * t24;
  t9  += 38 * t25;
  t10 += 38 * t26;
  t11 += 38 * t27;
  t12 += 38 * t28;
  t13 += 38 * t29;
  t14 += 38 * t30;
  // t15 left as is

  // first car
  c = 1;
  v =  t0 + c + 65535; c = Math.floor(v / 65536);  t0 = v - c * 65536;
  v =  t1 + c + 65535; c = Math.floor(v / 65536);  t1 = v - c * 65536;
  v =  t2 + c + 65535; c = Math.floor(v / 65536);  t2 = v - c * 65536;
  v =  t3 + c + 65535; c = Math.floor(v / 65536);  t3 = v - c * 65536;
  v =  t4 + c + 65535; c = Math.floor(v / 65536);  t4 = v - c * 65536;
  v =  t5 + c + 65535; c = Math.floor(v / 65536);  t5 = v - c * 65536;
  v =  t6 + c + 65535; c = Math.floor(v / 65536);  t6 = v - c * 65536;
  v =  t7 + c + 65535; c = Math.floor(v / 65536);  t7 = v - c * 65536;
  v =  t8 + c + 65535; c = Math.floor(v / 65536);  t8 = v - c * 65536;
  v =  t9 + c + 65535; c = Math.floor(v / 65536);  t9 = v - c * 65536;
  v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;
  v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;
  v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;
  v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;
  v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;
  v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;
  t0 += c-1 + 37 * (c-1);

  // second car
  c = 1;
  v =  t0 + c + 65535; c = Math.floor(v / 65536);  t0 = v - c * 65536;
  v =  t1 + c + 65535; c = Math.floor(v / 65536);  t1 = v - c * 65536;
  v =  t2 + c + 65535; c = Math.floor(v / 65536);  t2 = v - c * 65536;
  v =  t3 + c + 65535; c = Math.floor(v / 65536);  t3 = v - c * 65536;
  v =  t4 + c + 65535; c = Math.floor(v / 65536);  t4 = v - c * 65536;
  v =  t5 + c + 65535; c = Math.floor(v / 65536);  t5 = v - c * 65536;
  v =  t6 + c + 65535; c = Math.floor(v / 65536);  t6 = v - c * 65536;
  v =  t7 + c + 65535; c = Math.floor(v / 65536);  t7 = v - c * 65536;
  v =  t8 + c + 65535; c = Math.floor(v / 65536);  t8 = v - c * 65536;
  v =  t9 + c + 65535; c = Math.floor(v / 65536);  t9 = v - c * 65536;
  v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;
  v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;
  v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;
  v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;
  v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;
  v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;
  t0 += c-1 + 37 * (c-1);

  o[ 0] = t0;
  o[ 1] = t1;
  o[ 2] = t2;
  o[ 3] = t3;
  o[ 4] = t4;
  o[ 5] = t5;
  o[ 6] = t6;
  o[ 7] = t7;
  o[ 8] = t8;
  o[ 9] = t9;
  o[10] = t10;
  o[11] = t11;
  o[12] = t12;
  o[13] = t13;
  o[14] = t14;
  o[15] = t15;
}

function S(o, a) {
  M(o, a, a);
}

function inv25519(o, i) {
  var c = gf();
  var a;
  for (a = 0; a < 16; a++) c[a] = i[a];
  for (a = 253; a >= 0; a--) {
    S(c, c);
    if(a !== 2 && a !== 4) M(c, c, i);
  }
  for (a = 0; a < 16; a++) o[a] = c[a];
}

function pow2523(o, i) {
  var c = gf();
  var a;
  for (a = 0; a < 16; a++) c[a] = i[a];
  for (a = 250; a >= 0; a--) {
      S(c, c);
      if(a !== 1) M(c, c, i);
  }
  for (a = 0; a < 16; a++) o[a] = c[a];
}

function crypto_scalarmult(q, n, p) {
  var z = new Uint8Array(32);
  var x = new Float64Array(80), r, i;
  var a = gf(), b = gf(), c = gf(),
      d = gf(), e = gf(), f = gf();
  for (i = 0; i < 31; i++) z[i] = n[i];
  z[31]=(n[31]&127)|64;
  z[0]&=248;
  unpack25519(x,p);
  for (i = 0; i < 16; i++) {
    b[i]=x[i];
    d[i]=a[i]=c[i]=0;
  }
  a[0]=d[0]=1;
  for (i=254; i>=0; --i) {
    r=(z[i>>>3]>>>(i&7))&1;
    sel25519(a,b,r);
    sel25519(c,d,r);
    A(e,a,c);
    Z(a,a,c);
    A(c,b,d);
    Z(b,b,d);
    S(d,e);
    S(f,a);
    M(a,c,a);
    M(c,b,e);
    A(e,a,c);
    Z(a,a,c);
    S(b,a);
    Z(c,d,f);
    M(a,c,_121665);
    A(a,a,d);
    M(c,c,a);
    M(a,d,f);
    M(d,b,x);
    S(b,e);
    sel25519(a,b,r);
    sel25519(c,d,r);
  }
  for (i = 0; i < 16; i++) {
    x[i+16]=a[i];
    x[i+32]=c[i];
    x[i+48]=b[i];
    x[i+64]=d[i];
  }
  var x32 = x.subarray(32);
  var x16 = x.subarray(16);
  inv25519(x32,x32);
  M(x16,x16,x32);
  pack25519(q,x16);
  return 0;
}

function crypto_scalarmult_base(q, n) {
  return crypto_scalarmult(q, n, _9);
}

function crypto_box_keypair(y, x) {
  randombytes(x, 32);
  return crypto_scalarmult_base(y, x);
}

function crypto_box_beforenm(k, y, x) {
  var s = new Uint8Array(32);
  crypto_scalarmult(s, x, y);
  return crypto_core_hsalsa20(k, _0, s, sigma);
}

var crypto_box_afternm = crypto_secretbox;
var crypto_box_open_afternm = crypto_secretbox_open;

function crypto_box(c, m, d, n, y, x) {
  var k = new Uint8Array(32);
  crypto_box_beforenm(k, y, x);
  return crypto_box_afternm(c, m, d, n, k);
}

function crypto_box_open(m, c, d, n, y, x) {
  var k = new Uint8Array(32);
  crypto_box_beforenm(k, y, x);
  return crypto_box_open_afternm(m, c, d, n, k);
}

var K = [
  0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
  0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
  0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
  0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
  0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
  0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
  0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
  0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
  0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
  0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
  0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
  0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
  0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
  0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
  0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
  0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
  0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
  0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
  0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
  0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
  0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
  0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
  0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
  0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
  0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
  0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
  0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
  0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
  0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
  0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
  0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
  0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
  0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
  0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
  0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
  0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
  0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
  0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
  0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
  0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
];

function crypto_hashblocks_hl(hh, hl, m, n) {
  var wh = new Int32Array(16), wl = new Int32Array(16),
      bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,
      bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,
      th, tl, i, j, h, l, a, b, c, d;

  var ah0 = hh[0],
      ah1 = hh[1],
      ah2 = hh[2],
      ah3 = hh[3],
      ah4 = hh[4],
      ah5 = hh[5],
      ah6 = hh[6],
      ah7 = hh[7],

      al0 = hl[0],
      al1 = hl[1],
      al2 = hl[2],
      al3 = hl[3],
      al4 = hl[4],
      al5 = hl[5],
      al6 = hl[6],
      al7 = hl[7];

  var pos = 0;
  while (n >= 128) {
    for (i = 0; i < 16; i++) {
      j = 8 * i + pos;
      wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];
      wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];
    }
    for (i = 0; i < 80; i++) {
      bh0 = ah0;
      bh1 = ah1;
      bh2 = ah2;
      bh3 = ah3;
      bh4 = ah4;
      bh5 = ah5;
      bh6 = ah6;
      bh7 = ah7;

      bl0 = al0;
      bl1 = al1;
      bl2 = al2;
      bl3 = al3;
      bl4 = al4;
      bl5 = al5;
      bl6 = al6;
      bl7 = al7;

      // add
      h = ah7;
      l = al7;

      a = l & 0xffff; b = l >>> 16;
      c = h & 0xffff; d = h >>> 16;

      // Sigma1
      h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));
      l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));

      a += l & 0xffff; b += l >>> 16;
      c += h & 0xffff; d += h >>> 16;

      // Ch
      h = (ah4 & ah5) ^ (~ah4 & ah6);
      l = (al4 & al5) ^ (~al4 & al6);

      a += l & 0xffff; b += l >>> 16;
      c += h & 0xffff; d += h >>> 16;

      // K
      h = K[i*2];
      l = K[i*2+1];

      a += l & 0xffff; b += l >>> 16;
      c += h & 0xffff; d += h >>> 16;

      // w
      h = wh[i%16];
      l = wl[i%16];

      a += l & 0xffff; b += l >>> 16;
      c += h & 0xffff; d += h >>> 16;

      b += a >>> 16;
      c += b >>> 16;
      d += c >>> 16;

      th = c & 0xffff | d << 16;
      tl = a & 0xffff | b << 16;

      // add
      h = th;
      l = tl;

      a = l & 0xffff; b = l >>> 16;
      c = h & 0xffff; d = h >>> 16;

      // Sigma0
      h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));
      l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));

      a += l & 0xffff; b += l >>> 16;
      c += h & 0xffff; d += h >>> 16;

      // Maj
      h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
      l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);

      a += l & 0xffff; b += l >>> 16;
      c += h & 0xffff; d += h >>> 16;

      b += a >>> 16;
      c += b >>> 16;
      d += c >>> 16;

      bh7 = (c & 0xffff) | (d << 16);
      bl7 = (a & 0xffff) | (b << 16);

      // add
      h = bh3;
      l = bl3;

      a = l & 0xffff; b = l >>> 16;
      c = h & 0xffff; d = h >>> 16;

      h = th;
      l = tl;

      a += l & 0xffff; b += l >>> 16;
      c += h & 0xffff; d += h >>> 16;

      b += a >>> 16;
      c += b >>> 16;
      d += c >>> 16;

      bh3 = (c & 0xffff) | (d << 16);
      bl3 = (a & 0xffff) | (b << 16);

      ah1 = bh0;
      ah2 = bh1;
      ah3 = bh2;
      ah4 = bh3;
      ah5 = bh4;
      ah6 = bh5;
      ah7 = bh6;
      ah0 = bh7;

      al1 = bl0;
      al2 = bl1;
      al3 = bl2;
      al4 = bl3;
      al5 = bl4;
      al6 = bl5;
      al7 = bl6;
      al0 = bl7;

      if (i%16 === 15) {
        for (j = 0; j < 16; j++) {
          // add
          h = wh[j];
          l = wl[j];

          a = l & 0xffff; b = l >>> 16;
          c = h & 0xffff; d = h >>> 16;

          h = wh[(j+9)%16];
          l = wl[(j+9)%16];

          a += l & 0xffff; b += l >>> 16;
          c += h & 0xffff; d += h >>> 16;

          // sigma0
          th = wh[(j+1)%16];
          tl = wl[(j+1)%16];
          h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);
          l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));

          a += l & 0xffff; b += l >>> 16;
          c += h & 0xffff; d += h >>> 16;

          // sigma1
          th = wh[(j+14)%16];
          tl = wl[(j+14)%16];
          h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);
          l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));

          a += l & 0xffff; b += l >>> 16;
          c += h & 0xffff; d += h >>> 16;

          b += a >>> 16;
          c += b >>> 16;
          d += c >>> 16;

          wh[j] = (c & 0xffff) | (d << 16);
          wl[j] = (a & 0xffff) | (b << 16);
        }
      }
    }

    // add
    h = ah0;
    l = al0;

    a = l & 0xffff; b = l >>> 16;
    c = h & 0xffff; d = h >>> 16;

    h = hh[0];
    l = hl[0];

    a += l & 0xffff; b += l >>> 16;
    c += h & 0xffff; d += h >>> 16;

    b += a >>> 16;
    c += b >>> 16;
    d += c >>> 16;

    hh[0] = ah0 = (c & 0xffff) | (d << 16);
    hl[0] = al0 = (a & 0xffff) | (b << 16);

    h = ah1;
    l = al1;

    a = l & 0xffff; b = l >>> 16;
    c = h & 0xffff; d = h >>> 16;

    h = hh[1];
    l = hl[1];

    a += l & 0xffff; b += l >>> 16;
    c += h & 0xffff; d += h >>> 16;

    b += a >>> 16;
    c += b >>> 16;
    d += c >>> 16;

    hh[1] = ah1 = (c & 0xffff) | (d << 16);
    hl[1] = al1 = (a & 0xffff) | (b << 16);

    h = ah2;
    l = al2;

    a = l & 0xffff; b = l >>> 16;
    c = h & 0xffff; d = h >>> 16;

    h = hh[2];
    l = hl[2];

    a += l & 0xffff; b += l >>> 16;
    c += h & 0xffff; d += h >>> 16;

    b += a >>> 16;
    c += b >>> 16;
    d += c >>> 16;

    hh[2] = ah2 = (c & 0xffff) | (d << 16);
    hl[2] = al2 = (a & 0xffff) | (b << 16);

    h = ah3;
    l = al3;

    a = l & 0xffff; b = l >>> 16;
    c = h & 0xffff; d = h >>> 16;

    h = hh[3];
    l = hl[3];

    a += l & 0xffff; b += l >>> 16;
    c += h & 0xffff; d += h >>> 16;

    b += a >>> 16;
    c += b >>> 16;
    d += c >>> 16;

    hh[3] = ah3 = (c & 0xffff) | (d << 16);
    hl[3] = al3 = (a & 0xffff) | (b << 16);

    h = ah4;
    l = al4;

    a = l & 0xffff; b = l >>> 16;
    c = h & 0xffff; d = h >>> 16;

    h = hh[4];
    l = hl[4];

    a += l & 0xffff; b += l >>> 16;
    c += h & 0xffff; d += h >>> 16;

    b += a >>> 16;
    c += b >>> 16;
    d += c >>> 16;

    hh[4] = ah4 = (c & 0xffff) | (d << 16);
    hl[4] = al4 = (a & 0xffff) | (b << 16);

    h = ah5;
    l = al5;

    a = l & 0xffff; b = l >>> 16;
    c = h & 0xffff; d = h >>> 16;

    h = hh[5];
    l = hl[5];

    a += l & 0xffff; b += l >>> 16;
    c += h & 0xffff; d += h >>> 16;

    b += a >>> 16;
    c += b >>> 16;
    d += c >>> 16;

    hh[5] = ah5 = (c & 0xffff) | (d << 16);
    hl[5] = al5 = (a & 0xffff) | (b << 16);

    h = ah6;
    l = al6;

    a = l & 0xffff; b = l >>> 16;
    c = h & 0xffff; d = h >>> 16;

    h = hh[6];
    l = hl[6];

    a += l & 0xffff; b += l >>> 16;
    c += h & 0xffff; d += h >>> 16;

    b += a >>> 16;
    c += b >>> 16;
    d += c >>> 16;

    hh[6] = ah6 = (c & 0xffff) | (d << 16);
    hl[6] = al6 = (a & 0xffff) | (b << 16);

    h = ah7;
    l = al7;

    a = l & 0xffff; b = l >>> 16;
    c = h & 0xffff; d = h >>> 16;

    h = hh[7];
    l = hl[7];

    a += l & 0xffff; b += l >>> 16;
    c += h & 0xffff; d += h >>> 16;

    b += a >>> 16;
    c += b >>> 16;
    d += c >>> 16;

    hh[7] = ah7 = (c & 0xffff) | (d << 16);
    hl[7] = al7 = (a & 0xffff) | (b << 16);

    pos += 128;
    n -= 128;
  }

  return n;
}

function crypto_hash(out, m, n) {
  var hh = new Int32Array(8),
      hl = new Int32Array(8),
      x = new Uint8Array(256),
      i, b = n;

  hh[0] = 0x6a09e667;
  hh[1] = 0xbb67ae85;
  hh[2] = 0x3c6ef372;
  hh[3] = 0xa54ff53a;
  hh[4] = 0x510e527f;
  hh[5] = 0x9b05688c;
  hh[6] = 0x1f83d9ab;
  hh[7] = 0x5be0cd19;

  hl[0] = 0xf3bcc908;
  hl[1] = 0x84caa73b;
  hl[2] = 0xfe94f82b;
  hl[3] = 0x5f1d36f1;
  hl[4] = 0xade682d1;
  hl[5] = 0x2b3e6c1f;
  hl[6] = 0xfb41bd6b;
  hl[7] = 0x137e2179;

  crypto_hashblocks_hl(hh, hl, m, n);
  n %= 128;

  for (i = 0; i < n; i++) x[i] = m[b-n+i];
  x[n] = 128;

  n = 256-128*(n<112?1:0);
  x[n-9] = 0;
  ts64(x, n-8,  (b / 0x20000000) | 0, b << 3);
  crypto_hashblocks_hl(hh, hl, x, n);

  for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);

  return 0;
}

function add(p, q) {
  var a = gf(), b = gf(), c = gf(),
      d = gf(), e = gf(), f = gf(),
      g = gf(), h = gf(), t = gf();

  Z(a, p[1], p[0]);
  Z(t, q[1], q[0]);
  M(a, a, t);
  A(b, p[0], p[1]);
  A(t, q[0], q[1]);
  M(b, b, t);
  M(c, p[3], q[3]);
  M(c, c, D2);
  M(d, p[2], q[2]);
  A(d, d, d);
  Z(e, b, a);
  Z(f, d, c);
  A(g, d, c);
  A(h, b, a);

  M(p[0], e, f);
  M(p[1], h, g);
  M(p[2], g, f);
  M(p[3], e, h);
}

function cswap(p, q, b) {
  var i;
  for (i = 0; i < 4; i++) {
    sel25519(p[i], q[i], b);
  }
}

function pack(r, p) {
  var tx = gf(), ty = gf(), zi = gf();
  inv25519(zi, p[2]);
  M(tx, p[0], zi);
  M(ty, p[1], zi);
  pack25519(r, ty);
  r[31] ^= par25519(tx) << 7;
}

function scalarmult(p, q, s) {
  var b, i;
  set25519(p[0], gf0);
  set25519(p[1], gf1);
  set25519(p[2], gf1);
  set25519(p[3], gf0);
  for (i = 255; i >= 0; --i) {
    b = (s[(i/8)|0] >> (i&7)) & 1;
    cswap(p, q, b);
    add(q, p);
    add(p, p);
    cswap(p, q, b);
  }
}

function scalarbase(p, s) {
  var q = [gf(), gf(), gf(), gf()];
  set25519(q[0], X);
  set25519(q[1], Y);
  set25519(q[2], gf1);
  M(q[3], X, Y);
  scalarmult(p, q, s);
}

function crypto_sign_keypair(pk, sk, seeded) {
  var d = new Uint8Array(64);
  var p = [gf(), gf(), gf(), gf()];
  var i;

  if (!seeded) randombytes(sk, 32);
  crypto_hash(d, sk, 32);
  d[0] &= 248;
  d[31] &= 127;
  d[31] |= 64;

  scalarbase(p, d);
  pack(pk, p);

  for (i = 0; i < 32; i++) sk[i+32] = pk[i];
  return 0;
}

var L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);

function modL(r, x) {
  var carry, i, j, k;
  for (i = 63; i >= 32; --i) {
    carry = 0;
    for (j = i - 32, k = i - 12; j < k; ++j) {
      x[j] += carry - 16 * x[i] * L[j - (i - 32)];
      carry = (x[j] + 128) >> 8;
      x[j] -= carry * 256;
    }
    x[j] += carry;
    x[i] = 0;
  }
  carry = 0;
  for (j = 0; j < 32; j++) {
    x[j] += carry - (x[31] >> 4) * L[j];
    carry = x[j] >> 8;
    x[j] &= 255;
  }
  for (j = 0; j < 32; j++) x[j] -= carry * L[j];
  for (i = 0; i < 32; i++) {
    x[i+1] += x[i] >> 8;
    r[i] = x[i] & 255;
  }
}

function reduce(r) {
  var x = new Float64Array(64), i;
  for (i = 0; i < 64; i++) x[i] = r[i];
  for (i = 0; i < 64; i++) r[i] = 0;
  modL(r, x);
}

// Note: difference from C - smlen returned, not passed as argument.
function crypto_sign(sm, m, n, sk) {
  var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);
  var i, j, x = new Float64Array(64);
  var p = [gf(), gf(), gf(), gf()];

  crypto_hash(d, sk, 32);
  d[0] &= 248;
  d[31] &= 127;
  d[31] |= 64;

  var smlen = n + 64;
  for (i = 0; i < n; i++) sm[64 + i] = m[i];
  for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];

  crypto_hash(r, sm.subarray(32), n+32);
  reduce(r);
  scalarbase(p, r);
  pack(sm, p);

  for (i = 32; i < 64; i++) sm[i] = sk[i];
  crypto_hash(h, sm, n + 64);
  reduce(h);

  for (i = 0; i < 64; i++) x[i] = 0;
  for (i = 0; i < 32; i++) x[i] = r[i];
  for (i = 0; i < 32; i++) {
    for (j = 0; j < 32; j++) {
      x[i+j] += h[i] * d[j];
    }
  }

  modL(sm.subarray(32), x);
  return smlen;
}

function unpackneg(r, p) {
  var t = gf(), chk = gf(), num = gf(),
      den = gf(), den2 = gf(), den4 = gf(),
      den6 = gf();

  set25519(r[2], gf1);
  unpack25519(r[1], p);
  S(num, r[1]);
  M(den, num, D);
  Z(num, num, r[2]);
  A(den, r[2], den);

  S(den2, den);
  S(den4, den2);
  M(den6, den4, den2);
  M(t, den6, num);
  M(t, t, den);

  pow2523(t, t);
  M(t, t, num);
  M(t, t, den);
  M(t, t, den);
  M(r[0], t, den);

  S(chk, r[0]);
  M(chk, chk, den);
  if (neq25519(chk, num)) M(r[0], r[0], I);

  S(chk, r[0]);
  M(chk, chk, den);
  if (neq25519(chk, num)) return -1;

  if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);

  M(r[3], r[0], r[1]);
  return 0;
}

function crypto_sign_open(m, sm, n, pk) {
  var i, mlen;
  var t = new Uint8Array(32), h = new Uint8Array(64);
  var p = [gf(), gf(), gf(), gf()],
      q = [gf(), gf(), gf(), gf()];

  mlen = -1;
  if (n < 64) return -1;

  if (unpackneg(q, pk)) return -1;

  for (i = 0; i < n; i++) m[i] = sm[i];
  for (i = 0; i < 32; i++) m[i+32] = pk[i];
  crypto_hash(h, m, n);
  reduce(h);
  scalarmult(p, q, h);

  scalarbase(q, sm.subarray(32));
  add(p, q);
  pack(t, p);

  n -= 64;
  if (crypto_verify_32(sm, 0, t, 0)) {
    for (i = 0; i < n; i++) m[i] = 0;
    return -1;
  }

  for (i = 0; i < n; i++) m[i] = sm[i + 64];
  mlen = n;
  return mlen;
}

var crypto_secretbox_KEYBYTES = 32,
    crypto_secretbox_NONCEBYTES = 24,
    crypto_secretbox_ZEROBYTES = 32,
    crypto_secretbox_BOXZEROBYTES = 16,
    crypto_scalarmult_BYTES = 32,
    crypto_scalarmult_SCALARBYTES = 32,
    crypto_box_PUBLICKEYBYTES = 32,
    crypto_box_SECRETKEYBYTES = 32,
    crypto_box_BEFORENMBYTES = 32,
    crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,
    crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,
    crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,
    crypto_sign_BYTES = 64,
    crypto_sign_PUBLICKEYBYTES = 32,
    crypto_sign_SECRETKEYBYTES = 64,
    crypto_sign_SEEDBYTES = 32,
    crypto_hash_BYTES = 64;

nacl.lowlevel = {
  crypto_core_hsalsa20: crypto_core_hsalsa20,
  crypto_stream_xor: crypto_stream_xor,
  crypto_stream: crypto_stream,
  crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,
  crypto_stream_salsa20: crypto_stream_salsa20,
  crypto_onetimeauth: crypto_onetimeauth,
  crypto_onetimeauth_verify: crypto_onetimeauth_verify,
  crypto_verify_16: crypto_verify_16,
  crypto_verify_32: crypto_verify_32,
  crypto_secretbox: crypto_secretbox,
  crypto_secretbox_open: crypto_secretbox_open,
  crypto_scalarmult: crypto_scalarmult,
  crypto_scalarmult_base: crypto_scalarmult_base,
  crypto_box_beforenm: crypto_box_beforenm,
  crypto_box_afternm: crypto_box_afternm,
  crypto_box: crypto_box,
  crypto_box_open: crypto_box_open,
  crypto_box_keypair: crypto_box_keypair,
  crypto_hash: crypto_hash,
  crypto_sign: crypto_sign,
  crypto_sign_keypair: crypto_sign_keypair,
  crypto_sign_open: crypto_sign_open,

  crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,
  crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,
  crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,
  crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,
  crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,
  crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,
  crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,
  crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,
  crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,
  crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,
  crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,
  crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,
  crypto_sign_BYTES: crypto_sign_BYTES,
  crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,
  crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,
  crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,
  crypto_hash_BYTES: crypto_hash_BYTES
};

/* High-level API */

function checkLengths(k, n) {
  if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');
  if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');
}

function checkBoxLengths(pk, sk) {
  if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');
  if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');
}

function checkArrayTypes() {
  var t, i;
  for (i = 0; i < arguments.length; i++) {
     if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]')
       throw new TypeError('unexpected type ' + t + ', use Uint8Array');
  }
}

function cleanup(arr) {
  for (var i = 0; i < arr.length; i++) arr[i] = 0;
}

// TODO: Completely remove this in v0.15.
if (!nacl.util) {
  nacl.util = {};
  nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function() {
    throw new Error('nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js');
  };
}

nacl.randomBytes = function(n) {
  var b = new Uint8Array(n);
  randombytes(b, n);
  return b;
};

nacl.secretbox = function(msg, nonce, key) {
  checkArrayTypes(msg, nonce, key);
  checkLengths(key, nonce);
  var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);
  var c = new Uint8Array(m.length);
  for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];
  crypto_secretbox(c, m, m.length, nonce, key);
  return c.subarray(crypto_secretbox_BOXZEROBYTES);
};

nacl.secretbox.open = function(box, nonce, key) {
  checkArrayTypes(box, nonce, key);
  checkLengths(key, nonce);
  var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);
  var m = new Uint8Array(c.length);
  for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];
  if (c.length < 32) return false;
  if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return false;
  return m.subarray(crypto_secretbox_ZEROBYTES);
};

nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;
nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;
nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;

nacl.scalarMult = function(n, p) {
  checkArrayTypes(n, p);
  if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');
  if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');
  var q = new Uint8Array(crypto_scalarmult_BYTES);
  crypto_scalarmult(q, n, p);
  return q;
};

nacl.scalarMult.base = function(n) {
  checkArrayTypes(n);
  if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');
  var q = new Uint8Array(crypto_scalarmult_BYTES);
  crypto_scalarmult_base(q, n);
  return q;
};

nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;
nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;

nacl.box = function(msg, nonce, publicKey, secretKey) {
  var k = nacl.box.before(publicKey, secretKey);
  return nacl.secretbox(msg, nonce, k);
};

nacl.box.before = function(publicKey, secretKey) {
  checkArrayTypes(publicKey, secretKey);
  checkBoxLengths(publicKey, secretKey);
  var k = new Uint8Array(crypto_box_BEFORENMBYTES);
  crypto_box_beforenm(k, publicKey, secretKey);
  return k;
};

nacl.box.after = nacl.secretbox;

nacl.box.open = function(msg, nonce, publicKey, secretKey) {
  var k = nacl.box.before(publicKey, secretKey);
  return nacl.secretbox.open(msg, nonce, k);
};

nacl.box.open.after = nacl.secretbox.open;

nacl.box.keyPair = function() {
  var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);
  var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);
  crypto_box_keypair(pk, sk);
  return {publicKey: pk, secretKey: sk};
};

nacl.box.keyPair.fromSecretKey = function(secretKey) {
  checkArrayTypes(secretKey);
  if (secretKey.length !== crypto_box_SECRETKEYBYTES)
    throw new Error('bad secret key size');
  var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);
  crypto_scalarmult_base(pk, secretKey);
  return {publicKey: pk, secretKey: new Uint8Array(secretKey)};
};

nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;
nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;
nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;
nacl.box.nonceLength = crypto_box_NONCEBYTES;
nacl.box.overheadLength = nacl.secretbox.overheadLength;

nacl.sign = function(msg, secretKey) {
  checkArrayTypes(msg, secretKey);
  if (secretKey.length !== crypto_sign_SECRETKEYBYTES)
    throw new Error('bad secret key size');
  var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);
  crypto_sign(signedMsg, msg, msg.length, secretKey);
  return signedMsg;
};

nacl.sign.open = function(signedMsg, publicKey) {
  if (arguments.length !== 2)
    throw new Error('nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?');
  checkArrayTypes(signedMsg, publicKey);
  if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
    throw new Error('bad public key size');
  var tmp = new Uint8Array(signedMsg.length);
  var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);
  if (mlen < 0) return null;
  var m = new Uint8Array(mlen);
  for (var i = 0; i < m.length; i++) m[i] = tmp[i];
  return m;
};

nacl.sign.detached = function(msg, secretKey) {
  var signedMsg = nacl.sign(msg, secretKey);
  var sig = new Uint8Array(crypto_sign_BYTES);
  for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];
  return sig;
};

nacl.sign.detached.verify = function(msg, sig, publicKey) {
  checkArrayTypes(msg, sig, publicKey);
  if (sig.length !== crypto_sign_BYTES)
    throw new Error('bad signature size');
  if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
    throw new Error('bad public key size');
  var sm = new Uint8Array(crypto_sign_BYTES + msg.length);
  var m = new Uint8Array(crypto_sign_BYTES + msg.length);
  var i;
  for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];
  for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];
  return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);
};

nacl.sign.keyPair = function() {
  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
  var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
  crypto_sign_keypair(pk, sk);
  return {publicKey: pk, secretKey: sk};
};

nacl.sign.keyPair.fromSecretKey = function(secretKey) {
  checkArrayTypes(secretKey);
  if (secretKey.length !== crypto_sign_SECRETKEYBYTES)
    throw new Error('bad secret key size');
  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
  for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];
  return {publicKey: pk, secretKey: new Uint8Array(secretKey)};
};

nacl.sign.keyPair.fromSeed = function(seed) {
  checkArrayTypes(seed);
  if (seed.length !== crypto_sign_SEEDBYTES)
    throw new Error('bad seed size');
  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
  var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
  for (var i = 0; i < 32; i++) sk[i] = seed[i];
  crypto_sign_keypair(pk, sk, true);
  return {publicKey: pk, secretKey: sk};
};

nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;
nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;
nacl.sign.seedLength = crypto_sign_SEEDBYTES;
nacl.sign.signatureLength = crypto_sign_BYTES;

nacl.hash = function(msg) {
  checkArrayTypes(msg);
  var h = new Uint8Array(crypto_hash_BYTES);
  crypto_hash(h, msg, msg.length);
  return h;
};

nacl.hash.hashLength = crypto_hash_BYTES;

nacl.verify = function(x, y) {
  checkArrayTypes(x, y);
  // Zero length arguments are considered not equal.
  if (x.length === 0 || y.length === 0) return false;
  if (x.length !== y.length) return false;
  return (vn(x, 0, y, 0, x.length) === 0) ? true : false;
};

nacl.setPRNG = function(fn) {
  randombytes = fn;
};

(function() {
  // Initialize PRNG if environment provides CSPRNG.
  // If not, methods calling randombytes will throw.
  var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;
  if (crypto && crypto.getRandomValues) {
    // Browsers.
    var QUOTA = 65536;
    nacl.setPRNG(function(x, n) {
      var i, v = new Uint8Array(n);
      for (i = 0; i < n; i += QUOTA) {
        crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));
      }
      for (i = 0; i < n; i++) x[i] = v[i];
      cleanup(v);
    });
  } else if (true) {
    // Node.js.
    crypto = __webpack_require__(57);
    if (crypto && crypto.randomBytes) {
      nacl.setPRNG(function(x, n) {
        var i, v = crypto.randomBytes(n);
        for (i = 0; i < n; i++) x[i] = v[i];
        cleanup(v);
      });
    }
  }
})();

})( true && module.exports ? module.exports : (self.nacl = self.nacl || {}));


/***/ }),
/* 354 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

module.exports = SSHBuffer;

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;

function SSHBuffer(opts) {
	assert.object(opts, 'options');
	if (opts.buffer !== undefined)
		assert.buffer(opts.buffer, 'options.buffer');

	this._size = opts.buffer ? opts.buffer.length : 1024;
	this._buffer = opts.buffer || Buffer.alloc(this._size);
	this._offset = 0;
}

SSHBuffer.prototype.toBuffer = function () {
	return (this._buffer.slice(0, this._offset));
};

SSHBuffer.prototype.atEnd = function () {
	return (this._offset >= this._buffer.length);
};

SSHBuffer.prototype.remainder = function () {
	return (this._buffer.slice(this._offset));
};

SSHBuffer.prototype.skip = function (n) {
	this._offset += n;
};

SSHBuffer.prototype.expand = function () {
	this._size *= 2;
	var buf = Buffer.alloc(this._size);
	this._buffer.copy(buf, 0);
	this._buffer = buf;
};

SSHBuffer.prototype.readPart = function () {
	return ({data: this.readBuffer()});
};

SSHBuffer.prototype.readBuffer = function () {
	var len = this._buffer.readUInt32BE(this._offset);
	this._offset += 4;
	assert.ok(this._offset + len <= this._buffer.length,
	    'length out of bounds at +0x' + this._offset.toString(16) +
	    ' (data truncated?)');
	var buf = this._buffer.slice(this._offset, this._offset + len);
	this._offset += len;
	return (buf);
};

SSHBuffer.prototype.readString = function () {
	return (this.readBuffer().toString());
};

SSHBuffer.prototype.readCString = function () {
	var offset = this._offset;
	while (offset < this._buffer.length &&
	    this._buffer[offset] !== 0x00)
		offset++;
	assert.ok(offset < this._buffer.length, 'c string does not terminate');
	var str = this._buffer.slice(this._offset, offset).toString();
	this._offset = offset + 1;
	return (str);
};

SSHBuffer.prototype.readInt = function () {
	var v = this._buffer.readUInt32BE(this._offset);
	this._offset += 4;
	return (v);
};

SSHBuffer.prototype.readInt64 = function () {
	assert.ok(this._offset + 8 < this._buffer.length,
	    'buffer not long enough to read Int64');
	var v = this._buffer.slice(this._offset, this._offset + 8);
	this._offset += 8;
	return (v);
};

SSHBuffer.prototype.readChar = function () {
	var v = this._buffer[this._offset++];
	return (v);
};

SSHBuffer.prototype.writeBuffer = function (buf) {
	while (this._offset + 4 + buf.length > this._size)
		this.expand();
	this._buffer.writeUInt32BE(buf.length, this._offset);
	this._offset += 4;
	buf.copy(this._buffer, this._offset);
	this._offset += buf.length;
};

SSHBuffer.prototype.writeString = function (str) {
	this.writeBuffer(Buffer.from(str, 'utf8'));
};

SSHBuffer.prototype.writeCString = function (str) {
	while (this._offset + 1 + str.length > this._size)
		this.expand();
	this._buffer.write(str, this._offset);
	this._offset += str.length;
	this._buffer[this._offset++] = 0;
};

SSHBuffer.prototype.writeInt = function (v) {
	while (this._offset + 4 > this._size)
		this.expand();
	this._buffer.writeUInt32BE(v, this._offset);
	this._offset += 4;
};

SSHBuffer.prototype.writeInt64 = function (v) {
	assert.buffer(v, 'value');
	if (v.length > 8) {
		var lead = v.slice(0, v.length - 8);
		for (var i = 0; i < lead.length; ++i) {
			assert.strictEqual(lead[i], 0,
			    'must fit in 64 bits of precision');
		}
		v = v.slice(v.length - 8, v.length);
	}
	while (this._offset + 8 > this._size)
		this.expand();
	v.copy(this._buffer, this._offset);
	this._offset += 8;
};

SSHBuffer.prototype.writeChar = function (v) {
	while (this._offset + 1 > this._size)
		this.expand();
	this._buffer[this._offset++] = v;
};

SSHBuffer.prototype.writePart = function (p) {
	this.writeBuffer(p.data);
};

SSHBuffer.prototype.write = function (buf) {
	while (this._offset + buf.length > this._size)
		this.expand();
	buf.copy(this._buffer, this._offset);
	this._offset += buf.length;
};


/***/ }),
/* 355 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2017 Joyent, Inc.

module.exports = {
	DiffieHellman: DiffieHellman,
	generateECDSA: generateECDSA,
	generateED25519: generateED25519
};

var assert = __webpack_require__(334);
var crypto = __webpack_require__(57);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var utils = __webpack_require__(344);
var nacl = __webpack_require__(353);

var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);

var CRYPTO_HAVE_ECDH = (crypto.createECDH !== undefined);

var ecdh = __webpack_require__(356);
var ec = __webpack_require__(351);
var jsbn = __webpack_require__(352).BigInteger;

function DiffieHellman(key) {
	utils.assertCompatible(key, Key, [1, 4], 'key');
	this._isPriv = PrivateKey.isPrivateKey(key, [1, 3]);
	this._algo = key.type;
	this._curve = key.curve;
	this._key = key;
	if (key.type === 'dsa') {
		if (!CRYPTO_HAVE_ECDH) {
			throw (new Error('Due to bugs in the node 0.10 ' +
			    'crypto API, node 0.12.x or later is required ' +
			    'to use DH'));
		}
		this._dh = crypto.createDiffieHellman(
		    key.part.p.data, undefined,
		    key.part.g.data, undefined);
		this._p = key.part.p;
		this._g = key.part.g;
		if (this._isPriv)
			this._dh.setPrivateKey(key.part.x.data);
		this._dh.setPublicKey(key.part.y.data);

	} else if (key.type === 'ecdsa') {
		if (!CRYPTO_HAVE_ECDH) {
			this._ecParams = new X9ECParameters(this._curve);

			if (this._isPriv) {
				this._priv = new ECPrivate(
				    this._ecParams, key.part.d.data);
			}
			return;
		}

		var curve = {
			'nistp256': 'prime256v1',
			'nistp384': 'secp384r1',
			'nistp521': 'secp521r1'
		}[key.curve];
		this._dh = crypto.createECDH(curve);
		if (typeof (this._dh) !== 'object' ||
		    typeof (this._dh.setPrivateKey) !== 'function') {
			CRYPTO_HAVE_ECDH = false;
			DiffieHellman.call(this, key);
			return;
		}
		if (this._isPriv)
			this._dh.setPrivateKey(key.part.d.data);
		this._dh.setPublicKey(key.part.Q.data);

	} else if (key.type === 'curve25519') {
		if (this._isPriv) {
			utils.assertCompatible(key, PrivateKey, [1, 5], 'key');
			this._priv = key.part.k.data;
		}

	} else {
		throw (new Error('DH not supported for ' + key.type + ' keys'));
	}
}

DiffieHellman.prototype.getPublicKey = function () {
	if (this._isPriv)
		return (this._key.toPublic());
	return (this._key);
};

DiffieHellman.prototype.getPrivateKey = function () {
	if (this._isPriv)
		return (this._key);
	else
		return (undefined);
};
DiffieHellman.prototype.getKey = DiffieHellman.prototype.getPrivateKey;

DiffieHellman.prototype._keyCheck = function (pk, isPub) {
	assert.object(pk, 'key');
	if (!isPub)
		utils.assertCompatible(pk, PrivateKey, [1, 3], 'key');
	utils.assertCompatible(pk, Key, [1, 4], 'key');

	if (pk.type !== this._algo) {
		throw (new Error('A ' + pk.type + ' key cannot be used in ' +
		    this._algo + ' Diffie-Hellman'));
	}

	if (pk.curve !== this._curve) {
		throw (new Error('A key from the ' + pk.curve + ' curve ' +
		    'cannot be used with a ' + this._curve +
		    ' Diffie-Hellman'));
	}

	if (pk.type === 'dsa') {
		assert.deepEqual(pk.part.p, this._p,
		    'DSA key prime does not match');
		assert.deepEqual(pk.part.g, this._g,
		    'DSA key generator does not match');
	}
};

DiffieHellman.prototype.setKey = function (pk) {
	this._keyCheck(pk);

	if (pk.type === 'dsa') {
		this._dh.setPrivateKey(pk.part.x.data);
		this._dh.setPublicKey(pk.part.y.data);

	} else if (pk.type === 'ecdsa') {
		if (CRYPTO_HAVE_ECDH) {
			this._dh.setPrivateKey(pk.part.d.data);
			this._dh.setPublicKey(pk.part.Q.data);
		} else {
			this._priv = new ECPrivate(
			    this._ecParams, pk.part.d.data);
		}

	} else if (pk.type === 'curve25519') {
		var k = pk.part.k;
		if (!pk.part.k)
			k = pk.part.r;
		this._priv = k.data;
		if (this._priv[0] === 0x00)
			this._priv = this._priv.slice(1);
		this._priv = this._priv.slice(0, 32);
	}
	this._key = pk;
	this._isPriv = true;
};
DiffieHellman.prototype.setPrivateKey = DiffieHellman.prototype.setKey;

DiffieHellman.prototype.computeSecret = function (otherpk) {
	this._keyCheck(otherpk, true);
	if (!this._isPriv)
		throw (new Error('DH exchange has not been initialized with ' +
		    'a private key yet'));

	var pub;
	if (this._algo === 'dsa') {
		return (this._dh.computeSecret(
		    otherpk.part.y.data));

	} else if (this._algo === 'ecdsa') {
		if (CRYPTO_HAVE_ECDH) {
			return (this._dh.computeSecret(
			    otherpk.part.Q.data));
		} else {
			pub = new ECPublic(
			    this._ecParams, otherpk.part.Q.data);
			return (this._priv.deriveSharedSecret(pub));
		}

	} else if (this._algo === 'curve25519') {
		pub = otherpk.part.A.data;
		while (pub[0] === 0x00 && pub.length > 32)
			pub = pub.slice(1);
		var priv = this._priv;
		assert.strictEqual(pub.length, 32);
		assert.strictEqual(priv.length, 32);

		var secret = nacl.box.before(new Uint8Array(pub),
		    new Uint8Array(priv));

		return (Buffer.from(secret));
	}

	throw (new Error('Invalid algorithm: ' + this._algo));
};

DiffieHellman.prototype.generateKey = function () {
	var parts = [];
	var priv, pub;
	if (this._algo === 'dsa') {
		this._dh.generateKeys();

		parts.push({name: 'p', data: this._p.data});
		parts.push({name: 'q', data: this._key.part.q.data});
		parts.push({name: 'g', data: this._g.data});
		parts.push({name: 'y', data: this._dh.getPublicKey()});
		parts.push({name: 'x', data: this._dh.getPrivateKey()});
		this._key = new PrivateKey({
			type: 'dsa',
			parts: parts
		});
		this._isPriv = true;
		return (this._key);

	} else if (this._algo === 'ecdsa') {
		if (CRYPTO_HAVE_ECDH) {
			this._dh.generateKeys();

			parts.push({name: 'curve',
			    data: Buffer.from(this._curve)});
			parts.push({name: 'Q', data: this._dh.getPublicKey()});
			parts.push({name: 'd', data: this._dh.getPrivateKey()});
			this._key = new PrivateKey({
				type: 'ecdsa',
				curve: this._curve,
				parts: parts
			});
			this._isPriv = true;
			return (this._key);

		} else {
			var n = this._ecParams.getN();
			var r = new jsbn(crypto.randomBytes(n.bitLength()));
			var n1 = n.subtract(jsbn.ONE);
			priv = r.mod(n1).add(jsbn.ONE);
			pub = this._ecParams.getG().multiply(priv);

			priv = Buffer.from(priv.toByteArray());
			pub = Buffer.from(this._ecParams.getCurve().
			    encodePointHex(pub), 'hex');

			this._priv = new ECPrivate(this._ecParams, priv);

			parts.push({name: 'curve',
			    data: Buffer.from(this._curve)});
			parts.push({name: 'Q', data: pub});
			parts.push({name: 'd', data: priv});

			this._key = new PrivateKey({
				type: 'ecdsa',
				curve: this._curve,
				parts: parts
			});
			this._isPriv = true;
			return (this._key);
		}

	} else if (this._algo === 'curve25519') {
		var pair = nacl.box.keyPair();
		priv = Buffer.from(pair.secretKey);
		pub = Buffer.from(pair.publicKey);
		priv = Buffer.concat([priv, pub]);
		assert.strictEqual(priv.length, 64);
		assert.strictEqual(pub.length, 32);

		parts.push({name: 'A', data: pub});
		parts.push({name: 'k', data: priv});
		this._key = new PrivateKey({
			type: 'curve25519',
			parts: parts
		});
		this._isPriv = true;
		return (this._key);
	}

	throw (new Error('Invalid algorithm: ' + this._algo));
};
DiffieHellman.prototype.generateKeys = DiffieHellman.prototype.generateKey;

/* These are helpers for using ecc-jsbn (for node 0.10 compatibility). */

function X9ECParameters(name) {
	var params = algs.curves[name];
	assert.object(params);

	var p = new jsbn(params.p);
	var a = new jsbn(params.a);
	var b = new jsbn(params.b);
	var n = new jsbn(params.n);
	var h = jsbn.ONE;
	var curve = new ec.ECCurveFp(p, a, b);
	var G = curve.decodePointHex(params.G.toString('hex'));

	this.curve = curve;
	this.g = G;
	this.n = n;
	this.h = h;
}
X9ECParameters.prototype.getCurve = function () { return (this.curve); };
X9ECParameters.prototype.getG = function () { return (this.g); };
X9ECParameters.prototype.getN = function () { return (this.n); };
X9ECParameters.prototype.getH = function () { return (this.h); };

function ECPublic(params, buffer) {
	this._params = params;
	if (buffer[0] === 0x00)
		buffer = buffer.slice(1);
	this._pub = params.getCurve().decodePointHex(buffer.toString('hex'));
}

function ECPrivate(params, buffer) {
	this._params = params;
	this._priv = new jsbn(utils.mpNormalize(buffer));
}
ECPrivate.prototype.deriveSharedSecret = function (pubKey) {
	assert.ok(pubKey instanceof ECPublic);
	var S = pubKey._pub.multiply(this._priv);
	return (Buffer.from(S.getX().toBigInteger().toByteArray()));
};

function generateED25519() {
	var pair = nacl.sign.keyPair();
	var priv = Buffer.from(pair.secretKey);
	var pub = Buffer.from(pair.publicKey);
	assert.strictEqual(priv.length, 64);
	assert.strictEqual(pub.length, 32);

	var parts = [];
	parts.push({name: 'A', data: pub});
	parts.push({name: 'k', data: priv.slice(0, 32)});
	var key = new PrivateKey({
		type: 'ed25519',
		parts: parts
	});
	return (key);
}

/* Generates a new ECDSA private key on a given curve. */
function generateECDSA(curve) {
	var parts = [];
	var key;

	if (CRYPTO_HAVE_ECDH) {
		/*
		 * Node crypto doesn't expose key generation directly, but the
		 * ECDH instances can generate keys. It turns out this just
		 * calls into the OpenSSL generic key generator, and we can
		 * read its output happily without doing an actual DH. So we
		 * use that here.
		 */
		var osCurve = {
			'nistp256': 'prime256v1',
			'nistp384': 'secp384r1',
			'nistp521': 'secp521r1'
		}[curve];

		var dh = crypto.createECDH(osCurve);
		dh.generateKeys();

		parts.push({name: 'curve',
		    data: Buffer.from(curve)});
		parts.push({name: 'Q', data: dh.getPublicKey()});
		parts.push({name: 'd', data: dh.getPrivateKey()});

		key = new PrivateKey({
			type: 'ecdsa',
			curve: curve,
			parts: parts
		});
		return (key);
	} else {

		var ecParams = new X9ECParameters(curve);

		/* This algorithm taken from FIPS PUB 186-4 (section B.4.1) */
		var n = ecParams.getN();
		/*
		 * The crypto.randomBytes() function can only give us whole
		 * bytes, so taking a nod from X9.62, we round up.
		 */
		var cByteLen = Math.ceil((n.bitLength() + 64) / 8);
		var c = new jsbn(crypto.randomBytes(cByteLen));

		var n1 = n.subtract(jsbn.ONE);
		var priv = c.mod(n1).add(jsbn.ONE);
		var pub = ecParams.getG().multiply(priv);

		priv = Buffer.from(priv.toByteArray());
		pub = Buffer.from(ecParams.getCurve().
		    encodePointHex(pub), 'hex');

		parts.push({name: 'curve', data: Buffer.from(curve)});
		parts.push({name: 'Q', data: pub});
		parts.push({name: 'd', data: priv});

		key = new PrivateKey({
			type: 'ecdsa',
			curve: curve,
			parts: parts
		});
		return (key);
	}
}


/***/ }),
/* 356 */
/***/ (function(module, exports, __webpack_require__) {

var crypto = __webpack_require__(57);
var BigInteger = __webpack_require__(352).BigInteger;
var ECPointFp = __webpack_require__(351).ECPointFp;
var Buffer = __webpack_require__(339).Buffer;
exports.ECCurves = __webpack_require__(357);

// zero prepad
function unstupid(hex,len)
{
	return (hex.length >= len) ? hex : unstupid("0"+hex,len);
}

exports.ECKey = function(curve, key, isPublic)
{
  var priv;
	var c = curve();
	var n = c.getN();
  var bytes = Math.floor(n.bitLength()/8);

  if(key)
  {
    if(isPublic)
    {
      var curve = c.getCurve();
//      var x = key.slice(1,bytes+1); // skip the 04 for uncompressed format
//      var y = key.slice(bytes+1);
//      this.P = new ECPointFp(curve,
//        curve.fromBigInteger(new BigInteger(x.toString("hex"), 16)),
//        curve.fromBigInteger(new BigInteger(y.toString("hex"), 16)));      
      this.P = curve.decodePointHex(key.toString("hex"));
    }else{
      if(key.length != bytes) return false;
      priv = new BigInteger(key.toString("hex"), 16);      
    }
  }else{
    var n1 = n.subtract(BigInteger.ONE);
    var r = new BigInteger(crypto.randomBytes(n.bitLength()));
    priv = r.mod(n1).add(BigInteger.ONE);
    this.P = c.getG().multiply(priv);
  }
  if(this.P)
  {
//  var pubhex = unstupid(this.P.getX().toBigInteger().toString(16),bytes*2)+unstupid(this.P.getY().toBigInteger().toString(16),bytes*2);
//  this.PublicKey = Buffer.from("04"+pubhex,"hex");
    this.PublicKey = Buffer.from(c.getCurve().encodeCompressedPointHex(this.P),"hex");
  }
  if(priv)
  {
    this.PrivateKey = Buffer.from(unstupid(priv.toString(16),bytes*2),"hex");
    this.deriveSharedSecret = function(key)
    {
      if(!key || !key.P) return false;
      var S = key.P.multiply(priv);
      return Buffer.from(unstupid(S.getX().toBigInteger().toString(16),bytes*2),"hex");
   }     
  }
}



/***/ }),
/* 357 */
/***/ (function(module, exports, __webpack_require__) {

// Named EC curves

// Requires ec.js, jsbn.js, and jsbn2.js
var BigInteger = __webpack_require__(352).BigInteger
var ECCurveFp = __webpack_require__(351).ECCurveFp


// ----------------
// X9ECParameters

// constructor
function X9ECParameters(curve,g,n,h) {
    this.curve = curve;
    this.g = g;
    this.n = n;
    this.h = h;
}

function x9getCurve() {
    return this.curve;
}

function x9getG() {
    return this.g;
}

function x9getN() {
    return this.n;
}

function x9getH() {
    return this.h;
}

X9ECParameters.prototype.getCurve = x9getCurve;
X9ECParameters.prototype.getG = x9getG;
X9ECParameters.prototype.getN = x9getN;
X9ECParameters.prototype.getH = x9getH;

// ----------------
// SECNamedCurves

function fromHex(s) { return new BigInteger(s, 16); }

function secp128r1() {
    // p = 2^128 - 2^97 - 1
    var p = fromHex("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF");
    var a = fromHex("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC");
    var b = fromHex("E87579C11079F43DD824993C2CEE5ED3");
    //byte[] S = Hex.decode("000E0D4D696E6768756151750CC03A4473D03679");
    var n = fromHex("FFFFFFFE0000000075A30D1B9038A115");
    var h = BigInteger.ONE;
    var curve = new ECCurveFp(p, a, b);
    var G = curve.decodePointHex("04"
                + "161FF7528B899B2D0C28607CA52C5B86"
		+ "CF5AC8395BAFEB13C02DA292DDED7A83");
    return new X9ECParameters(curve, G, n, h);
}

function secp160k1() {
    // p = 2^160 - 2^32 - 2^14 - 2^12 - 2^9 - 2^8 - 2^7 - 2^3 - 2^2 - 1
    var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73");
    var a = BigInteger.ZERO;
    var b = fromHex("7");
    //byte[] S = null;
    var n = fromHex("0100000000000000000001B8FA16DFAB9ACA16B6B3");
    var h = BigInteger.ONE;
    var curve = new ECCurveFp(p, a, b);
    var G = curve.decodePointHex("04"
                + "3B4C382CE37AA192A4019E763036F4F5DD4D7EBB"
                + "938CF935318FDCED6BC28286531733C3F03C4FEE");
    return new X9ECParameters(curve, G, n, h);
}

function secp160r1() {
    // p = 2^160 - 2^31 - 1
    var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF");
    var a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC");
    var b = fromHex("1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45");
    //byte[] S = Hex.decode("1053CDE42C14D696E67687561517533BF3F83345");
    var n = fromHex("0100000000000000000001F4C8F927AED3CA752257");
    var h = BigInteger.ONE;
    var curve = new ECCurveFp(p, a, b);
    var G = curve.decodePointHex("04"
		+ "4A96B5688EF573284664698968C38BB913CBFC82"
		+ "23A628553168947D59DCC912042351377AC5FB32");
    return new X9ECParameters(curve, G, n, h);
}

function secp192k1() {
    // p = 2^192 - 2^32 - 2^12 - 2^8 - 2^7 - 2^6 - 2^3 - 1
    var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37");
    var a = BigInteger.ZERO;
    var b = fromHex("3");
    //byte[] S = null;
    var n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D");
    var h = BigInteger.ONE;
    var curve = new ECCurveFp(p, a, b);
    var G = curve.decodePointHex("04"
                + "DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D"
                + "9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D");
    return new X9ECParameters(curve, G, n, h);
}

function secp192r1() {
    // p = 2^192 - 2^64 - 1
    var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF");
    var a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC");
    var b = fromHex("64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1");
    //byte[] S = Hex.decode("3045AE6FC8422F64ED579528D38120EAE12196D5");
    var n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831");
    var h = BigInteger.ONE;
    var curve = new ECCurveFp(p, a, b);
    var G = curve.decodePointHex("04"
                + "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012"
                + "07192B95FFC8DA78631011ED6B24CDD573F977A11E794811");
    return new X9ECParameters(curve, G, n, h);
}

function secp224r1() {
    // p = 2^224 - 2^96 + 1
    var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001");
    var a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE");
    var b = fromHex("B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4");
    //byte[] S = Hex.decode("BD71344799D5C7FCDC45B59FA3B9AB8F6A948BC5");
    var n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D");
    var h = BigInteger.ONE;
    var curve = new ECCurveFp(p, a, b);
    var G = curve.decodePointHex("04"
                + "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21"
                + "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34");
    return new X9ECParameters(curve, G, n, h);
}

function secp256r1() {
    // p = 2^224 (2^32 - 1) + 2^192 + 2^96 - 1
    var p = fromHex("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF");
    var a = fromHex("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC");
    var b = fromHex("5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B");
    //byte[] S = Hex.decode("C49D360886E704936A6678E1139D26B7819F7E90");
    var n = fromHex("FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551");
    var h = BigInteger.ONE;
    var curve = new ECCurveFp(p, a, b);
    var G = curve.decodePointHex("04"
                + "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296"
		+ "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5");
    return new X9ECParameters(curve, G, n, h);
}

// TODO: make this into a proper hashtable
function getSECCurveByName(name) {
    if(name == "secp128r1") return secp128r1();
    if(name == "secp160k1") return secp160k1();
    if(name == "secp160r1") return secp160r1();
    if(name == "secp192k1") return secp192k1();
    if(name == "secp192r1") return secp192r1();
    if(name == "secp224r1") return secp224r1();
    if(name == "secp256r1") return secp256r1();
    return null;
}

module.exports = {
  "secp128r1":secp128r1,
  "secp160k1":secp160k1,
  "secp160r1":secp160r1,
  "secp192k1":secp192k1,
  "secp192r1":secp192r1,
  "secp224r1":secp224r1,
  "secp256r1":secp256r1
}


/***/ }),
/* 358 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

module.exports = {
	Verifier: Verifier,
	Signer: Signer
};

var nacl = __webpack_require__(353);
var stream = __webpack_require__(111);
var util = __webpack_require__(113);
var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var Signature = __webpack_require__(343);

function Verifier(key, hashAlgo) {
	if (hashAlgo.toLowerCase() !== 'sha512')
		throw (new Error('ED25519 only supports the use of ' +
		    'SHA-512 hashes'));

	this.key = key;
	this.chunks = [];

	stream.Writable.call(this, {});
}
util.inherits(Verifier, stream.Writable);

Verifier.prototype._write = function (chunk, enc, cb) {
	this.chunks.push(chunk);
	cb();
};

Verifier.prototype.update = function (chunk) {
	if (typeof (chunk) === 'string')
		chunk = Buffer.from(chunk, 'binary');
	this.chunks.push(chunk);
};

Verifier.prototype.verify = function (signature, fmt) {
	var sig;
	if (Signature.isSignature(signature, [2, 0])) {
		if (signature.type !== 'ed25519')
			return (false);
		sig = signature.toBuffer('raw');

	} else if (typeof (signature) === 'string') {
		sig = Buffer.from(signature, 'base64');

	} else if (Signature.isSignature(signature, [1, 0])) {
		throw (new Error('signature was created by too old ' +
		    'a version of sshpk and cannot be verified'));
	}

	assert.buffer(sig);
	return (nacl.sign.detached.verify(
	    new Uint8Array(Buffer.concat(this.chunks)),
	    new Uint8Array(sig),
	    new Uint8Array(this.key.part.A.data)));
};

function Signer(key, hashAlgo) {
	if (hashAlgo.toLowerCase() !== 'sha512')
		throw (new Error('ED25519 only supports the use of ' +
		    'SHA-512 hashes'));

	this.key = key;
	this.chunks = [];

	stream.Writable.call(this, {});
}
util.inherits(Signer, stream.Writable);

Signer.prototype._write = function (chunk, enc, cb) {
	this.chunks.push(chunk);
	cb();
};

Signer.prototype.update = function (chunk) {
	if (typeof (chunk) === 'string')
		chunk = Buffer.from(chunk, 'binary');
	this.chunks.push(chunk);
};

Signer.prototype.sign = function () {
	var sig = nacl.sign.detached(
	    new Uint8Array(Buffer.concat(this.chunks)),
	    new Uint8Array(Buffer.concat([
		this.key.part.k.data, this.key.part.A.data])));
	var sigBuf = Buffer.from(sig);
	var sigObj = Signature.parse(sigBuf, 'ed25519', 'raw');
	sigObj.hashAlgorithm = 'sha512';
	return (sigObj);
};


/***/ }),
/* 359 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2018 Joyent, Inc.

module.exports = {
	read: read,
	write: write
};

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var utils = __webpack_require__(344);
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);

var pem = __webpack_require__(360);
var ssh = __webpack_require__(366);
var rfc4253 = __webpack_require__(364);
var dnssec = __webpack_require__(367);
var putty = __webpack_require__(368);

var DNSSEC_PRIVKEY_HEADER_PREFIX = 'Private-key-format: v1';

function read(buf, options) {
	if (typeof (buf) === 'string') {
		if (buf.trim().match(/^[-]+[ ]*BEGIN/))
			return (pem.read(buf, options));
		if (buf.match(/^\s*ssh-[a-z]/))
			return (ssh.read(buf, options));
		if (buf.match(/^\s*ecdsa-/))
			return (ssh.read(buf, options));
		if (buf.match(/^putty-user-key-file-2:/i))
			return (putty.read(buf, options));
		if (findDNSSECHeader(buf))
			return (dnssec.read(buf, options));
		buf = Buffer.from(buf, 'binary');
	} else {
		assert.buffer(buf);
		if (findPEMHeader(buf))
			return (pem.read(buf, options));
		if (findSSHHeader(buf))
			return (ssh.read(buf, options));
		if (findPuTTYHeader(buf))
			return (putty.read(buf, options));
		if (findDNSSECHeader(buf))
			return (dnssec.read(buf, options));
	}
	if (buf.readUInt32BE(0) < buf.length)
		return (rfc4253.read(buf, options));
	throw (new Error('Failed to auto-detect format of key'));
}

function findPuTTYHeader(buf) {
	var offset = 0;
	while (offset < buf.length &&
	    (buf[offset] === 32 || buf[offset] === 10 || buf[offset] === 9))
		++offset;
	if (offset + 22 <= buf.length &&
	    buf.slice(offset, offset + 22).toString('ascii').toLowerCase() ===
	    'putty-user-key-file-2:')
		return (true);
	return (false);
}

function findSSHHeader(buf) {
	var offset = 0;
	while (offset < buf.length &&
	    (buf[offset] === 32 || buf[offset] === 10 || buf[offset] === 9))
		++offset;
	if (offset + 4 <= buf.length &&
	    buf.slice(offset, offset + 4).toString('ascii') === 'ssh-')
		return (true);
	if (offset + 6 <= buf.length &&
	    buf.slice(offset, offset + 6).toString('ascii') === 'ecdsa-')
		return (true);
	return (false);
}

function findPEMHeader(buf) {
	var offset = 0;
	while (offset < buf.length &&
	    (buf[offset] === 32 || buf[offset] === 10))
		++offset;
	if (buf[offset] !== 45)
		return (false);
	while (offset < buf.length &&
	    (buf[offset] === 45))
		++offset;
	while (offset < buf.length &&
	    (buf[offset] === 32))
		++offset;
	if (offset + 5 > buf.length ||
	    buf.slice(offset, offset + 5).toString('ascii') !== 'BEGIN')
		return (false);
	return (true);
}

function findDNSSECHeader(buf) {
	// private case first
	if (buf.length <= DNSSEC_PRIVKEY_HEADER_PREFIX.length)
		return (false);
	var headerCheck = buf.slice(0, DNSSEC_PRIVKEY_HEADER_PREFIX.length);
	if (headerCheck.toString('ascii') === DNSSEC_PRIVKEY_HEADER_PREFIX)
		return (true);

	// public-key RFC3110 ?
	// 'domain.com. IN KEY ...' or 'domain.com. IN DNSKEY ...'
	// skip any comment-lines
	if (typeof (buf) !== 'string') {
		buf = buf.toString('ascii');
	}
	var lines = buf.split('\n');
	var line = 0;
	/* JSSTYLED */
	while (lines[line].match(/^\;/))
		line++;
	if (lines[line].toString('ascii').match(/\. IN KEY /))
		return (true);
	if (lines[line].toString('ascii').match(/\. IN DNSKEY /))
		return (true);
	return (false);
}

function write(key, options) {
	throw (new Error('"auto" format cannot be used for writing'));
}


/***/ }),
/* 360 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2018 Joyent, Inc.

module.exports = {
	read: read,
	write: write
};

var assert = __webpack_require__(334);
var asn1 = __webpack_require__(345);
var crypto = __webpack_require__(57);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var utils = __webpack_require__(344);
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);

var pkcs1 = __webpack_require__(361);
var pkcs8 = __webpack_require__(362);
var sshpriv = __webpack_require__(363);
var rfc4253 = __webpack_require__(364);

var errors = __webpack_require__(341);

var OID_PBES2 = '1.2.840.113549.1.5.13';
var OID_PBKDF2 = '1.2.840.113549.1.5.12';

var OID_TO_CIPHER = {
	'1.2.840.113549.3.7': '3des-cbc',
	'2.16.840.1.101.3.4.1.2': 'aes128-cbc',
	'2.16.840.1.101.3.4.1.42': 'aes256-cbc'
};
var CIPHER_TO_OID = {};
Object.keys(OID_TO_CIPHER).forEach(function (k) {
	CIPHER_TO_OID[OID_TO_CIPHER[k]] = k;
});

var OID_TO_HASH = {
	'1.2.840.113549.2.7': 'sha1',
	'1.2.840.113549.2.9': 'sha256',
	'1.2.840.113549.2.11': 'sha512'
};
var HASH_TO_OID = {};
Object.keys(OID_TO_HASH).forEach(function (k) {
	HASH_TO_OID[OID_TO_HASH[k]] = k;
});

/*
 * For reading we support both PKCS#1 and PKCS#8. If we find a private key,
 * we just take the public component of it and use that.
 */
function read(buf, options, forceType) {
	var input = buf;
	if (typeof (buf) !== 'string') {
		assert.buffer(buf, 'buf');
		buf = buf.toString('ascii');
	}

	var lines = buf.trim().split(/[\r\n]+/g);

	var m;
	var si = -1;
	while (!m && si < lines.length) {
		m = lines[++si].match(/*JSSTYLED*/
		    /[-]+[ ]*BEGIN ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);
	}
	assert.ok(m, 'invalid PEM header');

	var m2;
	var ei = lines.length;
	while (!m2 && ei > 0) {
		m2 = lines[--ei].match(/*JSSTYLED*/
		    /[-]+[ ]*END ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);
	}
	assert.ok(m2, 'invalid PEM footer');

	/* Begin and end banners must match key type */
	assert.equal(m[2], m2[2]);
	var type = m[2].toLowerCase();

	var alg;
	if (m[1]) {
		/* They also must match algorithms, if given */
		assert.equal(m[1], m2[1], 'PEM header and footer mismatch');
		alg = m[1].trim();
	}

	lines = lines.slice(si, ei + 1);

	var headers = {};
	while (true) {
		lines = lines.slice(1);
		m = lines[0].match(/*JSSTYLED*/
		    /^([A-Za-z0-9-]+): (.+)$/);
		if (!m)
			break;
		headers[m[1].toLowerCase()] = m[2];
	}

	/* Chop off the first and last lines */
	lines = lines.slice(0, -1).join('');
	buf = Buffer.from(lines, 'base64');

	var cipher, key, iv;
	if (headers['proc-type']) {
		var parts = headers['proc-type'].split(',');
		if (parts[0] === '4' && parts[1] === 'ENCRYPTED') {
			if (typeof (options.passphrase) === 'string') {
				options.passphrase = Buffer.from(
				    options.passphrase, 'utf-8');
			}
			if (!Buffer.isBuffer(options.passphrase)) {
				throw (new errors.KeyEncryptedError(
				    options.filename, 'PEM'));
			} else {
				parts = headers['dek-info'].split(',');
				assert.ok(parts.length === 2);
				cipher = parts[0].toLowerCase();
				iv = Buffer.from(parts[1], 'hex');
				key = utils.opensslKeyDeriv(cipher, iv,
				    options.passphrase, 1).key;
			}
		}
	}

	if (alg && alg.toLowerCase() === 'encrypted') {
		var eder = new asn1.BerReader(buf);
		var pbesEnd;
		eder.readSequence();

		eder.readSequence();
		pbesEnd = eder.offset + eder.length;

		var method = eder.readOID();
		if (method !== OID_PBES2) {
			throw (new Error('Unsupported PEM/PKCS8 encryption ' +
			    'scheme: ' + method));
		}

		eder.readSequence();	/* PBES2-params */

		eder.readSequence();	/* keyDerivationFunc */
		var kdfEnd = eder.offset + eder.length;
		var kdfOid = eder.readOID();
		if (kdfOid !== OID_PBKDF2)
			throw (new Error('Unsupported PBES2 KDF: ' + kdfOid));
		eder.readSequence();
		var salt = eder.readString(asn1.Ber.OctetString, true);
		var iterations = eder.readInt();
		var hashAlg = 'sha1';
		if (eder.offset < kdfEnd) {
			eder.readSequence();
			var hashAlgOid = eder.readOID();
			hashAlg = OID_TO_HASH[hashAlgOid];
			if (hashAlg === undefined) {
				throw (new Error('Unsupported PBKDF2 hash: ' +
				    hashAlgOid));
			}
		}
		eder._offset = kdfEnd;

		eder.readSequence();	/* encryptionScheme */
		var cipherOid = eder.readOID();
		cipher = OID_TO_CIPHER[cipherOid];
		if (cipher === undefined) {
			throw (new Error('Unsupported PBES2 cipher: ' +
			    cipherOid));
		}
		iv = eder.readString(asn1.Ber.OctetString, true);

		eder._offset = pbesEnd;
		buf = eder.readString(asn1.Ber.OctetString, true);

		if (typeof (options.passphrase) === 'string') {
			options.passphrase = Buffer.from(
			    options.passphrase, 'utf-8');
		}
		if (!Buffer.isBuffer(options.passphrase)) {
			throw (new errors.KeyEncryptedError(
			    options.filename, 'PEM'));
		}

		var cinfo = utils.opensshCipherInfo(cipher);

		cipher = cinfo.opensslName;
		key = utils.pbkdf2(hashAlg, salt, iterations, cinfo.keySize,
		    options.passphrase);
		alg = undefined;
	}

	if (cipher && key && iv) {
		var cipherStream = crypto.createDecipheriv(cipher, key, iv);
		var chunk, chunks = [];
		cipherStream.once('error', function (e) {
			if (e.toString().indexOf('bad decrypt') !== -1) {
				throw (new Error('Incorrect passphrase ' +
				    'supplied, could not decrypt key'));
			}
			throw (e);
		});
		cipherStream.write(buf);
		cipherStream.end();
		while ((chunk = cipherStream.read()) !== null)
			chunks.push(chunk);
		buf = Buffer.concat(chunks);
	}

	/* The new OpenSSH internal format abuses PEM headers */
	if (alg && alg.toLowerCase() === 'openssh')
		return (sshpriv.readSSHPrivate(type, buf, options));
	if (alg && alg.toLowerCase() === 'ssh2')
		return (rfc4253.readType(type, buf, options));

	var der = new asn1.BerReader(buf);
	der.originalInput = input;

	/*
	 * All of the PEM file types start with a sequence tag, so chop it
	 * off here
	 */
	der.readSequence();

	/* PKCS#1 type keys name an algorithm in the banner explicitly */
	if (alg) {
		if (forceType)
			assert.strictEqual(forceType, 'pkcs1');
		return (pkcs1.readPkcs1(alg, type, der));
	} else {
		if (forceType)
			assert.strictEqual(forceType, 'pkcs8');
		return (pkcs8.readPkcs8(alg, type, der));
	}
}

function write(key, options, type) {
	assert.object(key);

	var alg = {
	    'ecdsa': 'EC',
	    'rsa': 'RSA',
	    'dsa': 'DSA',
	    'ed25519': 'EdDSA'
	}[key.type];
	var header;

	var der = new asn1.BerWriter();

	if (PrivateKey.isPrivateKey(key)) {
		if (type && type === 'pkcs8') {
			header = 'PRIVATE KEY';
			pkcs8.writePkcs8(der, key);
		} else {
			if (type)
				assert.strictEqual(type, 'pkcs1');
			header = alg + ' PRIVATE KEY';
			pkcs1.writePkcs1(der, key);
		}

	} else if (Key.isKey(key)) {
		if (type && type === 'pkcs1') {
			header = alg + ' PUBLIC KEY';
			pkcs1.writePkcs1(der, key);
		} else {
			if (type)
				assert.strictEqual(type, 'pkcs8');
			header = 'PUBLIC KEY';
			pkcs8.writePkcs8(der, key);
		}

	} else {
		throw (new Error('key is not a Key or PrivateKey'));
	}

	var tmp = der.buffer.toString('base64');
	var len = tmp.length + (tmp.length / 64) +
	    18 + 16 + header.length*2 + 10;
	var buf = Buffer.alloc(len);
	var o = 0;
	o += buf.write('-----BEGIN ' + header + '-----\n', o);
	for (var i = 0; i < tmp.length; ) {
		var limit = i + 64;
		if (limit > tmp.length)
			limit = tmp.length;
		o += buf.write(tmp.slice(i, limit), o);
		buf[o++] = 10;
		i = limit;
	}
	o += buf.write('-----END ' + header + '-----\n', o);

	return (buf.slice(0, o));
}


/***/ }),
/* 361 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

module.exports = {
	read: read,
	readPkcs1: readPkcs1,
	write: write,
	writePkcs1: writePkcs1
};

var assert = __webpack_require__(334);
var asn1 = __webpack_require__(345);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var utils = __webpack_require__(344);

var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);
var pem = __webpack_require__(360);

var pkcs8 = __webpack_require__(362);
var readECDSACurve = pkcs8.readECDSACurve;

function read(buf, options) {
	return (pem.read(buf, options, 'pkcs1'));
}

function write(key, options) {
	return (pem.write(key, options, 'pkcs1'));
}

/* Helper to read in a single mpint */
function readMPInt(der, nm) {
	assert.strictEqual(der.peek(), asn1.Ber.Integer,
	    nm + ' is not an Integer');
	return (utils.mpNormalize(der.readString(asn1.Ber.Integer, true)));
}

function readPkcs1(alg, type, der) {
	switch (alg) {
	case 'RSA':
		if (type === 'public')
			return (readPkcs1RSAPublic(der));
		else if (type === 'private')
			return (readPkcs1RSAPrivate(der));
		throw (new Error('Unknown key type: ' + type));
	case 'DSA':
		if (type === 'public')
			return (readPkcs1DSAPublic(der));
		else if (type === 'private')
			return (readPkcs1DSAPrivate(der));
		throw (new Error('Unknown key type: ' + type));
	case 'EC':
	case 'ECDSA':
		if (type === 'private')
			return (readPkcs1ECDSAPrivate(der));
		else if (type === 'public')
			return (readPkcs1ECDSAPublic(der));
		throw (new Error('Unknown key type: ' + type));
	case 'EDDSA':
	case 'EdDSA':
		if (type === 'private')
			return (readPkcs1EdDSAPrivate(der));
		throw (new Error(type + ' keys not supported with EdDSA'));
	default:
		throw (new Error('Unknown key algo: ' + alg));
	}
}

function readPkcs1RSAPublic(der) {
	// modulus and exponent
	var n = readMPInt(der, 'modulus');
	var e = readMPInt(der, 'exponent');

	// now, make the key
	var key = {
		type: 'rsa',
		parts: [
			{ name: 'e', data: e },
			{ name: 'n', data: n }
		]
	};

	return (new Key(key));
}

function readPkcs1RSAPrivate(der) {
	var version = readMPInt(der, 'version');
	assert.strictEqual(version[0], 0);

	// modulus then public exponent
	var n = readMPInt(der, 'modulus');
	var e = readMPInt(der, 'public exponent');
	var d = readMPInt(der, 'private exponent');
	var p = readMPInt(der, 'prime1');
	var q = readMPInt(der, 'prime2');
	var dmodp = readMPInt(der, 'exponent1');
	var dmodq = readMPInt(der, 'exponent2');
	var iqmp = readMPInt(der, 'iqmp');

	// now, make the key
	var key = {
		type: 'rsa',
		parts: [
			{ name: 'n', data: n },
			{ name: 'e', data: e },
			{ name: 'd', data: d },
			{ name: 'iqmp', data: iqmp },
			{ name: 'p', data: p },
			{ name: 'q', data: q },
			{ name: 'dmodp', data: dmodp },
			{ name: 'dmodq', data: dmodq }
		]
	};

	return (new PrivateKey(key));
}

function readPkcs1DSAPrivate(der) {
	var version = readMPInt(der, 'version');
	assert.strictEqual(version.readUInt8(0), 0);

	var p = readMPInt(der, 'p');
	var q = readMPInt(der, 'q');
	var g = readMPInt(der, 'g');
	var y = readMPInt(der, 'y');
	var x = readMPInt(der, 'x');

	// now, make the key
	var key = {
		type: 'dsa',
		parts: [
			{ name: 'p', data: p },
			{ name: 'q', data: q },
			{ name: 'g', data: g },
			{ name: 'y', data: y },
			{ name: 'x', data: x }
		]
	};

	return (new PrivateKey(key));
}

function readPkcs1EdDSAPrivate(der) {
	var version = readMPInt(der, 'version');
	assert.strictEqual(version.readUInt8(0), 1);

	// private key
	var k = der.readString(asn1.Ber.OctetString, true);

	der.readSequence(0xa0);
	var oid = der.readOID();
	assert.strictEqual(oid, '1.3.101.112', 'the ed25519 curve identifier');

	der.readSequence(0xa1);
	var A = utils.readBitString(der);

	var key = {
		type: 'ed25519',
		parts: [
			{ name: 'A', data: utils.zeroPadToLength(A, 32) },
			{ name: 'k', data: k }
		]
	};

	return (new PrivateKey(key));
}

function readPkcs1DSAPublic(der) {
	var y = readMPInt(der, 'y');
	var p = readMPInt(der, 'p');
	var q = readMPInt(der, 'q');
	var g = readMPInt(der, 'g');

	var key = {
		type: 'dsa',
		parts: [
			{ name: 'y', data: y },
			{ name: 'p', data: p },
			{ name: 'q', data: q },
			{ name: 'g', data: g }
		]
	};

	return (new Key(key));
}

function readPkcs1ECDSAPublic(der) {
	der.readSequence();

	var oid = der.readOID();
	assert.strictEqual(oid, '1.2.840.10045.2.1', 'must be ecPublicKey');

	var curveOid = der.readOID();

	var curve;
	var curves = Object.keys(algs.curves);
	for (var j = 0; j < curves.length; ++j) {
		var c = curves[j];
		var cd = algs.curves[c];
		if (cd.pkcs8oid === curveOid) {
			curve = c;
			break;
		}
	}
	assert.string(curve, 'a known ECDSA named curve');

	var Q = der.readString(asn1.Ber.BitString, true);
	Q = utils.ecNormalize(Q);

	var key = {
		type: 'ecdsa',
		parts: [
			{ name: 'curve', data: Buffer.from(curve) },
			{ name: 'Q', data: Q }
		]
	};

	return (new Key(key));
}

function readPkcs1ECDSAPrivate(der) {
	var version = readMPInt(der, 'version');
	assert.strictEqual(version.readUInt8(0), 1);

	// private key
	var d = der.readString(asn1.Ber.OctetString, true);

	der.readSequence(0xa0);
	var curve = readECDSACurve(der);
	assert.string(curve, 'a known elliptic curve');

	der.readSequence(0xa1);
	var Q = der.readString(asn1.Ber.BitString, true);
	Q = utils.ecNormalize(Q);

	var key = {
		type: 'ecdsa',
		parts: [
			{ name: 'curve', data: Buffer.from(curve) },
			{ name: 'Q', data: Q },
			{ name: 'd', data: d }
		]
	};

	return (new PrivateKey(key));
}

function writePkcs1(der, key) {
	der.startSequence();

	switch (key.type) {
	case 'rsa':
		if (PrivateKey.isPrivateKey(key))
			writePkcs1RSAPrivate(der, key);
		else
			writePkcs1RSAPublic(der, key);
		break;
	case 'dsa':
		if (PrivateKey.isPrivateKey(key))
			writePkcs1DSAPrivate(der, key);
		else
			writePkcs1DSAPublic(der, key);
		break;
	case 'ecdsa':
		if (PrivateKey.isPrivateKey(key))
			writePkcs1ECDSAPrivate(der, key);
		else
			writePkcs1ECDSAPublic(der, key);
		break;
	case 'ed25519':
		if (PrivateKey.isPrivateKey(key))
			writePkcs1EdDSAPrivate(der, key);
		else
			writePkcs1EdDSAPublic(der, key);
		break;
	default:
		throw (new Error('Unknown key algo: ' + key.type));
	}

	der.endSequence();
}

function writePkcs1RSAPublic(der, key) {
	der.writeBuffer(key.part.n.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.e.data, asn1.Ber.Integer);
}

function writePkcs1RSAPrivate(der, key) {
	var ver = Buffer.from([0]);
	der.writeBuffer(ver, asn1.Ber.Integer);

	der.writeBuffer(key.part.n.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.e.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.d.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
	if (!key.part.dmodp || !key.part.dmodq)
		utils.addRSAMissing(key);
	der.writeBuffer(key.part.dmodp.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.dmodq.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.iqmp.data, asn1.Ber.Integer);
}

function writePkcs1DSAPrivate(der, key) {
	var ver = Buffer.from([0]);
	der.writeBuffer(ver, asn1.Ber.Integer);

	der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.g.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.y.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.x.data, asn1.Ber.Integer);
}

function writePkcs1DSAPublic(der, key) {
	der.writeBuffer(key.part.y.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.g.data, asn1.Ber.Integer);
}

function writePkcs1ECDSAPublic(der, key) {
	der.startSequence();

	der.writeOID('1.2.840.10045.2.1'); /* ecPublicKey */
	var curve = key.part.curve.data.toString();
	var curveOid = algs.curves[curve].pkcs8oid;
	assert.string(curveOid, 'a known ECDSA named curve');
	der.writeOID(curveOid);

	der.endSequence();

	var Q = utils.ecNormalize(key.part.Q.data, true);
	der.writeBuffer(Q, asn1.Ber.BitString);
}

function writePkcs1ECDSAPrivate(der, key) {
	var ver = Buffer.from([1]);
	der.writeBuffer(ver, asn1.Ber.Integer);

	der.writeBuffer(key.part.d.data, asn1.Ber.OctetString);

	der.startSequence(0xa0);
	var curve = key.part.curve.data.toString();
	var curveOid = algs.curves[curve].pkcs8oid;
	assert.string(curveOid, 'a known ECDSA named curve');
	der.writeOID(curveOid);
	der.endSequence();

	der.startSequence(0xa1);
	var Q = utils.ecNormalize(key.part.Q.data, true);
	der.writeBuffer(Q, asn1.Ber.BitString);
	der.endSequence();
}

function writePkcs1EdDSAPrivate(der, key) {
	var ver = Buffer.from([1]);
	der.writeBuffer(ver, asn1.Ber.Integer);

	der.writeBuffer(key.part.k.data, asn1.Ber.OctetString);

	der.startSequence(0xa0);
	der.writeOID('1.3.101.112');
	der.endSequence();

	der.startSequence(0xa1);
	utils.writeBitString(der, key.part.A.data);
	der.endSequence();
}

function writePkcs1EdDSAPublic(der, key) {
	throw (new Error('Public keys are not supported for EdDSA PKCS#1'));
}


/***/ }),
/* 362 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2018 Joyent, Inc.

module.exports = {
	read: read,
	readPkcs8: readPkcs8,
	write: write,
	writePkcs8: writePkcs8,
	pkcs8ToBuffer: pkcs8ToBuffer,

	readECDSACurve: readECDSACurve,
	writeECDSACurve: writeECDSACurve
};

var assert = __webpack_require__(334);
var asn1 = __webpack_require__(345);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var utils = __webpack_require__(344);
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);
var pem = __webpack_require__(360);

function read(buf, options) {
	return (pem.read(buf, options, 'pkcs8'));
}

function write(key, options) {
	return (pem.write(key, options, 'pkcs8'));
}

/* Helper to read in a single mpint */
function readMPInt(der, nm) {
	assert.strictEqual(der.peek(), asn1.Ber.Integer,
	    nm + ' is not an Integer');
	return (utils.mpNormalize(der.readString(asn1.Ber.Integer, true)));
}

function readPkcs8(alg, type, der) {
	/* Private keys in pkcs#8 format have a weird extra int */
	if (der.peek() === asn1.Ber.Integer) {
		assert.strictEqual(type, 'private',
		    'unexpected Integer at start of public key');
		der.readString(asn1.Ber.Integer, true);
	}

	der.readSequence();
	var next = der.offset + der.length;

	var oid = der.readOID();
	switch (oid) {
	case '1.2.840.113549.1.1.1':
		der._offset = next;
		if (type === 'public')
			return (readPkcs8RSAPublic(der));
		else
			return (readPkcs8RSAPrivate(der));
	case '1.2.840.10040.4.1':
		if (type === 'public')
			return (readPkcs8DSAPublic(der));
		else
			return (readPkcs8DSAPrivate(der));
	case '1.2.840.10045.2.1':
		if (type === 'public')
			return (readPkcs8ECDSAPublic(der));
		else
			return (readPkcs8ECDSAPrivate(der));
	case '1.3.101.112':
		if (type === 'public') {
			return (readPkcs8EdDSAPublic(der));
		} else {
			return (readPkcs8EdDSAPrivate(der));
		}
	case '1.3.101.110':
		if (type === 'public') {
			return (readPkcs8X25519Public(der));
		} else {
			return (readPkcs8X25519Private(der));
		}
	default:
		throw (new Error('Unknown key type OID ' + oid));
	}
}

function readPkcs8RSAPublic(der) {
	// bit string sequence
	der.readSequence(asn1.Ber.BitString);
	der.readByte();
	der.readSequence();

	// modulus
	var n = readMPInt(der, 'modulus');
	var e = readMPInt(der, 'exponent');

	// now, make the key
	var key = {
		type: 'rsa',
		source: der.originalInput,
		parts: [
			{ name: 'e', data: e },
			{ name: 'n', data: n }
		]
	};

	return (new Key(key));
}

function readPkcs8RSAPrivate(der) {
	der.readSequence(asn1.Ber.OctetString);
	der.readSequence();

	var ver = readMPInt(der, 'version');
	assert.equal(ver[0], 0x0, 'unknown RSA private key version');

	// modulus then public exponent
	var n = readMPInt(der, 'modulus');
	var e = readMPInt(der, 'public exponent');
	var d = readMPInt(der, 'private exponent');
	var p = readMPInt(der, 'prime1');
	var q = readMPInt(der, 'prime2');
	var dmodp = readMPInt(der, 'exponent1');
	var dmodq = readMPInt(der, 'exponent2');
	var iqmp = readMPInt(der, 'iqmp');

	// now, make the key
	var key = {
		type: 'rsa',
		parts: [
			{ name: 'n', data: n },
			{ name: 'e', data: e },
			{ name: 'd', data: d },
			{ name: 'iqmp', data: iqmp },
			{ name: 'p', data: p },
			{ name: 'q', data: q },
			{ name: 'dmodp', data: dmodp },
			{ name: 'dmodq', data: dmodq }
		]
	};

	return (new PrivateKey(key));
}

function readPkcs8DSAPublic(der) {
	der.readSequence();

	var p = readMPInt(der, 'p');
	var q = readMPInt(der, 'q');
	var g = readMPInt(der, 'g');

	// bit string sequence
	der.readSequence(asn1.Ber.BitString);
	der.readByte();

	var y = readMPInt(der, 'y');

	// now, make the key
	var key = {
		type: 'dsa',
		parts: [
			{ name: 'p', data: p },
			{ name: 'q', data: q },
			{ name: 'g', data: g },
			{ name: 'y', data: y }
		]
	};

	return (new Key(key));
}

function readPkcs8DSAPrivate(der) {
	der.readSequence();

	var p = readMPInt(der, 'p');
	var q = readMPInt(der, 'q');
	var g = readMPInt(der, 'g');

	der.readSequence(asn1.Ber.OctetString);
	var x = readMPInt(der, 'x');

	/* The pkcs#8 format does not include the public key */
	var y = utils.calculateDSAPublic(g, p, x);

	var key = {
		type: 'dsa',
		parts: [
			{ name: 'p', data: p },
			{ name: 'q', data: q },
			{ name: 'g', data: g },
			{ name: 'y', data: y },
			{ name: 'x', data: x }
		]
	};

	return (new PrivateKey(key));
}

function readECDSACurve(der) {
	var curveName, curveNames;
	var j, c, cd;

	if (der.peek() === asn1.Ber.OID) {
		var oid = der.readOID();

		curveNames = Object.keys(algs.curves);
		for (j = 0; j < curveNames.length; ++j) {
			c = curveNames[j];
			cd = algs.curves[c];
			if (cd.pkcs8oid === oid) {
				curveName = c;
				break;
			}
		}

	} else {
		// ECParameters sequence
		der.readSequence();
		var version = der.readString(asn1.Ber.Integer, true);
		assert.strictEqual(version[0], 1, 'ECDSA key not version 1');

		var curve = {};

		// FieldID sequence
		der.readSequence();
		var fieldTypeOid = der.readOID();
		assert.strictEqual(fieldTypeOid, '1.2.840.10045.1.1',
		    'ECDSA key is not from a prime-field');
		var p = curve.p = utils.mpNormalize(
		    der.readString(asn1.Ber.Integer, true));
		/*
		 * p always starts with a 1 bit, so count the zeros to get its
		 * real size.
		 */
		curve.size = p.length * 8 - utils.countZeros(p);

		// Curve sequence
		der.readSequence();
		curve.a = utils.mpNormalize(
		    der.readString(asn1.Ber.OctetString, true));
		curve.b = utils.mpNormalize(
		    der.readString(asn1.Ber.OctetString, true));
		if (der.peek() === asn1.Ber.BitString)
			curve.s = der.readString(asn1.Ber.BitString, true);

		// Combined Gx and Gy
		curve.G = der.readString(asn1.Ber.OctetString, true);
		assert.strictEqual(curve.G[0], 0x4,
		    'uncompressed G is required');

		curve.n = utils.mpNormalize(
		    der.readString(asn1.Ber.Integer, true));
		curve.h = utils.mpNormalize(
		    der.readString(asn1.Ber.Integer, true));
		assert.strictEqual(curve.h[0], 0x1, 'a cofactor=1 curve is ' +
		    'required');

		curveNames = Object.keys(algs.curves);
		var ks = Object.keys(curve);
		for (j = 0; j < curveNames.length; ++j) {
			c = curveNames[j];
			cd = algs.curves[c];
			var equal = true;
			for (var i = 0; i < ks.length; ++i) {
				var k = ks[i];
				if (cd[k] === undefined)
					continue;
				if (typeof (cd[k]) === 'object' &&
				    cd[k].equals !== undefined) {
					if (!cd[k].equals(curve[k])) {
						equal = false;
						break;
					}
				} else if (Buffer.isBuffer(cd[k])) {
					if (cd[k].toString('binary')
					    !== curve[k].toString('binary')) {
						equal = false;
						break;
					}
				} else {
					if (cd[k] !== curve[k]) {
						equal = false;
						break;
					}
				}
			}
			if (equal) {
				curveName = c;
				break;
			}
		}
	}
	return (curveName);
}

function readPkcs8ECDSAPrivate(der) {
	var curveName = readECDSACurve(der);
	assert.string(curveName, 'a known elliptic curve');

	der.readSequence(asn1.Ber.OctetString);
	der.readSequence();

	var version = readMPInt(der, 'version');
	assert.equal(version[0], 1, 'unknown version of ECDSA key');

	var d = der.readString(asn1.Ber.OctetString, true);
	var Q;

	if (der.peek() == 0xa0) {
		der.readSequence(0xa0);
		der._offset += der.length;
	}
	if (der.peek() == 0xa1) {
		der.readSequence(0xa1);
		Q = der.readString(asn1.Ber.BitString, true);
		Q = utils.ecNormalize(Q);
	}

	if (Q === undefined) {
		var pub = utils.publicFromPrivateECDSA(curveName, d);
		Q = pub.part.Q.data;
	}

	var key = {
		type: 'ecdsa',
		parts: [
			{ name: 'curve', data: Buffer.from(curveName) },
			{ name: 'Q', data: Q },
			{ name: 'd', data: d }
		]
	};

	return (new PrivateKey(key));
}

function readPkcs8ECDSAPublic(der) {
	var curveName = readECDSACurve(der);
	assert.string(curveName, 'a known elliptic curve');

	var Q = der.readString(asn1.Ber.BitString, true);
	Q = utils.ecNormalize(Q);

	var key = {
		type: 'ecdsa',
		parts: [
			{ name: 'curve', data: Buffer.from(curveName) },
			{ name: 'Q', data: Q }
		]
	};

	return (new Key(key));
}

function readPkcs8EdDSAPublic(der) {
	if (der.peek() === 0x00)
		der.readByte();

	var A = utils.readBitString(der);

	var key = {
		type: 'ed25519',
		parts: [
			{ name: 'A', data: utils.zeroPadToLength(A, 32) }
		]
	};

	return (new Key(key));
}

function readPkcs8X25519Public(der) {
	var A = utils.readBitString(der);

	var key = {
		type: 'curve25519',
		parts: [
			{ name: 'A', data: utils.zeroPadToLength(A, 32) }
		]
	};

	return (new Key(key));
}

function readPkcs8EdDSAPrivate(der) {
	if (der.peek() === 0x00)
		der.readByte();

	der.readSequence(asn1.Ber.OctetString);
	var k = der.readString(asn1.Ber.OctetString, true);
	k = utils.zeroPadToLength(k, 32);

	var A;
	if (der.peek() === asn1.Ber.BitString) {
		A = utils.readBitString(der);
		A = utils.zeroPadToLength(A, 32);
	} else {
		A = utils.calculateED25519Public(k);
	}

	var key = {
		type: 'ed25519',
		parts: [
			{ name: 'A', data: utils.zeroPadToLength(A, 32) },
			{ name: 'k', data: utils.zeroPadToLength(k, 32) }
		]
	};

	return (new PrivateKey(key));
}

function readPkcs8X25519Private(der) {
	if (der.peek() === 0x00)
		der.readByte();

	der.readSequence(asn1.Ber.OctetString);
	var k = der.readString(asn1.Ber.OctetString, true);
	k = utils.zeroPadToLength(k, 32);

	var A = utils.calculateX25519Public(k);

	var key = {
		type: 'curve25519',
		parts: [
			{ name: 'A', data: utils.zeroPadToLength(A, 32) },
			{ name: 'k', data: utils.zeroPadToLength(k, 32) }
		]
	};

	return (new PrivateKey(key));
}

function pkcs8ToBuffer(key) {
	var der = new asn1.BerWriter();
	writePkcs8(der, key);
	return (der.buffer);
}

function writePkcs8(der, key) {
	der.startSequence();

	if (PrivateKey.isPrivateKey(key)) {
		var sillyInt = Buffer.from([0]);
		der.writeBuffer(sillyInt, asn1.Ber.Integer);
	}

	der.startSequence();
	switch (key.type) {
	case 'rsa':
		der.writeOID('1.2.840.113549.1.1.1');
		if (PrivateKey.isPrivateKey(key))
			writePkcs8RSAPrivate(key, der);
		else
			writePkcs8RSAPublic(key, der);
		break;
	case 'dsa':
		der.writeOID('1.2.840.10040.4.1');
		if (PrivateKey.isPrivateKey(key))
			writePkcs8DSAPrivate(key, der);
		else
			writePkcs8DSAPublic(key, der);
		break;
	case 'ecdsa':
		der.writeOID('1.2.840.10045.2.1');
		if (PrivateKey.isPrivateKey(key))
			writePkcs8ECDSAPrivate(key, der);
		else
			writePkcs8ECDSAPublic(key, der);
		break;
	case 'ed25519':
		der.writeOID('1.3.101.112');
		if (PrivateKey.isPrivateKey(key))
			throw (new Error('Ed25519 private keys in pkcs8 ' +
			    'format are not supported'));
		writePkcs8EdDSAPublic(key, der);
		break;
	default:
		throw (new Error('Unsupported key type: ' + key.type));
	}

	der.endSequence();
}

function writePkcs8RSAPrivate(key, der) {
	der.writeNull();
	der.endSequence();

	der.startSequence(asn1.Ber.OctetString);
	der.startSequence();

	var version = Buffer.from([0]);
	der.writeBuffer(version, asn1.Ber.Integer);

	der.writeBuffer(key.part.n.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.e.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.d.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
	if (!key.part.dmodp || !key.part.dmodq)
		utils.addRSAMissing(key);
	der.writeBuffer(key.part.dmodp.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.dmodq.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.iqmp.data, asn1.Ber.Integer);

	der.endSequence();
	der.endSequence();
}

function writePkcs8RSAPublic(key, der) {
	der.writeNull();
	der.endSequence();

	der.startSequence(asn1.Ber.BitString);
	der.writeByte(0x00);

	der.startSequence();
	der.writeBuffer(key.part.n.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.e.data, asn1.Ber.Integer);
	der.endSequence();

	der.endSequence();
}

function writePkcs8DSAPrivate(key, der) {
	der.startSequence();
	der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.g.data, asn1.Ber.Integer);
	der.endSequence();

	der.endSequence();

	der.startSequence(asn1.Ber.OctetString);
	der.writeBuffer(key.part.x.data, asn1.Ber.Integer);
	der.endSequence();
}

function writePkcs8DSAPublic(key, der) {
	der.startSequence();
	der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
	der.writeBuffer(key.part.g.data, asn1.Ber.Integer);
	der.endSequence();
	der.endSequence();

	der.startSequence(asn1.Ber.BitString);
	der.writeByte(0x00);
	der.writeBuffer(key.part.y.data, asn1.Ber.Integer);
	der.endSequence();
}

function writeECDSACurve(key, der) {
	var curve = algs.curves[key.curve];
	if (curve.pkcs8oid) {
		/* This one has a name in pkcs#8, so just write the oid */
		der.writeOID(curve.pkcs8oid);

	} else {
		// ECParameters sequence
		der.startSequence();

		var version = Buffer.from([1]);
		der.writeBuffer(version, asn1.Ber.Integer);

		// FieldID sequence
		der.startSequence();
		der.writeOID('1.2.840.10045.1.1'); // prime-field
		der.writeBuffer(curve.p, asn1.Ber.Integer);
		der.endSequence();

		// Curve sequence
		der.startSequence();
		var a = curve.p;
		if (a[0] === 0x0)
			a = a.slice(1);
		der.writeBuffer(a, asn1.Ber.OctetString);
		der.writeBuffer(curve.b, asn1.Ber.OctetString);
		der.writeBuffer(curve.s, asn1.Ber.BitString);
		der.endSequence();

		der.writeBuffer(curve.G, asn1.Ber.OctetString);
		der.writeBuffer(curve.n, asn1.Ber.Integer);
		var h = curve.h;
		if (!h) {
			h = Buffer.from([1]);
		}
		der.writeBuffer(h, asn1.Ber.Integer);

		// ECParameters
		der.endSequence();
	}
}

function writePkcs8ECDSAPublic(key, der) {
	writeECDSACurve(key, der);
	der.endSequence();

	var Q = utils.ecNormalize(key.part.Q.data, true);
	der.writeBuffer(Q, asn1.Ber.BitString);
}

function writePkcs8ECDSAPrivate(key, der) {
	writeECDSACurve(key, der);
	der.endSequence();

	der.startSequence(asn1.Ber.OctetString);
	der.startSequence();

	var version = Buffer.from([1]);
	der.writeBuffer(version, asn1.Ber.Integer);

	der.writeBuffer(key.part.d.data, asn1.Ber.OctetString);

	der.startSequence(0xa1);
	var Q = utils.ecNormalize(key.part.Q.data, true);
	der.writeBuffer(Q, asn1.Ber.BitString);
	der.endSequence();

	der.endSequence();
	der.endSequence();
}

function writePkcs8EdDSAPublic(key, der) {
	der.endSequence();

	utils.writeBitString(der, key.part.A.data);
}

function writePkcs8EdDSAPrivate(key, der) {
	der.endSequence();

	var k = utils.mpNormalize(key.part.k.data, true);
	der.startSequence(asn1.Ber.OctetString);
	der.writeBuffer(k, asn1.Ber.OctetString);
	der.endSequence();
}


/***/ }),
/* 363 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

module.exports = {
	read: read,
	readSSHPrivate: readSSHPrivate,
	write: write
};

var assert = __webpack_require__(334);
var asn1 = __webpack_require__(345);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var utils = __webpack_require__(344);
var crypto = __webpack_require__(57);

var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);
var pem = __webpack_require__(360);
var rfc4253 = __webpack_require__(364);
var SSHBuffer = __webpack_require__(354);
var errors = __webpack_require__(341);

var bcrypt;

function read(buf, options) {
	return (pem.read(buf, options));
}

var MAGIC = 'openssh-key-v1';

function readSSHPrivate(type, buf, options) {
	buf = new SSHBuffer({buffer: buf});

	var magic = buf.readCString();
	assert.strictEqual(magic, MAGIC, 'bad magic string');

	var cipher = buf.readString();
	var kdf = buf.readString();
	var kdfOpts = buf.readBuffer();

	var nkeys = buf.readInt();
	if (nkeys !== 1) {
		throw (new Error('OpenSSH-format key file contains ' +
		    'multiple keys: this is unsupported.'));
	}

	var pubKey = buf.readBuffer();

	if (type === 'public') {
		assert.ok(buf.atEnd(), 'excess bytes left after key');
		return (rfc4253.read(pubKey));
	}

	var privKeyBlob = buf.readBuffer();
	assert.ok(buf.atEnd(), 'excess bytes left after key');

	var kdfOptsBuf = new SSHBuffer({ buffer: kdfOpts });
	switch (kdf) {
	case 'none':
		if (cipher !== 'none') {
			throw (new Error('OpenSSH-format key uses KDF "none" ' +
			     'but specifies a cipher other than "none"'));
		}
		break;
	case 'bcrypt':
		var salt = kdfOptsBuf.readBuffer();
		var rounds = kdfOptsBuf.readInt();
		var cinf = utils.opensshCipherInfo(cipher);
		if (bcrypt === undefined) {
			bcrypt = __webpack_require__(365);
		}

		if (typeof (options.passphrase) === 'string') {
			options.passphrase = Buffer.from(options.passphrase,
			    'utf-8');
		}
		if (!Buffer.isBuffer(options.passphrase)) {
			throw (new errors.KeyEncryptedError(
			    options.filename, 'OpenSSH'));
		}

		var pass = new Uint8Array(options.passphrase);
		var salti = new Uint8Array(salt);
		/* Use the pbkdf to derive both the key and the IV. */
		var out = new Uint8Array(cinf.keySize + cinf.blockSize);
		var res = bcrypt.pbkdf(pass, pass.length, salti, salti.length,
		    out, out.length, rounds);
		if (res !== 0) {
			throw (new Error('bcrypt_pbkdf function returned ' +
			    'failure, parameters invalid'));
		}
		out = Buffer.from(out);
		var ckey = out.slice(0, cinf.keySize);
		var iv = out.slice(cinf.keySize, cinf.keySize + cinf.blockSize);
		var cipherStream = crypto.createDecipheriv(cinf.opensslName,
		    ckey, iv);
		cipherStream.setAutoPadding(false);
		var chunk, chunks = [];
		cipherStream.once('error', function (e) {
			if (e.toString().indexOf('bad decrypt') !== -1) {
				throw (new Error('Incorrect passphrase ' +
				    'supplied, could not decrypt key'));
			}
			throw (e);
		});
		cipherStream.write(privKeyBlob);
		cipherStream.end();
		while ((chunk = cipherStream.read()) !== null)
			chunks.push(chunk);
		privKeyBlob = Buffer.concat(chunks);
		break;
	default:
		throw (new Error(
		    'OpenSSH-format key uses unknown KDF "' + kdf + '"'));
	}

	buf = new SSHBuffer({buffer: privKeyBlob});

	var checkInt1 = buf.readInt();
	var checkInt2 = buf.readInt();
	if (checkInt1 !== checkInt2) {
		throw (new Error('Incorrect passphrase supplied, could not ' +
		    'decrypt key'));
	}

	var ret = {};
	var key = rfc4253.readInternal(ret, 'private', buf.remainder());

	buf.skip(ret.consumed);

	var comment = buf.readString();
	key.comment = comment;

	return (key);
}

function write(key, options) {
	var pubKey;
	if (PrivateKey.isPrivateKey(key))
		pubKey = key.toPublic();
	else
		pubKey = key;

	var cipher = 'none';
	var kdf = 'none';
	var kdfopts = Buffer.alloc(0);
	var cinf = { blockSize: 8 };
	var passphrase;
	if (options !== undefined) {
		passphrase = options.passphrase;
		if (typeof (passphrase) === 'string')
			passphrase = Buffer.from(passphrase, 'utf-8');
		if (passphrase !== undefined) {
			assert.buffer(passphrase, 'options.passphrase');
			assert.optionalString(options.cipher, 'options.cipher');
			cipher = options.cipher;
			if (cipher === undefined)
				cipher = 'aes128-ctr';
			cinf = utils.opensshCipherInfo(cipher);
			kdf = 'bcrypt';
		}
	}

	var privBuf;
	if (PrivateKey.isPrivateKey(key)) {
		privBuf = new SSHBuffer({});
		var checkInt = crypto.randomBytes(4).readUInt32BE(0);
		privBuf.writeInt(checkInt);
		privBuf.writeInt(checkInt);
		privBuf.write(key.toBuffer('rfc4253'));
		privBuf.writeString(key.comment || '');

		var n = 1;
		while (privBuf._offset % cinf.blockSize !== 0)
			privBuf.writeChar(n++);
		privBuf = privBuf.toBuffer();
	}

	switch (kdf) {
	case 'none':
		break;
	case 'bcrypt':
		var salt = crypto.randomBytes(16);
		var rounds = 16;
		var kdfssh = new SSHBuffer({});
		kdfssh.writeBuffer(salt);
		kdfssh.writeInt(rounds);
		kdfopts = kdfssh.toBuffer();

		if (bcrypt === undefined) {
			bcrypt = __webpack_require__(365);
		}
		var pass = new Uint8Array(passphrase);
		var salti = new Uint8Array(salt);
		/* Use the pbkdf to derive both the key and the IV. */
		var out = new Uint8Array(cinf.keySize + cinf.blockSize);
		var res = bcrypt.pbkdf(pass, pass.length, salti, salti.length,
		    out, out.length, rounds);
		if (res !== 0) {
			throw (new Error('bcrypt_pbkdf function returned ' +
			    'failure, parameters invalid'));
		}
		out = Buffer.from(out);
		var ckey = out.slice(0, cinf.keySize);
		var iv = out.slice(cinf.keySize, cinf.keySize + cinf.blockSize);

		var cipherStream = crypto.createCipheriv(cinf.opensslName,
		    ckey, iv);
		cipherStream.setAutoPadding(false);
		var chunk, chunks = [];
		cipherStream.once('error', function (e) {
			throw (e);
		});
		cipherStream.write(privBuf);
		cipherStream.end();
		while ((chunk = cipherStream.read()) !== null)
			chunks.push(chunk);
		privBuf = Buffer.concat(chunks);
		break;
	default:
		throw (new Error('Unsupported kdf ' + kdf));
	}

	var buf = new SSHBuffer({});

	buf.writeCString(MAGIC);
	buf.writeString(cipher);	/* cipher */
	buf.writeString(kdf);		/* kdf */
	buf.writeBuffer(kdfopts);	/* kdfoptions */

	buf.writeInt(1);		/* nkeys */
	buf.writeBuffer(pubKey.toBuffer('rfc4253'));

	if (privBuf)
		buf.writeBuffer(privBuf);

	buf = buf.toBuffer();

	var header;
	if (PrivateKey.isPrivateKey(key))
		header = 'OPENSSH PRIVATE KEY';
	else
		header = 'OPENSSH PUBLIC KEY';

	var tmp = buf.toString('base64');
	var len = tmp.length + (tmp.length / 70) +
	    18 + 16 + header.length*2 + 10;
	buf = Buffer.alloc(len);
	var o = 0;
	o += buf.write('-----BEGIN ' + header + '-----\n', o);
	for (var i = 0; i < tmp.length; ) {
		var limit = i + 70;
		if (limit > tmp.length)
			limit = tmp.length;
		o += buf.write(tmp.slice(i, limit), o);
		buf[o++] = 10;
		i = limit;
	}
	o += buf.write('-----END ' + header + '-----\n', o);

	return (buf.slice(0, o));
}


/***/ }),
/* 364 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

module.exports = {
	read: read.bind(undefined, false, undefined),
	readType: read.bind(undefined, false),
	write: write,
	/* semi-private api, used by sshpk-agent */
	readPartial: read.bind(undefined, true),

	/* shared with ssh format */
	readInternal: read,
	keyTypeToAlg: keyTypeToAlg,
	algToKeyType: algToKeyType
};

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var utils = __webpack_require__(344);
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);
var SSHBuffer = __webpack_require__(354);

function algToKeyType(alg) {
	assert.string(alg);
	if (alg === 'ssh-dss')
		return ('dsa');
	else if (alg === 'ssh-rsa')
		return ('rsa');
	else if (alg === 'ssh-ed25519')
		return ('ed25519');
	else if (alg === 'ssh-curve25519')
		return ('curve25519');
	else if (alg.match(/^ecdsa-sha2-/))
		return ('ecdsa');
	else
		throw (new Error('Unknown algorithm ' + alg));
}

function keyTypeToAlg(key) {
	assert.object(key);
	if (key.type === 'dsa')
		return ('ssh-dss');
	else if (key.type === 'rsa')
		return ('ssh-rsa');
	else if (key.type === 'ed25519')
		return ('ssh-ed25519');
	else if (key.type === 'curve25519')
		return ('ssh-curve25519');
	else if (key.type === 'ecdsa')
		return ('ecdsa-sha2-' + key.part.curve.data.toString());
	else
		throw (new Error('Unknown key type ' + key.type));
}

function read(partial, type, buf, options) {
	if (typeof (buf) === 'string')
		buf = Buffer.from(buf);
	assert.buffer(buf, 'buf');

	var key = {};

	var parts = key.parts = [];
	var sshbuf = new SSHBuffer({buffer: buf});

	var alg = sshbuf.readString();
	assert.ok(!sshbuf.atEnd(), 'key must have at least one part');

	key.type = algToKeyType(alg);

	var partCount = algs.info[key.type].parts.length;
	if (type && type === 'private')
		partCount = algs.privInfo[key.type].parts.length;

	while (!sshbuf.atEnd() && parts.length < partCount)
		parts.push(sshbuf.readPart());
	while (!partial && !sshbuf.atEnd())
		parts.push(sshbuf.readPart());

	assert.ok(parts.length >= 1,
	    'key must have at least one part');
	assert.ok(partial || sshbuf.atEnd(),
	    'leftover bytes at end of key');

	var Constructor = Key;
	var algInfo = algs.info[key.type];
	if (type === 'private' || algInfo.parts.length !== parts.length) {
		algInfo = algs.privInfo[key.type];
		Constructor = PrivateKey;
	}
	assert.strictEqual(algInfo.parts.length, parts.length);

	if (key.type === 'ecdsa') {
		var res = /^ecdsa-sha2-(.+)$/.exec(alg);
		assert.ok(res !== null);
		assert.strictEqual(res[1], parts[0].data.toString());
	}

	var normalized = true;
	for (var i = 0; i < algInfo.parts.length; ++i) {
		var p = parts[i];
		p.name = algInfo.parts[i];
		/*
		 * OpenSSH stores ed25519 "private" keys as seed + public key
		 * concat'd together (k followed by A). We want to keep them
		 * separate for other formats that don't do this.
		 */
		if (key.type === 'ed25519' && p.name === 'k')
			p.data = p.data.slice(0, 32);

		if (p.name !== 'curve' && algInfo.normalize !== false) {
			var nd;
			if (key.type === 'ed25519') {
				nd = utils.zeroPadToLength(p.data, 32);
			} else {
				nd = utils.mpNormalize(p.data);
			}
			if (nd.toString('binary') !==
			    p.data.toString('binary')) {
				p.data = nd;
				normalized = false;
			}
		}
	}

	if (normalized)
		key._rfc4253Cache = sshbuf.toBuffer();

	if (partial && typeof (partial) === 'object') {
		partial.remainder = sshbuf.remainder();
		partial.consumed = sshbuf._offset;
	}

	return (new Constructor(key));
}

function write(key, options) {
	assert.object(key);

	var alg = keyTypeToAlg(key);
	var i;

	var algInfo = algs.info[key.type];
	if (PrivateKey.isPrivateKey(key))
		algInfo = algs.privInfo[key.type];
	var parts = algInfo.parts;

	var buf = new SSHBuffer({});

	buf.writeString(alg);

	for (i = 0; i < parts.length; ++i) {
		var data = key.part[parts[i]].data;
		if (algInfo.normalize !== false) {
			if (key.type === 'ed25519')
				data = utils.zeroPadToLength(data, 32);
			else
				data = utils.mpNormalize(data);
		}
		if (key.type === 'ed25519' && parts[i] === 'k')
			data = Buffer.concat([data, key.part.A.data]);
		buf.writeBuffer(data);
	}

	return (buf.toBuffer());
}


/***/ }),
/* 365 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var crypto_hash_sha512 = __webpack_require__(353).lowlevel.crypto_hash;

/*
 * This file is a 1:1 port from the OpenBSD blowfish.c and bcrypt_pbkdf.c. As a
 * result, it retains the original copyright and license. The two files are
 * under slightly different (but compatible) licenses, and are here combined in
 * one file.
 *
 * Credit for the actual porting work goes to:
 *  Devi Mandiri <me@devi.web.id>
 */

/*
 * The Blowfish portions are under the following license:
 *
 * Blowfish block cipher for OpenBSD
 * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
 * All rights reserved.
 *
 * Implementation advice by David Mazieres <dm@lcs.mit.edu>.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/*
 * The bcrypt_pbkdf portions are under the following license:
 *
 * Copyright (c) 2013 Ted Unangst <tedu@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

/*
 * Performance improvements (Javascript-specific):
 *
 * Copyright 2016, Joyent Inc
 * Author: Alex Wilson <alex.wilson@joyent.com>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

// Ported from OpenBSD bcrypt_pbkdf.c v1.9

var BLF_J = 0;

var Blowfish = function() {
  this.S = [
    new Uint32Array([
      0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,
      0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
      0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,
      0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
      0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,
      0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
      0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
      0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,
      0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,
      0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,
      0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,
      0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
      0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,
      0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,
      0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,
      0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,
      0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
      0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,
      0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e,
      0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,
      0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,
      0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
      0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88,
      0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,
      0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,
      0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,
      0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
      0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,
      0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba,
      0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,
      0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f,
      0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
      0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,
      0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,
      0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,
      0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,
      0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
      0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,
      0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,
      0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,
      0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0,
      0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
      0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790,
      0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,
      0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,
      0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,
      0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
      0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,
      0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad,
      0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,
      0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,
      0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
      0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477,
      0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,
      0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,
      0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,
      0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
      0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,
      0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41,
      0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
      0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400,
      0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
      0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,
      0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a]),
    new Uint32Array([
      0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,
      0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
      0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
      0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
      0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6,
      0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
      0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e,
      0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
      0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,
      0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,
      0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,
      0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,
      0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
      0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,
      0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,
      0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,
      0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf,
      0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
      0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e,
      0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,
      0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,
      0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,
      0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
      0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,
      0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b,
      0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,
      0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,
      0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
      0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f,
      0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,
      0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,
      0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,
      0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
      0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,
      0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802,
      0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,
      0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510,
      0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
      0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,
      0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,
      0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,
      0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,
      0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
      0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,
      0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,
      0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,
      0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128,
      0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
      0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0,
      0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,
      0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,
      0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,
      0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
      0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,
      0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00,
      0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,
      0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,
      0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
      0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735,
      0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
      0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,
      0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
      0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
      0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7]),
    new Uint32Array([
      0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934,
      0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
      0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,
      0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
      0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45,
      0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
      0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,
      0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,
      0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
      0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,
      0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42,
      0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,
      0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2,
      0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
      0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,
      0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,
      0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,
      0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,
      0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
      0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,
      0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,
      0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,
      0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b,
      0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
      0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922,
      0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,
      0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,
      0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,
      0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
      0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,
      0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804,
      0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,
      0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,
      0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
      0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d,
      0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,
      0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,
      0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,
      0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
      0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,
      0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d,
      0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,
      0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f,
      0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
      0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,
      0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,
      0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,
      0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,
      0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
      0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,
      0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,
      0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,
      0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52,
      0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
      0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5,
      0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,
      0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,
      0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,
      0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
      0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
      0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4,
      0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
      0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,
      0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0]),
    new Uint32Array([
      0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b,
      0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
      0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,
      0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
      0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
      0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
      0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304,
      0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,
      0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,
      0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
      0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9,
      0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,
      0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,
      0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,
      0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
      0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,
      0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b,
      0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,
      0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c,
      0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
      0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,
      0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,
      0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,
      0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,
      0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
      0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,
      0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,
      0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,
      0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae,
      0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
      0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5,
      0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,
      0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,
      0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,
      0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
      0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,
      0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8,
      0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,
      0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,
      0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
      0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38,
      0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,
      0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,
      0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,
      0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
      0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,
      0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964,
      0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,
      0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8,
      0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
      0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,
      0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,
      0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,
      0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,
      0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
      0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,
      0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,
      0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,
      0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0,
      0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
      0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e,
      0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
      0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,
      0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6])
    ];
  this.P = new Uint32Array([
    0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
    0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
    0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
    0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
    0x9216d5d9, 0x8979fb1b]);
};

function F(S, x8, i) {
  return (((S[0][x8[i+3]] +
            S[1][x8[i+2]]) ^
            S[2][x8[i+1]]) +
            S[3][x8[i]]);
};

Blowfish.prototype.encipher = function(x, x8) {
  if (x8 === undefined) {
    x8 = new Uint8Array(x.buffer);
    if (x.byteOffset !== 0)
      x8 = x8.subarray(x.byteOffset);
  }
  x[0] ^= this.P[0];
  for (var i = 1; i < 16; i += 2) {
    x[1] ^= F(this.S, x8, 0) ^ this.P[i];
    x[0] ^= F(this.S, x8, 4) ^ this.P[i+1];
  }
  var t = x[0];
  x[0] = x[1] ^ this.P[17];
  x[1] = t;
};

Blowfish.prototype.decipher = function(x) {
  var x8 = new Uint8Array(x.buffer);
  if (x.byteOffset !== 0)
    x8 = x8.subarray(x.byteOffset);
  x[0] ^= this.P[17];
  for (var i = 16; i > 0; i -= 2) {
    x[1] ^= F(this.S, x8, 0) ^ this.P[i];
    x[0] ^= F(this.S, x8, 4) ^ this.P[i-1];
  }
  var t = x[0];
  x[0] = x[1] ^ this.P[0];
  x[1] = t;
};

function stream2word(data, databytes){
  var i, temp = 0;
  for (i = 0; i < 4; i++, BLF_J++) {
    if (BLF_J >= databytes) BLF_J = 0;
    temp = (temp << 8) | data[BLF_J];
  }
  return temp;
};

Blowfish.prototype.expand0state = function(key, keybytes) {
  var d = new Uint32Array(2), i, k;
  var d8 = new Uint8Array(d.buffer);

  for (i = 0, BLF_J = 0; i < 18; i++) {
    this.P[i] ^= stream2word(key, keybytes);
  }
  BLF_J = 0;

  for (i = 0; i < 18; i += 2) {
    this.encipher(d, d8);
    this.P[i]   = d[0];
    this.P[i+1] = d[1];
  }

  for (i = 0; i < 4; i++) {
    for (k = 0; k < 256; k += 2) {
      this.encipher(d, d8);
      this.S[i][k]   = d[0];
      this.S[i][k+1] = d[1];
    }
  }
};

Blowfish.prototype.expandstate = function(data, databytes, key, keybytes) {
  var d = new Uint32Array(2), i, k;

  for (i = 0, BLF_J = 0; i < 18; i++) {
    this.P[i] ^= stream2word(key, keybytes);
  }

  for (i = 0, BLF_J = 0; i < 18; i += 2) {
    d[0] ^= stream2word(data, databytes);
    d[1] ^= stream2word(data, databytes);
    this.encipher(d);
    this.P[i]   = d[0];
    this.P[i+1] = d[1];
  }

  for (i = 0; i < 4; i++) {
    for (k = 0; k < 256; k += 2) {
      d[0] ^= stream2word(data, databytes);
      d[1] ^= stream2word(data, databytes);
      this.encipher(d);
      this.S[i][k]   = d[0];
      this.S[i][k+1] = d[1];
    }
  }
  BLF_J = 0;
};

Blowfish.prototype.enc = function(data, blocks) {
  for (var i = 0; i < blocks; i++) {
    this.encipher(data.subarray(i*2));
  }
};

Blowfish.prototype.dec = function(data, blocks) {
  for (var i = 0; i < blocks; i++) {
    this.decipher(data.subarray(i*2));
  }
};

var BCRYPT_BLOCKS = 8,
    BCRYPT_HASHSIZE = 32;

function bcrypt_hash(sha2pass, sha2salt, out) {
  var state = new Blowfish(),
      cdata = new Uint32Array(BCRYPT_BLOCKS), i,
      ciphertext = new Uint8Array([79,120,121,99,104,114,111,109,97,116,105,
            99,66,108,111,119,102,105,115,104,83,119,97,116,68,121,110,97,109,
            105,116,101]); //"OxychromaticBlowfishSwatDynamite"

  state.expandstate(sha2salt, 64, sha2pass, 64);
  for (i = 0; i < 64; i++) {
    state.expand0state(sha2salt, 64);
    state.expand0state(sha2pass, 64);
  }

  for (i = 0; i < BCRYPT_BLOCKS; i++)
    cdata[i] = stream2word(ciphertext, ciphertext.byteLength);
  for (i = 0; i < 64; i++)
    state.enc(cdata, cdata.byteLength / 8);

  for (i = 0; i < BCRYPT_BLOCKS; i++) {
    out[4*i+3] = cdata[i] >>> 24;
    out[4*i+2] = cdata[i] >>> 16;
    out[4*i+1] = cdata[i] >>> 8;
    out[4*i+0] = cdata[i];
  }
};

function bcrypt_pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds) {
  var sha2pass = new Uint8Array(64),
      sha2salt = new Uint8Array(64),
      out = new Uint8Array(BCRYPT_HASHSIZE),
      tmpout = new Uint8Array(BCRYPT_HASHSIZE),
      countsalt = new Uint8Array(saltlen+4),
      i, j, amt, stride, dest, count,
      origkeylen = keylen;

  if (rounds < 1)
    return -1;
  if (passlen === 0 || saltlen === 0 || keylen === 0 ||
      keylen > (out.byteLength * out.byteLength) || saltlen > (1<<20))
    return -1;

  stride = Math.floor((keylen + out.byteLength - 1) / out.byteLength);
  amt = Math.floor((keylen + stride - 1) / stride);

  for (i = 0; i < saltlen; i++)
    countsalt[i] = salt[i];

  crypto_hash_sha512(sha2pass, pass, passlen);

  for (count = 1; keylen > 0; count++) {
    countsalt[saltlen+0] = count >>> 24;
    countsalt[saltlen+1] = count >>> 16;
    countsalt[saltlen+2] = count >>>  8;
    countsalt[saltlen+3] = count;

    crypto_hash_sha512(sha2salt, countsalt, saltlen + 4);
    bcrypt_hash(sha2pass, sha2salt, tmpout);
    for (i = out.byteLength; i--;)
      out[i] = tmpout[i];

    for (i = 1; i < rounds; i++) {
      crypto_hash_sha512(sha2salt, tmpout, tmpout.byteLength);
      bcrypt_hash(sha2pass, sha2salt, tmpout);
      for (j = 0; j < out.byteLength; j++)
        out[j] ^= tmpout[j];
    }

    amt = Math.min(amt, keylen);
    for (i = 0; i < amt; i++) {
      dest = i * stride + (count - 1);
      if (dest >= origkeylen)
        break;
      key[dest] = out[i];
    }
    keylen -= i;
  }

  return 0;
};

module.exports = {
      BLOCKS: BCRYPT_BLOCKS,
      HASHSIZE: BCRYPT_HASHSIZE,
      hash: bcrypt_hash,
      pbkdf: bcrypt_pbkdf
};


/***/ }),
/* 366 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

module.exports = {
	read: read,
	write: write
};

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var rfc4253 = __webpack_require__(364);
var utils = __webpack_require__(344);
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);

var sshpriv = __webpack_require__(363);

/*JSSTYLED*/
var SSHKEY_RE = /^([a-z0-9-]+)[ \t]+([a-zA-Z0-9+\/]+[=]*)([ \t]+([^ \t][^\n]*[\n]*)?)?$/;
/*JSSTYLED*/
var SSHKEY_RE2 = /^([a-z0-9-]+)[ \t\n]+([a-zA-Z0-9+\/][a-zA-Z0-9+\/ \t\n=]*)([^a-zA-Z0-9+\/ \t\n=].*)?$/;

function read(buf, options) {
	if (typeof (buf) !== 'string') {
		assert.buffer(buf, 'buf');
		buf = buf.toString('ascii');
	}

	var trimmed = buf.trim().replace(/[\\\r]/g, '');
	var m = trimmed.match(SSHKEY_RE);
	if (!m)
		m = trimmed.match(SSHKEY_RE2);
	assert.ok(m, 'key must match regex');

	var type = rfc4253.algToKeyType(m[1]);
	var kbuf = Buffer.from(m[2], 'base64');

	/*
	 * This is a bit tricky. If we managed to parse the key and locate the
	 * key comment with the regex, then do a non-partial read and assert
	 * that we have consumed all bytes. If we couldn't locate the key
	 * comment, though, there may be whitespace shenanigans going on that
	 * have conjoined the comment to the rest of the key. We do a partial
	 * read in this case to try to make the best out of a sorry situation.
	 */
	var key;
	var ret = {};
	if (m[4]) {
		try {
			key = rfc4253.read(kbuf);

		} catch (e) {
			m = trimmed.match(SSHKEY_RE2);
			assert.ok(m, 'key must match regex');
			kbuf = Buffer.from(m[2], 'base64');
			key = rfc4253.readInternal(ret, 'public', kbuf);
		}
	} else {
		key = rfc4253.readInternal(ret, 'public', kbuf);
	}

	assert.strictEqual(type, key.type);

	if (m[4] && m[4].length > 0) {
		key.comment = m[4];

	} else if (ret.consumed) {
		/*
		 * Now the magic: trying to recover the key comment when it's
		 * gotten conjoined to the key or otherwise shenanigan'd.
		 *
		 * Work out how much base64 we used, then drop all non-base64
		 * chars from the beginning up to this point in the the string.
		 * Then offset in this and try to make up for missing = chars.
		 */
		var data = m[2] + (m[3] ? m[3] : '');
		var realOffset = Math.ceil(ret.consumed / 3) * 4;
		data = data.slice(0, realOffset - 2). /*JSSTYLED*/
		    replace(/[^a-zA-Z0-9+\/=]/g, '') +
		    data.slice(realOffset - 2);

		var padding = ret.consumed % 3;
		if (padding > 0 &&
		    data.slice(realOffset - 1, realOffset) !== '=')
			realOffset--;
		while (data.slice(realOffset, realOffset + 1) === '=')
			realOffset++;

		/* Finally, grab what we think is the comment & clean it up. */
		var trailer = data.slice(realOffset);
		trailer = trailer.replace(/[\r\n]/g, ' ').
		    replace(/^\s+/, '');
		if (trailer.match(/^[a-zA-Z0-9]/))
			key.comment = trailer;
	}

	return (key);
}

function write(key, options) {
	assert.object(key);
	if (!Key.isKey(key))
		throw (new Error('Must be a public key'));

	var parts = [];
	var alg = rfc4253.keyTypeToAlg(key);
	parts.push(alg);

	var buf = rfc4253.write(key);
	parts.push(buf.toString('base64'));

	if (key.comment)
		parts.push(key.comment);

	return (Buffer.from(parts.join(' ')));
}


/***/ }),
/* 367 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2017 Joyent, Inc.

module.exports = {
	read: read,
	write: write
};

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);
var utils = __webpack_require__(344);
var SSHBuffer = __webpack_require__(354);
var Dhe = __webpack_require__(355);

var supportedAlgos = {
	'rsa-sha1' : 5,
	'rsa-sha256' : 8,
	'rsa-sha512' : 10,
	'ecdsa-p256-sha256' : 13,
	'ecdsa-p384-sha384' : 14
	/*
	 * ed25519 is hypothetically supported with id 15
	 * but the common tools available don't appear to be
	 * capable of generating/using ed25519 keys
	 */
};

var supportedAlgosById = {};
Object.keys(supportedAlgos).forEach(function (k) {
	supportedAlgosById[supportedAlgos[k]] = k.toUpperCase();
});

function read(buf, options) {
	if (typeof (buf) !== 'string') {
		assert.buffer(buf, 'buf');
		buf = buf.toString('ascii');
	}
	var lines = buf.split('\n');
	if (lines[0].match(/^Private-key-format\: v1/)) {
		var algElems = lines[1].split(' ');
		var algoNum = parseInt(algElems[1], 10);
		var algoName = algElems[2];
		if (!supportedAlgosById[algoNum])
			throw (new Error('Unsupported algorithm: ' + algoName));
		return (readDNSSECPrivateKey(algoNum, lines.slice(2)));
	}

	// skip any comment-lines
	var line = 0;
	/* JSSTYLED */
	while (lines[line].match(/^\;/))
		line++;
	// we should now have *one single* line left with our KEY on it.
	if ((lines[line].match(/\. IN KEY /) ||
	    lines[line].match(/\. IN DNSKEY /)) && lines[line+1].length === 0) {
		return (readRFC3110(lines[line]));
	}
	throw (new Error('Cannot parse dnssec key'));
}

function readRFC3110(keyString) {
	var elems = keyString.split(' ');
	//unused var flags = parseInt(elems[3], 10);
	//unused var protocol = parseInt(elems[4], 10);
	var algorithm = parseInt(elems[5], 10);
	if (!supportedAlgosById[algorithm])
		throw (new Error('Unsupported algorithm: ' + algorithm));
	var base64key = elems.slice(6, elems.length).join();
	var keyBuffer = Buffer.from(base64key, 'base64');
	if (supportedAlgosById[algorithm].match(/^RSA-/)) {
		// join the rest of the body into a single base64-blob
		var publicExponentLen = keyBuffer.readUInt8(0);
		if (publicExponentLen != 3 && publicExponentLen != 1)
			throw (new Error('Cannot parse dnssec key: ' +
			    'unsupported exponent length'));

		var publicExponent = keyBuffer.slice(1, publicExponentLen+1);
		publicExponent = utils.mpNormalize(publicExponent);
		var modulus = keyBuffer.slice(1+publicExponentLen);
		modulus = utils.mpNormalize(modulus);
		// now, make the key
		var rsaKey = {
			type: 'rsa',
			parts: []
		};
		rsaKey.parts.push({ name: 'e', data: publicExponent});
		rsaKey.parts.push({ name: 'n', data: modulus});
		return (new Key(rsaKey));
	}
	if (supportedAlgosById[algorithm] === 'ECDSA-P384-SHA384' ||
	    supportedAlgosById[algorithm] === 'ECDSA-P256-SHA256') {
		var curve = 'nistp384';
		var size = 384;
		if (supportedAlgosById[algorithm].match(/^ECDSA-P256-SHA256/)) {
			curve = 'nistp256';
			size = 256;
		}

		var ecdsaKey = {
			type: 'ecdsa',
			curve: curve,
			size: size,
			parts: [
				{name: 'curve', data: Buffer.from(curve) },
				{name: 'Q', data: utils.ecNormalize(keyBuffer) }
			]
		};
		return (new Key(ecdsaKey));
	}
	throw (new Error('Unsupported algorithm: ' +
	    supportedAlgosById[algorithm]));
}

function elementToBuf(e) {
	return (Buffer.from(e.split(' ')[1], 'base64'));
}

function readDNSSECRSAPrivateKey(elements) {
	var rsaParams = {};
	elements.forEach(function (element) {
		if (element.split(' ')[0] === 'Modulus:')
			rsaParams['n'] = elementToBuf(element);
		else if (element.split(' ')[0] === 'PublicExponent:')
			rsaParams['e'] = elementToBuf(element);
		else if (element.split(' ')[0] === 'PrivateExponent:')
			rsaParams['d'] = elementToBuf(element);
		else if (element.split(' ')[0] === 'Prime1:')
			rsaParams['p'] = elementToBuf(element);
		else if (element.split(' ')[0] === 'Prime2:')
			rsaParams['q'] = elementToBuf(element);
		else if (element.split(' ')[0] === 'Exponent1:')
			rsaParams['dmodp'] = elementToBuf(element);
		else if (element.split(' ')[0] === 'Exponent2:')
			rsaParams['dmodq'] = elementToBuf(element);
		else if (element.split(' ')[0] === 'Coefficient:')
			rsaParams['iqmp'] = elementToBuf(element);
	});
	// now, make the key
	var key = {
		type: 'rsa',
		parts: [
			{ name: 'e', data: utils.mpNormalize(rsaParams['e'])},
			{ name: 'n', data: utils.mpNormalize(rsaParams['n'])},
			{ name: 'd', data: utils.mpNormalize(rsaParams['d'])},
			{ name: 'p', data: utils.mpNormalize(rsaParams['p'])},
			{ name: 'q', data: utils.mpNormalize(rsaParams['q'])},
			{ name: 'dmodp',
			    data: utils.mpNormalize(rsaParams['dmodp'])},
			{ name: 'dmodq',
			    data: utils.mpNormalize(rsaParams['dmodq'])},
			{ name: 'iqmp',
			    data: utils.mpNormalize(rsaParams['iqmp'])}
		]
	};
	return (new PrivateKey(key));
}

function readDNSSECPrivateKey(alg, elements) {
	if (supportedAlgosById[alg].match(/^RSA-/)) {
		return (readDNSSECRSAPrivateKey(elements));
	}
	if (supportedAlgosById[alg] === 'ECDSA-P384-SHA384' ||
	    supportedAlgosById[alg] === 'ECDSA-P256-SHA256') {
		var d = Buffer.from(elements[0].split(' ')[1], 'base64');
		var curve = 'nistp384';
		var size = 384;
		if (supportedAlgosById[alg] === 'ECDSA-P256-SHA256') {
			curve = 'nistp256';
			size = 256;
		}
		// DNSSEC generates the public-key on the fly (go calculate it)
		var publicKey = utils.publicFromPrivateECDSA(curve, d);
		var Q = publicKey.part['Q'].data;
		var ecdsaKey = {
			type: 'ecdsa',
			curve: curve,
			size: size,
			parts: [
				{name: 'curve', data: Buffer.from(curve) },
				{name: 'd', data: d },
				{name: 'Q', data: Q }
			]
		};
		return (new PrivateKey(ecdsaKey));
	}
	throw (new Error('Unsupported algorithm: ' + supportedAlgosById[alg]));
}

function dnssecTimestamp(date) {
	var year = date.getFullYear() + ''; //stringify
	var month = (date.getMonth() + 1);
	var timestampStr = year + month + date.getUTCDate();
	timestampStr += '' + date.getUTCHours() + date.getUTCMinutes();
	timestampStr += date.getUTCSeconds();
	return (timestampStr);
}

function rsaAlgFromOptions(opts) {
	if (!opts || !opts.hashAlgo || opts.hashAlgo === 'sha1')
		return ('5 (RSASHA1)');
	else if (opts.hashAlgo === 'sha256')
		return ('8 (RSASHA256)');
	else if (opts.hashAlgo === 'sha512')
		return ('10 (RSASHA512)');
	else
		throw (new Error('Unknown or unsupported hash: ' +
		    opts.hashAlgo));
}

function writeRSA(key, options) {
	// if we're missing parts, add them.
	if (!key.part.dmodp || !key.part.dmodq) {
		utils.addRSAMissing(key);
	}

	var out = '';
	out += 'Private-key-format: v1.3\n';
	out += 'Algorithm: ' + rsaAlgFromOptions(options) + '\n';
	var n = utils.mpDenormalize(key.part['n'].data);
	out += 'Modulus: ' + n.toString('base64') + '\n';
	var e = utils.mpDenormalize(key.part['e'].data);
	out += 'PublicExponent: ' + e.toString('base64') + '\n';
	var d = utils.mpDenormalize(key.part['d'].data);
	out += 'PrivateExponent: ' + d.toString('base64') + '\n';
	var p = utils.mpDenormalize(key.part['p'].data);
	out += 'Prime1: ' + p.toString('base64') + '\n';
	var q = utils.mpDenormalize(key.part['q'].data);
	out += 'Prime2: ' + q.toString('base64') + '\n';
	var dmodp = utils.mpDenormalize(key.part['dmodp'].data);
	out += 'Exponent1: ' + dmodp.toString('base64') + '\n';
	var dmodq = utils.mpDenormalize(key.part['dmodq'].data);
	out += 'Exponent2: ' + dmodq.toString('base64') + '\n';
	var iqmp = utils.mpDenormalize(key.part['iqmp'].data);
	out += 'Coefficient: ' + iqmp.toString('base64') + '\n';
	// Assume that we're valid as-of now
	var timestamp = new Date();
	out += 'Created: ' + dnssecTimestamp(timestamp) + '\n';
	out += 'Publish: ' + dnssecTimestamp(timestamp) + '\n';
	out += 'Activate: ' + dnssecTimestamp(timestamp) + '\n';
	return (Buffer.from(out, 'ascii'));
}

function writeECDSA(key, options) {
	var out = '';
	out += 'Private-key-format: v1.3\n';

	if (key.curve === 'nistp256') {
		out += 'Algorithm: 13 (ECDSAP256SHA256)\n';
	} else if (key.curve === 'nistp384') {
		out += 'Algorithm: 14 (ECDSAP384SHA384)\n';
	} else {
		throw (new Error('Unsupported curve'));
	}
	var base64Key = key.part['d'].data.toString('base64');
	out += 'PrivateKey: ' + base64Key + '\n';

	// Assume that we're valid as-of now
	var timestamp = new Date();
	out += 'Created: ' + dnssecTimestamp(timestamp) + '\n';
	out += 'Publish: ' + dnssecTimestamp(timestamp) + '\n';
	out += 'Activate: ' + dnssecTimestamp(timestamp) + '\n';

	return (Buffer.from(out, 'ascii'));
}

function write(key, options) {
	if (PrivateKey.isPrivateKey(key)) {
		if (key.type === 'rsa') {
			return (writeRSA(key, options));
		} else if (key.type === 'ecdsa') {
			return (writeECDSA(key, options));
		} else {
			throw (new Error('Unsupported algorithm: ' + key.type));
		}
	} else if (Key.isKey(key)) {
		/*
		 * RFC3110 requires a keyname, and a keytype, which we
		 * don't really have a mechanism for specifying such
		 * additional metadata.
		 */
		throw (new Error('Format "dnssec" only supports ' +
		    'writing private keys'));
	} else {
		throw (new Error('key is not a Key or PrivateKey'));
	}
}


/***/ }),
/* 368 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2018 Joyent, Inc.

module.exports = {
	read: read,
	write: write
};

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var rfc4253 = __webpack_require__(364);
var Key = __webpack_require__(337);

var errors = __webpack_require__(341);

function read(buf, options) {
	var lines = buf.toString('ascii').split(/[\r\n]+/);
	var found = false;
	var parts;
	var si = 0;
	while (si < lines.length) {
		parts = splitHeader(lines[si++]);
		if (parts &&
		    parts[0].toLowerCase() === 'putty-user-key-file-2') {
			found = true;
			break;
		}
	}
	if (!found) {
		throw (new Error('No PuTTY format first line found'));
	}
	var alg = parts[1];

	parts = splitHeader(lines[si++]);
	assert.equal(parts[0].toLowerCase(), 'encryption');

	parts = splitHeader(lines[si++]);
	assert.equal(parts[0].toLowerCase(), 'comment');
	var comment = parts[1];

	parts = splitHeader(lines[si++]);
	assert.equal(parts[0].toLowerCase(), 'public-lines');
	var publicLines = parseInt(parts[1], 10);
	if (!isFinite(publicLines) || publicLines < 0 ||
	    publicLines > lines.length) {
		throw (new Error('Invalid public-lines count'));
	}

	var publicBuf = Buffer.from(
	    lines.slice(si, si + publicLines).join(''), 'base64');
	var keyType = rfc4253.algToKeyType(alg);
	var key = rfc4253.read(publicBuf);
	if (key.type !== keyType) {
		throw (new Error('Outer key algorithm mismatch'));
	}
	key.comment = comment;
	return (key);
}

function splitHeader(line) {
	var idx = line.indexOf(':');
	if (idx === -1)
		return (null);
	var header = line.slice(0, idx);
	++idx;
	while (line[idx] === ' ')
		++idx;
	var rest = line.slice(idx);
	return ([header, rest]);
}

function write(key, options) {
	assert.object(key);
	if (!Key.isKey(key))
		throw (new Error('Must be a public key'));

	var alg = rfc4253.keyTypeToAlg(key);
	var buf = rfc4253.write(key);
	var comment = key.comment || '';

	var b64 = buf.toString('base64');
	var lines = wrap(b64, 64);

	lines.unshift('Public-Lines: ' + lines.length);
	lines.unshift('Comment: ' + comment);
	lines.unshift('Encryption: none');
	lines.unshift('PuTTY-User-Key-File-2: ' + alg);

	return (Buffer.from(lines.join('\n') + '\n'));
}

function wrap(txt, len) {
	var lines = [];
	var pos = 0;
	while (pos < txt.length) {
		lines.push(txt.slice(pos, pos + 64));
		pos += 64;
	}
	return (lines);
}


/***/ }),
/* 369 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2016 Joyent, Inc.

module.exports = Certificate;

var assert = __webpack_require__(334);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var crypto = __webpack_require__(57);
var Fingerprint = __webpack_require__(340);
var Signature = __webpack_require__(343);
var errs = __webpack_require__(341);
var util = __webpack_require__(113);
var utils = __webpack_require__(344);
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);
var Identity = __webpack_require__(370);

var formats = {};
formats['openssh'] = __webpack_require__(371);
formats['x509'] = __webpack_require__(372);
formats['pem'] = __webpack_require__(373);

var CertificateParseError = errs.CertificateParseError;
var InvalidAlgorithmError = errs.InvalidAlgorithmError;

function Certificate(opts) {
	assert.object(opts, 'options');
	assert.arrayOfObject(opts.subjects, 'options.subjects');
	utils.assertCompatible(opts.subjects[0], Identity, [1, 0],
	    'options.subjects');
	utils.assertCompatible(opts.subjectKey, Key, [1, 0],
	    'options.subjectKey');
	utils.assertCompatible(opts.issuer, Identity, [1, 0], 'options.issuer');
	if (opts.issuerKey !== undefined) {
		utils.assertCompatible(opts.issuerKey, Key, [1, 0],
		    'options.issuerKey');
	}
	assert.object(opts.signatures, 'options.signatures');
	assert.buffer(opts.serial, 'options.serial');
	assert.date(opts.validFrom, 'options.validFrom');
	assert.date(opts.validUntil, 'optons.validUntil');

	assert.optionalArrayOfString(opts.purposes, 'options.purposes');

	this._hashCache = {};

	this.subjects = opts.subjects;
	this.issuer = opts.issuer;
	this.subjectKey = opts.subjectKey;
	this.issuerKey = opts.issuerKey;
	this.signatures = opts.signatures;
	this.serial = opts.serial;
	this.validFrom = opts.validFrom;
	this.validUntil = opts.validUntil;
	this.purposes = opts.purposes;
}

Certificate.formats = formats;

Certificate.prototype.toBuffer = function (format, options) {
	if (format === undefined)
		format = 'x509';
	assert.string(format, 'format');
	assert.object(formats[format], 'formats[format]');
	assert.optionalObject(options, 'options');

	return (formats[format].write(this, options));
};

Certificate.prototype.toString = function (format, options) {
	if (format === undefined)
		format = 'pem';
	return (this.toBuffer(format, options).toString());
};

Certificate.prototype.fingerprint = function (algo) {
	if (algo === undefined)
		algo = 'sha256';
	assert.string(algo, 'algorithm');
	var opts = {
		type: 'certificate',
		hash: this.hash(algo),
		algorithm: algo
	};
	return (new Fingerprint(opts));
};

Certificate.prototype.hash = function (algo) {
	assert.string(algo, 'algorithm');
	algo = algo.toLowerCase();
	if (algs.hashAlgs[algo] === undefined)
		throw (new InvalidAlgorithmError(algo));

	if (this._hashCache[algo])
		return (this._hashCache[algo]);

	var hash = crypto.createHash(algo).
	    update(this.toBuffer('x509')).digest();
	this._hashCache[algo] = hash;
	return (hash);
};

Certificate.prototype.isExpired = function (when) {
	if (when === undefined)
		when = new Date();
	return (!((when.getTime() >= this.validFrom.getTime()) &&
		(when.getTime() < this.validUntil.getTime())));
};

Certificate.prototype.isSignedBy = function (issuerCert) {
	utils.assertCompatible(issuerCert, Certificate, [1, 0], 'issuer');

	if (!this.issuer.equals(issuerCert.subjects[0]))
		return (false);
	if (this.issuer.purposes && this.issuer.purposes.length > 0 &&
	    this.issuer.purposes.indexOf('ca') === -1) {
		return (false);
	}

	return (this.isSignedByKey(issuerCert.subjectKey));
};

Certificate.prototype.getExtension = function (keyOrOid) {
	assert.string(keyOrOid, 'keyOrOid');
	var ext = this.getExtensions().filter(function (maybeExt) {
		if (maybeExt.format === 'x509')
			return (maybeExt.oid === keyOrOid);
		if (maybeExt.format === 'openssh')
			return (maybeExt.name === keyOrOid);
		return (false);
	})[0];
	return (ext);
};

Certificate.prototype.getExtensions = function () {
	var exts = [];
	var x509 = this.signatures.x509;
	if (x509 && x509.extras && x509.extras.exts) {
		x509.extras.exts.forEach(function (ext) {
			ext.format = 'x509';
			exts.push(ext);
		});
	}
	var openssh = this.signatures.openssh;
	if (openssh && openssh.exts) {
		openssh.exts.forEach(function (ext) {
			ext.format = 'openssh';
			exts.push(ext);
		});
	}
	return (exts);
};

Certificate.prototype.isSignedByKey = function (issuerKey) {
	utils.assertCompatible(issuerKey, Key, [1, 2], 'issuerKey');

	if (this.issuerKey !== undefined) {
		return (this.issuerKey.
		    fingerprint('sha512').matches(issuerKey));
	}

	var fmt = Object.keys(this.signatures)[0];
	var valid = formats[fmt].verify(this, issuerKey);
	if (valid)
		this.issuerKey = issuerKey;
	return (valid);
};

Certificate.prototype.signWith = function (key) {
	utils.assertCompatible(key, PrivateKey, [1, 2], 'key');
	var fmts = Object.keys(formats);
	var didOne = false;
	for (var i = 0; i < fmts.length; ++i) {
		if (fmts[i] !== 'pem') {
			var ret = formats[fmts[i]].sign(this, key);
			if (ret === true)
				didOne = true;
		}
	}
	if (!didOne) {
		throw (new Error('Failed to sign the certificate for any ' +
		    'available certificate formats'));
	}
};

Certificate.createSelfSigned = function (subjectOrSubjects, key, options) {
	var subjects;
	if (Array.isArray(subjectOrSubjects))
		subjects = subjectOrSubjects;
	else
		subjects = [subjectOrSubjects];

	assert.arrayOfObject(subjects);
	subjects.forEach(function (subject) {
		utils.assertCompatible(subject, Identity, [1, 0], 'subject');
	});

	utils.assertCompatible(key, PrivateKey, [1, 2], 'private key');

	assert.optionalObject(options, 'options');
	if (options === undefined)
		options = {};
	assert.optionalObject(options.validFrom, 'options.validFrom');
	assert.optionalObject(options.validUntil, 'options.validUntil');
	var validFrom = options.validFrom;
	var validUntil = options.validUntil;
	if (validFrom === undefined)
		validFrom = new Date();
	if (validUntil === undefined) {
		assert.optionalNumber(options.lifetime, 'options.lifetime');
		var lifetime = options.lifetime;
		if (lifetime === undefined)
			lifetime = 10*365*24*3600;
		validUntil = new Date();
		validUntil.setTime(validUntil.getTime() + lifetime*1000);
	}
	assert.optionalBuffer(options.serial, 'options.serial');
	var serial = options.serial;
	if (serial === undefined)
		serial = Buffer.from('0000000000000001', 'hex');

	var purposes = options.purposes;
	if (purposes === undefined)
		purposes = [];

	if (purposes.indexOf('signature') === -1)
		purposes.push('signature');

	/* Self-signed certs are always CAs. */
	if (purposes.indexOf('ca') === -1)
		purposes.push('ca');
	if (purposes.indexOf('crl') === -1)
		purposes.push('crl');

	/*
	 * If we weren't explicitly given any other purposes, do the sensible
	 * thing and add some basic ones depending on the subject type.
	 */
	if (purposes.length <= 3) {
		var hostSubjects = subjects.filter(function (subject) {
			return (subject.type === 'host');
		});
		var userSubjects = subjects.filter(function (subject) {
			return (subject.type === 'user');
		});
		if (hostSubjects.length > 0) {
			if (purposes.indexOf('serverAuth') === -1)
				purposes.push('serverAuth');
		}
		if (userSubjects.length > 0) {
			if (purposes.indexOf('clientAuth') === -1)
				purposes.push('clientAuth');
		}
		if (userSubjects.length > 0 || hostSubjects.length > 0) {
			if (purposes.indexOf('keyAgreement') === -1)
				purposes.push('keyAgreement');
			if (key.type === 'rsa' &&
			    purposes.indexOf('encryption') === -1)
				purposes.push('encryption');
		}
	}

	var cert = new Certificate({
		subjects: subjects,
		issuer: subjects[0],
		subjectKey: key.toPublic(),
		issuerKey: key.toPublic(),
		signatures: {},
		serial: serial,
		validFrom: validFrom,
		validUntil: validUntil,
		purposes: purposes
	});
	cert.signWith(key);

	return (cert);
};

Certificate.create =
    function (subjectOrSubjects, key, issuer, issuerKey, options) {
	var subjects;
	if (Array.isArray(subjectOrSubjects))
		subjects = subjectOrSubjects;
	else
		subjects = [subjectOrSubjects];

	assert.arrayOfObject(subjects);
	subjects.forEach(function (subject) {
		utils.assertCompatible(subject, Identity, [1, 0], 'subject');
	});

	utils.assertCompatible(key, Key, [1, 0], 'key');
	if (PrivateKey.isPrivateKey(key))
		key = key.toPublic();
	utils.assertCompatible(issuer, Identity, [1, 0], 'issuer');
	utils.assertCompatible(issuerKey, PrivateKey, [1, 2], 'issuer key');

	assert.optionalObject(options, 'options');
	if (options === undefined)
		options = {};
	assert.optionalObject(options.validFrom, 'options.validFrom');
	assert.optionalObject(options.validUntil, 'options.validUntil');
	var validFrom = options.validFrom;
	var validUntil = options.validUntil;
	if (validFrom === undefined)
		validFrom = new Date();
	if (validUntil === undefined) {
		assert.optionalNumber(options.lifetime, 'options.lifetime');
		var lifetime = options.lifetime;
		if (lifetime === undefined)
			lifetime = 10*365*24*3600;
		validUntil = new Date();
		validUntil.setTime(validUntil.getTime() + lifetime*1000);
	}
	assert.optionalBuffer(options.serial, 'options.serial');
	var serial = options.serial;
	if (serial === undefined)
		serial = Buffer.from('0000000000000001', 'hex');

	var purposes = options.purposes;
	if (purposes === undefined)
		purposes = [];

	if (purposes.indexOf('signature') === -1)
		purposes.push('signature');

	if (options.ca === true) {
		if (purposes.indexOf('ca') === -1)
			purposes.push('ca');
		if (purposes.indexOf('crl') === -1)
			purposes.push('crl');
	}

	var hostSubjects = subjects.filter(function (subject) {
		return (subject.type === 'host');
	});
	var userSubjects = subjects.filter(function (subject) {
		return (subject.type === 'user');
	});
	if (hostSubjects.length > 0) {
		if (purposes.indexOf('serverAuth') === -1)
			purposes.push('serverAuth');
	}
	if (userSubjects.length > 0) {
		if (purposes.indexOf('clientAuth') === -1)
			purposes.push('clientAuth');
	}
	if (userSubjects.length > 0 || hostSubjects.length > 0) {
		if (purposes.indexOf('keyAgreement') === -1)
			purposes.push('keyAgreement');
		if (key.type === 'rsa' &&
		    purposes.indexOf('encryption') === -1)
			purposes.push('encryption');
	}

	var cert = new Certificate({
		subjects: subjects,
		issuer: issuer,
		subjectKey: key,
		issuerKey: issuerKey.toPublic(),
		signatures: {},
		serial: serial,
		validFrom: validFrom,
		validUntil: validUntil,
		purposes: purposes
	});
	cert.signWith(issuerKey);

	return (cert);
};

Certificate.parse = function (data, format, options) {
	if (typeof (data) !== 'string')
		assert.buffer(data, 'data');
	if (format === undefined)
		format = 'auto';
	assert.string(format, 'format');
	if (typeof (options) === 'string')
		options = { filename: options };
	assert.optionalObject(options, 'options');
	if (options === undefined)
		options = {};
	assert.optionalString(options.filename, 'options.filename');
	if (options.filename === undefined)
		options.filename = '(unnamed)';

	assert.object(formats[format], 'formats[format]');

	try {
		var k = formats[format].read(data, options);
		return (k);
	} catch (e) {
		throw (new CertificateParseError(options.filename, format, e));
	}
};

Certificate.isCertificate = function (obj, ver) {
	return (utils.isCompatible(obj, Certificate, ver));
};

/*
 * API versions for Certificate:
 * [1,0] -- initial ver
 * [1,1] -- openssh format now unpacks extensions
 */
Certificate.prototype._sshpkApiVersion = [1, 1];

Certificate._oldVersionDetect = function (obj) {
	return ([1, 0]);
};


/***/ }),
/* 370 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2017 Joyent, Inc.

module.exports = Identity;

var assert = __webpack_require__(334);
var algs = __webpack_require__(338);
var crypto = __webpack_require__(57);
var Fingerprint = __webpack_require__(340);
var Signature = __webpack_require__(343);
var errs = __webpack_require__(341);
var util = __webpack_require__(113);
var utils = __webpack_require__(344);
var asn1 = __webpack_require__(345);
var Buffer = __webpack_require__(339).Buffer;

/*JSSTYLED*/
var DNS_NAME_RE = /^([*]|[a-z0-9][a-z0-9\-]{0,62})(?:\.([*]|[a-z0-9][a-z0-9\-]{0,62}))*$/i;

var oids = {};
oids.cn = '2.5.4.3';
oids.o = '2.5.4.10';
oids.ou = '2.5.4.11';
oids.l = '2.5.4.7';
oids.s = '2.5.4.8';
oids.c = '2.5.4.6';
oids.sn = '2.5.4.4';
oids.postalCode = '2.5.4.17';
oids.serialNumber = '2.5.4.5';
oids.street = '2.5.4.9';
oids.x500UniqueIdentifier = '2.5.4.45';
oids.role = '2.5.4.72';
oids.telephoneNumber = '2.5.4.20';
oids.description = '2.5.4.13';
oids.dc = '0.9.2342.19200300.100.1.25';
oids.uid = '0.9.2342.19200300.100.1.1';
oids.mail = '0.9.2342.19200300.100.1.3';
oids.title = '2.5.4.12';
oids.gn = '2.5.4.42';
oids.initials = '2.5.4.43';
oids.pseudonym = '2.5.4.65';
oids.emailAddress = '1.2.840.113549.1.9.1';

var unoids = {};
Object.keys(oids).forEach(function (k) {
	unoids[oids[k]] = k;
});

function Identity(opts) {
	var self = this;
	assert.object(opts, 'options');
	assert.arrayOfObject(opts.components, 'options.components');
	this.components = opts.components;
	this.componentLookup = {};
	this.components.forEach(function (c) {
		if (c.name && !c.oid)
			c.oid = oids[c.name];
		if (c.oid && !c.name)
			c.name = unoids[c.oid];
		if (self.componentLookup[c.name] === undefined)
			self.componentLookup[c.name] = [];
		self.componentLookup[c.name].push(c);
	});
	if (this.componentLookup.cn && this.componentLookup.cn.length > 0) {
		this.cn = this.componentLookup.cn[0].value;
	}
	assert.optionalString(opts.type, 'options.type');
	if (opts.type === undefined) {
		if (this.components.length === 1 &&
		    this.componentLookup.cn &&
		    this.componentLookup.cn.length === 1 &&
		    this.componentLookup.cn[0].value.match(DNS_NAME_RE)) {
			this.type = 'host';
			this.hostname = this.componentLookup.cn[0].value;

		} else if (this.componentLookup.dc &&
		    this.components.length === this.componentLookup.dc.length) {
			this.type = 'host';
			this.hostname = this.componentLookup.dc.map(
			    function (c) {
				return (c.value);
			}).join('.');

		} else if (this.componentLookup.uid &&
		    this.components.length ===
		    this.componentLookup.uid.length) {
			this.type = 'user';
			this.uid = this.componentLookup.uid[0].value;

		} else if (this.componentLookup.cn &&
		    this.componentLookup.cn.length === 1 &&
		    this.componentLookup.cn[0].value.match(DNS_NAME_RE)) {
			this.type = 'host';
			this.hostname = this.componentLookup.cn[0].value;

		} else if (this.componentLookup.uid &&
		    this.componentLookup.uid.length === 1) {
			this.type = 'user';
			this.uid = this.componentLookup.uid[0].value;

		} else if (this.componentLookup.mail &&
		    this.componentLookup.mail.length === 1) {
			this.type = 'email';
			this.email = this.componentLookup.mail[0].value;

		} else if (this.componentLookup.cn &&
		    this.componentLookup.cn.length === 1) {
			this.type = 'user';
			this.uid = this.componentLookup.cn[0].value;

		} else {
			this.type = 'unknown';
		}
	} else {
		this.type = opts.type;
		if (this.type === 'host')
			this.hostname = opts.hostname;
		else if (this.type === 'user')
			this.uid = opts.uid;
		else if (this.type === 'email')
			this.email = opts.email;
		else
			throw (new Error('Unknown type ' + this.type));
	}
}

Identity.prototype.toString = function () {
	return (this.components.map(function (c) {
		var n = c.name.toUpperCase();
		/*JSSTYLED*/
		n = n.replace(/=/g, '\\=');
		var v = c.value;
		/*JSSTYLED*/
		v = v.replace(/,/g, '\\,');
		return (n + '=' + v);
	}).join(', '));
};

Identity.prototype.get = function (name, asArray) {
	assert.string(name, 'name');
	var arr = this.componentLookup[name];
	if (arr === undefined || arr.length === 0)
		return (undefined);
	if (!asArray && arr.length > 1)
		throw (new Error('Multiple values for attribute ' + name));
	if (!asArray)
		return (arr[0].value);
	return (arr.map(function (c) {
		return (c.value);
	}));
};

Identity.prototype.toArray = function (idx) {
	return (this.components.map(function (c) {
		return ({
			name: c.name,
			value: c.value
		});
	}));
};

/*
 * These are from X.680 -- PrintableString allowed chars are in section 37.4
 * table 8. Spec for IA5Strings is "1,6 + SPACE + DEL" where 1 refers to
 * ISO IR #001 (standard ASCII control characters) and 6 refers to ISO IR #006
 * (the basic ASCII character set).
 */
/* JSSTYLED */
var NOT_PRINTABLE = /[^a-zA-Z0-9 '(),+.\/:=?-]/;
/* JSSTYLED */
var NOT_IA5 = /[^\x00-\x7f]/;

Identity.prototype.toAsn1 = function (der, tag) {
	der.startSequence(tag);
	this.components.forEach(function (c) {
		der.startSequence(asn1.Ber.Constructor | asn1.Ber.Set);
		der.startSequence();
		der.writeOID(c.oid);
		/*
		 * If we fit in a PrintableString, use that. Otherwise use an
		 * IA5String or UTF8String.
		 *
		 * If this identity was parsed from a DN, use the ASN.1 types
		 * from the original representation (otherwise this might not
		 * be a full match for the original in some validators).
		 */
		if (c.asn1type === asn1.Ber.Utf8String ||
		    c.value.match(NOT_IA5)) {
			var v = Buffer.from(c.value, 'utf8');
			der.writeBuffer(v, asn1.Ber.Utf8String);

		} else if (c.asn1type === asn1.Ber.IA5String ||
		    c.value.match(NOT_PRINTABLE)) {
			der.writeString(c.value, asn1.Ber.IA5String);

		} else {
			var type = asn1.Ber.PrintableString;
			if (c.asn1type !== undefined)
				type = c.asn1type;
			der.writeString(c.value, type);
		}
		der.endSequence();
		der.endSequence();
	});
	der.endSequence();
};

function globMatch(a, b) {
	if (a === '**' || b === '**')
		return (true);
	var aParts = a.split('.');
	var bParts = b.split('.');
	if (aParts.length !== bParts.length)
		return (false);
	for (var i = 0; i < aParts.length; ++i) {
		if (aParts[i] === '*' || bParts[i] === '*')
			continue;
		if (aParts[i] !== bParts[i])
			return (false);
	}
	return (true);
}

Identity.prototype.equals = function (other) {
	if (!Identity.isIdentity(other, [1, 0]))
		return (false);
	if (other.components.length !== this.components.length)
		return (false);
	for (var i = 0; i < this.components.length; ++i) {
		if (this.components[i].oid !== other.components[i].oid)
			return (false);
		if (!globMatch(this.components[i].value,
		    other.components[i].value)) {
			return (false);
		}
	}
	return (true);
};

Identity.forHost = function (hostname) {
	assert.string(hostname, 'hostname');
	return (new Identity({
		type: 'host',
		hostname: hostname,
		components: [ { name: 'cn', value: hostname } ]
	}));
};

Identity.forUser = function (uid) {
	assert.string(uid, 'uid');
	return (new Identity({
		type: 'user',
		uid: uid,
		components: [ { name: 'uid', value: uid } ]
	}));
};

Identity.forEmail = function (email) {
	assert.string(email, 'email');
	return (new Identity({
		type: 'email',
		email: email,
		components: [ { name: 'mail', value: email } ]
	}));
};

Identity.parseDN = function (dn) {
	assert.string(dn, 'dn');
	var parts = [''];
	var idx = 0;
	var rem = dn;
	while (rem.length > 0) {
		var m;
		/*JSSTYLED*/
		if ((m = /^,/.exec(rem)) !== null) {
			parts[++idx] = '';
			rem = rem.slice(m[0].length);
		/*JSSTYLED*/
		} else if ((m = /^\\,/.exec(rem)) !== null) {
			parts[idx] += ',';
			rem = rem.slice(m[0].length);
		/*JSSTYLED*/
		} else if ((m = /^\\./.exec(rem)) !== null) {
			parts[idx] += m[0];
			rem = rem.slice(m[0].length);
		/*JSSTYLED*/
		} else if ((m = /^[^\\,]+/.exec(rem)) !== null) {
			parts[idx] += m[0];
			rem = rem.slice(m[0].length);
		} else {
			throw (new Error('Failed to parse DN'));
		}
	}
	var cmps = parts.map(function (c) {
		c = c.trim();
		var eqPos = c.indexOf('=');
		while (eqPos > 0 && c.charAt(eqPos - 1) === '\\')
			eqPos = c.indexOf('=', eqPos + 1);
		if (eqPos === -1) {
			throw (new Error('Failed to parse DN'));
		}
		/*JSSTYLED*/
		var name = c.slice(0, eqPos).toLowerCase().replace(/\\=/g, '=');
		var value = c.slice(eqPos + 1);
		return ({ name: name, value: value });
	});
	return (new Identity({ components: cmps }));
};

Identity.fromArray = function (components) {
	assert.arrayOfObject(components, 'components');
	components.forEach(function (cmp) {
		assert.object(cmp, 'component');
		assert.string(cmp.name, 'component.name');
		if (!Buffer.isBuffer(cmp.value) &&
		    !(typeof (cmp.value) === 'string')) {
			throw (new Error('Invalid component value'));
		}
	});
	return (new Identity({ components: components }));
};

Identity.parseAsn1 = function (der, top) {
	var components = [];
	der.readSequence(top);
	var end = der.offset + der.length;
	while (der.offset < end) {
		der.readSequence(asn1.Ber.Constructor | asn1.Ber.Set);
		var after = der.offset + der.length;
		der.readSequence();
		var oid = der.readOID();
		var type = der.peek();
		var value;
		switch (type) {
		case asn1.Ber.PrintableString:
		case asn1.Ber.IA5String:
		case asn1.Ber.OctetString:
		case asn1.Ber.T61String:
			value = der.readString(type);
			break;
		case asn1.Ber.Utf8String:
			value = der.readString(type, true);
			value = value.toString('utf8');
			break;
		case asn1.Ber.CharacterString:
		case asn1.Ber.BMPString:
			value = der.readString(type, true);
			value = value.toString('utf16le');
			break;
		default:
			throw (new Error('Unknown asn1 type ' + type));
		}
		components.push({ oid: oid, asn1type: type, value: value });
		der._offset = after;
	}
	der._offset = end;
	return (new Identity({
		components: components
	}));
};

Identity.isIdentity = function (obj, ver) {
	return (utils.isCompatible(obj, Identity, ver));
};

/*
 * API versions for Identity:
 * [1,0] -- initial ver
 */
Identity.prototype._sshpkApiVersion = [1, 0];

Identity._oldVersionDetect = function (obj) {
	return ([1, 0]);
};


/***/ }),
/* 371 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2017 Joyent, Inc.

module.exports = {
	read: read,
	verify: verify,
	sign: sign,
	signAsync: signAsync,
	write: write,

	/* Internal private API */
	fromBuffer: fromBuffer,
	toBuffer: toBuffer
};

var assert = __webpack_require__(334);
var SSHBuffer = __webpack_require__(354);
var crypto = __webpack_require__(57);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);
var Identity = __webpack_require__(370);
var rfc4253 = __webpack_require__(364);
var Signature = __webpack_require__(343);
var utils = __webpack_require__(344);
var Certificate = __webpack_require__(369);

function verify(cert, key) {
	/*
	 * We always give an issuerKey, so if our verify() is being called then
	 * there was no signature. Return false.
	 */
	return (false);
}

var TYPES = {
	'user': 1,
	'host': 2
};
Object.keys(TYPES).forEach(function (k) { TYPES[TYPES[k]] = k; });

var ECDSA_ALGO = /^ecdsa-sha2-([^@-]+)-cert-v01@openssh.com$/;

function read(buf, options) {
	if (Buffer.isBuffer(buf))
		buf = buf.toString('ascii');
	var parts = buf.trim().split(/[ \t\n]+/g);
	if (parts.length < 2 || parts.length > 3)
		throw (new Error('Not a valid SSH certificate line'));

	var algo = parts[0];
	var data = parts[1];

	data = Buffer.from(data, 'base64');
	return (fromBuffer(data, algo));
}

function fromBuffer(data, algo, partial) {
	var sshbuf = new SSHBuffer({ buffer: data });
	var innerAlgo = sshbuf.readString();
	if (algo !== undefined && innerAlgo !== algo)
		throw (new Error('SSH certificate algorithm mismatch'));
	if (algo === undefined)
		algo = innerAlgo;

	var cert = {};
	cert.signatures = {};
	cert.signatures.openssh = {};

	cert.signatures.openssh.nonce = sshbuf.readBuffer();

	var key = {};
	var parts = (key.parts = []);
	key.type = getAlg(algo);

	var partCount = algs.info[key.type].parts.length;
	while (parts.length < partCount)
		parts.push(sshbuf.readPart());
	assert.ok(parts.length >= 1, 'key must have at least one part');

	var algInfo = algs.info[key.type];
	if (key.type === 'ecdsa') {
		var res = ECDSA_ALGO.exec(algo);
		assert.ok(res !== null);
		assert.strictEqual(res[1], parts[0].data.toString());
	}

	for (var i = 0; i < algInfo.parts.length; ++i) {
		parts[i].name = algInfo.parts[i];
		if (parts[i].name !== 'curve' &&
		    algInfo.normalize !== false) {
			var p = parts[i];
			p.data = utils.mpNormalize(p.data);
		}
	}

	cert.subjectKey = new Key(key);

	cert.serial = sshbuf.readInt64();

	var type = TYPES[sshbuf.readInt()];
	assert.string(type, 'valid cert type');

	cert.signatures.openssh.keyId = sshbuf.readString();

	var principals = [];
	var pbuf = sshbuf.readBuffer();
	var psshbuf = new SSHBuffer({ buffer: pbuf });
	while (!psshbuf.atEnd())
		principals.push(psshbuf.readString());
	if (principals.length === 0)
		principals = ['*'];

	cert.subjects = principals.map(function (pr) {
		if (type === 'user')
			return (Identity.forUser(pr));
		else if (type === 'host')
			return (Identity.forHost(pr));
		throw (new Error('Unknown identity type ' + type));
	});

	cert.validFrom = int64ToDate(sshbuf.readInt64());
	cert.validUntil = int64ToDate(sshbuf.readInt64());

	var exts = [];
	var extbuf = new SSHBuffer({ buffer: sshbuf.readBuffer() });
	var ext;
	while (!extbuf.atEnd()) {
		ext = { critical: true };
		ext.name = extbuf.readString();
		ext.data = extbuf.readBuffer();
		exts.push(ext);
	}
	extbuf = new SSHBuffer({ buffer: sshbuf.readBuffer() });
	while (!extbuf.atEnd()) {
		ext = { critical: false };
		ext.name = extbuf.readString();
		ext.data = extbuf.readBuffer();
		exts.push(ext);
	}
	cert.signatures.openssh.exts = exts;

	/* reserved */
	sshbuf.readBuffer();

	var signingKeyBuf = sshbuf.readBuffer();
	cert.issuerKey = rfc4253.read(signingKeyBuf);

	/*
	 * OpenSSH certs don't give the identity of the issuer, just their
	 * public key. So, we use an Identity that matches anything. The
	 * isSignedBy() function will later tell you if the key matches.
	 */
	cert.issuer = Identity.forHost('**');

	var sigBuf = sshbuf.readBuffer();
	cert.signatures.openssh.signature =
	    Signature.parse(sigBuf, cert.issuerKey.type, 'ssh');

	if (partial !== undefined) {
		partial.remainder = sshbuf.remainder();
		partial.consumed = sshbuf._offset;
	}

	return (new Certificate(cert));
}

function int64ToDate(buf) {
	var i = buf.readUInt32BE(0) * 4294967296;
	i += buf.readUInt32BE(4);
	var d = new Date();
	d.setTime(i * 1000);
	d.sourceInt64 = buf;
	return (d);
}

function dateToInt64(date) {
	if (date.sourceInt64 !== undefined)
		return (date.sourceInt64);
	var i = Math.round(date.getTime() / 1000);
	var upper = Math.floor(i / 4294967296);
	var lower = Math.floor(i % 4294967296);
	var buf = Buffer.alloc(8);
	buf.writeUInt32BE(upper, 0);
	buf.writeUInt32BE(lower, 4);
	return (buf);
}

function sign(cert, key) {
	if (cert.signatures.openssh === undefined)
		cert.signatures.openssh = {};
	try {
		var blob = toBuffer(cert, true);
	} catch (e) {
		delete (cert.signatures.openssh);
		return (false);
	}
	var sig = cert.signatures.openssh;
	var hashAlgo = undefined;
	if (key.type === 'rsa' || key.type === 'dsa')
		hashAlgo = 'sha1';
	var signer = key.createSign(hashAlgo);
	signer.write(blob);
	sig.signature = signer.sign();
	return (true);
}

function signAsync(cert, signer, done) {
	if (cert.signatures.openssh === undefined)
		cert.signatures.openssh = {};
	try {
		var blob = toBuffer(cert, true);
	} catch (e) {
		delete (cert.signatures.openssh);
		done(e);
		return;
	}
	var sig = cert.signatures.openssh;

	signer(blob, function (err, signature) {
		if (err) {
			done(err);
			return;
		}
		try {
			/*
			 * This will throw if the signature isn't of a
			 * type/algo that can be used for SSH.
			 */
			signature.toBuffer('ssh');
		} catch (e) {
			done(e);
			return;
		}
		sig.signature = signature;
		done();
	});
}

function write(cert, options) {
	if (options === undefined)
		options = {};

	var blob = toBuffer(cert);
	var out = getCertType(cert.subjectKey) + ' ' + blob.toString('base64');
	if (options.comment)
		out = out + ' ' + options.comment;
	return (out);
}


function toBuffer(cert, noSig) {
	assert.object(cert.signatures.openssh, 'signature for openssh format');
	var sig = cert.signatures.openssh;

	if (sig.nonce === undefined)
		sig.nonce = crypto.randomBytes(16);
	var buf = new SSHBuffer({});
	buf.writeString(getCertType(cert.subjectKey));
	buf.writeBuffer(sig.nonce);

	var key = cert.subjectKey;
	var algInfo = algs.info[key.type];
	algInfo.parts.forEach(function (part) {
		buf.writePart(key.part[part]);
	});

	buf.writeInt64(cert.serial);

	var type = cert.subjects[0].type;
	assert.notStrictEqual(type, 'unknown');
	cert.subjects.forEach(function (id) {
		assert.strictEqual(id.type, type);
	});
	type = TYPES[type];
	buf.writeInt(type);

	if (sig.keyId === undefined) {
		sig.keyId = cert.subjects[0].type + '_' +
		    (cert.subjects[0].uid || cert.subjects[0].hostname);
	}
	buf.writeString(sig.keyId);

	var sub = new SSHBuffer({});
	cert.subjects.forEach(function (id) {
		if (type === TYPES.host)
			sub.writeString(id.hostname);
		else if (type === TYPES.user)
			sub.writeString(id.uid);
	});
	buf.writeBuffer(sub.toBuffer());

	buf.writeInt64(dateToInt64(cert.validFrom));
	buf.writeInt64(dateToInt64(cert.validUntil));

	var exts = sig.exts;
	if (exts === undefined)
		exts = [];

	var extbuf = new SSHBuffer({});
	exts.forEach(function (ext) {
		if (ext.critical !== true)
			return;
		extbuf.writeString(ext.name);
		extbuf.writeBuffer(ext.data);
	});
	buf.writeBuffer(extbuf.toBuffer());

	extbuf = new SSHBuffer({});
	exts.forEach(function (ext) {
		if (ext.critical === true)
			return;
		extbuf.writeString(ext.name);
		extbuf.writeBuffer(ext.data);
	});
	buf.writeBuffer(extbuf.toBuffer());

	/* reserved */
	buf.writeBuffer(Buffer.alloc(0));

	sub = rfc4253.write(cert.issuerKey);
	buf.writeBuffer(sub);

	if (!noSig)
		buf.writeBuffer(sig.signature.toBuffer('ssh'));

	return (buf.toBuffer());
}

function getAlg(certType) {
	if (certType === 'ssh-rsa-cert-v01@openssh.com')
		return ('rsa');
	if (certType === 'ssh-dss-cert-v01@openssh.com')
		return ('dsa');
	if (certType.match(ECDSA_ALGO))
		return ('ecdsa');
	if (certType === 'ssh-ed25519-cert-v01@openssh.com')
		return ('ed25519');
	throw (new Error('Unsupported cert type ' + certType));
}

function getCertType(key) {
	if (key.type === 'rsa')
		return ('ssh-rsa-cert-v01@openssh.com');
	if (key.type === 'dsa')
		return ('ssh-dss-cert-v01@openssh.com');
	if (key.type === 'ecdsa')
		return ('ecdsa-sha2-' + key.curve + '-cert-v01@openssh.com');
	if (key.type === 'ed25519')
		return ('ssh-ed25519-cert-v01@openssh.com');
	throw (new Error('Unsupported key type ' + key.type));
}


/***/ }),
/* 372 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2017 Joyent, Inc.

module.exports = {
	read: read,
	verify: verify,
	sign: sign,
	signAsync: signAsync,
	write: write
};

var assert = __webpack_require__(334);
var asn1 = __webpack_require__(345);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var utils = __webpack_require__(344);
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);
var pem = __webpack_require__(360);
var Identity = __webpack_require__(370);
var Signature = __webpack_require__(343);
var Certificate = __webpack_require__(369);
var pkcs8 = __webpack_require__(362);

/*
 * This file is based on RFC5280 (X.509).
 */

/* Helper to read in a single mpint */
function readMPInt(der, nm) {
	assert.strictEqual(der.peek(), asn1.Ber.Integer,
	    nm + ' is not an Integer');
	return (utils.mpNormalize(der.readString(asn1.Ber.Integer, true)));
}

function verify(cert, key) {
	var sig = cert.signatures.x509;
	assert.object(sig, 'x509 signature');

	var algParts = sig.algo.split('-');
	if (algParts[0] !== key.type)
		return (false);

	var blob = sig.cache;
	if (blob === undefined) {
		var der = new asn1.BerWriter();
		writeTBSCert(cert, der);
		blob = der.buffer;
	}

	var verifier = key.createVerify(algParts[1]);
	verifier.write(blob);
	return (verifier.verify(sig.signature));
}

function Local(i) {
	return (asn1.Ber.Context | asn1.Ber.Constructor | i);
}

function Context(i) {
	return (asn1.Ber.Context | i);
}

var SIGN_ALGS = {
	'rsa-md5': '1.2.840.113549.1.1.4',
	'rsa-sha1': '1.2.840.113549.1.1.5',
	'rsa-sha256': '1.2.840.113549.1.1.11',
	'rsa-sha384': '1.2.840.113549.1.1.12',
	'rsa-sha512': '1.2.840.113549.1.1.13',
	'dsa-sha1': '1.2.840.10040.4.3',
	'dsa-sha256': '2.16.840.1.101.3.4.3.2',
	'ecdsa-sha1': '1.2.840.10045.4.1',
	'ecdsa-sha256': '1.2.840.10045.4.3.2',
	'ecdsa-sha384': '1.2.840.10045.4.3.3',
	'ecdsa-sha512': '1.2.840.10045.4.3.4',
	'ed25519-sha512': '1.3.101.112'
};
Object.keys(SIGN_ALGS).forEach(function (k) {
	SIGN_ALGS[SIGN_ALGS[k]] = k;
});
SIGN_ALGS['1.3.14.3.2.3'] = 'rsa-md5';
SIGN_ALGS['1.3.14.3.2.29'] = 'rsa-sha1';

var EXTS = {
	'issuerKeyId': '2.5.29.35',
	'altName': '2.5.29.17',
	'basicConstraints': '2.5.29.19',
	'keyUsage': '2.5.29.15',
	'extKeyUsage': '2.5.29.37'
};

function read(buf, options) {
	if (typeof (buf) === 'string') {
		buf = Buffer.from(buf, 'binary');
	}
	assert.buffer(buf, 'buf');

	var der = new asn1.BerReader(buf);

	der.readSequence();
	if (Math.abs(der.length - der.remain) > 1) {
		throw (new Error('DER sequence does not contain whole byte ' +
		    'stream'));
	}

	var tbsStart = der.offset;
	der.readSequence();
	var sigOffset = der.offset + der.length;
	var tbsEnd = sigOffset;

	if (der.peek() === Local(0)) {
		der.readSequence(Local(0));
		var version = der.readInt();
		assert.ok(version <= 3,
		    'only x.509 versions up to v3 supported');
	}

	var cert = {};
	cert.signatures = {};
	var sig = (cert.signatures.x509 = {});
	sig.extras = {};

	cert.serial = readMPInt(der, 'serial');

	der.readSequence();
	var after = der.offset + der.length;
	var certAlgOid = der.readOID();
	var certAlg = SIGN_ALGS[certAlgOid];
	if (certAlg === undefined)
		throw (new Error('unknown signature algorithm ' + certAlgOid));

	der._offset = after;
	cert.issuer = Identity.parseAsn1(der);

	der.readSequence();
	cert.validFrom = readDate(der);
	cert.validUntil = readDate(der);

	cert.subjects = [Identity.parseAsn1(der)];

	der.readSequence();
	after = der.offset + der.length;
	cert.subjectKey = pkcs8.readPkcs8(undefined, 'public', der);
	der._offset = after;

	/* issuerUniqueID */
	if (der.peek() === Local(1)) {
		der.readSequence(Local(1));
		sig.extras.issuerUniqueID =
		    buf.slice(der.offset, der.offset + der.length);
		der._offset += der.length;
	}

	/* subjectUniqueID */
	if (der.peek() === Local(2)) {
		der.readSequence(Local(2));
		sig.extras.subjectUniqueID =
		    buf.slice(der.offset, der.offset + der.length);
		der._offset += der.length;
	}

	/* extensions */
	if (der.peek() === Local(3)) {
		der.readSequence(Local(3));
		var extEnd = der.offset + der.length;
		der.readSequence();

		while (der.offset < extEnd)
			readExtension(cert, buf, der);

		assert.strictEqual(der.offset, extEnd);
	}

	assert.strictEqual(der.offset, sigOffset);

	der.readSequence();
	after = der.offset + der.length;
	var sigAlgOid = der.readOID();
	var sigAlg = SIGN_ALGS[sigAlgOid];
	if (sigAlg === undefined)
		throw (new Error('unknown signature algorithm ' + sigAlgOid));
	der._offset = after;

	var sigData = der.readString(asn1.Ber.BitString, true);
	if (sigData[0] === 0)
		sigData = sigData.slice(1);
	var algParts = sigAlg.split('-');

	sig.signature = Signature.parse(sigData, algParts[0], 'asn1');
	sig.signature.hashAlgorithm = algParts[1];
	sig.algo = sigAlg;
	sig.cache = buf.slice(tbsStart, tbsEnd);

	return (new Certificate(cert));
}

function readDate(der) {
	if (der.peek() === asn1.Ber.UTCTime) {
		return (utcTimeToDate(der.readString(asn1.Ber.UTCTime)));
	} else if (der.peek() === asn1.Ber.GeneralizedTime) {
		return (gTimeToDate(der.readString(asn1.Ber.GeneralizedTime)));
	} else {
		throw (new Error('Unsupported date format'));
	}
}

function writeDate(der, date) {
	if (date.getUTCFullYear() >= 2050 || date.getUTCFullYear() < 1950) {
		der.writeString(dateToGTime(date), asn1.Ber.GeneralizedTime);
	} else {
		der.writeString(dateToUTCTime(date), asn1.Ber.UTCTime);
	}
}

/* RFC5280, section 4.2.1.6 (GeneralName type) */
var ALTNAME = {
	OtherName: Local(0),
	RFC822Name: Context(1),
	DNSName: Context(2),
	X400Address: Local(3),
	DirectoryName: Local(4),
	EDIPartyName: Local(5),
	URI: Context(6),
	IPAddress: Context(7),
	OID: Context(8)
};

/* RFC5280, section 4.2.1.12 (KeyPurposeId) */
var EXTPURPOSE = {
	'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',

	/* See https://github.com/joyent/oid-docs/blob/master/root.md */
	'joyentDocker': '1.3.6.1.4.1.38678.1.4.1',
	'joyentCmon': '1.3.6.1.4.1.38678.1.4.2'
};
var EXTPURPOSE_REV = {};
Object.keys(EXTPURPOSE).forEach(function (k) {
	EXTPURPOSE_REV[EXTPURPOSE[k]] = k;
});

var KEYUSEBITS = [
	'signature', 'identity', 'keyEncryption',
	'encryption', 'keyAgreement', 'ca', 'crl'
];

function readExtension(cert, buf, der) {
	der.readSequence();
	var after = der.offset + der.length;
	var extId = der.readOID();
	var id;
	var sig = cert.signatures.x509;
	if (!sig.extras.exts)
		sig.extras.exts = [];

	var critical;
	if (der.peek() === asn1.Ber.Boolean)
		critical = der.readBoolean();

	switch (extId) {
	case (EXTS.basicConstraints):
		der.readSequence(asn1.Ber.OctetString);
		der.readSequence();
		var bcEnd = der.offset + der.length;
		var ca = false;
		if (der.peek() === asn1.Ber.Boolean)
			ca = der.readBoolean();
		if (cert.purposes === undefined)
			cert.purposes = [];
		if (ca === true)
			cert.purposes.push('ca');
		var bc = { oid: extId, critical: critical };
		if (der.offset < bcEnd && der.peek() === asn1.Ber.Integer)
			bc.pathLen = der.readInt();
		sig.extras.exts.push(bc);
		break;
	case (EXTS.extKeyUsage):
		der.readSequence(asn1.Ber.OctetString);
		der.readSequence();
		if (cert.purposes === undefined)
			cert.purposes = [];
		var ekEnd = der.offset + der.length;
		while (der.offset < ekEnd) {
			var oid = der.readOID();
			cert.purposes.push(EXTPURPOSE_REV[oid] || oid);
		}
		/*
		 * This is a bit of a hack: in the case where we have a cert
		 * that's only allowed to do serverAuth or clientAuth (and not
		 * the other), we want to make sure all our Subjects are of
		 * the right type. But we already parsed our Subjects and
		 * decided if they were hosts or users earlier (since it appears
		 * first in the cert).
		 *
		 * So we go through and mutate them into the right kind here if
		 * it doesn't match. This might not be hugely beneficial, as it
		 * seems that single-purpose certs are not often seen in the
		 * wild.
		 */
		if (cert.purposes.indexOf('serverAuth') !== -1 &&
		    cert.purposes.indexOf('clientAuth') === -1) {
			cert.subjects.forEach(function (ide) {
				if (ide.type !== 'host') {
					ide.type = 'host';
					ide.hostname = ide.uid ||
					    ide.email ||
					    ide.components[0].value;
				}
			});
		} else if (cert.purposes.indexOf('clientAuth') !== -1 &&
		    cert.purposes.indexOf('serverAuth') === -1) {
			cert.subjects.forEach(function (ide) {
				if (ide.type !== 'user') {
					ide.type = 'user';
					ide.uid = ide.hostname ||
					    ide.email ||
					    ide.components[0].value;
				}
			});
		}
		sig.extras.exts.push({ oid: extId, critical: critical });
		break;
	case (EXTS.keyUsage):
		der.readSequence(asn1.Ber.OctetString);
		var bits = der.readString(asn1.Ber.BitString, true);
		var setBits = readBitField(bits, KEYUSEBITS);
		setBits.forEach(function (bit) {
			if (cert.purposes === undefined)
				cert.purposes = [];
			if (cert.purposes.indexOf(bit) === -1)
				cert.purposes.push(bit);
		});
		sig.extras.exts.push({ oid: extId, critical: critical,
		    bits: bits });
		break;
	case (EXTS.altName):
		der.readSequence(asn1.Ber.OctetString);
		der.readSequence();
		var aeEnd = der.offset + der.length;
		while (der.offset < aeEnd) {
			switch (der.peek()) {
			case ALTNAME.OtherName:
			case ALTNAME.EDIPartyName:
				der.readSequence();
				der._offset += der.length;
				break;
			case ALTNAME.OID:
				der.readOID(ALTNAME.OID);
				break;
			case ALTNAME.RFC822Name:
				/* RFC822 specifies email addresses */
				var email = der.readString(ALTNAME.RFC822Name);
				id = Identity.forEmail(email);
				if (!cert.subjects[0].equals(id))
					cert.subjects.push(id);
				break;
			case ALTNAME.DirectoryName:
				der.readSequence(ALTNAME.DirectoryName);
				id = Identity.parseAsn1(der);
				if (!cert.subjects[0].equals(id))
					cert.subjects.push(id);
				break;
			case ALTNAME.DNSName:
				var host = der.readString(
				    ALTNAME.DNSName);
				id = Identity.forHost(host);
				if (!cert.subjects[0].equals(id))
					cert.subjects.push(id);
				break;
			default:
				der.readString(der.peek());
				break;
			}
		}
		sig.extras.exts.push({ oid: extId, critical: critical });
		break;
	default:
		sig.extras.exts.push({
			oid: extId,
			critical: critical,
			data: der.readString(asn1.Ber.OctetString, true)
		});
		break;
	}

	der._offset = after;
}

var UTCTIME_RE =
    /^([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})?Z$/;
function utcTimeToDate(t) {
	var m = t.match(UTCTIME_RE);
	assert.ok(m, 'timestamps must be in UTC');
	var d = new Date();

	var thisYear = d.getUTCFullYear();
	var century = Math.floor(thisYear / 100) * 100;

	var year = parseInt(m[1], 10);
	if (thisYear % 100 < 50 && year >= 60)
		year += (century - 1);
	else
		year += century;
	d.setUTCFullYear(year, parseInt(m[2], 10) - 1, parseInt(m[3], 10));
	d.setUTCHours(parseInt(m[4], 10), parseInt(m[5], 10));
	if (m[6] && m[6].length > 0)
		d.setUTCSeconds(parseInt(m[6], 10));
	return (d);
}

var GTIME_RE =
    /^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})?Z$/;
function gTimeToDate(t) {
	var m = t.match(GTIME_RE);
	assert.ok(m);
	var d = new Date();

	d.setUTCFullYear(parseInt(m[1], 10), parseInt(m[2], 10) - 1,
	    parseInt(m[3], 10));
	d.setUTCHours(parseInt(m[4], 10), parseInt(m[5], 10));
	if (m[6] && m[6].length > 0)
		d.setUTCSeconds(parseInt(m[6], 10));
	return (d);
}

function zeroPad(n, m) {
	if (m === undefined)
		m = 2;
	var s = '' + n;
	while (s.length < m)
		s = '0' + s;
	return (s);
}

function dateToUTCTime(d) {
	var s = '';
	s += zeroPad(d.getUTCFullYear() % 100);
	s += zeroPad(d.getUTCMonth() + 1);
	s += zeroPad(d.getUTCDate());
	s += zeroPad(d.getUTCHours());
	s += zeroPad(d.getUTCMinutes());
	s += zeroPad(d.getUTCSeconds());
	s += 'Z';
	return (s);
}

function dateToGTime(d) {
	var s = '';
	s += zeroPad(d.getUTCFullYear(), 4);
	s += zeroPad(d.getUTCMonth() + 1);
	s += zeroPad(d.getUTCDate());
	s += zeroPad(d.getUTCHours());
	s += zeroPad(d.getUTCMinutes());
	s += zeroPad(d.getUTCSeconds());
	s += 'Z';
	return (s);
}

function sign(cert, key) {
	if (cert.signatures.x509 === undefined)
		cert.signatures.x509 = {};
	var sig = cert.signatures.x509;

	sig.algo = key.type + '-' + key.defaultHashAlgorithm();
	if (SIGN_ALGS[sig.algo] === undefined)
		return (false);

	var der = new asn1.BerWriter();
	writeTBSCert(cert, der);
	var blob = der.buffer;
	sig.cache = blob;

	var signer = key.createSign();
	signer.write(blob);
	cert.signatures.x509.signature = signer.sign();

	return (true);
}

function signAsync(cert, signer, done) {
	if (cert.signatures.x509 === undefined)
		cert.signatures.x509 = {};
	var sig = cert.signatures.x509;

	var der = new asn1.BerWriter();
	writeTBSCert(cert, der);
	var blob = der.buffer;
	sig.cache = blob;

	signer(blob, function (err, signature) {
		if (err) {
			done(err);
			return;
		}
		sig.algo = signature.type + '-' + signature.hashAlgorithm;
		if (SIGN_ALGS[sig.algo] === undefined) {
			done(new Error('Invalid signing algorithm "' +
			    sig.algo + '"'));
			return;
		}
		sig.signature = signature;
		done();
	});
}

function write(cert, options) {
	var sig = cert.signatures.x509;
	assert.object(sig, 'x509 signature');

	var der = new asn1.BerWriter();
	der.startSequence();
	if (sig.cache) {
		der._ensure(sig.cache.length);
		sig.cache.copy(der._buf, der._offset);
		der._offset += sig.cache.length;
	} else {
		writeTBSCert(cert, der);
	}

	der.startSequence();
	der.writeOID(SIGN_ALGS[sig.algo]);
	if (sig.algo.match(/^rsa-/))
		der.writeNull();
	der.endSequence();

	var sigData = sig.signature.toBuffer('asn1');
	var data = Buffer.alloc(sigData.length + 1);
	data[0] = 0;
	sigData.copy(data, 1);
	der.writeBuffer(data, asn1.Ber.BitString);
	der.endSequence();

	return (der.buffer);
}

function writeTBSCert(cert, der) {
	var sig = cert.signatures.x509;
	assert.object(sig, 'x509 signature');

	der.startSequence();

	der.startSequence(Local(0));
	der.writeInt(2);
	der.endSequence();

	der.writeBuffer(utils.mpNormalize(cert.serial), asn1.Ber.Integer);

	der.startSequence();
	der.writeOID(SIGN_ALGS[sig.algo]);
	if (sig.algo.match(/^rsa-/))
		der.writeNull();
	der.endSequence();

	cert.issuer.toAsn1(der);

	der.startSequence();
	writeDate(der, cert.validFrom);
	writeDate(der, cert.validUntil);
	der.endSequence();

	var subject = cert.subjects[0];
	var altNames = cert.subjects.slice(1);
	subject.toAsn1(der);

	pkcs8.writePkcs8(der, cert.subjectKey);

	if (sig.extras && sig.extras.issuerUniqueID) {
		der.writeBuffer(sig.extras.issuerUniqueID, Local(1));
	}

	if (sig.extras && sig.extras.subjectUniqueID) {
		der.writeBuffer(sig.extras.subjectUniqueID, Local(2));
	}

	if (altNames.length > 0 || subject.type === 'host' ||
	    (cert.purposes !== undefined && cert.purposes.length > 0) ||
	    (sig.extras && sig.extras.exts)) {
		der.startSequence(Local(3));
		der.startSequence();

		var exts = [];
		if (cert.purposes !== undefined && cert.purposes.length > 0) {
			exts.push({
				oid: EXTS.basicConstraints,
				critical: true
			});
			exts.push({
				oid: EXTS.keyUsage,
				critical: true
			});
			exts.push({
				oid: EXTS.extKeyUsage,
				critical: true
			});
		}
		exts.push({ oid: EXTS.altName });
		if (sig.extras && sig.extras.exts)
			exts = sig.extras.exts;

		for (var i = 0; i < exts.length; ++i) {
			der.startSequence();
			der.writeOID(exts[i].oid);

			if (exts[i].critical !== undefined)
				der.writeBoolean(exts[i].critical);

			if (exts[i].oid === EXTS.altName) {
				der.startSequence(asn1.Ber.OctetString);
				der.startSequence();
				if (subject.type === 'host') {
					der.writeString(subject.hostname,
					    Context(2));
				}
				for (var j = 0; j < altNames.length; ++j) {
					if (altNames[j].type === 'host') {
						der.writeString(
						    altNames[j].hostname,
						    ALTNAME.DNSName);
					} else if (altNames[j].type ===
					    'email') {
						der.writeString(
						    altNames[j].email,
						    ALTNAME.RFC822Name);
					} else {
						/*
						 * Encode anything else as a
						 * DN style name for now.
						 */
						der.startSequence(
						    ALTNAME.DirectoryName);
						altNames[j].toAsn1(der);
						der.endSequence();
					}
				}
				der.endSequence();
				der.endSequence();
			} else if (exts[i].oid === EXTS.basicConstraints) {
				der.startSequence(asn1.Ber.OctetString);
				der.startSequence();
				var ca = (cert.purposes.indexOf('ca') !== -1);
				var pathLen = exts[i].pathLen;
				der.writeBoolean(ca);
				if (pathLen !== undefined)
					der.writeInt(pathLen);
				der.endSequence();
				der.endSequence();
			} else if (exts[i].oid === EXTS.extKeyUsage) {
				der.startSequence(asn1.Ber.OctetString);
				der.startSequence();
				cert.purposes.forEach(function (purpose) {
					if (purpose === 'ca')
						return;
					if (KEYUSEBITS.indexOf(purpose) !== -1)
						return;
					var oid = purpose;
					if (EXTPURPOSE[purpose] !== undefined)
						oid = EXTPURPOSE[purpose];
					der.writeOID(oid);
				});
				der.endSequence();
				der.endSequence();
			} else if (exts[i].oid === EXTS.keyUsage) {
				der.startSequence(asn1.Ber.OctetString);
				/*
				 * If we parsed this certificate from a byte
				 * stream (i.e. we didn't generate it in sshpk)
				 * then we'll have a ".bits" property on the
				 * ext with the original raw byte contents.
				 *
				 * If we have this, use it here instead of
				 * regenerating it. This guarantees we output
				 * the same data we parsed, so signatures still
				 * validate.
				 */
				if (exts[i].bits !== undefined) {
					der.writeBuffer(exts[i].bits,
					    asn1.Ber.BitString);
				} else {
					var bits = writeBitField(cert.purposes,
					    KEYUSEBITS);
					der.writeBuffer(bits,
					    asn1.Ber.BitString);
				}
				der.endSequence();
			} else {
				der.writeBuffer(exts[i].data,
				    asn1.Ber.OctetString);
			}

			der.endSequence();
		}

		der.endSequence();
		der.endSequence();
	}

	der.endSequence();
}

/*
 * Reads an ASN.1 BER bitfield out of the Buffer produced by doing
 * `BerReader#readString(asn1.Ber.BitString)`. That function gives us the raw
 * contents of the BitString tag, which is a count of unused bits followed by
 * the bits as a right-padded byte string.
 *
 * `bits` is the Buffer, `bitIndex` should contain an array of string names
 * for the bits in the string, ordered starting with bit #0 in the ASN.1 spec.
 *
 * Returns an array of Strings, the names of the bits that were set to 1.
 */
function readBitField(bits, bitIndex) {
	var bitLen = 8 * (bits.length - 1) - bits[0];
	var setBits = {};
	for (var i = 0; i < bitLen; ++i) {
		var byteN = 1 + Math.floor(i / 8);
		var bit = 7 - (i % 8);
		var mask = 1 << bit;
		var bitVal = ((bits[byteN] & mask) !== 0);
		var name = bitIndex[i];
		if (bitVal && typeof (name) === 'string') {
			setBits[name] = true;
		}
	}
	return (Object.keys(setBits));
}

/*
 * `setBits` is an array of strings, containing the names for each bit that
 * sould be set to 1. `bitIndex` is same as in `readBitField()`.
 *
 * Returns a Buffer, ready to be written out with `BerWriter#writeString()`.
 */
function writeBitField(setBits, bitIndex) {
	var bitLen = bitIndex.length;
	var blen = Math.ceil(bitLen / 8);
	var unused = blen * 8 - bitLen;
	var bits = Buffer.alloc(1 + blen); // zero-filled
	bits[0] = unused;
	for (var i = 0; i < bitLen; ++i) {
		var byteN = 1 + Math.floor(i / 8);
		var bit = 7 - (i % 8);
		var mask = 1 << bit;
		var name = bitIndex[i];
		if (name === undefined)
			continue;
		var bitVal = (setBits.indexOf(name) !== -1);
		if (bitVal) {
			bits[byteN] |= mask;
		}
	}
	return (bits);
}


/***/ }),
/* 373 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2016 Joyent, Inc.

var x509 = __webpack_require__(372);

module.exports = {
	read: read,
	verify: x509.verify,
	sign: x509.sign,
	write: write
};

var assert = __webpack_require__(334);
var asn1 = __webpack_require__(345);
var Buffer = __webpack_require__(339).Buffer;
var algs = __webpack_require__(338);
var utils = __webpack_require__(344);
var Key = __webpack_require__(337);
var PrivateKey = __webpack_require__(342);
var pem = __webpack_require__(360);
var Identity = __webpack_require__(370);
var Signature = __webpack_require__(343);
var Certificate = __webpack_require__(369);

function read(buf, options) {
	if (typeof (buf) !== 'string') {
		assert.buffer(buf, 'buf');
		buf = buf.toString('ascii');
	}

	var lines = buf.trim().split(/[\r\n]+/g);

	var m;
	var si = -1;
	while (!m && si < lines.length) {
		m = lines[++si].match(/*JSSTYLED*/
		    /[-]+[ ]*BEGIN CERTIFICATE[ ]*[-]+/);
	}
	assert.ok(m, 'invalid PEM header');

	var m2;
	var ei = lines.length;
	while (!m2 && ei > 0) {
		m2 = lines[--ei].match(/*JSSTYLED*/
		    /[-]+[ ]*END CERTIFICATE[ ]*[-]+/);
	}
	assert.ok(m2, 'invalid PEM footer');

	lines = lines.slice(si, ei + 1);

	var headers = {};
	while (true) {
		lines = lines.slice(1);
		m = lines[0].match(/*JSSTYLED*/
		    /^([A-Za-z0-9-]+): (.+)$/);
		if (!m)
			break;
		headers[m[1].toLowerCase()] = m[2];
	}

	/* Chop off the first and last lines */
	lines = lines.slice(0, -1).join('');
	buf = Buffer.from(lines, 'base64');

	return (x509.read(buf, options));
}

function write(cert, options) {
	var dbuf = x509.write(cert, options);

	var header = 'CERTIFICATE';
	var tmp = dbuf.toString('base64');
	var len = tmp.length + (tmp.length / 64) +
	    18 + 16 + header.length*2 + 10;
	var buf = Buffer.alloc(len);
	var o = 0;
	o += buf.write('-----BEGIN ' + header + '-----\n', o);
	for (var i = 0; i < tmp.length; ) {
		var limit = i + 64;
		if (limit > tmp.length)
			limit = tmp.length;
		o += buf.write(tmp.slice(i, limit), o);
		buf[o++] = 10;
		i = limit;
	}
	o += buf.write('-----END ' + header + '-----\n', o);

	return (buf.slice(0, o));
}


/***/ }),
/* 374 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2012 Joyent, Inc.  All rights reserved.

var assert = __webpack_require__(334);
var crypto = __webpack_require__(57);
var http = __webpack_require__(326);
var util = __webpack_require__(113);
var sshpk = __webpack_require__(336);
var jsprim = __webpack_require__(375);
var utils = __webpack_require__(335);

var sprintf = __webpack_require__(113).format;

var HASH_ALGOS = utils.HASH_ALGOS;
var PK_ALGOS = utils.PK_ALGOS;
var InvalidAlgorithmError = utils.InvalidAlgorithmError;
var HttpSignatureError = utils.HttpSignatureError;
var validateAlgorithm = utils.validateAlgorithm;

///--- Globals

var AUTHZ_FMT =
  'Signature keyId="%s",algorithm="%s",headers="%s",signature="%s"';

///--- Specific Errors

function MissingHeaderError(message) {
  HttpSignatureError.call(this, message, MissingHeaderError);
}
util.inherits(MissingHeaderError, HttpSignatureError);

function StrictParsingError(message) {
  HttpSignatureError.call(this, message, StrictParsingError);
}
util.inherits(StrictParsingError, HttpSignatureError);

/* See createSigner() */
function RequestSigner(options) {
  assert.object(options, 'options');

  var alg = [];
  if (options.algorithm !== undefined) {
    assert.string(options.algorithm, 'options.algorithm');
    alg = validateAlgorithm(options.algorithm);
  }
  this.rs_alg = alg;

  /*
   * RequestSigners come in two varieties: ones with an rs_signFunc, and ones
   * with an rs_signer.
   *
   * rs_signFunc-based RequestSigners have to build up their entire signing
   * string within the rs_lines array and give it to rs_signFunc as a single
   * concat'd blob. rs_signer-based RequestSigners can add a line at a time to
   * their signing state by using rs_signer.update(), thus only needing to
   * buffer the hash function state and one line at a time.
   */
  if (options.sign !== undefined) {
    assert.func(options.sign, 'options.sign');
    this.rs_signFunc = options.sign;

  } else if (alg[0] === 'hmac' && options.key !== undefined) {
    assert.string(options.keyId, 'options.keyId');
    this.rs_keyId = options.keyId;

    if (typeof (options.key) !== 'string' && !Buffer.isBuffer(options.key))
      throw (new TypeError('options.key for HMAC must be a string or Buffer'));

    /*
     * Make an rs_signer for HMACs, not a rs_signFunc -- HMACs digest their
     * data in chunks rather than requiring it all to be given in one go
     * at the end, so they are more similar to signers than signFuncs.
     */
    this.rs_signer = crypto.createHmac(alg[1].toUpperCase(), options.key);
    this.rs_signer.sign = function () {
      var digest = this.digest('base64');
      return ({
        hashAlgorithm: alg[1],
        toString: function () { return (digest); }
      });
    };

  } else if (options.key !== undefined) {
    var key = options.key;
    if (typeof (key) === 'string' || Buffer.isBuffer(key))
      key = sshpk.parsePrivateKey(key);

    assert.ok(sshpk.PrivateKey.isPrivateKey(key, [1, 2]),
      'options.key must be a sshpk.PrivateKey');
    this.rs_key = key;

    assert.string(options.keyId, 'options.keyId');
    this.rs_keyId = options.keyId;

    if (!PK_ALGOS[key.type]) {
      throw (new InvalidAlgorithmError(key.type.toUpperCase() + ' type ' +
        'keys are not supported'));
    }

    if (alg[0] !== undefined && key.type !== alg[0]) {
      throw (new InvalidAlgorithmError('options.key must be a ' +
        alg[0].toUpperCase() + ' key, was given a ' +
        key.type.toUpperCase() + ' key instead'));
    }

    this.rs_signer = key.createSign(alg[1]);

  } else {
    throw (new TypeError('options.sign (func) or options.key is required'));
  }

  this.rs_headers = [];
  this.rs_lines = [];
}

/**
 * Adds a header to be signed, with its value, into this signer.
 *
 * @param {String} header
 * @param {String} value
 * @return {String} value written
 */
RequestSigner.prototype.writeHeader = function (header, value) {
  assert.string(header, 'header');
  header = header.toLowerCase();
  assert.string(value, 'value');

  this.rs_headers.push(header);

  if (this.rs_signFunc) {
    this.rs_lines.push(header + ': ' + value);

  } else {
    var line = header + ': ' + value;
    if (this.rs_headers.length > 0)
      line = '\n' + line;
    this.rs_signer.update(line);
  }

  return (value);
};

/**
 * Adds a default Date header, returning its value.
 *
 * @return {String}
 */
RequestSigner.prototype.writeDateHeader = function () {
  return (this.writeHeader('date', jsprim.rfc1123(new Date())));
};

/**
 * Adds the request target line to be signed.
 *
 * @param {String} method, HTTP method (e.g. 'get', 'post', 'put')
 * @param {String} path
 */
RequestSigner.prototype.writeTarget = function (method, path) {
  assert.string(method, 'method');
  assert.string(path, 'path');
  method = method.toLowerCase();
  this.writeHeader('(request-target)', method + ' ' + path);
};

/**
 * Calculate the value for the Authorization header on this request
 * asynchronously.
 *
 * @param {Func} callback (err, authz)
 */
RequestSigner.prototype.sign = function (cb) {
  assert.func(cb, 'callback');

  if (this.rs_headers.length < 1)
    throw (new Error('At least one header must be signed'));

  var alg, authz;
  if (this.rs_signFunc) {
    var data = this.rs_lines.join('\n');
    var self = this;
    this.rs_signFunc(data, function (err, sig) {
      if (err) {
        cb(err);
        return;
      }
      try {
        assert.object(sig, 'signature');
        assert.string(sig.keyId, 'signature.keyId');
        assert.string(sig.algorithm, 'signature.algorithm');
        assert.string(sig.signature, 'signature.signature');
        alg = validateAlgorithm(sig.algorithm);

        authz = sprintf(AUTHZ_FMT,
          sig.keyId,
          sig.algorithm,
          self.rs_headers.join(' '),
          sig.signature);
      } catch (e) {
        cb(e);
        return;
      }
      cb(null, authz);
    });

  } else {
    try {
      var sigObj = this.rs_signer.sign();
    } catch (e) {
      cb(e);
      return;
    }
    alg = (this.rs_alg[0] || this.rs_key.type) + '-' + sigObj.hashAlgorithm;
    var signature = sigObj.toString();
    authz = sprintf(AUTHZ_FMT,
      this.rs_keyId,
      alg,
      this.rs_headers.join(' '),
      signature);
    cb(null, authz);
  }
};

///--- Exported API

module.exports = {
  /**
   * Identifies whether a given object is a request signer or not.
   *
   * @param {Object} object, the object to identify
   * @returns {Boolean}
   */
  isSigner: function (obj) {
    if (typeof (obj) === 'object' && obj instanceof RequestSigner)
      return (true);
    return (false);
  },

  /**
   * Creates a request signer, used to asynchronously build a signature
   * for a request (does not have to be an http.ClientRequest).
   *
   * @param {Object} options, either:
   *                   - {String} keyId
   *                   - {String|Buffer} key
   *                   - {String} algorithm (optional, required for HMAC)
   *                 or:
   *                   - {Func} sign (data, cb)
   * @return {RequestSigner}
   */
  createSigner: function createSigner(options) {
    return (new RequestSigner(options));
  },

  /**
   * Adds an 'Authorization' header to an http.ClientRequest object.
   *
   * Note that this API will add a Date header if it's not already set. Any
   * other headers in the options.headers array MUST be present, or this
   * will throw.
   *
   * You shouldn't need to check the return type; it's just there if you want
   * to be pedantic.
   *
   * The optional flag indicates whether parsing should use strict enforcement
   * of the version draft-cavage-http-signatures-04 of the spec or beyond.
   * The default is to be loose and support
   * older versions for compatibility.
   *
   * @param {Object} request an instance of http.ClientRequest.
   * @param {Object} options signing parameters object:
   *                   - {String} keyId required.
   *                   - {String} key required (either a PEM or HMAC key).
   *                   - {Array} headers optional; defaults to ['date'].
   *                   - {String} algorithm optional (unless key is HMAC);
   *                              default is the same as the sshpk default
   *                              signing algorithm for the type of key given
   *                   - {String} httpVersion optional; defaults to '1.1'.
   *                   - {Boolean} strict optional; defaults to 'false'.
   * @return {Boolean} true if Authorization (and optionally Date) were added.
   * @throws {TypeError} on bad parameter types (input).
   * @throws {InvalidAlgorithmError} if algorithm was bad or incompatible with
   *                                 the given key.
   * @throws {sshpk.KeyParseError} if key was bad.
   * @throws {MissingHeaderError} if a header to be signed was specified but
   *                              was not present.
   */
  signRequest: function signRequest(request, options) {
    assert.object(request, 'request');
    assert.object(options, 'options');
    assert.optionalString(options.algorithm, 'options.algorithm');
    assert.string(options.keyId, 'options.keyId');
    assert.optionalArrayOfString(options.headers, 'options.headers');
    assert.optionalString(options.httpVersion, 'options.httpVersion');

    if (!request.getHeader('Date'))
      request.setHeader('Date', jsprim.rfc1123(new Date()));
    if (!options.headers)
      options.headers = ['date'];
    if (!options.httpVersion)
      options.httpVersion = '1.1';

    var alg = [];
    if (options.algorithm) {
      options.algorithm = options.algorithm.toLowerCase();
      alg = validateAlgorithm(options.algorithm);
    }

    var i;
    var stringToSign = '';
    for (i = 0; i < options.headers.length; i++) {
      if (typeof (options.headers[i]) !== 'string')
        throw new TypeError('options.headers must be an array of Strings');

      var h = options.headers[i].toLowerCase();

      if (h === 'request-line') {
        if (!options.strict) {
          /**
           * We allow headers from the older spec drafts if strict parsing isn't
           * specified in options.
           */
          stringToSign +=
            request.method + ' ' + request.path + ' HTTP/' +
            options.httpVersion;
        } else {
          /* Strict parsing doesn't allow older draft headers. */
          throw (new StrictParsingError('request-line is not a valid header ' +
            'with strict parsing enabled.'));
        }
      } else if (h === '(request-target)') {
        stringToSign +=
          '(request-target): ' + request.method.toLowerCase() + ' ' +
          request.path;
      } else {
        var value = request.getHeader(h);
        if (value === undefined || value === '') {
          throw new MissingHeaderError(h + ' was not in the request');
        }
        stringToSign += h + ': ' + value;
      }

      if ((i + 1) < options.headers.length)
        stringToSign += '\n';
    }

    /* This is just for unit tests. */
    if (request.hasOwnProperty('_stringToSign')) {
      request._stringToSign = stringToSign;
    }

    var signature;
    if (alg[0] === 'hmac') {
      if (typeof (options.key) !== 'string' && !Buffer.isBuffer(options.key))
        throw (new TypeError('options.key must be a string or Buffer'));

      var hmac = crypto.createHmac(alg[1].toUpperCase(), options.key);
      hmac.update(stringToSign);
      signature = hmac.digest('base64');

    } else {
      var key = options.key;
      if (typeof (key) === 'string' || Buffer.isBuffer(key))
        key = sshpk.parsePrivateKey(options.key);

      assert.ok(sshpk.PrivateKey.isPrivateKey(key, [1, 2]),
        'options.key must be a sshpk.PrivateKey');

      if (!PK_ALGOS[key.type]) {
        throw (new InvalidAlgorithmError(key.type.toUpperCase() + ' type ' +
          'keys are not supported'));
      }

      if (alg[0] !== undefined && key.type !== alg[0]) {
        throw (new InvalidAlgorithmError('options.key must be a ' +
          alg[0].toUpperCase() + ' key, was given a ' +
          key.type.toUpperCase() + ' key instead'));
      }

      var signer = key.createSign(alg[1]);
      signer.update(stringToSign);
      var sigObj = signer.sign();
      if (!HASH_ALGOS[sigObj.hashAlgorithm]) {
        throw (new InvalidAlgorithmError(sigObj.hashAlgorithm.toUpperCase() +
          ' is not a supported hash algorithm'));
      }
      options.algorithm = key.type + '-' + sigObj.hashAlgorithm;
      signature = sigObj.toString();
      assert.notStrictEqual(signature, '', 'empty signature produced');
    }

    var authzHeaderName = options.authorizationHeaderName || 'Authorization';

    request.setHeader(authzHeaderName, sprintf(AUTHZ_FMT,
                                               options.keyId,
                                               options.algorithm,
                                               options.headers.join(' '),
                                               signature));

    return true;
  }

};


/***/ }),
/* 375 */
/***/ (function(module, exports, __webpack_require__) {

/*
 * lib/jsprim.js: utilities for primitive JavaScript types
 */

var mod_assert = __webpack_require__(334);
var mod_util = __webpack_require__(113);

var mod_extsprintf = __webpack_require__(376);
var mod_verror = __webpack_require__(377);
var mod_jsonschema = __webpack_require__(380);

/*
 * Public interface
 */
exports.deepCopy = deepCopy;
exports.deepEqual = deepEqual;
exports.isEmpty = isEmpty;
exports.hasKey = hasKey;
exports.forEachKey = forEachKey;
exports.pluck = pluck;
exports.flattenObject = flattenObject;
exports.flattenIter = flattenIter;
exports.validateJsonObject = validateJsonObjectJS;
exports.validateJsonObjectJS = validateJsonObjectJS;
exports.randElt = randElt;
exports.extraProperties = extraProperties;
exports.mergeObjects = mergeObjects;

exports.startsWith = startsWith;
exports.endsWith = endsWith;

exports.parseInteger = parseInteger;

exports.iso8601 = iso8601;
exports.rfc1123 = rfc1123;
exports.parseDateTime = parseDateTime;

exports.hrtimediff = hrtimeDiff;
exports.hrtimeDiff = hrtimeDiff;
exports.hrtimeAccum = hrtimeAccum;
exports.hrtimeAdd = hrtimeAdd;
exports.hrtimeNanosec = hrtimeNanosec;
exports.hrtimeMicrosec = hrtimeMicrosec;
exports.hrtimeMillisec = hrtimeMillisec;


/*
 * Deep copy an acyclic *basic* Javascript object.  This only handles basic
 * scalars (strings, numbers, booleans) and arbitrarily deep arrays and objects
 * containing these.  This does *not* handle instances of other classes.
 */
function deepCopy(obj)
{
	var ret, key;
	var marker = '__deepCopy';

	if (obj && obj[marker])
		throw (new Error('attempted deep copy of cyclic object'));

	if (obj && obj.constructor == Object) {
		ret = {};
		obj[marker] = true;

		for (key in obj) {
			if (key == marker)
				continue;

			ret[key] = deepCopy(obj[key]);
		}

		delete (obj[marker]);
		return (ret);
	}

	if (obj && obj.constructor == Array) {
		ret = [];
		obj[marker] = true;

		for (key = 0; key < obj.length; key++)
			ret.push(deepCopy(obj[key]));

		delete (obj[marker]);
		return (ret);
	}

	/*
	 * It must be a primitive type -- just return it.
	 */
	return (obj);
}

function deepEqual(obj1, obj2)
{
	if (typeof (obj1) != typeof (obj2))
		return (false);

	if (obj1 === null || obj2 === null || typeof (obj1) != 'object')
		return (obj1 === obj2);

	if (obj1.constructor != obj2.constructor)
		return (false);

	var k;
	for (k in obj1) {
		if (!obj2.hasOwnProperty(k))
			return (false);

		if (!deepEqual(obj1[k], obj2[k]))
			return (false);
	}

	for (k in obj2) {
		if (!obj1.hasOwnProperty(k))
			return (false);
	}

	return (true);
}

function isEmpty(obj)
{
	var key;
	for (key in obj)
		return (false);
	return (true);
}

function hasKey(obj, key)
{
	mod_assert.equal(typeof (key), 'string');
	return (Object.prototype.hasOwnProperty.call(obj, key));
}

function forEachKey(obj, callback)
{
	for (var key in obj) {
		if (hasKey(obj, key)) {
			callback(key, obj[key]);
		}
	}
}

function pluck(obj, key)
{
	mod_assert.equal(typeof (key), 'string');
	return (pluckv(obj, key));
}

function pluckv(obj, key)
{
	if (obj === null || typeof (obj) !== 'object')
		return (undefined);

	if (obj.hasOwnProperty(key))
		return (obj[key]);

	var i = key.indexOf('.');
	if (i == -1)
		return (undefined);

	var key1 = key.substr(0, i);
	if (!obj.hasOwnProperty(key1))
		return (undefined);

	return (pluckv(obj[key1], key.substr(i + 1)));
}

/*
 * Invoke callback(row) for each entry in the array that would be returned by
 * flattenObject(data, depth).  This is just like flattenObject(data,
 * depth).forEach(callback), except that the intermediate array is never
 * created.
 */
function flattenIter(data, depth, callback)
{
	doFlattenIter(data, depth, [], callback);
}

function doFlattenIter(data, depth, accum, callback)
{
	var each;
	var key;

	if (depth === 0) {
		each = accum.slice(0);
		each.push(data);
		callback(each);
		return;
	}

	mod_assert.ok(data !== null);
	mod_assert.equal(typeof (data), 'object');
	mod_assert.equal(typeof (depth), 'number');
	mod_assert.ok(depth >= 0);

	for (key in data) {
		each = accum.slice(0);
		each.push(key);
		doFlattenIter(data[key], depth - 1, each, callback);
	}
}

function flattenObject(data, depth)
{
	if (depth === 0)
		return ([ data ]);

	mod_assert.ok(data !== null);
	mod_assert.equal(typeof (data), 'object');
	mod_assert.equal(typeof (depth), 'number');
	mod_assert.ok(depth >= 0);

	var rv = [];
	var key;

	for (key in data) {
		flattenObject(data[key], depth - 1).forEach(function (p) {
			rv.push([ key ].concat(p));
		});
	}

	return (rv);
}

function startsWith(str, prefix)
{
	return (str.substr(0, prefix.length) == prefix);
}

function endsWith(str, suffix)
{
	return (str.substr(
	    str.length - suffix.length, suffix.length) == suffix);
}

function iso8601(d)
{
	if (typeof (d) == 'number')
		d = new Date(d);
	mod_assert.ok(d.constructor === Date);
	return (mod_extsprintf.sprintf('%4d-%02d-%02dT%02d:%02d:%02d.%03dZ',
	    d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(),
	    d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(),
	    d.getUTCMilliseconds()));
}

var RFC1123_MONTHS = [
    'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
    'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var RFC1123_DAYS = [
    'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];

function rfc1123(date) {
	return (mod_extsprintf.sprintf('%s, %02d %s %04d %02d:%02d:%02d GMT',
	    RFC1123_DAYS[date.getUTCDay()], date.getUTCDate(),
	    RFC1123_MONTHS[date.getUTCMonth()], date.getUTCFullYear(),
	    date.getUTCHours(), date.getUTCMinutes(),
	    date.getUTCSeconds()));
}

/*
 * Parses a date expressed as a string, as either a number of milliseconds since
 * the epoch or any string format that Date accepts, giving preference to the
 * former where these two sets overlap (e.g., small numbers).
 */
function parseDateTime(str)
{
	/*
	 * This is irritatingly implicit, but significantly more concise than
	 * alternatives.  The "+str" will convert a string containing only a
	 * number directly to a Number, or NaN for other strings.  Thus, if the
	 * conversion succeeds, we use it (this is the milliseconds-since-epoch
	 * case).  Otherwise, we pass the string directly to the Date
	 * constructor to parse.
	 */
	var numeric = +str;
	if (!isNaN(numeric)) {
		return (new Date(numeric));
	} else {
		return (new Date(str));
	}
}


/*
 * Number.*_SAFE_INTEGER isn't present before node v0.12, so we hardcode
 * the ES6 definitions here, while allowing for them to someday be higher.
 */
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;


/*
 * Default options for parseInteger().
 */
var PI_DEFAULTS = {
	base: 10,
	allowSign: true,
	allowPrefix: false,
	allowTrailing: false,
	allowImprecise: false,
	trimWhitespace: false,
	leadingZeroIsOctal: false
};

var CP_0 = 0x30;
var CP_9 = 0x39;

var CP_A = 0x41;
var CP_B = 0x42;
var CP_O = 0x4f;
var CP_T = 0x54;
var CP_X = 0x58;
var CP_Z = 0x5a;

var CP_a = 0x61;
var CP_b = 0x62;
var CP_o = 0x6f;
var CP_t = 0x74;
var CP_x = 0x78;
var CP_z = 0x7a;

var PI_CONV_DEC = 0x30;
var PI_CONV_UC = 0x37;
var PI_CONV_LC = 0x57;


/*
 * A stricter version of parseInt() that provides options for changing what
 * is an acceptable string (for example, disallowing trailing characters).
 */
function parseInteger(str, uopts)
{
	mod_assert.string(str, 'str');
	mod_assert.optionalObject(uopts, 'options');

	var baseOverride = false;
	var options = PI_DEFAULTS;

	if (uopts) {
		baseOverride = hasKey(uopts, 'base');
		options = mergeObjects(options, uopts);
		mod_assert.number(options.base, 'options.base');
		mod_assert.ok(options.base >= 2, 'options.base >= 2');
		mod_assert.ok(options.base <= 36, 'options.base <= 36');
		mod_assert.bool(options.allowSign, 'options.allowSign');
		mod_assert.bool(options.allowPrefix, 'options.allowPrefix');
		mod_assert.bool(options.allowTrailing,
		    'options.allowTrailing');
		mod_assert.bool(options.allowImprecise,
		    'options.allowImprecise');
		mod_assert.bool(options.trimWhitespace,
		    'options.trimWhitespace');
		mod_assert.bool(options.leadingZeroIsOctal,
		    'options.leadingZeroIsOctal');

		if (options.leadingZeroIsOctal) {
			mod_assert.ok(!baseOverride,
			    '"base" and "leadingZeroIsOctal" are ' +
			    'mutually exclusive');
		}
	}

	var c;
	var pbase = -1;
	var base = options.base;
	var start;
	var mult = 1;
	var value = 0;
	var idx = 0;
	var len = str.length;

	/* Trim any whitespace on the left side. */
	if (options.trimWhitespace) {
		while (idx < len && isSpace(str.charCodeAt(idx))) {
			++idx;
		}
	}

	/* Check the number for a leading sign. */
	if (options.allowSign) {
		if (str[idx] === '-') {
			idx += 1;
			mult = -1;
		} else if (str[idx] === '+') {
			idx += 1;
		}
	}

	/* Parse the base-indicating prefix if there is one. */
	if (str[idx] === '0') {
		if (options.allowPrefix) {
			pbase = prefixToBase(str.charCodeAt(idx + 1));
			if (pbase !== -1 && (!baseOverride || pbase === base)) {
				base = pbase;
				idx += 2;
			}
		}

		if (pbase === -1 && options.leadingZeroIsOctal) {
			base = 8;
		}
	}

	/* Parse the actual digits. */
	for (start = idx; idx < len; ++idx) {
		c = translateDigit(str.charCodeAt(idx));
		if (c !== -1 && c < base) {
			value *= base;
			value += c;
		} else {
			break;
		}
	}

	/* If we didn't parse any digits, we have an invalid number. */
	if (start === idx) {
		return (new Error('invalid number: ' + JSON.stringify(str)));
	}

	/* Trim any whitespace on the right side. */
	if (options.trimWhitespace) {
		while (idx < len && isSpace(str.charCodeAt(idx))) {
			++idx;
		}
	}

	/* Check for trailing characters. */
	if (idx < len && !options.allowTrailing) {
		return (new Error('trailing characters after number: ' +
		    JSON.stringify(str.slice(idx))));
	}

	/* If our value is 0, we return now, to avoid returning -0. */
	if (value === 0) {
		return (0);
	}

	/* Calculate our final value. */
	var result = value * mult;

	/*
	 * If the string represents a value that cannot be precisely represented
	 * by JavaScript, then we want to check that:
	 *
	 * - We never increased the value past MAX_SAFE_INTEGER
	 * - We don't make the result negative and below MIN_SAFE_INTEGER
	 *
	 * Because we only ever increment the value during parsing, there's no
	 * chance of moving past MAX_SAFE_INTEGER and then dropping below it
	 * again, losing precision in the process. This means that we only need
	 * to do our checks here, at the end.
	 */
	if (!options.allowImprecise &&
	    (value > MAX_SAFE_INTEGER || result < MIN_SAFE_INTEGER)) {
		return (new Error('number is outside of the supported range: ' +
		    JSON.stringify(str.slice(start, idx))));
	}

	return (result);
}


/*
 * Interpret a character code as a base-36 digit.
 */
function translateDigit(d)
{
	if (d >= CP_0 && d <= CP_9) {
		/* '0' to '9' -> 0 to 9 */
		return (d - PI_CONV_DEC);
	} else if (d >= CP_A && d <= CP_Z) {
		/* 'A' - 'Z' -> 10 to 35 */
		return (d - PI_CONV_UC);
	} else if (d >= CP_a && d <= CP_z) {
		/* 'a' - 'z' -> 10 to 35 */
		return (d - PI_CONV_LC);
	} else {
		/* Invalid character code */
		return (-1);
	}
}


/*
 * Test if a value matches the ECMAScript definition of trimmable whitespace.
 */
function isSpace(c)
{
	return (c === 0x20) ||
	    (c >= 0x0009 && c <= 0x000d) ||
	    (c === 0x00a0) ||
	    (c === 0x1680) ||
	    (c === 0x180e) ||
	    (c >= 0x2000 && c <= 0x200a) ||
	    (c === 0x2028) ||
	    (c === 0x2029) ||
	    (c === 0x202f) ||
	    (c === 0x205f) ||
	    (c === 0x3000) ||
	    (c === 0xfeff);
}


/*
 * Determine which base a character indicates (e.g., 'x' indicates hex).
 */
function prefixToBase(c)
{
	if (c === CP_b || c === CP_B) {
		/* 0b/0B (binary) */
		return (2);
	} else if (c === CP_o || c === CP_O) {
		/* 0o/0O (octal) */
		return (8);
	} else if (c === CP_t || c === CP_T) {
		/* 0t/0T (decimal) */
		return (10);
	} else if (c === CP_x || c === CP_X) {
		/* 0x/0X (hexadecimal) */
		return (16);
	} else {
		/* Not a meaningful character */
		return (-1);
	}
}


function validateJsonObjectJS(schema, input)
{
	var report = mod_jsonschema.validate(input, schema);

	if (report.errors.length === 0)
		return (null);

	/* Currently, we only do anything useful with the first error. */
	var error = report.errors[0];

	/* The failed property is given by a URI with an irrelevant prefix. */
	var propname = error['property'];
	var reason = error['message'].toLowerCase();
	var i, j;

	/*
	 * There's at least one case where the property error message is
	 * confusing at best.  We work around this here.
	 */
	if ((i = reason.indexOf('the property ')) != -1 &&
	    (j = reason.indexOf(' is not defined in the schema and the ' +
	    'schema does not allow additional properties')) != -1) {
		i += 'the property '.length;
		if (propname === '')
			propname = reason.substr(i, j - i);
		else
			propname = propname + '.' + reason.substr(i, j - i);

		reason = 'unsupported property';
	}

	var rv = new mod_verror.VError('property "%s": %s', propname, reason);
	rv.jsv_details = error;
	return (rv);
}

function randElt(arr)
{
	mod_assert.ok(Array.isArray(arr) && arr.length > 0,
	    'randElt argument must be a non-empty array');

	return (arr[Math.floor(Math.random() * arr.length)]);
}

function assertHrtime(a)
{
	mod_assert.ok(a[0] >= 0 && a[1] >= 0,
	    'negative numbers not allowed in hrtimes');
	mod_assert.ok(a[1] < 1e9, 'nanoseconds column overflow');
}

/*
 * Compute the time elapsed between hrtime readings A and B, where A is later
 * than B.  hrtime readings come from Node's process.hrtime().  There is no
 * defined way to represent negative deltas, so it's illegal to diff B from A
 * where the time denoted by B is later than the time denoted by A.  If this
 * becomes valuable, we can define a representation and extend the
 * implementation to support it.
 */
function hrtimeDiff(a, b)
{
	assertHrtime(a);
	assertHrtime(b);
	mod_assert.ok(a[0] > b[0] || (a[0] == b[0] && a[1] >= b[1]),
	    'negative differences not allowed');

	var rv = [ a[0] - b[0], 0 ];

	if (a[1] >= b[1]) {
		rv[1] = a[1] - b[1];
	} else {
		rv[0]--;
		rv[1] = 1e9 - (b[1] - a[1]);
	}

	return (rv);
}

/*
 * Convert a hrtime reading from the array format returned by Node's
 * process.hrtime() into a scalar number of nanoseconds.
 */
function hrtimeNanosec(a)
{
	assertHrtime(a);

	return (Math.floor(a[0] * 1e9 + a[1]));
}

/*
 * Convert a hrtime reading from the array format returned by Node's
 * process.hrtime() into a scalar number of microseconds.
 */
function hrtimeMicrosec(a)
{
	assertHrtime(a);

	return (Math.floor(a[0] * 1e6 + a[1] / 1e3));
}

/*
 * Convert a hrtime reading from the array format returned by Node's
 * process.hrtime() into a scalar number of milliseconds.
 */
function hrtimeMillisec(a)
{
	assertHrtime(a);

	return (Math.floor(a[0] * 1e3 + a[1] / 1e6));
}

/*
 * Add two hrtime readings A and B, overwriting A with the result of the
 * addition.  This function is useful for accumulating several hrtime intervals
 * into a counter.  Returns A.
 */
function hrtimeAccum(a, b)
{
	assertHrtime(a);
	assertHrtime(b);

	/*
	 * Accumulate the nanosecond component.
	 */
	a[1] += b[1];
	if (a[1] >= 1e9) {
		/*
		 * The nanosecond component overflowed, so carry to the seconds
		 * field.
		 */
		a[0]++;
		a[1] -= 1e9;
	}

	/*
	 * Accumulate the seconds component.
	 */
	a[0] += b[0];

	return (a);
}

/*
 * Add two hrtime readings A and B, returning the result as a new hrtime array.
 * Does not modify either input argument.
 */
function hrtimeAdd(a, b)
{
	assertHrtime(a);

	var rv = [ a[0], a[1] ];

	return (hrtimeAccum(rv, b));
}


/*
 * Check an object for unexpected properties.  Accepts the object to check, and
 * an array of allowed property names (strings).  Returns an array of key names
 * that were found on the object, but did not appear in the list of allowed
 * properties.  If no properties were found, the returned array will be of
 * zero length.
 */
function extraProperties(obj, allowed)
{
	mod_assert.ok(typeof (obj) === 'object' && obj !== null,
	    'obj argument must be a non-null object');
	mod_assert.ok(Array.isArray(allowed),
	    'allowed argument must be an array of strings');
	for (var i = 0; i < allowed.length; i++) {
		mod_assert.ok(typeof (allowed[i]) === 'string',
		    'allowed argument must be an array of strings');
	}

	return (Object.keys(obj).filter(function (key) {
		return (allowed.indexOf(key) === -1);
	}));
}

/*
 * Given three sets of properties "provided" (may be undefined), "overrides"
 * (required), and "defaults" (may be undefined), construct an object containing
 * the union of these sets with "overrides" overriding "provided", and
 * "provided" overriding "defaults".  None of the input objects are modified.
 */
function mergeObjects(provided, overrides, defaults)
{
	var rv, k;

	rv = {};
	if (defaults) {
		for (k in defaults)
			rv[k] = defaults[k];
	}

	if (provided) {
		for (k in provided)
			rv[k] = provided[k];
	}

	if (overrides) {
		for (k in overrides)
			rv[k] = overrides[k];
	}

	return (rv);
}


/***/ }),
/* 376 */
/***/ (function(module, exports, __webpack_require__) {

/*
 * extsprintf.js: extended POSIX-style sprintf
 */

var mod_assert = __webpack_require__(114);
var mod_util = __webpack_require__(113);

/*
 * Public interface
 */
exports.sprintf = jsSprintf;
exports.printf = jsPrintf;
exports.fprintf = jsFprintf;

/*
 * Stripped down version of s[n]printf(3c).  We make a best effort to throw an
 * exception when given a format string we don't understand, rather than
 * ignoring it, so that we won't break existing programs if/when we go implement
 * the rest of this.
 *
 * This implementation currently supports specifying
 *	- field alignment ('-' flag),
 * 	- zero-pad ('0' flag)
 *	- always show numeric sign ('+' flag),
 *	- field width
 *	- conversions for strings, decimal integers, and floats (numbers).
 *	- argument size specifiers.  These are all accepted but ignored, since
 *	  Javascript has no notion of the physical size of an argument.
 *
 * Everything else is currently unsupported, most notably precision, unsigned
 * numbers, non-decimal numbers, and characters.
 */
function jsSprintf(fmt)
{
	var regex = [
	    '([^%]*)',				/* normal text */
	    '%',				/* start of format */
	    '([\'\\-+ #0]*?)',			/* flags (optional) */
	    '([1-9]\\d*)?',			/* width (optional) */
	    '(\\.([1-9]\\d*))?',		/* precision (optional) */
	    '[lhjztL]*?',			/* length mods (ignored) */
	    '([diouxXfFeEgGaAcCsSp%jr])'	/* conversion */
	].join('');

	var re = new RegExp(regex);
	var args = Array.prototype.slice.call(arguments, 1);
	var flags, width, precision, conversion;
	var left, pad, sign, arg, match;
	var ret = '';
	var argn = 1;

	mod_assert.equal('string', typeof (fmt));

	while ((match = re.exec(fmt)) !== null) {
		ret += match[1];
		fmt = fmt.substring(match[0].length);

		flags = match[2] || '';
		width = match[3] || 0;
		precision = match[4] || '';
		conversion = match[6];
		left = false;
		sign = false;
		pad = ' ';

		if (conversion == '%') {
			ret += '%';
			continue;
		}

		if (args.length === 0)
			throw (new Error('too few args to sprintf'));

		arg = args.shift();
		argn++;

		if (flags.match(/[\' #]/))
			throw (new Error(
			    'unsupported flags: ' + flags));

		if (precision.length > 0)
			throw (new Error(
			    'non-zero precision not supported'));

		if (flags.match(/-/))
			left = true;

		if (flags.match(/0/))
			pad = '0';

		if (flags.match(/\+/))
			sign = true;

		switch (conversion) {
		case 's':
			if (arg === undefined || arg === null)
				throw (new Error('argument ' + argn +
				    ': attempted to print undefined or null ' +
				    'as a string'));
			ret += doPad(pad, width, left, arg.toString());
			break;

		case 'd':
			arg = Math.floor(arg);
			/*jsl:fallthru*/
		case 'f':
			sign = sign && arg > 0 ? '+' : '';
			ret += sign + doPad(pad, width, left,
			    arg.toString());
			break;

		case 'x':
			ret += doPad(pad, width, left, arg.toString(16));
			break;

		case 'j': /* non-standard */
			if (width === 0)
				width = 10;
			ret += mod_util.inspect(arg, false, width);
			break;

		case 'r': /* non-standard */
			ret += dumpException(arg);
			break;

		default:
			throw (new Error('unsupported conversion: ' +
			    conversion));
		}
	}

	ret += fmt;
	return (ret);
}

function jsPrintf() {
	var args = Array.prototype.slice.call(arguments);
	args.unshift(process.stdout);
	jsFprintf.apply(null, args);
}

function jsFprintf(stream) {
	var args = Array.prototype.slice.call(arguments, 1);
	return (stream.write(jsSprintf.apply(this, args)));
}

function doPad(chr, width, left, str)
{
	var ret = str;

	while (ret.length < width) {
		if (left)
			ret += chr;
		else
			ret = chr + ret;
	}

	return (ret);
}

/*
 * This function dumps long stack traces for exceptions having a cause() method.
 * See node-verror for an example.
 */
function dumpException(ex)
{
	var ret;

	if (!(ex instanceof Error))
		throw (new Error(jsSprintf('invalid type for %%r: %j', ex)));

	/* Note that V8 prepends "ex.stack" with ex.toString(). */
	ret = 'EXCEPTION: ' + ex.constructor.name + ': ' + ex.stack;

	if (ex.cause && typeof (ex.cause) === 'function') {
		var cex = ex.cause();
		if (cex) {
			ret += '\nCaused by: ' + dumpException(cex);
		}
	}

	return (ret);
}


/***/ }),
/* 377 */
/***/ (function(module, exports, __webpack_require__) {

/*
 * verror.js: richer JavaScript errors
 */

var mod_assertplus = __webpack_require__(334);
var mod_util = __webpack_require__(113);

var mod_extsprintf = __webpack_require__(378);
var mod_isError = __webpack_require__(379).isError;
var sprintf = mod_extsprintf.sprintf;

/*
 * Public interface
 */

/* So you can 'var VError = require('verror')' */
module.exports = VError;
/* For compatibility */
VError.VError = VError;
/* Other exported classes */
VError.SError = SError;
VError.WError = WError;
VError.MultiError = MultiError;

/*
 * Common function used to parse constructor arguments for VError, WError, and
 * SError.  Named arguments to this function:
 *
 *     strict		force strict interpretation of sprintf arguments, even
 *     			if the options in "argv" don't say so
 *
 *     argv		error's constructor arguments, which are to be
 *     			interpreted as described in README.md.  For quick
 *     			reference, "argv" has one of the following forms:
 *
 *          [ sprintf_args... ]           (argv[0] is a string)
 *          [ cause, sprintf_args... ]    (argv[0] is an Error)
 *          [ options, sprintf_args... ]  (argv[0] is an object)
 *
 * This function normalizes these forms, producing an object with the following
 * properties:
 *
 *    options           equivalent to "options" in third form.  This will never
 *    			be a direct reference to what the caller passed in
 *    			(i.e., it may be a shallow copy), so it can be freely
 *    			modified.
 *
 *    shortmessage      result of sprintf(sprintf_args), taking options.strict
 *    			into account as described in README.md.
 */
function parseConstructorArguments(args)
{
	var argv, options, sprintf_args, shortmessage, k;

	mod_assertplus.object(args, 'args');
	mod_assertplus.bool(args.strict, 'args.strict');
	mod_assertplus.array(args.argv, 'args.argv');
	argv = args.argv;

	/*
	 * First, figure out which form of invocation we've been given.
	 */
	if (argv.length === 0) {
		options = {};
		sprintf_args = [];
	} else if (mod_isError(argv[0])) {
		options = { 'cause': argv[0] };
		sprintf_args = argv.slice(1);
	} else if (typeof (argv[0]) === 'object') {
		options = {};
		for (k in argv[0]) {
			options[k] = argv[0][k];
		}
		sprintf_args = argv.slice(1);
	} else {
		mod_assertplus.string(argv[0],
		    'first argument to VError, SError, or WError ' +
		    'constructor must be a string, object, or Error');
		options = {};
		sprintf_args = argv;
	}

	/*
	 * Now construct the error's message.
	 *
	 * extsprintf (which we invoke here with our caller's arguments in order
	 * to construct this Error's message) is strict in its interpretation of
	 * values to be processed by the "%s" specifier.  The value passed to
	 * extsprintf must actually be a string or something convertible to a
	 * String using .toString().  Passing other values (notably "null" and
	 * "undefined") is considered a programmer error.  The assumption is
	 * that if you actually want to print the string "null" or "undefined",
	 * then that's easy to do that when you're calling extsprintf; on the
	 * other hand, if you did NOT want that (i.e., there's actually a bug
	 * where the program assumes some variable is non-null and tries to
	 * print it, which might happen when constructing a packet or file in
	 * some specific format), then it's better to stop immediately than
	 * produce bogus output.
	 *
	 * However, sometimes the bug is only in the code calling VError, and a
	 * programmer might prefer to have the error message contain "null" or
	 * "undefined" rather than have the bug in the error path crash the
	 * program (making the first bug harder to identify).  For that reason,
	 * by default VError converts "null" or "undefined" arguments to their
	 * string representations and passes those to extsprintf.  Programmers
	 * desiring the strict behavior can use the SError class or pass the
	 * "strict" option to the VError constructor.
	 */
	mod_assertplus.object(options);
	if (!options.strict && !args.strict) {
		sprintf_args = sprintf_args.map(function (a) {
			return (a === null ? 'null' :
			    a === undefined ? 'undefined' : a);
		});
	}

	if (sprintf_args.length === 0) {
		shortmessage = '';
	} else {
		shortmessage = sprintf.apply(null, sprintf_args);
	}

	return ({
	    'options': options,
	    'shortmessage': shortmessage
	});
}

/*
 * See README.md for reference documentation.
 */
function VError()
{
	var args, obj, parsed, cause, ctor, message, k;

	args = Array.prototype.slice.call(arguments, 0);

	/*
	 * This is a regrettable pattern, but JavaScript's built-in Error class
	 * is defined to work this way, so we allow the constructor to be called
	 * without "new".
	 */
	if (!(this instanceof VError)) {
		obj = Object.create(VError.prototype);
		VError.apply(obj, arguments);
		return (obj);
	}

	/*
	 * For convenience and backwards compatibility, we support several
	 * different calling forms.  Normalize them here.
	 */
	parsed = parseConstructorArguments({
	    'argv': args,
	    'strict': false
	});

	/*
	 * If we've been given a name, apply it now.
	 */
	if (parsed.options.name) {
		mod_assertplus.string(parsed.options.name,
		    'error\'s "name" must be a string');
		this.name = parsed.options.name;
	}

	/*
	 * For debugging, we keep track of the original short message (attached
	 * this Error particularly) separately from the complete message (which
	 * includes the messages of our cause chain).
	 */
	this.jse_shortmsg = parsed.shortmessage;
	message = parsed.shortmessage;

	/*
	 * If we've been given a cause, record a reference to it and update our
	 * message appropriately.
	 */
	cause = parsed.options.cause;
	if (cause) {
		mod_assertplus.ok(mod_isError(cause), 'cause is not an Error');
		this.jse_cause = cause;

		if (!parsed.options.skipCauseMessage) {
			message += ': ' + cause.message;
		}
	}

	/*
	 * If we've been given an object with properties, shallow-copy that
	 * here.  We don't want to use a deep copy in case there are non-plain
	 * objects here, but we don't want to use the original object in case
	 * the caller modifies it later.
	 */
	this.jse_info = {};
	if (parsed.options.info) {
		for (k in parsed.options.info) {
			this.jse_info[k] = parsed.options.info[k];
		}
	}

	this.message = message;
	Error.call(this, message);

	if (Error.captureStackTrace) {
		ctor = parsed.options.constructorOpt || this.constructor;
		Error.captureStackTrace(this, ctor);
	}

	return (this);
}

mod_util.inherits(VError, Error);
VError.prototype.name = 'VError';

VError.prototype.toString = function ve_toString()
{
	var str = (this.hasOwnProperty('name') && this.name ||
		this.constructor.name || this.constructor.prototype.name);
	if (this.message)
		str += ': ' + this.message;

	return (str);
};

/*
 * This method is provided for compatibility.  New callers should use
 * VError.cause() instead.  That method also uses the saner `null` return value
 * when there is no cause.
 */
VError.prototype.cause = function ve_cause()
{
	var cause = VError.cause(this);
	return (cause === null ? undefined : cause);
};

/*
 * Static methods
 *
 * These class-level methods are provided so that callers can use them on
 * instances of Errors that are not VErrors.  New interfaces should be provided
 * only using static methods to eliminate the class of programming mistake where
 * people fail to check whether the Error object has the corresponding methods.
 */

VError.cause = function (err)
{
	mod_assertplus.ok(mod_isError(err), 'err must be an Error');
	return (mod_isError(err.jse_cause) ? err.jse_cause : null);
};

VError.info = function (err)
{
	var rv, cause, k;

	mod_assertplus.ok(mod_isError(err), 'err must be an Error');
	cause = VError.cause(err);
	if (cause !== null) {
		rv = VError.info(cause);
	} else {
		rv = {};
	}

	if (typeof (err.jse_info) == 'object' && err.jse_info !== null) {
		for (k in err.jse_info) {
			rv[k] = err.jse_info[k];
		}
	}

	return (rv);
};

VError.findCauseByName = function (err, name)
{
	var cause;

	mod_assertplus.ok(mod_isError(err), 'err must be an Error');
	mod_assertplus.string(name, 'name');
	mod_assertplus.ok(name.length > 0, 'name cannot be empty');

	for (cause = err; cause !== null; cause = VError.cause(cause)) {
		mod_assertplus.ok(mod_isError(cause));
		if (cause.name == name) {
			return (cause);
		}
	}

	return (null);
};

VError.hasCauseWithName = function (err, name)
{
	return (VError.findCauseByName(err, name) !== null);
};

VError.fullStack = function (err)
{
	mod_assertplus.ok(mod_isError(err), 'err must be an Error');

	var cause = VError.cause(err);

	if (cause) {
		return (err.stack + '\ncaused by: ' + VError.fullStack(cause));
	}

	return (err.stack);
};

VError.errorFromList = function (errors)
{
	mod_assertplus.arrayOfObject(errors, 'errors');

	if (errors.length === 0) {
		return (null);
	}

	errors.forEach(function (e) {
		mod_assertplus.ok(mod_isError(e));
	});

	if (errors.length == 1) {
		return (errors[0]);
	}

	return (new MultiError(errors));
};

VError.errorForEach = function (err, func)
{
	mod_assertplus.ok(mod_isError(err), 'err must be an Error');
	mod_assertplus.func(func, 'func');

	if (err instanceof MultiError) {
		err.errors().forEach(function iterError(e) { func(e); });
	} else {
		func(err);
	}
};


/*
 * SError is like VError, but stricter about types.  You cannot pass "null" or
 * "undefined" as string arguments to the formatter.
 */
function SError()
{
	var args, obj, parsed, options;

	args = Array.prototype.slice.call(arguments, 0);
	if (!(this instanceof SError)) {
		obj = Object.create(SError.prototype);
		SError.apply(obj, arguments);
		return (obj);
	}

	parsed = parseConstructorArguments({
	    'argv': args,
	    'strict': true
	});

	options = parsed.options;
	VError.call(this, options, '%s', parsed.shortmessage);

	return (this);
}

/*
 * We don't bother setting SError.prototype.name because once constructed,
 * SErrors are just like VErrors.
 */
mod_util.inherits(SError, VError);


/*
 * Represents a collection of errors for the purpose of consumers that generally
 * only deal with one error.  Callers can extract the individual errors
 * contained in this object, but may also just treat it as a normal single
 * error, in which case a summary message will be printed.
 */
function MultiError(errors)
{
	mod_assertplus.array(errors, 'list of errors');
	mod_assertplus.ok(errors.length > 0, 'must be at least one error');
	this.ase_errors = errors;

	VError.call(this, {
	    'cause': errors[0]
	}, 'first of %d error%s', errors.length, errors.length == 1 ? '' : 's');
}

mod_util.inherits(MultiError, VError);
MultiError.prototype.name = 'MultiError';

MultiError.prototype.errors = function me_errors()
{
	return (this.ase_errors.slice(0));
};


/*
 * See README.md for reference details.
 */
function WError()
{
	var args, obj, parsed, options;

	args = Array.prototype.slice.call(arguments, 0);
	if (!(this instanceof WError)) {
		obj = Object.create(WError.prototype);
		WError.apply(obj, args);
		return (obj);
	}

	parsed = parseConstructorArguments({
	    'argv': args,
	    'strict': false
	});

	options = parsed.options;
	options['skipCauseMessage'] = true;
	VError.call(this, options, '%s', parsed.shortmessage);

	return (this);
}

mod_util.inherits(WError, VError);
WError.prototype.name = 'WError';

WError.prototype.toString = function we_toString()
{
	var str = (this.hasOwnProperty('name') && this.name ||
		this.constructor.name || this.constructor.prototype.name);
	if (this.message)
		str += ': ' + this.message;
	if (this.jse_cause && this.jse_cause.message)
		str += '; caused by ' + this.jse_cause.toString();

	return (str);
};

/*
 * For purely historical reasons, WError's cause() function allows you to set
 * the cause.
 */
WError.prototype.cause = function we_cause(c)
{
	if (mod_isError(c))
		this.jse_cause = c;

	return (this.jse_cause);
};


/***/ }),
/* 378 */
/***/ (function(module, exports, __webpack_require__) {

/*
 * extsprintf.js: extended POSIX-style sprintf
 */

var mod_assert = __webpack_require__(114);
var mod_util = __webpack_require__(113);

/*
 * Public interface
 */
exports.sprintf = jsSprintf;
exports.printf = jsPrintf;
exports.fprintf = jsFprintf;

/*
 * Stripped down version of s[n]printf(3c).  We make a best effort to throw an
 * exception when given a format string we don't understand, rather than
 * ignoring it, so that we won't break existing programs if/when we go implement
 * the rest of this.
 *
 * This implementation currently supports specifying
 *	- field alignment ('-' flag),
 * 	- zero-pad ('0' flag)
 *	- always show numeric sign ('+' flag),
 *	- field width
 *	- conversions for strings, decimal integers, and floats (numbers).
 *	- argument size specifiers.  These are all accepted but ignored, since
 *	  Javascript has no notion of the physical size of an argument.
 *
 * Everything else is currently unsupported, most notably precision, unsigned
 * numbers, non-decimal numbers, and characters.
 */
function jsSprintf(ofmt)
{
	var regex = [
	    '([^%]*)',				/* normal text */
	    '%',				/* start of format */
	    '([\'\\-+ #0]*?)',			/* flags (optional) */
	    '([1-9]\\d*)?',			/* width (optional) */
	    '(\\.([1-9]\\d*))?',		/* precision (optional) */
	    '[lhjztL]*?',			/* length mods (ignored) */
	    '([diouxXfFeEgGaAcCsSp%jr])'	/* conversion */
	].join('');

	var re = new RegExp(regex);

	/* variadic arguments used to fill in conversion specifiers */
	var args = Array.prototype.slice.call(arguments, 1);
	/* remaining format string */
	var fmt = ofmt;

	/* components of the current conversion specifier */
	var flags, width, precision, conversion;
	var left, pad, sign, arg, match;

	/* return value */
	var ret = '';

	/* current variadic argument (1-based) */
	var argn = 1;
	/* 0-based position in the format string that we've read */
	var posn = 0;
	/* 1-based position in the format string of the current conversion */
	var convposn;
	/* current conversion specifier */
	var curconv;

	mod_assert.equal('string', typeof (fmt),
	    'first argument must be a format string');

	while ((match = re.exec(fmt)) !== null) {
		ret += match[1];
		fmt = fmt.substring(match[0].length);

		/*
		 * Update flags related to the current conversion specifier's
		 * position so that we can report clear error messages.
		 */
		curconv = match[0].substring(match[1].length);
		convposn = posn + match[1].length + 1;
		posn += match[0].length;

		flags = match[2] || '';
		width = match[3] || 0;
		precision = match[4] || '';
		conversion = match[6];
		left = false;
		sign = false;
		pad = ' ';

		if (conversion == '%') {
			ret += '%';
			continue;
		}

		if (args.length === 0) {
			throw (jsError(ofmt, convposn, curconv,
			    'has no matching argument ' +
			    '(too few arguments passed)'));
		}

		arg = args.shift();
		argn++;

		if (flags.match(/[\' #]/)) {
			throw (jsError(ofmt, convposn, curconv,
			    'uses unsupported flags'));
		}

		if (precision.length > 0) {
			throw (jsError(ofmt, convposn, curconv,
			    'uses non-zero precision (not supported)'));
		}

		if (flags.match(/-/))
			left = true;

		if (flags.match(/0/))
			pad = '0';

		if (flags.match(/\+/))
			sign = true;

		switch (conversion) {
		case 's':
			if (arg === undefined || arg === null) {
				throw (jsError(ofmt, convposn, curconv,
				    'attempted to print undefined or null ' +
				    'as a string (argument ' + argn + ' to ' +
				    'sprintf)'));
			}
			ret += doPad(pad, width, left, arg.toString());
			break;

		case 'd':
			arg = Math.floor(arg);
			/*jsl:fallthru*/
		case 'f':
			sign = sign && arg > 0 ? '+' : '';
			ret += sign + doPad(pad, width, left,
			    arg.toString());
			break;

		case 'x':
			ret += doPad(pad, width, left, arg.toString(16));
			break;

		case 'j': /* non-standard */
			if (width === 0)
				width = 10;
			ret += mod_util.inspect(arg, false, width);
			break;

		case 'r': /* non-standard */
			ret += dumpException(arg);
			break;

		default:
			throw (jsError(ofmt, convposn, curconv,
			    'is not supported'));
		}
	}

	ret += fmt;
	return (ret);
}

function jsError(fmtstr, convposn, curconv, reason) {
	mod_assert.equal(typeof (fmtstr), 'string');
	mod_assert.equal(typeof (curconv), 'string');
	mod_assert.equal(typeof (convposn), 'number');
	mod_assert.equal(typeof (reason), 'string');
	return (new Error('format string "' + fmtstr +
	    '": conversion specifier "' + curconv + '" at character ' +
	    convposn + ' ' + reason));
}

function jsPrintf() {
	var args = Array.prototype.slice.call(arguments);
	args.unshift(process.stdout);
	jsFprintf.apply(null, args);
}

function jsFprintf(stream) {
	var args = Array.prototype.slice.call(arguments, 1);
	return (stream.write(jsSprintf.apply(this, args)));
}

function doPad(chr, width, left, str)
{
	var ret = str;

	while (ret.length < width) {
		if (left)
			ret += chr;
		else
			ret = chr + ret;
	}

	return (ret);
}

/*
 * This function dumps long stack traces for exceptions having a cause() method.
 * See node-verror for an example.
 */
function dumpException(ex)
{
	var ret;

	if (!(ex instanceof Error))
		throw (new Error(jsSprintf('invalid type for %%r: %j', ex)));

	/* Note that V8 prepends "ex.stack" with ex.toString(). */
	ret = 'EXCEPTION: ' + ex.constructor.name + ': ' + ex.stack;

	if (ex.cause && typeof (ex.cause) === 'function') {
		var cex = ex.cause();
		if (cex) {
			ret += '\nCaused by: ' + dumpException(cex);
		}
	}

	return (ret);
}


/***/ }),
/* 379 */
/***/ (function(module, exports) {

// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.

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 === 'symbol';
}
exports.isSymbol = isSymbol;

function isUndefined(arg) {
  return arg === void 0;
}
exports.isUndefined = isUndefined;

function isRegExp(re) {
  return objectToString(re) === '[object RegExp]';
}
exports.isRegExp = isRegExp;

function isObject(arg) {
  return typeof arg === 'object' && arg !== null;
}
exports.isObject = isObject;

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 === 'symbol' ||  // ES6 symbol
         typeof arg === 'undefined';
}
exports.isPrimitive = isPrimitive;

exports.isBuffer = Buffer.isBuffer;

function objectToString(o) {
  return Object.prototype.toString.call(o);
}


/***/ }),
/* 380 */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
 * JSONSchema Validator - Validates JavaScript objects using JSON Schemas
 *	(http://www.json.com/json-schema-proposal/)
 *
 * Copyright (c) 2007 Kris Zyp SitePen (www.sitepen.com)
 * Licensed under the MIT (MIT-LICENSE.txt) license.
To use the validator call the validate function with an instance object and an optional schema object.
If a schema is provided, it will be used to validate. If the instance object refers to a schema (self-validating),
that schema will be used to validate and the schema parameter is not necessary (if both exist,
both validations will occur).
The validate method will return an array of validation errors. If there are no errors, then an
empty list will be returned. A validation error will have two properties:
"property" which indicates which property had the error
"message" which indicates what the error was
 */
(function (root, factory) {
    if (true) {
        // AMD. Register as an anonymous module.
        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
            return factory();
        }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    } else {}
}(this, function () {// setup primitive classes to be JSON Schema types
var exports = validate
exports.Integer = {type:"integer"};
var primitiveConstructors = {
	String: String,
	Boolean: Boolean,
	Number: Number,
	Object: Object,
	Array: Array,
	Date: Date
}
exports.validate = validate;
function validate(/*Any*/instance,/*Object*/schema) {
		// Summary:
		//  	To use the validator call JSONSchema.validate with an instance object and an optional schema object.
		// 		If a schema is provided, it will be used to validate. If the instance object refers to a schema (self-validating),
		// 		that schema will be used to validate and the schema parameter is not necessary (if both exist,
		// 		both validations will occur).
		// 		The validate method will return an object with two properties:
		// 			valid: A boolean indicating if the instance is valid by the schema
		// 			errors: An array of validation errors. If there are no errors, then an
		// 					empty list will be returned. A validation error will have two properties:
		// 						property: which indicates which property had the error
		// 						message: which indicates what the error was
		//
		return validate(instance, schema, {changing: false});//, coerce: false, existingOnly: false});
	};
exports.checkPropertyChange = function(/*Any*/value,/*Object*/schema, /*String*/property) {
		// Summary:
		// 		The checkPropertyChange method will check to see if an value can legally be in property with the given schema
		// 		This is slightly different than the validate method in that it will fail if the schema is readonly and it will
		// 		not check for self-validation, it is assumed that the passed in value is already internally valid.
		// 		The checkPropertyChange method will return the same object type as validate, see JSONSchema.validate for
		// 		information.
		//
		return validate(value, schema, {changing: property || "property"});
	};
var validate = exports._validate = function(/*Any*/instance,/*Object*/schema,/*Object*/options) {

	if (!options) options = {};
	var _changing = options.changing;

	function getType(schema){
		return schema.type || (primitiveConstructors[schema.name] == schema && schema.name.toLowerCase());
	}
	var errors = [];
	// validate a value against a property definition
	function checkProp(value, schema, path,i){

		var l;
		path += path ? typeof i == 'number' ? '[' + i + ']' : typeof i == 'undefined' ? '' : '.' + i : i;
		function addError(message){
			errors.push({property:path,message:message});
		}

		if((typeof schema != 'object' || schema instanceof Array) && (path || typeof schema != 'function') && !(schema && getType(schema))){
			if(typeof schema == 'function'){
				if(!(value instanceof schema)){
					addError("is not an instance of the class/constructor " + schema.name);
				}
			}else if(schema){
				addError("Invalid schema/property definition " + schema);
			}
			return null;
		}
		if(_changing && schema.readonly){
			addError("is a readonly field, it can not be changed");
		}
		if(schema['extends']){ // if it extends another schema, it must pass that schema as well
			checkProp(value,schema['extends'],path,i);
		}
		// validate a value against a type definition
		function checkType(type,value){
			if(type){
				if(typeof type == 'string' && type != 'any' &&
						(type == 'null' ? value !== null : typeof value != type) &&
						!(value instanceof Array && type == 'array') &&
						!(value instanceof Date && type == 'date') &&
						!(type == 'integer' && value%1===0)){
					return [{property:path,message:(typeof value) + " value found, but a " + type + " is required"}];
				}
				if(type instanceof Array){
					var unionErrors=[];
					for(var j = 0; j < type.length; j++){ // a union type
						if(!(unionErrors=checkType(type[j],value)).length){
							break;
						}
					}
					if(unionErrors.length){
						return unionErrors;
					}
				}else if(typeof type == 'object'){
					var priorErrors = errors;
					errors = [];
					checkProp(value,type,path);
					var theseErrors = errors;
					errors = priorErrors;
					return theseErrors;
				}
			}
			return [];
		}
		if(value === undefined){
			if(schema.required){
				addError("is missing and it is required");
			}
		}else{
			errors = errors.concat(checkType(getType(schema),value));
			if(schema.disallow && !checkType(schema.disallow,value).length){
				addError(" disallowed value was matched");
			}
			if(value !== null){
				if(value instanceof Array){
					if(schema.items){
						var itemsIsArray = schema.items instanceof Array;
						var propDef = schema.items;
						for (i = 0, l = value.length; i < l; i += 1) {
							if (itemsIsArray)
								propDef = schema.items[i];
							if (options.coerce)
								value[i] = options.coerce(value[i], propDef);
							errors.concat(checkProp(value[i],propDef,path,i));
						}
					}
					if(schema.minItems && value.length < schema.minItems){
						addError("There must be a minimum of " + schema.minItems + " in the array");
					}
					if(schema.maxItems && value.length > schema.maxItems){
						addError("There must be a maximum of " + schema.maxItems + " in the array");
					}
				}else if(schema.properties || schema.additionalProperties){
					errors.concat(checkObj(value, schema.properties, path, schema.additionalProperties));
				}
				if(schema.pattern && typeof value == 'string' && !value.match(schema.pattern)){
					addError("does not match the regex pattern " + schema.pattern);
				}
				if(schema.maxLength && typeof value == 'string' && value.length > schema.maxLength){
					addError("may only be " + schema.maxLength + " characters long");
				}
				if(schema.minLength && typeof value == 'string' && value.length < schema.minLength){
					addError("must be at least " + schema.minLength + " characters long");
				}
				if(typeof schema.minimum !== undefined && typeof value == typeof schema.minimum &&
						schema.minimum > value){
					addError("must have a minimum value of " + schema.minimum);
				}
				if(typeof schema.maximum !== undefined && typeof value == typeof schema.maximum &&
						schema.maximum < value){
					addError("must have a maximum value of " + schema.maximum);
				}
				if(schema['enum']){
					var enumer = schema['enum'];
					l = enumer.length;
					var found;
					for(var j = 0; j < l; j++){
						if(enumer[j]===value){
							found=1;
							break;
						}
					}
					if(!found){
						addError("does not have a value in the enumeration " + enumer.join(", "));
					}
				}
				if(typeof schema.maxDecimal == 'number' &&
					(value.toString().match(new RegExp("\\.[0-9]{" + (schema.maxDecimal + 1) + ",}")))){
					addError("may only have " + schema.maxDecimal + " digits of decimal places");
				}
			}
		}
		return null;
	}
	// validate an object against a schema
	function checkObj(instance,objTypeDef,path,additionalProp){

		if(typeof objTypeDef =='object'){
			if(typeof instance != 'object' || instance instanceof Array){
				errors.push({property:path,message:"an object is required"});
			}
			
			for(var i in objTypeDef){ 
				if(objTypeDef.hasOwnProperty(i)){
					var value = instance[i];
					// skip _not_ specified properties
					if (value === undefined && options.existingOnly) continue;
					var propDef = objTypeDef[i];
					// set default
					if(value === undefined && propDef["default"]){
						value = instance[i] = propDef["default"];
					}
					if(options.coerce && i in instance){
						value = instance[i] = options.coerce(value, propDef);
					}
					checkProp(value,propDef,path,i);
				}
			}
		}
		for(i in instance){
			if(instance.hasOwnProperty(i) && !(i.charAt(0) == '_' && i.charAt(1) == '_') && objTypeDef && !objTypeDef[i] && additionalProp===false){
				if (options.filter) {
					delete instance[i];
					continue;
				} else {
					errors.push({property:path,message:(typeof value) + "The property " + i +
						" is not defined in the schema and the schema does not allow additional properties"});
				}
			}
			var requires = objTypeDef && objTypeDef[i] && objTypeDef[i].requires;
			if(requires && !(requires in instance)){
				errors.push({property:path,message:"the presence of the property " + i + " requires that " + requires + " also be present"});
			}
			value = instance[i];
			if(additionalProp && (!(objTypeDef && typeof objTypeDef == 'object') || !(i in objTypeDef))){
				if(options.coerce){
					value = instance[i] = options.coerce(value, additionalProp);
				}
				checkProp(value,additionalProp,path,i);
			}
			if(!_changing && value && value.$schema){
				errors = errors.concat(checkProp(value,value.$schema,path,i));
			}
		}
		return errors;
	}
	if(schema){
		checkProp(instance,schema,'',_changing || '');
	}
	if(!_changing && instance && instance.$schema){
		checkProp(instance,instance.$schema,'','');
	}
	return {valid:!errors.length,errors:errors};
};
exports.mustBeValid = function(result){
	//	summary:
	//		This checks to ensure that the result is valid and will throw an appropriate error message if it is not
	// result: the result returned from checkPropertyChange or validate
	if(!result.valid){
		throw new TypeError(result.errors.map(function(error){return "for property " + error.property + ': ' + error.message;}).join(", \n"));
	}
}

return exports;
}));


/***/ }),
/* 381 */
/***/ (function(module, exports, __webpack_require__) {

// Copyright 2015 Joyent, Inc.

var assert = __webpack_require__(334);
var crypto = __webpack_require__(57);
var sshpk = __webpack_require__(336);
var utils = __webpack_require__(335);

var HASH_ALGOS = utils.HASH_ALGOS;
var PK_ALGOS = utils.PK_ALGOS;
var InvalidAlgorithmError = utils.InvalidAlgorithmError;
var HttpSignatureError = utils.HttpSignatureError;
var validateAlgorithm = utils.validateAlgorithm;

///--- Exported API

module.exports = {
  /**
   * Verify RSA/DSA signature against public key.  You are expected to pass in
   * an object that was returned from `parse()`.
   *
   * @param {Object} parsedSignature the object you got from `parse`.
   * @param {String} pubkey RSA/DSA private key PEM.
   * @return {Boolean} true if valid, false otherwise.
   * @throws {TypeError} if you pass in bad arguments.
   * @throws {InvalidAlgorithmError}
   */
  verifySignature: function verifySignature(parsedSignature, pubkey) {
    assert.object(parsedSignature, 'parsedSignature');
    if (typeof (pubkey) === 'string' || Buffer.isBuffer(pubkey))
      pubkey = sshpk.parseKey(pubkey);
    assert.ok(sshpk.Key.isKey(pubkey, [1, 1]), 'pubkey must be a sshpk.Key');

    var alg = validateAlgorithm(parsedSignature.algorithm);
    if (alg[0] === 'hmac' || alg[0] !== pubkey.type)
      return (false);

    var v = pubkey.createVerify(alg[1]);
    v.update(parsedSignature.signingString);
    return (v.verify(parsedSignature.params.signature, 'base64'));
  },

  /**
   * Verify HMAC against shared secret.  You are expected to pass in an object
   * that was returned from `parse()`.
   *
   * @param {Object} parsedSignature the object you got from `parse`.
   * @param {String} secret HMAC shared secret.
   * @return {Boolean} true if valid, false otherwise.
   * @throws {TypeError} if you pass in bad arguments.
   * @throws {InvalidAlgorithmError}
   */
  verifyHMAC: function verifyHMAC(parsedSignature, secret) {
    assert.object(parsedSignature, 'parsedHMAC');
    assert.string(secret, 'secret');

    var alg = validateAlgorithm(parsedSignature.algorithm);
    if (alg[0] !== 'hmac')
      return (false);

    var hashAlg = alg[1].toUpperCase();

    var hmac = crypto.createHmac(hashAlg, secret);
    hmac.update(parsedSignature.signingString);

    /*
     * Now double-hash to avoid leaking timing information - there's
     * no easy constant-time compare in JS, so we use this approach
     * instead. See for more info:
     * https://www.isecpartners.com/blog/2011/february/double-hmac-
     * verification.aspx
     */
    var h1 = crypto.createHmac(hashAlg, secret);
    h1.update(hmac.digest());
    h1 = h1.digest();
    var h2 = crypto.createHmac(hashAlg, secret);
    h2.update(new Buffer(parsedSignature.params.signature, 'base64'));
    h2 = h2.digest();

    /* Node 0.8 returns strings from .digest(). */
    if (typeof (h1) === 'string')
      return (h1 === h2);
    /* And node 0.10 lacks the .equals() method on Buffers. */
    if (Buffer.isBuffer(h1) && !h1.equals)
      return (h1.toString('binary') === h2.toString('binary'));

    return (h1.equals(h2));
  }
};


/***/ }),
/* 382 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*!
 * mime-types
 * Copyright(c) 2014 Jonathan Ong
 * Copyright(c) 2015 Douglas Christopher Wilson
 * MIT Licensed
 */



/**
 * Module dependencies.
 * @private
 */

var db = __webpack_require__(383)
var extname = __webpack_require__(55).extname

/**
 * Module variables.
 * @private
 */

var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/
var TEXT_TYPE_REGEXP = /^text\//i

/**
 * Module exports.
 * @public
 */

exports.charset = charset
exports.charsets = { lookup: charset }
exports.contentType = contentType
exports.extension = extension
exports.extensions = Object.create(null)
exports.lookup = lookup
exports.types = Object.create(null)

// Populate the extensions/types maps
populateMaps(exports.extensions, exports.types)

/**
 * Get the default charset for a MIME type.
 *
 * @param {string} type
 * @return {boolean|string}
 */

function charset (type) {
  if (!type || typeof type !== 'string') {
    return false
  }

  // TODO: use media-typer
  var match = EXTRACT_TYPE_REGEXP.exec(type)
  var mime = match && db[match[1].toLowerCase()]

  if (mime && mime.charset) {
    return mime.charset
  }

  // default text/* to utf-8
  if (match && TEXT_TYPE_REGEXP.test(match[1])) {
    return 'UTF-8'
  }

  return false
}

/**
 * Create a full Content-Type header given a MIME type or extension.
 *
 * @param {string} str
 * @return {boolean|string}
 */

function contentType (str) {
  // TODO: should this even be in this module?
  if (!str || typeof str !== 'string') {
    return false
  }

  var mime = str.indexOf('/') === -1
    ? exports.lookup(str)
    : str

  if (!mime) {
    return false
  }

  // TODO: use content-type or other module
  if (mime.indexOf('charset') === -1) {
    var charset = exports.charset(mime)
    if (charset) mime += '; charset=' + charset.toLowerCase()
  }

  return mime
}

/**
 * Get the default extension for a MIME type.
 *
 * @param {string} type
 * @return {boolean|string}
 */

function extension (type) {
  if (!type || typeof type !== 'string') {
    return false
  }

  // TODO: use media-typer
  var match = EXTRACT_TYPE_REGEXP.exec(type)

  // get extensions
  var exts = match && exports.extensions[match[1].toLowerCase()]

  if (!exts || !exts.length) {
    return false
  }

  return exts[0]
}

/**
 * Lookup the MIME type for a file path/extension.
 *
 * @param {string} path
 * @return {boolean|string}
 */

function lookup (path) {
  if (!path || typeof path !== 'string') {
    return false
  }

  // get the extension ("ext" or ".ext" or full path)
  var extension = extname('x.' + path)
    .toLowerCase()
    .substr(1)

  if (!extension) {
    return false
  }

  return exports.types[extension] || false
}

/**
 * Populate the extensions and types maps.
 * @private
 */

function populateMaps (extensions, types) {
  // source preference (least -> most)
  var preference = ['nginx', 'apache', undefined, 'iana']

  Object.keys(db).forEach(function forEachMimeType (type) {
    var mime = db[type]
    var exts = mime.extensions

    if (!exts || !exts.length) {
      return
    }

    // mime -> extensions
    extensions[type] = exts

    // extension -> mime
    for (var i = 0; i < exts.length; i++) {
      var extension = exts[i]

      if (types[extension]) {
        var from = preference.indexOf(db[types[extension]].source)
        var to = preference.indexOf(mime.source)

        if (types[extension] !== 'application/octet-stream' &&
          (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {
          // skip the remapping
          continue
        }
      }

      // set the extension -> mime
      types[extension] = type
    }
  })
}


/***/ }),
/* 383 */
/***/ (function(module, exports, __webpack_require__) {

/*!
 * mime-db
 * Copyright(c) 2014 Jonathan Ong
 * MIT Licensed
 */

/**
 * Module exports.
 */

module.exports = __webpack_require__(384)


/***/ }),
/* 384 */
/***/ (function(module) {

module.exports = JSON.parse("{\"application/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"application/3gpdash-qoe-report+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/3gpp-ims+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/a2l\":{\"source\":\"iana\"},\"application/activemessage\":{\"source\":\"iana\"},\"application/activity+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-costmap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-costmapfilter+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-directory+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointcost+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointcostparams+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointprop+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointpropparams+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-error+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-networkmap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-networkmapfilter+json\":{\"source\":\"iana\",\"compressible\":true},\"application/aml\":{\"source\":\"iana\"},\"application/andrew-inset\":{\"source\":\"iana\",\"extensions\":[\"ez\"]},\"application/applefile\":{\"source\":\"iana\"},\"application/applixware\":{\"source\":\"apache\",\"extensions\":[\"aw\"]},\"application/atf\":{\"source\":\"iana\"},\"application/atfx\":{\"source\":\"iana\"},\"application/atom+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"atom\"]},\"application/atomcat+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"atomcat\"]},\"application/atomdeleted+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/atomicmail\":{\"source\":\"iana\"},\"application/atomsvc+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"atomsvc\"]},\"application/atsc-dwd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/atsc-held+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/atsc-rsat+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/atxml\":{\"source\":\"iana\"},\"application/auth-policy+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/bacnet-xdd+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/batch-smtp\":{\"source\":\"iana\"},\"application/bdoc\":{\"compressible\":false,\"extensions\":[\"bdoc\"]},\"application/beep+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/calendar+json\":{\"source\":\"iana\",\"compressible\":true},\"application/calendar+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/call-completion\":{\"source\":\"iana\"},\"application/cals-1840\":{\"source\":\"iana\"},\"application/cbor\":{\"source\":\"iana\"},\"application/cccex\":{\"source\":\"iana\"},\"application/ccmp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/ccxml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ccxml\"]},\"application/cdfx+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cdmi-capability\":{\"source\":\"iana\",\"extensions\":[\"cdmia\"]},\"application/cdmi-container\":{\"source\":\"iana\",\"extensions\":[\"cdmic\"]},\"application/cdmi-domain\":{\"source\":\"iana\",\"extensions\":[\"cdmid\"]},\"application/cdmi-object\":{\"source\":\"iana\",\"extensions\":[\"cdmio\"]},\"application/cdmi-queue\":{\"source\":\"iana\",\"extensions\":[\"cdmiq\"]},\"application/cdni\":{\"source\":\"iana\"},\"application/cea\":{\"source\":\"iana\"},\"application/cea-2018+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cellml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cfw\":{\"source\":\"iana\"},\"application/clue_info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cms\":{\"source\":\"iana\"},\"application/cnrp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/coap-group+json\":{\"source\":\"iana\",\"compressible\":true},\"application/coap-payload\":{\"source\":\"iana\"},\"application/commonground\":{\"source\":\"iana\"},\"application/conference-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cose\":{\"source\":\"iana\"},\"application/cose-key\":{\"source\":\"iana\"},\"application/cose-key-set\":{\"source\":\"iana\"},\"application/cpl+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/csrattrs\":{\"source\":\"iana\"},\"application/csta+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cstadata+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/csvm+json\":{\"source\":\"iana\",\"compressible\":true},\"application/cu-seeme\":{\"source\":\"apache\",\"extensions\":[\"cu\"]},\"application/cwt\":{\"source\":\"iana\"},\"application/cybercash\":{\"source\":\"iana\"},\"application/dart\":{\"compressible\":true},\"application/dash+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mpd\"]},\"application/dashdelta\":{\"source\":\"iana\"},\"application/davmount+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"davmount\"]},\"application/dca-rft\":{\"source\":\"iana\"},\"application/dcd\":{\"source\":\"iana\"},\"application/dec-dx\":{\"source\":\"iana\"},\"application/dialog-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/dicom\":{\"source\":\"iana\"},\"application/dicom+json\":{\"source\":\"iana\",\"compressible\":true},\"application/dicom+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/dii\":{\"source\":\"iana\"},\"application/dit\":{\"source\":\"iana\"},\"application/dns\":{\"source\":\"iana\"},\"application/dns+json\":{\"source\":\"iana\",\"compressible\":true},\"application/dns-message\":{\"source\":\"iana\"},\"application/docbook+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"dbk\"]},\"application/dskpp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/dssc+der\":{\"source\":\"iana\",\"extensions\":[\"dssc\"]},\"application/dssc+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xdssc\"]},\"application/dvcs\":{\"source\":\"iana\"},\"application/ecmascript\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ecma\",\"es\"]},\"application/edi-consent\":{\"source\":\"iana\"},\"application/edi-x12\":{\"source\":\"iana\",\"compressible\":false},\"application/edifact\":{\"source\":\"iana\",\"compressible\":false},\"application/efi\":{\"source\":\"iana\"},\"application/emergencycalldata.comment+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.control+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.deviceinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.ecall.msd\":{\"source\":\"iana\"},\"application/emergencycalldata.providerinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.serviceinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.subscriberinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.veds+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emma+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"emma\"]},\"application/emotionml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/encaprtp\":{\"source\":\"iana\"},\"application/epp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/epub+zip\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"epub\"]},\"application/eshop\":{\"source\":\"iana\"},\"application/exi\":{\"source\":\"iana\",\"extensions\":[\"exi\"]},\"application/expect-ct-report+json\":{\"source\":\"iana\",\"compressible\":true},\"application/fastinfoset\":{\"source\":\"iana\"},\"application/fastsoap\":{\"source\":\"iana\"},\"application/fdt+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/fhir+json\":{\"source\":\"iana\",\"compressible\":true},\"application/fhir+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/fido.trusted-apps+json\":{\"compressible\":true},\"application/fits\":{\"source\":\"iana\"},\"application/font-sfnt\":{\"source\":\"iana\"},\"application/font-tdpfr\":{\"source\":\"iana\",\"extensions\":[\"pfr\"]},\"application/font-woff\":{\"source\":\"iana\",\"compressible\":false},\"application/framework-attributes+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/geo+json\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"geojson\"]},\"application/geo+json-seq\":{\"source\":\"iana\"},\"application/geopackage+sqlite3\":{\"source\":\"iana\"},\"application/geoxacml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/gltf-buffer\":{\"source\":\"iana\"},\"application/gml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"gml\"]},\"application/gpx+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"gpx\"]},\"application/gxf\":{\"source\":\"apache\",\"extensions\":[\"gxf\"]},\"application/gzip\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"gz\"]},\"application/h224\":{\"source\":\"iana\"},\"application/held+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/hjson\":{\"extensions\":[\"hjson\"]},\"application/http\":{\"source\":\"iana\"},\"application/hyperstudio\":{\"source\":\"iana\",\"extensions\":[\"stk\"]},\"application/ibe-key-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/ibe-pkg-reply+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/ibe-pp-data\":{\"source\":\"iana\"},\"application/iges\":{\"source\":\"iana\"},\"application/im-iscomposing+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/index\":{\"source\":\"iana\"},\"application/index.cmd\":{\"source\":\"iana\"},\"application/index.obj\":{\"source\":\"iana\"},\"application/index.response\":{\"source\":\"iana\"},\"application/index.vnd\":{\"source\":\"iana\"},\"application/inkml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ink\",\"inkml\"]},\"application/iotp\":{\"source\":\"iana\"},\"application/ipfix\":{\"source\":\"iana\",\"extensions\":[\"ipfix\"]},\"application/ipp\":{\"source\":\"iana\"},\"application/isup\":{\"source\":\"iana\"},\"application/its+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/java-archive\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"jar\",\"war\",\"ear\"]},\"application/java-serialized-object\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"ser\"]},\"application/java-vm\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"class\"]},\"application/javascript\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"js\",\"mjs\"]},\"application/jf2feed+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jose\":{\"source\":\"iana\"},\"application/jose+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jrd+json\":{\"source\":\"iana\",\"compressible\":true},\"application/json\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"json\",\"map\"]},\"application/json-patch+json\":{\"source\":\"iana\",\"compressible\":true},\"application/json-seq\":{\"source\":\"iana\"},\"application/json5\":{\"extensions\":[\"json5\"]},\"application/jsonml+json\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"jsonml\"]},\"application/jwk+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jwk-set+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jwt\":{\"source\":\"iana\"},\"application/kpml-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/kpml-response+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/ld+json\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"jsonld\"]},\"application/lgr+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/link-format\":{\"source\":\"iana\"},\"application/load-control+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/lost+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"lostxml\"]},\"application/lostsync+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/lxf\":{\"source\":\"iana\"},\"application/mac-binhex40\":{\"source\":\"iana\",\"extensions\":[\"hqx\"]},\"application/mac-compactpro\":{\"source\":\"apache\",\"extensions\":[\"cpt\"]},\"application/macwriteii\":{\"source\":\"iana\"},\"application/mads+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mads\"]},\"application/manifest+json\":{\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"webmanifest\"]},\"application/marc\":{\"source\":\"iana\",\"extensions\":[\"mrc\"]},\"application/marcxml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mrcx\"]},\"application/mathematica\":{\"source\":\"iana\",\"extensions\":[\"ma\",\"nb\",\"mb\"]},\"application/mathml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mathml\"]},\"application/mathml-content+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mathml-presentation+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-associated-procedure-description+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-deregister+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-envelope+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-msk+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-msk-response+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-protection-description+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-reception-report+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-register+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-register-response+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-schedule+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-user-service-description+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbox\":{\"source\":\"iana\",\"extensions\":[\"mbox\"]},\"application/media-policy-dataset+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/media_control+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mediaservercontrol+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mscml\"]},\"application/merge-patch+json\":{\"source\":\"iana\",\"compressible\":true},\"application/metalink+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"metalink\"]},\"application/metalink4+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"meta4\"]},\"application/mets+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mets\"]},\"application/mf4\":{\"source\":\"iana\"},\"application/mikey\":{\"source\":\"iana\"},\"application/mmt-aei+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mmt-usd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mods+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mods\"]},\"application/moss-keys\":{\"source\":\"iana\"},\"application/moss-signature\":{\"source\":\"iana\"},\"application/mosskey-data\":{\"source\":\"iana\"},\"application/mosskey-request\":{\"source\":\"iana\"},\"application/mp21\":{\"source\":\"iana\",\"extensions\":[\"m21\",\"mp21\"]},\"application/mp4\":{\"source\":\"iana\",\"extensions\":[\"mp4s\",\"m4p\"]},\"application/mpeg4-generic\":{\"source\":\"iana\"},\"application/mpeg4-iod\":{\"source\":\"iana\"},\"application/mpeg4-iod-xmt\":{\"source\":\"iana\"},\"application/mrb-consumer+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mrb-publish+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/msc-ivr+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/msc-mixer+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/msword\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"doc\",\"dot\"]},\"application/mud+json\":{\"source\":\"iana\",\"compressible\":true},\"application/mxf\":{\"source\":\"iana\",\"extensions\":[\"mxf\"]},\"application/n-quads\":{\"source\":\"iana\",\"extensions\":[\"nq\"]},\"application/n-triples\":{\"source\":\"iana\",\"extensions\":[\"nt\"]},\"application/nasdata\":{\"source\":\"iana\"},\"application/news-checkgroups\":{\"source\":\"iana\"},\"application/news-groupinfo\":{\"source\":\"iana\"},\"application/news-transmission\":{\"source\":\"iana\"},\"application/nlsml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/node\":{\"source\":\"iana\"},\"application/nss\":{\"source\":\"iana\"},\"application/ocsp-request\":{\"source\":\"iana\"},\"application/ocsp-response\":{\"source\":\"iana\"},\"application/octet-stream\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]},\"application/oda\":{\"source\":\"iana\",\"extensions\":[\"oda\"]},\"application/odm+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/odx\":{\"source\":\"iana\"},\"application/oebps-package+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"opf\"]},\"application/ogg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ogx\"]},\"application/omdoc+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"omdoc\"]},\"application/onenote\":{\"source\":\"apache\",\"extensions\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]},\"application/oscore\":{\"source\":\"iana\"},\"application/oxps\":{\"source\":\"iana\",\"extensions\":[\"oxps\"]},\"application/p2p-overlay+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/parityfec\":{\"source\":\"iana\"},\"application/passport\":{\"source\":\"iana\"},\"application/patch-ops-error+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xer\"]},\"application/pdf\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"pdf\"]},\"application/pdx\":{\"source\":\"iana\"},\"application/pem-certificate-chain\":{\"source\":\"iana\"},\"application/pgp-encrypted\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"pgp\"]},\"application/pgp-keys\":{\"source\":\"iana\"},\"application/pgp-signature\":{\"source\":\"iana\",\"extensions\":[\"asc\",\"sig\"]},\"application/pics-rules\":{\"source\":\"apache\",\"extensions\":[\"prf\"]},\"application/pidf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/pidf-diff+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/pkcs10\":{\"source\":\"iana\",\"extensions\":[\"p10\"]},\"application/pkcs12\":{\"source\":\"iana\"},\"application/pkcs7-mime\":{\"source\":\"iana\",\"extensions\":[\"p7m\",\"p7c\"]},\"application/pkcs7-signature\":{\"source\":\"iana\",\"extensions\":[\"p7s\"]},\"application/pkcs8\":{\"source\":\"iana\",\"extensions\":[\"p8\"]},\"application/pkcs8-encrypted\":{\"source\":\"iana\"},\"application/pkix-attr-cert\":{\"source\":\"iana\",\"extensions\":[\"ac\"]},\"application/pkix-cert\":{\"source\":\"iana\",\"extensions\":[\"cer\"]},\"application/pkix-crl\":{\"source\":\"iana\",\"extensions\":[\"crl\"]},\"application/pkix-pkipath\":{\"source\":\"iana\",\"extensions\":[\"pkipath\"]},\"application/pkixcmp\":{\"source\":\"iana\",\"extensions\":[\"pki\"]},\"application/pls+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"pls\"]},\"application/poc-settings+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/postscript\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ai\",\"eps\",\"ps\"]},\"application/ppsp-tracker+json\":{\"source\":\"iana\",\"compressible\":true},\"application/problem+json\":{\"source\":\"iana\",\"compressible\":true},\"application/problem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/provenance+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/prs.alvestrand.titrax-sheet\":{\"source\":\"iana\"},\"application/prs.cww\":{\"source\":\"iana\",\"extensions\":[\"cww\"]},\"application/prs.hpub+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/prs.nprend\":{\"source\":\"iana\"},\"application/prs.plucker\":{\"source\":\"iana\"},\"application/prs.rdf-xml-crypt\":{\"source\":\"iana\"},\"application/prs.xsf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/pskc+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"pskcxml\"]},\"application/qsig\":{\"source\":\"iana\"},\"application/raml+yaml\":{\"compressible\":true,\"extensions\":[\"raml\"]},\"application/raptorfec\":{\"source\":\"iana\"},\"application/rdap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/rdf+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rdf\",\"owl\"]},\"application/reginfo+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rif\"]},\"application/relax-ng-compact-syntax\":{\"source\":\"iana\",\"extensions\":[\"rnc\"]},\"application/remote-printing\":{\"source\":\"iana\"},\"application/reputon+json\":{\"source\":\"iana\",\"compressible\":true},\"application/resource-lists+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rl\"]},\"application/resource-lists-diff+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rld\"]},\"application/rfc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/riscos\":{\"source\":\"iana\"},\"application/rlmi+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/rls-services+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rs\"]},\"application/route-apd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/route-s-tsid+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/route-usd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/rpki-ghostbusters\":{\"source\":\"iana\",\"extensions\":[\"gbr\"]},\"application/rpki-manifest\":{\"source\":\"iana\",\"extensions\":[\"mft\"]},\"application/rpki-publication\":{\"source\":\"iana\"},\"application/rpki-roa\":{\"source\":\"iana\",\"extensions\":[\"roa\"]},\"application/rpki-updown\":{\"source\":\"iana\"},\"application/rsd+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"rsd\"]},\"application/rss+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"rss\"]},\"application/rtf\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rtf\"]},\"application/rtploopback\":{\"source\":\"iana\"},\"application/rtx\":{\"source\":\"iana\"},\"application/samlassertion+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/samlmetadata+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/sbml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"sbml\"]},\"application/scaip+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/scim+json\":{\"source\":\"iana\",\"compressible\":true},\"application/scvp-cv-request\":{\"source\":\"iana\",\"extensions\":[\"scq\"]},\"application/scvp-cv-response\":{\"source\":\"iana\",\"extensions\":[\"scs\"]},\"application/scvp-vp-request\":{\"source\":\"iana\",\"extensions\":[\"spq\"]},\"application/scvp-vp-response\":{\"source\":\"iana\",\"extensions\":[\"spp\"]},\"application/sdp\":{\"source\":\"iana\",\"extensions\":[\"sdp\"]},\"application/secevent+jwt\":{\"source\":\"iana\"},\"application/senml+cbor\":{\"source\":\"iana\"},\"application/senml+json\":{\"source\":\"iana\",\"compressible\":true},\"application/senml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/senml-exi\":{\"source\":\"iana\"},\"application/sensml+cbor\":{\"source\":\"iana\"},\"application/sensml+json\":{\"source\":\"iana\",\"compressible\":true},\"application/sensml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/sensml-exi\":{\"source\":\"iana\"},\"application/sep+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/sep-exi\":{\"source\":\"iana\"},\"application/session-info\":{\"source\":\"iana\"},\"application/set-payment\":{\"source\":\"iana\"},\"application/set-payment-initiation\":{\"source\":\"iana\",\"extensions\":[\"setpay\"]},\"application/set-registration\":{\"source\":\"iana\"},\"application/set-registration-initiation\":{\"source\":\"iana\",\"extensions\":[\"setreg\"]},\"application/sgml\":{\"source\":\"iana\"},\"application/sgml-open-catalog\":{\"source\":\"iana\"},\"application/shf+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"shf\"]},\"application/sieve\":{\"source\":\"iana\",\"extensions\":[\"siv\",\"sieve\"]},\"application/simple-filter+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/simple-message-summary\":{\"source\":\"iana\"},\"application/simplesymbolcontainer\":{\"source\":\"iana\"},\"application/slate\":{\"source\":\"iana\"},\"application/smil\":{\"source\":\"iana\"},\"application/smil+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"smi\",\"smil\"]},\"application/smpte336m\":{\"source\":\"iana\"},\"application/soap+fastinfoset\":{\"source\":\"iana\"},\"application/soap+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/sparql-query\":{\"source\":\"iana\",\"extensions\":[\"rq\"]},\"application/sparql-results+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"srx\"]},\"application/spirits-event+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/sql\":{\"source\":\"iana\"},\"application/srgs\":{\"source\":\"iana\",\"extensions\":[\"gram\"]},\"application/srgs+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"grxml\"]},\"application/sru+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"sru\"]},\"application/ssdl+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"ssdl\"]},\"application/ssml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ssml\"]},\"application/stix+json\":{\"source\":\"iana\",\"compressible\":true},\"application/tamp-apex-update\":{\"source\":\"iana\"},\"application/tamp-apex-update-confirm\":{\"source\":\"iana\"},\"application/tamp-community-update\":{\"source\":\"iana\"},\"application/tamp-community-update-confirm\":{\"source\":\"iana\"},\"application/tamp-error\":{\"source\":\"iana\"},\"application/tamp-sequence-adjust\":{\"source\":\"iana\"},\"application/tamp-sequence-adjust-confirm\":{\"source\":\"iana\"},\"application/tamp-status-query\":{\"source\":\"iana\"},\"application/tamp-status-response\":{\"source\":\"iana\"},\"application/tamp-update\":{\"source\":\"iana\"},\"application/tamp-update-confirm\":{\"source\":\"iana\"},\"application/tar\":{\"compressible\":true},\"application/taxii+json\":{\"source\":\"iana\",\"compressible\":true},\"application/tei+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"tei\",\"teicorpus\"]},\"application/tetra_isi\":{\"source\":\"iana\"},\"application/thraud+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"tfi\"]},\"application/timestamp-query\":{\"source\":\"iana\"},\"application/timestamp-reply\":{\"source\":\"iana\"},\"application/timestamped-data\":{\"source\":\"iana\",\"extensions\":[\"tsd\"]},\"application/tlsrpt+gzip\":{\"source\":\"iana\"},\"application/tlsrpt+json\":{\"source\":\"iana\",\"compressible\":true},\"application/tnauthlist\":{\"source\":\"iana\"},\"application/trickle-ice-sdpfrag\":{\"source\":\"iana\"},\"application/trig\":{\"source\":\"iana\"},\"application/ttml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/tve-trigger\":{\"source\":\"iana\"},\"application/tzif\":{\"source\":\"iana\"},\"application/tzif-leap\":{\"source\":\"iana\"},\"application/ulpfec\":{\"source\":\"iana\"},\"application/urc-grpsheet+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/urc-ressheet+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/urc-targetdesc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/urc-uisocketdesc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vcard+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vcard+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vemmi\":{\"source\":\"iana\"},\"application/vividence.scriptfile\":{\"source\":\"apache\"},\"application/vnd.1000minds.decision-model+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp-prose+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp-prose-pc3ch+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp-v2x-local-service-information\":{\"source\":\"iana\"},\"application/vnd.3gpp.access-transfer-events+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.bsf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.gmop+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mc-signalling-ear\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcdata-affiliation-command+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcdata-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcdata-payload\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcdata-service-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcdata-signalling\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcdata-ue-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcdata-user-profile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-affiliation-command+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-floor-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-location-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-mbms-usage-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-service-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-signed+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-ue-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-ue-init-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-user-profile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-affiliation-command+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-affiliation-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-location-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-service-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-transmission-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-ue-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-user-profile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mid-call+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.pic-bw-large\":{\"source\":\"iana\",\"extensions\":[\"plb\"]},\"application/vnd.3gpp.pic-bw-small\":{\"source\":\"iana\",\"extensions\":[\"psb\"]},\"application/vnd.3gpp.pic-bw-var\":{\"source\":\"iana\",\"extensions\":[\"pvb\"]},\"application/vnd.3gpp.sms\":{\"source\":\"iana\"},\"application/vnd.3gpp.sms+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.srvcc-ext+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.srvcc-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.state-and-event-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.ussd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp2.bcmcsinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp2.sms\":{\"source\":\"iana\"},\"application/vnd.3gpp2.tcap\":{\"source\":\"iana\",\"extensions\":[\"tcap\"]},\"application/vnd.3lightssoftware.imagescal\":{\"source\":\"iana\"},\"application/vnd.3m.post-it-notes\":{\"source\":\"iana\",\"extensions\":[\"pwn\"]},\"application/vnd.accpac.simply.aso\":{\"source\":\"iana\",\"extensions\":[\"aso\"]},\"application/vnd.accpac.simply.imp\":{\"source\":\"iana\",\"extensions\":[\"imp\"]},\"application/vnd.acucobol\":{\"source\":\"iana\",\"extensions\":[\"acu\"]},\"application/vnd.acucorp\":{\"source\":\"iana\",\"extensions\":[\"atc\",\"acutc\"]},\"application/vnd.adobe.air-application-installer-package+zip\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"air\"]},\"application/vnd.adobe.flash.movie\":{\"source\":\"iana\"},\"application/vnd.adobe.formscentral.fcdt\":{\"source\":\"iana\",\"extensions\":[\"fcdt\"]},\"application/vnd.adobe.fxp\":{\"source\":\"iana\",\"extensions\":[\"fxp\",\"fxpl\"]},\"application/vnd.adobe.partial-upload\":{\"source\":\"iana\"},\"application/vnd.adobe.xdp+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xdp\"]},\"application/vnd.adobe.xfdf\":{\"source\":\"iana\",\"extensions\":[\"xfdf\"]},\"application/vnd.aether.imp\":{\"source\":\"iana\"},\"application/vnd.afpc.afplinedata\":{\"source\":\"iana\"},\"application/vnd.afpc.modca\":{\"source\":\"iana\"},\"application/vnd.ah-barcode\":{\"source\":\"iana\"},\"application/vnd.ahead.space\":{\"source\":\"iana\",\"extensions\":[\"ahead\"]},\"application/vnd.airzip.filesecure.azf\":{\"source\":\"iana\",\"extensions\":[\"azf\"]},\"application/vnd.airzip.filesecure.azs\":{\"source\":\"iana\",\"extensions\":[\"azs\"]},\"application/vnd.amadeus+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.amazon.ebook\":{\"source\":\"apache\",\"extensions\":[\"azw\"]},\"application/vnd.amazon.mobi8-ebook\":{\"source\":\"iana\"},\"application/vnd.americandynamics.acc\":{\"source\":\"iana\",\"extensions\":[\"acc\"]},\"application/vnd.amiga.ami\":{\"source\":\"iana\",\"extensions\":[\"ami\"]},\"application/vnd.amundsen.maze+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.android.package-archive\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"apk\"]},\"application/vnd.anki\":{\"source\":\"iana\"},\"application/vnd.anser-web-certificate-issue-initiation\":{\"source\":\"iana\",\"extensions\":[\"cii\"]},\"application/vnd.anser-web-funds-transfer-initiation\":{\"source\":\"apache\",\"extensions\":[\"fti\"]},\"application/vnd.antix.game-component\":{\"source\":\"iana\",\"extensions\":[\"atx\"]},\"application/vnd.apache.thrift.binary\":{\"source\":\"iana\"},\"application/vnd.apache.thrift.compact\":{\"source\":\"iana\"},\"application/vnd.apache.thrift.json\":{\"source\":\"iana\"},\"application/vnd.api+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.apothekende.reservation+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.apple.installer+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mpkg\"]},\"application/vnd.apple.keynote\":{\"source\":\"iana\",\"extensions\":[\"keynote\"]},\"application/vnd.apple.mpegurl\":{\"source\":\"iana\",\"extensions\":[\"m3u8\"]},\"application/vnd.apple.numbers\":{\"source\":\"iana\",\"extensions\":[\"numbers\"]},\"application/vnd.apple.pages\":{\"source\":\"iana\",\"extensions\":[\"pages\"]},\"application/vnd.apple.pkpass\":{\"compressible\":false,\"extensions\":[\"pkpass\"]},\"application/vnd.arastra.swi\":{\"source\":\"iana\"},\"application/vnd.aristanetworks.swi\":{\"source\":\"iana\",\"extensions\":[\"swi\"]},\"application/vnd.artisan+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.artsquare\":{\"source\":\"iana\"},\"application/vnd.astraea-software.iota\":{\"source\":\"iana\",\"extensions\":[\"iota\"]},\"application/vnd.audiograph\":{\"source\":\"iana\",\"extensions\":[\"aep\"]},\"application/vnd.autopackage\":{\"source\":\"iana\"},\"application/vnd.avalon+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.avistar+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.balsamiq.bmml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.balsamiq.bmpr\":{\"source\":\"iana\"},\"application/vnd.banana-accounting\":{\"source\":\"iana\"},\"application/vnd.bbf.usp.msg\":{\"source\":\"iana\"},\"application/vnd.bbf.usp.msg+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.bekitzur-stech+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.bint.med-content\":{\"source\":\"iana\"},\"application/vnd.biopax.rdf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.blink-idb-value-wrapper\":{\"source\":\"iana\"},\"application/vnd.blueice.multipass\":{\"source\":\"iana\",\"extensions\":[\"mpm\"]},\"application/vnd.bluetooth.ep.oob\":{\"source\":\"iana\"},\"application/vnd.bluetooth.le.oob\":{\"source\":\"iana\"},\"application/vnd.bmi\":{\"source\":\"iana\",\"extensions\":[\"bmi\"]},\"application/vnd.businessobjects\":{\"source\":\"iana\",\"extensions\":[\"rep\"]},\"application/vnd.byu.uapi+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cab-jscript\":{\"source\":\"iana\"},\"application/vnd.canon-cpdl\":{\"source\":\"iana\"},\"application/vnd.canon-lips\":{\"source\":\"iana\"},\"application/vnd.capasystems-pg+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cendio.thinlinc.clientconf\":{\"source\":\"iana\"},\"application/vnd.century-systems.tcp_stream\":{\"source\":\"iana\"},\"application/vnd.chemdraw+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"cdxml\"]},\"application/vnd.chess-pgn\":{\"source\":\"iana\"},\"application/vnd.chipnuts.karaoke-mmd\":{\"source\":\"iana\",\"extensions\":[\"mmd\"]},\"application/vnd.cinderella\":{\"source\":\"iana\",\"extensions\":[\"cdy\"]},\"application/vnd.cirpack.isdn-ext\":{\"source\":\"iana\"},\"application/vnd.citationstyles.style+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"csl\"]},\"application/vnd.claymore\":{\"source\":\"iana\",\"extensions\":[\"cla\"]},\"application/vnd.cloanto.rp9\":{\"source\":\"iana\",\"extensions\":[\"rp9\"]},\"application/vnd.clonk.c4group\":{\"source\":\"iana\",\"extensions\":[\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]},\"application/vnd.cluetrust.cartomobile-config\":{\"source\":\"iana\",\"extensions\":[\"c11amc\"]},\"application/vnd.cluetrust.cartomobile-config-pkg\":{\"source\":\"iana\",\"extensions\":[\"c11amz\"]},\"application/vnd.coffeescript\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.document\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.document-template\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.presentation\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.presentation-template\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.spreadsheet\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.spreadsheet-template\":{\"source\":\"iana\"},\"application/vnd.collection+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.collection.doc+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.collection.next+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.comicbook+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.comicbook-rar\":{\"source\":\"iana\"},\"application/vnd.commerce-battelle\":{\"source\":\"iana\"},\"application/vnd.commonspace\":{\"source\":\"iana\",\"extensions\":[\"csp\"]},\"application/vnd.contact.cmsg\":{\"source\":\"iana\",\"extensions\":[\"cdbcmsg\"]},\"application/vnd.coreos.ignition+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cosmocaller\":{\"source\":\"iana\",\"extensions\":[\"cmc\"]},\"application/vnd.crick.clicker\":{\"source\":\"iana\",\"extensions\":[\"clkx\"]},\"application/vnd.crick.clicker.keyboard\":{\"source\":\"iana\",\"extensions\":[\"clkk\"]},\"application/vnd.crick.clicker.palette\":{\"source\":\"iana\",\"extensions\":[\"clkp\"]},\"application/vnd.crick.clicker.template\":{\"source\":\"iana\",\"extensions\":[\"clkt\"]},\"application/vnd.crick.clicker.wordbank\":{\"source\":\"iana\",\"extensions\":[\"clkw\"]},\"application/vnd.criticaltools.wbs+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"wbs\"]},\"application/vnd.ctc-posml\":{\"source\":\"iana\",\"extensions\":[\"pml\"]},\"application/vnd.ctct.ws+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cups-pdf\":{\"source\":\"iana\"},\"application/vnd.cups-postscript\":{\"source\":\"iana\"},\"application/vnd.cups-ppd\":{\"source\":\"iana\",\"extensions\":[\"ppd\"]},\"application/vnd.cups-raster\":{\"source\":\"iana\"},\"application/vnd.cups-raw\":{\"source\":\"iana\"},\"application/vnd.curl\":{\"source\":\"iana\"},\"application/vnd.curl.car\":{\"source\":\"apache\",\"extensions\":[\"car\"]},\"application/vnd.curl.pcurl\":{\"source\":\"apache\",\"extensions\":[\"pcurl\"]},\"application/vnd.cyan.dean.root+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cybank\":{\"source\":\"iana\"},\"application/vnd.d2l.coursepackage1p0+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.dart\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dart\"]},\"application/vnd.data-vision.rdz\":{\"source\":\"iana\",\"extensions\":[\"rdz\"]},\"application/vnd.datapackage+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dataresource+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.debian.binary-package\":{\"source\":\"iana\"},\"application/vnd.dece.data\":{\"source\":\"iana\",\"extensions\":[\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]},\"application/vnd.dece.ttml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"uvt\",\"uvvt\"]},\"application/vnd.dece.unspecified\":{\"source\":\"iana\",\"extensions\":[\"uvx\",\"uvvx\"]},\"application/vnd.dece.zip\":{\"source\":\"iana\",\"extensions\":[\"uvz\",\"uvvz\"]},\"application/vnd.denovo.fcselayout-link\":{\"source\":\"iana\",\"extensions\":[\"fe_launch\"]},\"application/vnd.desmume.movie\":{\"source\":\"iana\"},\"application/vnd.dir-bi.plate-dl-nosuffix\":{\"source\":\"iana\"},\"application/vnd.dm.delegation+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dna\":{\"source\":\"iana\",\"extensions\":[\"dna\"]},\"application/vnd.document+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dolby.mlp\":{\"source\":\"apache\",\"extensions\":[\"mlp\"]},\"application/vnd.dolby.mobile.1\":{\"source\":\"iana\"},\"application/vnd.dolby.mobile.2\":{\"source\":\"iana\"},\"application/vnd.doremir.scorecloud-binary-document\":{\"source\":\"iana\"},\"application/vnd.dpgraph\":{\"source\":\"iana\",\"extensions\":[\"dpg\"]},\"application/vnd.dreamfactory\":{\"source\":\"iana\",\"extensions\":[\"dfac\"]},\"application/vnd.drive+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ds-keypoint\":{\"source\":\"apache\",\"extensions\":[\"kpxx\"]},\"application/vnd.dtg.local\":{\"source\":\"iana\"},\"application/vnd.dtg.local.flash\":{\"source\":\"iana\"},\"application/vnd.dtg.local.html\":{\"source\":\"iana\"},\"application/vnd.dvb.ait\":{\"source\":\"iana\",\"extensions\":[\"ait\"]},\"application/vnd.dvb.dvbj\":{\"source\":\"iana\"},\"application/vnd.dvb.esgcontainer\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcdftnotifaccess\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcesgaccess\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcesgaccess2\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcesgpdd\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcroaming\":{\"source\":\"iana\"},\"application/vnd.dvb.iptv.alfec-base\":{\"source\":\"iana\"},\"application/vnd.dvb.iptv.alfec-enhancement\":{\"source\":\"iana\"},\"application/vnd.dvb.notif-aggregate-root+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-container+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-generic+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-ia-msglist+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-ia-registration-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-ia-registration-response+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-init+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.pfr\":{\"source\":\"iana\"},\"application/vnd.dvb.service\":{\"source\":\"iana\",\"extensions\":[\"svc\"]},\"application/vnd.dxr\":{\"source\":\"iana\"},\"application/vnd.dynageo\":{\"source\":\"iana\",\"extensions\":[\"geo\"]},\"application/vnd.dzr\":{\"source\":\"iana\"},\"application/vnd.easykaraoke.cdgdownload\":{\"source\":\"iana\"},\"application/vnd.ecdis-update\":{\"source\":\"iana\"},\"application/vnd.ecip.rlp\":{\"source\":\"iana\"},\"application/vnd.ecowin.chart\":{\"source\":\"iana\",\"extensions\":[\"mag\"]},\"application/vnd.ecowin.filerequest\":{\"source\":\"iana\"},\"application/vnd.ecowin.fileupdate\":{\"source\":\"iana\"},\"application/vnd.ecowin.series\":{\"source\":\"iana\"},\"application/vnd.ecowin.seriesrequest\":{\"source\":\"iana\"},\"application/vnd.ecowin.seriesupdate\":{\"source\":\"iana\"},\"application/vnd.efi.img\":{\"source\":\"iana\"},\"application/vnd.efi.iso\":{\"source\":\"iana\"},\"application/vnd.emclient.accessrequest+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.enliven\":{\"source\":\"iana\",\"extensions\":[\"nml\"]},\"application/vnd.enphase.envoy\":{\"source\":\"iana\"},\"application/vnd.eprints.data+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.epson.esf\":{\"source\":\"iana\",\"extensions\":[\"esf\"]},\"application/vnd.epson.msf\":{\"source\":\"iana\",\"extensions\":[\"msf\"]},\"application/vnd.epson.quickanime\":{\"source\":\"iana\",\"extensions\":[\"qam\"]},\"application/vnd.epson.salt\":{\"source\":\"iana\",\"extensions\":[\"slt\"]},\"application/vnd.epson.ssf\":{\"source\":\"iana\",\"extensions\":[\"ssf\"]},\"application/vnd.ericsson.quickcall\":{\"source\":\"iana\"},\"application/vnd.espass-espass+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.eszigno3+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"es3\",\"et3\"]},\"application/vnd.etsi.aoc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.asic-e+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.etsi.asic-s+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.etsi.cug+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvcommand+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvdiscovery+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvprofile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvsad-bc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvsad-cod+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvsad-npvr+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvservice+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvsync+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvueprofile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.mcid+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.mheg5\":{\"source\":\"iana\"},\"application/vnd.etsi.overload-control-policy-dataset+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.pstn+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.sci+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.simservs+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.timestamp-token\":{\"source\":\"iana\"},\"application/vnd.etsi.tsl+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.tsl.der\":{\"source\":\"iana\"},\"application/vnd.eudora.data\":{\"source\":\"iana\"},\"application/vnd.evolv.ecig.profile\":{\"source\":\"iana\"},\"application/vnd.evolv.ecig.settings\":{\"source\":\"iana\"},\"application/vnd.evolv.ecig.theme\":{\"source\":\"iana\"},\"application/vnd.exstream-empower+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.exstream-package\":{\"source\":\"iana\"},\"application/vnd.ezpix-album\":{\"source\":\"iana\",\"extensions\":[\"ez2\"]},\"application/vnd.ezpix-package\":{\"source\":\"iana\",\"extensions\":[\"ez3\"]},\"application/vnd.f-secure.mobile\":{\"source\":\"iana\"},\"application/vnd.fastcopy-disk-image\":{\"source\":\"iana\"},\"application/vnd.fdf\":{\"source\":\"iana\",\"extensions\":[\"fdf\"]},\"application/vnd.fdsn.mseed\":{\"source\":\"iana\",\"extensions\":[\"mseed\"]},\"application/vnd.fdsn.seed\":{\"source\":\"iana\",\"extensions\":[\"seed\",\"dataless\"]},\"application/vnd.ffsns\":{\"source\":\"iana\"},\"application/vnd.filmit.zfc\":{\"source\":\"iana\"},\"application/vnd.fints\":{\"source\":\"iana\"},\"application/vnd.firemonkeys.cloudcell\":{\"source\":\"iana\"},\"application/vnd.flographit\":{\"source\":\"iana\",\"extensions\":[\"gph\"]},\"application/vnd.fluxtime.clip\":{\"source\":\"iana\",\"extensions\":[\"ftc\"]},\"application/vnd.font-fontforge-sfd\":{\"source\":\"iana\"},\"application/vnd.framemaker\":{\"source\":\"iana\",\"extensions\":[\"fm\",\"frame\",\"maker\",\"book\"]},\"application/vnd.frogans.fnc\":{\"source\":\"iana\",\"extensions\":[\"fnc\"]},\"application/vnd.frogans.ltf\":{\"source\":\"iana\",\"extensions\":[\"ltf\"]},\"application/vnd.fsc.weblaunch\":{\"source\":\"iana\",\"extensions\":[\"fsc\"]},\"application/vnd.fujitsu.oasys\":{\"source\":\"iana\",\"extensions\":[\"oas\"]},\"application/vnd.fujitsu.oasys2\":{\"source\":\"iana\",\"extensions\":[\"oa2\"]},\"application/vnd.fujitsu.oasys3\":{\"source\":\"iana\",\"extensions\":[\"oa3\"]},\"application/vnd.fujitsu.oasysgp\":{\"source\":\"iana\",\"extensions\":[\"fg5\"]},\"application/vnd.fujitsu.oasysprs\":{\"source\":\"iana\",\"extensions\":[\"bh2\"]},\"application/vnd.fujixerox.art-ex\":{\"source\":\"iana\"},\"application/vnd.fujixerox.art4\":{\"source\":\"iana\"},\"application/vnd.fujixerox.ddd\":{\"source\":\"iana\",\"extensions\":[\"ddd\"]},\"application/vnd.fujixerox.docuworks\":{\"source\":\"iana\",\"extensions\":[\"xdw\"]},\"application/vnd.fujixerox.docuworks.binder\":{\"source\":\"iana\",\"extensions\":[\"xbd\"]},\"application/vnd.fujixerox.docuworks.container\":{\"source\":\"iana\"},\"application/vnd.fujixerox.hbpl\":{\"source\":\"iana\"},\"application/vnd.fut-misnet\":{\"source\":\"iana\"},\"application/vnd.futoin+cbor\":{\"source\":\"iana\"},\"application/vnd.futoin+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.fuzzysheet\":{\"source\":\"iana\",\"extensions\":[\"fzs\"]},\"application/vnd.genomatix.tuxedo\":{\"source\":\"iana\",\"extensions\":[\"txd\"]},\"application/vnd.geo+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.geocube+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.geogebra.file\":{\"source\":\"iana\",\"extensions\":[\"ggb\"]},\"application/vnd.geogebra.tool\":{\"source\":\"iana\",\"extensions\":[\"ggt\"]},\"application/vnd.geometry-explorer\":{\"source\":\"iana\",\"extensions\":[\"gex\",\"gre\"]},\"application/vnd.geonext\":{\"source\":\"iana\",\"extensions\":[\"gxt\"]},\"application/vnd.geoplan\":{\"source\":\"iana\",\"extensions\":[\"g2w\"]},\"application/vnd.geospace\":{\"source\":\"iana\",\"extensions\":[\"g3w\"]},\"application/vnd.gerber\":{\"source\":\"iana\"},\"application/vnd.globalplatform.card-content-mgt\":{\"source\":\"iana\"},\"application/vnd.globalplatform.card-content-mgt-response\":{\"source\":\"iana\"},\"application/vnd.gmx\":{\"source\":\"iana\",\"extensions\":[\"gmx\"]},\"application/vnd.google-apps.document\":{\"compressible\":false,\"extensions\":[\"gdoc\"]},\"application/vnd.google-apps.presentation\":{\"compressible\":false,\"extensions\":[\"gslides\"]},\"application/vnd.google-apps.spreadsheet\":{\"compressible\":false,\"extensions\":[\"gsheet\"]},\"application/vnd.google-earth.kml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"kml\"]},\"application/vnd.google-earth.kmz\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"kmz\"]},\"application/vnd.gov.sk.e-form+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.gov.sk.e-form+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.gov.sk.xmldatacontainer+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.grafeq\":{\"source\":\"iana\",\"extensions\":[\"gqf\",\"gqs\"]},\"application/vnd.gridmp\":{\"source\":\"iana\"},\"application/vnd.groove-account\":{\"source\":\"iana\",\"extensions\":[\"gac\"]},\"application/vnd.groove-help\":{\"source\":\"iana\",\"extensions\":[\"ghf\"]},\"application/vnd.groove-identity-message\":{\"source\":\"iana\",\"extensions\":[\"gim\"]},\"application/vnd.groove-injector\":{\"source\":\"iana\",\"extensions\":[\"grv\"]},\"application/vnd.groove-tool-message\":{\"source\":\"iana\",\"extensions\":[\"gtm\"]},\"application/vnd.groove-tool-template\":{\"source\":\"iana\",\"extensions\":[\"tpl\"]},\"application/vnd.groove-vcard\":{\"source\":\"iana\",\"extensions\":[\"vcg\"]},\"application/vnd.hal+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hal+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"hal\"]},\"application/vnd.handheld-entertainment+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"zmm\"]},\"application/vnd.hbci\":{\"source\":\"iana\",\"extensions\":[\"hbci\"]},\"application/vnd.hc+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hcl-bireports\":{\"source\":\"iana\"},\"application/vnd.hdt\":{\"source\":\"iana\"},\"application/vnd.heroku+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hhe.lesson-player\":{\"source\":\"iana\",\"extensions\":[\"les\"]},\"application/vnd.hp-hpgl\":{\"source\":\"iana\",\"extensions\":[\"hpgl\"]},\"application/vnd.hp-hpid\":{\"source\":\"iana\",\"extensions\":[\"hpid\"]},\"application/vnd.hp-hps\":{\"source\":\"iana\",\"extensions\":[\"hps\"]},\"application/vnd.hp-jlyt\":{\"source\":\"iana\",\"extensions\":[\"jlt\"]},\"application/vnd.hp-pcl\":{\"source\":\"iana\",\"extensions\":[\"pcl\"]},\"application/vnd.hp-pclxl\":{\"source\":\"iana\",\"extensions\":[\"pclxl\"]},\"application/vnd.httphone\":{\"source\":\"iana\"},\"application/vnd.hydrostatix.sof-data\":{\"source\":\"iana\",\"extensions\":[\"sfd-hdstx\"]},\"application/vnd.hyper+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hyper-item+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hyperdrive+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hzn-3d-crossword\":{\"source\":\"iana\"},\"application/vnd.ibm.afplinedata\":{\"source\":\"iana\"},\"application/vnd.ibm.electronic-media\":{\"source\":\"iana\"},\"application/vnd.ibm.minipay\":{\"source\":\"iana\",\"extensions\":[\"mpy\"]},\"application/vnd.ibm.modcap\":{\"source\":\"iana\",\"extensions\":[\"afp\",\"listafp\",\"list3820\"]},\"application/vnd.ibm.rights-management\":{\"source\":\"iana\",\"extensions\":[\"irm\"]},\"application/vnd.ibm.secure-container\":{\"source\":\"iana\",\"extensions\":[\"sc\"]},\"application/vnd.iccprofile\":{\"source\":\"iana\",\"extensions\":[\"icc\",\"icm\"]},\"application/vnd.ieee.1905\":{\"source\":\"iana\"},\"application/vnd.igloader\":{\"source\":\"iana\",\"extensions\":[\"igl\"]},\"application/vnd.imagemeter.folder+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.imagemeter.image+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.immervision-ivp\":{\"source\":\"iana\",\"extensions\":[\"ivp\"]},\"application/vnd.immervision-ivu\":{\"source\":\"iana\",\"extensions\":[\"ivu\"]},\"application/vnd.ims.imsccv1p1\":{\"source\":\"iana\"},\"application/vnd.ims.imsccv1p2\":{\"source\":\"iana\"},\"application/vnd.ims.imsccv1p3\":{\"source\":\"iana\"},\"application/vnd.ims.lis.v2.result+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolconsumerprofile+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolproxy+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolproxy.id+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolsettings+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolsettings.simple+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.informedcontrol.rms+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.informix-visionary\":{\"source\":\"iana\"},\"application/vnd.infotech.project\":{\"source\":\"iana\"},\"application/vnd.infotech.project+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.innopath.wamp.notification\":{\"source\":\"iana\"},\"application/vnd.insors.igm\":{\"source\":\"iana\",\"extensions\":[\"igm\"]},\"application/vnd.intercon.formnet\":{\"source\":\"iana\",\"extensions\":[\"xpw\",\"xpx\"]},\"application/vnd.intergeo\":{\"source\":\"iana\",\"extensions\":[\"i2g\"]},\"application/vnd.intertrust.digibox\":{\"source\":\"iana\"},\"application/vnd.intertrust.nncp\":{\"source\":\"iana\"},\"application/vnd.intu.qbo\":{\"source\":\"iana\",\"extensions\":[\"qbo\"]},\"application/vnd.intu.qfx\":{\"source\":\"iana\",\"extensions\":[\"qfx\"]},\"application/vnd.iptc.g2.catalogitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.conceptitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.knowledgeitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.newsitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.newsmessage+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.packageitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.planningitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ipunplugged.rcprofile\":{\"source\":\"iana\",\"extensions\":[\"rcprofile\"]},\"application/vnd.irepository.package+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"irp\"]},\"application/vnd.is-xpr\":{\"source\":\"iana\",\"extensions\":[\"xpr\"]},\"application/vnd.isac.fcs\":{\"source\":\"iana\",\"extensions\":[\"fcs\"]},\"application/vnd.jam\":{\"source\":\"iana\",\"extensions\":[\"jam\"]},\"application/vnd.japannet-directory-service\":{\"source\":\"iana\"},\"application/vnd.japannet-jpnstore-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-payment-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-registration\":{\"source\":\"iana\"},\"application/vnd.japannet-registration-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-setstore-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-verification\":{\"source\":\"iana\"},\"application/vnd.japannet-verification-wakeup\":{\"source\":\"iana\"},\"application/vnd.jcp.javame.midlet-rms\":{\"source\":\"iana\",\"extensions\":[\"rms\"]},\"application/vnd.jisp\":{\"source\":\"iana\",\"extensions\":[\"jisp\"]},\"application/vnd.joost.joda-archive\":{\"source\":\"iana\",\"extensions\":[\"joda\"]},\"application/vnd.jsk.isdn-ngn\":{\"source\":\"iana\"},\"application/vnd.kahootz\":{\"source\":\"iana\",\"extensions\":[\"ktz\",\"ktr\"]},\"application/vnd.kde.karbon\":{\"source\":\"iana\",\"extensions\":[\"karbon\"]},\"application/vnd.kde.kchart\":{\"source\":\"iana\",\"extensions\":[\"chrt\"]},\"application/vnd.kde.kformula\":{\"source\":\"iana\",\"extensions\":[\"kfo\"]},\"application/vnd.kde.kivio\":{\"source\":\"iana\",\"extensions\":[\"flw\"]},\"application/vnd.kde.kontour\":{\"source\":\"iana\",\"extensions\":[\"kon\"]},\"application/vnd.kde.kpresenter\":{\"source\":\"iana\",\"extensions\":[\"kpr\",\"kpt\"]},\"application/vnd.kde.kspread\":{\"source\":\"iana\",\"extensions\":[\"ksp\"]},\"application/vnd.kde.kword\":{\"source\":\"iana\",\"extensions\":[\"kwd\",\"kwt\"]},\"application/vnd.kenameaapp\":{\"source\":\"iana\",\"extensions\":[\"htke\"]},\"application/vnd.kidspiration\":{\"source\":\"iana\",\"extensions\":[\"kia\"]},\"application/vnd.kinar\":{\"source\":\"iana\",\"extensions\":[\"kne\",\"knp\"]},\"application/vnd.koan\":{\"source\":\"iana\",\"extensions\":[\"skp\",\"skd\",\"skt\",\"skm\"]},\"application/vnd.kodak-descriptor\":{\"source\":\"iana\",\"extensions\":[\"sse\"]},\"application/vnd.las.las+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.las.las+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"lasxml\"]},\"application/vnd.leap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.liberty-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.llamagraphics.life-balance.desktop\":{\"source\":\"iana\",\"extensions\":[\"lbd\"]},\"application/vnd.llamagraphics.life-balance.exchange+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"lbe\"]},\"application/vnd.lotus-1-2-3\":{\"source\":\"iana\",\"extensions\":[\"123\"]},\"application/vnd.lotus-approach\":{\"source\":\"iana\",\"extensions\":[\"apr\"]},\"application/vnd.lotus-freelance\":{\"source\":\"iana\",\"extensions\":[\"pre\"]},\"application/vnd.lotus-notes\":{\"source\":\"iana\",\"extensions\":[\"nsf\"]},\"application/vnd.lotus-organizer\":{\"source\":\"iana\",\"extensions\":[\"org\"]},\"application/vnd.lotus-screencam\":{\"source\":\"iana\",\"extensions\":[\"scm\"]},\"application/vnd.lotus-wordpro\":{\"source\":\"iana\",\"extensions\":[\"lwp\"]},\"application/vnd.macports.portpkg\":{\"source\":\"iana\",\"extensions\":[\"portpkg\"]},\"application/vnd.mapbox-vector-tile\":{\"source\":\"iana\"},\"application/vnd.marlin.drm.actiontoken+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.marlin.drm.conftoken+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.marlin.drm.license+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.marlin.drm.mdcf\":{\"source\":\"iana\"},\"application/vnd.mason+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.maxmind.maxmind-db\":{\"source\":\"iana\"},\"application/vnd.mcd\":{\"source\":\"iana\",\"extensions\":[\"mcd\"]},\"application/vnd.medcalcdata\":{\"source\":\"iana\",\"extensions\":[\"mc1\"]},\"application/vnd.mediastation.cdkey\":{\"source\":\"iana\",\"extensions\":[\"cdkey\"]},\"application/vnd.meridian-slingshot\":{\"source\":\"iana\"},\"application/vnd.mfer\":{\"source\":\"iana\",\"extensions\":[\"mwf\"]},\"application/vnd.mfmp\":{\"source\":\"iana\",\"extensions\":[\"mfm\"]},\"application/vnd.micro+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.micrografx.flo\":{\"source\":\"iana\",\"extensions\":[\"flo\"]},\"application/vnd.micrografx.igx\":{\"source\":\"iana\",\"extensions\":[\"igx\"]},\"application/vnd.microsoft.portable-executable\":{\"source\":\"iana\"},\"application/vnd.microsoft.windows.thumbnail-cache\":{\"source\":\"iana\"},\"application/vnd.miele+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.mif\":{\"source\":\"iana\",\"extensions\":[\"mif\"]},\"application/vnd.minisoft-hp3000-save\":{\"source\":\"iana\"},\"application/vnd.mitsubishi.misty-guard.trustweb\":{\"source\":\"iana\"},\"application/vnd.mobius.daf\":{\"source\":\"iana\",\"extensions\":[\"daf\"]},\"application/vnd.mobius.dis\":{\"source\":\"iana\",\"extensions\":[\"dis\"]},\"application/vnd.mobius.mbk\":{\"source\":\"iana\",\"extensions\":[\"mbk\"]},\"application/vnd.mobius.mqy\":{\"source\":\"iana\",\"extensions\":[\"mqy\"]},\"application/vnd.mobius.msl\":{\"source\":\"iana\",\"extensions\":[\"msl\"]},\"application/vnd.mobius.plc\":{\"source\":\"iana\",\"extensions\":[\"plc\"]},\"application/vnd.mobius.txf\":{\"source\":\"iana\",\"extensions\":[\"txf\"]},\"application/vnd.mophun.application\":{\"source\":\"iana\",\"extensions\":[\"mpn\"]},\"application/vnd.mophun.certificate\":{\"source\":\"iana\",\"extensions\":[\"mpc\"]},\"application/vnd.motorola.flexsuite\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.adsi\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.fis\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.gotap\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.kmr\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.ttc\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.wem\":{\"source\":\"iana\"},\"application/vnd.motorola.iprm\":{\"source\":\"iana\"},\"application/vnd.mozilla.xul+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xul\"]},\"application/vnd.ms-3mfdocument\":{\"source\":\"iana\"},\"application/vnd.ms-artgalry\":{\"source\":\"iana\",\"extensions\":[\"cil\"]},\"application/vnd.ms-asf\":{\"source\":\"iana\"},\"application/vnd.ms-cab-compressed\":{\"source\":\"iana\",\"extensions\":[\"cab\"]},\"application/vnd.ms-color.iccprofile\":{\"source\":\"apache\"},\"application/vnd.ms-excel\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]},\"application/vnd.ms-excel.addin.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xlam\"]},\"application/vnd.ms-excel.sheet.binary.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xlsb\"]},\"application/vnd.ms-excel.sheet.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xlsm\"]},\"application/vnd.ms-excel.template.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xltm\"]},\"application/vnd.ms-fontobject\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"eot\"]},\"application/vnd.ms-htmlhelp\":{\"source\":\"iana\",\"extensions\":[\"chm\"]},\"application/vnd.ms-ims\":{\"source\":\"iana\",\"extensions\":[\"ims\"]},\"application/vnd.ms-lrm\":{\"source\":\"iana\",\"extensions\":[\"lrm\"]},\"application/vnd.ms-office.activex+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ms-officetheme\":{\"source\":\"iana\",\"extensions\":[\"thmx\"]},\"application/vnd.ms-opentype\":{\"source\":\"apache\",\"compressible\":true},\"application/vnd.ms-outlook\":{\"compressible\":false,\"extensions\":[\"msg\"]},\"application/vnd.ms-package.obfuscated-opentype\":{\"source\":\"apache\"},\"application/vnd.ms-pki.seccat\":{\"source\":\"apache\",\"extensions\":[\"cat\"]},\"application/vnd.ms-pki.stl\":{\"source\":\"apache\",\"extensions\":[\"stl\"]},\"application/vnd.ms-playready.initiator+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ms-powerpoint\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ppt\",\"pps\",\"pot\"]},\"application/vnd.ms-powerpoint.addin.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"ppam\"]},\"application/vnd.ms-powerpoint.presentation.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"pptm\"]},\"application/vnd.ms-powerpoint.slide.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"sldm\"]},\"application/vnd.ms-powerpoint.slideshow.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"ppsm\"]},\"application/vnd.ms-powerpoint.template.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"potm\"]},\"application/vnd.ms-printdevicecapabilities+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ms-printing.printticket+xml\":{\"source\":\"apache\",\"compressible\":true},\"application/vnd.ms-printschematicket+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ms-project\":{\"source\":\"iana\",\"extensions\":[\"mpp\",\"mpt\"]},\"application/vnd.ms-tnef\":{\"source\":\"iana\"},\"application/vnd.ms-windows.devicepairing\":{\"source\":\"iana\"},\"application/vnd.ms-windows.nwprinting.oob\":{\"source\":\"iana\"},\"application/vnd.ms-windows.printerpairing\":{\"source\":\"iana\"},\"application/vnd.ms-windows.wsd.oob\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.lic-chlg-req\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.lic-resp\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.meter-chlg-req\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.meter-resp\":{\"source\":\"iana\"},\"application/vnd.ms-word.document.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"docm\"]},\"application/vnd.ms-word.template.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"dotm\"]},\"application/vnd.ms-works\":{\"source\":\"iana\",\"extensions\":[\"wps\",\"wks\",\"wcm\",\"wdb\"]},\"application/vnd.ms-wpl\":{\"source\":\"iana\",\"extensions\":[\"wpl\"]},\"application/vnd.ms-xpsdocument\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"xps\"]},\"application/vnd.msa-disk-image\":{\"source\":\"iana\"},\"application/vnd.mseq\":{\"source\":\"iana\",\"extensions\":[\"mseq\"]},\"application/vnd.msign\":{\"source\":\"iana\"},\"application/vnd.multiad.creator\":{\"source\":\"iana\"},\"application/vnd.multiad.creator.cif\":{\"source\":\"iana\"},\"application/vnd.music-niff\":{\"source\":\"iana\"},\"application/vnd.musician\":{\"source\":\"iana\",\"extensions\":[\"mus\"]},\"application/vnd.muvee.style\":{\"source\":\"iana\",\"extensions\":[\"msty\"]},\"application/vnd.mynfc\":{\"source\":\"iana\",\"extensions\":[\"taglet\"]},\"application/vnd.ncd.control\":{\"source\":\"iana\"},\"application/vnd.ncd.reference\":{\"source\":\"iana\"},\"application/vnd.nearst.inv+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nervana\":{\"source\":\"iana\"},\"application/vnd.netfpx\":{\"source\":\"iana\"},\"application/vnd.neurolanguage.nlu\":{\"source\":\"iana\",\"extensions\":[\"nlu\"]},\"application/vnd.nimn\":{\"source\":\"iana\"},\"application/vnd.nintendo.nitro.rom\":{\"source\":\"iana\"},\"application/vnd.nintendo.snes.rom\":{\"source\":\"iana\"},\"application/vnd.nitf\":{\"source\":\"iana\",\"extensions\":[\"ntf\",\"nitf\"]},\"application/vnd.noblenet-directory\":{\"source\":\"iana\",\"extensions\":[\"nnd\"]},\"application/vnd.noblenet-sealer\":{\"source\":\"iana\",\"extensions\":[\"nns\"]},\"application/vnd.noblenet-web\":{\"source\":\"iana\",\"extensions\":[\"nnw\"]},\"application/vnd.nokia.catalogs\":{\"source\":\"iana\"},\"application/vnd.nokia.conml+wbxml\":{\"source\":\"iana\"},\"application/vnd.nokia.conml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.iptv.config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.isds-radio-presets\":{\"source\":\"iana\"},\"application/vnd.nokia.landmark+wbxml\":{\"source\":\"iana\"},\"application/vnd.nokia.landmark+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.landmarkcollection+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.n-gage.ac+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.n-gage.data\":{\"source\":\"iana\",\"extensions\":[\"ngdat\"]},\"application/vnd.nokia.n-gage.symbian.install\":{\"source\":\"iana\",\"extensions\":[\"n-gage\"]},\"application/vnd.nokia.ncd\":{\"source\":\"iana\"},\"application/vnd.nokia.pcd+wbxml\":{\"source\":\"iana\"},\"application/vnd.nokia.pcd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.radio-preset\":{\"source\":\"iana\",\"extensions\":[\"rpst\"]},\"application/vnd.nokia.radio-presets\":{\"source\":\"iana\",\"extensions\":[\"rpss\"]},\"application/vnd.novadigm.edm\":{\"source\":\"iana\",\"extensions\":[\"edm\"]},\"application/vnd.novadigm.edx\":{\"source\":\"iana\",\"extensions\":[\"edx\"]},\"application/vnd.novadigm.ext\":{\"source\":\"iana\",\"extensions\":[\"ext\"]},\"application/vnd.ntt-local.content-share\":{\"source\":\"iana\"},\"application/vnd.ntt-local.file-transfer\":{\"source\":\"iana\"},\"application/vnd.ntt-local.ogw_remote-access\":{\"source\":\"iana\"},\"application/vnd.ntt-local.sip-ta_remote\":{\"source\":\"iana\"},\"application/vnd.ntt-local.sip-ta_tcp_stream\":{\"source\":\"iana\"},\"application/vnd.oasis.opendocument.chart\":{\"source\":\"iana\",\"extensions\":[\"odc\"]},\"application/vnd.oasis.opendocument.chart-template\":{\"source\":\"iana\",\"extensions\":[\"otc\"]},\"application/vnd.oasis.opendocument.database\":{\"source\":\"iana\",\"extensions\":[\"odb\"]},\"application/vnd.oasis.opendocument.formula\":{\"source\":\"iana\",\"extensions\":[\"odf\"]},\"application/vnd.oasis.opendocument.formula-template\":{\"source\":\"iana\",\"extensions\":[\"odft\"]},\"application/vnd.oasis.opendocument.graphics\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"odg\"]},\"application/vnd.oasis.opendocument.graphics-template\":{\"source\":\"iana\",\"extensions\":[\"otg\"]},\"application/vnd.oasis.opendocument.image\":{\"source\":\"iana\",\"extensions\":[\"odi\"]},\"application/vnd.oasis.opendocument.image-template\":{\"source\":\"iana\",\"extensions\":[\"oti\"]},\"application/vnd.oasis.opendocument.presentation\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"odp\"]},\"application/vnd.oasis.opendocument.presentation-template\":{\"source\":\"iana\",\"extensions\":[\"otp\"]},\"application/vnd.oasis.opendocument.spreadsheet\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ods\"]},\"application/vnd.oasis.opendocument.spreadsheet-template\":{\"source\":\"iana\",\"extensions\":[\"ots\"]},\"application/vnd.oasis.opendocument.text\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"odt\"]},\"application/vnd.oasis.opendocument.text-master\":{\"source\":\"iana\",\"extensions\":[\"odm\"]},\"application/vnd.oasis.opendocument.text-template\":{\"source\":\"iana\",\"extensions\":[\"ott\"]},\"application/vnd.oasis.opendocument.text-web\":{\"source\":\"iana\",\"extensions\":[\"oth\"]},\"application/vnd.obn\":{\"source\":\"iana\"},\"application/vnd.ocf+cbor\":{\"source\":\"iana\"},\"application/vnd.oftn.l10n+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.contentaccessdownload+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.contentaccessstreaming+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.cspg-hexbinary\":{\"source\":\"iana\"},\"application/vnd.oipf.dae.svg+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.dae.xhtml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.mippvcontrolmessage+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.pae.gem\":{\"source\":\"iana\"},\"application/vnd.oipf.spdiscovery+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.spdlist+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.ueprofile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.userprofile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.olpc-sugar\":{\"source\":\"iana\",\"extensions\":[\"xo\"]},\"application/vnd.oma-scws-config\":{\"source\":\"iana\"},\"application/vnd.oma-scws-http-request\":{\"source\":\"iana\"},\"application/vnd.oma-scws-http-response\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.associated-procedure-parameter+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.drm-trigger+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.imd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.ltkm\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.notification+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.provisioningtrigger\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.sgboot\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.sgdd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.sgdu\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.simple-symbol-container\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.smartcard-trigger+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.sprov+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.stkm\":{\"source\":\"iana\"},\"application/vnd.oma.cab-address-book+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.cab-feature-handler+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.cab-pcc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.cab-subs-invite+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.cab-user-prefs+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.dcd\":{\"source\":\"iana\"},\"application/vnd.oma.dcdc\":{\"source\":\"iana\"},\"application/vnd.oma.dd2+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dd2\"]},\"application/vnd.oma.drm.risd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.group-usage-list+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.lwm2m+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.lwm2m+tlv\":{\"source\":\"iana\"},\"application/vnd.oma.pal+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.poc.detailed-progress-report+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.poc.final-report+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.poc.groups+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.poc.invocation-descriptor+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.poc.optimized-progress-report+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.push\":{\"source\":\"iana\"},\"application/vnd.oma.scidm.messages+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.xcap-directory+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.omads-email+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.omads-file+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.omads-folder+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.omaloc-supl-init\":{\"source\":\"iana\"},\"application/vnd.onepager\":{\"source\":\"iana\"},\"application/vnd.onepagertamp\":{\"source\":\"iana\"},\"application/vnd.onepagertamx\":{\"source\":\"iana\"},\"application/vnd.onepagertat\":{\"source\":\"iana\"},\"application/vnd.onepagertatp\":{\"source\":\"iana\"},\"application/vnd.onepagertatx\":{\"source\":\"iana\"},\"application/vnd.openblox.game+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openblox.game-binary\":{\"source\":\"iana\"},\"application/vnd.openeye.oeb\":{\"source\":\"iana\"},\"application/vnd.openofficeorg.extension\":{\"source\":\"apache\",\"extensions\":[\"oxt\"]},\"application/vnd.openstreetmap.data+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.custom-properties+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawing+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.extended-properties+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"pptx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.slide\":{\"source\":\"iana\",\"extensions\":[\"sldx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.slideshow\":{\"source\":\"iana\",\"extensions\":[\"ppsx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.template\":{\"source\":\"iana\",\"extensions\":[\"potx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"xlsx\"]},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.template\":{\"source\":\"iana\",\"extensions\":[\"xltx\"]},\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.theme+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.themeoverride+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.vmldrawing\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"docx\"]},\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.template\":{\"source\":\"iana\",\"extensions\":[\"dotx\"]},\"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-package.core-properties+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-package.relationships+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oracle.resource+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.orange.indata\":{\"source\":\"iana\"},\"application/vnd.osa.netdeploy\":{\"source\":\"iana\"},\"application/vnd.osgeo.mapguide.package\":{\"source\":\"iana\",\"extensions\":[\"mgp\"]},\"application/vnd.osgi.bundle\":{\"source\":\"iana\"},\"application/vnd.osgi.dp\":{\"source\":\"iana\",\"extensions\":[\"dp\"]},\"application/vnd.osgi.subsystem\":{\"source\":\"iana\",\"extensions\":[\"esa\"]},\"application/vnd.otps.ct-kip+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oxli.countgraph\":{\"source\":\"iana\"},\"application/vnd.pagerduty+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.palm\":{\"source\":\"iana\",\"extensions\":[\"pdb\",\"pqa\",\"oprc\"]},\"application/vnd.panoply\":{\"source\":\"iana\"},\"application/vnd.paos.xml\":{\"source\":\"iana\"},\"application/vnd.patentdive\":{\"source\":\"iana\"},\"application/vnd.patientecommsdoc\":{\"source\":\"iana\"},\"application/vnd.pawaafile\":{\"source\":\"iana\",\"extensions\":[\"paw\"]},\"application/vnd.pcos\":{\"source\":\"iana\"},\"application/vnd.pg.format\":{\"source\":\"iana\",\"extensions\":[\"str\"]},\"application/vnd.pg.osasli\":{\"source\":\"iana\",\"extensions\":[\"ei6\"]},\"application/vnd.piaccess.application-licence\":{\"source\":\"iana\"},\"application/vnd.picsel\":{\"source\":\"iana\",\"extensions\":[\"efif\"]},\"application/vnd.pmi.widget\":{\"source\":\"iana\",\"extensions\":[\"wg\"]},\"application/vnd.poc.group-advertisement+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.pocketlearn\":{\"source\":\"iana\",\"extensions\":[\"plf\"]},\"application/vnd.powerbuilder6\":{\"source\":\"iana\",\"extensions\":[\"pbd\"]},\"application/vnd.powerbuilder6-s\":{\"source\":\"iana\"},\"application/vnd.powerbuilder7\":{\"source\":\"iana\"},\"application/vnd.powerbuilder7-s\":{\"source\":\"iana\"},\"application/vnd.powerbuilder75\":{\"source\":\"iana\"},\"application/vnd.powerbuilder75-s\":{\"source\":\"iana\"},\"application/vnd.preminet\":{\"source\":\"iana\"},\"application/vnd.previewsystems.box\":{\"source\":\"iana\",\"extensions\":[\"box\"]},\"application/vnd.proteus.magazine\":{\"source\":\"iana\",\"extensions\":[\"mgz\"]},\"application/vnd.psfs\":{\"source\":\"iana\"},\"application/vnd.publishare-delta-tree\":{\"source\":\"iana\",\"extensions\":[\"qps\"]},\"application/vnd.pvi.ptid1\":{\"source\":\"iana\",\"extensions\":[\"ptid\"]},\"application/vnd.pwg-multiplexed\":{\"source\":\"iana\"},\"application/vnd.pwg-xhtml-print+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.qualcomm.brew-app-res\":{\"source\":\"iana\"},\"application/vnd.quarantainenet\":{\"source\":\"iana\"},\"application/vnd.quark.quarkxpress\":{\"source\":\"iana\",\"extensions\":[\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]},\"application/vnd.quobject-quoxdocument\":{\"source\":\"iana\"},\"application/vnd.radisys.moml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-audit+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-audit-conf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-audit-conn+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-audit-dialog+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-audit-stream+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-conf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-base+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-fax-detect+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-group+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-speech+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-transform+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.rainstor.data\":{\"source\":\"iana\"},\"application/vnd.rapid\":{\"source\":\"iana\"},\"application/vnd.rar\":{\"source\":\"iana\"},\"application/vnd.realvnc.bed\":{\"source\":\"iana\",\"extensions\":[\"bed\"]},\"application/vnd.recordare.musicxml\":{\"source\":\"iana\",\"extensions\":[\"mxl\"]},\"application/vnd.recordare.musicxml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"musicxml\"]},\"application/vnd.renlearn.rlprint\":{\"source\":\"iana\"},\"application/vnd.restful+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.rig.cryptonote\":{\"source\":\"iana\",\"extensions\":[\"cryptonote\"]},\"application/vnd.rim.cod\":{\"source\":\"apache\",\"extensions\":[\"cod\"]},\"application/vnd.rn-realmedia\":{\"source\":\"apache\",\"extensions\":[\"rm\"]},\"application/vnd.rn-realmedia-vbr\":{\"source\":\"apache\",\"extensions\":[\"rmvb\"]},\"application/vnd.route66.link66+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"link66\"]},\"application/vnd.rs-274x\":{\"source\":\"iana\"},\"application/vnd.ruckus.download\":{\"source\":\"iana\"},\"application/vnd.s3sms\":{\"source\":\"iana\"},\"application/vnd.sailingtracker.track\":{\"source\":\"iana\",\"extensions\":[\"st\"]},\"application/vnd.sbm.cid\":{\"source\":\"iana\"},\"application/vnd.sbm.mid2\":{\"source\":\"iana\"},\"application/vnd.scribus\":{\"source\":\"iana\"},\"application/vnd.sealed.3df\":{\"source\":\"iana\"},\"application/vnd.sealed.csf\":{\"source\":\"iana\"},\"application/vnd.sealed.doc\":{\"source\":\"iana\"},\"application/vnd.sealed.eml\":{\"source\":\"iana\"},\"application/vnd.sealed.mht\":{\"source\":\"iana\"},\"application/vnd.sealed.net\":{\"source\":\"iana\"},\"application/vnd.sealed.ppt\":{\"source\":\"iana\"},\"application/vnd.sealed.tiff\":{\"source\":\"iana\"},\"application/vnd.sealed.xls\":{\"source\":\"iana\"},\"application/vnd.sealedmedia.softseal.html\":{\"source\":\"iana\"},\"application/vnd.sealedmedia.softseal.pdf\":{\"source\":\"iana\"},\"application/vnd.seemail\":{\"source\":\"iana\",\"extensions\":[\"see\"]},\"application/vnd.sema\":{\"source\":\"iana\",\"extensions\":[\"sema\"]},\"application/vnd.semd\":{\"source\":\"iana\",\"extensions\":[\"semd\"]},\"application/vnd.semf\":{\"source\":\"iana\",\"extensions\":[\"semf\"]},\"application/vnd.shana.informed.formdata\":{\"source\":\"iana\",\"extensions\":[\"ifm\"]},\"application/vnd.shana.informed.formtemplate\":{\"source\":\"iana\",\"extensions\":[\"itp\"]},\"application/vnd.shana.informed.interchange\":{\"source\":\"iana\",\"extensions\":[\"iif\"]},\"application/vnd.shana.informed.package\":{\"source\":\"iana\",\"extensions\":[\"ipk\"]},\"application/vnd.shootproof+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.sigrok.session\":{\"source\":\"iana\"},\"application/vnd.simtech-mindmapper\":{\"source\":\"iana\",\"extensions\":[\"twd\",\"twds\"]},\"application/vnd.siren+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.smaf\":{\"source\":\"iana\",\"extensions\":[\"mmf\"]},\"application/vnd.smart.notebook\":{\"source\":\"iana\"},\"application/vnd.smart.teacher\":{\"source\":\"iana\",\"extensions\":[\"teacher\"]},\"application/vnd.software602.filler.form+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.software602.filler.form-xml-zip\":{\"source\":\"iana\"},\"application/vnd.solent.sdkm+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"sdkm\",\"sdkd\"]},\"application/vnd.spotfire.dxp\":{\"source\":\"iana\",\"extensions\":[\"dxp\"]},\"application/vnd.spotfire.sfs\":{\"source\":\"iana\",\"extensions\":[\"sfs\"]},\"application/vnd.sqlite3\":{\"source\":\"iana\"},\"application/vnd.sss-cod\":{\"source\":\"iana\"},\"application/vnd.sss-dtf\":{\"source\":\"iana\"},\"application/vnd.sss-ntf\":{\"source\":\"iana\"},\"application/vnd.stardivision.calc\":{\"source\":\"apache\",\"extensions\":[\"sdc\"]},\"application/vnd.stardivision.draw\":{\"source\":\"apache\",\"extensions\":[\"sda\"]},\"application/vnd.stardivision.impress\":{\"source\":\"apache\",\"extensions\":[\"sdd\"]},\"application/vnd.stardivision.math\":{\"source\":\"apache\",\"extensions\":[\"smf\"]},\"application/vnd.stardivision.writer\":{\"source\":\"apache\",\"extensions\":[\"sdw\",\"vor\"]},\"application/vnd.stardivision.writer-global\":{\"source\":\"apache\",\"extensions\":[\"sgl\"]},\"application/vnd.stepmania.package\":{\"source\":\"iana\",\"extensions\":[\"smzip\"]},\"application/vnd.stepmania.stepchart\":{\"source\":\"iana\",\"extensions\":[\"sm\"]},\"application/vnd.street-stream\":{\"source\":\"iana\"},\"application/vnd.sun.wadl+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"wadl\"]},\"application/vnd.sun.xml.calc\":{\"source\":\"apache\",\"extensions\":[\"sxc\"]},\"application/vnd.sun.xml.calc.template\":{\"source\":\"apache\",\"extensions\":[\"stc\"]},\"application/vnd.sun.xml.draw\":{\"source\":\"apache\",\"extensions\":[\"sxd\"]},\"application/vnd.sun.xml.draw.template\":{\"source\":\"apache\",\"extensions\":[\"std\"]},\"application/vnd.sun.xml.impress\":{\"source\":\"apache\",\"extensions\":[\"sxi\"]},\"application/vnd.sun.xml.impress.template\":{\"source\":\"apache\",\"extensions\":[\"sti\"]},\"application/vnd.sun.xml.math\":{\"source\":\"apache\",\"extensions\":[\"sxm\"]},\"application/vnd.sun.xml.writer\":{\"source\":\"apache\",\"extensions\":[\"sxw\"]},\"application/vnd.sun.xml.writer.global\":{\"source\":\"apache\",\"extensions\":[\"sxg\"]},\"application/vnd.sun.xml.writer.template\":{\"source\":\"apache\",\"extensions\":[\"stw\"]},\"application/vnd.sus-calendar\":{\"source\":\"iana\",\"extensions\":[\"sus\",\"susp\"]},\"application/vnd.svd\":{\"source\":\"iana\",\"extensions\":[\"svd\"]},\"application/vnd.swiftview-ics\":{\"source\":\"iana\"},\"application/vnd.symbian.install\":{\"source\":\"apache\",\"extensions\":[\"sis\",\"sisx\"]},\"application/vnd.syncml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xsm\"]},\"application/vnd.syncml.dm+wbxml\":{\"source\":\"iana\",\"extensions\":[\"bdm\"]},\"application/vnd.syncml.dm+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xdm\"]},\"application/vnd.syncml.dm.notification\":{\"source\":\"iana\"},\"application/vnd.syncml.dmddf+wbxml\":{\"source\":\"iana\"},\"application/vnd.syncml.dmddf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.syncml.dmtnds+wbxml\":{\"source\":\"iana\"},\"application/vnd.syncml.dmtnds+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.syncml.ds.notification\":{\"source\":\"iana\"},\"application/vnd.tableschema+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.tao.intent-module-archive\":{\"source\":\"iana\",\"extensions\":[\"tao\"]},\"application/vnd.tcpdump.pcap\":{\"source\":\"iana\",\"extensions\":[\"pcap\",\"cap\",\"dmp\"]},\"application/vnd.think-cell.ppttc+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.tmd.mediaflex.api+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.tml\":{\"source\":\"iana\"},\"application/vnd.tmobile-livetv\":{\"source\":\"iana\",\"extensions\":[\"tmo\"]},\"application/vnd.tri.onesource\":{\"source\":\"iana\"},\"application/vnd.trid.tpt\":{\"source\":\"iana\",\"extensions\":[\"tpt\"]},\"application/vnd.triscape.mxs\":{\"source\":\"iana\",\"extensions\":[\"mxs\"]},\"application/vnd.trueapp\":{\"source\":\"iana\",\"extensions\":[\"tra\"]},\"application/vnd.truedoc\":{\"source\":\"iana\"},\"application/vnd.ubisoft.webplayer\":{\"source\":\"iana\"},\"application/vnd.ufdl\":{\"source\":\"iana\",\"extensions\":[\"ufd\",\"ufdl\"]},\"application/vnd.uiq.theme\":{\"source\":\"iana\",\"extensions\":[\"utz\"]},\"application/vnd.umajin\":{\"source\":\"iana\",\"extensions\":[\"umj\"]},\"application/vnd.unity\":{\"source\":\"iana\",\"extensions\":[\"unityweb\"]},\"application/vnd.uoml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"uoml\"]},\"application/vnd.uplanet.alert\":{\"source\":\"iana\"},\"application/vnd.uplanet.alert-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.bearer-choice\":{\"source\":\"iana\"},\"application/vnd.uplanet.bearer-choice-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.cacheop\":{\"source\":\"iana\"},\"application/vnd.uplanet.cacheop-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.channel\":{\"source\":\"iana\"},\"application/vnd.uplanet.channel-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.list\":{\"source\":\"iana\"},\"application/vnd.uplanet.list-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.listcmd\":{\"source\":\"iana\"},\"application/vnd.uplanet.listcmd-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.signal\":{\"source\":\"iana\"},\"application/vnd.uri-map\":{\"source\":\"iana\"},\"application/vnd.valve.source.material\":{\"source\":\"iana\"},\"application/vnd.vcx\":{\"source\":\"iana\",\"extensions\":[\"vcx\"]},\"application/vnd.vd-study\":{\"source\":\"iana\"},\"application/vnd.vectorworks\":{\"source\":\"iana\"},\"application/vnd.vel+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.verimatrix.vcas\":{\"source\":\"iana\"},\"application/vnd.veryant.thin\":{\"source\":\"iana\"},\"application/vnd.vidsoft.vidconference\":{\"source\":\"iana\"},\"application/vnd.visio\":{\"source\":\"iana\",\"extensions\":[\"vsd\",\"vst\",\"vss\",\"vsw\"]},\"application/vnd.visionary\":{\"source\":\"iana\",\"extensions\":[\"vis\"]},\"application/vnd.vividence.scriptfile\":{\"source\":\"iana\"},\"application/vnd.vsf\":{\"source\":\"iana\",\"extensions\":[\"vsf\"]},\"application/vnd.wap.sic\":{\"source\":\"iana\"},\"application/vnd.wap.slc\":{\"source\":\"iana\"},\"application/vnd.wap.wbxml\":{\"source\":\"iana\",\"extensions\":[\"wbxml\"]},\"application/vnd.wap.wmlc\":{\"source\":\"iana\",\"extensions\":[\"wmlc\"]},\"application/vnd.wap.wmlscriptc\":{\"source\":\"iana\",\"extensions\":[\"wmlsc\"]},\"application/vnd.webturbo\":{\"source\":\"iana\",\"extensions\":[\"wtb\"]},\"application/vnd.wfa.p2p\":{\"source\":\"iana\"},\"application/vnd.wfa.wsc\":{\"source\":\"iana\"},\"application/vnd.windows.devicepairing\":{\"source\":\"iana\"},\"application/vnd.wmc\":{\"source\":\"iana\"},\"application/vnd.wmf.bootstrap\":{\"source\":\"iana\"},\"application/vnd.wolfram.mathematica\":{\"source\":\"iana\"},\"application/vnd.wolfram.mathematica.package\":{\"source\":\"iana\"},\"application/vnd.wolfram.player\":{\"source\":\"iana\",\"extensions\":[\"nbp\"]},\"application/vnd.wordperfect\":{\"source\":\"iana\",\"extensions\":[\"wpd\"]},\"application/vnd.wqd\":{\"source\":\"iana\",\"extensions\":[\"wqd\"]},\"application/vnd.wrq-hp3000-labelled\":{\"source\":\"iana\"},\"application/vnd.wt.stf\":{\"source\":\"iana\",\"extensions\":[\"stf\"]},\"application/vnd.wv.csp+wbxml\":{\"source\":\"iana\"},\"application/vnd.wv.csp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.wv.ssp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.xacml+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.xara\":{\"source\":\"iana\",\"extensions\":[\"xar\"]},\"application/vnd.xfdl\":{\"source\":\"iana\",\"extensions\":[\"xfdl\"]},\"application/vnd.xfdl.webform\":{\"source\":\"iana\"},\"application/vnd.xmi+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.xmpie.cpkg\":{\"source\":\"iana\"},\"application/vnd.xmpie.dpkg\":{\"source\":\"iana\"},\"application/vnd.xmpie.plan\":{\"source\":\"iana\"},\"application/vnd.xmpie.ppkg\":{\"source\":\"iana\"},\"application/vnd.xmpie.xlim\":{\"source\":\"iana\"},\"application/vnd.yamaha.hv-dic\":{\"source\":\"iana\",\"extensions\":[\"hvd\"]},\"application/vnd.yamaha.hv-script\":{\"source\":\"iana\",\"extensions\":[\"hvs\"]},\"application/vnd.yamaha.hv-voice\":{\"source\":\"iana\",\"extensions\":[\"hvp\"]},\"application/vnd.yamaha.openscoreformat\":{\"source\":\"iana\",\"extensions\":[\"osf\"]},\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"osfpvg\"]},\"application/vnd.yamaha.remote-setup\":{\"source\":\"iana\"},\"application/vnd.yamaha.smaf-audio\":{\"source\":\"iana\",\"extensions\":[\"saf\"]},\"application/vnd.yamaha.smaf-phrase\":{\"source\":\"iana\",\"extensions\":[\"spf\"]},\"application/vnd.yamaha.through-ngn\":{\"source\":\"iana\"},\"application/vnd.yamaha.tunnel-udpencap\":{\"source\":\"iana\"},\"application/vnd.yaoweme\":{\"source\":\"iana\"},\"application/vnd.yellowriver-custom-menu\":{\"source\":\"iana\",\"extensions\":[\"cmp\"]},\"application/vnd.youtube.yt\":{\"source\":\"iana\"},\"application/vnd.zul\":{\"source\":\"iana\",\"extensions\":[\"zir\",\"zirz\"]},\"application/vnd.zzazz.deck+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"zaz\"]},\"application/voicexml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"vxml\"]},\"application/voucher-cms+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vq-rtcpxr\":{\"source\":\"iana\"},\"application/wasm\":{\"compressible\":true,\"extensions\":[\"wasm\"]},\"application/watcherinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/webpush-options+json\":{\"source\":\"iana\",\"compressible\":true},\"application/whoispp-query\":{\"source\":\"iana\"},\"application/whoispp-response\":{\"source\":\"iana\"},\"application/widget\":{\"source\":\"iana\",\"extensions\":[\"wgt\"]},\"application/winhlp\":{\"source\":\"apache\",\"extensions\":[\"hlp\"]},\"application/wita\":{\"source\":\"iana\"},\"application/wordperfect5.1\":{\"source\":\"iana\"},\"application/wsdl+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"wsdl\"]},\"application/wspolicy+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"wspolicy\"]},\"application/x-7z-compressed\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"7z\"]},\"application/x-abiword\":{\"source\":\"apache\",\"extensions\":[\"abw\"]},\"application/x-ace-compressed\":{\"source\":\"apache\",\"extensions\":[\"ace\"]},\"application/x-amf\":{\"source\":\"apache\"},\"application/x-apple-diskimage\":{\"source\":\"apache\",\"extensions\":[\"dmg\"]},\"application/x-arj\":{\"compressible\":false,\"extensions\":[\"arj\"]},\"application/x-authorware-bin\":{\"source\":\"apache\",\"extensions\":[\"aab\",\"x32\",\"u32\",\"vox\"]},\"application/x-authorware-map\":{\"source\":\"apache\",\"extensions\":[\"aam\"]},\"application/x-authorware-seg\":{\"source\":\"apache\",\"extensions\":[\"aas\"]},\"application/x-bcpio\":{\"source\":\"apache\",\"extensions\":[\"bcpio\"]},\"application/x-bdoc\":{\"compressible\":false,\"extensions\":[\"bdoc\"]},\"application/x-bittorrent\":{\"source\":\"apache\",\"extensions\":[\"torrent\"]},\"application/x-blorb\":{\"source\":\"apache\",\"extensions\":[\"blb\",\"blorb\"]},\"application/x-bzip\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"bz\"]},\"application/x-bzip2\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"bz2\",\"boz\"]},\"application/x-cbr\":{\"source\":\"apache\",\"extensions\":[\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]},\"application/x-cdlink\":{\"source\":\"apache\",\"extensions\":[\"vcd\"]},\"application/x-cfs-compressed\":{\"source\":\"apache\",\"extensions\":[\"cfs\"]},\"application/x-chat\":{\"source\":\"apache\",\"extensions\":[\"chat\"]},\"application/x-chess-pgn\":{\"source\":\"apache\",\"extensions\":[\"pgn\"]},\"application/x-chrome-extension\":{\"extensions\":[\"crx\"]},\"application/x-cocoa\":{\"source\":\"nginx\",\"extensions\":[\"cco\"]},\"application/x-compress\":{\"source\":\"apache\"},\"application/x-conference\":{\"source\":\"apache\",\"extensions\":[\"nsc\"]},\"application/x-cpio\":{\"source\":\"apache\",\"extensions\":[\"cpio\"]},\"application/x-csh\":{\"source\":\"apache\",\"extensions\":[\"csh\"]},\"application/x-deb\":{\"compressible\":false},\"application/x-debian-package\":{\"source\":\"apache\",\"extensions\":[\"deb\",\"udeb\"]},\"application/x-dgc-compressed\":{\"source\":\"apache\",\"extensions\":[\"dgc\"]},\"application/x-director\":{\"source\":\"apache\",\"extensions\":[\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]},\"application/x-doom\":{\"source\":\"apache\",\"extensions\":[\"wad\"]},\"application/x-dtbncx+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"ncx\"]},\"application/x-dtbook+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"dtb\"]},\"application/x-dtbresource+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"res\"]},\"application/x-dvi\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"dvi\"]},\"application/x-envoy\":{\"source\":\"apache\",\"extensions\":[\"evy\"]},\"application/x-eva\":{\"source\":\"apache\",\"extensions\":[\"eva\"]},\"application/x-font-bdf\":{\"source\":\"apache\",\"extensions\":[\"bdf\"]},\"application/x-font-dos\":{\"source\":\"apache\"},\"application/x-font-framemaker\":{\"source\":\"apache\"},\"application/x-font-ghostscript\":{\"source\":\"apache\",\"extensions\":[\"gsf\"]},\"application/x-font-libgrx\":{\"source\":\"apache\"},\"application/x-font-linux-psf\":{\"source\":\"apache\",\"extensions\":[\"psf\"]},\"application/x-font-pcf\":{\"source\":\"apache\",\"extensions\":[\"pcf\"]},\"application/x-font-snf\":{\"source\":\"apache\",\"extensions\":[\"snf\"]},\"application/x-font-speedo\":{\"source\":\"apache\"},\"application/x-font-sunos-news\":{\"source\":\"apache\"},\"application/x-font-type1\":{\"source\":\"apache\",\"extensions\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"]},\"application/x-font-vfont\":{\"source\":\"apache\"},\"application/x-freearc\":{\"source\":\"apache\",\"extensions\":[\"arc\"]},\"application/x-futuresplash\":{\"source\":\"apache\",\"extensions\":[\"spl\"]},\"application/x-gca-compressed\":{\"source\":\"apache\",\"extensions\":[\"gca\"]},\"application/x-glulx\":{\"source\":\"apache\",\"extensions\":[\"ulx\"]},\"application/x-gnumeric\":{\"source\":\"apache\",\"extensions\":[\"gnumeric\"]},\"application/x-gramps-xml\":{\"source\":\"apache\",\"extensions\":[\"gramps\"]},\"application/x-gtar\":{\"source\":\"apache\",\"extensions\":[\"gtar\"]},\"application/x-gzip\":{\"source\":\"apache\"},\"application/x-hdf\":{\"source\":\"apache\",\"extensions\":[\"hdf\"]},\"application/x-httpd-php\":{\"compressible\":true,\"extensions\":[\"php\"]},\"application/x-install-instructions\":{\"source\":\"apache\",\"extensions\":[\"install\"]},\"application/x-iso9660-image\":{\"source\":\"apache\",\"extensions\":[\"iso\"]},\"application/x-java-archive-diff\":{\"source\":\"nginx\",\"extensions\":[\"jardiff\"]},\"application/x-java-jnlp-file\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"jnlp\"]},\"application/x-javascript\":{\"compressible\":true},\"application/x-latex\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"latex\"]},\"application/x-lua-bytecode\":{\"extensions\":[\"luac\"]},\"application/x-lzh-compressed\":{\"source\":\"apache\",\"extensions\":[\"lzh\",\"lha\"]},\"application/x-makeself\":{\"source\":\"nginx\",\"extensions\":[\"run\"]},\"application/x-mie\":{\"source\":\"apache\",\"extensions\":[\"mie\"]},\"application/x-mobipocket-ebook\":{\"source\":\"apache\",\"extensions\":[\"prc\",\"mobi\"]},\"application/x-mpegurl\":{\"compressible\":false},\"application/x-ms-application\":{\"source\":\"apache\",\"extensions\":[\"application\"]},\"application/x-ms-shortcut\":{\"source\":\"apache\",\"extensions\":[\"lnk\"]},\"application/x-ms-wmd\":{\"source\":\"apache\",\"extensions\":[\"wmd\"]},\"application/x-ms-wmz\":{\"source\":\"apache\",\"extensions\":[\"wmz\"]},\"application/x-ms-xbap\":{\"source\":\"apache\",\"extensions\":[\"xbap\"]},\"application/x-msaccess\":{\"source\":\"apache\",\"extensions\":[\"mdb\"]},\"application/x-msbinder\":{\"source\":\"apache\",\"extensions\":[\"obd\"]},\"application/x-mscardfile\":{\"source\":\"apache\",\"extensions\":[\"crd\"]},\"application/x-msclip\":{\"source\":\"apache\",\"extensions\":[\"clp\"]},\"application/x-msdos-program\":{\"extensions\":[\"exe\"]},\"application/x-msdownload\":{\"source\":\"apache\",\"extensions\":[\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]},\"application/x-msmediaview\":{\"source\":\"apache\",\"extensions\":[\"mvb\",\"m13\",\"m14\"]},\"application/x-msmetafile\":{\"source\":\"apache\",\"extensions\":[\"wmf\",\"wmz\",\"emf\",\"emz\"]},\"application/x-msmoney\":{\"source\":\"apache\",\"extensions\":[\"mny\"]},\"application/x-mspublisher\":{\"source\":\"apache\",\"extensions\":[\"pub\"]},\"application/x-msschedule\":{\"source\":\"apache\",\"extensions\":[\"scd\"]},\"application/x-msterminal\":{\"source\":\"apache\",\"extensions\":[\"trm\"]},\"application/x-mswrite\":{\"source\":\"apache\",\"extensions\":[\"wri\"]},\"application/x-netcdf\":{\"source\":\"apache\",\"extensions\":[\"nc\",\"cdf\"]},\"application/x-ns-proxy-autoconfig\":{\"compressible\":true,\"extensions\":[\"pac\"]},\"application/x-nzb\":{\"source\":\"apache\",\"extensions\":[\"nzb\"]},\"application/x-perl\":{\"source\":\"nginx\",\"extensions\":[\"pl\",\"pm\"]},\"application/x-pilot\":{\"source\":\"nginx\",\"extensions\":[\"prc\",\"pdb\"]},\"application/x-pkcs12\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"p12\",\"pfx\"]},\"application/x-pkcs7-certificates\":{\"source\":\"apache\",\"extensions\":[\"p7b\",\"spc\"]},\"application/x-pkcs7-certreqresp\":{\"source\":\"apache\",\"extensions\":[\"p7r\"]},\"application/x-rar-compressed\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"rar\"]},\"application/x-redhat-package-manager\":{\"source\":\"nginx\",\"extensions\":[\"rpm\"]},\"application/x-research-info-systems\":{\"source\":\"apache\",\"extensions\":[\"ris\"]},\"application/x-sea\":{\"source\":\"nginx\",\"extensions\":[\"sea\"]},\"application/x-sh\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"sh\"]},\"application/x-shar\":{\"source\":\"apache\",\"extensions\":[\"shar\"]},\"application/x-shockwave-flash\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"swf\"]},\"application/x-silverlight-app\":{\"source\":\"apache\",\"extensions\":[\"xap\"]},\"application/x-sql\":{\"source\":\"apache\",\"extensions\":[\"sql\"]},\"application/x-stuffit\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"sit\"]},\"application/x-stuffitx\":{\"source\":\"apache\",\"extensions\":[\"sitx\"]},\"application/x-subrip\":{\"source\":\"apache\",\"extensions\":[\"srt\"]},\"application/x-sv4cpio\":{\"source\":\"apache\",\"extensions\":[\"sv4cpio\"]},\"application/x-sv4crc\":{\"source\":\"apache\",\"extensions\":[\"sv4crc\"]},\"application/x-t3vm-image\":{\"source\":\"apache\",\"extensions\":[\"t3\"]},\"application/x-tads\":{\"source\":\"apache\",\"extensions\":[\"gam\"]},\"application/x-tar\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"tar\"]},\"application/x-tcl\":{\"source\":\"apache\",\"extensions\":[\"tcl\",\"tk\"]},\"application/x-tex\":{\"source\":\"apache\",\"extensions\":[\"tex\"]},\"application/x-tex-tfm\":{\"source\":\"apache\",\"extensions\":[\"tfm\"]},\"application/x-texinfo\":{\"source\":\"apache\",\"extensions\":[\"texinfo\",\"texi\"]},\"application/x-tgif\":{\"source\":\"apache\",\"extensions\":[\"obj\"]},\"application/x-ustar\":{\"source\":\"apache\",\"extensions\":[\"ustar\"]},\"application/x-virtualbox-hdd\":{\"compressible\":true,\"extensions\":[\"hdd\"]},\"application/x-virtualbox-ova\":{\"compressible\":true,\"extensions\":[\"ova\"]},\"application/x-virtualbox-ovf\":{\"compressible\":true,\"extensions\":[\"ovf\"]},\"application/x-virtualbox-vbox\":{\"compressible\":true,\"extensions\":[\"vbox\"]},\"application/x-virtualbox-vbox-extpack\":{\"compressible\":false,\"extensions\":[\"vbox-extpack\"]},\"application/x-virtualbox-vdi\":{\"compressible\":true,\"extensions\":[\"vdi\"]},\"application/x-virtualbox-vhd\":{\"compressible\":true,\"extensions\":[\"vhd\"]},\"application/x-virtualbox-vmdk\":{\"compressible\":true,\"extensions\":[\"vmdk\"]},\"application/x-wais-source\":{\"source\":\"apache\",\"extensions\":[\"src\"]},\"application/x-web-app-manifest+json\":{\"compressible\":true,\"extensions\":[\"webapp\"]},\"application/x-www-form-urlencoded\":{\"source\":\"iana\",\"compressible\":true},\"application/x-x509-ca-cert\":{\"source\":\"apache\",\"extensions\":[\"der\",\"crt\",\"pem\"]},\"application/x-xfig\":{\"source\":\"apache\",\"extensions\":[\"fig\"]},\"application/x-xliff+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"xlf\"]},\"application/x-xpinstall\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"xpi\"]},\"application/x-xz\":{\"source\":\"apache\",\"extensions\":[\"xz\"]},\"application/x-zmachine\":{\"source\":\"apache\",\"extensions\":[\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]},\"application/x400-bp\":{\"source\":\"iana\"},\"application/xacml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xaml+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"xaml\"]},\"application/xcap-att+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xcap-caps+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xcap-diff+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xdf\"]},\"application/xcap-el+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xcap-error+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xcap-ns+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xcon-conference-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xcon-conference-info-diff+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xenc+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xenc\"]},\"application/xhtml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xhtml\",\"xht\"]},\"application/xhtml-voice+xml\":{\"source\":\"apache\",\"compressible\":true},\"application/xliff+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xml\",\"xsl\",\"xsd\",\"rng\"]},\"application/xml-dtd\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dtd\"]},\"application/xml-external-parsed-entity\":{\"source\":\"iana\"},\"application/xml-patch+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xmpp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xop+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xop\"]},\"application/xproc+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"xpl\"]},\"application/xslt+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xslt\"]},\"application/xspf+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"xspf\"]},\"application/xv+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]},\"application/yang\":{\"source\":\"iana\",\"extensions\":[\"yang\"]},\"application/yang-data+json\":{\"source\":\"iana\",\"compressible\":true},\"application/yang-data+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/yang-patch+json\":{\"source\":\"iana\",\"compressible\":true},\"application/yang-patch+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/yin+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"yin\"]},\"application/zip\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"zip\"]},\"application/zlib\":{\"source\":\"iana\"},\"application/zstd\":{\"source\":\"iana\"},\"audio/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"audio/32kadpcm\":{\"source\":\"iana\"},\"audio/3gpp\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"3gpp\"]},\"audio/3gpp2\":{\"source\":\"iana\"},\"audio/aac\":{\"source\":\"iana\"},\"audio/ac3\":{\"source\":\"iana\"},\"audio/adpcm\":{\"source\":\"apache\",\"extensions\":[\"adp\"]},\"audio/amr\":{\"source\":\"iana\"},\"audio/amr-wb\":{\"source\":\"iana\"},\"audio/amr-wb+\":{\"source\":\"iana\"},\"audio/aptx\":{\"source\":\"iana\"},\"audio/asc\":{\"source\":\"iana\"},\"audio/atrac-advanced-lossless\":{\"source\":\"iana\"},\"audio/atrac-x\":{\"source\":\"iana\"},\"audio/atrac3\":{\"source\":\"iana\"},\"audio/basic\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"au\",\"snd\"]},\"audio/bv16\":{\"source\":\"iana\"},\"audio/bv32\":{\"source\":\"iana\"},\"audio/clearmode\":{\"source\":\"iana\"},\"audio/cn\":{\"source\":\"iana\"},\"audio/dat12\":{\"source\":\"iana\"},\"audio/dls\":{\"source\":\"iana\"},\"audio/dsr-es201108\":{\"source\":\"iana\"},\"audio/dsr-es202050\":{\"source\":\"iana\"},\"audio/dsr-es202211\":{\"source\":\"iana\"},\"audio/dsr-es202212\":{\"source\":\"iana\"},\"audio/dv\":{\"source\":\"iana\"},\"audio/dvi4\":{\"source\":\"iana\"},\"audio/eac3\":{\"source\":\"iana\"},\"audio/encaprtp\":{\"source\":\"iana\"},\"audio/evrc\":{\"source\":\"iana\"},\"audio/evrc-qcp\":{\"source\":\"iana\"},\"audio/evrc0\":{\"source\":\"iana\"},\"audio/evrc1\":{\"source\":\"iana\"},\"audio/evrcb\":{\"source\":\"iana\"},\"audio/evrcb0\":{\"source\":\"iana\"},\"audio/evrcb1\":{\"source\":\"iana\"},\"audio/evrcnw\":{\"source\":\"iana\"},\"audio/evrcnw0\":{\"source\":\"iana\"},\"audio/evrcnw1\":{\"source\":\"iana\"},\"audio/evrcwb\":{\"source\":\"iana\"},\"audio/evrcwb0\":{\"source\":\"iana\"},\"audio/evrcwb1\":{\"source\":\"iana\"},\"audio/evs\":{\"source\":\"iana\"},\"audio/fwdred\":{\"source\":\"iana\"},\"audio/g711-0\":{\"source\":\"iana\"},\"audio/g719\":{\"source\":\"iana\"},\"audio/g722\":{\"source\":\"iana\"},\"audio/g7221\":{\"source\":\"iana\"},\"audio/g723\":{\"source\":\"iana\"},\"audio/g726-16\":{\"source\":\"iana\"},\"audio/g726-24\":{\"source\":\"iana\"},\"audio/g726-32\":{\"source\":\"iana\"},\"audio/g726-40\":{\"source\":\"iana\"},\"audio/g728\":{\"source\":\"iana\"},\"audio/g729\":{\"source\":\"iana\"},\"audio/g7291\":{\"source\":\"iana\"},\"audio/g729d\":{\"source\":\"iana\"},\"audio/g729e\":{\"source\":\"iana\"},\"audio/gsm\":{\"source\":\"iana\"},\"audio/gsm-efr\":{\"source\":\"iana\"},\"audio/gsm-hr-08\":{\"source\":\"iana\"},\"audio/ilbc\":{\"source\":\"iana\"},\"audio/ip-mr_v2.5\":{\"source\":\"iana\"},\"audio/isac\":{\"source\":\"apache\"},\"audio/l16\":{\"source\":\"iana\"},\"audio/l20\":{\"source\":\"iana\"},\"audio/l24\":{\"source\":\"iana\",\"compressible\":false},\"audio/l8\":{\"source\":\"iana\"},\"audio/lpc\":{\"source\":\"iana\"},\"audio/melp\":{\"source\":\"iana\"},\"audio/melp1200\":{\"source\":\"iana\"},\"audio/melp2400\":{\"source\":\"iana\"},\"audio/melp600\":{\"source\":\"iana\"},\"audio/midi\":{\"source\":\"apache\",\"extensions\":[\"mid\",\"midi\",\"kar\",\"rmi\"]},\"audio/mobile-xmf\":{\"source\":\"iana\"},\"audio/mp3\":{\"compressible\":false,\"extensions\":[\"mp3\"]},\"audio/mp4\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"m4a\",\"mp4a\"]},\"audio/mp4a-latm\":{\"source\":\"iana\"},\"audio/mpa\":{\"source\":\"iana\"},\"audio/mpa-robust\":{\"source\":\"iana\"},\"audio/mpeg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]},\"audio/mpeg4-generic\":{\"source\":\"iana\"},\"audio/musepack\":{\"source\":\"apache\"},\"audio/ogg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"oga\",\"ogg\",\"spx\"]},\"audio/opus\":{\"source\":\"iana\"},\"audio/parityfec\":{\"source\":\"iana\"},\"audio/pcma\":{\"source\":\"iana\"},\"audio/pcma-wb\":{\"source\":\"iana\"},\"audio/pcmu\":{\"source\":\"iana\"},\"audio/pcmu-wb\":{\"source\":\"iana\"},\"audio/prs.sid\":{\"source\":\"iana\"},\"audio/qcelp\":{\"source\":\"iana\"},\"audio/raptorfec\":{\"source\":\"iana\"},\"audio/red\":{\"source\":\"iana\"},\"audio/rtp-enc-aescm128\":{\"source\":\"iana\"},\"audio/rtp-midi\":{\"source\":\"iana\"},\"audio/rtploopback\":{\"source\":\"iana\"},\"audio/rtx\":{\"source\":\"iana\"},\"audio/s3m\":{\"source\":\"apache\",\"extensions\":[\"s3m\"]},\"audio/silk\":{\"source\":\"apache\",\"extensions\":[\"sil\"]},\"audio/smv\":{\"source\":\"iana\"},\"audio/smv-qcp\":{\"source\":\"iana\"},\"audio/smv0\":{\"source\":\"iana\"},\"audio/sp-midi\":{\"source\":\"iana\"},\"audio/speex\":{\"source\":\"iana\"},\"audio/t140c\":{\"source\":\"iana\"},\"audio/t38\":{\"source\":\"iana\"},\"audio/telephone-event\":{\"source\":\"iana\"},\"audio/tetra_acelp\":{\"source\":\"iana\"},\"audio/tone\":{\"source\":\"iana\"},\"audio/uemclip\":{\"source\":\"iana\"},\"audio/ulpfec\":{\"source\":\"iana\"},\"audio/usac\":{\"source\":\"iana\"},\"audio/vdvi\":{\"source\":\"iana\"},\"audio/vmr-wb\":{\"source\":\"iana\"},\"audio/vnd.3gpp.iufp\":{\"source\":\"iana\"},\"audio/vnd.4sb\":{\"source\":\"iana\"},\"audio/vnd.audiokoz\":{\"source\":\"iana\"},\"audio/vnd.celp\":{\"source\":\"iana\"},\"audio/vnd.cisco.nse\":{\"source\":\"iana\"},\"audio/vnd.cmles.radio-events\":{\"source\":\"iana\"},\"audio/vnd.cns.anp1\":{\"source\":\"iana\"},\"audio/vnd.cns.inf1\":{\"source\":\"iana\"},\"audio/vnd.dece.audio\":{\"source\":\"iana\",\"extensions\":[\"uva\",\"uvva\"]},\"audio/vnd.digital-winds\":{\"source\":\"iana\",\"extensions\":[\"eol\"]},\"audio/vnd.dlna.adts\":{\"source\":\"iana\"},\"audio/vnd.dolby.heaac.1\":{\"source\":\"iana\"},\"audio/vnd.dolby.heaac.2\":{\"source\":\"iana\"},\"audio/vnd.dolby.mlp\":{\"source\":\"iana\"},\"audio/vnd.dolby.mps\":{\"source\":\"iana\"},\"audio/vnd.dolby.pl2\":{\"source\":\"iana\"},\"audio/vnd.dolby.pl2x\":{\"source\":\"iana\"},\"audio/vnd.dolby.pl2z\":{\"source\":\"iana\"},\"audio/vnd.dolby.pulse.1\":{\"source\":\"iana\"},\"audio/vnd.dra\":{\"source\":\"iana\",\"extensions\":[\"dra\"]},\"audio/vnd.dts\":{\"source\":\"iana\",\"extensions\":[\"dts\"]},\"audio/vnd.dts.hd\":{\"source\":\"iana\",\"extensions\":[\"dtshd\"]},\"audio/vnd.dts.uhd\":{\"source\":\"iana\"},\"audio/vnd.dvb.file\":{\"source\":\"iana\"},\"audio/vnd.everad.plj\":{\"source\":\"iana\"},\"audio/vnd.hns.audio\":{\"source\":\"iana\"},\"audio/vnd.lucent.voice\":{\"source\":\"iana\",\"extensions\":[\"lvp\"]},\"audio/vnd.ms-playready.media.pya\":{\"source\":\"iana\",\"extensions\":[\"pya\"]},\"audio/vnd.nokia.mobile-xmf\":{\"source\":\"iana\"},\"audio/vnd.nortel.vbk\":{\"source\":\"iana\"},\"audio/vnd.nuera.ecelp4800\":{\"source\":\"iana\",\"extensions\":[\"ecelp4800\"]},\"audio/vnd.nuera.ecelp7470\":{\"source\":\"iana\",\"extensions\":[\"ecelp7470\"]},\"audio/vnd.nuera.ecelp9600\":{\"source\":\"iana\",\"extensions\":[\"ecelp9600\"]},\"audio/vnd.octel.sbc\":{\"source\":\"iana\"},\"audio/vnd.presonus.multitrack\":{\"source\":\"iana\"},\"audio/vnd.qcelp\":{\"source\":\"iana\"},\"audio/vnd.rhetorex.32kadpcm\":{\"source\":\"iana\"},\"audio/vnd.rip\":{\"source\":\"iana\",\"extensions\":[\"rip\"]},\"audio/vnd.rn-realaudio\":{\"compressible\":false},\"audio/vnd.sealedmedia.softseal.mpeg\":{\"source\":\"iana\"},\"audio/vnd.vmx.cvsd\":{\"source\":\"iana\"},\"audio/vnd.wave\":{\"compressible\":false},\"audio/vorbis\":{\"source\":\"iana\",\"compressible\":false},\"audio/vorbis-config\":{\"source\":\"iana\"},\"audio/wav\":{\"compressible\":false,\"extensions\":[\"wav\"]},\"audio/wave\":{\"compressible\":false,\"extensions\":[\"wav\"]},\"audio/webm\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"weba\"]},\"audio/x-aac\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"aac\"]},\"audio/x-aiff\":{\"source\":\"apache\",\"extensions\":[\"aif\",\"aiff\",\"aifc\"]},\"audio/x-caf\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"caf\"]},\"audio/x-flac\":{\"source\":\"apache\",\"extensions\":[\"flac\"]},\"audio/x-m4a\":{\"source\":\"nginx\",\"extensions\":[\"m4a\"]},\"audio/x-matroska\":{\"source\":\"apache\",\"extensions\":[\"mka\"]},\"audio/x-mpegurl\":{\"source\":\"apache\",\"extensions\":[\"m3u\"]},\"audio/x-ms-wax\":{\"source\":\"apache\",\"extensions\":[\"wax\"]},\"audio/x-ms-wma\":{\"source\":\"apache\",\"extensions\":[\"wma\"]},\"audio/x-pn-realaudio\":{\"source\":\"apache\",\"extensions\":[\"ram\",\"ra\"]},\"audio/x-pn-realaudio-plugin\":{\"source\":\"apache\",\"extensions\":[\"rmp\"]},\"audio/x-realaudio\":{\"source\":\"nginx\",\"extensions\":[\"ra\"]},\"audio/x-tta\":{\"source\":\"apache\"},\"audio/x-wav\":{\"source\":\"apache\",\"extensions\":[\"wav\"]},\"audio/xm\":{\"source\":\"apache\",\"extensions\":[\"xm\"]},\"chemical/x-cdx\":{\"source\":\"apache\",\"extensions\":[\"cdx\"]},\"chemical/x-cif\":{\"source\":\"apache\",\"extensions\":[\"cif\"]},\"chemical/x-cmdf\":{\"source\":\"apache\",\"extensions\":[\"cmdf\"]},\"chemical/x-cml\":{\"source\":\"apache\",\"extensions\":[\"cml\"]},\"chemical/x-csml\":{\"source\":\"apache\",\"extensions\":[\"csml\"]},\"chemical/x-pdb\":{\"source\":\"apache\"},\"chemical/x-xyz\":{\"source\":\"apache\",\"extensions\":[\"xyz\"]},\"font/collection\":{\"source\":\"iana\",\"extensions\":[\"ttc\"]},\"font/otf\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"otf\"]},\"font/sfnt\":{\"source\":\"iana\"},\"font/ttf\":{\"source\":\"iana\",\"extensions\":[\"ttf\"]},\"font/woff\":{\"source\":\"iana\",\"extensions\":[\"woff\"]},\"font/woff2\":{\"source\":\"iana\",\"extensions\":[\"woff2\"]},\"image/aces\":{\"source\":\"iana\",\"extensions\":[\"exr\"]},\"image/apng\":{\"compressible\":false,\"extensions\":[\"apng\"]},\"image/avci\":{\"source\":\"iana\"},\"image/avcs\":{\"source\":\"iana\"},\"image/bmp\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"bmp\"]},\"image/cgm\":{\"source\":\"iana\",\"extensions\":[\"cgm\"]},\"image/dicom-rle\":{\"source\":\"iana\",\"extensions\":[\"drle\"]},\"image/emf\":{\"source\":\"iana\",\"extensions\":[\"emf\"]},\"image/fits\":{\"source\":\"iana\",\"extensions\":[\"fits\"]},\"image/g3fax\":{\"source\":\"iana\",\"extensions\":[\"g3\"]},\"image/gif\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"gif\"]},\"image/heic\":{\"source\":\"iana\",\"extensions\":[\"heic\"]},\"image/heic-sequence\":{\"source\":\"iana\",\"extensions\":[\"heics\"]},\"image/heif\":{\"source\":\"iana\",\"extensions\":[\"heif\"]},\"image/heif-sequence\":{\"source\":\"iana\",\"extensions\":[\"heifs\"]},\"image/ief\":{\"source\":\"iana\",\"extensions\":[\"ief\"]},\"image/jls\":{\"source\":\"iana\",\"extensions\":[\"jls\"]},\"image/jp2\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jp2\",\"jpg2\"]},\"image/jpeg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jpeg\",\"jpg\",\"jpe\"]},\"image/jpm\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jpm\"]},\"image/jpx\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jpx\",\"jpf\"]},\"image/jxr\":{\"source\":\"iana\",\"extensions\":[\"jxr\"]},\"image/ktx\":{\"source\":\"iana\",\"extensions\":[\"ktx\"]},\"image/naplps\":{\"source\":\"iana\"},\"image/pjpeg\":{\"compressible\":false},\"image/png\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"png\"]},\"image/prs.btif\":{\"source\":\"iana\",\"extensions\":[\"btif\"]},\"image/prs.pti\":{\"source\":\"iana\",\"extensions\":[\"pti\"]},\"image/pwg-raster\":{\"source\":\"iana\"},\"image/sgi\":{\"source\":\"apache\",\"extensions\":[\"sgi\"]},\"image/svg+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"svg\",\"svgz\"]},\"image/t38\":{\"source\":\"iana\",\"extensions\":[\"t38\"]},\"image/tiff\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"tif\",\"tiff\"]},\"image/tiff-fx\":{\"source\":\"iana\",\"extensions\":[\"tfx\"]},\"image/vnd.adobe.photoshop\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"psd\"]},\"image/vnd.airzip.accelerator.azv\":{\"source\":\"iana\",\"extensions\":[\"azv\"]},\"image/vnd.cns.inf2\":{\"source\":\"iana\"},\"image/vnd.dece.graphic\":{\"source\":\"iana\",\"extensions\":[\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]},\"image/vnd.djvu\":{\"source\":\"iana\",\"extensions\":[\"djvu\",\"djv\"]},\"image/vnd.dvb.subtitle\":{\"source\":\"iana\",\"extensions\":[\"sub\"]},\"image/vnd.dwg\":{\"source\":\"iana\",\"extensions\":[\"dwg\"]},\"image/vnd.dxf\":{\"source\":\"iana\",\"extensions\":[\"dxf\"]},\"image/vnd.fastbidsheet\":{\"source\":\"iana\",\"extensions\":[\"fbs\"]},\"image/vnd.fpx\":{\"source\":\"iana\",\"extensions\":[\"fpx\"]},\"image/vnd.fst\":{\"source\":\"iana\",\"extensions\":[\"fst\"]},\"image/vnd.fujixerox.edmics-mmr\":{\"source\":\"iana\",\"extensions\":[\"mmr\"]},\"image/vnd.fujixerox.edmics-rlc\":{\"source\":\"iana\",\"extensions\":[\"rlc\"]},\"image/vnd.globalgraphics.pgb\":{\"source\":\"iana\"},\"image/vnd.microsoft.icon\":{\"source\":\"iana\",\"extensions\":[\"ico\"]},\"image/vnd.mix\":{\"source\":\"iana\"},\"image/vnd.mozilla.apng\":{\"source\":\"iana\"},\"image/vnd.ms-modi\":{\"source\":\"iana\",\"extensions\":[\"mdi\"]},\"image/vnd.ms-photo\":{\"source\":\"apache\",\"extensions\":[\"wdp\"]},\"image/vnd.net-fpx\":{\"source\":\"iana\",\"extensions\":[\"npx\"]},\"image/vnd.radiance\":{\"source\":\"iana\"},\"image/vnd.sealed.png\":{\"source\":\"iana\"},\"image/vnd.sealedmedia.softseal.gif\":{\"source\":\"iana\"},\"image/vnd.sealedmedia.softseal.jpg\":{\"source\":\"iana\"},\"image/vnd.svf\":{\"source\":\"iana\"},\"image/vnd.tencent.tap\":{\"source\":\"iana\",\"extensions\":[\"tap\"]},\"image/vnd.valve.source.texture\":{\"source\":\"iana\",\"extensions\":[\"vtf\"]},\"image/vnd.wap.wbmp\":{\"source\":\"iana\",\"extensions\":[\"wbmp\"]},\"image/vnd.xiff\":{\"source\":\"iana\",\"extensions\":[\"xif\"]},\"image/vnd.zbrush.pcx\":{\"source\":\"iana\",\"extensions\":[\"pcx\"]},\"image/webp\":{\"source\":\"apache\",\"extensions\":[\"webp\"]},\"image/wmf\":{\"source\":\"iana\",\"extensions\":[\"wmf\"]},\"image/x-3ds\":{\"source\":\"apache\",\"extensions\":[\"3ds\"]},\"image/x-cmu-raster\":{\"source\":\"apache\",\"extensions\":[\"ras\"]},\"image/x-cmx\":{\"source\":\"apache\",\"extensions\":[\"cmx\"]},\"image/x-freehand\":{\"source\":\"apache\",\"extensions\":[\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]},\"image/x-icon\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"ico\"]},\"image/x-jng\":{\"source\":\"nginx\",\"extensions\":[\"jng\"]},\"image/x-mrsid-image\":{\"source\":\"apache\",\"extensions\":[\"sid\"]},\"image/x-ms-bmp\":{\"source\":\"nginx\",\"compressible\":true,\"extensions\":[\"bmp\"]},\"image/x-pcx\":{\"source\":\"apache\",\"extensions\":[\"pcx\"]},\"image/x-pict\":{\"source\":\"apache\",\"extensions\":[\"pic\",\"pct\"]},\"image/x-portable-anymap\":{\"source\":\"apache\",\"extensions\":[\"pnm\"]},\"image/x-portable-bitmap\":{\"source\":\"apache\",\"extensions\":[\"pbm\"]},\"image/x-portable-graymap\":{\"source\":\"apache\",\"extensions\":[\"pgm\"]},\"image/x-portable-pixmap\":{\"source\":\"apache\",\"extensions\":[\"ppm\"]},\"image/x-rgb\":{\"source\":\"apache\",\"extensions\":[\"rgb\"]},\"image/x-tga\":{\"source\":\"apache\",\"extensions\":[\"tga\"]},\"image/x-xbitmap\":{\"source\":\"apache\",\"extensions\":[\"xbm\"]},\"image/x-xcf\":{\"compressible\":false},\"image/x-xpixmap\":{\"source\":\"apache\",\"extensions\":[\"xpm\"]},\"image/x-xwindowdump\":{\"source\":\"apache\",\"extensions\":[\"xwd\"]},\"message/cpim\":{\"source\":\"iana\"},\"message/delivery-status\":{\"source\":\"iana\"},\"message/disposition-notification\":{\"source\":\"iana\",\"extensions\":[\"disposition-notification\"]},\"message/external-body\":{\"source\":\"iana\"},\"message/feedback-report\":{\"source\":\"iana\"},\"message/global\":{\"source\":\"iana\",\"extensions\":[\"u8msg\"]},\"message/global-delivery-status\":{\"source\":\"iana\",\"extensions\":[\"u8dsn\"]},\"message/global-disposition-notification\":{\"source\":\"iana\",\"extensions\":[\"u8mdn\"]},\"message/global-headers\":{\"source\":\"iana\",\"extensions\":[\"u8hdr\"]},\"message/http\":{\"source\":\"iana\",\"compressible\":false},\"message/imdn+xml\":{\"source\":\"iana\",\"compressible\":true},\"message/news\":{\"source\":\"iana\"},\"message/partial\":{\"source\":\"iana\",\"compressible\":false},\"message/rfc822\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"eml\",\"mime\"]},\"message/s-http\":{\"source\":\"iana\"},\"message/sip\":{\"source\":\"iana\"},\"message/sipfrag\":{\"source\":\"iana\"},\"message/tracking-status\":{\"source\":\"iana\"},\"message/vnd.si.simp\":{\"source\":\"iana\"},\"message/vnd.wfa.wsc\":{\"source\":\"iana\",\"extensions\":[\"wsc\"]},\"model/3mf\":{\"source\":\"iana\",\"extensions\":[\"3mf\"]},\"model/gltf+json\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"gltf\"]},\"model/gltf-binary\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"glb\"]},\"model/iges\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"igs\",\"iges\"]},\"model/mesh\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"msh\",\"mesh\",\"silo\"]},\"model/stl\":{\"source\":\"iana\",\"extensions\":[\"stl\"]},\"model/vnd.collada+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dae\"]},\"model/vnd.dwf\":{\"source\":\"iana\",\"extensions\":[\"dwf\"]},\"model/vnd.flatland.3dml\":{\"source\":\"iana\"},\"model/vnd.gdl\":{\"source\":\"iana\",\"extensions\":[\"gdl\"]},\"model/vnd.gs-gdl\":{\"source\":\"apache\"},\"model/vnd.gs.gdl\":{\"source\":\"iana\"},\"model/vnd.gtw\":{\"source\":\"iana\",\"extensions\":[\"gtw\"]},\"model/vnd.moml+xml\":{\"source\":\"iana\",\"compressible\":true},\"model/vnd.mts\":{\"source\":\"iana\",\"extensions\":[\"mts\"]},\"model/vnd.opengex\":{\"source\":\"iana\",\"extensions\":[\"ogex\"]},\"model/vnd.parasolid.transmit.binary\":{\"source\":\"iana\",\"extensions\":[\"x_b\"]},\"model/vnd.parasolid.transmit.text\":{\"source\":\"iana\",\"extensions\":[\"x_t\"]},\"model/vnd.rosette.annotated-data-model\":{\"source\":\"iana\"},\"model/vnd.usdz+zip\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"usdz\"]},\"model/vnd.valve.source.compiled-map\":{\"source\":\"iana\",\"extensions\":[\"bsp\"]},\"model/vnd.vtu\":{\"source\":\"iana\",\"extensions\":[\"vtu\"]},\"model/vrml\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"wrl\",\"vrml\"]},\"model/x3d+binary\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"x3db\",\"x3dbz\"]},\"model/x3d+fastinfoset\":{\"source\":\"iana\",\"extensions\":[\"x3db\"]},\"model/x3d+vrml\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"x3dv\",\"x3dvz\"]},\"model/x3d+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"x3d\",\"x3dz\"]},\"model/x3d-vrml\":{\"source\":\"iana\",\"extensions\":[\"x3dv\"]},\"multipart/alternative\":{\"source\":\"iana\",\"compressible\":false},\"multipart/appledouble\":{\"source\":\"iana\"},\"multipart/byteranges\":{\"source\":\"iana\"},\"multipart/digest\":{\"source\":\"iana\"},\"multipart/encrypted\":{\"source\":\"iana\",\"compressible\":false},\"multipart/form-data\":{\"source\":\"iana\",\"compressible\":false},\"multipart/header-set\":{\"source\":\"iana\"},\"multipart/mixed\":{\"source\":\"iana\",\"compressible\":false},\"multipart/multilingual\":{\"source\":\"iana\"},\"multipart/parallel\":{\"source\":\"iana\"},\"multipart/related\":{\"source\":\"iana\",\"compressible\":false},\"multipart/report\":{\"source\":\"iana\"},\"multipart/signed\":{\"source\":\"iana\",\"compressible\":false},\"multipart/vnd.bint.med-plus\":{\"source\":\"iana\"},\"multipart/voice-message\":{\"source\":\"iana\"},\"multipart/x-mixed-replace\":{\"source\":\"iana\"},\"text/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"text/cache-manifest\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"appcache\",\"manifest\"]},\"text/calendar\":{\"source\":\"iana\",\"extensions\":[\"ics\",\"ifb\"]},\"text/calender\":{\"compressible\":true},\"text/cmd\":{\"compressible\":true},\"text/coffeescript\":{\"extensions\":[\"coffee\",\"litcoffee\"]},\"text/css\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"css\"]},\"text/csv\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"csv\"]},\"text/csv-schema\":{\"source\":\"iana\"},\"text/directory\":{\"source\":\"iana\"},\"text/dns\":{\"source\":\"iana\"},\"text/ecmascript\":{\"source\":\"iana\"},\"text/encaprtp\":{\"source\":\"iana\"},\"text/enriched\":{\"source\":\"iana\"},\"text/fwdred\":{\"source\":\"iana\"},\"text/grammar-ref-list\":{\"source\":\"iana\"},\"text/html\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"html\",\"htm\",\"shtml\"]},\"text/jade\":{\"extensions\":[\"jade\"]},\"text/javascript\":{\"source\":\"iana\",\"compressible\":true},\"text/jcr-cnd\":{\"source\":\"iana\"},\"text/jsx\":{\"compressible\":true,\"extensions\":[\"jsx\"]},\"text/less\":{\"compressible\":true,\"extensions\":[\"less\"]},\"text/markdown\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"markdown\",\"md\"]},\"text/mathml\":{\"source\":\"nginx\",\"extensions\":[\"mml\"]},\"text/mdx\":{\"compressible\":true,\"extensions\":[\"mdx\"]},\"text/mizar\":{\"source\":\"iana\"},\"text/n3\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"n3\"]},\"text/parameters\":{\"source\":\"iana\"},\"text/parityfec\":{\"source\":\"iana\"},\"text/plain\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]},\"text/provenance-notation\":{\"source\":\"iana\"},\"text/prs.fallenstein.rst\":{\"source\":\"iana\"},\"text/prs.lines.tag\":{\"source\":\"iana\",\"extensions\":[\"dsc\"]},\"text/prs.prop.logic\":{\"source\":\"iana\"},\"text/raptorfec\":{\"source\":\"iana\"},\"text/red\":{\"source\":\"iana\"},\"text/rfc822-headers\":{\"source\":\"iana\"},\"text/richtext\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rtx\"]},\"text/rtf\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rtf\"]},\"text/rtp-enc-aescm128\":{\"source\":\"iana\"},\"text/rtploopback\":{\"source\":\"iana\"},\"text/rtx\":{\"source\":\"iana\"},\"text/sgml\":{\"source\":\"iana\",\"extensions\":[\"sgml\",\"sgm\"]},\"text/shex\":{\"extensions\":[\"shex\"]},\"text/slim\":{\"extensions\":[\"slim\",\"slm\"]},\"text/strings\":{\"source\":\"iana\"},\"text/stylus\":{\"extensions\":[\"stylus\",\"styl\"]},\"text/t140\":{\"source\":\"iana\"},\"text/tab-separated-values\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"tsv\"]},\"text/troff\":{\"source\":\"iana\",\"extensions\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]},\"text/turtle\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"extensions\":[\"ttl\"]},\"text/ulpfec\":{\"source\":\"iana\"},\"text/uri-list\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"uri\",\"uris\",\"urls\"]},\"text/vcard\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"vcard\"]},\"text/vnd.a\":{\"source\":\"iana\"},\"text/vnd.abc\":{\"source\":\"iana\"},\"text/vnd.ascii-art\":{\"source\":\"iana\"},\"text/vnd.curl\":{\"source\":\"iana\",\"extensions\":[\"curl\"]},\"text/vnd.curl.dcurl\":{\"source\":\"apache\",\"extensions\":[\"dcurl\"]},\"text/vnd.curl.mcurl\":{\"source\":\"apache\",\"extensions\":[\"mcurl\"]},\"text/vnd.curl.scurl\":{\"source\":\"apache\",\"extensions\":[\"scurl\"]},\"text/vnd.debian.copyright\":{\"source\":\"iana\"},\"text/vnd.dmclientscript\":{\"source\":\"iana\"},\"text/vnd.dvb.subtitle\":{\"source\":\"iana\",\"extensions\":[\"sub\"]},\"text/vnd.esmertec.theme-descriptor\":{\"source\":\"iana\"},\"text/vnd.fly\":{\"source\":\"iana\",\"extensions\":[\"fly\"]},\"text/vnd.fmi.flexstor\":{\"source\":\"iana\",\"extensions\":[\"flx\"]},\"text/vnd.gml\":{\"source\":\"iana\"},\"text/vnd.graphviz\":{\"source\":\"iana\",\"extensions\":[\"gv\"]},\"text/vnd.hgl\":{\"source\":\"iana\"},\"text/vnd.in3d.3dml\":{\"source\":\"iana\",\"extensions\":[\"3dml\"]},\"text/vnd.in3d.spot\":{\"source\":\"iana\",\"extensions\":[\"spot\"]},\"text/vnd.iptc.newsml\":{\"source\":\"iana\"},\"text/vnd.iptc.nitf\":{\"source\":\"iana\"},\"text/vnd.latex-z\":{\"source\":\"iana\"},\"text/vnd.motorola.reflex\":{\"source\":\"iana\"},\"text/vnd.ms-mediapackage\":{\"source\":\"iana\"},\"text/vnd.net2phone.commcenter.command\":{\"source\":\"iana\"},\"text/vnd.radisys.msml-basic-layout\":{\"source\":\"iana\"},\"text/vnd.senx.warpscript\":{\"source\":\"iana\"},\"text/vnd.si.uricatalogue\":{\"source\":\"iana\"},\"text/vnd.sun.j2me.app-descriptor\":{\"source\":\"iana\",\"extensions\":[\"jad\"]},\"text/vnd.trolltech.linguist\":{\"source\":\"iana\"},\"text/vnd.wap.si\":{\"source\":\"iana\"},\"text/vnd.wap.sl\":{\"source\":\"iana\"},\"text/vnd.wap.wml\":{\"source\":\"iana\",\"extensions\":[\"wml\"]},\"text/vnd.wap.wmlscript\":{\"source\":\"iana\",\"extensions\":[\"wmls\"]},\"text/vtt\":{\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"vtt\"]},\"text/x-asm\":{\"source\":\"apache\",\"extensions\":[\"s\",\"asm\"]},\"text/x-c\":{\"source\":\"apache\",\"extensions\":[\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]},\"text/x-component\":{\"source\":\"nginx\",\"extensions\":[\"htc\"]},\"text/x-fortran\":{\"source\":\"apache\",\"extensions\":[\"f\",\"for\",\"f77\",\"f90\"]},\"text/x-gwt-rpc\":{\"compressible\":true},\"text/x-handlebars-template\":{\"extensions\":[\"hbs\"]},\"text/x-java-source\":{\"source\":\"apache\",\"extensions\":[\"java\"]},\"text/x-jquery-tmpl\":{\"compressible\":true},\"text/x-lua\":{\"extensions\":[\"lua\"]},\"text/x-markdown\":{\"compressible\":true,\"extensions\":[\"mkd\"]},\"text/x-nfo\":{\"source\":\"apache\",\"extensions\":[\"nfo\"]},\"text/x-opml\":{\"source\":\"apache\",\"extensions\":[\"opml\"]},\"text/x-org\":{\"compressible\":true,\"extensions\":[\"org\"]},\"text/x-pascal\":{\"source\":\"apache\",\"extensions\":[\"p\",\"pas\"]},\"text/x-processing\":{\"compressible\":true,\"extensions\":[\"pde\"]},\"text/x-sass\":{\"extensions\":[\"sass\"]},\"text/x-scss\":{\"extensions\":[\"scss\"]},\"text/x-setext\":{\"source\":\"apache\",\"extensions\":[\"etx\"]},\"text/x-sfv\":{\"source\":\"apache\",\"extensions\":[\"sfv\"]},\"text/x-suse-ymp\":{\"compressible\":true,\"extensions\":[\"ymp\"]},\"text/x-uuencode\":{\"source\":\"apache\",\"extensions\":[\"uu\"]},\"text/x-vcalendar\":{\"source\":\"apache\",\"extensions\":[\"vcs\"]},\"text/x-vcard\":{\"source\":\"apache\",\"extensions\":[\"vcf\"]},\"text/xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xml\"]},\"text/xml-external-parsed-entity\":{\"source\":\"iana\"},\"text/yaml\":{\"extensions\":[\"yaml\",\"yml\"]},\"video/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"video/3gpp\":{\"source\":\"iana\",\"extensions\":[\"3gp\",\"3gpp\"]},\"video/3gpp-tt\":{\"source\":\"iana\"},\"video/3gpp2\":{\"source\":\"iana\",\"extensions\":[\"3g2\"]},\"video/bmpeg\":{\"source\":\"iana\"},\"video/bt656\":{\"source\":\"iana\"},\"video/celb\":{\"source\":\"iana\"},\"video/dv\":{\"source\":\"iana\"},\"video/encaprtp\":{\"source\":\"iana\"},\"video/h261\":{\"source\":\"iana\",\"extensions\":[\"h261\"]},\"video/h263\":{\"source\":\"iana\",\"extensions\":[\"h263\"]},\"video/h263-1998\":{\"source\":\"iana\"},\"video/h263-2000\":{\"source\":\"iana\"},\"video/h264\":{\"source\":\"iana\",\"extensions\":[\"h264\"]},\"video/h264-rcdo\":{\"source\":\"iana\"},\"video/h264-svc\":{\"source\":\"iana\"},\"video/h265\":{\"source\":\"iana\"},\"video/iso.segment\":{\"source\":\"iana\"},\"video/jpeg\":{\"source\":\"iana\",\"extensions\":[\"jpgv\"]},\"video/jpeg2000\":{\"source\":\"iana\"},\"video/jpm\":{\"source\":\"apache\",\"extensions\":[\"jpm\",\"jpgm\"]},\"video/mj2\":{\"source\":\"iana\",\"extensions\":[\"mj2\",\"mjp2\"]},\"video/mp1s\":{\"source\":\"iana\"},\"video/mp2p\":{\"source\":\"iana\"},\"video/mp2t\":{\"source\":\"iana\",\"extensions\":[\"ts\"]},\"video/mp4\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"mp4\",\"mp4v\",\"mpg4\"]},\"video/mp4v-es\":{\"source\":\"iana\"},\"video/mpeg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]},\"video/mpeg4-generic\":{\"source\":\"iana\"},\"video/mpv\":{\"source\":\"iana\"},\"video/nv\":{\"source\":\"iana\"},\"video/ogg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ogv\"]},\"video/parityfec\":{\"source\":\"iana\"},\"video/pointer\":{\"source\":\"iana\"},\"video/quicktime\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"qt\",\"mov\"]},\"video/raptorfec\":{\"source\":\"iana\"},\"video/raw\":{\"source\":\"iana\"},\"video/rtp-enc-aescm128\":{\"source\":\"iana\"},\"video/rtploopback\":{\"source\":\"iana\"},\"video/rtx\":{\"source\":\"iana\"},\"video/smpte291\":{\"source\":\"iana\"},\"video/smpte292m\":{\"source\":\"iana\"},\"video/ulpfec\":{\"source\":\"iana\"},\"video/vc1\":{\"source\":\"iana\"},\"video/vc2\":{\"source\":\"iana\"},\"video/vnd.cctv\":{\"source\":\"iana\"},\"video/vnd.dece.hd\":{\"source\":\"iana\",\"extensions\":[\"uvh\",\"uvvh\"]},\"video/vnd.dece.mobile\":{\"source\":\"iana\",\"extensions\":[\"uvm\",\"uvvm\"]},\"video/vnd.dece.mp4\":{\"source\":\"iana\"},\"video/vnd.dece.pd\":{\"source\":\"iana\",\"extensions\":[\"uvp\",\"uvvp\"]},\"video/vnd.dece.sd\":{\"source\":\"iana\",\"extensions\":[\"uvs\",\"uvvs\"]},\"video/vnd.dece.video\":{\"source\":\"iana\",\"extensions\":[\"uvv\",\"uvvv\"]},\"video/vnd.directv.mpeg\":{\"source\":\"iana\"},\"video/vnd.directv.mpeg-tts\":{\"source\":\"iana\"},\"video/vnd.dlna.mpeg-tts\":{\"source\":\"iana\"},\"video/vnd.dvb.file\":{\"source\":\"iana\",\"extensions\":[\"dvb\"]},\"video/vnd.fvt\":{\"source\":\"iana\",\"extensions\":[\"fvt\"]},\"video/vnd.hns.video\":{\"source\":\"iana\"},\"video/vnd.iptvforum.1dparityfec-1010\":{\"source\":\"iana\"},\"video/vnd.iptvforum.1dparityfec-2005\":{\"source\":\"iana\"},\"video/vnd.iptvforum.2dparityfec-1010\":{\"source\":\"iana\"},\"video/vnd.iptvforum.2dparityfec-2005\":{\"source\":\"iana\"},\"video/vnd.iptvforum.ttsavc\":{\"source\":\"iana\"},\"video/vnd.iptvforum.ttsmpeg2\":{\"source\":\"iana\"},\"video/vnd.motorola.video\":{\"source\":\"iana\"},\"video/vnd.motorola.videop\":{\"source\":\"iana\"},\"video/vnd.mpegurl\":{\"source\":\"iana\",\"extensions\":[\"mxu\",\"m4u\"]},\"video/vnd.ms-playready.media.pyv\":{\"source\":\"iana\",\"extensions\":[\"pyv\"]},\"video/vnd.nokia.interleaved-multimedia\":{\"source\":\"iana\"},\"video/vnd.nokia.mp4vr\":{\"source\":\"iana\"},\"video/vnd.nokia.videovoip\":{\"source\":\"iana\"},\"video/vnd.objectvideo\":{\"source\":\"iana\"},\"video/vnd.radgamettools.bink\":{\"source\":\"iana\"},\"video/vnd.radgamettools.smacker\":{\"source\":\"iana\"},\"video/vnd.sealed.mpeg1\":{\"source\":\"iana\"},\"video/vnd.sealed.mpeg4\":{\"source\":\"iana\"},\"video/vnd.sealed.swf\":{\"source\":\"iana\"},\"video/vnd.sealedmedia.softseal.mov\":{\"source\":\"iana\"},\"video/vnd.uvvu.mp4\":{\"source\":\"iana\",\"extensions\":[\"uvu\",\"uvvu\"]},\"video/vnd.vivo\":{\"source\":\"iana\",\"extensions\":[\"viv\"]},\"video/vp8\":{\"source\":\"iana\"},\"video/webm\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"webm\"]},\"video/x-f4v\":{\"source\":\"apache\",\"extensions\":[\"f4v\"]},\"video/x-fli\":{\"source\":\"apache\",\"extensions\":[\"fli\"]},\"video/x-flv\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"flv\"]},\"video/x-m4v\":{\"source\":\"apache\",\"extensions\":[\"m4v\"]},\"video/x-matroska\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"mkv\",\"mk3d\",\"mks\"]},\"video/x-mng\":{\"source\":\"apache\",\"extensions\":[\"mng\"]},\"video/x-ms-asf\":{\"source\":\"apache\",\"extensions\":[\"asf\",\"asx\"]},\"video/x-ms-vob\":{\"source\":\"apache\",\"extensions\":[\"vob\"]},\"video/x-ms-wm\":{\"source\":\"apache\",\"extensions\":[\"wm\"]},\"video/x-ms-wmv\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"wmv\"]},\"video/x-ms-wmx\":{\"source\":\"apache\",\"extensions\":[\"wmx\"]},\"video/x-ms-wvx\":{\"source\":\"apache\",\"extensions\":[\"wvx\"]},\"video/x-msvideo\":{\"source\":\"apache\",\"extensions\":[\"avi\"]},\"video/x-sgi-movie\":{\"source\":\"apache\",\"extensions\":[\"movie\"]},\"video/x-smv\":{\"source\":\"apache\",\"extensions\":[\"smv\"]},\"x-conference/x-cooltalk\":{\"source\":\"apache\",\"extensions\":[\"ice\"]},\"x-shader/x-fragment\":{\"compressible\":true},\"x-shader/x-vertex\":{\"compressible\":true}}");

/***/ }),
/* 385 */
/***/ (function(module, exports) {

function Caseless (dict) {
  this.dict = dict || {}
}
Caseless.prototype.set = function (name, value, clobber) {
  if (typeof name === 'object') {
    for (var i in name) {
      this.set(i, name[i], value)
    }
  } else {
    if (typeof clobber === 'undefined') clobber = true
    var has = this.has(name)

    if (!clobber && has) this.dict[has] = this.dict[has] + ',' + value
    else this.dict[has || name] = value
    return has
  }
}
Caseless.prototype.has = function (name) {
  var keys = Object.keys(this.dict)
    , name = name.toLowerCase()
    ;
  for (var i=0;i<keys.length;i++) {
    if (keys[i].toLowerCase() === name) return keys[i]
  }
  return false
}
Caseless.prototype.get = function (name) {
  name = name.toLowerCase()
  var result, _key
  var headers = this.dict
  Object.keys(headers).forEach(function (key) {
    _key = key.toLowerCase()
    if (name === _key) result = headers[key]
  })
  return result
}
Caseless.prototype.swap = function (name) {
  var has = this.has(name)
  if (has === name) return
  if (!has) throw new Error('There is no header than matches "'+name+'"')
  this.dict[name] = this.dict[has]
  delete this.dict[has]
}
Caseless.prototype.del = function (name) {
  var has = this.has(name)
  return delete this.dict[has || name]
}

module.exports = function (dict) {return new Caseless(dict)}
module.exports.httpify = function (resp, headers) {
  var c = new Caseless(headers)
  resp.setHeader = function (key, value, clobber) {
    if (typeof value === 'undefined') return
    return c.set(key, value, clobber)
  }
  resp.hasHeader = function (key) {
    return c.has(key)
  }
  resp.getHeader = function (key) {
    return c.get(key)
  }
  resp.removeHeader = function (key) {
    return c.del(key)
  }
  resp.headers = c.dict
  return c
}


/***/ }),
/* 386 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = ForeverAgent
ForeverAgent.SSL = ForeverAgentSSL

var util = __webpack_require__(113)
  , Agent = __webpack_require__(326).Agent
  , net = __webpack_require__(58)
  , tls = __webpack_require__(387)
  , AgentSSL = __webpack_require__(327).Agent
  
function getConnectionName(host, port) {  
  var name = ''
  if (typeof host === 'string') {
    name = host + ':' + port
  } else {
    // For node.js v012.0 and iojs-v1.5.1, host is an object. And any existing localAddress is part of the connection name.
    name = host.host + ':' + host.port + ':' + (host.localAddress ? (host.localAddress + ':') : ':')
  }
  return name
}    

function ForeverAgent(options) {
  var self = this
  self.options = options || {}
  self.requests = {}
  self.sockets = {}
  self.freeSockets = {}
  self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets
  self.minSockets = self.options.minSockets || ForeverAgent.defaultMinSockets
  self.on('free', function(socket, host, port) {
    var name = getConnectionName(host, port)

    if (self.requests[name] && self.requests[name].length) {
      self.requests[name].shift().onSocket(socket)
    } else if (self.sockets[name].length < self.minSockets) {
      if (!self.freeSockets[name]) self.freeSockets[name] = []
      self.freeSockets[name].push(socket)
      
      // if an error happens while we don't use the socket anyway, meh, throw the socket away
      var onIdleError = function() {
        socket.destroy()
      }
      socket._onIdleError = onIdleError
      socket.on('error', onIdleError)
    } else {
      // If there are no pending requests just destroy the
      // socket and it will get removed from the pool. This
      // gets us out of timeout issues and allows us to
      // default to Connection:keep-alive.
      socket.destroy()
    }
  })

}
util.inherits(ForeverAgent, Agent)

ForeverAgent.defaultMinSockets = 5


ForeverAgent.prototype.createConnection = net.createConnection
ForeverAgent.prototype.addRequestNoreuse = Agent.prototype.addRequest
ForeverAgent.prototype.addRequest = function(req, host, port) {
  var name = getConnectionName(host, port)
  
  if (typeof host !== 'string') {
    var options = host
    port = options.port
    host = options.host
  }

  if (this.freeSockets[name] && this.freeSockets[name].length > 0 && !req.useChunkedEncodingByDefault) {
    var idleSocket = this.freeSockets[name].pop()
    idleSocket.removeListener('error', idleSocket._onIdleError)
    delete idleSocket._onIdleError
    req._reusedSocket = true
    req.onSocket(idleSocket)
  } else {
    this.addRequestNoreuse(req, host, port)
  }
}

ForeverAgent.prototype.removeSocket = function(s, name, host, port) {
  if (this.sockets[name]) {
    var index = this.sockets[name].indexOf(s)
    if (index !== -1) {
      this.sockets[name].splice(index, 1)
    }
  } else if (this.sockets[name] && this.sockets[name].length === 0) {
    // don't leak
    delete this.sockets[name]
    delete this.requests[name]
  }
  
  if (this.freeSockets[name]) {
    var index = this.freeSockets[name].indexOf(s)
    if (index !== -1) {
      this.freeSockets[name].splice(index, 1)
      if (this.freeSockets[name].length === 0) {
        delete this.freeSockets[name]
      }
    }
  }

  if (this.requests[name] && this.requests[name].length) {
    // If we have pending requests and a socket gets closed a new one
    // needs to be created to take over in the pool for the one that closed.
    this.createSocket(name, host, port).emit('free')
  }
}

function ForeverAgentSSL (options) {
  ForeverAgent.call(this, options)
}
util.inherits(ForeverAgentSSL, ForeverAgent)

ForeverAgentSSL.prototype.createConnection = createConnectionSSL
ForeverAgentSSL.prototype.addRequestNoreuse = AgentSSL.prototype.addRequest

function createConnectionSSL (port, host, options) {
  if (typeof port === 'object') {
    options = port;
  } else if (typeof host === 'object') {
    options = host;
  } else if (typeof options === 'object') {
    options = options;
  } else {
    options = {};
  }

  if (typeof port === 'number') {
    options.port = port;
  }

  if (typeof host === 'string') {
    options.host = host;
  }

  return tls.connect(options);
}


/***/ }),
/* 387 */
/***/ (function(module, exports) {

module.exports = require("tls");

/***/ }),
/* 388 */
/***/ (function(module, exports, __webpack_require__) {

var CombinedStream = __webpack_require__(389);
var util = __webpack_require__(113);
var path = __webpack_require__(55);
var http = __webpack_require__(326);
var https = __webpack_require__(327);
var parseUrl = __webpack_require__(274).parse;
var fs = __webpack_require__(94);
var mime = __webpack_require__(382);
var asynckit = __webpack_require__(391);
var populate = __webpack_require__(401);

// Public API
module.exports = FormData;

// make it a Stream
util.inherits(FormData, CombinedStream);

/**
 * Create readable "multipart/form-data" streams.
 * Can be used to submit forms
 * and file uploads to other web applications.
 *
 * @constructor
 * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream
 */
function FormData(options) {
  if (!(this instanceof FormData)) {
    return new FormData();
  }

  this._overheadLength = 0;
  this._valueLength = 0;
  this._valuesToMeasure = [];

  CombinedStream.call(this);

  options = options || {};
  for (var option in options) {
    this[option] = options[option];
  }
}

FormData.LINE_BREAK = '\r\n';
FormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';

FormData.prototype.append = function(field, value, options) {

  options = options || {};

  // allow filename as single option
  if (typeof options == 'string') {
    options = {filename: options};
  }

  var append = CombinedStream.prototype.append.bind(this);

  // all that streamy business can't handle numbers
  if (typeof value == 'number') {
    value = '' + value;
  }

  // https://github.com/felixge/node-form-data/issues/38
  if (util.isArray(value)) {
    // Please convert your array into string
    // the way web server expects it
    this._error(new Error('Arrays are not supported.'));
    return;
  }

  var header = this._multiPartHeader(field, value, options);
  var footer = this._multiPartFooter();

  append(header);
  append(value);
  append(footer);

  // pass along options.knownLength
  this._trackLength(header, value, options);
};

FormData.prototype._trackLength = function(header, value, options) {
  var valueLength = 0;

  // used w/ getLengthSync(), when length is known.
  // e.g. for streaming directly from a remote server,
  // w/ a known file a size, and not wanting to wait for
  // incoming file to finish to get its size.
  if (options.knownLength != null) {
    valueLength += +options.knownLength;
  } else if (Buffer.isBuffer(value)) {
    valueLength = value.length;
  } else if (typeof value === 'string') {
    valueLength = Buffer.byteLength(value);
  }

  this._valueLength += valueLength;

  // @check why add CRLF? does this account for custom/multiple CRLFs?
  this._overheadLength +=
    Buffer.byteLength(header) +
    FormData.LINE_BREAK.length;

  // empty or either doesn't have path or not an http response
  if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) )) {
    return;
  }

  // no need to bother with the length
  if (!options.knownLength) {
    this._valuesToMeasure.push(value);
  }
};

FormData.prototype._lengthRetriever = function(value, callback) {

  if (value.hasOwnProperty('fd')) {

    // take read range into a account
    // `end` = Infinity –> read file till the end
    //
    // TODO: Looks like there is bug in Node fs.createReadStream
    // it doesn't respect `end` options without `start` options
    // Fix it when node fixes it.
    // https://github.com/joyent/node/issues/7819
    if (value.end != undefined && value.end != Infinity && value.start != undefined) {

      // when end specified
      // no need to calculate range
      // inclusive, starts with 0
      callback(null, value.end + 1 - (value.start ? value.start : 0));

    // not that fast snoopy
    } else {
      // still need to fetch file size from fs
      fs.stat(value.path, function(err, stat) {

        var fileSize;

        if (err) {
          callback(err);
          return;
        }

        // update final size based on the range options
        fileSize = stat.size - (value.start ? value.start : 0);
        callback(null, fileSize);
      });
    }

  // or http response
  } else if (value.hasOwnProperty('httpVersion')) {
    callback(null, +value.headers['content-length']);

  // or request stream http://github.com/mikeal/request
  } else if (value.hasOwnProperty('httpModule')) {
    // wait till response come back
    value.on('response', function(response) {
      value.pause();
      callback(null, +response.headers['content-length']);
    });
    value.resume();

  // something else
  } else {
    callback('Unknown stream');
  }
};

FormData.prototype._multiPartHeader = function(field, value, options) {
  // custom header specified (as string)?
  // it becomes responsible for boundary
  // (e.g. to handle extra CRLFs on .NET servers)
  if (typeof options.header == 'string') {
    return options.header;
  }

  var contentDisposition = this._getContentDisposition(value, options);
  var contentType = this._getContentType(value, options);

  var contents = '';
  var headers  = {
    // add custom disposition as third element or keep it two elements if not
    'Content-Disposition': ['form-data', 'name="' + field + '"'].concat(contentDisposition || []),
    // if no content type. allow it to be empty array
    'Content-Type': [].concat(contentType || [])
  };

  // allow custom headers.
  if (typeof options.header == 'object') {
    populate(headers, options.header);
  }

  var header;
  for (var prop in headers) {
    if (!headers.hasOwnProperty(prop)) continue;
    header = headers[prop];

    // skip nullish headers.
    if (header == null) {
      continue;
    }

    // convert all headers to arrays.
    if (!Array.isArray(header)) {
      header = [header];
    }

    // add non-empty headers.
    if (header.length) {
      contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;
    }
  }

  return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;
};

FormData.prototype._getContentDisposition = function(value, options) {

  var filename
    , contentDisposition
    ;

  if (typeof options.filepath === 'string') {
    // custom filepath for relative paths
    filename = path.normalize(options.filepath).replace(/\\/g, '/');
  } else if (options.filename || value.name || value.path) {
    // custom filename take precedence
    // formidable and the browser add a name property
    // fs- and request- streams have path property
    filename = path.basename(options.filename || value.name || value.path);
  } else if (value.readable && value.hasOwnProperty('httpVersion')) {
    // or try http response
    filename = path.basename(value.client._httpMessage.path);
  }

  if (filename) {
    contentDisposition = 'filename="' + filename + '"';
  }

  return contentDisposition;
};

FormData.prototype._getContentType = function(value, options) {

  // use custom content-type above all
  var contentType = options.contentType;

  // or try `name` from formidable, browser
  if (!contentType && value.name) {
    contentType = mime.lookup(value.name);
  }

  // or try `path` from fs-, request- streams
  if (!contentType && value.path) {
    contentType = mime.lookup(value.path);
  }

  // or if it's http-reponse
  if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {
    contentType = value.headers['content-type'];
  }

  // or guess it from the filepath or filename
  if (!contentType && (options.filepath || options.filename)) {
    contentType = mime.lookup(options.filepath || options.filename);
  }

  // fallback to the default content type if `value` is not simple value
  if (!contentType && typeof value == 'object') {
    contentType = FormData.DEFAULT_CONTENT_TYPE;
  }

  return contentType;
};

FormData.prototype._multiPartFooter = function() {
  return function(next) {
    var footer = FormData.LINE_BREAK;

    var lastPart = (this._streams.length === 0);
    if (lastPart) {
      footer += this._lastBoundary();
    }

    next(footer);
  }.bind(this);
};

FormData.prototype._lastBoundary = function() {
  return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;
};

FormData.prototype.getHeaders = function(userHeaders) {
  var header;
  var formHeaders = {
    'content-type': 'multipart/form-data; boundary=' + this.getBoundary()
  };

  for (header in userHeaders) {
    if (userHeaders.hasOwnProperty(header)) {
      formHeaders[header.toLowerCase()] = userHeaders[header];
    }
  }

  return formHeaders;
};

FormData.prototype.getBoundary = function() {
  if (!this._boundary) {
    this._generateBoundary();
  }

  return this._boundary;
};

FormData.prototype._generateBoundary = function() {
  // This generates a 50 character boundary similar to those used by Firefox.
  // They are optimized for boyer-moore parsing.
  var boundary = '--------------------------';
  for (var i = 0; i < 24; i++) {
    boundary += Math.floor(Math.random() * 10).toString(16);
  }

  this._boundary = boundary;
};

// Note: getLengthSync DOESN'T calculate streams length
// As workaround one can calculate file size manually
// and add it as knownLength option
FormData.prototype.getLengthSync = function() {
  var knownLength = this._overheadLength + this._valueLength;

  // Don't get confused, there are 3 "internal" streams for each keyval pair
  // so it basically checks if there is any value added to the form
  if (this._streams.length) {
    knownLength += this._lastBoundary().length;
  }

  // https://github.com/form-data/form-data/issues/40
  if (!this.hasKnownLength()) {
    // Some async length retrievers are present
    // therefore synchronous length calculation is false.
    // Please use getLength(callback) to get proper length
    this._error(new Error('Cannot calculate proper length in synchronous way.'));
  }

  return knownLength;
};

// Public API to check if length of added values is known
// https://github.com/form-data/form-data/issues/196
// https://github.com/form-data/form-data/issues/262
FormData.prototype.hasKnownLength = function() {
  var hasKnownLength = true;

  if (this._valuesToMeasure.length) {
    hasKnownLength = false;
  }

  return hasKnownLength;
};

FormData.prototype.getLength = function(cb) {
  var knownLength = this._overheadLength + this._valueLength;

  if (this._streams.length) {
    knownLength += this._lastBoundary().length;
  }

  if (!this._valuesToMeasure.length) {
    process.nextTick(cb.bind(this, null, knownLength));
    return;
  }

  asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {
    if (err) {
      cb(err);
      return;
    }

    values.forEach(function(length) {
      knownLength += length;
    });

    cb(null, knownLength);
  });
};

FormData.prototype.submit = function(params, cb) {
  var request
    , options
    , defaults = {method: 'post'}
    ;

  // parse provided url if it's string
  // or treat it as options object
  if (typeof params == 'string') {

    params = parseUrl(params);
    options = populate({
      port: params.port,
      path: params.pathname,
      host: params.hostname,
      protocol: params.protocol
    }, defaults);

  // use custom params
  } else {

    options = populate(params, defaults);
    // if no port provided use default one
    if (!options.port) {
      options.port = options.protocol == 'https:' ? 443 : 80;
    }
  }

  // put that good code in getHeaders to some use
  options.headers = this.getHeaders(params.headers);

  // https if specified, fallback to http in any other case
  if (options.protocol == 'https:') {
    request = https.request(options);
  } else {
    request = http.request(options);
  }

  // get content length and fire away
  this.getLength(function(err, length) {
    if (err) {
      this._error(err);
      return;
    }

    // add content length
    request.setHeader('Content-Length', length);

    this.pipe(request);
    if (cb) {
      request.on('error', cb);
      request.on('response', cb.bind(this, null));
    }
  }.bind(this));

  return request;
};

FormData.prototype._error = function(err) {
  if (!this.error) {
    this.error = err;
    this.pause();
    this.emit('error', err);
  }
};

FormData.prototype.toString = function () {
  return '[object FormData]';
};


/***/ }),
/* 389 */
/***/ (function(module, exports, __webpack_require__) {

var util = __webpack_require__(113);
var Stream = __webpack_require__(111).Stream;
var DelayedStream = __webpack_require__(390);

module.exports = CombinedStream;
function CombinedStream() {
  this.writable = false;
  this.readable = true;
  this.dataSize = 0;
  this.maxDataSize = 2 * 1024 * 1024;
  this.pauseStreams = true;

  this._released = false;
  this._streams = [];
  this._currentStream = null;
  this._insideLoop = false;
  this._pendingNext = false;
}
util.inherits(CombinedStream, Stream);

CombinedStream.create = function(options) {
  var combinedStream = new this();

  options = options || {};
  for (var option in options) {
    combinedStream[option] = options[option];
  }

  return combinedStream;
};

CombinedStream.isStreamLike = function(stream) {
  return (typeof stream !== 'function')
    && (typeof stream !== 'string')
    && (typeof stream !== 'boolean')
    && (typeof stream !== 'number')
    && (!Buffer.isBuffer(stream));
};

CombinedStream.prototype.append = function(stream) {
  var isStreamLike = CombinedStream.isStreamLike(stream);

  if (isStreamLike) {
    if (!(stream instanceof DelayedStream)) {
      var newStream = DelayedStream.create(stream, {
        maxDataSize: Infinity,
        pauseStream: this.pauseStreams,
      });
      stream.on('data', this._checkDataSize.bind(this));
      stream = newStream;
    }

    this._handleErrors(stream);

    if (this.pauseStreams) {
      stream.pause();
    }
  }

  this._streams.push(stream);
  return this;
};

CombinedStream.prototype.pipe = function(dest, options) {
  Stream.prototype.pipe.call(this, dest, options);
  this.resume();
  return dest;
};

CombinedStream.prototype._getNext = function() {
  this._currentStream = null;

  if (this._insideLoop) {
    this._pendingNext = true;
    return; // defer call
  }

  this._insideLoop = true;
  try {
    do {
      this._pendingNext = false;
      this._realGetNext();
    } while (this._pendingNext);
  } finally {
    this._insideLoop = false;
  }
};

CombinedStream.prototype._realGetNext = function() {
  var stream = this._streams.shift();


  if (typeof stream == 'undefined') {
    this.end();
    return;
  }

  if (typeof stream !== 'function') {
    this._pipeNext(stream);
    return;
  }

  var getStream = stream;
  getStream(function(stream) {
    var isStreamLike = CombinedStream.isStreamLike(stream);
    if (isStreamLike) {
      stream.on('data', this._checkDataSize.bind(this));
      this._handleErrors(stream);
    }

    this._pipeNext(stream);
  }.bind(this));
};

CombinedStream.prototype._pipeNext = function(stream) {
  this._currentStream = stream;

  var isStreamLike = CombinedStream.isStreamLike(stream);
  if (isStreamLike) {
    stream.on('end', this._getNext.bind(this));
    stream.pipe(this, {end: false});
    return;
  }

  var value = stream;
  this.write(value);
  this._getNext();
};

CombinedStream.prototype._handleErrors = function(stream) {
  var self = this;
  stream.on('error', function(err) {
    self._emitError(err);
  });
};

CombinedStream.prototype.write = function(data) {
  this.emit('data', data);
};

CombinedStream.prototype.pause = function() {
  if (!this.pauseStreams) {
    return;
  }

  if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();
  this.emit('pause');
};

CombinedStream.prototype.resume = function() {
  if (!this._released) {
    this._released = true;
    this.writable = true;
    this._getNext();
  }

  if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();
  this.emit('resume');
};

CombinedStream.prototype.end = function() {
  this._reset();
  this.emit('end');
};

CombinedStream.prototype.destroy = function() {
  this._reset();
  this.emit('close');
};

CombinedStream.prototype._reset = function() {
  this.writable = false;
  this._streams = [];
  this._currentStream = null;
};

CombinedStream.prototype._checkDataSize = function() {
  this._updateDataSize();
  if (this.dataSize <= this.maxDataSize) {
    return;
  }

  var message =
    'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';
  this._emitError(new Error(message));
};

CombinedStream.prototype._updateDataSize = function() {
  this.dataSize = 0;

  var self = this;
  this._streams.forEach(function(stream) {
    if (!stream.dataSize) {
      return;
    }

    self.dataSize += stream.dataSize;
  });

  if (this._currentStream && this._currentStream.dataSize) {
    this.dataSize += this._currentStream.dataSize;
  }
};

CombinedStream.prototype._emitError = function(err) {
  this._reset();
  this.emit('error', err);
};


/***/ }),
/* 390 */
/***/ (function(module, exports, __webpack_require__) {

var Stream = __webpack_require__(111).Stream;
var util = __webpack_require__(113);

module.exports = DelayedStream;
function DelayedStream() {
  this.source = null;
  this.dataSize = 0;
  this.maxDataSize = 1024 * 1024;
  this.pauseStream = true;

  this._maxDataSizeExceeded = false;
  this._released = false;
  this._bufferedEvents = [];
}
util.inherits(DelayedStream, Stream);

DelayedStream.create = function(source, options) {
  var delayedStream = new this();

  options = options || {};
  for (var option in options) {
    delayedStream[option] = options[option];
  }

  delayedStream.source = source;

  var realEmit = source.emit;
  source.emit = function() {
    delayedStream._handleEmit(arguments);
    return realEmit.apply(source, arguments);
  };

  source.on('error', function() {});
  if (delayedStream.pauseStream) {
    source.pause();
  }

  return delayedStream;
};

Object.defineProperty(DelayedStream.prototype, 'readable', {
  configurable: true,
  enumerable: true,
  get: function() {
    return this.source.readable;
  }
});

DelayedStream.prototype.setEncoding = function() {
  return this.source.setEncoding.apply(this.source, arguments);
};

DelayedStream.prototype.resume = function() {
  if (!this._released) {
    this.release();
  }

  this.source.resume();
};

DelayedStream.prototype.pause = function() {
  this.source.pause();
};

DelayedStream.prototype.release = function() {
  this._released = true;

  this._bufferedEvents.forEach(function(args) {
    this.emit.apply(this, args);
  }.bind(this));
  this._bufferedEvents = [];
};

DelayedStream.prototype.pipe = function() {
  var r = Stream.prototype.pipe.apply(this, arguments);
  this.resume();
  return r;
};

DelayedStream.prototype._handleEmit = function(args) {
  if (this._released) {
    this.emit.apply(this, args);
    return;
  }

  if (args[0] === 'data') {
    this.dataSize += args[1].length;
    this._checkIfMaxDataSizeExceeded();
  }

  this._bufferedEvents.push(args);
};

DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {
  if (this._maxDataSizeExceeded) {
    return;
  }

  if (this.dataSize <= this.maxDataSize) {
    return;
  }

  this._maxDataSizeExceeded = true;
  var message =
    'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'
  this.emit('error', new Error(message));
};


/***/ }),
/* 391 */
/***/ (function(module, exports, __webpack_require__) {

module.exports =
{
  parallel      : __webpack_require__(392),
  serial        : __webpack_require__(399),
  serialOrdered : __webpack_require__(400)
};


/***/ }),
/* 392 */
/***/ (function(module, exports, __webpack_require__) {

var iterate    = __webpack_require__(393)
  , initState  = __webpack_require__(397)
  , terminator = __webpack_require__(398)
  ;

// Public API
module.exports = parallel;

/**
 * Runs iterator over provided array elements in parallel
 *
 * @param   {array|object} list - array or object (named list) to iterate over
 * @param   {function} iterator - iterator to run
 * @param   {function} callback - invoked when all elements processed
 * @returns {function} - jobs terminator
 */
function parallel(list, iterator, callback)
{
  var state = initState(list);

  while (state.index < (state['keyedList'] || list).length)
  {
    iterate(list, iterator, state, function(error, result)
    {
      if (error)
      {
        callback(error, result);
        return;
      }

      // looks like it's the last one
      if (Object.keys(state.jobs).length === 0)
      {
        callback(null, state.results);
        return;
      }
    });

    state.index++;
  }

  return terminator.bind(state, callback);
}


/***/ }),
/* 393 */
/***/ (function(module, exports, __webpack_require__) {

var async = __webpack_require__(394)
  , abort = __webpack_require__(396)
  ;

// API
module.exports = iterate;

/**
 * Iterates over each job object
 *
 * @param {array|object} list - array or object (named list) to iterate over
 * @param {function} iterator - iterator to run
 * @param {object} state - current job status
 * @param {function} callback - invoked when all elements processed
 */
function iterate(list, iterator, state, callback)
{
  // store current index
  var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;

  state.jobs[key] = runJob(iterator, key, list[key], function(error, output)
  {
    // don't repeat yourself
    // skip secondary callbacks
    if (!(key in state.jobs))
    {
      return;
    }

    // clean up jobs
    delete state.jobs[key];

    if (error)
    {
      // don't process rest of the results
      // stop still active jobs
      // and reset the list
      abort(state);
    }
    else
    {
      state.results[key] = output;
    }

    // return salvaged results
    callback(error, state.results);
  });
}

/**
 * Runs iterator over provided job element
 *
 * @param   {function} iterator - iterator to invoke
 * @param   {string|number} key - key/index of the element in the list of jobs
 * @param   {mixed} item - job description
 * @param   {function} callback - invoked after iterator is done with the job
 * @returns {function|mixed} - job abort function or something else
 */
function runJob(iterator, key, item, callback)
{
  var aborter;

  // allow shortcut if iterator expects only two arguments
  if (iterator.length == 2)
  {
    aborter = iterator(item, async(callback));
  }
  // otherwise go with full three arguments
  else
  {
    aborter = iterator(item, key, async(callback));
  }

  return aborter;
}


/***/ }),
/* 394 */
/***/ (function(module, exports, __webpack_require__) {

var defer = __webpack_require__(395);

// API
module.exports = async;

/**
 * Runs provided callback asynchronously
 * even if callback itself is not
 *
 * @param   {function} callback - callback to invoke
 * @returns {function} - augmented callback
 */
function async(callback)
{
  var isAsync = false;

  // check if async happened
  defer(function() { isAsync = true; });

  return function async_callback(err, result)
  {
    if (isAsync)
    {
      callback(err, result);
    }
    else
    {
      defer(function nextTick_callback()
      {
        callback(err, result);
      });
    }
  };
}


/***/ }),
/* 395 */
/***/ (function(module, exports) {

module.exports = defer;

/**
 * Runs provided function on next iteration of the event loop
 *
 * @param {function} fn - function to run
 */
function defer(fn)
{
  var nextTick = typeof setImmediate == 'function'
    ? setImmediate
    : (
      typeof process == 'object' && typeof process.nextTick == 'function'
      ? process.nextTick
      : null
    );

  if (nextTick)
  {
    nextTick(fn);
  }
  else
  {
    setTimeout(fn, 0);
  }
}


/***/ }),
/* 396 */
/***/ (function(module, exports) {

// API
module.exports = abort;

/**
 * Aborts leftover active jobs
 *
 * @param {object} state - current state object
 */
function abort(state)
{
  Object.keys(state.jobs).forEach(clean.bind(state));

  // reset leftover jobs
  state.jobs = {};
}

/**
 * Cleans up leftover job by invoking abort function for the provided job id
 *
 * @this  state
 * @param {string|number} key - job id to abort
 */
function clean(key)
{
  if (typeof this.jobs[key] == 'function')
  {
    this.jobs[key]();
  }
}


/***/ }),
/* 397 */
/***/ (function(module, exports) {

// API
module.exports = state;

/**
 * Creates initial state object
 * for iteration over list
 *
 * @param   {array|object} list - list to iterate over
 * @param   {function|null} sortMethod - function to use for keys sort,
 *                                     or `null` to keep them as is
 * @returns {object} - initial state object
 */
function state(list, sortMethod)
{
  var isNamedList = !Array.isArray(list)
    , initState =
    {
      index    : 0,
      keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
      jobs     : {},
      results  : isNamedList ? {} : [],
      size     : isNamedList ? Object.keys(list).length : list.length
    }
    ;

  if (sortMethod)
  {
    // sort array keys based on it's values
    // sort object's keys just on own merit
    initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)
    {
      return sortMethod(list[a], list[b]);
    });
  }

  return initState;
}


/***/ }),
/* 398 */
/***/ (function(module, exports, __webpack_require__) {

var abort = __webpack_require__(396)
  , async = __webpack_require__(394)
  ;

// API
module.exports = terminator;

/**
 * Terminates jobs in the attached state context
 *
 * @this  AsyncKitState#
 * @param {function} callback - final callback to invoke after termination
 */
function terminator(callback)
{
  if (!Object.keys(this.jobs).length)
  {
    return;
  }

  // fast forward iteration index
  this.index = this.size;

  // abort jobs
  abort(this);

  // send back results we have so far
  async(callback)(null, this.results);
}


/***/ }),
/* 399 */
/***/ (function(module, exports, __webpack_require__) {

var serialOrdered = __webpack_require__(400);

// Public API
module.exports = serial;

/**
 * Runs iterator over provided array elements in series
 *
 * @param   {array|object} list - array or object (named list) to iterate over
 * @param   {function} iterator - iterator to run
 * @param   {function} callback - invoked when all elements processed
 * @returns {function} - jobs terminator
 */
function serial(list, iterator, callback)
{
  return serialOrdered(list, iterator, null, callback);
}


/***/ }),
/* 400 */
/***/ (function(module, exports, __webpack_require__) {

var iterate    = __webpack_require__(393)
  , initState  = __webpack_require__(397)
  , terminator = __webpack_require__(398)
  ;

// Public API
module.exports = serialOrdered;
// sorting helpers
module.exports.ascending  = ascending;
module.exports.descending = descending;

/**
 * Runs iterator over provided sorted array elements in series
 *
 * @param   {array|object} list - array or object (named list) to iterate over
 * @param   {function} iterator - iterator to run
 * @param   {function} sortMethod - custom sort function
 * @param   {function} callback - invoked when all elements processed
 * @returns {function} - jobs terminator
 */
function serialOrdered(list, iterator, sortMethod, callback)
{
  var state = initState(list, sortMethod);

  iterate(list, iterator, state, function iteratorHandler(error, result)
  {
    if (error)
    {
      callback(error, result);
      return;
    }

    state.index++;

    // are we there yet?
    if (state.index < (state['keyedList'] || list).length)
    {
      iterate(list, iterator, state, iteratorHandler);
      return;
    }

    // done here
    callback(null, state.results);
  });

  return terminator.bind(state, callback);
}

/*
 * -- Sort methods
 */

/**
 * sort helper to sort array elements in ascending order
 *
 * @param   {mixed} a - an item to compare
 * @param   {mixed} b - an item to compare
 * @returns {number} - comparison result
 */
function ascending(a, b)
{
  return a < b ? -1 : a > b ? 1 : 0;
}

/**
 * sort helper to sort array elements in descending order
 *
 * @param   {mixed} a - an item to compare
 * @param   {mixed} b - an item to compare
 * @returns {number} - comparison result
 */
function descending(a, b)
{
  return -1 * ascending(a, b);
}


/***/ }),
/* 401 */
/***/ (function(module, exports) {

// populates missing values
module.exports = function(dst, src) {

  Object.keys(src).forEach(function(prop)
  {
    dst[prop] = dst[prop] || src[prop];
  });

  return dst;
};


/***/ }),
/* 402 */
/***/ (function(module, exports, __webpack_require__) {

var stream = __webpack_require__(111)


function isStream (obj) {
  return obj instanceof stream.Stream
}


function isReadable (obj) {
  return isStream(obj) && typeof obj._read == 'function' && typeof obj._readableState == 'object'
}


function isWritable (obj) {
  return isStream(obj) && typeof obj._write == 'function' && typeof obj._writableState == 'object'
}


function isDuplex (obj) {
  return isReadable(obj) && isWritable(obj)
}


module.exports            = isStream
module.exports.isReadable = isReadable
module.exports.isWritable = isWritable
module.exports.isDuplex   = isDuplex


/***/ }),
/* 403 */
/***/ (function(module, exports) {

module.exports      = isTypedArray
isTypedArray.strict = isStrictTypedArray
isTypedArray.loose  = isLooseTypedArray

var toString = Object.prototype.toString
var names = {
    '[object Int8Array]': true
  , '[object Int16Array]': true
  , '[object Int32Array]': true
  , '[object Uint8Array]': true
  , '[object Uint8ClampedArray]': true
  , '[object Uint16Array]': true
  , '[object Uint32Array]': true
  , '[object Float32Array]': true
  , '[object Float64Array]': true
}

function isTypedArray(arr) {
  return (
       isStrictTypedArray(arr)
    || isLooseTypedArray(arr)
  )
}

function isStrictTypedArray(arr) {
  return (
       arr instanceof Int8Array
    || arr instanceof Int16Array
    || arr instanceof Int32Array
    || arr instanceof Uint8Array
    || arr instanceof Uint8ClampedArray
    || arr instanceof Uint16Array
    || arr instanceof Uint32Array
    || arr instanceof Float32Array
    || arr instanceof Float64Array
  )
}

function isLooseTypedArray(arr) {
  return names[toString.call(arr)]
}


/***/ }),
/* 404 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


function formatHostname (hostname) {
  // canonicalize the hostname, so that 'oogle.com' won't match 'google.com'
  return hostname.replace(/^\.*/, '.').toLowerCase()
}

function parseNoProxyZone (zone) {
  zone = zone.trim().toLowerCase()

  var zoneParts = zone.split(':', 2)
  var zoneHost = formatHostname(zoneParts[0])
  var zonePort = zoneParts[1]
  var hasPort = zone.indexOf(':') > -1

  return {hostname: zoneHost, port: zonePort, hasPort: hasPort}
}

function uriInNoProxy (uri, noProxy) {
  var port = uri.port || (uri.protocol === 'https:' ? '443' : '80')
  var hostname = formatHostname(uri.hostname)
  var noProxyList = noProxy.split(',')

  // iterate through the noProxyList until it finds a match.
  return noProxyList.map(parseNoProxyZone).some(function (noProxyZone) {
    var isMatchedAt = hostname.indexOf(noProxyZone.hostname)
    var hostnameMatched = (
      isMatchedAt > -1 &&
        (isMatchedAt === hostname.length - noProxyZone.hostname.length)
    )

    if (noProxyZone.hasPort) {
      return (port === noProxyZone.port) && hostnameMatched
    }

    return hostnameMatched
  })
}

function getProxyFromURI (uri) {
  // Decide the proper request proxy to use based on the request URI object and the
  // environmental variables (NO_PROXY, HTTP_PROXY, etc.)
  // respect NO_PROXY environment variables (see: http://lynx.isc.org/current/breakout/lynx_help/keystrokes/environments.html)

  var noProxy = process.env.NO_PROXY || process.env.no_proxy || ''

  // if the noProxy is a wildcard then return null

  if (noProxy === '*') {
    return null
  }

  // if the noProxy is not empty and the uri is found return null

  if (noProxy !== '' && uriInNoProxy(uri, noProxy)) {
    return null
  }

  // Check for HTTP or HTTPS Proxy in environment Else default to null

  if (uri.protocol === 'http:') {
    return process.env.HTTP_PROXY ||
      process.env.http_proxy || null
  }

  if (uri.protocol === 'https:') {
    return process.env.HTTPS_PROXY ||
      process.env.https_proxy ||
      process.env.HTTP_PROXY ||
      process.env.http_proxy || null
  }

  // if none of that works, return null
  // (What uri protocol are you using then?)

  return null
}

module.exports = getProxyFromURI


/***/ }),
/* 405 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var qs = __webpack_require__(406)
var querystring = __webpack_require__(330)

function Querystring (request) {
  this.request = request
  this.lib = null
  this.useQuerystring = null
  this.parseOptions = null
  this.stringifyOptions = null
}

Querystring.prototype.init = function (options) {
  if (this.lib) { return }

  this.useQuerystring = options.useQuerystring
  this.lib = (this.useQuerystring ? querystring : qs)

  this.parseOptions = options.qsParseOptions || {}
  this.stringifyOptions = options.qsStringifyOptions || {}
}

Querystring.prototype.stringify = function (obj) {
  return (this.useQuerystring)
    ? this.rfc3986(this.lib.stringify(obj,
      this.stringifyOptions.sep || null,
      this.stringifyOptions.eq || null,
      this.stringifyOptions))
    : this.lib.stringify(obj, this.stringifyOptions)
}

Querystring.prototype.parse = function (str) {
  return (this.useQuerystring)
    ? this.lib.parse(str,
      this.parseOptions.sep || null,
      this.parseOptions.eq || null,
      this.parseOptions)
    : this.lib.parse(str, this.parseOptions)
}

Querystring.prototype.rfc3986 = function (str) {
  return str.replace(/[!'()*]/g, function (c) {
    return '%' + c.charCodeAt(0).toString(16).toUpperCase()
  })
}

Querystring.prototype.unescape = querystring.unescape

exports.Querystring = Querystring


/***/ }),
/* 406 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var stringify = __webpack_require__(407);
var parse = __webpack_require__(410);
var formats = __webpack_require__(409);

module.exports = {
    formats: formats,
    parse: parse,
    stringify: stringify
};


/***/ }),
/* 407 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__(408);
var formats = __webpack_require__(409);

var arrayPrefixGenerators = {
    brackets: function brackets(prefix) { // eslint-disable-line func-name-matching
        return prefix + '[]';
    },
    indices: function indices(prefix, key) { // eslint-disable-line func-name-matching
        return prefix + '[' + key + ']';
    },
    repeat: function repeat(prefix) { // eslint-disable-line func-name-matching
        return prefix;
    }
};

var toISO = Date.prototype.toISOString;

var defaults = {
    delimiter: '&',
    encode: true,
    encoder: utils.encode,
    encodeValuesOnly: false,
    serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching
        return toISO.call(date);
    },
    skipNulls: false,
    strictNullHandling: false
};

var stringify = function stringify( // eslint-disable-line func-name-matching
    object,
    prefix,
    generateArrayPrefix,
    strictNullHandling,
    skipNulls,
    encoder,
    filter,
    sort,
    allowDots,
    serializeDate,
    formatter,
    encodeValuesOnly
) {
    var obj = object;
    if (typeof filter === 'function') {
        obj = filter(prefix, obj);
    } else if (obj instanceof Date) {
        obj = serializeDate(obj);
    } else if (obj === null) {
        if (strictNullHandling) {
            return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;
        }

        obj = '';
    }

    if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {
        if (encoder) {
            var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);
            return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];
        }
        return [formatter(prefix) + '=' + formatter(String(obj))];
    }

    var values = [];

    if (typeof obj === 'undefined') {
        return values;
    }

    var objKeys;
    if (Array.isArray(filter)) {
        objKeys = filter;
    } else {
        var keys = Object.keys(obj);
        objKeys = sort ? keys.sort(sort) : keys;
    }

    for (var i = 0; i < objKeys.length; ++i) {
        var key = objKeys[i];

        if (skipNulls && obj[key] === null) {
            continue;
        }

        if (Array.isArray(obj)) {
            values = values.concat(stringify(
                obj[key],
                generateArrayPrefix(prefix, key),
                generateArrayPrefix,
                strictNullHandling,
                skipNulls,
                encoder,
                filter,
                sort,
                allowDots,
                serializeDate,
                formatter,
                encodeValuesOnly
            ));
        } else {
            values = values.concat(stringify(
                obj[key],
                prefix + (allowDots ? '.' + key : '[' + key + ']'),
                generateArrayPrefix,
                strictNullHandling,
                skipNulls,
                encoder,
                filter,
                sort,
                allowDots,
                serializeDate,
                formatter,
                encodeValuesOnly
            ));
        }
    }

    return values;
};

module.exports = function (object, opts) {
    var obj = object;
    var options = opts ? utils.assign({}, opts) : {};

    if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {
        throw new TypeError('Encoder has to be a function.');
    }

    var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;
    var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
    var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;
    var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;
    var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;
    var sort = typeof options.sort === 'function' ? options.sort : null;
    var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
    var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;
    var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;
    if (typeof options.format === 'undefined') {
        options.format = formats['default'];
    } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {
        throw new TypeError('Unknown format option provided.');
    }
    var formatter = formats.formatters[options.format];
    var objKeys;
    var filter;

    if (typeof options.filter === 'function') {
        filter = options.filter;
        obj = filter('', obj);
    } else if (Array.isArray(options.filter)) {
        filter = options.filter;
        objKeys = filter;
    }

    var keys = [];

    if (typeof obj !== 'object' || obj === null) {
        return '';
    }

    var arrayFormat;
    if (options.arrayFormat in arrayPrefixGenerators) {
        arrayFormat = options.arrayFormat;
    } else if ('indices' in options) {
        arrayFormat = options.indices ? 'indices' : 'repeat';
    } else {
        arrayFormat = 'indices';
    }

    var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];

    if (!objKeys) {
        objKeys = Object.keys(obj);
    }

    if (sort) {
        objKeys.sort(sort);
    }

    for (var i = 0; i < objKeys.length; ++i) {
        var key = objKeys[i];

        if (skipNulls && obj[key] === null) {
            continue;
        }

        keys = keys.concat(stringify(
            obj[key],
            key,
            generateArrayPrefix,
            strictNullHandling,
            skipNulls,
            encode ? encoder : null,
            filter,
            sort,
            allowDots,
            serializeDate,
            formatter,
            encodeValuesOnly
        ));
    }

    var joined = keys.join(delimiter);
    var prefix = options.addQueryPrefix === true ? '?' : '';

    return joined.length > 0 ? prefix + joined : '';
};


/***/ }),
/* 408 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var has = Object.prototype.hasOwnProperty;

var hexTable = (function () {
    var array = [];
    for (var i = 0; i < 256; ++i) {
        array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
    }

    return array;
}());

var compactQueue = function compactQueue(queue) {
    var obj;

    while (queue.length) {
        var item = queue.pop();
        obj = item.obj[item.prop];

        if (Array.isArray(obj)) {
            var compacted = [];

            for (var j = 0; j < obj.length; ++j) {
                if (typeof obj[j] !== 'undefined') {
                    compacted.push(obj[j]);
                }
            }

            item.obj[item.prop] = compacted;
        }
    }

    return obj;
};

var arrayToObject = function arrayToObject(source, options) {
    var obj = options && options.plainObjects ? Object.create(null) : {};
    for (var i = 0; i < source.length; ++i) {
        if (typeof source[i] !== 'undefined') {
            obj[i] = source[i];
        }
    }

    return obj;
};

var merge = function merge(target, source, options) {
    if (!source) {
        return target;
    }

    if (typeof source !== 'object') {
        if (Array.isArray(target)) {
            target.push(source);
        } else if (typeof target === 'object') {
            if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {
                target[source] = true;
            }
        } else {
            return [target, source];
        }

        return target;
    }

    if (typeof target !== 'object') {
        return [target].concat(source);
    }

    var mergeTarget = target;
    if (Array.isArray(target) && !Array.isArray(source)) {
        mergeTarget = arrayToObject(target, options);
    }

    if (Array.isArray(target) && Array.isArray(source)) {
        source.forEach(function (item, i) {
            if (has.call(target, i)) {
                if (target[i] && typeof target[i] === 'object') {
                    target[i] = merge(target[i], item, options);
                } else {
                    target.push(item);
                }
            } else {
                target[i] = item;
            }
        });
        return target;
    }

    return Object.keys(source).reduce(function (acc, key) {
        var value = source[key];

        if (has.call(acc, key)) {
            acc[key] = merge(acc[key], value, options);
        } else {
            acc[key] = value;
        }
        return acc;
    }, mergeTarget);
};

var assign = function assignSingleSource(target, source) {
    return Object.keys(source).reduce(function (acc, key) {
        acc[key] = source[key];
        return acc;
    }, target);
};

var decode = function (str) {
    try {
        return decodeURIComponent(str.replace(/\+/g, ' '));
    } catch (e) {
        return str;
    }
};

var encode = function encode(str) {
    // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
    // It has been adapted here for stricter adherence to RFC 3986
    if (str.length === 0) {
        return str;
    }

    var string = typeof str === 'string' ? str : String(str);

    var out = '';
    for (var i = 0; i < string.length; ++i) {
        var c = string.charCodeAt(i);

        if (
            c === 0x2D // -
            || c === 0x2E // .
            || c === 0x5F // _
            || c === 0x7E // ~
            || (c >= 0x30 && c <= 0x39) // 0-9
            || (c >= 0x41 && c <= 0x5A) // a-z
            || (c >= 0x61 && c <= 0x7A) // A-Z
        ) {
            out += string.charAt(i);
            continue;
        }

        if (c < 0x80) {
            out = out + hexTable[c];
            continue;
        }

        if (c < 0x800) {
            out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
            continue;
        }

        if (c < 0xD800 || c >= 0xE000) {
            out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
            continue;
        }

        i += 1;
        c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
        out += hexTable[0xF0 | (c >> 18)]
            + hexTable[0x80 | ((c >> 12) & 0x3F)]
            + hexTable[0x80 | ((c >> 6) & 0x3F)]
            + hexTable[0x80 | (c & 0x3F)];
    }

    return out;
};

var compact = function compact(value) {
    var queue = [{ obj: { o: value }, prop: 'o' }];
    var refs = [];

    for (var i = 0; i < queue.length; ++i) {
        var item = queue[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 === 'object' && val !== null && refs.indexOf(val) === -1) {
                queue.push({ obj: obj, prop: key });
                refs.push(val);
            }
        }
    }

    return compactQueue(queue);
};

var isRegExp = function isRegExp(obj) {
    return Object.prototype.toString.call(obj) === '[object RegExp]';
};

var isBuffer = function isBuffer(obj) {
    if (obj === null || typeof obj === 'undefined') {
        return false;
    }

    return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
};

module.exports = {
    arrayToObject: arrayToObject,
    assign: assign,
    compact: compact,
    decode: decode,
    encode: encode,
    isBuffer: isBuffer,
    isRegExp: isRegExp,
    merge: merge
};


/***/ }),
/* 409 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var replace = String.prototype.replace;
var percentTwenties = /%20/g;

module.exports = {
    'default': 'RFC3986',
    formatters: {
        RFC1738: function (value) {
            return replace.call(value, percentTwenties, '+');
        },
        RFC3986: function (value) {
            return value;
        }
    },
    RFC1738: 'RFC1738',
    RFC3986: 'RFC3986'
};


/***/ }),
/* 410 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__(408);

var has = Object.prototype.hasOwnProperty;

var defaults = {
    allowDots: false,
    allowPrototypes: false,
    arrayLimit: 20,
    decoder: utils.decode,
    delimiter: '&',
    depth: 5,
    parameterLimit: 1000,
    plainObjects: false,
    strictNullHandling: false
};

var parseValues = function parseQueryStringValues(str, options) {
    var obj = {};
    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
    var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
    var parts = cleanStr.split(options.delimiter, limit);

    for (var i = 0; i < parts.length; ++i) {
        var part = parts[i];

        var bracketEqualsPos = part.indexOf(']=');
        var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;

        var key, val;
        if (pos === -1) {
            key = options.decoder(part, defaults.decoder);
            val = options.strictNullHandling ? null : '';
        } else {
            key = options.decoder(part.slice(0, pos), defaults.decoder);
            val = options.decoder(part.slice(pos + 1), defaults.decoder);
        }
        if (has.call(obj, key)) {
            obj[key] = [].concat(obj[key]).concat(val);
        } else {
            obj[key] = val;
        }
    }

    return obj;
};

var parseObject = function (chain, val, options) {
    var leaf = val;

    for (var i = chain.length - 1; i >= 0; --i) {
        var obj;
        var root = chain[i];

        if (root === '[]') {
            obj = [];
            obj = obj.concat(leaf);
        } else {
            obj = options.plainObjects ? Object.create(null) : {};
            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
            var index = parseInt(cleanRoot, 10);
            if (
                !isNaN(index)
                && root !== cleanRoot
                && String(index) === cleanRoot
                && index >= 0
                && (options.parseArrays && index <= options.arrayLimit)
            ) {
                obj = [];
                obj[index] = leaf;
            } else {
                obj[cleanRoot] = leaf;
            }
        }

        leaf = obj;
    }

    return leaf;
};

var parseKeys = function parseQueryStringKeys(givenKey, val, options) {
    if (!givenKey) {
        return;
    }

    // Transform dot notation to bracket notation
    var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;

    // The regex chunks

    var brackets = /(\[[^[\]]*])/;
    var child = /(\[[^[\]]*])/g;

    // Get the parent

    var segment = brackets.exec(key);
    var parent = segment ? key.slice(0, segment.index) : key;

    // Stash the parent if it exists

    var keys = [];
    if (parent) {
        // If we aren't using plain objects, optionally prefix keys
        // that would overwrite object prototype properties
        if (!options.plainObjects && has.call(Object.prototype, parent)) {
            if (!options.allowPrototypes) {
                return;
            }
        }

        keys.push(parent);
    }

    // Loop through children appending to the array until we hit depth

    var i = 0;
    while ((segment = child.exec(key)) !== null && i < options.depth) {
        i += 1;
        if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
            if (!options.allowPrototypes) {
                return;
            }
        }
        keys.push(segment[1]);
    }

    // If there's a remainder, just add whatever is left

    if (segment) {
        keys.push('[' + key.slice(segment.index) + ']');
    }

    return parseObject(keys, val, options);
};

module.exports = function (str, opts) {
    var options = opts ? utils.assign({}, opts) : {};

    if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {
        throw new TypeError('Decoder has to be a function.');
    }

    options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;
    options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
    options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
    options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
    options.parseArrays = options.parseArrays !== false;
    options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;
    options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;
    options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;
    options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;
    options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;
    options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;

    if (str === '' || str === null || typeof str === 'undefined') {
        return options.plainObjects ? Object.create(null) : {};
    }

    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
    var obj = options.plainObjects ? Object.create(null) : {};

    // Iterate over the keys and setup the new object

    var keys = Object.keys(tempObj);
    for (var i = 0; i < keys.length; ++i) {
        var key = keys[i];
        var newObj = parseKeys(key, tempObj[key], options);
        obj = utils.merge(obj, newObj, options);
    }

    return utils.compact(obj);
};


/***/ }),
/* 411 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var fs = __webpack_require__(94)
var qs = __webpack_require__(330)
var validate = __webpack_require__(412)
var extend = __webpack_require__(270)

function Har (request) {
  this.request = request
}

Har.prototype.reducer = function (obj, pair) {
  // new property ?
  if (obj[pair.name] === undefined) {
    obj[pair.name] = pair.value
    return obj
  }

  // existing? convert to array
  var arr = [
    obj[pair.name],
    pair.value
  ]

  obj[pair.name] = arr

  return obj
}

Har.prototype.prep = function (data) {
  // construct utility properties
  data.queryObj = {}
  data.headersObj = {}
  data.postData.jsonObj = false
  data.postData.paramsObj = false

  // construct query objects
  if (data.queryString && data.queryString.length) {
    data.queryObj = data.queryString.reduce(this.reducer, {})
  }

  // construct headers objects
  if (data.headers && data.headers.length) {
    // loweCase header keys
    data.headersObj = data.headers.reduceRight(function (headers, header) {
      headers[header.name] = header.value
      return headers
    }, {})
  }

  // construct Cookie header
  if (data.cookies && data.cookies.length) {
    var cookies = data.cookies.map(function (cookie) {
      return cookie.name + '=' + cookie.value
    })

    if (cookies.length) {
      data.headersObj.cookie = cookies.join('; ')
    }
  }

  // prep body
  function some (arr) {
    return arr.some(function (type) {
      return data.postData.mimeType.indexOf(type) === 0
    })
  }

  if (some([
    'multipart/mixed',
    'multipart/related',
    'multipart/form-data',
    'multipart/alternative'])) {
    // reset values
    data.postData.mimeType = 'multipart/form-data'
  } else if (some([
    'application/x-www-form-urlencoded'])) {
    if (!data.postData.params) {
      data.postData.text = ''
    } else {
      data.postData.paramsObj = data.postData.params.reduce(this.reducer, {})

      // always overwrite
      data.postData.text = qs.stringify(data.postData.paramsObj)
    }
  } else if (some([
    'text/json',
    'text/x-json',
    'application/json',
    'application/x-json'])) {
    data.postData.mimeType = 'application/json'

    if (data.postData.text) {
      try {
        data.postData.jsonObj = JSON.parse(data.postData.text)
      } catch (e) {
        this.request.debug(e)

        // force back to text/plain
        data.postData.mimeType = 'text/plain'
      }
    }
  }

  return data
}

Har.prototype.options = function (options) {
  // skip if no har property defined
  if (!options.har) {
    return options
  }

  var har = {}
  extend(har, options.har)

  // only process the first entry
  if (har.log && har.log.entries) {
    har = har.log.entries[0]
  }

  // add optional properties to make validation successful
  har.url = har.url || options.url || options.uri || options.baseUrl || '/'
  har.httpVersion = har.httpVersion || 'HTTP/1.1'
  har.queryString = har.queryString || []
  har.headers = har.headers || []
  har.cookies = har.cookies || []
  har.postData = har.postData || {}
  har.postData.mimeType = har.postData.mimeType || 'application/octet-stream'

  har.bodySize = 0
  har.headersSize = 0
  har.postData.size = 0

  if (!validate.request(har)) {
    return options
  }

  // clean up and get some utility properties
  var req = this.prep(har)

  // construct new options
  if (req.url) {
    options.url = req.url
  }

  if (req.method) {
    options.method = req.method
  }

  if (Object.keys(req.queryObj).length) {
    options.qs = req.queryObj
  }

  if (Object.keys(req.headersObj).length) {
    options.headers = req.headersObj
  }

  function test (type) {
    return req.postData.mimeType.indexOf(type) === 0
  }
  if (test('application/x-www-form-urlencoded')) {
    options.form = req.postData.paramsObj
  } else if (test('application/json')) {
    if (req.postData.jsonObj) {
      options.body = req.postData.jsonObj
      options.json = true
    }
  } else if (test('multipart/form-data')) {
    options.formData = {}

    req.postData.params.forEach(function (param) {
      var attachment = {}

      if (!param.fileName && !param.fileName && !param.contentType) {
        options.formData[param.name] = param.value
        return
      }

      // attempt to read from disk!
      if (param.fileName && !param.value) {
        attachment.value = fs.createReadStream(param.fileName)
      } else if (param.value) {
        attachment.value = param.value
      }

      if (param.fileName) {
        attachment.options = {
          filename: param.fileName,
          contentType: param.contentType ? param.contentType : null
        }
      }

      options.formData[param.name] = attachment
    })
  } else {
    if (req.postData.text) {
      options.body = req.postData.text
    }
  }

  return options
}

exports.Har = Har


/***/ }),
/* 412 */
/***/ (function(module, exports, __webpack_require__) {

var Ajv = __webpack_require__(413)
var HARError = __webpack_require__(459)
var schemas = __webpack_require__(460)

var ajv

function createAjvInstance () {
  var ajv = new Ajv({
    allErrors: true
  })
  ajv.addMetaSchema(__webpack_require__(479))
  ajv.addSchema(schemas)

  return ajv
}

function validate (name, data) {
  data = data || {}

  // validator config
  ajv = ajv || createAjvInstance()

  var validate = ajv.getSchema(name + '.json')

  return new Promise(function (resolve, reject) {
    var valid = validate(data)

    !valid ? reject(new HARError(validate.errors)) : resolve(data)
  })
}

exports.afterRequest = function (data) {
  return validate('afterRequest', data)
}

exports.beforeRequest = function (data) {
  return validate('beforeRequest', data)
}

exports.browser = function (data) {
  return validate('browser', data)
}

exports.cache = function (data) {
  return validate('cache', data)
}

exports.content = function (data) {
  return validate('content', data)
}

exports.cookie = function (data) {
  return validate('cookie', data)
}

exports.creator = function (data) {
  return validate('creator', data)
}

exports.entry = function (data) {
  return validate('entry', data)
}

exports.har = function (data) {
  return validate('har', data)
}

exports.header = function (data) {
  return validate('header', data)
}

exports.log = function (data) {
  return validate('log', data)
}

exports.page = function (data) {
  return validate('page', data)
}

exports.pageTimings = function (data) {
  return validate('pageTimings', data)
}

exports.postData = function (data) {
  return validate('postData', data)
}

exports.query = function (data) {
  return validate('query', data)
}

exports.request = function (data) {
  return validate('request', data)
}

exports.response = function (data) {
  return validate('response', data)
}

exports.timings = function (data) {
  return validate('timings', data)
}


/***/ }),
/* 413 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var compileSchema = __webpack_require__(414)
  , resolve = __webpack_require__(415)
  , Cache = __webpack_require__(425)
  , SchemaObject = __webpack_require__(420)
  , stableStringify = __webpack_require__(423)
  , formats = __webpack_require__(426)
  , rules = __webpack_require__(427)
  , $dataMetaSchema = __webpack_require__(452)
  , util = __webpack_require__(418);

module.exports = Ajv;

Ajv.prototype.validate = validate;
Ajv.prototype.compile = compile;
Ajv.prototype.addSchema = addSchema;
Ajv.prototype.addMetaSchema = addMetaSchema;
Ajv.prototype.validateSchema = validateSchema;
Ajv.prototype.getSchema = getSchema;
Ajv.prototype.removeSchema = removeSchema;
Ajv.prototype.addFormat = addFormat;
Ajv.prototype.errorsText = errorsText;

Ajv.prototype._addSchema = _addSchema;
Ajv.prototype._compile = _compile;

Ajv.prototype.compileAsync = __webpack_require__(453);
var customKeyword = __webpack_require__(454);
Ajv.prototype.addKeyword = customKeyword.add;
Ajv.prototype.getKeyword = customKeyword.get;
Ajv.prototype.removeKeyword = customKeyword.remove;
Ajv.prototype.validateKeyword = customKeyword.validate;

var errorClasses = __webpack_require__(422);
Ajv.ValidationError = errorClasses.Validation;
Ajv.MissingRefError = errorClasses.MissingRef;
Ajv.$dataMetaSchema = $dataMetaSchema;

var META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';

var META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];
var META_SUPPORT_DATA = ['/properties'];

/**
 * Creates validator instance.
 * Usage: `Ajv(opts)`
 * @param {Object} opts optional options
 * @return {Object} ajv instance
 */
function Ajv(opts) {
  if (!(this instanceof Ajv)) return new Ajv(opts);
  opts = this._opts = util.copy(opts) || {};
  setLogger(this);
  this._schemas = {};
  this._refs = {};
  this._fragments = {};
  this._formats = formats(opts.format);

  this._cache = opts.cache || new Cache;
  this._loadingSchemas = {};
  this._compilations = [];
  this.RULES = rules();
  this._getId = chooseGetId(opts);

  opts.loopRequired = opts.loopRequired || Infinity;
  if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;
  if (opts.serialize === undefined) opts.serialize = stableStringify;
  this._metaOpts = getMetaSchemaOptions(this);

  if (opts.formats) addInitialFormats(this);
  addDefaultMetaSchema(this);
  if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);
  if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});
  addInitialSchemas(this);
}



/**
 * Validate data using schema
 * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.
 * @this   Ajv
 * @param  {String|Object} schemaKeyRef key, ref or schema object
 * @param  {Any} data to be validated
 * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).
 */
function validate(schemaKeyRef, data) {
  var v;
  if (typeof schemaKeyRef == 'string') {
    v = this.getSchema(schemaKeyRef);
    if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"');
  } else {
    var schemaObj = this._addSchema(schemaKeyRef);
    v = schemaObj.validate || this._compile(schemaObj);
  }

  var valid = v(data);
  if (v.$async !== true) this.errors = v.errors;
  return valid;
}


/**
 * Create validating function for passed schema.
 * @this   Ajv
 * @param  {Object} schema schema object
 * @param  {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.
 * @return {Function} validating function
 */
function compile(schema, _meta) {
  var schemaObj = this._addSchema(schema, undefined, _meta);
  return schemaObj.validate || this._compile(schemaObj);
}


/**
 * Adds schema to the instance.
 * @this   Ajv
 * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.
 * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
 * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.
 * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.
 * @return {Ajv} this for method chaining
 */
function addSchema(schema, key, _skipValidation, _meta) {
  if (Array.isArray(schema)){
    for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);
    return this;
  }
  var id = this._getId(schema);
  if (id !== undefined && typeof id != 'string')
    throw new Error('schema id must be string');
  key = resolve.normalizeId(key || id);
  checkUnique(this, key);
  this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);
  return this;
}


/**
 * Add schema that will be used to validate other schemas
 * options in META_IGNORE_OPTIONS are alway set to false
 * @this   Ajv
 * @param {Object} schema schema object
 * @param {String} key optional schema key
 * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema
 * @return {Ajv} this for method chaining
 */
function addMetaSchema(schema, key, skipValidation) {
  this.addSchema(schema, key, skipValidation, true);
  return this;
}


/**
 * Validate schema
 * @this   Ajv
 * @param {Object} schema schema to validate
 * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid
 * @return {Boolean} true if schema is valid
 */
function validateSchema(schema, throwOrLogError) {
  var $schema = schema.$schema;
  if ($schema !== undefined && typeof $schema != 'string')
    throw new Error('$schema must be a string');
  $schema = $schema || this._opts.defaultMeta || defaultMeta(this);
  if (!$schema) {
    this.logger.warn('meta-schema not available');
    this.errors = null;
    return true;
  }
  var valid = this.validate($schema, schema);
  if (!valid && throwOrLogError) {
    var message = 'schema is invalid: ' + this.errorsText();
    if (this._opts.validateSchema == 'log') this.logger.error(message);
    else throw new Error(message);
  }
  return valid;
}


function defaultMeta(self) {
  var meta = self._opts.meta;
  self._opts.defaultMeta = typeof meta == 'object'
                            ? self._getId(meta) || meta
                            : self.getSchema(META_SCHEMA_ID)
                              ? META_SCHEMA_ID
                              : undefined;
  return self._opts.defaultMeta;
}


/**
 * Get compiled schema from the instance by `key` or `ref`.
 * @this   Ajv
 * @param  {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).
 * @return {Function} schema validating function (with property `schema`).
 */
function getSchema(keyRef) {
  var schemaObj = _getSchemaObj(this, keyRef);
  switch (typeof schemaObj) {
    case 'object': return schemaObj.validate || this._compile(schemaObj);
    case 'string': return this.getSchema(schemaObj);
    case 'undefined': return _getSchemaFragment(this, keyRef);
  }
}


function _getSchemaFragment(self, ref) {
  var res = resolve.schema.call(self, { schema: {} }, ref);
  if (res) {
    var schema = res.schema
      , root = res.root
      , baseId = res.baseId;
    var v = compileSchema.call(self, schema, root, undefined, baseId);
    self._fragments[ref] = new SchemaObject({
      ref: ref,
      fragment: true,
      schema: schema,
      root: root,
      baseId: baseId,
      validate: v
    });
    return v;
  }
}


function _getSchemaObj(self, keyRef) {
  keyRef = resolve.normalizeId(keyRef);
  return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];
}


/**
 * Remove cached schema(s).
 * If no parameter is passed all schemas but meta-schemas are removed.
 * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
 * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
 * @this   Ajv
 * @param  {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object
 * @return {Ajv} this for method chaining
 */
function removeSchema(schemaKeyRef) {
  if (schemaKeyRef instanceof RegExp) {
    _removeAllSchemas(this, this._schemas, schemaKeyRef);
    _removeAllSchemas(this, this._refs, schemaKeyRef);
    return this;
  }
  switch (typeof schemaKeyRef) {
    case 'undefined':
      _removeAllSchemas(this, this._schemas);
      _removeAllSchemas(this, this._refs);
      this._cache.clear();
      return this;
    case 'string':
      var schemaObj = _getSchemaObj(this, schemaKeyRef);
      if (schemaObj) this._cache.del(schemaObj.cacheKey);
      delete this._schemas[schemaKeyRef];
      delete this._refs[schemaKeyRef];
      return this;
    case 'object':
      var serialize = this._opts.serialize;
      var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;
      this._cache.del(cacheKey);
      var id = this._getId(schemaKeyRef);
      if (id) {
        id = resolve.normalizeId(id);
        delete this._schemas[id];
        delete this._refs[id];
      }
  }
  return this;
}


function _removeAllSchemas(self, schemas, regex) {
  for (var keyRef in schemas) {
    var schemaObj = schemas[keyRef];
    if (!schemaObj.meta && (!regex || regex.test(keyRef))) {
      self._cache.del(schemaObj.cacheKey);
      delete schemas[keyRef];
    }
  }
}


/* @this   Ajv */
function _addSchema(schema, skipValidation, meta, shouldAddSchema) {
  if (typeof schema != 'object' && typeof schema != 'boolean')
    throw new Error('schema should be object or boolean');
  var serialize = this._opts.serialize;
  var cacheKey = serialize ? serialize(schema) : schema;
  var cached = this._cache.get(cacheKey);
  if (cached) return cached;

  shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;

  var id = resolve.normalizeId(this._getId(schema));
  if (id && shouldAddSchema) checkUnique(this, id);

  var willValidate = this._opts.validateSchema !== false && !skipValidation;
  var recursiveMeta;
  if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))
    this.validateSchema(schema, true);

  var localRefs = resolve.ids.call(this, schema);

  var schemaObj = new SchemaObject({
    id: id,
    schema: schema,
    localRefs: localRefs,
    cacheKey: cacheKey,
    meta: meta
  });

  if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;
  this._cache.put(cacheKey, schemaObj);

  if (willValidate && recursiveMeta) this.validateSchema(schema, true);

  return schemaObj;
}


/* @this   Ajv */
function _compile(schemaObj, root) {
  if (schemaObj.compiling) {
    schemaObj.validate = callValidate;
    callValidate.schema = schemaObj.schema;
    callValidate.errors = null;
    callValidate.root = root ? root : callValidate;
    if (schemaObj.schema.$async === true)
      callValidate.$async = true;
    return callValidate;
  }
  schemaObj.compiling = true;

  var currentOpts;
  if (schemaObj.meta) {
    currentOpts = this._opts;
    this._opts = this._metaOpts;
  }

  var v;
  try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }
  catch(e) {
    delete schemaObj.validate;
    throw e;
  }
  finally {
    schemaObj.compiling = false;
    if (schemaObj.meta) this._opts = currentOpts;
  }

  schemaObj.validate = v;
  schemaObj.refs = v.refs;
  schemaObj.refVal = v.refVal;
  schemaObj.root = v.root;
  return v;


  /* @this   {*} - custom context, see passContext option */
  function callValidate() {
    /* jshint validthis: true */
    var _validate = schemaObj.validate;
    var result = _validate.apply(this, arguments);
    callValidate.errors = _validate.errors;
    return result;
  }
}


function chooseGetId(opts) {
  switch (opts.schemaId) {
    case 'auto': return _get$IdOrId;
    case 'id': return _getId;
    default: return _get$Id;
  }
}

/* @this   Ajv */
function _getId(schema) {
  if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);
  return schema.id;
}

/* @this   Ajv */
function _get$Id(schema) {
  if (schema.id) this.logger.warn('schema id ignored', schema.id);
  return schema.$id;
}


function _get$IdOrId(schema) {
  if (schema.$id && schema.id && schema.$id != schema.id)
    throw new Error('schema $id is different from id');
  return schema.$id || schema.id;
}


/**
 * Convert array of error message objects to string
 * @this   Ajv
 * @param  {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.
 * @param  {Object} options optional options with properties `separator` and `dataVar`.
 * @return {String} human readable string with all errors descriptions
 */
function errorsText(errors, options) {
  errors = errors || this.errors;
  if (!errors) return 'No errors';
  options = options || {};
  var separator = options.separator === undefined ? ', ' : options.separator;
  var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;

  var text = '';
  for (var i=0; i<errors.length; i++) {
    var e = errors[i];
    if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;
  }
  return text.slice(0, -separator.length);
}


/**
 * Add custom format
 * @this   Ajv
 * @param {String} name format name
 * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
 * @return {Ajv} this for method chaining
 */
function addFormat(name, format) {
  if (typeof format == 'string') format = new RegExp(format);
  this._formats[name] = format;
  return this;
}


function addDefaultMetaSchema(self) {
  var $dataSchema;
  if (self._opts.$data) {
    $dataSchema = __webpack_require__(458);
    self.addMetaSchema($dataSchema, $dataSchema.$id, true);
  }
  if (self._opts.meta === false) return;
  var metaSchema = __webpack_require__(457);
  if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);
  self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);
  self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;
}


function addInitialSchemas(self) {
  var optsSchemas = self._opts.schemas;
  if (!optsSchemas) return;
  if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);
  else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);
}


function addInitialFormats(self) {
  for (var name in self._opts.formats) {
    var format = self._opts.formats[name];
    self.addFormat(name, format);
  }
}


function checkUnique(self, id) {
  if (self._schemas[id] || self._refs[id])
    throw new Error('schema with key or id "' + id + '" already exists');
}


function getMetaSchemaOptions(self) {
  var metaOpts = util.copy(self._opts);
  for (var i=0; i<META_IGNORE_OPTIONS.length; i++)
    delete metaOpts[META_IGNORE_OPTIONS[i]];
  return metaOpts;
}


function setLogger(self) {
  var logger = self._opts.logger;
  if (logger === false) {
    self.logger = {log: noop, warn: noop, error: noop};
  } else {
    if (logger === undefined) logger = console;
    if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))
      throw new Error('logger must implement log, warn and error methods');
    self.logger = logger;
  }
}


function noop() {}


/***/ }),
/* 414 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var resolve = __webpack_require__(415)
  , util = __webpack_require__(418)
  , errorClasses = __webpack_require__(422)
  , stableStringify = __webpack_require__(423);

var validateGenerator = __webpack_require__(424);

/**
 * Functions below are used inside compiled validations function
 */

var ucs2length = util.ucs2length;
var equal = __webpack_require__(417);

// this error is thrown by async schemas to return validation errors via exception
var ValidationError = errorClasses.Validation;

module.exports = compile;


/**
 * Compiles schema to validation function
 * @this   Ajv
 * @param  {Object} schema schema object
 * @param  {Object} root object with information about the root schema for this schema
 * @param  {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution
 * @param  {String} baseId base ID for IDs in the schema
 * @return {Function} validation function
 */
function compile(schema, root, localRefs, baseId) {
  /* jshint validthis: true, evil: true */
  /* eslint no-shadow: 0 */
  var self = this
    , opts = this._opts
    , refVal = [ undefined ]
    , refs = {}
    , patterns = []
    , patternsHash = {}
    , defaults = []
    , defaultsHash = {}
    , customRules = [];

  root = root || { schema: schema, refVal: refVal, refs: refs };

  var c = checkCompiling.call(this, schema, root, baseId);
  var compilation = this._compilations[c.index];
  if (c.compiling) return (compilation.callValidate = callValidate);

  var formats = this._formats;
  var RULES = this.RULES;

  try {
    var v = localCompile(schema, root, localRefs, baseId);
    compilation.validate = v;
    var cv = compilation.callValidate;
    if (cv) {
      cv.schema = v.schema;
      cv.errors = null;
      cv.refs = v.refs;
      cv.refVal = v.refVal;
      cv.root = v.root;
      cv.$async = v.$async;
      if (opts.sourceCode) cv.source = v.source;
    }
    return v;
  } finally {
    endCompiling.call(this, schema, root, baseId);
  }

  /* @this   {*} - custom context, see passContext option */
  function callValidate() {
    /* jshint validthis: true */
    var validate = compilation.validate;
    var result = validate.apply(this, arguments);
    callValidate.errors = validate.errors;
    return result;
  }

  function localCompile(_schema, _root, localRefs, baseId) {
    var isRoot = !_root || (_root && _root.schema == _schema);
    if (_root.schema != root.schema)
      return compile.call(self, _schema, _root, localRefs, baseId);

    var $async = _schema.$async === true;

    var sourceCode = validateGenerator({
      isTop: true,
      schema: _schema,
      isRoot: isRoot,
      baseId: baseId,
      root: _root,
      schemaPath: '',
      errSchemaPath: '#',
      errorPath: '""',
      MissingRefError: errorClasses.MissingRef,
      RULES: RULES,
      validate: validateGenerator,
      util: util,
      resolve: resolve,
      resolveRef: resolveRef,
      usePattern: usePattern,
      useDefault: useDefault,
      useCustomRule: useCustomRule,
      opts: opts,
      formats: formats,
      logger: self.logger,
      self: self
    });

    sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)
                   + vars(defaults, defaultCode) + vars(customRules, customRuleCode)
                   + sourceCode;

    if (opts.processCode) sourceCode = opts.processCode(sourceCode);
    // console.log('\n\n\n *** \n', JSON.stringify(sourceCode));
    var validate;
    try {
      var makeValidate = new Function(
        'self',
        'RULES',
        'formats',
        'root',
        'refVal',
        'defaults',
        'customRules',
        'equal',
        'ucs2length',
        'ValidationError',
        sourceCode
      );

      validate = makeValidate(
        self,
        RULES,
        formats,
        root,
        refVal,
        defaults,
        customRules,
        equal,
        ucs2length,
        ValidationError
      );

      refVal[0] = validate;
    } catch(e) {
      self.logger.error('Error compiling schema, function code:', sourceCode);
      throw e;
    }

    validate.schema = _schema;
    validate.errors = null;
    validate.refs = refs;
    validate.refVal = refVal;
    validate.root = isRoot ? validate : _root;
    if ($async) validate.$async = true;
    if (opts.sourceCode === true) {
      validate.source = {
        code: sourceCode,
        patterns: patterns,
        defaults: defaults
      };
    }

    return validate;
  }

  function resolveRef(baseId, ref, isRoot) {
    ref = resolve.url(baseId, ref);
    var refIndex = refs[ref];
    var _refVal, refCode;
    if (refIndex !== undefined) {
      _refVal = refVal[refIndex];
      refCode = 'refVal[' + refIndex + ']';
      return resolvedRef(_refVal, refCode);
    }
    if (!isRoot && root.refs) {
      var rootRefId = root.refs[ref];
      if (rootRefId !== undefined) {
        _refVal = root.refVal[rootRefId];
        refCode = addLocalRef(ref, _refVal);
        return resolvedRef(_refVal, refCode);
      }
    }

    refCode = addLocalRef(ref);
    var v = resolve.call(self, localCompile, root, ref);
    if (v === undefined) {
      var localSchema = localRefs && localRefs[ref];
      if (localSchema) {
        v = resolve.inlineRef(localSchema, opts.inlineRefs)
            ? localSchema
            : compile.call(self, localSchema, root, localRefs, baseId);
      }
    }

    if (v === undefined) {
      removeLocalRef(ref);
    } else {
      replaceLocalRef(ref, v);
      return resolvedRef(v, refCode);
    }
  }

  function addLocalRef(ref, v) {
    var refId = refVal.length;
    refVal[refId] = v;
    refs[ref] = refId;
    return 'refVal' + refId;
  }

  function removeLocalRef(ref) {
    delete refs[ref];
  }

  function replaceLocalRef(ref, v) {
    var refId = refs[ref];
    refVal[refId] = v;
  }

  function resolvedRef(refVal, code) {
    return typeof refVal == 'object' || typeof refVal == 'boolean'
            ? { code: code, schema: refVal, inline: true }
            : { code: code, $async: refVal && !!refVal.$async };
  }

  function usePattern(regexStr) {
    var index = patternsHash[regexStr];
    if (index === undefined) {
      index = patternsHash[regexStr] = patterns.length;
      patterns[index] = regexStr;
    }
    return 'pattern' + index;
  }

  function useDefault(value) {
    switch (typeof value) {
      case 'boolean':
      case 'number':
        return '' + value;
      case 'string':
        return util.toQuotedString(value);
      case 'object':
        if (value === null) return 'null';
        var valueStr = stableStringify(value);
        var index = defaultsHash[valueStr];
        if (index === undefined) {
          index = defaultsHash[valueStr] = defaults.length;
          defaults[index] = value;
        }
        return 'default' + index;
    }
  }

  function useCustomRule(rule, schema, parentSchema, it) {
    if (self._opts.validateSchema !== false) {
      var deps = rule.definition.dependencies;
      if (deps && !deps.every(function(keyword) {
        return Object.prototype.hasOwnProperty.call(parentSchema, keyword);
      }))
        throw new Error('parent schema must have all required keywords: ' + deps.join(','));

      var validateSchema = rule.definition.validateSchema;
      if (validateSchema) {
        var valid = validateSchema(schema);
        if (!valid) {
          var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);
          if (self._opts.validateSchema == 'log') self.logger.error(message);
          else throw new Error(message);
        }
      }
    }

    var compile = rule.definition.compile
      , inline = rule.definition.inline
      , macro = rule.definition.macro;

    var validate;
    if (compile) {
      validate = compile.call(self, schema, parentSchema, it);
    } else if (macro) {
      validate = macro.call(self, schema, parentSchema, it);
      if (opts.validateSchema !== false) self.validateSchema(validate, true);
    } else if (inline) {
      validate = inline.call(self, it, rule.keyword, schema, parentSchema);
    } else {
      validate = rule.definition.validate;
      if (!validate) return;
    }

    if (validate === undefined)
      throw new Error('custom keyword "' + rule.keyword + '"failed to compile');

    var index = customRules.length;
    customRules[index] = validate;

    return {
      code: 'customRule' + index,
      validate: validate
    };
  }
}


/**
 * Checks if the schema is currently compiled
 * @this   Ajv
 * @param  {Object} schema schema to compile
 * @param  {Object} root root object
 * @param  {String} baseId base schema ID
 * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean)
 */
function checkCompiling(schema, root, baseId) {
  /* jshint validthis: true */
  var index = compIndex.call(this, schema, root, baseId);
  if (index >= 0) return { index: index, compiling: true };
  index = this._compilations.length;
  this._compilations[index] = {
    schema: schema,
    root: root,
    baseId: baseId
  };
  return { index: index, compiling: false };
}


/**
 * Removes the schema from the currently compiled list
 * @this   Ajv
 * @param  {Object} schema schema to compile
 * @param  {Object} root root object
 * @param  {String} baseId base schema ID
 */
function endCompiling(schema, root, baseId) {
  /* jshint validthis: true */
  var i = compIndex.call(this, schema, root, baseId);
  if (i >= 0) this._compilations.splice(i, 1);
}


/**
 * Index of schema compilation in the currently compiled list
 * @this   Ajv
 * @param  {Object} schema schema to compile
 * @param  {Object} root root object
 * @param  {String} baseId base schema ID
 * @return {Integer} compilation index
 */
function compIndex(schema, root, baseId) {
  /* jshint validthis: true */
  for (var i=0; i<this._compilations.length; i++) {
    var c = this._compilations[i];
    if (c.schema == schema && c.root == root && c.baseId == baseId) return i;
  }
  return -1;
}


function patternCode(i, patterns) {
  return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';
}


function defaultCode(i) {
  return 'var default' + i + ' = defaults[' + i + '];';
}


function refValCode(i, refVal) {
  return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';
}


function customRuleCode(i) {
  return 'var customRule' + i + ' = customRules[' + i + '];';
}


function vars(arr, statement) {
  if (!arr.length) return '';
  var code = '';
  for (var i=0; i<arr.length; i++)
    code += statement(i, arr);
  return code;
}


/***/ }),
/* 415 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var URI = __webpack_require__(416)
  , equal = __webpack_require__(417)
  , util = __webpack_require__(418)
  , SchemaObject = __webpack_require__(420)
  , traverse = __webpack_require__(421);

module.exports = resolve;

resolve.normalizeId = normalizeId;
resolve.fullPath = getFullPath;
resolve.url = resolveUrl;
resolve.ids = resolveIds;
resolve.inlineRef = inlineRef;
resolve.schema = resolveSchema;

/**
 * [resolve and compile the references ($ref)]
 * @this   Ajv
 * @param  {Function} compile reference to schema compilation funciton (localCompile)
 * @param  {Object} root object with information about the root schema for the current schema
 * @param  {String} ref reference to resolve
 * @return {Object|Function} schema object (if the schema can be inlined) or validation function
 */
function resolve(compile, root, ref) {
  /* jshint validthis: true */
  var refVal = this._refs[ref];
  if (typeof refVal == 'string') {
    if (this._refs[refVal]) refVal = this._refs[refVal];
    else return resolve.call(this, compile, root, refVal);
  }

  refVal = refVal || this._schemas[ref];
  if (refVal instanceof SchemaObject) {
    return inlineRef(refVal.schema, this._opts.inlineRefs)
            ? refVal.schema
            : refVal.validate || this._compile(refVal);
  }

  var res = resolveSchema.call(this, root, ref);
  var schema, v, baseId;
  if (res) {
    schema = res.schema;
    root = res.root;
    baseId = res.baseId;
  }

  if (schema instanceof SchemaObject) {
    v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);
  } else if (schema !== undefined) {
    v = inlineRef(schema, this._opts.inlineRefs)
        ? schema
        : compile.call(this, schema, root, undefined, baseId);
  }

  return v;
}


/**
 * Resolve schema, its root and baseId
 * @this Ajv
 * @param  {Object} root root object with properties schema, refVal, refs
 * @param  {String} ref  reference to resolve
 * @return {Object} object with properties schema, root, baseId
 */
function resolveSchema(root, ref) {
  /* jshint validthis: true */
  var p = URI.parse(ref)
    , refPath = _getFullPath(p)
    , baseId = getFullPath(this._getId(root.schema));
  if (Object.keys(root.schema).length === 0 || refPath !== baseId) {
    var id = normalizeId(refPath);
    var refVal = this._refs[id];
    if (typeof refVal == 'string') {
      return resolveRecursive.call(this, root, refVal, p);
    } else if (refVal instanceof SchemaObject) {
      if (!refVal.validate) this._compile(refVal);
      root = refVal;
    } else {
      refVal = this._schemas[id];
      if (refVal instanceof SchemaObject) {
        if (!refVal.validate) this._compile(refVal);
        if (id == normalizeId(ref))
          return { schema: refVal, root: root, baseId: baseId };
        root = refVal;
      } else {
        return;
      }
    }
    if (!root.schema) return;
    baseId = getFullPath(this._getId(root.schema));
  }
  return getJsonPointer.call(this, p, baseId, root.schema, root);
}


/* @this Ajv */
function resolveRecursive(root, ref, parsedRef) {
  /* jshint validthis: true */
  var res = resolveSchema.call(this, root, ref);
  if (res) {
    var schema = res.schema;
    var baseId = res.baseId;
    root = res.root;
    var id = this._getId(schema);
    if (id) baseId = resolveUrl(baseId, id);
    return getJsonPointer.call(this, parsedRef, baseId, schema, root);
  }
}


var PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);
/* @this Ajv */
function getJsonPointer(parsedRef, baseId, schema, root) {
  /* jshint validthis: true */
  parsedRef.fragment = parsedRef.fragment || '';
  if (parsedRef.fragment.slice(0,1) != '/') return;
  var parts = parsedRef.fragment.split('/');

  for (var i = 1; i < parts.length; i++) {
    var part = parts[i];
    if (part) {
      part = util.unescapeFragment(part);
      schema = schema[part];
      if (schema === undefined) break;
      var id;
      if (!PREVENT_SCOPE_CHANGE[part]) {
        id = this._getId(schema);
        if (id) baseId = resolveUrl(baseId, id);
        if (schema.$ref) {
          var $ref = resolveUrl(baseId, schema.$ref);
          var res = resolveSchema.call(this, root, $ref);
          if (res) {
            schema = res.schema;
            root = res.root;
            baseId = res.baseId;
          }
        }
      }
    }
  }
  if (schema !== undefined && schema !== root.schema)
    return { schema: schema, root: root, baseId: baseId };
}


var SIMPLE_INLINED = util.toHash([
  'type', 'format', 'pattern',
  'maxLength', 'minLength',
  'maxProperties', 'minProperties',
  'maxItems', 'minItems',
  'maximum', 'minimum',
  'uniqueItems', 'multipleOf',
  'required', 'enum'
]);
function inlineRef(schema, limit) {
  if (limit === false) return false;
  if (limit === undefined || limit === true) return checkNoRef(schema);
  else if (limit) return countKeys(schema) <= limit;
}


function checkNoRef(schema) {
  var item;
  if (Array.isArray(schema)) {
    for (var i=0; i<schema.length; i++) {
      item = schema[i];
      if (typeof item == 'object' && !checkNoRef(item)) return false;
    }
  } else {
    for (var key in schema) {
      if (key == '$ref') return false;
      item = schema[key];
      if (typeof item == 'object' && !checkNoRef(item)) return false;
    }
  }
  return true;
}


function countKeys(schema) {
  var count = 0, item;
  if (Array.isArray(schema)) {
    for (var i=0; i<schema.length; i++) {
      item = schema[i];
      if (typeof item == 'object') count += countKeys(item);
      if (count == Infinity) return Infinity;
    }
  } else {
    for (var key in schema) {
      if (key == '$ref') return Infinity;
      if (SIMPLE_INLINED[key]) {
        count++;
      } else {
        item = schema[key];
        if (typeof item == 'object') count += countKeys(item) + 1;
        if (count == Infinity) return Infinity;
      }
    }
  }
  return count;
}


function getFullPath(id, normalize) {
  if (normalize !== false) id = normalizeId(id);
  var p = URI.parse(id);
  return _getFullPath(p);
}


function _getFullPath(p) {
  return URI.serialize(p).split('#')[0] + '#';
}


var TRAILING_SLASH_HASH = /#\/?$/;
function normalizeId(id) {
  return id ? id.replace(TRAILING_SLASH_HASH, '') : '';
}


function resolveUrl(baseId, id) {
  id = normalizeId(id);
  return URI.resolve(baseId, id);
}


/* @this Ajv */
function resolveIds(schema) {
  var schemaId = normalizeId(this._getId(schema));
  var baseIds = {'': schemaId};
  var fullPaths = {'': getFullPath(schemaId, false)};
  var localRefs = {};
  var self = this;

  traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {
    if (jsonPtr === '') return;
    var id = self._getId(sch);
    var baseId = baseIds[parentJsonPtr];
    var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;
    if (keyIndex !== undefined)
      fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));

    if (typeof id == 'string') {
      id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);

      var refVal = self._refs[id];
      if (typeof refVal == 'string') refVal = self._refs[refVal];
      if (refVal && refVal.schema) {
        if (!equal(sch, refVal.schema))
          throw new Error('id "' + id + '" resolves to more than one schema');
      } else if (id != normalizeId(fullPath)) {
        if (id[0] == '#') {
          if (localRefs[id] && !equal(sch, localRefs[id]))
            throw new Error('id "' + id + '" resolves to more than one schema');
          localRefs[id] = sch;
        } else {
          self._refs[id] = fullPath;
        }
      }
    }
    baseIds[jsonPtr] = baseId;
    fullPaths[jsonPtr] = fullPath;
  });

  return localRefs;
}


/***/ }),
/* 416 */
/***/ (function(module, exports, __webpack_require__) {

/** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
(function (global, factory) {
	 true ? factory(exports) :
	undefined;
}(this, (function (exports) { 'use strict';

function merge() {
    for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {
        sets[_key] = arguments[_key];
    }

    if (sets.length > 1) {
        sets[0] = sets[0].slice(0, -1);
        var xl = sets.length - 1;
        for (var x = 1; x < xl; ++x) {
            sets[x] = sets[x].slice(1, -1);
        }
        sets[xl] = sets[xl].slice(1);
        return sets.join('');
    } else {
        return sets[0];
    }
}
function subexp(str) {
    return "(?:" + str + ")";
}
function typeOf(o) {
    return o === undefined ? "undefined" : o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase();
}
function toUpperCase(str) {
    return str.toUpperCase();
}
function toArray(obj) {
    return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];
}
function assign(target, source) {
    var obj = target;
    if (source) {
        for (var key in source) {
            obj[key] = source[key];
        }
    }
    return obj;
}

function buildExps(isIRI) {
    var ALPHA$$ = "[A-Za-z]",
        CR$ = "[\\x0D]",
        DIGIT$$ = "[0-9]",
        DQUOTE$$ = "[\\x22]",
        HEXDIG$$ = merge(DIGIT$$, "[A-Fa-f]"),
        //case-insensitive
    LF$$ = "[\\x0A]",
        SP$$ = "[\\x20]",
        PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)),
        //expanded
    GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]",
        SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",
        RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),
        UCSCHAR$$ = isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]",
        //subset, excludes bidi control characters
    IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]",
        //subset
    UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$),
        SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"),
        USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"),
        DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$),
        DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$),
        //relaxed parsing rules
    IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$),
        H16$ = subexp(HEXDIG$$ + "{1,4}"),
        LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$),
        IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$),
        //                           6( h16 ":" ) ls32
    IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$),
        //                      "::" 5( h16 ":" ) ls32
    IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$),
        //[               h16 ] "::" 4( h16 ":" ) ls32
    IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$),
        //[ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
    IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$),
        //[ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
    IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$),
        //[ *3( h16 ":" ) h16 ] "::"    h16 ":"   ls32
    IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$),
        //[ *4( h16 ":" ) h16 ] "::"              ls32
    IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$),
        //[ *5( h16 ":" ) h16 ] "::"              h16
    IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"),
        //[ *6( h16 ":" ) h16 ] "::"
    IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")),
        ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"),
        //RFC 6874
    IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$),
        //RFC 6874
    IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$),
        //RFC 6874, with relaxed parsing rules
    IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"),
        IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"),
        //RFC 6874
    REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"),
        HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")" + "|" + REG_NAME$),
        PORT$ = subexp(DIGIT$$ + "*"),
        AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"),
        PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")),
        SEGMENT$ = subexp(PCHAR$ + "*"),
        SEGMENT_NZ$ = subexp(PCHAR$ + "+"),
        SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"),
        PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"),
        PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"),
        //simplified
    PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),
        //simplified
    PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),
        //simplified
    PATH_EMPTY$ = "(?!" + PCHAR$ + ")",
        PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$),
        QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"),
        FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"),
        HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$),
        URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"),
        RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$),
        RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"),
        URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$),
        ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"),
        GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$",
        RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$",
        ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$",
        SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$",
        AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$";
    return {
        NOT_SCHEME: new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"),
        NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),
        NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),
        NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),
        NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),
        NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"),
        NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"),
        ESCAPE: new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"),
        UNRESERVED: new RegExp(UNRESERVED$$, "g"),
        OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"),
        PCT_ENCODED: new RegExp(PCT_ENCODED$, "g"),
        IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"),
        IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") //RFC 6874, with relaxed parsing rules
    };
}
var URI_PROTOCOL = buildExps(false);

var IRI_PROTOCOL = buildExps(true);

var slicedToArray = function () {
  function sliceIterator(arr, i) {
    var _arr = [];
    var _n = true;
    var _d = false;
    var _e = undefined;

    try {
      for (var _i = arr[Symbol.iterator](), _s; !(_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"]) _i["return"]();
      } finally {
        if (_d) throw _e;
      }
    }

    return _arr;
  }

  return function (arr, i) {
    if (Array.isArray(arr)) {
      return arr;
    } else if (Symbol.iterator in Object(arr)) {
      return sliceIterator(arr, i);
    } else {
      throw new TypeError("Invalid attempt to destructure non-iterable instance");
    }
  };
}();













var toConsumableArray = function (arr) {
  if (Array.isArray(arr)) {
    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];

    return arr2;
  } else {
    return Array.from(arr);
  }
};

/** Highest positive signed 32-bit float value */

var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1

/** Bootstring parameters */
var base = 36;
var tMin = 1;
var tMax = 26;
var skew = 38;
var damp = 700;
var initialBias = 72;
var initialN = 128; // 0x80
var delimiter = '-'; // '\x2D'

/** Regular expressions */
var regexPunycode = /^xn--/;
var regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars
var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators

/** Error messages */
var errors = {
	'overflow': 'Overflow: input needs wider integers to process',
	'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
	'invalid-input': 'Invalid input'
};

/** Convenience shortcuts */
var baseMinusTMin = base - tMin;
var floor = Math.floor;
var stringFromCharCode = String.fromCharCode;

/*--------------------------------------------------------------------------*/

/**
 * A generic error utility function.
 * @private
 * @param {String} type The error type.
 * @returns {Error} Throws a `RangeError` with the applicable error message.
 */
function error$1(type) {
	throw new RangeError(errors[type]);
}

/**
 * A generic `Array#map` utility function.
 * @private
 * @param {Array} array The array to iterate over.
 * @param {Function} callback The function that gets called for every array
 * item.
 * @returns {Array} A new array of values returned by the callback function.
 */
function map(array, fn) {
	var result = [];
	var length = array.length;
	while (length--) {
		result[length] = fn(array[length]);
	}
	return result;
}

/**
 * A simple `Array#map`-like wrapper to work with domain name strings or email
 * addresses.
 * @private
 * @param {String} domain The domain name or email address.
 * @param {Function} callback The function that gets called for every
 * character.
 * @returns {Array} A new string of characters returned by the callback
 * function.
 */
function mapDomain(string, fn) {
	var parts = string.split('@');
	var result = '';
	if (parts.length > 1) {
		// In email addresses, only the domain name should be punycoded. Leave
		// the local part (i.e. everything up to `@`) intact.
		result = parts[0] + '@';
		string = parts[1];
	}
	// Avoid `split(regex)` for IE8 compatibility. See #17.
	string = string.replace(regexSeparators, '\x2E');
	var labels = string.split('.');
	var encoded = map(labels, fn).join('.');
	return result + encoded;
}

/**
 * Creates an array containing the numeric code points of each Unicode
 * character in the string. While JavaScript uses UCS-2 internally,
 * this function will convert a pair of surrogate halves (each of which
 * UCS-2 exposes as separate characters) into a single code point,
 * matching UTF-16.
 * @see `punycode.ucs2.encode`
 * @see <https://mathiasbynens.be/notes/javascript-encoding>
 * @memberOf punycode.ucs2
 * @name decode
 * @param {String} string The Unicode input string (UCS-2).
 * @returns {Array} The new array of code points.
 */
function ucs2decode(string) {
	var output = [];
	var counter = 0;
	var length = string.length;
	while (counter < length) {
		var value = string.charCodeAt(counter++);
		if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
			// It's a high surrogate, and there is a next character.
			var extra = string.charCodeAt(counter++);
			if ((extra & 0xFC00) == 0xDC00) {
				// Low surrogate.
				output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
			} else {
				// It's an unmatched surrogate; only append this code unit, in case the
				// next code unit is the high surrogate of a surrogate pair.
				output.push(value);
				counter--;
			}
		} else {
			output.push(value);
		}
	}
	return output;
}

/**
 * Creates a string based on an array of numeric code points.
 * @see `punycode.ucs2.decode`
 * @memberOf punycode.ucs2
 * @name encode
 * @param {Array} codePoints The array of numeric code points.
 * @returns {String} The new Unicode string (UCS-2).
 */
var ucs2encode = function ucs2encode(array) {
	return String.fromCodePoint.apply(String, toConsumableArray(array));
};

/**
 * Converts a basic code point into a digit/integer.
 * @see `digitToBasic()`
 * @private
 * @param {Number} codePoint The basic numeric code point value.
 * @returns {Number} The numeric value of a basic code point (for use in
 * representing integers) in the range `0` to `base - 1`, or `base` if
 * the code point does not represent a value.
 */
var basicToDigit = function basicToDigit(codePoint) {
	if (codePoint - 0x30 < 0x0A) {
		return codePoint - 0x16;
	}
	if (codePoint - 0x41 < 0x1A) {
		return codePoint - 0x41;
	}
	if (codePoint - 0x61 < 0x1A) {
		return codePoint - 0x61;
	}
	return base;
};

/**
 * Converts a digit/integer into a basic code point.
 * @see `basicToDigit()`
 * @private
 * @param {Number} digit The numeric value of a basic code point.
 * @returns {Number} The basic code point whose value (when used for
 * representing integers) is `digit`, which needs to be in the range
 * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
 * used; else, the lowercase form is used. The behavior is undefined
 * if `flag` is non-zero and `digit` has no uppercase form.
 */
var digitToBasic = function digitToBasic(digit, flag) {
	//  0..25 map to ASCII a..z or A..Z
	// 26..35 map to ASCII 0..9
	return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
};

/**
 * Bias adaptation function as per section 3.4 of RFC 3492.
 * https://tools.ietf.org/html/rfc3492#section-3.4
 * @private
 */
var adapt = function adapt(delta, numPoints, firstTime) {
	var k = 0;
	delta = firstTime ? floor(delta / damp) : delta >> 1;
	delta += floor(delta / numPoints);
	for (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {
		delta = floor(delta / baseMinusTMin);
	}
	return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
};

/**
 * Converts a Punycode string of ASCII-only symbols to a string of Unicode
 * symbols.
 * @memberOf punycode
 * @param {String} input The Punycode string of ASCII-only symbols.
 * @returns {String} The resulting string of Unicode symbols.
 */
var decode = function decode(input) {
	// Don't use UCS-2.
	var output = [];
	var inputLength = input.length;
	var i = 0;
	var n = initialN;
	var bias = initialBias;

	// Handle the basic code points: let `basic` be the number of input code
	// points before the last delimiter, or `0` if there is none, then copy
	// the first basic code points to the output.

	var basic = input.lastIndexOf(delimiter);
	if (basic < 0) {
		basic = 0;
	}

	for (var j = 0; j < basic; ++j) {
		// if it's not a basic code point
		if (input.charCodeAt(j) >= 0x80) {
			error$1('not-basic');
		}
		output.push(input.charCodeAt(j));
	}

	// Main decoding loop: start just after the last delimiter if any basic code
	// points were copied; start at the beginning otherwise.

	for (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{

		// `index` is the index of the next character to be consumed.
		// Decode a generalized variable-length integer into `delta`,
		// which gets added to `i`. The overflow checking is easier
		// if we increase `i` as we go, then subtract off its starting
		// value at the end to obtain `delta`.
		var oldi = i;
		for (var w = 1, k = base;; /* no condition */k += base) {

			if (index >= inputLength) {
				error$1('invalid-input');
			}

			var digit = basicToDigit(input.charCodeAt(index++));

			if (digit >= base || digit > floor((maxInt - i) / w)) {
				error$1('overflow');
			}

			i += digit * w;
			var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;

			if (digit < t) {
				break;
			}

			var baseMinusT = base - t;
			if (w > floor(maxInt / baseMinusT)) {
				error$1('overflow');
			}

			w *= baseMinusT;
		}

		var out = output.length + 1;
		bias = adapt(i - oldi, out, oldi == 0);

		// `i` was supposed to wrap around from `out` to `0`,
		// incrementing `n` each time, so we'll fix that now:
		if (floor(i / out) > maxInt - n) {
			error$1('overflow');
		}

		n += floor(i / out);
		i %= out;

		// Insert `n` at position `i` of the output.
		output.splice(i++, 0, n);
	}

	return String.fromCodePoint.apply(String, output);
};

/**
 * Converts a string of Unicode symbols (e.g. a domain name label) to a
 * Punycode string of ASCII-only symbols.
 * @memberOf punycode
 * @param {String} input The string of Unicode symbols.
 * @returns {String} The resulting Punycode string of ASCII-only symbols.
 */
var encode = function encode(input) {
	var output = [];

	// Convert the input in UCS-2 to an array of Unicode code points.
	input = ucs2decode(input);

	// Cache the length.
	var inputLength = input.length;

	// Initialize the state.
	var n = initialN;
	var delta = 0;
	var bias = initialBias;

	// Handle the basic code points.
	var _iteratorNormalCompletion = true;
	var _didIteratorError = false;
	var _iteratorError = undefined;

	try {
		for (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
			var _currentValue2 = _step.value;

			if (_currentValue2 < 0x80) {
				output.push(stringFromCharCode(_currentValue2));
			}
		}
	} catch (err) {
		_didIteratorError = true;
		_iteratorError = err;
	} finally {
		try {
			if (!_iteratorNormalCompletion && _iterator.return) {
				_iterator.return();
			}
		} finally {
			if (_didIteratorError) {
				throw _iteratorError;
			}
		}
	}

	var basicLength = output.length;
	var handledCPCount = basicLength;

	// `handledCPCount` is the number of code points that have been handled;
	// `basicLength` is the number of basic code points.

	// Finish the basic string with a delimiter unless it's empty.
	if (basicLength) {
		output.push(delimiter);
	}

	// Main encoding loop:
	while (handledCPCount < inputLength) {

		// All non-basic code points < n have been handled already. Find the next
		// larger one:
		var m = maxInt;
		var _iteratorNormalCompletion2 = true;
		var _didIteratorError2 = false;
		var _iteratorError2 = undefined;

		try {
			for (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
				var currentValue = _step2.value;

				if (currentValue >= n && currentValue < m) {
					m = currentValue;
				}
			}

			// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
			// but guard against overflow.
		} catch (err) {
			_didIteratorError2 = true;
			_iteratorError2 = err;
		} finally {
			try {
				if (!_iteratorNormalCompletion2 && _iterator2.return) {
					_iterator2.return();
				}
			} finally {
				if (_didIteratorError2) {
					throw _iteratorError2;
				}
			}
		}

		var handledCPCountPlusOne = handledCPCount + 1;
		if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
			error$1('overflow');
		}

		delta += (m - n) * handledCPCountPlusOne;
		n = m;

		var _iteratorNormalCompletion3 = true;
		var _didIteratorError3 = false;
		var _iteratorError3 = undefined;

		try {
			for (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
				var _currentValue = _step3.value;

				if (_currentValue < n && ++delta > maxInt) {
					error$1('overflow');
				}
				if (_currentValue == n) {
					// Represent delta as a generalized variable-length integer.
					var q = delta;
					for (var k = base;; /* no condition */k += base) {
						var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
						if (q < t) {
							break;
						}
						var qMinusT = q - t;
						var 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;
				}
			}
		} catch (err) {
			_didIteratorError3 = true;
			_iteratorError3 = err;
		} finally {
			try {
				if (!_iteratorNormalCompletion3 && _iterator3.return) {
					_iterator3.return();
				}
			} finally {
				if (_didIteratorError3) {
					throw _iteratorError3;
				}
			}
		}

		++delta;
		++n;
	}
	return output.join('');
};

/**
 * Converts a Punycode string representing a domain name or an email address
 * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
 * it doesn't matter if you call it on a string that has already been
 * converted to Unicode.
 * @memberOf punycode
 * @param {String} input The Punycoded domain name or email address to
 * convert to Unicode.
 * @returns {String} The Unicode representation of the given Punycode
 * string.
 */
var toUnicode = function toUnicode(input) {
	return mapDomain(input, function (string) {
		return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;
	});
};

/**
 * Converts a Unicode string representing a domain name or an email address to
 * Punycode. Only the non-ASCII parts of the domain name will be converted,
 * i.e. it doesn't matter if you call it with a domain that's already in
 * ASCII.
 * @memberOf punycode
 * @param {String} input The domain name or email address to convert, as a
 * Unicode string.
 * @returns {String} The Punycode representation of the given domain name or
 * email address.
 */
var toASCII = function toASCII(input) {
	return mapDomain(input, function (string) {
		return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;
	});
};

/*--------------------------------------------------------------------------*/

/** Define the public API */
var punycode = {
	/**
  * A string representing the current Punycode.js version number.
  * @memberOf punycode
  * @type String
  */
	'version': '2.1.0',
	/**
  * 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': decode,
	'encode': encode,
	'toASCII': toASCII,
	'toUnicode': toUnicode
};

/**
 * URI.js
 *
 * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.
 * @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
 * @see http://github.com/garycourt/uri-js
 */
/**
 * Copyright 2011 Gary Court. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 *
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 *
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Gary Court.
 */
var SCHEMES = {};
function pctEncChar(chr) {
    var c = chr.charCodeAt(0);
    var e = void 0;
    if (c < 16) e = "%0" + c.toString(16).toUpperCase();else if (c < 128) e = "%" + c.toString(16).toUpperCase();else if (c < 2048) e = "%" + (c >> 6 | 192).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();else e = "%" + (c >> 12 | 224).toString(16).toUpperCase() + "%" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();
    return e;
}
function pctDecChars(str) {
    var newStr = "";
    var i = 0;
    var il = str.length;
    while (i < il) {
        var c = parseInt(str.substr(i + 1, 2), 16);
        if (c < 128) {
            newStr += String.fromCharCode(c);
            i += 3;
        } else if (c >= 194 && c < 224) {
            if (il - i >= 6) {
                var c2 = parseInt(str.substr(i + 4, 2), 16);
                newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);
            } else {
                newStr += str.substr(i, 6);
            }
            i += 6;
        } else if (c >= 224) {
            if (il - i >= 9) {
                var _c = parseInt(str.substr(i + 4, 2), 16);
                var c3 = parseInt(str.substr(i + 7, 2), 16);
                newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);
            } else {
                newStr += str.substr(i, 9);
            }
            i += 9;
        } else {
            newStr += str.substr(i, 3);
            i += 3;
        }
    }
    return newStr;
}
function _normalizeComponentEncoding(components, protocol) {
    function decodeUnreserved(str) {
        var decStr = pctDecChars(str);
        return !decStr.match(protocol.UNRESERVED) ? str : decStr;
    }
    if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, "");
    if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
    if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
    if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
    if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
    if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
    return components;
}

function _stripLeadingZeros(str) {
    return str.replace(/^0*(.*)/, "$1") || "0";
}
function _normalizeIPv4(host, protocol) {
    var matches = host.match(protocol.IPV4ADDRESS) || [];

    var _matches = slicedToArray(matches, 2),
        address = _matches[1];

    if (address) {
        return address.split(".").map(_stripLeadingZeros).join(".");
    } else {
        return host;
    }
}
function _normalizeIPv6(host, protocol) {
    var matches = host.match(protocol.IPV6ADDRESS) || [];

    var _matches2 = slicedToArray(matches, 3),
        address = _matches2[1],
        zone = _matches2[2];

    if (address) {
        var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),
            _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),
            last = _address$toLowerCase$2[0],
            first = _address$toLowerCase$2[1];

        var firstFields = first ? first.split(":").map(_stripLeadingZeros) : [];
        var lastFields = last.split(":").map(_stripLeadingZeros);
        var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);
        var fieldCount = isLastFieldIPv4Address ? 7 : 8;
        var lastFieldsStart = lastFields.length - fieldCount;
        var fields = Array(fieldCount);
        for (var x = 0; x < fieldCount; ++x) {
            fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';
        }
        if (isLastFieldIPv4Address) {
            fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);
        }
        var allZeroFields = fields.reduce(function (acc, field, index) {
            if (!field || field === "0") {
                var lastLongest = acc[acc.length - 1];
                if (lastLongest && lastLongest.index + lastLongest.length === index) {
                    lastLongest.length++;
                } else {
                    acc.push({ index: index, length: 1 });
                }
            }
            return acc;
        }, []);
        var longestZeroFields = allZeroFields.sort(function (a, b) {
            return b.length - a.length;
        })[0];
        var newHost = void 0;
        if (longestZeroFields && longestZeroFields.length > 1) {
            var newFirst = fields.slice(0, longestZeroFields.index);
            var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);
            newHost = newFirst.join(":") + "::" + newLast.join(":");
        } else {
            newHost = fields.join(":");
        }
        if (zone) {
            newHost += "%" + zone;
        }
        return newHost;
    } else {
        return host;
    }
}
var URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;
var NO_MATCH_IS_UNDEFINED = "".match(/(){0}/)[1] === undefined;
function parse(uriString) {
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

    var components = {};
    var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;
    if (options.reference === "suffix") uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString;
    var matches = uriString.match(URI_PARSE);
    if (matches) {
        if (NO_MATCH_IS_UNDEFINED) {
            //store each component
            components.scheme = matches[1];
            components.userinfo = matches[3];
            components.host = matches[4];
            components.port = parseInt(matches[5], 10);
            components.path = matches[6] || "";
            components.query = matches[7];
            components.fragment = matches[8];
            //fix port number
            if (isNaN(components.port)) {
                components.port = matches[5];
            }
        } else {
            //IE FIX for improper RegExp matching
            //store each component
            components.scheme = matches[1] || undefined;
            components.userinfo = uriString.indexOf("@") !== -1 ? matches[3] : undefined;
            components.host = uriString.indexOf("//") !== -1 ? matches[4] : undefined;
            components.port = parseInt(matches[5], 10);
            components.path = matches[6] || "";
            components.query = uriString.indexOf("?") !== -1 ? matches[7] : undefined;
            components.fragment = uriString.indexOf("#") !== -1 ? matches[8] : undefined;
            //fix port number
            if (isNaN(components.port)) {
                components.port = uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : undefined;
            }
        }
        if (components.host) {
            //normalize IP hosts
            components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);
        }
        //determine reference type
        if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {
            components.reference = "same-document";
        } else if (components.scheme === undefined) {
            components.reference = "relative";
        } else if (components.fragment === undefined) {
            components.reference = "absolute";
        } else {
            components.reference = "uri";
        }
        //check for reference errors
        if (options.reference && options.reference !== "suffix" && options.reference !== components.reference) {
            components.error = components.error || "URI is not a " + options.reference + " reference.";
        }
        //find scheme handler
        var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
        //check if scheme can't handle IRIs
        if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
            //if host component is a domain name
            if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {
                //convert Unicode IDN -> ASCII IDN
                try {
                    components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());
                } catch (e) {
                    components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e;
                }
            }
            //convert IRI -> URI
            _normalizeComponentEncoding(components, URI_PROTOCOL);
        } else {
            //normalize encodings
            _normalizeComponentEncoding(components, protocol);
        }
        //perform scheme specific parsing
        if (schemeHandler && schemeHandler.parse) {
            schemeHandler.parse(components, options);
        }
    } else {
        components.error = components.error || "URI can not be parsed.";
    }
    return components;
}

function _recomposeAuthority(components, options) {
    var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;
    var uriTokens = [];
    if (components.userinfo !== undefined) {
        uriTokens.push(components.userinfo);
        uriTokens.push("@");
    }
    if (components.host !== undefined) {
        //normalize IP hosts, add brackets and escape zone separator for IPv6
        uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {
            return "[" + $1 + ($2 ? "%25" + $2 : "") + "]";
        }));
    }
    if (typeof components.port === "number") {
        uriTokens.push(":");
        uriTokens.push(components.port.toString(10));
    }
    return uriTokens.length ? uriTokens.join("") : undefined;
}

var RDS1 = /^\.\.?\//;
var RDS2 = /^\/\.(\/|$)/;
var RDS3 = /^\/\.\.(\/|$)/;
var RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/;
function removeDotSegments(input) {
    var output = [];
    while (input.length) {
        if (input.match(RDS1)) {
            input = input.replace(RDS1, "");
        } else if (input.match(RDS2)) {
            input = input.replace(RDS2, "/");
        } else if (input.match(RDS3)) {
            input = input.replace(RDS3, "/");
            output.pop();
        } else if (input === "." || input === "..") {
            input = "";
        } else {
            var im = input.match(RDS5);
            if (im) {
                var s = im[0];
                input = input.slice(s.length);
                output.push(s);
            } else {
                throw new Error("Unexpected dot segment condition");
            }
        }
    }
    return output.join("");
}

function serialize(components) {
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

    var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;
    var uriTokens = [];
    //find scheme handler
    var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
    //perform scheme specific serialization
    if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);
    if (components.host) {
        //if host component is an IPv6 address
        if (protocol.IPV6ADDRESS.test(components.host)) {}
        //TODO: normalize IPv6 address as per RFC 5952

        //if host component is a domain name
        else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {
                //convert IDN via punycode
                try {
                    components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);
                } catch (e) {
                    components.error = components.error || "Host's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
                }
            }
    }
    //normalize encoding
    _normalizeComponentEncoding(components, protocol);
    if (options.reference !== "suffix" && components.scheme) {
        uriTokens.push(components.scheme);
        uriTokens.push(":");
    }
    var authority = _recomposeAuthority(components, options);
    if (authority !== undefined) {
        if (options.reference !== "suffix") {
            uriTokens.push("//");
        }
        uriTokens.push(authority);
        if (components.path && components.path.charAt(0) !== "/") {
            uriTokens.push("/");
        }
    }
    if (components.path !== undefined) {
        var s = components.path;
        if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
            s = removeDotSegments(s);
        }
        if (authority === undefined) {
            s = s.replace(/^\/\//, "/%2F"); //don't allow the path to start with "//"
        }
        uriTokens.push(s);
    }
    if (components.query !== undefined) {
        uriTokens.push("?");
        uriTokens.push(components.query);
    }
    if (components.fragment !== undefined) {
        uriTokens.push("#");
        uriTokens.push(components.fragment);
    }
    return uriTokens.join(""); //merge tokens into a string
}

function resolveComponents(base, relative) {
    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
    var skipNormalization = arguments[3];

    var target = {};
    if (!skipNormalization) {
        base = parse(serialize(base, options), options); //normalize base components
        relative = parse(serialize(relative, options), options); //normalize relative components
    }
    options = options || {};
    if (!options.tolerant && relative.scheme) {
        target.scheme = relative.scheme;
        //target.authority = relative.authority;
        target.userinfo = relative.userinfo;
        target.host = relative.host;
        target.port = relative.port;
        target.path = removeDotSegments(relative.path || "");
        target.query = relative.query;
    } else {
        if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {
            //target.authority = relative.authority;
            target.userinfo = relative.userinfo;
            target.host = relative.host;
            target.port = relative.port;
            target.path = removeDotSegments(relative.path || "");
            target.query = relative.query;
        } else {
            if (!relative.path) {
                target.path = base.path;
                if (relative.query !== undefined) {
                    target.query = relative.query;
                } else {
                    target.query = base.query;
                }
            } else {
                if (relative.path.charAt(0) === "/") {
                    target.path = removeDotSegments(relative.path);
                } else {
                    if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {
                        target.path = "/" + relative.path;
                    } else if (!base.path) {
                        target.path = relative.path;
                    } else {
                        target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path;
                    }
                    target.path = removeDotSegments(target.path);
                }
                target.query = relative.query;
            }
            //target.authority = base.authority;
            target.userinfo = base.userinfo;
            target.host = base.host;
            target.port = base.port;
        }
        target.scheme = base.scheme;
    }
    target.fragment = relative.fragment;
    return target;
}

function resolve(baseURI, relativeURI, options) {
    var schemelessOptions = assign({ scheme: 'null' }, options);
    return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);
}

function normalize(uri, options) {
    if (typeof uri === "string") {
        uri = serialize(parse(uri, options), options);
    } else if (typeOf(uri) === "object") {
        uri = parse(serialize(uri, options), options);
    }
    return uri;
}

function equal(uriA, uriB, options) {
    if (typeof uriA === "string") {
        uriA = serialize(parse(uriA, options), options);
    } else if (typeOf(uriA) === "object") {
        uriA = serialize(uriA, options);
    }
    if (typeof uriB === "string") {
        uriB = serialize(parse(uriB, options), options);
    } else if (typeOf(uriB) === "object") {
        uriB = serialize(uriB, options);
    }
    return uriA === uriB;
}

function escapeComponent(str, options) {
    return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);
}

function unescapeComponent(str, options) {
    return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);
}

var handler = {
    scheme: "http",
    domainHost: true,
    parse: function parse(components, options) {
        //report missing host
        if (!components.host) {
            components.error = components.error || "HTTP URIs must have a host.";
        }
        return components;
    },
    serialize: function serialize(components, options) {
        //normalize the default port
        if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") {
            components.port = undefined;
        }
        //normalize the empty path
        if (!components.path) {
            components.path = "/";
        }
        //NOTE: We do not parse query strings for HTTP URIs
        //as WWW Form Url Encoded query strings are part of the HTML4+ spec,
        //and not the HTTP spec.
        return components;
    }
};

var handler$1 = {
    scheme: "https",
    domainHost: handler.domainHost,
    parse: handler.parse,
    serialize: handler.serialize
};

var O = {};
var isIRI = true;
//RFC 3986
var UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]";
var HEXDIG$$ = "[0-9A-Fa-f]"; //case-insensitive
var PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)); //expanded
//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =
//const ATEXT$$ = "[A-Za-z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]";
//const WSP$$ = "[\\x20\\x09]";
//const OBS_QTEXT$$ = "[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]";  //(%d1-8 / %d11-12 / %d14-31 / %d127)
//const QTEXT$$ = merge("[\\x21\\x23-\\x5B\\x5D-\\x7E]", OBS_QTEXT$$);  //%d33 / %d35-91 / %d93-126 / obs-qtext
//const VCHAR$$ = "[\\x21-\\x7E]";
//const WSP$$ = "[\\x20\\x09]";
//const OBS_QP$ = subexp("\\\\" + merge("[\\x00\\x0D\\x0A]", OBS_QTEXT$$));  //%d0 / CR / LF / obs-qtext
//const FWS$ = subexp(subexp(WSP$$ + "*" + "\\x0D\\x0A") + "?" + WSP$$ + "+");
//const QUOTED_PAIR$ = subexp(subexp("\\\\" + subexp(VCHAR$$ + "|" + WSP$$)) + "|" + OBS_QP$);
//const QUOTED_STRING$ = subexp('\\"' + subexp(FWS$ + "?" + QCONTENT$) + "*" + FWS$ + "?" + '\\"');
var ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";
var QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";
var VCHAR$$ = merge(QTEXT$$, "[\\\"\\\\]");
var SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";
var UNRESERVED = new RegExp(UNRESERVED$$, "g");
var PCT_ENCODED = new RegExp(PCT_ENCODED$, "g");
var NOT_LOCAL_PART = new RegExp(merge("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g");
var NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, SOME_DELIMS$$), "g");
var NOT_HFVALUE = NOT_HFNAME;
function decodeUnreserved(str) {
    var decStr = pctDecChars(str);
    return !decStr.match(UNRESERVED) ? str : decStr;
}
var handler$2 = {
    scheme: "mailto",
    parse: function parse$$1(components, options) {
        var mailtoComponents = components;
        var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(",") : [];
        mailtoComponents.path = undefined;
        if (mailtoComponents.query) {
            var unknownHeaders = false;
            var headers = {};
            var hfields = mailtoComponents.query.split("&");
            for (var x = 0, xl = hfields.length; x < xl; ++x) {
                var hfield = hfields[x].split("=");
                switch (hfield[0]) {
                    case "to":
                        var toAddrs = hfield[1].split(",");
                        for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {
                            to.push(toAddrs[_x]);
                        }
                        break;
                    case "subject":
                        mailtoComponents.subject = unescapeComponent(hfield[1], options);
                        break;
                    case "body":
                        mailtoComponents.body = unescapeComponent(hfield[1], options);
                        break;
                    default:
                        unknownHeaders = true;
                        headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);
                        break;
                }
            }
            if (unknownHeaders) mailtoComponents.headers = headers;
        }
        mailtoComponents.query = undefined;
        for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {
            var addr = to[_x2].split("@");
            addr[0] = unescapeComponent(addr[0]);
            if (!options.unicodeSupport) {
                //convert Unicode IDN -> ASCII IDN
                try {
                    addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());
                } catch (e) {
                    mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e;
                }
            } else {
                addr[1] = unescapeComponent(addr[1], options).toLowerCase();
            }
            to[_x2] = addr.join("@");
        }
        return mailtoComponents;
    },
    serialize: function serialize$$1(mailtoComponents, options) {
        var components = mailtoComponents;
        var to = toArray(mailtoComponents.to);
        if (to) {
            for (var x = 0, xl = to.length; x < xl; ++x) {
                var toAddr = String(to[x]);
                var atIdx = toAddr.lastIndexOf("@");
                var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);
                var domain = toAddr.slice(atIdx + 1);
                //convert IDN via punycode
                try {
                    domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);
                } catch (e) {
                    components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
                }
                to[x] = localPart + "@" + domain;
            }
            components.path = to.join(",");
        }
        var headers = mailtoComponents.headers = mailtoComponents.headers || {};
        if (mailtoComponents.subject) headers["subject"] = mailtoComponents.subject;
        if (mailtoComponents.body) headers["body"] = mailtoComponents.body;
        var fields = [];
        for (var name in headers) {
            if (headers[name] !== O[name]) {
                fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + "=" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));
            }
        }
        if (fields.length) {
            components.query = fields.join("&");
        }
        return components;
    }
};

var URN_PARSE = /^([^\:]+)\:(.*)/;
//RFC 2141
var handler$3 = {
    scheme: "urn",
    parse: function parse$$1(components, options) {
        var matches = components.path && components.path.match(URN_PARSE);
        var urnComponents = components;
        if (matches) {
            var scheme = options.scheme || urnComponents.scheme || "urn";
            var nid = matches[1].toLowerCase();
            var nss = matches[2];
            var urnScheme = scheme + ":" + (options.nid || nid);
            var schemeHandler = SCHEMES[urnScheme];
            urnComponents.nid = nid;
            urnComponents.nss = nss;
            urnComponents.path = undefined;
            if (schemeHandler) {
                urnComponents = schemeHandler.parse(urnComponents, options);
            }
        } else {
            urnComponents.error = urnComponents.error || "URN can not be parsed.";
        }
        return urnComponents;
    },
    serialize: function serialize$$1(urnComponents, options) {
        var scheme = options.scheme || urnComponents.scheme || "urn";
        var nid = urnComponents.nid;
        var urnScheme = scheme + ":" + (options.nid || nid);
        var schemeHandler = SCHEMES[urnScheme];
        if (schemeHandler) {
            urnComponents = schemeHandler.serialize(urnComponents, options);
        }
        var uriComponents = urnComponents;
        var nss = urnComponents.nss;
        uriComponents.path = (nid || options.nid) + ":" + nss;
        return uriComponents;
    }
};

var UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/;
//RFC 4122
var handler$4 = {
    scheme: "urn:uuid",
    parse: function parse(urnComponents, options) {
        var uuidComponents = urnComponents;
        uuidComponents.uuid = uuidComponents.nss;
        uuidComponents.nss = undefined;
        if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {
            uuidComponents.error = uuidComponents.error || "UUID is not valid.";
        }
        return uuidComponents;
    },
    serialize: function serialize(uuidComponents, options) {
        var urnComponents = uuidComponents;
        //normalize UUID
        urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();
        return urnComponents;
    }
};

SCHEMES[handler.scheme] = handler;
SCHEMES[handler$1.scheme] = handler$1;
SCHEMES[handler$2.scheme] = handler$2;
SCHEMES[handler$3.scheme] = handler$3;
SCHEMES[handler$4.scheme] = handler$4;

exports.SCHEMES = SCHEMES;
exports.pctEncChar = pctEncChar;
exports.pctDecChars = pctDecChars;
exports.parse = parse;
exports.removeDotSegments = removeDotSegments;
exports.serialize = serialize;
exports.resolveComponents = resolveComponents;
exports.resolve = resolve;
exports.normalize = normalize;
exports.equal = equal;
exports.escapeComponent = escapeComponent;
exports.unescapeComponent = unescapeComponent;

Object.defineProperty(exports, '__esModule', { value: true });

})));
//# sourceMappingURL=uri.all.js.map


/***/ }),
/* 417 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isArray = Array.isArray;
var keyList = Object.keys;
var hasProp = Object.prototype.hasOwnProperty;

module.exports = function equal(a, b) {
  if (a === b) return true;

  if (a && b && typeof a == 'object' && typeof b == 'object') {
    var arrA = isArray(a)
      , arrB = isArray(b)
      , i
      , length
      , key;

    if (arrA && arrB) {
      length = a.length;
      if (length != b.length) return false;
      for (i = length; i-- !== 0;)
        if (!equal(a[i], b[i])) return false;
      return true;
    }

    if (arrA != arrB) return false;

    var dateA = a instanceof Date
      , dateB = b instanceof Date;
    if (dateA != dateB) return false;
    if (dateA && dateB) return a.getTime() == b.getTime();

    var regexpA = a instanceof RegExp
      , regexpB = b instanceof RegExp;
    if (regexpA != regexpB) return false;
    if (regexpA && regexpB) return a.toString() == b.toString();

    var keys = keyList(a);
    length = keys.length;

    if (length !== keyList(b).length)
      return false;

    for (i = length; i-- !== 0;)
      if (!hasProp.call(b, keys[i])) return false;

    for (i = length; i-- !== 0;) {
      key = keys[i];
      if (!equal(a[key], b[key])) return false;
    }

    return true;
  }

  return a!==a && b!==b;
};


/***/ }),
/* 418 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";



module.exports = {
  copy: copy,
  checkDataType: checkDataType,
  checkDataTypes: checkDataTypes,
  coerceToTypes: coerceToTypes,
  toHash: toHash,
  getProperty: getProperty,
  escapeQuotes: escapeQuotes,
  equal: __webpack_require__(417),
  ucs2length: __webpack_require__(419),
  varOccurences: varOccurences,
  varReplace: varReplace,
  cleanUpCode: cleanUpCode,
  finalCleanUpCode: finalCleanUpCode,
  schemaHasRules: schemaHasRules,
  schemaHasRulesExcept: schemaHasRulesExcept,
  schemaUnknownRules: schemaUnknownRules,
  toQuotedString: toQuotedString,
  getPathExpr: getPathExpr,
  getPath: getPath,
  getData: getData,
  unescapeFragment: unescapeFragment,
  unescapeJsonPointer: unescapeJsonPointer,
  escapeFragment: escapeFragment,
  escapeJsonPointer: escapeJsonPointer
};


function copy(o, to) {
  to = to || {};
  for (var key in o) to[key] = o[key];
  return to;
}


function checkDataType(dataType, data, negate) {
  var EQUAL = negate ? ' !== ' : ' === '
    , AND = negate ? ' || ' : ' && '
    , OK = negate ? '!' : ''
    , NOT = negate ? '' : '!';
  switch (dataType) {
    case 'null': return data + EQUAL + 'null';
    case 'array': return OK + 'Array.isArray(' + data + ')';
    case 'object': return '(' + OK + data + AND +
                          'typeof ' + data + EQUAL + '"object"' + AND +
                          NOT + 'Array.isArray(' + data + '))';
    case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND +
                           NOT + '(' + data + ' % 1)' +
                           AND + data + EQUAL + data + ')';
    default: return 'typeof ' + data + EQUAL + '"' + dataType + '"';
  }
}


function checkDataTypes(dataTypes, data) {
  switch (dataTypes.length) {
    case 1: return checkDataType(dataTypes[0], data, true);
    default:
      var code = '';
      var types = toHash(dataTypes);
      if (types.array && types.object) {
        code = types.null ? '(': '(!' + data + ' || ';
        code += 'typeof ' + data + ' !== "object")';
        delete types.null;
        delete types.array;
        delete types.object;
      }
      if (types.number) delete types.integer;
      for (var t in types)
        code += (code ? ' && ' : '' ) + checkDataType(t, data, true);

      return code;
  }
}


var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);
function coerceToTypes(optionCoerceTypes, dataTypes) {
  if (Array.isArray(dataTypes)) {
    var types = [];
    for (var i=0; i<dataTypes.length; i++) {
      var t = dataTypes[i];
      if (COERCE_TO_TYPES[t]) types[types.length] = t;
      else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;
    }
    if (types.length) return types;
  } else if (COERCE_TO_TYPES[dataTypes]) {
    return [dataTypes];
  } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {
    return ['array'];
  }
}


function toHash(arr) {
  var hash = {};
  for (var i=0; i<arr.length; i++) hash[arr[i]] = true;
  return hash;
}


var IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
var SINGLE_QUOTE = /'|\\/g;
function getProperty(key) {
  return typeof key == 'number'
          ? '[' + key + ']'
          : IDENTIFIER.test(key)
            ? '.' + key
            : "['" + escapeQuotes(key) + "']";
}


function escapeQuotes(str) {
  return str.replace(SINGLE_QUOTE, '\\$&')
            .replace(/\n/g, '\\n')
            .replace(/\r/g, '\\r')
            .replace(/\f/g, '\\f')
            .replace(/\t/g, '\\t');
}


function varOccurences(str, dataVar) {
  dataVar += '[^0-9]';
  var matches = str.match(new RegExp(dataVar, 'g'));
  return matches ? matches.length : 0;
}


function varReplace(str, dataVar, expr) {
  dataVar += '([^0-9])';
  expr = expr.replace(/\$/g, '$$$$');
  return str.replace(new RegExp(dataVar, 'g'), expr + '$1');
}


var EMPTY_ELSE = /else\s*{\s*}/g
  , EMPTY_IF_NO_ELSE = /if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g
  , EMPTY_IF_WITH_ELSE = /if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g;
function cleanUpCode(out) {
  return out.replace(EMPTY_ELSE, '')
            .replace(EMPTY_IF_NO_ELSE, '')
            .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))');
}


var ERRORS_REGEXP = /[^v.]errors/g
  , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g
  , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g
  , RETURN_VALID = 'return errors === 0;'
  , RETURN_TRUE = 'validate.errors = null; return true;'
  , RETURN_ASYNC = /if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/
  , RETURN_DATA_ASYNC = 'return data;'
  , ROOTDATA_REGEXP = /[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g
  , REMOVE_ROOTDATA = /if \(rootData === undefined\) rootData = data;/;

function finalCleanUpCode(out, async) {
  var matches = out.match(ERRORS_REGEXP);
  if (matches && matches.length == 2) {
    out = async
          ? out.replace(REMOVE_ERRORS_ASYNC, '')
               .replace(RETURN_ASYNC, RETURN_DATA_ASYNC)
          : out.replace(REMOVE_ERRORS, '')
               .replace(RETURN_VALID, RETURN_TRUE);
  }

  matches = out.match(ROOTDATA_REGEXP);
  if (!matches || matches.length !== 3) return out;
  return out.replace(REMOVE_ROOTDATA, '');
}


function schemaHasRules(schema, rules) {
  if (typeof schema == 'boolean') return !schema;
  for (var key in schema) if (rules[key]) return true;
}


function schemaHasRulesExcept(schema, rules, exceptKeyword) {
  if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';
  for (var key in schema) if (key != exceptKeyword && rules[key]) return true;
}


function schemaUnknownRules(schema, rules) {
  if (typeof schema == 'boolean') return;
  for (var key in schema) if (!rules[key]) return key;
}


function toQuotedString(str) {
  return '\'' + escapeQuotes(str) + '\'';
}


function getPathExpr(currentPath, expr, jsonPointers, isNumber) {
  var path = jsonPointers // false by default
              ? '\'/\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \'~0\').replace(/\\//g, \'~1\')')
              : (isNumber ? '\'[\' + ' + expr + ' + \']\'' : '\'[\\\'\' + ' + expr + ' + \'\\\']\'');
  return joinPaths(currentPath, path);
}


function getPath(currentPath, prop, jsonPointers) {
  var path = jsonPointers // false by default
              ? toQuotedString('/' + escapeJsonPointer(prop))
              : toQuotedString(getProperty(prop));
  return joinPaths(currentPath, path);
}


var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/;
var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;
function getData($data, lvl, paths) {
  var up, jsonPointer, data, matches;
  if ($data === '') return 'rootData';
  if ($data[0] == '/') {
    if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);
    jsonPointer = $data;
    data = 'rootData';
  } else {
    matches = $data.match(RELATIVE_JSON_POINTER);
    if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);
    up = +matches[1];
    jsonPointer = matches[2];
    if (jsonPointer == '#') {
      if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);
      return paths[lvl - up];
    }

    if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);
    data = 'data' + ((lvl - up) || '');
    if (!jsonPointer) return data;
  }

  var expr = data;
  var segments = jsonPointer.split('/');
  for (var i=0; i<segments.length; i++) {
    var segment = segments[i];
    if (segment) {
      data += getProperty(unescapeJsonPointer(segment));
      expr += ' && ' + data;
    }
  }
  return expr;
}


function joinPaths (a, b) {
  if (a == '""') return b;
  return (a + ' + ' + b).replace(/' \+ '/g, '');
}


function unescapeFragment(str) {
  return unescapeJsonPointer(decodeURIComponent(str));
}


function escapeFragment(str) {
  return encodeURIComponent(escapeJsonPointer(str));
}


function escapeJsonPointer(str) {
  return str.replace(/~/g, '~0').replace(/\//g, '~1');
}


function unescapeJsonPointer(str) {
  return str.replace(/~1/g, '/').replace(/~0/g, '~');
}


/***/ }),
/* 419 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


// https://mathiasbynens.be/notes/javascript-encoding
// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode
module.exports = function ucs2length(str) {
  var length = 0
    , len = str.length
    , pos = 0
    , value;
  while (pos < len) {
    length++;
    value = str.charCodeAt(pos++);
    if (value >= 0xD800 && value <= 0xDBFF && pos < len) {
      // high surrogate, and there is a next character
      value = str.charCodeAt(pos);
      if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate
    }
  }
  return length;
};


/***/ }),
/* 420 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var util = __webpack_require__(418);

module.exports = SchemaObject;

function SchemaObject(obj) {
  util.copy(obj, this);
}


/***/ }),
/* 421 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var traverse = module.exports = function (schema, opts, cb) {
  // Legacy support for v0.3.1 and earlier.
  if (typeof opts == 'function') {
    cb = opts;
    opts = {};
  }

  cb = opts.cb || cb;
  var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};
  var post = cb.post || function() {};

  _traverse(opts, pre, post, schema, '', schema);
};


traverse.keywords = {
  additionalItems: true,
  items: true,
  contains: true,
  additionalProperties: true,
  propertyNames: true,
  not: true
};

traverse.arrayKeywords = {
  items: true,
  allOf: true,
  anyOf: true,
  oneOf: true
};

traverse.propsKeywords = {
  definitions: true,
  properties: true,
  patternProperties: true,
  dependencies: true
};

traverse.skipKeywords = {
  default: true,
  enum: true,
  const: true,
  required: true,
  maximum: true,
  minimum: true,
  exclusiveMaximum: true,
  exclusiveMinimum: true,
  multipleOf: true,
  maxLength: true,
  minLength: true,
  pattern: true,
  format: true,
  maxItems: true,
  minItems: true,
  uniqueItems: true,
  maxProperties: true,
  minProperties: true
};


function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {
  if (schema && typeof schema == 'object' && !Array.isArray(schema)) {
    pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
    for (var key in schema) {
      var sch = schema[key];
      if (Array.isArray(sch)) {
        if (key in traverse.arrayKeywords) {
          for (var i=0; i<sch.length; i++)
            _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);
        }
      } else if (key in traverse.propsKeywords) {
        if (sch && typeof sch == 'object') {
          for (var prop in sch)
            _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);
        }
      } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {
        _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);
      }
    }
    post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
  }
}


function escapeJsonPtr(str) {
  return str.replace(/~/g, '~0').replace(/\//g, '~1');
}


/***/ }),
/* 422 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var resolve = __webpack_require__(415);

module.exports = {
  Validation: errorSubclass(ValidationError),
  MissingRef: errorSubclass(MissingRefError)
};


function ValidationError(errors) {
  this.message = 'validation failed';
  this.errors = errors;
  this.ajv = this.validation = true;
}


MissingRefError.message = function (baseId, ref) {
  return 'can\'t resolve reference ' + ref + ' from id ' + baseId;
};


function MissingRefError(baseId, ref, message) {
  this.message = message || MissingRefError.message(baseId, ref);
  this.missingRef = resolve.url(baseId, ref);
  this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));
}


function errorSubclass(Subclass) {
  Subclass.prototype = Object.create(Error.prototype);
  Subclass.prototype.constructor = Subclass;
  return Subclass;
}


/***/ }),
/* 423 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function (data, opts) {
    if (!opts) opts = {};
    if (typeof opts === 'function') opts = { cmp: opts };
    var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;

    var cmp = opts.cmp && (function (f) {
        return function (node) {
            return function (a, b) {
                var aobj = { key: a, value: node[a] };
                var bobj = { key: b, value: node[b] };
                return f(aobj, bobj);
            };
        };
    })(opts.cmp);

    var seen = [];
    return (function stringify (node) {
        if (node && node.toJSON && typeof node.toJSON === 'function') {
            node = node.toJSON();
        }

        if (node === undefined) return;
        if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';
        if (typeof node !== 'object') return JSON.stringify(node);

        var i, out;
        if (Array.isArray(node)) {
            out = '[';
            for (i = 0; i < node.length; i++) {
                if (i) out += ',';
                out += stringify(node[i]) || 'null';
            }
            return out + ']';
        }

        if (node === null) return 'null';

        if (seen.indexOf(node) !== -1) {
            if (cycles) return JSON.stringify('__cycle__');
            throw new TypeError('Converting circular structure to JSON');
        }

        var seenIndex = seen.push(node) - 1;
        var keys = Object.keys(node).sort(cmp && cmp(node));
        out = '';
        for (i = 0; i < keys.length; i++) {
            var key = keys[i];
            var value = stringify(node[key]);

            if (!value) continue;
            if (out) out += ',';
            out += JSON.stringify(key) + ':' + value;
        }
        seen.splice(seenIndex, 1);
        return '{' + out + '}';
    })(data);
};


/***/ }),
/* 424 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_validate(it, $keyword, $ruleType) {
  var out = '';
  var $async = it.schema.$async === true,
    $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),
    $id = it.self._getId(it.schema);
  if (it.opts.strictKeywords) {
    var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);
    if ($unknownKwd) {
      var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;
      if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);
      else throw new Error($keywordsMsg);
    }
  }
  if (it.isTop) {
    out += ' var validate = ';
    if ($async) {
      it.async = true;
      out += 'async ';
    }
    out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \'use strict\'; ';
    if ($id && (it.opts.sourceCode || it.opts.processCode)) {
      out += ' ' + ('/\*# sourceURL=' + $id + ' */') + ' ';
    }
  }
  if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {
    var $keyword = 'false schema';
    var $lvl = it.level;
    var $dataLvl = it.dataLevel;
    var $schema = it.schema[$keyword];
    var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
    var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
    var $breakOnError = !it.opts.allErrors;
    var $errorKeyword;
    var $data = 'data' + ($dataLvl || '');
    var $valid = 'valid' + $lvl;
    if (it.schema === false) {
      if (it.isTop) {
        $breakOnError = true;
      } else {
        out += ' var ' + ($valid) + ' = false; ';
      }
      var $$outStack = $$outStack || [];
      $$outStack.push(out);
      out = ''; /* istanbul ignore else */
      if (it.createErrors !== false) {
        out += ' { keyword: \'' + ($errorKeyword || 'false schema') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
        if (it.opts.messages !== false) {
          out += ' , message: \'boolean schema is false\' ';
        }
        if (it.opts.verbose) {
          out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
        }
        out += ' } ';
      } else {
        out += ' {} ';
      }
      var __err = out;
      out = $$outStack.pop();
      if (!it.compositeRule && $breakOnError) {
        /* istanbul ignore if */
        if (it.async) {
          out += ' throw new ValidationError([' + (__err) + ']); ';
        } else {
          out += ' validate.errors = [' + (__err) + ']; return false; ';
        }
      } else {
        out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
      }
    } else {
      if (it.isTop) {
        if ($async) {
          out += ' return data; ';
        } else {
          out += ' validate.errors = null; return true; ';
        }
      } else {
        out += ' var ' + ($valid) + ' = true; ';
      }
    }
    if (it.isTop) {
      out += ' }; return validate; ';
    }
    return out;
  }
  if (it.isTop) {
    var $top = it.isTop,
      $lvl = it.level = 0,
      $dataLvl = it.dataLevel = 0,
      $data = 'data';
    it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));
    it.baseId = it.baseId || it.rootId;
    delete it.isTop;
    it.dataPathArr = [undefined];
    if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {
      var $defaultMsg = 'default is ignored in the schema root';
      if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
      else throw new Error($defaultMsg);
    }
    out += ' var vErrors = null; ';
    out += ' var errors = 0;     ';
    out += ' if (rootData === undefined) rootData = data; ';
  } else {
    var $lvl = it.level,
      $dataLvl = it.dataLevel,
      $data = 'data' + ($dataLvl || '');
    if ($id) it.baseId = it.resolve.url(it.baseId, $id);
    if ($async && !it.async) throw new Error('async schema in sync schema');
    out += ' var errs_' + ($lvl) + ' = errors;';
  }
  var $valid = 'valid' + $lvl,
    $breakOnError = !it.opts.allErrors,
    $closingBraces1 = '',
    $closingBraces2 = '';
  var $errorKeyword;
  var $typeSchema = it.schema.type,
    $typeIsArray = Array.isArray($typeSchema);
  if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {
    if ($typeIsArray) {
      if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');
    } else if ($typeSchema != 'null') {
      $typeSchema = [$typeSchema, 'null'];
      $typeIsArray = true;
    }
  }
  if ($typeIsArray && $typeSchema.length == 1) {
    $typeSchema = $typeSchema[0];
    $typeIsArray = false;
  }
  if (it.schema.$ref && $refKeywords) {
    if (it.opts.extendRefs == 'fail') {
      throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)');
    } else if (it.opts.extendRefs !== true) {
      $refKeywords = false;
      it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
    }
  }
  if (it.schema.$comment && it.opts.$comment) {
    out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));
  }
  if ($typeSchema) {
    if (it.opts.coerceTypes) {
      var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);
    }
    var $rulesGroup = it.RULES.types[$typeSchema];
    if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {
      var $schemaPath = it.schemaPath + '.type',
        $errSchemaPath = it.errSchemaPath + '/type';
      var $schemaPath = it.schemaPath + '.type',
        $errSchemaPath = it.errSchemaPath + '/type',
        $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';
      out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') { ';
      if ($coerceToTypes) {
        var $dataType = 'dataType' + $lvl,
          $coerced = 'coerced' + $lvl;
        out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; ';
        if (it.opts.coerceTypes == 'array') {
          out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' = \'array\'; ';
        }
        out += ' var ' + ($coerced) + ' = undefined; ';
        var $bracesCoercion = '';
        var arr1 = $coerceToTypes;
        if (arr1) {
          var $type, $i = -1,
            l1 = arr1.length - 1;
          while ($i < l1) {
            $type = arr1[$i += 1];
            if ($i) {
              out += ' if (' + ($coerced) + ' === undefined) { ';
              $bracesCoercion += '}';
            }
            if (it.opts.coerceTypes == 'array' && $type != 'array') {
              out += ' if (' + ($dataType) + ' == \'array\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + ';  } ';
            }
            if ($type == 'string') {
              out += ' if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; ';
            } else if ($type == 'number' || $type == 'integer') {
              out += ' if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';
              if ($type == 'integer') {
                out += ' && !(' + ($data) + ' % 1)';
              }
              out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';
            } else if ($type == 'boolean') {
              out += ' if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';
            } else if ($type == 'null') {
              out += ' if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';
            } else if (it.opts.coerceTypes == 'array' && $type == 'array') {
              out += ' if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';
            }
          }
        }
        out += ' ' + ($bracesCoercion) + ' if (' + ($coerced) + ' === undefined) {   ';
        var $$outStack = $$outStack || [];
        $$outStack.push(out);
        out = ''; /* istanbul ignore else */
        if (it.createErrors !== false) {
          out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
          if ($typeIsArray) {
            out += '' + ($typeSchema.join(","));
          } else {
            out += '' + ($typeSchema);
          }
          out += '\' } ';
          if (it.opts.messages !== false) {
            out += ' , message: \'should be ';
            if ($typeIsArray) {
              out += '' + ($typeSchema.join(","));
            } else {
              out += '' + ($typeSchema);
            }
            out += '\' ';
          }
          if (it.opts.verbose) {
            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
          }
          out += ' } ';
        } else {
          out += ' {} ';
        }
        var __err = out;
        out = $$outStack.pop();
        if (!it.compositeRule && $breakOnError) {
          /* istanbul ignore if */
          if (it.async) {
            out += ' throw new ValidationError([' + (__err) + ']); ';
          } else {
            out += ' validate.errors = [' + (__err) + ']; return false; ';
          }
        } else {
          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
        }
        out += ' } else {  ';
        var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
          $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
        out += ' ' + ($data) + ' = ' + ($coerced) + '; ';
        if (!$dataLvl) {
          out += 'if (' + ($parentData) + ' !== undefined)';
        }
        out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';
      } else {
        var $$outStack = $$outStack || [];
        $$outStack.push(out);
        out = ''; /* istanbul ignore else */
        if (it.createErrors !== false) {
          out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
          if ($typeIsArray) {
            out += '' + ($typeSchema.join(","));
          } else {
            out += '' + ($typeSchema);
          }
          out += '\' } ';
          if (it.opts.messages !== false) {
            out += ' , message: \'should be ';
            if ($typeIsArray) {
              out += '' + ($typeSchema.join(","));
            } else {
              out += '' + ($typeSchema);
            }
            out += '\' ';
          }
          if (it.opts.verbose) {
            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
          }
          out += ' } ';
        } else {
          out += ' {} ';
        }
        var __err = out;
        out = $$outStack.pop();
        if (!it.compositeRule && $breakOnError) {
          /* istanbul ignore if */
          if (it.async) {
            out += ' throw new ValidationError([' + (__err) + ']); ';
          } else {
            out += ' validate.errors = [' + (__err) + ']; return false; ';
          }
        } else {
          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
        }
      }
      out += ' } ';
    }
  }
  if (it.schema.$ref && !$refKeywords) {
    out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';
    if ($breakOnError) {
      out += ' } if (errors === ';
      if ($top) {
        out += '0';
      } else {
        out += 'errs_' + ($lvl);
      }
      out += ') { ';
      $closingBraces2 += '}';
    }
  } else {
    var arr2 = it.RULES;
    if (arr2) {
      var $rulesGroup, i2 = -1,
        l2 = arr2.length - 1;
      while (i2 < l2) {
        $rulesGroup = arr2[i2 += 1];
        if ($shouldUseGroup($rulesGroup)) {
          if ($rulesGroup.type) {
            out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { ';
          }
          if (it.opts.useDefaults) {
            if ($rulesGroup.type == 'object' && it.schema.properties) {
              var $schema = it.schema.properties,
                $schemaKeys = Object.keys($schema);
              var arr3 = $schemaKeys;
              if (arr3) {
                var $propertyKey, i3 = -1,
                  l3 = arr3.length - 1;
                while (i3 < l3) {
                  $propertyKey = arr3[i3 += 1];
                  var $sch = $schema[$propertyKey];
                  if ($sch.default !== undefined) {
                    var $passData = $data + it.util.getProperty($propertyKey);
                    if (it.compositeRule) {
                      if (it.opts.strictDefaults) {
                        var $defaultMsg = 'default is ignored for: ' + $passData;
                        if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
                        else throw new Error($defaultMsg);
                      }
                    } else {
                      out += ' if (' + ($passData) + ' === undefined ';
                      if (it.opts.useDefaults == 'empty') {
                        out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' ';
                      }
                      out += ' ) ' + ($passData) + ' = ';
                      if (it.opts.useDefaults == 'shared') {
                        out += ' ' + (it.useDefault($sch.default)) + ' ';
                      } else {
                        out += ' ' + (JSON.stringify($sch.default)) + ' ';
                      }
                      out += '; ';
                    }
                  }
                }
              }
            } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {
              var arr4 = it.schema.items;
              if (arr4) {
                var $sch, $i = -1,
                  l4 = arr4.length - 1;
                while ($i < l4) {
                  $sch = arr4[$i += 1];
                  if ($sch.default !== undefined) {
                    var $passData = $data + '[' + $i + ']';
                    if (it.compositeRule) {
                      if (it.opts.strictDefaults) {
                        var $defaultMsg = 'default is ignored for: ' + $passData;
                        if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
                        else throw new Error($defaultMsg);
                      }
                    } else {
                      out += ' if (' + ($passData) + ' === undefined ';
                      if (it.opts.useDefaults == 'empty') {
                        out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' ';
                      }
                      out += ' ) ' + ($passData) + ' = ';
                      if (it.opts.useDefaults == 'shared') {
                        out += ' ' + (it.useDefault($sch.default)) + ' ';
                      } else {
                        out += ' ' + (JSON.stringify($sch.default)) + ' ';
                      }
                      out += '; ';
                    }
                  }
                }
              }
            }
          }
          var arr5 = $rulesGroup.rules;
          if (arr5) {
            var $rule, i5 = -1,
              l5 = arr5.length - 1;
            while (i5 < l5) {
              $rule = arr5[i5 += 1];
              if ($shouldUseRule($rule)) {
                var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);
                if ($code) {
                  out += ' ' + ($code) + ' ';
                  if ($breakOnError) {
                    $closingBraces1 += '}';
                  }
                }
              }
            }
          }
          if ($breakOnError) {
            out += ' ' + ($closingBraces1) + ' ';
            $closingBraces1 = '';
          }
          if ($rulesGroup.type) {
            out += ' } ';
            if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {
              out += ' else { ';
              var $schemaPath = it.schemaPath + '.type',
                $errSchemaPath = it.errSchemaPath + '/type';
              var $$outStack = $$outStack || [];
              $$outStack.push(out);
              out = ''; /* istanbul ignore else */
              if (it.createErrors !== false) {
                out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
                if ($typeIsArray) {
                  out += '' + ($typeSchema.join(","));
                } else {
                  out += '' + ($typeSchema);
                }
                out += '\' } ';
                if (it.opts.messages !== false) {
                  out += ' , message: \'should be ';
                  if ($typeIsArray) {
                    out += '' + ($typeSchema.join(","));
                  } else {
                    out += '' + ($typeSchema);
                  }
                  out += '\' ';
                }
                if (it.opts.verbose) {
                  out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
                }
                out += ' } ';
              } else {
                out += ' {} ';
              }
              var __err = out;
              out = $$outStack.pop();
              if (!it.compositeRule && $breakOnError) {
                /* istanbul ignore if */
                if (it.async) {
                  out += ' throw new ValidationError([' + (__err) + ']); ';
                } else {
                  out += ' validate.errors = [' + (__err) + ']; return false; ';
                }
              } else {
                out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
              }
              out += ' } ';
            }
          }
          if ($breakOnError) {
            out += ' if (errors === ';
            if ($top) {
              out += '0';
            } else {
              out += 'errs_' + ($lvl);
            }
            out += ') { ';
            $closingBraces2 += '}';
          }
        }
      }
    }
  }
  if ($breakOnError) {
    out += ' ' + ($closingBraces2) + ' ';
  }
  if ($top) {
    if ($async) {
      out += ' if (errors === 0) return data;           ';
      out += ' else throw new ValidationError(vErrors); ';
    } else {
      out += ' validate.errors = vErrors; ';
      out += ' return errors === 0;       ';
    }
    out += ' }; return validate;';
  } else {
    out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';
  }
  out = it.util.cleanUpCode(out);
  if ($top) {
    out = it.util.finalCleanUpCode(out, $async);
  }

  function $shouldUseGroup($rulesGroup) {
    var rules = $rulesGroup.rules;
    for (var i = 0; i < rules.length; i++)
      if ($shouldUseRule(rules[i])) return true;
  }

  function $shouldUseRule($rule) {
    return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));
  }

  function $ruleImplementsSomeKeyword($rule) {
    var impl = $rule.implements;
    for (var i = 0; i < impl.length; i++)
      if (it.schema[impl[i]] !== undefined) return true;
  }
  return out;
}


/***/ }),
/* 425 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";



var Cache = module.exports = function Cache() {
  this._cache = {};
};


Cache.prototype.put = function Cache_put(key, value) {
  this._cache[key] = value;
};


Cache.prototype.get = function Cache_get(key) {
  return this._cache[key];
};


Cache.prototype.del = function Cache_del(key) {
  delete this._cache[key];
};


Cache.prototype.clear = function Cache_clear() {
  this._cache = {};
};


/***/ }),
/* 426 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var util = __webpack_require__(418);

var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
var DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];
var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;
var HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i;
var URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
var URIREF = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
// uri-template: https://tools.ietf.org/html/rfc6570
var URITEMPLATE = /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;
// For the source: https://gist.github.com/dperini/729294
// For test cases: https://mathiasbynens.be/demo/url-regex
// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.
// var URL = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu;
var URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i;
var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
var JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/;
var JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;


module.exports = formats;

function formats(mode) {
  mode = mode == 'full' ? 'full' : 'fast';
  return util.copy(formats[mode]);
}


formats.fast = {
  // date: http://tools.ietf.org/html/rfc3339#section-5.6
  date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/,
  // date-time: http://tools.ietf.org/html/rfc3339#section-5.6
  time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,
  'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,
  // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
  uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,
  'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,
  'uri-template': URITEMPLATE,
  url: URL,
  // email (sources from jsen validator):
  // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
  // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')
  email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,
  hostname: HOSTNAME,
  // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
  ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
  // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
  ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
  regex: regex,
  // uuid: http://tools.ietf.org/html/rfc4122
  uuid: UUID,
  // JSON-pointer: https://tools.ietf.org/html/rfc6901
  // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A
  'json-pointer': JSON_POINTER,
  'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,
  // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
  'relative-json-pointer': RELATIVE_JSON_POINTER
};


formats.full = {
  date: date,
  time: time,
  'date-time': date_time,
  uri: uri,
  'uri-reference': URIREF,
  'uri-template': URITEMPLATE,
  url: URL,
  email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
  hostname: hostname,
  ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
  ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
  regex: regex,
  uuid: UUID,
  'json-pointer': JSON_POINTER,
  'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,
  'relative-json-pointer': RELATIVE_JSON_POINTER
};


function isLeapYear(year) {
  // https://tools.ietf.org/html/rfc3339#appendix-C
  return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
}


function date(str) {
  // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
  var matches = str.match(DATE);
  if (!matches) return false;

  var year = +matches[1];
  var month = +matches[2];
  var day = +matches[3];

  return month >= 1 && month <= 12 && day >= 1 &&
          day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);
}


function time(str, full) {
  var matches = str.match(TIME);
  if (!matches) return false;

  var hour = matches[1];
  var minute = matches[2];
  var second = matches[3];
  var timeZone = matches[5];
  return ((hour <= 23 && minute <= 59 && second <= 59) ||
          (hour == 23 && minute == 59 && second == 60)) &&
         (!full || timeZone);
}


var DATE_TIME_SEPARATOR = /t|\s/i;
function date_time(str) {
  // http://tools.ietf.org/html/rfc3339#section-5.6
  var dateTime = str.split(DATE_TIME_SEPARATOR);
  return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);
}


function hostname(str) {
  // https://tools.ietf.org/html/rfc1034#section-3.5
  // https://tools.ietf.org/html/rfc1123#section-2
  return str.length <= 255 && HOSTNAME.test(str);
}


var NOT_URI_FRAGMENT = /\/|:/;
function uri(str) {
  // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "."
  return NOT_URI_FRAGMENT.test(str) && URI.test(str);
}


var Z_ANCHOR = /[^\\]\\Z/;
function regex(str) {
  if (Z_ANCHOR.test(str)) return false;
  try {
    new RegExp(str);
    return true;
  } catch(e) {
    return false;
  }
}


/***/ }),
/* 427 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var ruleModules = __webpack_require__(428)
  , toHash = __webpack_require__(418).toHash;

module.exports = function rules() {
  var RULES = [
    { type: 'number',
      rules: [ { 'maximum': ['exclusiveMaximum'] },
               { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },
    { type: 'string',
      rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },
    { type: 'array',
      rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },
    { type: 'object',
      rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',
               { 'properties': ['additionalProperties', 'patternProperties'] } ] },
    { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }
  ];

  var ALL = [ 'type', '$comment' ];
  var KEYWORDS = [
    '$schema', '$id', 'id', '$data', '$async', 'title',
    'description', 'default', 'definitions',
    'examples', 'readOnly', 'writeOnly',
    'contentMediaType', 'contentEncoding',
    'additionalItems', 'then', 'else'
  ];
  var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];
  RULES.all = toHash(ALL);
  RULES.types = toHash(TYPES);

  RULES.forEach(function (group) {
    group.rules = group.rules.map(function (keyword) {
      var implKeywords;
      if (typeof keyword == 'object') {
        var key = Object.keys(keyword)[0];
        implKeywords = keyword[key];
        keyword = key;
        implKeywords.forEach(function (k) {
          ALL.push(k);
          RULES.all[k] = true;
        });
      }
      ALL.push(keyword);
      var rule = RULES.all[keyword] = {
        keyword: keyword,
        code: ruleModules[keyword],
        implements: implKeywords
      };
      return rule;
    });

    RULES.all.$comment = {
      keyword: '$comment',
      code: ruleModules.$comment
    };

    if (group.type) RULES.types[group.type] = group;
  });

  RULES.keywords = toHash(ALL.concat(KEYWORDS));
  RULES.custom = {};

  return RULES;
};


/***/ }),
/* 428 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


//all requires must be explicit because browserify won't work with dynamic requires
module.exports = {
  '$ref': __webpack_require__(429),
  allOf: __webpack_require__(430),
  anyOf: __webpack_require__(431),
  '$comment': __webpack_require__(432),
  const: __webpack_require__(433),
  contains: __webpack_require__(434),
  dependencies: __webpack_require__(435),
  'enum': __webpack_require__(436),
  format: __webpack_require__(437),
  'if': __webpack_require__(438),
  items: __webpack_require__(439),
  maximum: __webpack_require__(440),
  minimum: __webpack_require__(440),
  maxItems: __webpack_require__(441),
  minItems: __webpack_require__(441),
  maxLength: __webpack_require__(442),
  minLength: __webpack_require__(442),
  maxProperties: __webpack_require__(443),
  minProperties: __webpack_require__(443),
  multipleOf: __webpack_require__(444),
  not: __webpack_require__(445),
  oneOf: __webpack_require__(446),
  pattern: __webpack_require__(447),
  properties: __webpack_require__(448),
  propertyNames: __webpack_require__(449),
  required: __webpack_require__(450),
  uniqueItems: __webpack_require__(451),
  validate: __webpack_require__(424)
};


/***/ }),
/* 429 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_ref(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $async, $refCode;
  if ($schema == '#' || $schema == '#/') {
    if (it.isRoot) {
      $async = it.async;
      $refCode = 'validate';
    } else {
      $async = it.root.schema.$async === true;
      $refCode = 'root.refVal[0]';
    }
  } else {
    var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);
    if ($refVal === undefined) {
      var $message = it.MissingRefError.message(it.baseId, $schema);
      if (it.opts.missingRefs == 'fail') {
        it.logger.error($message);
        var $$outStack = $$outStack || [];
        $$outStack.push(out);
        out = ''; /* istanbul ignore else */
        if (it.createErrors !== false) {
          out += ' { keyword: \'' + ('$ref') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \'' + (it.util.escapeQuotes($schema)) + '\' } ';
          if (it.opts.messages !== false) {
            out += ' , message: \'can\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\' ';
          }
          if (it.opts.verbose) {
            out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
          }
          out += ' } ';
        } else {
          out += ' {} ';
        }
        var __err = out;
        out = $$outStack.pop();
        if (!it.compositeRule && $breakOnError) {
          /* istanbul ignore if */
          if (it.async) {
            out += ' throw new ValidationError([' + (__err) + ']); ';
          } else {
            out += ' validate.errors = [' + (__err) + ']; return false; ';
          }
        } else {
          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
        }
        if ($breakOnError) {
          out += ' if (false) { ';
        }
      } else if (it.opts.missingRefs == 'ignore') {
        it.logger.warn($message);
        if ($breakOnError) {
          out += ' if (true) { ';
        }
      } else {
        throw new it.MissingRefError(it.baseId, $schema, $message);
      }
    } else if ($refVal.inline) {
      var $it = it.util.copy(it);
      $it.level++;
      var $nextValid = 'valid' + $it.level;
      $it.schema = $refVal.schema;
      $it.schemaPath = '';
      $it.errSchemaPath = $schema;
      var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code);
      out += ' ' + ($code) + ' ';
      if ($breakOnError) {
        out += ' if (' + ($nextValid) + ') { ';
      }
    } else {
      $async = $refVal.$async === true || (it.async && $refVal.$async !== false);
      $refCode = $refVal.code;
    }
  }
  if ($refCode) {
    var $$outStack = $$outStack || [];
    $$outStack.push(out);
    out = '';
    if (it.opts.passContext) {
      out += ' ' + ($refCode) + '.call(this, ';
    } else {
      out += ' ' + ($refCode) + '( ';
    }
    out += ' ' + ($data) + ', (dataPath || \'\')';
    if (it.errorPath != '""') {
      out += ' + ' + (it.errorPath);
    }
    var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
      $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
    out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData)  ';
    var __callValidate = out;
    out = $$outStack.pop();
    if ($async) {
      if (!it.async) throw new Error('async schema referenced by sync schema');
      if ($breakOnError) {
        out += ' var ' + ($valid) + '; ';
      }
      out += ' try { await ' + (__callValidate) + '; ';
      if ($breakOnError) {
        out += ' ' + ($valid) + ' = true; ';
      }
      out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';
      if ($breakOnError) {
        out += ' ' + ($valid) + ' = false; ';
      }
      out += ' } ';
      if ($breakOnError) {
        out += ' if (' + ($valid) + ') { ';
      }
    } else {
      out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';
      if ($breakOnError) {
        out += ' else { ';
      }
    }
  }
  return out;
}


/***/ }),
/* 430 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_allOf(it, $keyword, $ruleType) {
  var out = ' ';
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $it = it.util.copy(it);
  var $closingBraces = '';
  $it.level++;
  var $nextValid = 'valid' + $it.level;
  var $currentBaseId = $it.baseId,
    $allSchemasEmpty = true;
  var arr1 = $schema;
  if (arr1) {
    var $sch, $i = -1,
      l1 = arr1.length - 1;
    while ($i < l1) {
      $sch = arr1[$i += 1];
      if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {
        $allSchemasEmpty = false;
        $it.schema = $sch;
        $it.schemaPath = $schemaPath + '[' + $i + ']';
        $it.errSchemaPath = $errSchemaPath + '/' + $i;
        out += '  ' + (it.validate($it)) + ' ';
        $it.baseId = $currentBaseId;
        if ($breakOnError) {
          out += ' if (' + ($nextValid) + ') { ';
          $closingBraces += '}';
        }
      }
    }
  }
  if ($breakOnError) {
    if ($allSchemasEmpty) {
      out += ' if (true) { ';
    } else {
      out += ' ' + ($closingBraces.slice(0, -1)) + ' ';
    }
  }
  out = it.util.cleanUpCode(out);
  return out;
}


/***/ }),
/* 431 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_anyOf(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $errs = 'errs__' + $lvl;
  var $it = it.util.copy(it);
  var $closingBraces = '';
  $it.level++;
  var $nextValid = 'valid' + $it.level;
  var $noEmptySchema = $schema.every(function($sch) {
    return (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all));
  });
  if ($noEmptySchema) {
    var $currentBaseId = $it.baseId;
    out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false;  ';
    var $wasComposite = it.compositeRule;
    it.compositeRule = $it.compositeRule = true;
    var arr1 = $schema;
    if (arr1) {
      var $sch, $i = -1,
        l1 = arr1.length - 1;
      while ($i < l1) {
        $sch = arr1[$i += 1];
        $it.schema = $sch;
        $it.schemaPath = $schemaPath + '[' + $i + ']';
        $it.errSchemaPath = $errSchemaPath + '/' + $i;
        out += '  ' + (it.validate($it)) + ' ';
        $it.baseId = $currentBaseId;
        out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';
        $closingBraces += '}';
      }
    }
    it.compositeRule = $it.compositeRule = $wasComposite;
    out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') {   var err =   '; /* istanbul ignore else */
    if (it.createErrors !== false) {
      out += ' { keyword: \'' + ('anyOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
      if (it.opts.messages !== false) {
        out += ' , message: \'should match some schema in anyOf\' ';
      }
      if (it.opts.verbose) {
        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
      }
      out += ' } ';
    } else {
      out += ' {} ';
    }
    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
    if (!it.compositeRule && $breakOnError) {
      /* istanbul ignore if */
      if (it.async) {
        out += ' throw new ValidationError(vErrors); ';
      } else {
        out += ' validate.errors = vErrors; return false; ';
      }
    }
    out += ' } else {  errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
    if (it.opts.allErrors) {
      out += ' } ';
    }
    out = it.util.cleanUpCode(out);
  } else {
    if ($breakOnError) {
      out += ' if (true) { ';
    }
  }
  return out;
}


/***/ }),
/* 432 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_comment(it, $keyword, $ruleType) {
  var out = ' ';
  var $schema = it.schema[$keyword];
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $comment = it.util.toQuotedString($schema);
  if (it.opts.$comment === true) {
    out += ' console.log(' + ($comment) + ');';
  } else if (typeof it.opts.$comment == 'function') {
    out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';
  }
  return out;
}


/***/ }),
/* 433 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_const(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  if (!$isData) {
    out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';
  }
  out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') {   ';
  var $$outStack = $$outStack || [];
  $$outStack.push(out);
  out = ''; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ('const') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should be equal to constant\' ';
    }
    if (it.opts.verbose) {
      out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  var __err = out;
  out = $$outStack.pop();
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError([' + (__err) + ']); ';
    } else {
      out += ' validate.errors = [' + (__err) + ']; return false; ';
    }
  } else {
    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  }
  out += ' }';
  if ($breakOnError) {
    out += ' else { ';
  }
  return out;
}


/***/ }),
/* 434 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_contains(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $errs = 'errs__' + $lvl;
  var $it = it.util.copy(it);
  var $closingBraces = '';
  $it.level++;
  var $nextValid = 'valid' + $it.level;
  var $idx = 'i' + $lvl,
    $dataNxt = $it.dataLevel = it.dataLevel + 1,
    $nextData = 'data' + $dataNxt,
    $currentBaseId = it.baseId,
    $nonEmptySchema = (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all));
  out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
  if ($nonEmptySchema) {
    var $wasComposite = it.compositeRule;
    it.compositeRule = $it.compositeRule = true;
    $it.schema = $schema;
    $it.schemaPath = $schemaPath;
    $it.errSchemaPath = $errSchemaPath;
    out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';
    $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
    var $passData = $data + '[' + $idx + ']';
    $it.dataPathArr[$dataNxt] = $idx;
    var $code = it.validate($it);
    $it.baseId = $currentBaseId;
    if (it.util.varOccurences($code, $nextData) < 2) {
      out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
    } else {
      out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
    }
    out += ' if (' + ($nextValid) + ') break; }  ';
    it.compositeRule = $it.compositeRule = $wasComposite;
    out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';
  } else {
    out += ' if (' + ($data) + '.length == 0) {';
  }
  var $$outStack = $$outStack || [];
  $$outStack.push(out);
  out = ''; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ('contains') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should contain a valid item\' ';
    }
    if (it.opts.verbose) {
      out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  var __err = out;
  out = $$outStack.pop();
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError([' + (__err) + ']); ';
    } else {
      out += ' validate.errors = [' + (__err) + ']; return false; ';
    }
  } else {
    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  }
  out += ' } else { ';
  if ($nonEmptySchema) {
    out += '  errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
  }
  if (it.opts.allErrors) {
    out += ' } ';
  }
  out = it.util.cleanUpCode(out);
  return out;
}


/***/ }),
/* 435 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_dependencies(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $errs = 'errs__' + $lvl;
  var $it = it.util.copy(it);
  var $closingBraces = '';
  $it.level++;
  var $nextValid = 'valid' + $it.level;
  var $schemaDeps = {},
    $propertyDeps = {},
    $ownProperties = it.opts.ownProperties;
  for ($property in $schema) {
    var $sch = $schema[$property];
    var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;
    $deps[$property] = $sch;
  }
  out += 'var ' + ($errs) + ' = errors;';
  var $currentErrorPath = it.errorPath;
  out += 'var missing' + ($lvl) + ';';
  for (var $property in $propertyDeps) {
    $deps = $propertyDeps[$property];
    if ($deps.length) {
      out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';
      if ($ownProperties) {
        out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($property)) + '\') ';
      }
      if ($breakOnError) {
        out += ' && ( ';
        var arr1 = $deps;
        if (arr1) {
          var $propertyKey, $i = -1,
            l1 = arr1.length - 1;
          while ($i < l1) {
            $propertyKey = arr1[$i += 1];
            if ($i) {
              out += ' || ';
            }
            var $prop = it.util.getProperty($propertyKey),
              $useData = $data + $prop;
            out += ' ( ( ' + ($useData) + ' === undefined ';
            if ($ownProperties) {
              out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
            }
            out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';
          }
        }
        out += ')) {  ';
        var $propertyPath = 'missing' + $lvl,
          $missingProperty = '\' + ' + $propertyPath + ' + \'';
        if (it.opts._errorDataPathProperty) {
          it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;
        }
        var $$outStack = $$outStack || [];
        $$outStack.push(out);
        out = ''; /* istanbul ignore else */
        if (it.createErrors !== false) {
          out += ' { keyword: \'' + ('dependencies') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \'' + (it.util.escapeQuotes($property)) + '\', missingProperty: \'' + ($missingProperty) + '\', depsCount: ' + ($deps.length) + ', deps: \'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", "))) + '\' } ';
          if (it.opts.messages !== false) {
            out += ' , message: \'should have ';
            if ($deps.length == 1) {
              out += 'property ' + (it.util.escapeQuotes($deps[0]));
            } else {
              out += 'properties ' + (it.util.escapeQuotes($deps.join(", ")));
            }
            out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\' ';
          }
          if (it.opts.verbose) {
            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
          }
          out += ' } ';
        } else {
          out += ' {} ';
        }
        var __err = out;
        out = $$outStack.pop();
        if (!it.compositeRule && $breakOnError) {
          /* istanbul ignore if */
          if (it.async) {
            out += ' throw new ValidationError([' + (__err) + ']); ';
          } else {
            out += ' validate.errors = [' + (__err) + ']; return false; ';
          }
        } else {
          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
        }
      } else {
        out += ' ) { ';
        var arr2 = $deps;
        if (arr2) {
          var $propertyKey, i2 = -1,
            l2 = arr2.length - 1;
          while (i2 < l2) {
            $propertyKey = arr2[i2 += 1];
            var $prop = it.util.getProperty($propertyKey),
              $missingProperty = it.util.escapeQuotes($propertyKey),
              $useData = $data + $prop;
            if (it.opts._errorDataPathProperty) {
              it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
            }
            out += ' if ( ' + ($useData) + ' === undefined ';
            if ($ownProperties) {
              out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
            }
            out += ') {  var err =   '; /* istanbul ignore else */
            if (it.createErrors !== false) {
              out += ' { keyword: \'' + ('dependencies') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \'' + (it.util.escapeQuotes($property)) + '\', missingProperty: \'' + ($missingProperty) + '\', depsCount: ' + ($deps.length) + ', deps: \'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", "))) + '\' } ';
              if (it.opts.messages !== false) {
                out += ' , message: \'should have ';
                if ($deps.length == 1) {
                  out += 'property ' + (it.util.escapeQuotes($deps[0]));
                } else {
                  out += 'properties ' + (it.util.escapeQuotes($deps.join(", ")));
                }
                out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\' ';
              }
              if (it.opts.verbose) {
                out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
              }
              out += ' } ';
            } else {
              out += ' {} ';
            }
            out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';
          }
        }
      }
      out += ' }   ';
      if ($breakOnError) {
        $closingBraces += '}';
        out += ' else { ';
      }
    }
  }
  it.errorPath = $currentErrorPath;
  var $currentBaseId = $it.baseId;
  for (var $property in $schemaDeps) {
    var $sch = $schemaDeps[$property];
    if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {
      out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';
      if ($ownProperties) {
        out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($property)) + '\') ';
      }
      out += ') { ';
      $it.schema = $sch;
      $it.schemaPath = $schemaPath + it.util.getProperty($property);
      $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);
      out += '  ' + (it.validate($it)) + ' ';
      $it.baseId = $currentBaseId;
      out += ' }  ';
      if ($breakOnError) {
        out += ' if (' + ($nextValid) + ') { ';
        $closingBraces += '}';
      }
    }
  }
  if ($breakOnError) {
    out += '   ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
  }
  out = it.util.cleanUpCode(out);
  return out;
}


/***/ }),
/* 436 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_enum(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  var $i = 'i' + $lvl,
    $vSchema = 'schema' + $lvl;
  if (!$isData) {
    out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';
  }
  out += 'var ' + ($valid) + ';';
  if ($isData) {
    out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';
  }
  out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';
  if ($isData) {
    out += '  }  ';
  }
  out += ' if (!' + ($valid) + ') {   ';
  var $$outStack = $$outStack || [];
  $$outStack.push(out);
  out = ''; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ('enum') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should be equal to one of the allowed values\' ';
    }
    if (it.opts.verbose) {
      out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  var __err = out;
  out = $$outStack.pop();
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError([' + (__err) + ']); ';
    } else {
      out += ' validate.errors = [' + (__err) + ']; return false; ';
    }
  } else {
    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  }
  out += ' }';
  if ($breakOnError) {
    out += ' else { ';
  }
  return out;
}


/***/ }),
/* 437 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_format(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  if (it.opts.format === false) {
    if ($breakOnError) {
      out += ' if (true) { ';
    }
    return out;
  }
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  var $unknownFormats = it.opts.unknownFormats,
    $allowUnknown = Array.isArray($unknownFormats);
  if ($isData) {
    var $format = 'format' + $lvl,
      $isObject = 'isObject' + $lvl,
      $formatType = 'formatType' + $lvl;
    out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \'string\'; if (' + ($isObject) + ') { ';
    if (it.async) {
      out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';
    }
    out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if (  ';
    if ($isData) {
      out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || ';
    }
    out += ' (';
    if ($unknownFormats != 'ignore') {
      out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';
      if ($allowUnknown) {
        out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';
      }
      out += ') || ';
    }
    out += ' (' + ($format) + ' && ' + ($formatType) + ' == \'' + ($ruleType) + '\' && !(typeof ' + ($format) + ' == \'function\' ? ';
    if (it.async) {
      out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';
    } else {
      out += ' ' + ($format) + '(' + ($data) + ') ';
    }
    out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';
  } else {
    var $format = it.formats[$schema];
    if (!$format) {
      if ($unknownFormats == 'ignore') {
        it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
        if ($breakOnError) {
          out += ' if (true) { ';
        }
        return out;
      } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {
        if ($breakOnError) {
          out += ' if (true) { ';
        }
        return out;
      } else {
        throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"');
      }
    }
    var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;
    var $formatType = $isObject && $format.type || 'string';
    if ($isObject) {
      var $async = $format.async === true;
      $format = $format.validate;
    }
    if ($formatType != $ruleType) {
      if ($breakOnError) {
        out += ' if (true) { ';
      }
      return out;
    }
    if ($async) {
      if (!it.async) throw new Error('async format in sync schema');
      var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';
      out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';
    } else {
      out += ' if (! ';
      var $formatRef = 'formats' + it.util.getProperty($schema);
      if ($isObject) $formatRef += '.validate';
      if (typeof $format == 'function') {
        out += ' ' + ($formatRef) + '(' + ($data) + ') ';
      } else {
        out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';
      }
      out += ') { ';
    }
  }
  var $$outStack = $$outStack || [];
  $$outStack.push(out);
  out = ''; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ('format') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format:  ';
    if ($isData) {
      out += '' + ($schemaValue);
    } else {
      out += '' + (it.util.toQuotedString($schema));
    }
    out += '  } ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should match format "';
      if ($isData) {
        out += '\' + ' + ($schemaValue) + ' + \'';
      } else {
        out += '' + (it.util.escapeQuotes($schema));
      }
      out += '"\' ';
    }
    if (it.opts.verbose) {
      out += ' , schema:  ';
      if ($isData) {
        out += 'validate.schema' + ($schemaPath);
      } else {
        out += '' + (it.util.toQuotedString($schema));
      }
      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  var __err = out;
  out = $$outStack.pop();
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError([' + (__err) + ']); ';
    } else {
      out += ' validate.errors = [' + (__err) + ']; return false; ';
    }
  } else {
    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  }
  out += ' } ';
  if ($breakOnError) {
    out += ' else { ';
  }
  return out;
}


/***/ }),
/* 438 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_if(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $errs = 'errs__' + $lvl;
  var $it = it.util.copy(it);
  $it.level++;
  var $nextValid = 'valid' + $it.level;
  var $thenSch = it.schema['then'],
    $elseSch = it.schema['else'],
    $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),
    $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : it.util.schemaHasRules($elseSch, it.RULES.all)),
    $currentBaseId = $it.baseId;
  if ($thenPresent || $elsePresent) {
    var $ifClause;
    $it.createErrors = false;
    $it.schema = $schema;
    $it.schemaPath = $schemaPath;
    $it.errSchemaPath = $errSchemaPath;
    out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true;  ';
    var $wasComposite = it.compositeRule;
    it.compositeRule = $it.compositeRule = true;
    out += '  ' + (it.validate($it)) + ' ';
    $it.baseId = $currentBaseId;
    $it.createErrors = true;
    out += '  errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }  ';
    it.compositeRule = $it.compositeRule = $wasComposite;
    if ($thenPresent) {
      out += ' if (' + ($nextValid) + ') {  ';
      $it.schema = it.schema['then'];
      $it.schemaPath = it.schemaPath + '.then';
      $it.errSchemaPath = it.errSchemaPath + '/then';
      out += '  ' + (it.validate($it)) + ' ';
      $it.baseId = $currentBaseId;
      out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';
      if ($thenPresent && $elsePresent) {
        $ifClause = 'ifClause' + $lvl;
        out += ' var ' + ($ifClause) + ' = \'then\'; ';
      } else {
        $ifClause = '\'then\'';
      }
      out += ' } ';
      if ($elsePresent) {
        out += ' else { ';
      }
    } else {
      out += ' if (!' + ($nextValid) + ') { ';
    }
    if ($elsePresent) {
      $it.schema = it.schema['else'];
      $it.schemaPath = it.schemaPath + '.else';
      $it.errSchemaPath = it.errSchemaPath + '/else';
      out += '  ' + (it.validate($it)) + ' ';
      $it.baseId = $currentBaseId;
      out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';
      if ($thenPresent && $elsePresent) {
        $ifClause = 'ifClause' + $lvl;
        out += ' var ' + ($ifClause) + ' = \'else\'; ';
      } else {
        $ifClause = '\'else\'';
      }
      out += ' } ';
    }
    out += ' if (!' + ($valid) + ') {   var err =   '; /* istanbul ignore else */
    if (it.createErrors !== false) {
      out += ' { keyword: \'' + ('if') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';
      if (it.opts.messages !== false) {
        out += ' , message: \'should match "\' + ' + ($ifClause) + ' + \'" schema\' ';
      }
      if (it.opts.verbose) {
        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
      }
      out += ' } ';
    } else {
      out += ' {} ';
    }
    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
    if (!it.compositeRule && $breakOnError) {
      /* istanbul ignore if */
      if (it.async) {
        out += ' throw new ValidationError(vErrors); ';
      } else {
        out += ' validate.errors = vErrors; return false; ';
      }
    }
    out += ' }   ';
    if ($breakOnError) {
      out += ' else { ';
    }
    out = it.util.cleanUpCode(out);
  } else {
    if ($breakOnError) {
      out += ' if (true) { ';
    }
  }
  return out;
}


/***/ }),
/* 439 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_items(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $errs = 'errs__' + $lvl;
  var $it = it.util.copy(it);
  var $closingBraces = '';
  $it.level++;
  var $nextValid = 'valid' + $it.level;
  var $idx = 'i' + $lvl,
    $dataNxt = $it.dataLevel = it.dataLevel + 1,
    $nextData = 'data' + $dataNxt,
    $currentBaseId = it.baseId;
  out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
  if (Array.isArray($schema)) {
    var $additionalItems = it.schema.additionalItems;
    if ($additionalItems === false) {
      out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';
      var $currErrSchemaPath = $errSchemaPath;
      $errSchemaPath = it.errSchemaPath + '/additionalItems';
      out += '  if (!' + ($valid) + ') {   ';
      var $$outStack = $$outStack || [];
      $$outStack.push(out);
      out = ''; /* istanbul ignore else */
      if (it.createErrors !== false) {
        out += ' { keyword: \'' + ('additionalItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';
        if (it.opts.messages !== false) {
          out += ' , message: \'should NOT have more than ' + ($schema.length) + ' items\' ';
        }
        if (it.opts.verbose) {
          out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
        }
        out += ' } ';
      } else {
        out += ' {} ';
      }
      var __err = out;
      out = $$outStack.pop();
      if (!it.compositeRule && $breakOnError) {
        /* istanbul ignore if */
        if (it.async) {
          out += ' throw new ValidationError([' + (__err) + ']); ';
        } else {
          out += ' validate.errors = [' + (__err) + ']; return false; ';
        }
      } else {
        out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
      }
      out += ' } ';
      $errSchemaPath = $currErrSchemaPath;
      if ($breakOnError) {
        $closingBraces += '}';
        out += ' else { ';
      }
    }
    var arr1 = $schema;
    if (arr1) {
      var $sch, $i = -1,
        l1 = arr1.length - 1;
      while ($i < l1) {
        $sch = arr1[$i += 1];
        if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {
          out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';
          var $passData = $data + '[' + $i + ']';
          $it.schema = $sch;
          $it.schemaPath = $schemaPath + '[' + $i + ']';
          $it.errSchemaPath = $errSchemaPath + '/' + $i;
          $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);
          $it.dataPathArr[$dataNxt] = $i;
          var $code = it.validate($it);
          $it.baseId = $currentBaseId;
          if (it.util.varOccurences($code, $nextData) < 2) {
            out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
          } else {
            out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
          }
          out += ' }  ';
          if ($breakOnError) {
            out += ' if (' + ($nextValid) + ') { ';
            $closingBraces += '}';
          }
        }
      }
    }
    if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : it.util.schemaHasRules($additionalItems, it.RULES.all))) {
      $it.schema = $additionalItems;
      $it.schemaPath = it.schemaPath + '.additionalItems';
      $it.errSchemaPath = it.errSchemaPath + '/additionalItems';
      out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') {  for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';
      $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
      var $passData = $data + '[' + $idx + ']';
      $it.dataPathArr[$dataNxt] = $idx;
      var $code = it.validate($it);
      $it.baseId = $currentBaseId;
      if (it.util.varOccurences($code, $nextData) < 2) {
        out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
      } else {
        out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
      }
      if ($breakOnError) {
        out += ' if (!' + ($nextValid) + ') break; ';
      }
      out += ' } }  ';
      if ($breakOnError) {
        out += ' if (' + ($nextValid) + ') { ';
        $closingBraces += '}';
      }
    }
  } else if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {
    $it.schema = $schema;
    $it.schemaPath = $schemaPath;
    $it.errSchemaPath = $errSchemaPath;
    out += '  for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';
    $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
    var $passData = $data + '[' + $idx + ']';
    $it.dataPathArr[$dataNxt] = $idx;
    var $code = it.validate($it);
    $it.baseId = $currentBaseId;
    if (it.util.varOccurences($code, $nextData) < 2) {
      out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
    } else {
      out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
    }
    if ($breakOnError) {
      out += ' if (!' + ($nextValid) + ') break; ';
    }
    out += ' }';
  }
  if ($breakOnError) {
    out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
  }
  out = it.util.cleanUpCode(out);
  return out;
}


/***/ }),
/* 440 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate__limit(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $errorKeyword;
  var $data = 'data' + ($dataLvl || '');
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  var $isMax = $keyword == 'maximum',
    $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',
    $schemaExcl = it.schema[$exclusiveKeyword],
    $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,
    $op = $isMax ? '<' : '>',
    $notOp = $isMax ? '>' : '<',
    $errorKeyword = undefined;
  if ($isDataExcl) {
    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),
      $exclusive = 'exclusive' + $lvl,
      $exclType = 'exclType' + $lvl,
      $exclIsNumber = 'exclIsNumber' + $lvl,
      $opExpr = 'op' + $lvl,
      $opStr = '\' + ' + $opExpr + ' + \'';
    out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';
    $schemaValueExcl = 'schemaExcl' + $lvl;
    out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \'boolean\' && ' + ($exclType) + ' != \'undefined\' && ' + ($exclType) + ' != \'number\') { ';
    var $errorKeyword = $exclusiveKeyword;
    var $$outStack = $$outStack || [];
    $$outStack.push(out);
    out = ''; /* istanbul ignore else */
    if (it.createErrors !== false) {
      out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
      if (it.opts.messages !== false) {
        out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' ';
      }
      if (it.opts.verbose) {
        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
      }
      out += ' } ';
    } else {
      out += ' {} ';
    }
    var __err = out;
    out = $$outStack.pop();
    if (!it.compositeRule && $breakOnError) {
      /* istanbul ignore if */
      if (it.async) {
        out += ' throw new ValidationError([' + (__err) + ']); ';
      } else {
        out += ' validate.errors = [' + (__err) + ']; return false; ';
      }
    } else {
      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
    }
    out += ' } else if ( ';
    if ($isData) {
      out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
    }
    out += ' ' + ($exclType) + ' == \'number\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\'; ';
    if ($schema === undefined) {
      $errorKeyword = $exclusiveKeyword;
      $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
      $schemaValue = $schemaValueExcl;
      $isData = $isDataExcl;
    }
  } else {
    var $exclIsNumber = typeof $schemaExcl == 'number',
      $opStr = $op;
    if ($exclIsNumber && $isData) {
      var $opExpr = '\'' + $opStr + '\'';
      out += ' if ( ';
      if ($isData) {
        out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
      }
      out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';
    } else {
      if ($exclIsNumber && $schema === undefined) {
        $exclusive = true;
        $errorKeyword = $exclusiveKeyword;
        $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
        $schemaValue = $schemaExcl;
        $notOp += '=';
      } else {
        if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);
        if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {
          $exclusive = true;
          $errorKeyword = $exclusiveKeyword;
          $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
          $notOp += '=';
        } else {
          $exclusive = false;
          $opStr += '=';
        }
      }
      var $opExpr = '\'' + $opStr + '\'';
      out += ' if ( ';
      if ($isData) {
        out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
      }
      out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';
    }
  }
  $errorKeyword = $errorKeyword || $keyword;
  var $$outStack = $$outStack || [];
  $$outStack.push(out);
  out = ''; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should be ' + ($opStr) + ' ';
      if ($isData) {
        out += '\' + ' + ($schemaValue);
      } else {
        out += '' + ($schemaValue) + '\'';
      }
    }
    if (it.opts.verbose) {
      out += ' , schema:  ';
      if ($isData) {
        out += 'validate.schema' + ($schemaPath);
      } else {
        out += '' + ($schema);
      }
      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  var __err = out;
  out = $$outStack.pop();
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError([' + (__err) + ']); ';
    } else {
      out += ' validate.errors = [' + (__err) + ']; return false; ';
    }
  } else {
    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  }
  out += ' } ';
  if ($breakOnError) {
    out += ' else { ';
  }
  return out;
}


/***/ }),
/* 441 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate__limitItems(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $errorKeyword;
  var $data = 'data' + ($dataLvl || '');
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  var $op = $keyword == 'maxItems' ? '>' : '<';
  out += 'if ( ';
  if ($isData) {
    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
  }
  out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';
  var $errorKeyword = $keyword;
  var $$outStack = $$outStack || [];
  $$outStack.push(out);
  out = ''; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should NOT have ';
      if ($keyword == 'maxItems') {
        out += 'more';
      } else {
        out += 'fewer';
      }
      out += ' than ';
      if ($isData) {
        out += '\' + ' + ($schemaValue) + ' + \'';
      } else {
        out += '' + ($schema);
      }
      out += ' items\' ';
    }
    if (it.opts.verbose) {
      out += ' , schema:  ';
      if ($isData) {
        out += 'validate.schema' + ($schemaPath);
      } else {
        out += '' + ($schema);
      }
      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  var __err = out;
  out = $$outStack.pop();
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError([' + (__err) + ']); ';
    } else {
      out += ' validate.errors = [' + (__err) + ']; return false; ';
    }
  } else {
    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  }
  out += '} ';
  if ($breakOnError) {
    out += ' else { ';
  }
  return out;
}


/***/ }),
/* 442 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate__limitLength(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $errorKeyword;
  var $data = 'data' + ($dataLvl || '');
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  var $op = $keyword == 'maxLength' ? '>' : '<';
  out += 'if ( ';
  if ($isData) {
    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
  }
  if (it.opts.unicode === false) {
    out += ' ' + ($data) + '.length ';
  } else {
    out += ' ucs2length(' + ($data) + ') ';
  }
  out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';
  var $errorKeyword = $keyword;
  var $$outStack = $$outStack || [];
  $$outStack.push(out);
  out = ''; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ($errorKeyword || '_limitLength') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should NOT be ';
      if ($keyword == 'maxLength') {
        out += 'longer';
      } else {
        out += 'shorter';
      }
      out += ' than ';
      if ($isData) {
        out += '\' + ' + ($schemaValue) + ' + \'';
      } else {
        out += '' + ($schema);
      }
      out += ' characters\' ';
    }
    if (it.opts.verbose) {
      out += ' , schema:  ';
      if ($isData) {
        out += 'validate.schema' + ($schemaPath);
      } else {
        out += '' + ($schema);
      }
      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  var __err = out;
  out = $$outStack.pop();
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError([' + (__err) + ']); ';
    } else {
      out += ' validate.errors = [' + (__err) + ']; return false; ';
    }
  } else {
    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  }
  out += '} ';
  if ($breakOnError) {
    out += ' else { ';
  }
  return out;
}


/***/ }),
/* 443 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate__limitProperties(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $errorKeyword;
  var $data = 'data' + ($dataLvl || '');
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  var $op = $keyword == 'maxProperties' ? '>' : '<';
  out += 'if ( ';
  if ($isData) {
    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
  }
  out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';
  var $errorKeyword = $keyword;
  var $$outStack = $$outStack || [];
  $$outStack.push(out);
  out = ''; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ($errorKeyword || '_limitProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should NOT have ';
      if ($keyword == 'maxProperties') {
        out += 'more';
      } else {
        out += 'fewer';
      }
      out += ' than ';
      if ($isData) {
        out += '\' + ' + ($schemaValue) + ' + \'';
      } else {
        out += '' + ($schema);
      }
      out += ' properties\' ';
    }
    if (it.opts.verbose) {
      out += ' , schema:  ';
      if ($isData) {
        out += 'validate.schema' + ($schemaPath);
      } else {
        out += '' + ($schema);
      }
      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  var __err = out;
  out = $$outStack.pop();
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError([' + (__err) + ']); ';
    } else {
      out += ' validate.errors = [' + (__err) + ']; return false; ';
    }
  } else {
    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  }
  out += '} ';
  if ($breakOnError) {
    out += ' else { ';
  }
  return out;
}


/***/ }),
/* 444 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_multipleOf(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  out += 'var division' + ($lvl) + ';if (';
  if ($isData) {
    out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || ';
  }
  out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';
  if (it.opts.multipleOfPrecision) {
    out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';
  } else {
    out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';
  }
  out += ' ) ';
  if ($isData) {
    out += '  )  ';
  }
  out += ' ) {   ';
  var $$outStack = $$outStack || [];
  $$outStack.push(out);
  out = ''; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ('multipleOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should be multiple of ';
      if ($isData) {
        out += '\' + ' + ($schemaValue);
      } else {
        out += '' + ($schemaValue) + '\'';
      }
    }
    if (it.opts.verbose) {
      out += ' , schema:  ';
      if ($isData) {
        out += 'validate.schema' + ($schemaPath);
      } else {
        out += '' + ($schema);
      }
      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  var __err = out;
  out = $$outStack.pop();
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError([' + (__err) + ']); ';
    } else {
      out += ' validate.errors = [' + (__err) + ']; return false; ';
    }
  } else {
    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  }
  out += '} ';
  if ($breakOnError) {
    out += ' else { ';
  }
  return out;
}


/***/ }),
/* 445 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_not(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $errs = 'errs__' + $lvl;
  var $it = it.util.copy(it);
  $it.level++;
  var $nextValid = 'valid' + $it.level;
  if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {
    $it.schema = $schema;
    $it.schemaPath = $schemaPath;
    $it.errSchemaPath = $errSchemaPath;
    out += ' var ' + ($errs) + ' = errors;  ';
    var $wasComposite = it.compositeRule;
    it.compositeRule = $it.compositeRule = true;
    $it.createErrors = false;
    var $allErrorsOption;
    if ($it.opts.allErrors) {
      $allErrorsOption = $it.opts.allErrors;
      $it.opts.allErrors = false;
    }
    out += ' ' + (it.validate($it)) + ' ';
    $it.createErrors = true;
    if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;
    it.compositeRule = $it.compositeRule = $wasComposite;
    out += ' if (' + ($nextValid) + ') {   ';
    var $$outStack = $$outStack || [];
    $$outStack.push(out);
    out = ''; /* istanbul ignore else */
    if (it.createErrors !== false) {
      out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
      if (it.opts.messages !== false) {
        out += ' , message: \'should NOT be valid\' ';
      }
      if (it.opts.verbose) {
        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
      }
      out += ' } ';
    } else {
      out += ' {} ';
    }
    var __err = out;
    out = $$outStack.pop();
    if (!it.compositeRule && $breakOnError) {
      /* istanbul ignore if */
      if (it.async) {
        out += ' throw new ValidationError([' + (__err) + ']); ';
      } else {
        out += ' validate.errors = [' + (__err) + ']; return false; ';
      }
    } else {
      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
    }
    out += ' } else {  errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
    if (it.opts.allErrors) {
      out += ' } ';
    }
  } else {
    out += '  var err =   '; /* istanbul ignore else */
    if (it.createErrors !== false) {
      out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
      if (it.opts.messages !== false) {
        out += ' , message: \'should NOT be valid\' ';
      }
      if (it.opts.verbose) {
        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
      }
      out += ' } ';
    } else {
      out += ' {} ';
    }
    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
    if ($breakOnError) {
      out += ' if (false) { ';
    }
  }
  return out;
}


/***/ }),
/* 446 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_oneOf(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $errs = 'errs__' + $lvl;
  var $it = it.util.copy(it);
  var $closingBraces = '';
  $it.level++;
  var $nextValid = 'valid' + $it.level;
  var $currentBaseId = $it.baseId,
    $prevValid = 'prevValid' + $lvl,
    $passingSchemas = 'passingSchemas' + $lvl;
  out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';
  var $wasComposite = it.compositeRule;
  it.compositeRule = $it.compositeRule = true;
  var arr1 = $schema;
  if (arr1) {
    var $sch, $i = -1,
      l1 = arr1.length - 1;
    while ($i < l1) {
      $sch = arr1[$i += 1];
      if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {
        $it.schema = $sch;
        $it.schemaPath = $schemaPath + '[' + $i + ']';
        $it.errSchemaPath = $errSchemaPath + '/' + $i;
        out += '  ' + (it.validate($it)) + ' ';
        $it.baseId = $currentBaseId;
      } else {
        out += ' var ' + ($nextValid) + ' = true; ';
      }
      if ($i) {
        out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';
        $closingBraces += '}';
      }
      out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';
    }
  }
  it.compositeRule = $it.compositeRule = $wasComposite;
  out += '' + ($closingBraces) + 'if (!' + ($valid) + ') {   var err =   '; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ('oneOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should match exactly one schema in oneOf\' ';
    }
    if (it.opts.verbose) {
      out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError(vErrors); ';
    } else {
      out += ' validate.errors = vErrors; return false; ';
    }
  }
  out += '} else {  errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';
  if (it.opts.allErrors) {
    out += ' } ';
  }
  return out;
}


/***/ }),
/* 447 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_pattern(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);
  out += 'if ( ';
  if ($isData) {
    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || ';
  }
  out += ' !' + ($regexp) + '.test(' + ($data) + ') ) {   ';
  var $$outStack = $$outStack || [];
  $$outStack.push(out);
  out = ''; /* istanbul ignore else */
  if (it.createErrors !== false) {
    out += ' { keyword: \'' + ('pattern') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern:  ';
    if ($isData) {
      out += '' + ($schemaValue);
    } else {
      out += '' + (it.util.toQuotedString($schema));
    }
    out += '  } ';
    if (it.opts.messages !== false) {
      out += ' , message: \'should match pattern "';
      if ($isData) {
        out += '\' + ' + ($schemaValue) + ' + \'';
      } else {
        out += '' + (it.util.escapeQuotes($schema));
      }
      out += '"\' ';
    }
    if (it.opts.verbose) {
      out += ' , schema:  ';
      if ($isData) {
        out += 'validate.schema' + ($schemaPath);
      } else {
        out += '' + (it.util.toQuotedString($schema));
      }
      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
    }
    out += ' } ';
  } else {
    out += ' {} ';
  }
  var __err = out;
  out = $$outStack.pop();
  if (!it.compositeRule && $breakOnError) {
    /* istanbul ignore if */
    if (it.async) {
      out += ' throw new ValidationError([' + (__err) + ']); ';
    } else {
      out += ' validate.errors = [' + (__err) + ']; return false; ';
    }
  } else {
    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
  }
  out += '} ';
  if ($breakOnError) {
    out += ' else { ';
  }
  return out;
}


/***/ }),
/* 448 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_properties(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $errs = 'errs__' + $lvl;
  var $it = it.util.copy(it);
  var $closingBraces = '';
  $it.level++;
  var $nextValid = 'valid' + $it.level;
  var $key = 'key' + $lvl,
    $idx = 'idx' + $lvl,
    $dataNxt = $it.dataLevel = it.dataLevel + 1,
    $nextData = 'data' + $dataNxt,
    $dataProperties = 'dataProperties' + $lvl;
  var $schemaKeys = Object.keys($schema || {}),
    $pProperties = it.schema.patternProperties || {},
    $pPropertyKeys = Object.keys($pProperties),
    $aProperties = it.schema.additionalProperties,
    $someProperties = $schemaKeys.length || $pPropertyKeys.length,
    $noAdditional = $aProperties === false,
    $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,
    $removeAdditional = it.opts.removeAdditional,
    $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,
    $ownProperties = it.opts.ownProperties,
    $currentBaseId = it.baseId;
  var $required = it.schema.required;
  if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required);
  out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';
  if ($ownProperties) {
    out += ' var ' + ($dataProperties) + ' = undefined;';
  }
  if ($checkAdditional) {
    if ($ownProperties) {
      out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';
    } else {
      out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
    }
    if ($someProperties) {
      out += ' var isAdditional' + ($lvl) + ' = !(false ';
      if ($schemaKeys.length) {
        if ($schemaKeys.length > 8) {
          out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';
        } else {
          var arr1 = $schemaKeys;
          if (arr1) {
            var $propertyKey, i1 = -1,
              l1 = arr1.length - 1;
            while (i1 < l1) {
              $propertyKey = arr1[i1 += 1];
              out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';
            }
          }
        }
      }
      if ($pPropertyKeys.length) {
        var arr2 = $pPropertyKeys;
        if (arr2) {
          var $pProperty, $i = -1,
            l2 = arr2.length - 1;
          while ($i < l2) {
            $pProperty = arr2[$i += 1];
            out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';
          }
        }
      }
      out += ' ); if (isAdditional' + ($lvl) + ') { ';
    }
    if ($removeAdditional == 'all') {
      out += ' delete ' + ($data) + '[' + ($key) + ']; ';
    } else {
      var $currentErrorPath = it.errorPath;
      var $additionalProperty = '\' + ' + $key + ' + \'';
      if (it.opts._errorDataPathProperty) {
        it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
      }
      if ($noAdditional) {
        if ($removeAdditional) {
          out += ' delete ' + ($data) + '[' + ($key) + ']; ';
        } else {
          out += ' ' + ($nextValid) + ' = false; ';
          var $currErrSchemaPath = $errSchemaPath;
          $errSchemaPath = it.errSchemaPath + '/additionalProperties';
          var $$outStack = $$outStack || [];
          $$outStack.push(out);
          out = ''; /* istanbul ignore else */
          if (it.createErrors !== false) {
            out += ' { keyword: \'' + ('additionalProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \'' + ($additionalProperty) + '\' } ';
            if (it.opts.messages !== false) {
              out += ' , message: \'';
              if (it.opts._errorDataPathProperty) {
                out += 'is an invalid additional property';
              } else {
                out += 'should NOT have additional properties';
              }
              out += '\' ';
            }
            if (it.opts.verbose) {
              out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
            }
            out += ' } ';
          } else {
            out += ' {} ';
          }
          var __err = out;
          out = $$outStack.pop();
          if (!it.compositeRule && $breakOnError) {
            /* istanbul ignore if */
            if (it.async) {
              out += ' throw new ValidationError([' + (__err) + ']); ';
            } else {
              out += ' validate.errors = [' + (__err) + ']; return false; ';
            }
          } else {
            out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
          }
          $errSchemaPath = $currErrSchemaPath;
          if ($breakOnError) {
            out += ' break; ';
          }
        }
      } else if ($additionalIsSchema) {
        if ($removeAdditional == 'failing') {
          out += ' var ' + ($errs) + ' = errors;  ';
          var $wasComposite = it.compositeRule;
          it.compositeRule = $it.compositeRule = true;
          $it.schema = $aProperties;
          $it.schemaPath = it.schemaPath + '.additionalProperties';
          $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
          $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
          var $passData = $data + '[' + $key + ']';
          $it.dataPathArr[$dataNxt] = $key;
          var $code = it.validate($it);
          $it.baseId = $currentBaseId;
          if (it.util.varOccurences($code, $nextData) < 2) {
            out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
          } else {
            out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
          }
          out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; }  ';
          it.compositeRule = $it.compositeRule = $wasComposite;
        } else {
          $it.schema = $aProperties;
          $it.schemaPath = it.schemaPath + '.additionalProperties';
          $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
          $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
          var $passData = $data + '[' + $key + ']';
          $it.dataPathArr[$dataNxt] = $key;
          var $code = it.validate($it);
          $it.baseId = $currentBaseId;
          if (it.util.varOccurences($code, $nextData) < 2) {
            out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
          } else {
            out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
          }
          if ($breakOnError) {
            out += ' if (!' + ($nextValid) + ') break; ';
          }
        }
      }
      it.errorPath = $currentErrorPath;
    }
    if ($someProperties) {
      out += ' } ';
    }
    out += ' }  ';
    if ($breakOnError) {
      out += ' if (' + ($nextValid) + ') { ';
      $closingBraces += '}';
    }
  }
  var $useDefaults = it.opts.useDefaults && !it.compositeRule;
  if ($schemaKeys.length) {
    var arr3 = $schemaKeys;
    if (arr3) {
      var $propertyKey, i3 = -1,
        l3 = arr3.length - 1;
      while (i3 < l3) {
        $propertyKey = arr3[i3 += 1];
        var $sch = $schema[$propertyKey];
        if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {
          var $prop = it.util.getProperty($propertyKey),
            $passData = $data + $prop,
            $hasDefault = $useDefaults && $sch.default !== undefined;
          $it.schema = $sch;
          $it.schemaPath = $schemaPath + $prop;
          $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);
          $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);
          $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);
          var $code = it.validate($it);
          $it.baseId = $currentBaseId;
          if (it.util.varOccurences($code, $nextData) < 2) {
            $code = it.util.varReplace($code, $nextData, $passData);
            var $useData = $passData;
          } else {
            var $useData = $nextData;
            out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';
          }
          if ($hasDefault) {
            out += ' ' + ($code) + ' ';
          } else {
            if ($requiredHash && $requiredHash[$propertyKey]) {
              out += ' if ( ' + ($useData) + ' === undefined ';
              if ($ownProperties) {
                out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
              }
              out += ') { ' + ($nextValid) + ' = false; ';
              var $currentErrorPath = it.errorPath,
                $currErrSchemaPath = $errSchemaPath,
                $missingProperty = it.util.escapeQuotes($propertyKey);
              if (it.opts._errorDataPathProperty) {
                it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
              }
              $errSchemaPath = it.errSchemaPath + '/required';
              var $$outStack = $$outStack || [];
              $$outStack.push(out);
              out = ''; /* istanbul ignore else */
              if (it.createErrors !== false) {
                out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
                if (it.opts.messages !== false) {
                  out += ' , message: \'';
                  if (it.opts._errorDataPathProperty) {
                    out += 'is a required property';
                  } else {
                    out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
                  }
                  out += '\' ';
                }
                if (it.opts.verbose) {
                  out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
                }
                out += ' } ';
              } else {
                out += ' {} ';
              }
              var __err = out;
              out = $$outStack.pop();
              if (!it.compositeRule && $breakOnError) {
                /* istanbul ignore if */
                if (it.async) {
                  out += ' throw new ValidationError([' + (__err) + ']); ';
                } else {
                  out += ' validate.errors = [' + (__err) + ']; return false; ';
                }
              } else {
                out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
              }
              $errSchemaPath = $currErrSchemaPath;
              it.errorPath = $currentErrorPath;
              out += ' } else { ';
            } else {
              if ($breakOnError) {
                out += ' if ( ' + ($useData) + ' === undefined ';
                if ($ownProperties) {
                  out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
                }
                out += ') { ' + ($nextValid) + ' = true; } else { ';
              } else {
                out += ' if (' + ($useData) + ' !== undefined ';
                if ($ownProperties) {
                  out += ' &&   Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
                }
                out += ' ) { ';
              }
            }
            out += ' ' + ($code) + ' } ';
          }
        }
        if ($breakOnError) {
          out += ' if (' + ($nextValid) + ') { ';
          $closingBraces += '}';
        }
      }
    }
  }
  if ($pPropertyKeys.length) {
    var arr4 = $pPropertyKeys;
    if (arr4) {
      var $pProperty, i4 = -1,
        l4 = arr4.length - 1;
      while (i4 < l4) {
        $pProperty = arr4[i4 += 1];
        var $sch = $pProperties[$pProperty];
        if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {
          $it.schema = $sch;
          $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);
          $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);
          if ($ownProperties) {
            out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';
          } else {
            out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
          }
          out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';
          $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
          var $passData = $data + '[' + $key + ']';
          $it.dataPathArr[$dataNxt] = $key;
          var $code = it.validate($it);
          $it.baseId = $currentBaseId;
          if (it.util.varOccurences($code, $nextData) < 2) {
            out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
          } else {
            out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
          }
          if ($breakOnError) {
            out += ' if (!' + ($nextValid) + ') break; ';
          }
          out += ' } ';
          if ($breakOnError) {
            out += ' else ' + ($nextValid) + ' = true; ';
          }
          out += ' }  ';
          if ($breakOnError) {
            out += ' if (' + ($nextValid) + ') { ';
            $closingBraces += '}';
          }
        }
      }
    }
  }
  if ($breakOnError) {
    out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
  }
  out = it.util.cleanUpCode(out);
  return out;
}


/***/ }),
/* 449 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_propertyNames(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $errs = 'errs__' + $lvl;
  var $it = it.util.copy(it);
  var $closingBraces = '';
  $it.level++;
  var $nextValid = 'valid' + $it.level;
  out += 'var ' + ($errs) + ' = errors;';
  if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {
    $it.schema = $schema;
    $it.schemaPath = $schemaPath;
    $it.errSchemaPath = $errSchemaPath;
    var $key = 'key' + $lvl,
      $idx = 'idx' + $lvl,
      $i = 'i' + $lvl,
      $invalidName = '\' + ' + $key + ' + \'',
      $dataNxt = $it.dataLevel = it.dataLevel + 1,
      $nextData = 'data' + $dataNxt,
      $dataProperties = 'dataProperties' + $lvl,
      $ownProperties = it.opts.ownProperties,
      $currentBaseId = it.baseId;
    if ($ownProperties) {
      out += ' var ' + ($dataProperties) + ' = undefined; ';
    }
    if ($ownProperties) {
      out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';
    } else {
      out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
    }
    out += ' var startErrs' + ($lvl) + ' = errors; ';
    var $passData = $key;
    var $wasComposite = it.compositeRule;
    it.compositeRule = $it.compositeRule = true;
    var $code = it.validate($it);
    $it.baseId = $currentBaseId;
    if (it.util.varOccurences($code, $nextData) < 2) {
      out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
    } else {
      out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
    }
    it.compositeRule = $it.compositeRule = $wasComposite;
    out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; }   var err =   '; /* istanbul ignore else */
    if (it.createErrors !== false) {
      out += ' { keyword: \'' + ('propertyNames') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \'' + ($invalidName) + '\' } ';
      if (it.opts.messages !== false) {
        out += ' , message: \'property name \\\'' + ($invalidName) + '\\\' is invalid\' ';
      }
      if (it.opts.verbose) {
        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
      }
      out += ' } ';
    } else {
      out += ' {} ';
    }
    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
    if (!it.compositeRule && $breakOnError) {
      /* istanbul ignore if */
      if (it.async) {
        out += ' throw new ValidationError(vErrors); ';
      } else {
        out += ' validate.errors = vErrors; return false; ';
      }
    }
    if ($breakOnError) {
      out += ' break; ';
    }
    out += ' } }';
  }
  if ($breakOnError) {
    out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
  }
  out = it.util.cleanUpCode(out);
  return out;
}


/***/ }),
/* 450 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_required(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  var $vSchema = 'schema' + $lvl;
  if (!$isData) {
    if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {
      var $required = [];
      var arr1 = $schema;
      if (arr1) {
        var $property, i1 = -1,
          l1 = arr1.length - 1;
        while (i1 < l1) {
          $property = arr1[i1 += 1];
          var $propertySch = it.schema.properties[$property];
          if (!($propertySch && (it.opts.strictKeywords ? typeof $propertySch == 'object' && Object.keys($propertySch).length > 0 : it.util.schemaHasRules($propertySch, it.RULES.all)))) {
            $required[$required.length] = $property;
          }
        }
      }
    } else {
      var $required = $schema;
    }
  }
  if ($isData || $required.length) {
    var $currentErrorPath = it.errorPath,
      $loopRequired = $isData || $required.length >= it.opts.loopRequired,
      $ownProperties = it.opts.ownProperties;
    if ($breakOnError) {
      out += ' var missing' + ($lvl) + '; ';
      if ($loopRequired) {
        if (!$isData) {
          out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
        }
        var $i = 'i' + $lvl,
          $propertyPath = 'schema' + $lvl + '[' + $i + ']',
          $missingProperty = '\' + ' + $propertyPath + ' + \'';
        if (it.opts._errorDataPathProperty) {
          it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
        }
        out += ' var ' + ($valid) + ' = true; ';
        if ($isData) {
          out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';
        }
        out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';
        if ($ownProperties) {
          out += ' &&   Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';
        }
        out += '; if (!' + ($valid) + ') break; } ';
        if ($isData) {
          out += '  }  ';
        }
        out += '  if (!' + ($valid) + ') {   ';
        var $$outStack = $$outStack || [];
        $$outStack.push(out);
        out = ''; /* istanbul ignore else */
        if (it.createErrors !== false) {
          out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
          if (it.opts.messages !== false) {
            out += ' , message: \'';
            if (it.opts._errorDataPathProperty) {
              out += 'is a required property';
            } else {
              out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
            }
            out += '\' ';
          }
          if (it.opts.verbose) {
            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
          }
          out += ' } ';
        } else {
          out += ' {} ';
        }
        var __err = out;
        out = $$outStack.pop();
        if (!it.compositeRule && $breakOnError) {
          /* istanbul ignore if */
          if (it.async) {
            out += ' throw new ValidationError([' + (__err) + ']); ';
          } else {
            out += ' validate.errors = [' + (__err) + ']; return false; ';
          }
        } else {
          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
        }
        out += ' } else { ';
      } else {
        out += ' if ( ';
        var arr2 = $required;
        if (arr2) {
          var $propertyKey, $i = -1,
            l2 = arr2.length - 1;
          while ($i < l2) {
            $propertyKey = arr2[$i += 1];
            if ($i) {
              out += ' || ';
            }
            var $prop = it.util.getProperty($propertyKey),
              $useData = $data + $prop;
            out += ' ( ( ' + ($useData) + ' === undefined ';
            if ($ownProperties) {
              out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
            }
            out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';
          }
        }
        out += ') {  ';
        var $propertyPath = 'missing' + $lvl,
          $missingProperty = '\' + ' + $propertyPath + ' + \'';
        if (it.opts._errorDataPathProperty) {
          it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;
        }
        var $$outStack = $$outStack || [];
        $$outStack.push(out);
        out = ''; /* istanbul ignore else */
        if (it.createErrors !== false) {
          out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
          if (it.opts.messages !== false) {
            out += ' , message: \'';
            if (it.opts._errorDataPathProperty) {
              out += 'is a required property';
            } else {
              out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
            }
            out += '\' ';
          }
          if (it.opts.verbose) {
            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
          }
          out += ' } ';
        } else {
          out += ' {} ';
        }
        var __err = out;
        out = $$outStack.pop();
        if (!it.compositeRule && $breakOnError) {
          /* istanbul ignore if */
          if (it.async) {
            out += ' throw new ValidationError([' + (__err) + ']); ';
          } else {
            out += ' validate.errors = [' + (__err) + ']; return false; ';
          }
        } else {
          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
        }
        out += ' } else { ';
      }
    } else {
      if ($loopRequired) {
        if (!$isData) {
          out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
        }
        var $i = 'i' + $lvl,
          $propertyPath = 'schema' + $lvl + '[' + $i + ']',
          $missingProperty = '\' + ' + $propertyPath + ' + \'';
        if (it.opts._errorDataPathProperty) {
          it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
        }
        if ($isData) {
          out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) {  var err =   '; /* istanbul ignore else */
          if (it.createErrors !== false) {
            out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
            if (it.opts.messages !== false) {
              out += ' , message: \'';
              if (it.opts._errorDataPathProperty) {
                out += 'is a required property';
              } else {
                out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
              }
              out += '\' ';
            }
            if (it.opts.verbose) {
              out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
            }
            out += ' } ';
          } else {
            out += ' {} ';
          }
          out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';
        }
        out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';
        if ($ownProperties) {
          out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';
        }
        out += ') {  var err =   '; /* istanbul ignore else */
        if (it.createErrors !== false) {
          out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
          if (it.opts.messages !== false) {
            out += ' , message: \'';
            if (it.opts._errorDataPathProperty) {
              out += 'is a required property';
            } else {
              out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
            }
            out += '\' ';
          }
          if (it.opts.verbose) {
            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
          }
          out += ' } ';
        } else {
          out += ' {} ';
        }
        out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';
        if ($isData) {
          out += '  }  ';
        }
      } else {
        var arr3 = $required;
        if (arr3) {
          var $propertyKey, i3 = -1,
            l3 = arr3.length - 1;
          while (i3 < l3) {
            $propertyKey = arr3[i3 += 1];
            var $prop = it.util.getProperty($propertyKey),
              $missingProperty = it.util.escapeQuotes($propertyKey),
              $useData = $data + $prop;
            if (it.opts._errorDataPathProperty) {
              it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
            }
            out += ' if ( ' + ($useData) + ' === undefined ';
            if ($ownProperties) {
              out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
            }
            out += ') {  var err =   '; /* istanbul ignore else */
            if (it.createErrors !== false) {
              out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
              if (it.opts.messages !== false) {
                out += ' , message: \'';
                if (it.opts._errorDataPathProperty) {
                  out += 'is a required property';
                } else {
                  out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
                }
                out += '\' ';
              }
              if (it.opts.verbose) {
                out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
              }
              out += ' } ';
            } else {
              out += ' {} ';
            }
            out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';
          }
        }
      }
    }
    it.errorPath = $currentErrorPath;
  } else if ($breakOnError) {
    out += ' if (true) {';
  }
  return out;
}


/***/ }),
/* 451 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_uniqueItems(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  if (($schema || $isData) && it.opts.uniqueItems !== false) {
    if ($isData) {
      out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'boolean\') ' + ($valid) + ' = false; else { ';
    }
    out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';
    var $itemType = it.schema.items && it.schema.items.type,
      $typeIsArray = Array.isArray($itemType);
    if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {
      out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';
    } else {
      out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';
      var $method = 'checkDataType' + ($typeIsArray ? 's' : '');
      out += ' if (' + (it.util[$method]($itemType, 'item', true)) + ') continue; ';
      if ($typeIsArray) {
        out += ' if (typeof item == \'string\') item = \'"\' + item; ';
      }
      out += ' if (typeof itemIndices[item] == \'number\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';
    }
    out += ' } ';
    if ($isData) {
      out += '  }  ';
    }
    out += ' if (!' + ($valid) + ') {   ';
    var $$outStack = $$outStack || [];
    $$outStack.push(out);
    out = ''; /* istanbul ignore else */
    if (it.createErrors !== false) {
      out += ' { keyword: \'' + ('uniqueItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';
      if (it.opts.messages !== false) {
        out += ' , message: \'should NOT have duplicate items (items ## \' + j + \' and \' + i + \' are identical)\' ';
      }
      if (it.opts.verbose) {
        out += ' , schema:  ';
        if ($isData) {
          out += 'validate.schema' + ($schemaPath);
        } else {
          out += '' + ($schema);
        }
        out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
      }
      out += ' } ';
    } else {
      out += ' {} ';
    }
    var __err = out;
    out = $$outStack.pop();
    if (!it.compositeRule && $breakOnError) {
      /* istanbul ignore if */
      if (it.async) {
        out += ' throw new ValidationError([' + (__err) + ']); ';
      } else {
        out += ' validate.errors = [' + (__err) + ']; return false; ';
      }
    } else {
      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
    }
    out += ' } ';
    if ($breakOnError) {
      out += ' else { ';
    }
  } else {
    if ($breakOnError) {
      out += ' if (true) { ';
    }
  }
  return out;
}


/***/ }),
/* 452 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var KEYWORDS = [
  'multipleOf',
  'maximum',
  'exclusiveMaximum',
  'minimum',
  'exclusiveMinimum',
  'maxLength',
  'minLength',
  'pattern',
  'additionalItems',
  'maxItems',
  'minItems',
  'uniqueItems',
  'maxProperties',
  'minProperties',
  'required',
  'additionalProperties',
  'enum',
  'format',
  'const'
];

module.exports = function (metaSchema, keywordsJsonPointers) {
  for (var i=0; i<keywordsJsonPointers.length; i++) {
    metaSchema = JSON.parse(JSON.stringify(metaSchema));
    var segments = keywordsJsonPointers[i].split('/');
    var keywords = metaSchema;
    var j;
    for (j=1; j<segments.length; j++)
      keywords = keywords[segments[j]];

    for (j=0; j<KEYWORDS.length; j++) {
      var key = KEYWORDS[j];
      var schema = keywords[key];
      if (schema) {
        keywords[key] = {
          anyOf: [
            schema,
            { $ref: 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' }
          ]
        };
      }
    }
  }

  return metaSchema;
};


/***/ }),
/* 453 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var MissingRefError = __webpack_require__(422).MissingRef;

module.exports = compileAsync;


/**
 * Creates validating function for passed schema with asynchronous loading of missing schemas.
 * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.
 * @this  Ajv
 * @param {Object}   schema schema object
 * @param {Boolean}  meta optional true to compile meta-schema; this parameter can be skipped
 * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.
 * @return {Promise} promise that resolves with a validating function.
 */
function compileAsync(schema, meta, callback) {
  /* eslint no-shadow: 0 */
  /* global Promise */
  /* jshint validthis: true */
  var self = this;
  if (typeof this._opts.loadSchema != 'function')
    throw new Error('options.loadSchema should be a function');

  if (typeof meta == 'function') {
    callback = meta;
    meta = undefined;
  }

  var p = loadMetaSchemaOf(schema).then(function () {
    var schemaObj = self._addSchema(schema, undefined, meta);
    return schemaObj.validate || _compileAsync(schemaObj);
  });

  if (callback) {
    p.then(
      function(v) { callback(null, v); },
      callback
    );
  }

  return p;


  function loadMetaSchemaOf(sch) {
    var $schema = sch.$schema;
    return $schema && !self.getSchema($schema)
            ? compileAsync.call(self, { $ref: $schema }, true)
            : Promise.resolve();
  }


  function _compileAsync(schemaObj) {
    try { return self._compile(schemaObj); }
    catch(e) {
      if (e instanceof MissingRefError) return loadMissingSchema(e);
      throw e;
    }


    function loadMissingSchema(e) {
      var ref = e.missingSchema;
      if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');

      var schemaPromise = self._loadingSchemas[ref];
      if (!schemaPromise) {
        schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);
        schemaPromise.then(removePromise, removePromise);
      }

      return schemaPromise.then(function (sch) {
        if (!added(ref)) {
          return loadMetaSchemaOf(sch).then(function () {
            if (!added(ref)) self.addSchema(sch, ref, undefined, meta);
          });
        }
      }).then(function() {
        return _compileAsync(schemaObj);
      });

      function removePromise() {
        delete self._loadingSchemas[ref];
      }

      function added(ref) {
        return self._refs[ref] || self._schemas[ref];
      }
    }
  }
}


/***/ }),
/* 454 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;
var customRuleCode = __webpack_require__(455);
var definitionSchema = __webpack_require__(456);

module.exports = {
  add: addKeyword,
  get: getKeyword,
  remove: removeKeyword,
  validate: validateKeyword
};


/**
 * Define custom keyword
 * @this  Ajv
 * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).
 * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.
 * @return {Ajv} this for method chaining
 */
function addKeyword(keyword, definition) {
  /* jshint validthis: true */
  /* eslint no-shadow: 0 */
  var RULES = this.RULES;
  if (RULES.keywords[keyword])
    throw new Error('Keyword ' + keyword + ' is already defined');

  if (!IDENTIFIER.test(keyword))
    throw new Error('Keyword ' + keyword + ' is not a valid identifier');

  if (definition) {
    this.validateKeyword(definition, true);

    var dataType = definition.type;
    if (Array.isArray(dataType)) {
      for (var i=0; i<dataType.length; i++)
        _addRule(keyword, dataType[i], definition);
    } else {
      _addRule(keyword, dataType, definition);
    }

    var metaSchema = definition.metaSchema;
    if (metaSchema) {
      if (definition.$data && this._opts.$data) {
        metaSchema = {
          anyOf: [
            metaSchema,
            { '$ref': 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#' }
          ]
        };
      }
      definition.validateSchema = this.compile(metaSchema, true);
    }
  }

  RULES.keywords[keyword] = RULES.all[keyword] = true;


  function _addRule(keyword, dataType, definition) {
    var ruleGroup;
    for (var i=0; i<RULES.length; i++) {
      var rg = RULES[i];
      if (rg.type == dataType) {
        ruleGroup = rg;
        break;
      }
    }

    if (!ruleGroup) {
      ruleGroup = { type: dataType, rules: [] };
      RULES.push(ruleGroup);
    }

    var rule = {
      keyword: keyword,
      definition: definition,
      custom: true,
      code: customRuleCode,
      implements: definition.implements
    };
    ruleGroup.rules.push(rule);
    RULES.custom[keyword] = rule;
  }

  return this;
}


/**
 * Get keyword
 * @this  Ajv
 * @param {String} keyword pre-defined or custom keyword.
 * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.
 */
function getKeyword(keyword) {
  /* jshint validthis: true */
  var rule = this.RULES.custom[keyword];
  return rule ? rule.definition : this.RULES.keywords[keyword] || false;
}


/**
 * Remove keyword
 * @this  Ajv
 * @param {String} keyword pre-defined or custom keyword.
 * @return {Ajv} this for method chaining
 */
function removeKeyword(keyword) {
  /* jshint validthis: true */
  var RULES = this.RULES;
  delete RULES.keywords[keyword];
  delete RULES.all[keyword];
  delete RULES.custom[keyword];
  for (var i=0; i<RULES.length; i++) {
    var rules = RULES[i].rules;
    for (var j=0; j<rules.length; j++) {
      if (rules[j].keyword == keyword) {
        rules.splice(j, 1);
        break;
      }
    }
  }
  return this;
}


/**
 * Validate keyword definition
 * @this  Ajv
 * @param {Object} definition keyword definition object.
 * @param {Boolean} throwError true to throw exception if definition is invalid
 * @return {boolean} validation result
 */
function validateKeyword(definition, throwError) {
  validateKeyword.errors = null;
  var v = this._validateKeyword = this._validateKeyword
                                  || this.compile(definitionSchema, true);

  if (v(definition)) return true;
  validateKeyword.errors = v.errors;
  if (throwError)
    throw new Error('custom keyword definition is invalid: '  + this.errorsText(v.errors));
  else
    return false;
}


/***/ }),
/* 455 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

module.exports = function generate_custom(it, $keyword, $ruleType) {
  var out = ' ';
  var $lvl = it.level;
  var $dataLvl = it.dataLevel;
  var $schema = it.schema[$keyword];
  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
  var $breakOnError = !it.opts.allErrors;
  var $errorKeyword;
  var $data = 'data' + ($dataLvl || '');
  var $valid = 'valid' + $lvl;
  var $errs = 'errs__' + $lvl;
  var $isData = it.opts.$data && $schema && $schema.$data,
    $schemaValue;
  if ($isData) {
    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
    $schemaValue = 'schema' + $lvl;
  } else {
    $schemaValue = $schema;
  }
  var $rule = this,
    $definition = 'definition' + $lvl,
    $rDef = $rule.definition,
    $closingBraces = '';
  var $compile, $inline, $macro, $ruleValidate, $validateCode;
  if ($isData && $rDef.$data) {
    $validateCode = 'keywordValidate' + $lvl;
    var $validateSchema = $rDef.validateSchema;
    out += ' var ' + ($definition) + ' = RULES.custom[\'' + ($keyword) + '\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';
  } else {
    $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);
    if (!$ruleValidate) return;
    $schemaValue = 'validate.schema' + $schemaPath;
    $validateCode = $ruleValidate.code;
    $compile = $rDef.compile;
    $inline = $rDef.inline;
    $macro = $rDef.macro;
  }
  var $ruleErrs = $validateCode + '.errors',
    $i = 'i' + $lvl,
    $ruleErr = 'ruleErr' + $lvl,
    $asyncKeyword = $rDef.async;
  if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');
  if (!($inline || $macro)) {
    out += '' + ($ruleErrs) + ' = null;';
  }
  out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
  if ($isData && $rDef.$data) {
    $closingBraces += '}';
    out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';
    if ($validateSchema) {
      $closingBraces += '}';
      out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';
    }
  }
  if ($inline) {
    if ($rDef.statements) {
      out += ' ' + ($ruleValidate.validate) + ' ';
    } else {
      out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';
    }
  } else if ($macro) {
    var $it = it.util.copy(it);
    var $closingBraces = '';
    $it.level++;
    var $nextValid = 'valid' + $it.level;
    $it.schema = $ruleValidate.validate;
    $it.schemaPath = '';
    var $wasComposite = it.compositeRule;
    it.compositeRule = $it.compositeRule = true;
    var $code = it.validate($it).replace(/validate\.schema/g, $validateCode);
    it.compositeRule = $it.compositeRule = $wasComposite;
    out += ' ' + ($code);
  } else {
    var $$outStack = $$outStack || [];
    $$outStack.push(out);
    out = '';
    out += '  ' + ($validateCode) + '.call( ';
    if (it.opts.passContext) {
      out += 'this';
    } else {
      out += 'self';
    }
    if ($compile || $rDef.schema === false) {
      out += ' , ' + ($data) + ' ';
    } else {
      out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';
    }
    out += ' , (dataPath || \'\')';
    if (it.errorPath != '""') {
      out += ' + ' + (it.errorPath);
    }
    var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
      $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
    out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData )  ';
    var def_callRuleValidate = out;
    out = $$outStack.pop();
    if ($rDef.errors === false) {
      out += ' ' + ($valid) + ' = ';
      if ($asyncKeyword) {
        out += 'await ';
      }
      out += '' + (def_callRuleValidate) + '; ';
    } else {
      if ($asyncKeyword) {
        $ruleErrs = 'customErrors' + $lvl;
        out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';
      } else {
        out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';
      }
    }
  }
  if ($rDef.modifying) {
    out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';
  }
  out += '' + ($closingBraces);
  if ($rDef.valid) {
    if ($breakOnError) {
      out += ' if (true) { ';
    }
  } else {
    out += ' if ( ';
    if ($rDef.valid === undefined) {
      out += ' !';
      if ($macro) {
        out += '' + ($nextValid);
      } else {
        out += '' + ($valid);
      }
    } else {
      out += ' ' + (!$rDef.valid) + ' ';
    }
    out += ') { ';
    $errorKeyword = $rule.keyword;
    var $$outStack = $$outStack || [];
    $$outStack.push(out);
    out = '';
    var $$outStack = $$outStack || [];
    $$outStack.push(out);
    out = ''; /* istanbul ignore else */
    if (it.createErrors !== false) {
      out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } ';
      if (it.opts.messages !== false) {
        out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' ';
      }
      if (it.opts.verbose) {
        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
      }
      out += ' } ';
    } else {
      out += ' {} ';
    }
    var __err = out;
    out = $$outStack.pop();
    if (!it.compositeRule && $breakOnError) {
      /* istanbul ignore if */
      if (it.async) {
        out += ' throw new ValidationError([' + (__err) + ']); ';
      } else {
        out += ' validate.errors = [' + (__err) + ']; return false; ';
      }
    } else {
      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
    }
    var def_customError = out;
    out = $$outStack.pop();
    if ($inline) {
      if ($rDef.errors) {
        if ($rDef.errors != 'full') {
          out += '  for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; } ';
          if (it.opts.verbose) {
            out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
          }
          out += ' } ';
        }
      } else {
        if ($rDef.errors === false) {
          out += ' ' + (def_customError) + ' ';
        } else {
          out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else {  for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; } ';
          if (it.opts.verbose) {
            out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
          }
          out += ' } } ';
        }
      }
    } else if ($macro) {
      out += '   var err =   '; /* istanbul ignore else */
      if (it.createErrors !== false) {
        out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } ';
        if (it.opts.messages !== false) {
          out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' ';
        }
        if (it.opts.verbose) {
          out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
        }
        out += ' } ';
      } else {
        out += ' {} ';
      }
      out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
      if (!it.compositeRule && $breakOnError) {
        /* istanbul ignore if */
        if (it.async) {
          out += ' throw new ValidationError(vErrors); ';
        } else {
          out += ' validate.errors = vErrors; return false; ';
        }
      }
    } else {
      if ($rDef.errors === false) {
        out += ' ' + (def_customError) + ' ';
      } else {
        out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length;  for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + ';  ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '";  ';
        if (it.opts.verbose) {
          out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
        }
        out += ' } } else { ' + (def_customError) + ' } ';
      }
    }
    out += ' } ';
    if ($breakOnError) {
      out += ' else { ';
    }
  }
  return out;
}


/***/ }),
/* 456 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var metaSchema = __webpack_require__(457);

module.exports = {
  $id: 'https://github.com/epoberezkin/ajv/blob/master/lib/definition_schema.js',
  definitions: {
    simpleTypes: metaSchema.definitions.simpleTypes
  },
  type: 'object',
  dependencies: {
    schema: ['validate'],
    $data: ['validate'],
    statements: ['inline'],
    valid: {not: {required: ['macro']}}
  },
  properties: {
    type: metaSchema.properties.type,
    schema: {type: 'boolean'},
    statements: {type: 'boolean'},
    dependencies: {
      type: 'array',
      items: {type: 'string'}
    },
    metaSchema: {type: 'object'},
    modifying: {type: 'boolean'},
    valid: {type: 'boolean'},
    $data: {type: 'boolean'},
    async: {type: 'boolean'},
    errors: {
      anyOf: [
        {type: 'boolean'},
        {const: 'full'}
      ]
    }
  }
};


/***/ }),
/* 457 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"$id\":\"http://json-schema.org/draft-07/schema#\",\"title\":\"Core schema meta-schema\",\"definitions\":{\"schemaArray\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"$ref\":\"#\"}},\"nonNegativeInteger\":{\"type\":\"integer\",\"minimum\":0},\"nonNegativeIntegerDefault0\":{\"allOf\":[{\"$ref\":\"#/definitions/nonNegativeInteger\"},{\"default\":0}]},\"simpleTypes\":{\"enum\":[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},\"stringArray\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"uniqueItems\":true,\"default\":[]}},\"type\":[\"object\",\"boolean\"],\"properties\":{\"$id\":{\"type\":\"string\",\"format\":\"uri-reference\"},\"$schema\":{\"type\":\"string\",\"format\":\"uri\"},\"$ref\":{\"type\":\"string\",\"format\":\"uri-reference\"},\"$comment\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"default\":true,\"readOnly\":{\"type\":\"boolean\",\"default\":false},\"examples\":{\"type\":\"array\",\"items\":true},\"multipleOf\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"maximum\":{\"type\":\"number\"},\"exclusiveMaximum\":{\"type\":\"number\"},\"minimum\":{\"type\":\"number\"},\"exclusiveMinimum\":{\"type\":\"number\"},\"maxLength\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minLength\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"pattern\":{\"type\":\"string\",\"format\":\"regex\"},\"additionalItems\":{\"$ref\":\"#\"},\"items\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/schemaArray\"}],\"default\":true},\"maxItems\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minItems\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"uniqueItems\":{\"type\":\"boolean\",\"default\":false},\"contains\":{\"$ref\":\"#\"},\"maxProperties\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minProperties\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"required\":{\"$ref\":\"#/definitions/stringArray\"},\"additionalProperties\":{\"$ref\":\"#\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"propertyNames\":{\"format\":\"regex\"},\"default\":{}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/stringArray\"}]}},\"propertyNames\":{\"$ref\":\"#\"},\"const\":true,\"enum\":{\"type\":\"array\",\"items\":true,\"minItems\":1,\"uniqueItems\":true},\"type\":{\"anyOf\":[{\"$ref\":\"#/definitions/simpleTypes\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/simpleTypes\"},\"minItems\":1,\"uniqueItems\":true}]},\"format\":{\"type\":\"string\"},\"contentMediaType\":{\"type\":\"string\"},\"contentEncoding\":{\"type\":\"string\"},\"if\":{\"$ref\":\"#\"},\"then\":{\"$ref\":\"#\"},\"else\":{\"$ref\":\"#\"},\"allOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"anyOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"oneOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"not\":{\"$ref\":\"#\"}},\"default\":true}");

/***/ }),
/* 458 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"$id\":\"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#\",\"description\":\"Meta-schema for $data reference (JSON Schema extension proposal)\",\"type\":\"object\",\"required\":[\"$data\"],\"properties\":{\"$data\":{\"type\":\"string\",\"anyOf\":[{\"format\":\"relative-json-pointer\"},{\"format\":\"json-pointer\"}]}},\"additionalProperties\":false}");

/***/ }),
/* 459 */
/***/ (function(module, exports) {

function HARError (errors) {
  var message = 'validation failed'

  this.name = 'HARError'
  this.message = message
  this.errors = errors

  if (typeof Error.captureStackTrace === 'function') {
    Error.captureStackTrace(this, this.constructor)
  } else {
    this.stack = (new Error(message)).stack
  }
}

HARError.prototype = Error.prototype

module.exports = HARError


/***/ }),
/* 460 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = {
  afterRequest: __webpack_require__(461),
  beforeRequest: __webpack_require__(462),
  browser: __webpack_require__(463),
  cache: __webpack_require__(464),
  content: __webpack_require__(465),
  cookie: __webpack_require__(466),
  creator: __webpack_require__(467),
  entry: __webpack_require__(468),
  har: __webpack_require__(469),
  header: __webpack_require__(470),
  log: __webpack_require__(471),
  page: __webpack_require__(472),
  pageTimings: __webpack_require__(473),
  postData: __webpack_require__(474),
  query: __webpack_require__(475),
  request: __webpack_require__(476),
  response: __webpack_require__(477),
  timings: __webpack_require__(478)
}


/***/ }),
/* 461 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"afterRequest.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"optional\":true,\"required\":[\"lastAccess\",\"eTag\",\"hitCount\"],\"properties\":{\"expires\":{\"type\":\"string\",\"pattern\":\"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?\"},\"lastAccess\":{\"type\":\"string\",\"pattern\":\"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?\"},\"eTag\":{\"type\":\"string\"},\"hitCount\":{\"type\":\"integer\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 462 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"beforeRequest.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"optional\":true,\"required\":[\"lastAccess\",\"eTag\",\"hitCount\"],\"properties\":{\"expires\":{\"type\":\"string\",\"pattern\":\"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?\"},\"lastAccess\":{\"type\":\"string\",\"pattern\":\"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?\"},\"eTag\":{\"type\":\"string\"},\"hitCount\":{\"type\":\"integer\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 463 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"browser.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"required\":[\"name\",\"version\"],\"properties\":{\"name\":{\"type\":\"string\"},\"version\":{\"type\":\"string\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 464 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"cache.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"properties\":{\"beforeRequest\":{\"oneOf\":[{\"type\":\"null\"},{\"$ref\":\"beforeRequest.json#\"}]},\"afterRequest\":{\"oneOf\":[{\"type\":\"null\"},{\"$ref\":\"afterRequest.json#\"}]},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 465 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"content.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"required\":[\"size\",\"mimeType\"],\"properties\":{\"size\":{\"type\":\"integer\"},\"compression\":{\"type\":\"integer\"},\"mimeType\":{\"type\":\"string\"},\"text\":{\"type\":\"string\"},\"encoding\":{\"type\":\"string\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 466 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"cookie.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"path\":{\"type\":\"string\"},\"domain\":{\"type\":\"string\"},\"expires\":{\"type\":[\"string\",\"null\"],\"format\":\"date-time\"},\"httpOnly\":{\"type\":\"boolean\"},\"secure\":{\"type\":\"boolean\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 467 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"creator.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"required\":[\"name\",\"version\"],\"properties\":{\"name\":{\"type\":\"string\"},\"version\":{\"type\":\"string\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 468 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"entry.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"optional\":true,\"required\":[\"startedDateTime\",\"time\",\"request\",\"response\",\"cache\",\"timings\"],\"properties\":{\"pageref\":{\"type\":\"string\"},\"startedDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))\"},\"time\":{\"type\":\"number\",\"min\":0},\"request\":{\"$ref\":\"request.json#\"},\"response\":{\"$ref\":\"response.json#\"},\"cache\":{\"$ref\":\"cache.json#\"},\"timings\":{\"$ref\":\"timings.json#\"},\"serverIPAddress\":{\"type\":\"string\",\"oneOf\":[{\"format\":\"ipv4\"},{\"format\":\"ipv6\"}]},\"connection\":{\"type\":\"string\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 469 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"har.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"required\":[\"log\"],\"properties\":{\"log\":{\"$ref\":\"log.json#\"}}}");

/***/ }),
/* 470 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"header.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 471 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"log.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"required\":[\"version\",\"creator\",\"entries\"],\"properties\":{\"version\":{\"type\":\"string\"},\"creator\":{\"$ref\":\"creator.json#\"},\"browser\":{\"$ref\":\"browser.json#\"},\"pages\":{\"type\":\"array\",\"items\":{\"$ref\":\"page.json#\"}},\"entries\":{\"type\":\"array\",\"items\":{\"$ref\":\"entry.json#\"}},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 472 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"page.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"optional\":true,\"required\":[\"startedDateTime\",\"id\",\"title\",\"pageTimings\"],\"properties\":{\"startedDateTime\":{\"type\":\"string\",\"format\":\"date-time\",\"pattern\":\"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))\"},\"id\":{\"type\":\"string\",\"unique\":true},\"title\":{\"type\":\"string\"},\"pageTimings\":{\"$ref\":\"pageTimings.json#\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 473 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"pageTimings.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"properties\":{\"onContentLoad\":{\"type\":\"number\",\"min\":-1},\"onLoad\":{\"type\":\"number\",\"min\":-1},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 474 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"postData.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"optional\":true,\"required\":[\"mimeType\"],\"properties\":{\"mimeType\":{\"type\":\"string\"},\"text\":{\"type\":\"string\"},\"params\":{\"type\":\"array\",\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"fileName\":{\"type\":\"string\"},\"contentType\":{\"type\":\"string\"},\"comment\":{\"type\":\"string\"}}},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 475 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"query.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 476 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"request.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"required\":[\"method\",\"url\",\"httpVersion\",\"cookies\",\"headers\",\"queryString\",\"headersSize\",\"bodySize\"],\"properties\":{\"method\":{\"type\":\"string\"},\"url\":{\"type\":\"string\",\"format\":\"uri\"},\"httpVersion\":{\"type\":\"string\"},\"cookies\":{\"type\":\"array\",\"items\":{\"$ref\":\"cookie.json#\"}},\"headers\":{\"type\":\"array\",\"items\":{\"$ref\":\"header.json#\"}},\"queryString\":{\"type\":\"array\",\"items\":{\"$ref\":\"query.json#\"}},\"postData\":{\"$ref\":\"postData.json#\"},\"headersSize\":{\"type\":\"integer\"},\"bodySize\":{\"type\":\"integer\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 477 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"response.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"type\":\"object\",\"required\":[\"status\",\"statusText\",\"httpVersion\",\"cookies\",\"headers\",\"content\",\"redirectURL\",\"headersSize\",\"bodySize\"],\"properties\":{\"status\":{\"type\":\"integer\"},\"statusText\":{\"type\":\"string\"},\"httpVersion\":{\"type\":\"string\"},\"cookies\":{\"type\":\"array\",\"items\":{\"$ref\":\"cookie.json#\"}},\"headers\":{\"type\":\"array\",\"items\":{\"$ref\":\"header.json#\"}},\"content\":{\"$ref\":\"content.json#\"},\"redirectURL\":{\"type\":\"string\"},\"headersSize\":{\"type\":\"integer\"},\"bodySize\":{\"type\":\"integer\"},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 478 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$id\":\"timings.json#\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"required\":[\"send\",\"wait\",\"receive\"],\"properties\":{\"dns\":{\"type\":\"number\",\"min\":-1},\"connect\":{\"type\":\"number\",\"min\":-1},\"blocked\":{\"type\":\"number\",\"min\":-1},\"send\":{\"type\":\"number\",\"min\":-1},\"wait\":{\"type\":\"number\",\"min\":-1},\"receive\":{\"type\":\"number\",\"min\":-1},\"ssl\":{\"type\":\"number\",\"min\":-1},\"comment\":{\"type\":\"string\"}}}");

/***/ }),
/* 479 */
/***/ (function(module) {

module.exports = JSON.parse("{\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"$id\":\"http://json-schema.org/draft-06/schema#\",\"title\":\"Core schema meta-schema\",\"definitions\":{\"schemaArray\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"$ref\":\"#\"}},\"nonNegativeInteger\":{\"type\":\"integer\",\"minimum\":0},\"nonNegativeIntegerDefault0\":{\"allOf\":[{\"$ref\":\"#/definitions/nonNegativeInteger\"},{\"default\":0}]},\"simpleTypes\":{\"enum\":[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},\"stringArray\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"uniqueItems\":true,\"default\":[]}},\"type\":[\"object\",\"boolean\"],\"properties\":{\"$id\":{\"type\":\"string\",\"format\":\"uri-reference\"},\"$schema\":{\"type\":\"string\",\"format\":\"uri\"},\"$ref\":{\"type\":\"string\",\"format\":\"uri-reference\"},\"title\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"default\":{},\"examples\":{\"type\":\"array\",\"items\":{}},\"multipleOf\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"maximum\":{\"type\":\"number\"},\"exclusiveMaximum\":{\"type\":\"number\"},\"minimum\":{\"type\":\"number\"},\"exclusiveMinimum\":{\"type\":\"number\"},\"maxLength\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minLength\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"pattern\":{\"type\":\"string\",\"format\":\"regex\"},\"additionalItems\":{\"$ref\":\"#\"},\"items\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/schemaArray\"}],\"default\":{}},\"maxItems\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minItems\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"uniqueItems\":{\"type\":\"boolean\",\"default\":false},\"contains\":{\"$ref\":\"#\"},\"maxProperties\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minProperties\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"required\":{\"$ref\":\"#/definitions/stringArray\"},\"additionalProperties\":{\"$ref\":\"#\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/stringArray\"}]}},\"propertyNames\":{\"$ref\":\"#\"},\"const\":{},\"enum\":{\"type\":\"array\",\"minItems\":1,\"uniqueItems\":true},\"type\":{\"anyOf\":[{\"$ref\":\"#/definitions/simpleTypes\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/simpleTypes\"},\"minItems\":1,\"uniqueItems\":true}]},\"format\":{\"type\":\"string\"},\"allOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"anyOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"oneOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"not\":{\"$ref\":\"#\"}},\"default\":{}}");

/***/ }),
/* 480 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var caseless = __webpack_require__(385)
var uuid = __webpack_require__(481)
var helpers = __webpack_require__(321)

var md5 = helpers.md5
var toBase64 = helpers.toBase64

function Auth (request) {
  // define all public properties here
  this.request = request
  this.hasAuth = false
  this.sentAuth = false
  this.bearerToken = null
  this.user = null
  this.pass = null
}

Auth.prototype.basic = function (user, pass, sendImmediately) {
  var self = this
  if (typeof user !== 'string' || (pass !== undefined && typeof pass !== 'string')) {
    self.request.emit('error', new Error('auth() received invalid user or password'))
  }
  self.user = user
  self.pass = pass
  self.hasAuth = true
  var header = user + ':' + (pass || '')
  if (sendImmediately || typeof sendImmediately === 'undefined') {
    var authHeader = 'Basic ' + toBase64(header)
    self.sentAuth = true
    return authHeader
  }
}

Auth.prototype.bearer = function (bearer, sendImmediately) {
  var self = this
  self.bearerToken = bearer
  self.hasAuth = true
  if (sendImmediately || typeof sendImmediately === 'undefined') {
    if (typeof bearer === 'function') {
      bearer = bearer()
    }
    var authHeader = 'Bearer ' + (bearer || '')
    self.sentAuth = true
    return authHeader
  }
}

Auth.prototype.digest = function (method, path, authHeader) {
  // TODO: More complete implementation of RFC 2617.
  //   - handle challenge.domain
  //   - support qop="auth-int" only
  //   - handle Authentication-Info (not necessarily?)
  //   - check challenge.stale (not necessarily?)
  //   - increase nc (not necessarily?)
  // For reference:
  // http://tools.ietf.org/html/rfc2617#section-3
  // https://github.com/bagder/curl/blob/master/lib/http_digest.c

  var self = this

  var challenge = {}
  var re = /([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi
  for (;;) {
    var match = re.exec(authHeader)
    if (!match) {
      break
    }
    challenge[match[1]] = match[2] || match[3]
  }

  /**
   * RFC 2617: handle both MD5 and MD5-sess algorithms.
   *
   * If the algorithm directive's value is "MD5" or unspecified, then HA1 is
   *   HA1=MD5(username:realm:password)
   * If the algorithm directive's value is "MD5-sess", then HA1 is
   *   HA1=MD5(MD5(username:realm:password):nonce:cnonce)
   */
  var ha1Compute = function (algorithm, user, realm, pass, nonce, cnonce) {
    var ha1 = md5(user + ':' + realm + ':' + pass)
    if (algorithm && algorithm.toLowerCase() === 'md5-sess') {
      return md5(ha1 + ':' + nonce + ':' + cnonce)
    } else {
      return ha1
    }
  }

  var qop = /(^|,)\s*auth\s*($|,)/.test(challenge.qop) && 'auth'
  var nc = qop && '00000001'
  var cnonce = qop && uuid().replace(/-/g, '')
  var ha1 = ha1Compute(challenge.algorithm, self.user, challenge.realm, self.pass, challenge.nonce, cnonce)
  var ha2 = md5(method + ':' + path)
  var digestResponse = qop
    ? md5(ha1 + ':' + challenge.nonce + ':' + nc + ':' + cnonce + ':' + qop + ':' + ha2)
    : md5(ha1 + ':' + challenge.nonce + ':' + ha2)
  var authValues = {
    username: self.user,
    realm: challenge.realm,
    nonce: challenge.nonce,
    uri: path,
    qop: qop,
    response: digestResponse,
    nc: nc,
    cnonce: cnonce,
    algorithm: challenge.algorithm,
    opaque: challenge.opaque
  }

  authHeader = []
  for (var k in authValues) {
    if (authValues[k]) {
      if (k === 'qop' || k === 'nc' || k === 'algorithm') {
        authHeader.push(k + '=' + authValues[k])
      } else {
        authHeader.push(k + '="' + authValues[k] + '"')
      }
    }
  }
  authHeader = 'Digest ' + authHeader.join(', ')
  self.sentAuth = true
  return authHeader
}

Auth.prototype.onRequest = function (user, pass, sendImmediately, bearer) {
  var self = this
  var request = self.request

  var authHeader
  if (bearer === undefined && user === undefined) {
    self.request.emit('error', new Error('no auth mechanism defined'))
  } else if (bearer !== undefined) {
    authHeader = self.bearer(bearer, sendImmediately)
  } else {
    authHeader = self.basic(user, pass, sendImmediately)
  }
  if (authHeader) {
    request.setHeader('authorization', authHeader)
  }
}

Auth.prototype.onResponse = function (response) {
  var self = this
  var request = self.request

  if (!self.hasAuth || self.sentAuth) { return null }

  var c = caseless(response.headers)

  var authHeader = c.get('www-authenticate')
  var authVerb = authHeader && authHeader.split(' ')[0].toLowerCase()
  request.debug('reauth', authVerb)

  switch (authVerb) {
    case 'basic':
      return self.basic(self.user, self.pass, true)

    case 'bearer':
      return self.bearer(self.bearerToken, true)

    case 'digest':
      return self.digest(request.method, request.path, authHeader)
  }
}

exports.Auth = Auth


/***/ }),
/* 481 */
/***/ (function(module, exports, __webpack_require__) {

var rng = __webpack_require__(482);
var bytesToUuid = __webpack_require__(483);

function v4(options, buf, offset) {
  var i = buf && offset || 0;

  if (typeof(options) == 'string') {
    buf = options === 'binary' ? new Array(16) : null;
    options = null;
  }
  options = options || {};

  var rnds = options.random || (options.rng || rng)();

  // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
  rnds[6] = (rnds[6] & 0x0f) | 0x40;
  rnds[8] = (rnds[8] & 0x3f) | 0x80;

  // Copy bytes to buffer, if provided
  if (buf) {
    for (var ii = 0; ii < 16; ++ii) {
      buf[i + ii] = rnds[ii];
    }
  }

  return buf || bytesToUuid(rnds);
}

module.exports = v4;


/***/ }),
/* 482 */
/***/ (function(module, exports, __webpack_require__) {

// Unique ID creation requires a high quality random # generator.  In node.js
// this is pretty straight-forward - we use the crypto API.

var crypto = __webpack_require__(57);

module.exports = function nodeRNG() {
  return crypto.randomBytes(16);
};


/***/ }),
/* 483 */
/***/ (function(module, exports) {

/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */
var byteToHex = [];
for (var i = 0; i < 256; ++i) {
  byteToHex[i] = (i + 0x100).toString(16).substr(1);
}

function bytesToUuid(buf, offset) {
  var i = offset || 0;
  var bth = byteToHex;
  // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
  return ([bth[buf[i++]], bth[buf[i++]], 
	bth[buf[i++]], bth[buf[i++]], '-',
	bth[buf[i++]], bth[buf[i++]], '-',
	bth[buf[i++]], bth[buf[i++]], '-',
	bth[buf[i++]], bth[buf[i++]], '-',
	bth[buf[i++]], bth[buf[i++]],
	bth[buf[i++]], bth[buf[i++]],
	bth[buf[i++]], bth[buf[i++]]]).join('');
}

module.exports = bytesToUuid;


/***/ }),
/* 484 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var url = __webpack_require__(274)
var qs = __webpack_require__(406)
var caseless = __webpack_require__(385)
var uuid = __webpack_require__(481)
var oauth = __webpack_require__(485)
var crypto = __webpack_require__(57)
var Buffer = __webpack_require__(323).Buffer

function OAuth (request) {
  this.request = request
  this.params = null
}

OAuth.prototype.buildParams = function (_oauth, uri, method, query, form, qsLib) {
  var oa = {}
  for (var i in _oauth) {
    oa['oauth_' + i] = _oauth[i]
  }
  if (!oa.oauth_version) {
    oa.oauth_version = '1.0'
  }
  if (!oa.oauth_timestamp) {
    oa.oauth_timestamp = Math.floor(Date.now() / 1000).toString()
  }
  if (!oa.oauth_nonce) {
    oa.oauth_nonce = uuid().replace(/-/g, '')
  }
  if (!oa.oauth_signature_method) {
    oa.oauth_signature_method = 'HMAC-SHA1'
  }

  var consumer_secret_or_private_key = oa.oauth_consumer_secret || oa.oauth_private_key // eslint-disable-line camelcase
  delete oa.oauth_consumer_secret
  delete oa.oauth_private_key

  var token_secret = oa.oauth_token_secret // eslint-disable-line camelcase
  delete oa.oauth_token_secret

  var realm = oa.oauth_realm
  delete oa.oauth_realm
  delete oa.oauth_transport_method

  var baseurl = uri.protocol + '//' + uri.host + uri.pathname
  var params = qsLib.parse([].concat(query, form, qsLib.stringify(oa)).join('&'))

  oa.oauth_signature = oauth.sign(
    oa.oauth_signature_method,
    method,
    baseurl,
    params,
    consumer_secret_or_private_key, // eslint-disable-line camelcase
    token_secret // eslint-disable-line camelcase
  )

  if (realm) {
    oa.realm = realm
  }

  return oa
}

OAuth.prototype.buildBodyHash = function (_oauth, body) {
  if (['HMAC-SHA1', 'RSA-SHA1'].indexOf(_oauth.signature_method || 'HMAC-SHA1') < 0) {
    this.request.emit('error', new Error('oauth: ' + _oauth.signature_method +
      ' signature_method not supported with body_hash signing.'))
  }

  var shasum = crypto.createHash('sha1')
  shasum.update(body || '')
  var sha1 = shasum.digest('hex')

  return Buffer.from(sha1, 'hex').toString('base64')
}

OAuth.prototype.concatParams = function (oa, sep, wrap) {
  wrap = wrap || ''

  var params = Object.keys(oa).filter(function (i) {
    return i !== 'realm' && i !== 'oauth_signature'
  }).sort()

  if (oa.realm) {
    params.splice(0, 0, 'realm')
  }
  params.push('oauth_signature')

  return params.map(function (i) {
    return i + '=' + wrap + oauth.rfc3986(oa[i]) + wrap
  }).join(sep)
}

OAuth.prototype.onRequest = function (_oauth) {
  var self = this
  self.params = _oauth

  var uri = self.request.uri || {}
  var method = self.request.method || ''
  var headers = caseless(self.request.headers)
  var body = self.request.body || ''
  var qsLib = self.request.qsLib || qs

  var form
  var query
  var contentType = headers.get('content-type') || ''
  var formContentType = 'application/x-www-form-urlencoded'
  var transport = _oauth.transport_method || 'header'

  if (contentType.slice(0, formContentType.length) === formContentType) {
    contentType = formContentType
    form = body
  }
  if (uri.query) {
    query = uri.query
  }
  if (transport === 'body' && (method !== 'POST' || contentType !== formContentType)) {
    self.request.emit('error', new Error('oauth: transport_method of body requires POST ' +
      'and content-type ' + formContentType))
  }

  if (!form && typeof _oauth.body_hash === 'boolean') {
    _oauth.body_hash = self.buildBodyHash(_oauth, self.request.body.toString())
  }

  var oa = self.buildParams(_oauth, uri, method, query, form, qsLib)

  switch (transport) {
    case 'header':
      self.request.setHeader('Authorization', 'OAuth ' + self.concatParams(oa, ',', '"'))
      break

    case 'query':
      var href = self.request.uri.href += (query ? '&' : '?') + self.concatParams(oa, '&')
      self.request.uri = url.parse(href)
      self.request.path = self.request.uri.path
      break

    case 'body':
      self.request.body = (form ? form + '&' : '') + self.concatParams(oa, '&')
      break

    default:
      self.request.emit('error', new Error('oauth: transport_method invalid'))
  }
}

exports.OAuth = OAuth


/***/ }),
/* 485 */
/***/ (function(module, exports, __webpack_require__) {

var crypto = __webpack_require__(57)

function sha (key, body, algorithm) {
  return crypto.createHmac(algorithm, key).update(body).digest('base64')
}

function rsa (key, body) {
  return crypto.createSign('RSA-SHA1').update(body).sign(key, 'base64')
}

function rfc3986 (str) {
  return encodeURIComponent(str)
    .replace(/!/g,'%21')
    .replace(/\*/g,'%2A')
    .replace(/\(/g,'%28')
    .replace(/\)/g,'%29')
    .replace(/'/g,'%27')
}

// Maps object to bi-dimensional array
// Converts { foo: 'A', bar: [ 'b', 'B' ]} to
// [ ['foo', 'A'], ['bar', 'b'], ['bar', 'B'] ]
function map (obj) {
  var key, val, arr = []
  for (key in obj) {
    val = obj[key]
    if (Array.isArray(val))
      for (var i = 0; i < val.length; i++)
        arr.push([key, val[i]])
    else if (typeof val === 'object')
      for (var prop in val)
        arr.push([key + '[' + prop + ']', val[prop]])
    else
      arr.push([key, val])
  }
  return arr
}

// Compare function for sort
function compare (a, b) {
  return a > b ? 1 : a < b ? -1 : 0
}

function generateBase (httpMethod, base_uri, params) {
  // adapted from https://dev.twitter.com/docs/auth/oauth and 
  // https://dev.twitter.com/docs/auth/creating-signature

  // Parameter normalization
  // http://tools.ietf.org/html/rfc5849#section-3.4.1.3.2
  var normalized = map(params)
  // 1.  First, the name and value of each parameter are encoded
  .map(function (p) {
    return [ rfc3986(p[0]), rfc3986(p[1] || '') ]
  })
  // 2.  The parameters are sorted by name, using ascending byte value
  //     ordering.  If two or more parameters share the same name, they
  //     are sorted by their value.
  .sort(function (a, b) {
    return compare(a[0], b[0]) || compare(a[1], b[1])
  })
  // 3.  The name of each parameter is concatenated to its corresponding
  //     value using an "=" character (ASCII code 61) as a separator, even
  //     if the value is empty.
  .map(function (p) { return p.join('=') })
   // 4.  The sorted name/value pairs are concatenated together into a
   //     single string by using an "&" character (ASCII code 38) as
   //     separator.
  .join('&')

  var base = [
    rfc3986(httpMethod ? httpMethod.toUpperCase() : 'GET'),
    rfc3986(base_uri),
    rfc3986(normalized)
  ].join('&')

  return base
}

function hmacsign (httpMethod, base_uri, params, consumer_secret, token_secret) {
  var base = generateBase(httpMethod, base_uri, params)
  var key = [
    consumer_secret || '',
    token_secret || ''
  ].map(rfc3986).join('&')

  return sha(key, base, 'sha1')
}

function hmacsign256 (httpMethod, base_uri, params, consumer_secret, token_secret) {
  var base = generateBase(httpMethod, base_uri, params)
  var key = [
    consumer_secret || '',
    token_secret || ''
  ].map(rfc3986).join('&')

  return sha(key, base, 'sha256')
}

function rsasign (httpMethod, base_uri, params, private_key, token_secret) {
  var base = generateBase(httpMethod, base_uri, params)
  var key = private_key || ''

  return rsa(key, base)
}

function plaintext (consumer_secret, token_secret) {
  var key = [
    consumer_secret || '',
    token_secret || ''
  ].map(rfc3986).join('&')

  return key
}

function sign (signMethod, httpMethod, base_uri, params, consumer_secret, token_secret) {
  var method
  var skipArgs = 1

  switch (signMethod) {
    case 'RSA-SHA1':
      method = rsasign
      break
    case 'HMAC-SHA1':
      method = hmacsign
      break
    case 'HMAC-SHA256':
      method = hmacsign256
      break
    case 'PLAINTEXT':
      method = plaintext
      skipArgs = 4
      break
    default:
     throw new Error('Signature method not supported: ' + signMethod)
  }

  return method.apply(null, [].slice.call(arguments, skipArgs))
}

exports.hmacsign = hmacsign
exports.hmacsign256 = hmacsign256
exports.rsasign = rsasign
exports.plaintext = plaintext
exports.sign = sign
exports.rfc3986 = rfc3986
exports.generateBase = generateBase

/***/ }),
/* 486 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var crypto = __webpack_require__(57)

function randomString (size) {
  var bits = (size + 1) * 6
  var buffer = crypto.randomBytes(Math.ceil(bits / 8))
  var string = buffer.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
  return string.slice(0, size)
}

function calculatePayloadHash (payload, algorithm, contentType) {
  var hash = crypto.createHash(algorithm)
  hash.update('hawk.1.payload\n')
  hash.update((contentType ? contentType.split(';')[0].trim().toLowerCase() : '') + '\n')
  hash.update(payload || '')
  hash.update('\n')
  return hash.digest('base64')
}

exports.calculateMac = function (credentials, opts) {
  var normalized = 'hawk.1.header\n' +
    opts.ts + '\n' +
    opts.nonce + '\n' +
    (opts.method || '').toUpperCase() + '\n' +
    opts.resource + '\n' +
    opts.host.toLowerCase() + '\n' +
    opts.port + '\n' +
    (opts.hash || '') + '\n'

  if (opts.ext) {
    normalized = normalized + opts.ext.replace('\\', '\\\\').replace('\n', '\\n')
  }

  normalized = normalized + '\n'

  if (opts.app) {
    normalized = normalized + opts.app + '\n' + (opts.dlg || '') + '\n'
  }

  var hmac = crypto.createHmac(credentials.algorithm, credentials.key).update(normalized)
  var digest = hmac.digest('base64')
  return digest
}

exports.header = function (uri, method, opts) {
  var timestamp = opts.timestamp || Math.floor((Date.now() + (opts.localtimeOffsetMsec || 0)) / 1000)
  var credentials = opts.credentials
  if (!credentials || !credentials.id || !credentials.key || !credentials.algorithm) {
    return ''
  }

  if (['sha1', 'sha256'].indexOf(credentials.algorithm) === -1) {
    return ''
  }

  var artifacts = {
    ts: timestamp,
    nonce: opts.nonce || randomString(6),
    method: method,
    resource: uri.pathname + (uri.search || ''),
    host: uri.hostname,
    port: uri.port || (uri.protocol === 'http:' ? 80 : 443),
    hash: opts.hash,
    ext: opts.ext,
    app: opts.app,
    dlg: opts.dlg
  }

  if (!artifacts.hash && (opts.payload || opts.payload === '')) {
    artifacts.hash = calculatePayloadHash(opts.payload, credentials.algorithm, opts.contentType)
  }

  var mac = exports.calculateMac(credentials, artifacts)

  var hasExt = artifacts.ext !== null && artifacts.ext !== undefined && artifacts.ext !== ''
  var header = 'Hawk id="' + credentials.id +
    '", ts="' + artifacts.ts +
    '", nonce="' + artifacts.nonce +
    (artifacts.hash ? '", hash="' + artifacts.hash : '') +
    (hasExt ? '", ext="' + artifacts.ext.replace(/\\/g, '\\\\').replace(/"/g, '\\"') : '') +
    '", mac="' + mac + '"'

  if (artifacts.app) {
    header = header + ', app="' + artifacts.app + (artifacts.dlg ? '", dlg="' + artifacts.dlg : '') + '"'
  }

  return header
}


/***/ }),
/* 487 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var uuid = __webpack_require__(481)
var CombinedStream = __webpack_require__(389)
var isstream = __webpack_require__(402)
var Buffer = __webpack_require__(323).Buffer

function Multipart (request) {
  this.request = request
  this.boundary = uuid()
  this.chunked = false
  this.body = null
}

Multipart.prototype.isChunked = function (options) {
  var self = this
  var chunked = false
  var parts = options.data || options

  if (!parts.forEach) {
    self.request.emit('error', new Error('Argument error, options.multipart.'))
  }

  if (options.chunked !== undefined) {
    chunked = options.chunked
  }

  if (self.request.getHeader('transfer-encoding') === 'chunked') {
    chunked = true
  }

  if (!chunked) {
    parts.forEach(function (part) {
      if (typeof part.body === 'undefined') {
        self.request.emit('error', new Error('Body attribute missing in multipart.'))
      }
      if (isstream(part.body)) {
        chunked = true
      }
    })
  }

  return chunked
}

Multipart.prototype.setHeaders = function (chunked) {
  var self = this

  if (chunked && !self.request.hasHeader('transfer-encoding')) {
    self.request.setHeader('transfer-encoding', 'chunked')
  }

  var header = self.request.getHeader('content-type')

  if (!header || header.indexOf('multipart') === -1) {
    self.request.setHeader('content-type', 'multipart/related; boundary=' + self.boundary)
  } else {
    if (header.indexOf('boundary') !== -1) {
      self.boundary = header.replace(/.*boundary=([^\s;]+).*/, '$1')
    } else {
      self.request.setHeader('content-type', header + '; boundary=' + self.boundary)
    }
  }
}

Multipart.prototype.build = function (parts, chunked) {
  var self = this
  var body = chunked ? new CombinedStream() : []

  function add (part) {
    if (typeof part === 'number') {
      part = part.toString()
    }
    return chunked ? body.append(part) : body.push(Buffer.from(part))
  }

  if (self.request.preambleCRLF) {
    add('\r\n')
  }

  parts.forEach(function (part) {
    var preamble = '--' + self.boundary + '\r\n'
    Object.keys(part).forEach(function (key) {
      if (key === 'body') { return }
      preamble += key + ': ' + part[key] + '\r\n'
    })
    preamble += '\r\n'
    add(preamble)
    add(part.body)
    add('\r\n')
  })
  add('--' + self.boundary + '--')

  if (self.request.postambleCRLF) {
    add('\r\n')
  }

  return body
}

Multipart.prototype.onRequest = function (options) {
  var self = this

  var chunked = self.isChunked(options)
  var parts = options.data || options

  self.setHeaders(chunked)
  self.chunked = chunked
  self.body = self.build(parts, chunked)
}

exports.Multipart = Multipart


/***/ }),
/* 488 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var url = __webpack_require__(274)
var isUrl = /^https?:/

function Redirect (request) {
  this.request = request
  this.followRedirect = true
  this.followRedirects = true
  this.followAllRedirects = false
  this.followOriginalHttpMethod = false
  this.allowRedirect = function () { return true }
  this.maxRedirects = 10
  this.redirects = []
  this.redirectsFollowed = 0
  this.removeRefererHeader = false
}

Redirect.prototype.onRequest = function (options) {
  var self = this

  if (options.maxRedirects !== undefined) {
    self.maxRedirects = options.maxRedirects
  }
  if (typeof options.followRedirect === 'function') {
    self.allowRedirect = options.followRedirect
  }
  if (options.followRedirect !== undefined) {
    self.followRedirects = !!options.followRedirect
  }
  if (options.followAllRedirects !== undefined) {
    self.followAllRedirects = options.followAllRedirects
  }
  if (self.followRedirects || self.followAllRedirects) {
    self.redirects = self.redirects || []
  }
  if (options.removeRefererHeader !== undefined) {
    self.removeRefererHeader = options.removeRefererHeader
  }
  if (options.followOriginalHttpMethod !== undefined) {
    self.followOriginalHttpMethod = options.followOriginalHttpMethod
  }
}

Redirect.prototype.redirectTo = function (response) {
  var self = this
  var request = self.request

  var redirectTo = null
  if (response.statusCode >= 300 && response.statusCode < 400 && response.caseless.has('location')) {
    var location = response.caseless.get('location')
    request.debug('redirect', location)

    if (self.followAllRedirects) {
      redirectTo = location
    } else if (self.followRedirects) {
      switch (request.method) {
        case 'PATCH':
        case 'PUT':
        case 'POST':
        case 'DELETE':
          // Do not follow redirects
          break
        default:
          redirectTo = location
          break
      }
    }
  } else if (response.statusCode === 401) {
    var authHeader = request._auth.onResponse(response)
    if (authHeader) {
      request.setHeader('authorization', authHeader)
      redirectTo = request.uri
    }
  }
  return redirectTo
}

Redirect.prototype.onResponse = function (response) {
  var self = this
  var request = self.request

  var redirectTo = self.redirectTo(response)
  if (!redirectTo || !self.allowRedirect.call(request, response)) {
    return false
  }

  request.debug('redirect to', redirectTo)

  // ignore any potential response body.  it cannot possibly be useful
  // to us at this point.
  // response.resume should be defined, but check anyway before calling. Workaround for browserify.
  if (response.resume) {
    response.resume()
  }

  if (self.redirectsFollowed >= self.maxRedirects) {
    request.emit('error', new Error('Exceeded maxRedirects. Probably stuck in a redirect loop ' + request.uri.href))
    return false
  }
  self.redirectsFollowed += 1

  if (!isUrl.test(redirectTo)) {
    redirectTo = url.resolve(request.uri.href, redirectTo)
  }

  var uriPrev = request.uri
  request.uri = url.parse(redirectTo)

  // handle the case where we change protocol from https to http or vice versa
  if (request.uri.protocol !== uriPrev.protocol) {
    delete request.agent
  }

  self.redirects.push({ statusCode: response.statusCode, redirectUri: redirectTo })

  if (self.followAllRedirects && request.method !== 'HEAD' &&
    response.statusCode !== 401 && response.statusCode !== 307) {
    request.method = self.followOriginalHttpMethod ? request.method : 'GET'
  }
  // request.method = 'GET' // Force all redirects to use GET || commented out fixes #215
  delete request.src
  delete request.req
  delete request._started
  if (response.statusCode !== 401 && response.statusCode !== 307) {
    // Remove parameters from the previous response, unless this is the second request
    // for a server that requires digest authentication.
    delete request.body
    delete request._form
    if (request.headers) {
      request.removeHeader('host')
      request.removeHeader('content-type')
      request.removeHeader('content-length')
      if (request.uri.hostname !== request.originalHost.split(':')[0]) {
        // Remove authorization if changing hostnames (but not if just
        // changing ports or protocols).  This matches the behavior of curl:
        // https://github.com/bagder/curl/blob/6beb0eee/lib/http.c#L710
        request.removeHeader('authorization')
      }
    }
  }

  if (!self.removeRefererHeader) {
    request.setHeader('referer', uriPrev.href)
  }

  request.emit('redirect')

  request.init()

  return true
}

exports.Redirect = Redirect


/***/ }),
/* 489 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var url = __webpack_require__(274)
var tunnel = __webpack_require__(490)

var defaultProxyHeaderWhiteList = [
  'accept',
  'accept-charset',
  'accept-encoding',
  'accept-language',
  'accept-ranges',
  'cache-control',
  'content-encoding',
  'content-language',
  'content-location',
  'content-md5',
  'content-range',
  'content-type',
  'connection',
  'date',
  'expect',
  'max-forwards',
  'pragma',
  'referer',
  'te',
  'user-agent',
  'via'
]

var defaultProxyHeaderExclusiveList = [
  'proxy-authorization'
]

function constructProxyHost (uriObject) {
  var port = uriObject.port
  var protocol = uriObject.protocol
  var proxyHost = uriObject.hostname + ':'

  if (port) {
    proxyHost += port
  } else if (protocol === 'https:') {
    proxyHost += '443'
  } else {
    proxyHost += '80'
  }

  return proxyHost
}

function constructProxyHeaderWhiteList (headers, proxyHeaderWhiteList) {
  var whiteList = proxyHeaderWhiteList
    .reduce(function (set, header) {
      set[header.toLowerCase()] = true
      return set
    }, {})

  return Object.keys(headers)
    .filter(function (header) {
      return whiteList[header.toLowerCase()]
    })
    .reduce(function (set, header) {
      set[header] = headers[header]
      return set
    }, {})
}

function constructTunnelOptions (request, proxyHeaders) {
  var proxy = request.proxy

  var tunnelOptions = {
    proxy: {
      host: proxy.hostname,
      port: +proxy.port,
      proxyAuth: proxy.auth,
      headers: proxyHeaders
    },
    headers: request.headers,
    ca: request.ca,
    cert: request.cert,
    key: request.key,
    passphrase: request.passphrase,
    pfx: request.pfx,
    ciphers: request.ciphers,
    rejectUnauthorized: request.rejectUnauthorized,
    secureOptions: request.secureOptions,
    secureProtocol: request.secureProtocol
  }

  return tunnelOptions
}

function constructTunnelFnName (uri, proxy) {
  var uriProtocol = (uri.protocol === 'https:' ? 'https' : 'http')
  var proxyProtocol = (proxy.protocol === 'https:' ? 'Https' : 'Http')
  return [uriProtocol, proxyProtocol].join('Over')
}

function getTunnelFn (request) {
  var uri = request.uri
  var proxy = request.proxy
  var tunnelFnName = constructTunnelFnName(uri, proxy)
  return tunnel[tunnelFnName]
}

function Tunnel (request) {
  this.request = request
  this.proxyHeaderWhiteList = defaultProxyHeaderWhiteList
  this.proxyHeaderExclusiveList = []
  if (typeof request.tunnel !== 'undefined') {
    this.tunnelOverride = request.tunnel
  }
}

Tunnel.prototype.isEnabled = function () {
  var self = this
  var request = self.request
    // Tunnel HTTPS by default. Allow the user to override this setting.

  // If self.tunnelOverride is set (the user specified a value), use it.
  if (typeof self.tunnelOverride !== 'undefined') {
    return self.tunnelOverride
  }

  // If the destination is HTTPS, tunnel.
  if (request.uri.protocol === 'https:') {
    return true
  }

  // Otherwise, do not use tunnel.
  return false
}

Tunnel.prototype.setup = function (options) {
  var self = this
  var request = self.request

  options = options || {}

  if (typeof request.proxy === 'string') {
    request.proxy = url.parse(request.proxy)
  }

  if (!request.proxy || !request.tunnel) {
    return false
  }

  // Setup Proxy Header Exclusive List and White List
  if (options.proxyHeaderWhiteList) {
    self.proxyHeaderWhiteList = options.proxyHeaderWhiteList
  }
  if (options.proxyHeaderExclusiveList) {
    self.proxyHeaderExclusiveList = options.proxyHeaderExclusiveList
  }

  var proxyHeaderExclusiveList = self.proxyHeaderExclusiveList.concat(defaultProxyHeaderExclusiveList)
  var proxyHeaderWhiteList = self.proxyHeaderWhiteList.concat(proxyHeaderExclusiveList)

  // Setup Proxy Headers and Proxy Headers Host
  // Only send the Proxy White Listed Header names
  var proxyHeaders = constructProxyHeaderWhiteList(request.headers, proxyHeaderWhiteList)
  proxyHeaders.host = constructProxyHost(request.uri)

  proxyHeaderExclusiveList.forEach(request.removeHeader, request)

  // Set Agent from Tunnel Data
  var tunnelFn = getTunnelFn(request)
  var tunnelOptions = constructTunnelOptions(request, proxyHeaders)
  request.agent = tunnelFn(tunnelOptions)

  return true
}

Tunnel.defaultProxyHeaderWhiteList = defaultProxyHeaderWhiteList
Tunnel.defaultProxyHeaderExclusiveList = defaultProxyHeaderExclusiveList
exports.Tunnel = Tunnel


/***/ }),
/* 490 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var net = __webpack_require__(58)
  , tls = __webpack_require__(387)
  , http = __webpack_require__(326)
  , https = __webpack_require__(327)
  , events = __webpack_require__(237)
  , assert = __webpack_require__(114)
  , util = __webpack_require__(113)
  , Buffer = __webpack_require__(323).Buffer
  ;

exports.httpOverHttp = httpOverHttp
exports.httpsOverHttp = httpsOverHttp
exports.httpOverHttps = httpOverHttps
exports.httpsOverHttps = httpsOverHttps


function httpOverHttp(options) {
  var agent = new TunnelingAgent(options)
  agent.request = http.request
  return agent
}

function httpsOverHttp(options) {
  var agent = new TunnelingAgent(options)
  agent.request = http.request
  agent.createSocket = createSecureSocket
  agent.defaultPort = 443
  return agent
}

function httpOverHttps(options) {
  var agent = new TunnelingAgent(options)
  agent.request = https.request
  return agent
}

function httpsOverHttps(options) {
  var agent = new TunnelingAgent(options)
  agent.request = https.request
  agent.createSocket = createSecureSocket
  agent.defaultPort = 443
  return agent
}


function TunnelingAgent(options) {
  var self = this
  self.options = options || {}
  self.proxyOptions = self.options.proxy || {}
  self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets
  self.requests = []
  self.sockets = []

  self.on('free', function onFree(socket, host, port) {
    for (var i = 0, len = self.requests.length; i < len; ++i) {
      var pending = self.requests[i]
      if (pending.host === host && pending.port === port) {
        // Detect the request to connect same origin server,
        // reuse the connection.
        self.requests.splice(i, 1)
        pending.request.onSocket(socket)
        return
      }
    }
    socket.destroy()
    self.removeSocket(socket)
  })
}
util.inherits(TunnelingAgent, events.EventEmitter)

TunnelingAgent.prototype.addRequest = function addRequest(req, options) {
  var self = this

   // Legacy API: addRequest(req, host, port, path)
  if (typeof options === 'string') {
    options = {
      host: options,
      port: arguments[2],
      path: arguments[3]
    };
  }

  if (self.sockets.length >= this.maxSockets) {
    // We are over limit so we'll add it to the queue.
    self.requests.push({host: options.host, port: options.port, request: req})
    return
  }

  // If we are under maxSockets create a new one.
  self.createConnection({host: options.host, port: options.port, request: req})
}

TunnelingAgent.prototype.createConnection = function createConnection(pending) {
  var self = this

  self.createSocket(pending, function(socket) {
    socket.on('free', onFree)
    socket.on('close', onCloseOrRemove)
    socket.on('agentRemove', onCloseOrRemove)
    pending.request.onSocket(socket)

    function onFree() {
      self.emit('free', socket, pending.host, pending.port)
    }

    function onCloseOrRemove(err) {
      self.removeSocket(socket)
      socket.removeListener('free', onFree)
      socket.removeListener('close', onCloseOrRemove)
      socket.removeListener('agentRemove', onCloseOrRemove)
    }
  })
}

TunnelingAgent.prototype.createSocket = function createSocket(options, cb) {
  var self = this
  var placeholder = {}
  self.sockets.push(placeholder)

  var connectOptions = mergeOptions({}, self.proxyOptions,
    { method: 'CONNECT'
    , path: options.host + ':' + options.port
    , agent: false
    }
  )
  if (connectOptions.proxyAuth) {
    connectOptions.headers = connectOptions.headers || {}
    connectOptions.headers['Proxy-Authorization'] = 'Basic ' +
        Buffer.from(connectOptions.proxyAuth).toString('base64')
  }

  debug('making CONNECT request')
  var connectReq = self.request(connectOptions)
  connectReq.useChunkedEncodingByDefault = false // for v0.6
  connectReq.once('response', onResponse) // for v0.6
  connectReq.once('upgrade', onUpgrade)   // for v0.6
  connectReq.once('connect', onConnect)   // for v0.7 or later
  connectReq.once('error', onError)
  connectReq.end()

  function onResponse(res) {
    // Very hacky. This is necessary to avoid http-parser leaks.
    res.upgrade = true
  }

  function onUpgrade(res, socket, head) {
    // Hacky.
    process.nextTick(function() {
      onConnect(res, socket, head)
    })
  }

  function onConnect(res, socket, head) {
    connectReq.removeAllListeners()
    socket.removeAllListeners()

    if (res.statusCode === 200) {
      assert.equal(head.length, 0)
      debug('tunneling connection has established')
      self.sockets[self.sockets.indexOf(placeholder)] = socket
      cb(socket)
    } else {
      debug('tunneling socket could not be established, statusCode=%d', res.statusCode)
      var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode)
      error.code = 'ECONNRESET'
      options.request.emit('error', error)
      self.removeSocket(placeholder)
    }
  }

  function onError(cause) {
    connectReq.removeAllListeners()

    debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack)
    var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message)
    error.code = 'ECONNRESET'
    options.request.emit('error', error)
    self.removeSocket(placeholder)
  }
}

TunnelingAgent.prototype.removeSocket = function removeSocket(socket) {
  var pos = this.sockets.indexOf(socket)
  if (pos === -1) return

  this.sockets.splice(pos, 1)

  var pending = this.requests.shift()
  if (pending) {
    // If we have pending requests and a socket gets closed a new one
    // needs to be created to take over in the pool for the one that closed.
    this.createConnection(pending)
  }
}

function createSecureSocket(options, cb) {
  var self = this
  TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {
    // 0 is dummy port for v0.6
    var secureSocket = tls.connect(0, mergeOptions({}, self.options,
      { servername: options.host
      , socket: socket
      }
    ))
    self.sockets[self.sockets.indexOf(socket)] = secureSocket
    cb(secureSocket)
  })
}


function mergeOptions(target) {
  for (var i = 1, len = arguments.length; i < len; ++i) {
    var overrides = arguments[i]
    if (typeof overrides === 'object') {
      var keys = Object.keys(overrides)
      for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {
        var k = keys[j]
        if (overrides[k] !== undefined) {
          target[k] = overrides[k]
        }
      }
    }
  }
  return target
}


var debug
if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) {
  debug = function() {
    var args = Array.prototype.slice.call(arguments)
    if (typeof args[0] === 'string') {
      args[0] = 'TUNNEL: ' + args[0]
    } else {
      args.unshift('TUNNEL:')
    }
    console.error.apply(console, args)
  }
} else {
  debug = function() {}
}
exports.debug = debug // for test


/***/ }),
/* 491 */
/***/ (function(module, exports) {

// Generated by CoffeeScript 1.12.2
(function() {
  var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;

  if ((typeof performance !== "undefined" && performance !== null) && performance.now) {
    module.exports = function() {
      return performance.now();
    };
  } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) {
    module.exports = function() {
      return (getNanoSeconds() - nodeLoadTime) / 1e6;
    };
    hrtime = process.hrtime;
    getNanoSeconds = function() {
      var hr;
      hr = hrtime();
      return hr[0] * 1e9 + hr[1];
    };
    moduleLoadTime = getNanoSeconds();
    upTime = process.uptime() * 1e9;
    nodeLoadTime = moduleLoadTime - upTime;
  } else if (Date.now) {
    module.exports = function() {
      return Date.now() - loadTime;
    };
    loadTime = Date.now();
  } else {
    module.exports = function() {
      return new Date().getTime() - loadTime;
    };
    loadTime = new Date().getTime();
  }

}).call(this);

//# sourceMappingURL=performance-now.js.map


/***/ }),
/* 492 */
/***/ (function(module, exports, __webpack_require__) {

var v1 = __webpack_require__(493);
var v4 = __webpack_require__(481);

var uuid = v4;
uuid.v1 = v1;
uuid.v4 = v4;

module.exports = uuid;


/***/ }),
/* 493 */
/***/ (function(module, exports, __webpack_require__) {

var rng = __webpack_require__(482);
var bytesToUuid = __webpack_require__(483);

// **`v1()` - Generate time-based UUID**
//
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html

var _nodeId;
var _clockseq;

// Previous uuid creation time
var _lastMSecs = 0;
var _lastNSecs = 0;

// See https://github.com/broofa/node-uuid for API details
function v1(options, buf, offset) {
  var i = buf && offset || 0;
  var b = buf || [];

  options = options || {};
  var node = options.node || _nodeId;
  var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;

  // node and clockseq need to be initialized to random values if they're not
  // specified.  We do this lazily to minimize issues related to insufficient
  // system entropy.  See #189
  if (node == null || clockseq == null) {
    var seedBytes = rng();
    if (node == null) {
      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
      node = _nodeId = [
        seedBytes[0] | 0x01,
        seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]
      ];
    }
    if (clockseq == null) {
      // Per 4.2.2, randomize (14 bit) clockseq
      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
    }
  }

  // UUID timestamps are 100 nano-second units since the Gregorian epoch,
  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so
  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
  var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();

  // Per 4.2.1.2, use count of uuid's generated during the current clock
  // cycle to simulate higher resolution clock
  var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;

  // Time since last uuid creation (in msecs)
  var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;

  // Per 4.2.1.2, Bump clockseq on clock regression
  if (dt < 0 && options.clockseq === undefined) {
    clockseq = clockseq + 1 & 0x3fff;
  }

  // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
  // time interval
  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
    nsecs = 0;
  }

  // Per 4.2.1.2 Throw error if too many uuids are requested
  if (nsecs >= 10000) {
    throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
  }

  _lastMSecs = msecs;
  _lastNSecs = nsecs;
  _clockseq = clockseq;

  // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
  msecs += 12219292800000;

  // `time_low`
  var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
  b[i++] = tl >>> 24 & 0xff;
  b[i++] = tl >>> 16 & 0xff;
  b[i++] = tl >>> 8 & 0xff;
  b[i++] = tl & 0xff;

  // `time_mid`
  var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
  b[i++] = tmh >>> 8 & 0xff;
  b[i++] = tmh & 0xff;

  // `time_high_and_version`
  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
  b[i++] = tmh >>> 16 & 0xff;

  // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
  b[i++] = clockseq >>> 8 | 0x80;

  // `clock_seq_low`
  b[i++] = clockseq & 0xff;

  // `node`
  for (var n = 0; n < 6; ++n) {
    b[i + n] = node[n];
  }

  return buf ? buf : bytesToUuid(b);
}

module.exports = v1;


/***/ }),
/* 494 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// The MIT License (MIT)
//
// Copyright (c) 2016 Yang Xia
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.



var util = __webpack_require__(113);
var JsonParser = __webpack_require__(495);

exports = module.exports;
util.inherits(Parser, JsonParser);

/**
* Parser Instructor
*/
function Parser() {
  this.internalParser = new JsonParser();
  this.originalOnToken = this.internalParser.onToken;
  this.internalParser.onToken = onToken.bind(this);
  return this.internalParser;
}

/**
* Handles the EDM types in the JSON object
*   1. Number will be treated as Edm.Int32 by default
*   2. Literal value 1.0 will be treated as Edm.Double
*   3. Others will be handled according to the literal value
*/
var onToken = function (token, value) {
  var self = this;
  var emitString = false;
  function additionalEmit(additionalKey, additionalValue) {
    var oldKey = self.internalParser.key;
    self.internalParser.key = additionalKey;
    self.internalParser.onValue(additionalValue);
    self.internalParser.key = oldKey;
  }

  if (token === JsonParser.C.STRING ||
  token === JsonParser.C.NUMBER ||
  token === JsonParser.C.TRUE ||
  token === JsonParser.C.FALSE ||
  token === JsonParser.C.NULL) {
    // Parser will emit value in these cases
    if (typeof value === 'number' && 
    this.internalParser.string.indexOf('.') != -1 && 
    parseInt(this.internalParser.string) === value &&
    this.internalParser.mode !== JsonParser.C.ARRAY) {
      var typeKey = this.internalParser.key + '@odata.type';
      if (this.internalParser.value) {
        this.internalParser.value[typeKey] = 'Edm.Double';
      }
      additionalEmit(typeKey, 'Edm.Double');
      
      // Determine whether return raw string to avoid losing precision
      emitString = this.internalParser.string !== value.toString();
    }
  }
  if (emitString) {
    this.originalOnToken.call(this.internalParser, token, this.internalParser.string);
  } else {
    this.originalOnToken.call(this.internalParser, token, value);
  }
};

Parser.C = JsonParser.C;
module.exports = Parser;

/***/ }),
/* 495 */
/***/ (function(module, exports) {

/*global Buffer*/
// Named constants with unique integer values
var C = {};
// Tokens
var LEFT_BRACE    = C.LEFT_BRACE    = 0x1;
var RIGHT_BRACE   = C.RIGHT_BRACE   = 0x2;
var LEFT_BRACKET  = C.LEFT_BRACKET  = 0x3;
var RIGHT_BRACKET = C.RIGHT_BRACKET = 0x4;
var COLON         = C.COLON         = 0x5;
var COMMA         = C.COMMA         = 0x6;
var TRUE          = C.TRUE          = 0x7;
var FALSE         = C.FALSE         = 0x8;
var NULL          = C.NULL          = 0x9;
var STRING        = C.STRING        = 0xa;
var NUMBER        = C.NUMBER        = 0xb;
// Tokenizer States
var START   = C.START   = 0x11;
var STOP    = C.STOP    = 0x12;
var TRUE1   = C.TRUE1   = 0x21;
var TRUE2   = C.TRUE2   = 0x22;
var TRUE3   = C.TRUE3   = 0x23;
var FALSE1  = C.FALSE1  = 0x31;
var FALSE2  = C.FALSE2  = 0x32;
var FALSE3  = C.FALSE3  = 0x33;
var FALSE4  = C.FALSE4  = 0x34;
var NULL1   = C.NULL1   = 0x41;
var NULL2   = C.NULL2   = 0x42;
var NULL3   = C.NULL3   = 0x43;
var NUMBER1 = C.NUMBER1 = 0x51;
var NUMBER3 = C.NUMBER3 = 0x53;
var STRING1 = C.STRING1 = 0x61;
var STRING2 = C.STRING2 = 0x62;
var STRING3 = C.STRING3 = 0x63;
var STRING4 = C.STRING4 = 0x64;
var STRING5 = C.STRING5 = 0x65;
var STRING6 = C.STRING6 = 0x66;
// Parser States
var VALUE   = C.VALUE   = 0x71;
var KEY     = C.KEY     = 0x72;
// Parser Modes
var OBJECT  = C.OBJECT  = 0x81;
var ARRAY   = C.ARRAY   = 0x82;


function Parser() {
  this.tState = START;
  this.value = undefined;

  this.string = undefined; // string data
  this.unicode = undefined; // unicode escapes

  this.key = undefined;
  this.mode = undefined;
  this.stack = [];
  this.state = VALUE;
  this.bytes_remaining = 0; // number of bytes remaining in multi byte utf8 char to read after split boundary
  this.bytes_in_sequence = 0; // bytes in multi byte utf8 char to read
  this.temp_buffs = { "2": new Buffer(2), "3": new Buffer(3), "4": new Buffer(4) }; // for rebuilding chars split before boundary is reached

  // Stream offset
  this.offset = -1;
}

// Slow code to string converter (only used when throwing syntax errors)
Parser.toknam = function (code) {
  var keys = Object.keys(C);
  for (var i = 0, l = keys.length; i < l; i++) {
    var key = keys[i];
    if (C[key] === code) { return key; }
  }
  return code && ("0x" + code.toString(16));
};

var proto = Parser.prototype;
proto.onError = function (err) { throw err; };
proto.charError = function (buffer, i) {
  this.tState = STOP;
  this.onError(new Error("Unexpected " + JSON.stringify(String.fromCharCode(buffer[i])) + " at position " + i + " in state " + Parser.toknam(this.tState)));
};
proto.write = function (buffer) {
  if (typeof buffer === "string") buffer = new Buffer(buffer);
  var n;
  for (var i = 0, l = buffer.length; i < l; i++) {
    if (this.tState === START){
      n = buffer[i];
      this.offset++;
      if(n === 0x7b){ this.onToken(LEFT_BRACE, "{"); // {
      }else if(n === 0x7d){ this.onToken(RIGHT_BRACE, "}"); // }
      }else if(n === 0x5b){ this.onToken(LEFT_BRACKET, "["); // [
      }else if(n === 0x5d){ this.onToken(RIGHT_BRACKET, "]"); // ]
      }else if(n === 0x3a){ this.onToken(COLON, ":");  // :
      }else if(n === 0x2c){ this.onToken(COMMA, ","); // ,
      }else if(n === 0x74){ this.tState = TRUE1;  // t
      }else if(n === 0x66){ this.tState = FALSE1;  // f
      }else if(n === 0x6e){ this.tState = NULL1; // n
      }else if(n === 0x22){ this.string = ""; this.tState = STRING1; // "
      }else if(n === 0x2d){ this.string = "-"; this.tState = NUMBER1; // -
      }else{
        if (n >= 0x30 && n < 0x40) { // 1-9
          this.string = String.fromCharCode(n); this.tState = NUMBER3;
        } else if (n === 0x20 || n === 0x09 || n === 0x0a || n === 0x0d) {
          // whitespace
        } else {
          return this.charError(buffer, i);
        }
      }
    }else if (this.tState === STRING1){ // After open quote
      n = buffer[i]; // get current byte from buffer
      // check for carry over of a multi byte char split between data chunks
      // & fill temp buffer it with start of this data chunk up to the boundary limit set in the last iteration
      if (this.bytes_remaining > 0) {
        for (var j = 0; j < this.bytes_remaining; j++) {
          this.temp_buffs[this.bytes_in_sequence][this.bytes_in_sequence - this.bytes_remaining + j] = buffer[j];
        }
        this.string += this.temp_buffs[this.bytes_in_sequence].toString();
        this.bytes_in_sequence = this.bytes_remaining = 0;
        i = i + j - 1;
      } else if (this.bytes_remaining === 0 && n >= 128) { // else if no remainder bytes carried over, parse multi byte (>=128) chars one at a time
        if (n <= 193 || n > 244) {
          return this.onError(new Error("Invalid UTF-8 character at position " + i + " in state " + Parser.toknam(this.tState)));
        }
        if ((n >= 194) && (n <= 223)) this.bytes_in_sequence = 2;
        if ((n >= 224) && (n <= 239)) this.bytes_in_sequence = 3;
        if ((n >= 240) && (n <= 244)) this.bytes_in_sequence = 4;
        if ((this.bytes_in_sequence + i) > buffer.length) { // if bytes needed to complete char fall outside buffer length, we have a boundary split
          for (var k = 0; k <= (buffer.length - 1 - i); k++) {
            this.temp_buffs[this.bytes_in_sequence][k] = buffer[i + k]; // fill temp buffer of correct size with bytes available in this chunk
          }
          this.bytes_remaining = (i + this.bytes_in_sequence) - buffer.length;
          i = buffer.length - 1;
        } else {
          this.string += buffer.slice(i, (i + this.bytes_in_sequence)).toString();
          i = i + this.bytes_in_sequence - 1;
        }
      } else if (n === 0x22) { this.tState = START; this.onToken(STRING, this.string); this.offset += Buffer.byteLength(this.string, 'utf8') + 1; this.string = undefined; }
      else if (n === 0x5c) { this.tState = STRING2; }
      else if (n >= 0x20) { this.string += String.fromCharCode(n); }
      else {
          return this.charError(buffer, i);
      }
    }else if (this.tState === STRING2){ // After backslash
      n = buffer[i];
      if(n === 0x22){ this.string += "\""; this.tState = STRING1;
      }else if(n === 0x5c){ this.string += "\\"; this.tState = STRING1; 
      }else if(n === 0x2f){ this.string += "\/"; this.tState = STRING1; 
      }else if(n === 0x62){ this.string += "\b"; this.tState = STRING1; 
      }else if(n === 0x66){ this.string += "\f"; this.tState = STRING1; 
      }else if(n === 0x6e){ this.string += "\n"; this.tState = STRING1; 
      }else if(n === 0x72){ this.string += "\r"; this.tState = STRING1; 
      }else if(n === 0x74){ this.string += "\t"; this.tState = STRING1; 
      }else if(n === 0x75){ this.unicode = ""; this.tState = STRING3;
      }else{ 
        return this.charError(buffer, i); 
      }
    }else if (this.tState === STRING3 || this.tState === STRING4 || this.tState === STRING5 || this.tState === STRING6){ // unicode hex codes
      n = buffer[i];
      // 0-9 A-F a-f
      if ((n >= 0x30 && n < 0x40) || (n > 0x40 && n <= 0x46) || (n > 0x60 && n <= 0x66)) {
        this.unicode += String.fromCharCode(n);
        if (this.tState++ === STRING6) {
          this.string += String.fromCharCode(parseInt(this.unicode, 16));
          this.unicode = undefined;
          this.tState = STRING1; 
        }
      } else {
        return this.charError(buffer, i);
      }
    } else if (this.tState === NUMBER1 || this.tState === NUMBER3) {
        n = buffer[i];

        switch (n) {
          case 0x30: // 0
          case 0x31: // 1
          case 0x32: // 2
          case 0x33: // 3
          case 0x34: // 4
          case 0x35: // 5
          case 0x36: // 6
          case 0x37: // 7
          case 0x38: // 8
          case 0x39: // 9
          case 0x2e: // .
          case 0x65: // e
          case 0x45: // E
          case 0x2b: // +
          case 0x2d: // -
            this.string += String.fromCharCode(n);
            this.tState = NUMBER3;
            break;
          default:
            this.tState = START;
            var result = Number(this.string);

            if (isNaN(result)){
              return this.charError(buffer, i);
            }

            if ((this.string.match(/[0-9]+/) == this.string) && (result.toString() != this.string)) {
              // Long string of digits which is an ID string and not valid and/or safe JavaScript integer Number
              this.onToken(STRING, this.string);
            } else {
              this.onToken(NUMBER, result);
            }

            this.offset += this.string.length - 1;
            this.string = undefined;
            i--;
            break;
        }
    }else if (this.tState === TRUE1){ // r
      if (buffer[i] === 0x72) { this.tState = TRUE2; }
      else { return this.charError(buffer, i); }
    }else if (this.tState === TRUE2){ // u
      if (buffer[i] === 0x75) { this.tState = TRUE3; }
      else { return this.charError(buffer, i); }
    }else if (this.tState === TRUE3){ // e
      if (buffer[i] === 0x65) { this.tState = START; this.onToken(TRUE, true); this.offset+= 3; }
      else { return this.charError(buffer, i); }
    }else if (this.tState === FALSE1){ // a
      if (buffer[i] === 0x61) { this.tState = FALSE2; }
      else { return this.charError(buffer, i); }
    }else if (this.tState === FALSE2){ // l
      if (buffer[i] === 0x6c) { this.tState = FALSE3; }
      else { return this.charError(buffer, i); }
    }else if (this.tState === FALSE3){ // s
      if (buffer[i] === 0x73) { this.tState = FALSE4; }
      else { return this.charError(buffer, i); }
    }else if (this.tState === FALSE4){ // e
      if (buffer[i] === 0x65) { this.tState = START; this.onToken(FALSE, false); this.offset+= 4; }
      else { return this.charError(buffer, i); }
    }else if (this.tState === NULL1){ // u
      if (buffer[i] === 0x75) { this.tState = NULL2; }
      else { return this.charError(buffer, i); }
    }else if (this.tState === NULL2){ // l
      if (buffer[i] === 0x6c) { this.tState = NULL3; }
      else { return this.charError(buffer, i); }
    }else if (this.tState === NULL3){ // l
      if (buffer[i] === 0x6c) { this.tState = START; this.onToken(NULL, null); this.offset += 3; }
      else { return this.charError(buffer, i); }
    }
  }
};
proto.onToken = function (token, value) {
  // Override this to get events
};

proto.parseError = function (token, value) {
  this.tState = STOP;
  this.onError(new Error("Unexpected " + Parser.toknam(token) + (value ? ("(" + JSON.stringify(value) + ")") : "") + " in state " + Parser.toknam(this.state)));
};
proto.push = function () {
  this.stack.push({value: this.value, key: this.key, mode: this.mode});
};
proto.pop = function () {
  var value = this.value;
  var parent = this.stack.pop();
  this.value = parent.value;
  this.key = parent.key;
  this.mode = parent.mode;
  this.emit(value);
  if (!this.mode) { this.state = VALUE; }
};
proto.emit = function (value) {
  if (this.mode) { this.state = COMMA; }
  this.onValue(value);
};
proto.onValue = function (value) {
  // Override me
};  
proto.onToken = function (token, value) {
  if(this.state === VALUE){
    if(token === STRING || token === NUMBER || token === TRUE || token === FALSE || token === NULL){
      if (this.value) {
        this.value[this.key] = value;
      }
      this.emit(value);  
    }else if(token === LEFT_BRACE){
      this.push();
      if (this.value) {
        this.value = this.value[this.key] = {};
      } else {
        this.value = {};
      }
      this.key = undefined;
      this.state = KEY;
      this.mode = OBJECT;
    }else if(token === LEFT_BRACKET){
      this.push();
      if (this.value) {
        this.value = this.value[this.key] = [];
      } else {
        this.value = [];
      }
      this.key = 0;
      this.mode = ARRAY;
      this.state = VALUE;
    }else if(token === RIGHT_BRACE){
      if (this.mode === OBJECT) {
        this.pop();
      } else {
        return this.parseError(token, value);
      }
    }else if(token === RIGHT_BRACKET){
      if (this.mode === ARRAY) {
        this.pop();
      } else {
        return this.parseError(token, value);
      }
    }else{
      return this.parseError(token, value);
    }
  }else if(this.state === KEY){
    if (token === STRING) {
      this.key = value;
      this.state = COLON;
    } else if (token === RIGHT_BRACE) {
      this.pop();
    } else {
      return this.parseError(token, value);
    }
  }else if(this.state === COLON){
    if (token === COLON) { this.state = VALUE; }
    else { return this.parseError(token, value); }
  }else if(this.state === COMMA){
    if (token === COMMA) { 
      if (this.mode === ARRAY) { this.key++; this.state = VALUE; }
      else if (this.mode === OBJECT) { this.state = KEY; }

    } else if (token === RIGHT_BRACKET && this.mode === ARRAY || token === RIGHT_BRACE && this.mode === OBJECT) {
      this.pop();
    } else {
      return this.parseError(token, value);
    }
  }else{
    return this.parseError(token, value);
  }
};

Parser.C = C;

module.exports = Parser;


/***/ }),
/* 496 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var _ = __webpack_require__(271);
var util = __webpack_require__(113);

var constants = __webpack_require__(275);
var blobConstants = constants.BlobConstants;
var BlobUtilities = __webpack_require__(497);
var FileUtilities = __webpack_require__(498);
var azureutil = __webpack_require__(273);
var SR = __webpack_require__(278);
var check = __webpack_require__(499);
var errors = __webpack_require__(306);
var ArgumentError = errors.ArgumentError;
var ArgumentNullError = errors.ArgumentNullError;

exports = module.exports;

function initCallback(callbackParam, resultsCb) {
  var fail;
  if (callbackParam) {
    fail = function (err) {
      callbackParam(err);
      return false;
    };
  } else {
    fail = function (err) {
      throw err;
    };
    callbackParam = function () {};
  }

  resultsCb(fail, callbackParam);
}

/**
* Checks if the given value is a valid enumeration or not.
*
* @param {object} value     The value to validate.
* @param {object} list      The enumeration values.
* @return {boolean}
*/
exports.isValidEnumValue = function (value, list, callback) {
  var fail;
  
  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });

  if (!list.some(function (current) {
    return current.toLowerCase() === value.toLowerCase();
  })) {
    return fail(new RangeError(util.format('Invalid value: %s. Options are: %s.', value, list)));
  }

  callback();
  return true;
};

/**
* Creates a anonymous function that check if the given uri is valid or not.
*
* @param {string} uri     The uri to validate.
* @return {boolean}
*/
exports.isValidUri = function (uri) {
  if (!check.isURL(uri, { 'require_tld': false })){
    throw new URIError('The provided URI "' + uri + '" is invalid.');
  }
  return true;
};

/**
* Checks if the given host is valid or not.
*
* @param {string|object} host     The host to validate.
* @return {boolean}
*/
exports.isValidHost= function (host) {
  if (azureutil.objectIsNull(host)) {
    throw new ArgumentNullError('host', SR.STORAGE_HOST_LOCATION_REQUIRED);
  } else {
    var storageHost = {};
    storageHost.primaryHost = _.isString(host) ? host : host.primaryHost;
    if (storageHost.primaryHost && !check.isURL(storageHost.primaryHost, { 'require_tld': false })){
      throw new URIError('The provided URI "' + storageHost.primaryHost + '" is invalid.');
    }

    storageHost.secondaryHost = _.isString(host) ? undefined : host.secondaryHost;
    if (storageHost.secondaryHost && !check.isURL(storageHost.secondaryHost, { 'require_tld': false })){
      throw new URIError('The provided URI "' + storageHost.secondaryHost + '" is invalid.');
    }

    if (!storageHost.primaryHost && !storageHost.secondaryHost) {
      throw new ArgumentNullError('host', SR.STORAGE_HOST_LOCATION_REQUIRED);
    }
  } 

  return true;
};

/**
* Checks if the given value is a valid UUID or not.
*
* @param {string|object} uuid     The uuid to validate.
* @return {boolean}
*/
exports.isValidUuid = function(uuid, callback) {
  var validUuidRegex = /^[a-zA-Z0-9]{8}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{12}$/;

  var fail;

  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });

  if (!validUuidRegex.test(uuid)) {
    return fail(new SyntaxError('The value is not a valid UUID format.'));
  }
  
  callback();
  return true;
};

/**
* Creates a anonymous function that check if a given key is base 64 encoded.
*
* @param {string} key The key to validate.
* @return {function}
*/
exports.isBase64Encoded = function (key) {
  var isValidBase64String = key.match(/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/);

  if (isValidBase64String) {
    return true;
  } else {
    throw new SyntaxError('The provided account key ' + key + ' is not a valid base64 string.');
  }
};

/**
* Validates a function.
*
* @param {object} function The function to validate.
* @return {function}
*/
exports.isValidFunction = function (functionObject, functionName) {
  if (!functionObject) {
    throw new ArgumentNullError('functionObject', functionName + ' must be specified.');
  }
  if(!_.isFunction(functionObject)){
    throw new TypeError(functionName + ' specified should be a function.');
  }
  return true;
};

var getNameError = function(name, typeName) {
  // checks if name is null, undefined or empty
  if (azureutil.stringIsEmpty(name)) {
    return new ArgumentNullError('name', util.format('%s name must be a non empty string.', typeName));
  }

  // check if name is between 3 and 63 characters
  if (name.length < 3 || name.length > 63) {
    return new ArgumentError('name', util.format('%s name must be between 3 and 63 characters long.', typeName));
  }

  // check if name follows naming rules
  if (name.match(/^([a-z0-9]+(-[a-z0-9]+)*)$/) === null) {
    return new SyntaxError(util.format('%s name format is incorrect.', typeName));
  }

  return null;
};

/**
* Validates a container name.
*
* @param {string} containerName The container name.
*/
exports.containerNameIsValid = function (containerName, callback) {
  var fail;
  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });

  var nameError = getNameError(containerName, 'Container');

  if (!nameError || containerName.match(/^(\$root|\$logs|\$web)$/)) {
    callback();
    return true;
  } else {
    return fail(nameError);
  }
};

/**
* Validates a blob name.
*
* @param {string} containerName The container name.
* @param {string} blobname      The blob name.
*/
exports.blobNameIsValid = function (containerName, blobName, callback) {
  var fail;
  
  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });
  
  if (!blobName) {
    return fail(new ArgumentNullError('blobName', 'Blob name is not specified.'));
  }
  
  if (containerName === '$root' && blobName.indexOf('/') !== -1) {
    return fail(new SyntaxError('Blob name format is incorrect.'));
  }
  
  callback();
  return true;
};

/**
* Validates a blob tier name.
*
* @param {string} blobTier The blob tier name.
*/
exports.blobTierNameIsValid = function (blobTier, callback) {
  var fail;
  
  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });
  
  if (!blobTier) {
    return fail(new ArgumentNullError('blobTier', 'Blob tier is not specified.'));
  }

  if (!_.chain(_.union(
    _.values(BlobUtilities.BlobTier.PremiumPageBlobTier),
    _.values(BlobUtilities.BlobTier.StandardBlobTier)
  ))
    .map(function (val) { return val.toString().toUpperCase(); })
    .contains(blobTier.toString().toUpperCase())
    .value()) {
    return fail(new SyntaxError('Blob tier is incorrect. Refer to BlobUtilities.BlobTier for possible values.'));
  }

  callback();
  return true;
};

/**
* Validates a share name.
*
* @param {string} shareName The share name.
*/
exports.shareNameIsValid = function (shareName, callback) {
  var fail;
  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });

  var nameError = getNameError(shareName, 'Share');

  if (!nameError) {
    callback();
    return true;
  } else {
    return fail(nameError);
  }
};

/**
* Validates a queue name.
*
* @param {string} queueName The queue name.
*/
exports.queueNameIsValid = function (queueName, callback) {
  var fail;

  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });

  var nameError = getNameError(queueName, 'Queue');

  if (!nameError) {
    callback();
    return true;
  } else {
    return fail(nameError);
  }
};

/**
* Validates a table name.
*
* @param {string} table  The table name.
*/
exports.tableNameIsValid = function (table, callback) {
  var fail;

  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });

  if (azureutil.stringIsEmpty(table)) {
    return fail(new ArgumentNullError('table', 'Table name must be a non empty string.'));
  }

  if (table.length < 3 || table.length > 63) {
    return fail(new ArgumentError('table', 'Table name must be between 3 and 63 characters long.'));
  }

  if(table.toLowerCase() === 'tables') {
    return fail(new RangeError('Table name cannot be \'Tables\'.'));
  }

  if (table.match(/^([A-Za-z][A-Za-z0-9]{2,62})$/) !== null || table === '$MetricsCapacityBlob' || table.match(/^(\$Metrics(HourPrimary|MinutePrimary|HourSecondary|MinuteSecondary)?(Transactions)(Blob|Queue|Table|File))$/) !== null)
  {
    callback();
    return true;
  } else {
    return fail(new SyntaxError('Table name format is incorrect.'));
  }
};

/**
* Validates an HTML File object.
*
* @param {File} browserFile  The HTML File object.
*/
exports.browserFileIsValid = function (browserFile, callback) {
  var fail;

  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });

  // IE doesn't support File.constructor.name
  if (!azureutil.isBrowser() ||
    !browserFile ||
    !browserFile.constructor ||
    (!azureutil.isIE() && !browserFile.constructor.name) ||
    (!azureutil.isIE() && browserFile.constructor.name !== 'File' && browserFile.constructor.name !== 'Blob') ||
    !azureutil.objectIsInt(browserFile.size)) {
    return fail(new ArgumentError('type', 'Invalid HTML File object.'));
  } else {
    callback();
    return true;
  }
};

/**
* Validates page ranges.
*
* @param {int} rangeStart             The range starting position.
* @param {int} rangeEnd               The range ending position.
* @param {int} writeBlockSizeInBytes  The block size.
*/
exports.pageRangesAreValid = function (rangeStart, rangeEnd, writeBlockSizeInBytes, callback) {
  var fail;

  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });

  if (rangeStart % 512 !== 0) {
    return fail(new RangeError('Start byte offset must be a multiple of 512.'));
  }

  var size = null;
  if (!azureutil.objectIsNull(rangeEnd)) {
    if ((rangeEnd + 1) % 512 !== 0) {
      return fail(new RangeError('End byte offset must be a multiple of 512 minus 1.'));
    }

    size = (rangeEnd - rangeStart) + 1;
    if (size > writeBlockSizeInBytes) {
      return fail(new RangeError('Page blob size cannot be larger than ' + writeBlockSizeInBytes + ' bytes.'));
    }
  }
  
  callback();
  return true;
};

/**
* Validates a blob type.
*
* @param {string} type  The type name.
*/
exports.blobTypeIsValid = function (type, callback) {
  var getEnumValues = function (obj) {
    var values = [];
    for (var prop in obj) {
      if (obj.hasOwnProperty(prop)) {
        values.push(obj[prop]);
      }
    }
    return values;
  };
  
  return this.isValidEnumValue(type, getEnumValues(blobConstants.BlobTypes), callback);
};

/**
* Validates share ACL type.
*
* @param {string} type  The type name.
*/
exports.shareACLIsValid = function (type, callback) {
  var fail;
  
  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });
  
  if (type != FileUtilities.SharePublicAccessType.OFF) {
    fail(new ArgumentError('type', 'The access type is not supported.'));
  }

  callback();
  return true;
};

/**
* Validates share quota value.
*
* @param {int} type  The quota value.
*/
exports.shareQuotaIsValid = function (quota, callback) {
  var fail;
  
  initCallback(callback, function (f, cb) {
    fail = f;
    callback = cb;
  });
  
  if (quota && quota <= 0) {
    fail(new RangeError('The share quota value, in GB, must be greater than 0.'));
  }
  
  callback();
  return true;
};

// common functions for validating arguments

function throwMissingArgument(name, func) {
  throw new ArgumentNullError(name, 'Required argument ' + name + ' for function ' + func + ' is not defined');
}

function ArgumentValidator(functionName) {
  this.func = functionName;
}

_.extend(ArgumentValidator.prototype, {
  string: function (val, name) {
    this.exists(val, name);
    if (typeof val !== 'string') {
      throw new TypeError('Parameter ' + name + ' for function ' + this.func + ' should be a non-empty string');
    }
  },

  stringAllowEmpty: function (val, name) {
    if (typeof val !== 'string') {
      throw new TypeError('Parameter ' + name + ' for function ' + this.func + ' should be a string');
    }
  },

  object: function (val, name) {
    this.exists(val, name);
    if (typeof val !== 'object') {
      throw new TypeError('Parameter ' + name + ' for function ' + this.func + ' should be an object');
    }
  },

  exists: function (val, name) {
    if (!val) {
      throwMissingArgument(name, this.func);
    }
  },

  function: function (val, name) {
    this.exists(val, name);
    if (typeof val !== 'function') {
      throw new TypeError('Parameter ' + name + ' for function ' + this.func + ' should be a function');
    }
  },

  value: function (val, name) {
    if (!val && val !== 0) {
      throwMissingArgument(name, this.func);
    }
  },

  nonEmptyArray: function (val, name) {
    if (!val || val.length === 0) {
      throw new TypeError('Required array argument ' + name + ' for function ' + this.func + ' is either not defined or empty');
    }
  },

  callback: function (val) {
    this.exists(val, 'callback');
    this.function(val, 'callback');
  },

  test: function (predicate, message) {
    if (!predicate()) {
      throw new Error(message + ' in function ' + this.func);
    }
  },

  tableNameIsValid: exports.tableNameIsValid,
  browserFileIsValid: exports.browserFileIsValid,
  containerNameIsValid: exports.containerNameIsValid,
  shareNameIsValid: exports.shareNameIsValid,
  blobNameIsValid: exports.blobNameIsValid,
  blobTierNameIsValid: exports.blobTierNameIsValid,
  pageRangesAreValid: exports.pageRangesAreValid,
  queueNameIsValid: exports.queueNameIsValid,
  blobTypeIsValid: exports.blobTypeIsValid,
  shareACLIsValid: exports.shareACLIsValid,
  shareQuotaIsValid: exports.shareQuotaIsValid,
  isValidEnumValue: exports.isValidEnumValue
});

function validateArgs(functionName, validationRules) {
  var validator = new ArgumentValidator(functionName);
  validationRules(validator);
}

exports.ArgumentValidator = ArgumentValidator;
exports.validateArgs = validateArgs;

/***/ }),
/* 497 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Expose 'BlobUtilities'.
exports = module.exports;

/**
* Defines constants, enums, and utility functions for use with the Blob service.
* @namespace BlobUtilities
*/
var BlobUtilities = {
  /**
  * Permission types
  *
  * @const
  * @enum {string}
  */
  SharedAccessPermissions: {
    READ: 'r',
    ADD: 'a',
    CREATE: 'c',
    WRITE: 'w',
    DELETE: 'd',
    LIST: 'l'
  },

  /**
  * Blob listing details.
  *
  * @const
  * @enum {string}
  */
  BlobListingDetails: {
    SNAPSHOTS: 'snapshots',
    METADATA: 'metadata',
    UNCOMMITTED_BLOBS: 'uncommittedblobs',
    COPY: 'copy',
    DELETED: 'deleted'
  },

  /**
  * Deletion options for blob snapshots
  *
  * @const
  * @enum {string}
  */
  SnapshotDeleteOptions: {
    SNAPSHOTS_ONLY: 'only',
    BLOB_AND_SNAPSHOTS: 'include'
  },

  /**
  * Type of block list to retrieve
  *
  * @const
  * @enum {string}
  */
  BlockListFilter: {
    ALL: 'all',
    COMMITTED: 'committed',
    UNCOMMITTED: 'uncommitted'
  },

  /**
  * Blobs and container public access types.
  *
  * @const
  * @enum {string}
  */
  BlobContainerPublicAccessType: {
    OFF: null,
    CONTAINER: 'container',
    BLOB: 'blob'
  },

  /**
  * Describes actions that can be performed on a page blob sequence number.
  * @const
  * @enum {string}
  */
  SequenceNumberAction: {
    MAX: 'max',
    UPDATE: 'update',
    INCREMENT: 'increment'
  },

  /**
  * Candidate values for blob tiers.
  *
  * @property {object} PremiumPageBlobTier      Candidate values for premium pageblob tiers.
  * @property {string} PremiumPageBlobTier.P4
  * @property {string} PremiumPageBlobTier.P6
  * @property {string} PremiumPageBlobTier.P10
  * @property {string} PremiumPageBlobTier.P20
  * @property {string} PremiumPageBlobTier.P30
  * @property {string} PremiumPageBlobTier.P40
  * @property {string} PremiumPageBlobTier.P50
  * @property {string} PremiumPageBlobTier.P60
  * @property {object} StandardBlobTier         Candidate values for standard blobs tiers.
  * @property {string} StandardBlobTier.HOT
  * @property {string} StandardBlobTier.COOL
  * @property {string} StandardBlobTier.ARCHIVE
  */
  BlobTier: {
    PremiumPageBlobTier: {
      P4: 'P4',
      P6: 'P6',
      P10: 'P10',
      P20: 'P20',
      P30: 'P30',
      P40: 'P40',
      P50: 'P50',
      P60: 'P60'
    },
    StandardBlobTier: {
      HOT: 'Hot',
      COOL: 'Cool',
      ARCHIVE: 'Archive'
    }
  }
};

module.exports = BlobUtilities;

/***/ }),
/* 498 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Expose 'FileUtilities'.
exports = module.exports;

/**
* Defines constants, enums, and utility functions for use with the File service.
* @namespace FileUtilities
*/
var FileUtilities = {
  /**
  * Permission types
  *
  * @const
  * @enum {string}
  */
  SharedAccessPermissions: {
    READ: 'r',
    CREATE: 'c',
    WRITE: 'w',
    DELETE: 'd',
    LIST: 'l'
  },

  /**
  * Listing details.
  *
  * @const
  * @enum {string}
  */
  ListingDetails: {
    METADATA: 'metadata'
  },

  /**
  * File and share public access types.
  *
  * @const
  * @enum {string}
  */
  SharePublicAccessType: {
    OFF: null,
    SHARE: 'share',
    FILE: 'file'
  },

  /**
  * Deletion options for share snapshots
  *
  * @const
  * @enum {string}
  */
  ShareSnapshotDeleteOptions: {
    SHARE_AND_SNAPSHOTS: 'include'
  },
};

module.exports = FileUtilities;

/***/ }),
/* 499 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _toDate = __webpack_require__(500);

var _toDate2 = _interopRequireDefault(_toDate);

var _toFloat = __webpack_require__(502);

var _toFloat2 = _interopRequireDefault(_toFloat);

var _toInt = __webpack_require__(503);

var _toInt2 = _interopRequireDefault(_toInt);

var _toBoolean = __webpack_require__(504);

var _toBoolean2 = _interopRequireDefault(_toBoolean);

var _equals = __webpack_require__(505);

var _equals2 = _interopRequireDefault(_equals);

var _contains = __webpack_require__(506);

var _contains2 = _interopRequireDefault(_contains);

var _matches = __webpack_require__(508);

var _matches2 = _interopRequireDefault(_matches);

var _isEmail = __webpack_require__(509);

var _isEmail2 = _interopRequireDefault(_isEmail);

var _isURL = __webpack_require__(513);

var _isURL2 = _interopRequireDefault(_isURL);

var _isMACAddress = __webpack_require__(515);

var _isMACAddress2 = _interopRequireDefault(_isMACAddress);

var _isIP = __webpack_require__(514);

var _isIP2 = _interopRequireDefault(_isIP);

var _isFQDN = __webpack_require__(512);

var _isFQDN2 = _interopRequireDefault(_isFQDN);

var _isBoolean = __webpack_require__(516);

var _isBoolean2 = _interopRequireDefault(_isBoolean);

var _isAlpha = __webpack_require__(517);

var _isAlpha2 = _interopRequireDefault(_isAlpha);

var _isAlphanumeric = __webpack_require__(519);

var _isAlphanumeric2 = _interopRequireDefault(_isAlphanumeric);

var _isNumeric = __webpack_require__(520);

var _isNumeric2 = _interopRequireDefault(_isNumeric);

var _isPort = __webpack_require__(521);

var _isPort2 = _interopRequireDefault(_isPort);

var _isLowercase = __webpack_require__(523);

var _isLowercase2 = _interopRequireDefault(_isLowercase);

var _isUppercase = __webpack_require__(524);

var _isUppercase2 = _interopRequireDefault(_isUppercase);

var _isAscii = __webpack_require__(525);

var _isAscii2 = _interopRequireDefault(_isAscii);

var _isFullWidth = __webpack_require__(526);

var _isFullWidth2 = _interopRequireDefault(_isFullWidth);

var _isHalfWidth = __webpack_require__(527);

var _isHalfWidth2 = _interopRequireDefault(_isHalfWidth);

var _isVariableWidth = __webpack_require__(528);

var _isVariableWidth2 = _interopRequireDefault(_isVariableWidth);

var _isMultibyte = __webpack_require__(529);

var _isMultibyte2 = _interopRequireDefault(_isMultibyte);

var _isSurrogatePair = __webpack_require__(530);

var _isSurrogatePair2 = _interopRequireDefault(_isSurrogatePair);

var _isInt = __webpack_require__(522);

var _isInt2 = _interopRequireDefault(_isInt);

var _isFloat = __webpack_require__(531);

var _isFloat2 = _interopRequireDefault(_isFloat);

var _isDecimal = __webpack_require__(532);

var _isDecimal2 = _interopRequireDefault(_isDecimal);

var _isHexadecimal = __webpack_require__(533);

var _isHexadecimal2 = _interopRequireDefault(_isHexadecimal);

var _isDivisibleBy = __webpack_require__(534);

var _isDivisibleBy2 = _interopRequireDefault(_isDivisibleBy);

var _isHexColor = __webpack_require__(535);

var _isHexColor2 = _interopRequireDefault(_isHexColor);

var _isISRC = __webpack_require__(536);

var _isISRC2 = _interopRequireDefault(_isISRC);

var _isMD = __webpack_require__(537);

var _isMD2 = _interopRequireDefault(_isMD);

var _isHash = __webpack_require__(538);

var _isHash2 = _interopRequireDefault(_isHash);

var _isJSON = __webpack_require__(539);

var _isJSON2 = _interopRequireDefault(_isJSON);

var _isEmpty = __webpack_require__(540);

var _isEmpty2 = _interopRequireDefault(_isEmpty);

var _isLength = __webpack_require__(541);

var _isLength2 = _interopRequireDefault(_isLength);

var _isByteLength = __webpack_require__(511);

var _isByteLength2 = _interopRequireDefault(_isByteLength);

var _isUUID = __webpack_require__(542);

var _isUUID2 = _interopRequireDefault(_isUUID);

var _isMongoId = __webpack_require__(543);

var _isMongoId2 = _interopRequireDefault(_isMongoId);

var _isAfter = __webpack_require__(544);

var _isAfter2 = _interopRequireDefault(_isAfter);

var _isBefore = __webpack_require__(545);

var _isBefore2 = _interopRequireDefault(_isBefore);

var _isIn = __webpack_require__(546);

var _isIn2 = _interopRequireDefault(_isIn);

var _isCreditCard = __webpack_require__(547);

var _isCreditCard2 = _interopRequireDefault(_isCreditCard);

var _isISIN = __webpack_require__(548);

var _isISIN2 = _interopRequireDefault(_isISIN);

var _isISBN = __webpack_require__(549);

var _isISBN2 = _interopRequireDefault(_isISBN);

var _isISSN = __webpack_require__(550);

var _isISSN2 = _interopRequireDefault(_isISSN);

var _isMobilePhone = __webpack_require__(551);

var _isMobilePhone2 = _interopRequireDefault(_isMobilePhone);

var _isCurrency = __webpack_require__(552);

var _isCurrency2 = _interopRequireDefault(_isCurrency);

var _isISO = __webpack_require__(553);

var _isISO2 = _interopRequireDefault(_isISO);

var _isISO31661Alpha = __webpack_require__(554);

var _isISO31661Alpha2 = _interopRequireDefault(_isISO31661Alpha);

var _isBase = __webpack_require__(555);

var _isBase2 = _interopRequireDefault(_isBase);

var _isDataURI = __webpack_require__(556);

var _isDataURI2 = _interopRequireDefault(_isDataURI);

var _isMimeType = __webpack_require__(557);

var _isMimeType2 = _interopRequireDefault(_isMimeType);

var _isLatLong = __webpack_require__(558);

var _isLatLong2 = _interopRequireDefault(_isLatLong);

var _isPostalCode = __webpack_require__(559);

var _isPostalCode2 = _interopRequireDefault(_isPostalCode);

var _ltrim = __webpack_require__(560);

var _ltrim2 = _interopRequireDefault(_ltrim);

var _rtrim = __webpack_require__(561);

var _rtrim2 = _interopRequireDefault(_rtrim);

var _trim = __webpack_require__(562);

var _trim2 = _interopRequireDefault(_trim);

var _escape = __webpack_require__(563);

var _escape2 = _interopRequireDefault(_escape);

var _unescape = __webpack_require__(564);

var _unescape2 = _interopRequireDefault(_unescape);

var _stripLow = __webpack_require__(565);

var _stripLow2 = _interopRequireDefault(_stripLow);

var _whitelist = __webpack_require__(567);

var _whitelist2 = _interopRequireDefault(_whitelist);

var _blacklist = __webpack_require__(566);

var _blacklist2 = _interopRequireDefault(_blacklist);

var _isWhitelisted = __webpack_require__(568);

var _isWhitelisted2 = _interopRequireDefault(_isWhitelisted);

var _normalizeEmail = __webpack_require__(569);

var _normalizeEmail2 = _interopRequireDefault(_normalizeEmail);

var _toString = __webpack_require__(507);

var _toString2 = _interopRequireDefault(_toString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var version = '9.4.1';

var validator = {
  version: version,
  toDate: _toDate2.default,
  toFloat: _toFloat2.default,
  toInt: _toInt2.default,
  toBoolean: _toBoolean2.default,
  equals: _equals2.default,
  contains: _contains2.default,
  matches: _matches2.default,
  isEmail: _isEmail2.default,
  isURL: _isURL2.default,
  isMACAddress: _isMACAddress2.default,
  isIP: _isIP2.default,
  isFQDN: _isFQDN2.default,
  isBoolean: _isBoolean2.default,
  isAlpha: _isAlpha2.default,
  isAlphanumeric: _isAlphanumeric2.default,
  isNumeric: _isNumeric2.default,
  isPort: _isPort2.default,
  isLowercase: _isLowercase2.default,
  isUppercase: _isUppercase2.default,
  isAscii: _isAscii2.default,
  isFullWidth: _isFullWidth2.default,
  isHalfWidth: _isHalfWidth2.default,
  isVariableWidth: _isVariableWidth2.default,
  isMultibyte: _isMultibyte2.default,
  isSurrogatePair: _isSurrogatePair2.default,
  isInt: _isInt2.default,
  isFloat: _isFloat2.default,
  isDecimal: _isDecimal2.default,
  isHexadecimal: _isHexadecimal2.default,
  isDivisibleBy: _isDivisibleBy2.default,
  isHexColor: _isHexColor2.default,
  isISRC: _isISRC2.default,
  isMD5: _isMD2.default,
  isHash: _isHash2.default,
  isJSON: _isJSON2.default,
  isEmpty: _isEmpty2.default,
  isLength: _isLength2.default,
  isByteLength: _isByteLength2.default,
  isUUID: _isUUID2.default,
  isMongoId: _isMongoId2.default,
  isAfter: _isAfter2.default,
  isBefore: _isBefore2.default,
  isIn: _isIn2.default,
  isCreditCard: _isCreditCard2.default,
  isISIN: _isISIN2.default,
  isISBN: _isISBN2.default,
  isISSN: _isISSN2.default,
  isMobilePhone: _isMobilePhone2.default,
  isPostalCode: _isPostalCode2.default,
  isCurrency: _isCurrency2.default,
  isISO8601: _isISO2.default,
  isISO31661Alpha2: _isISO31661Alpha2.default,
  isBase64: _isBase2.default,
  isDataURI: _isDataURI2.default,
  isMimeType: _isMimeType2.default,
  isLatLong: _isLatLong2.default,
  ltrim: _ltrim2.default,
  rtrim: _rtrim2.default,
  trim: _trim2.default,
  escape: _escape2.default,
  unescape: _unescape2.default,
  stripLow: _stripLow2.default,
  whitelist: _whitelist2.default,
  blacklist: _blacklist2.default,
  isWhitelisted: _isWhitelisted2.default,
  normalizeEmail: _normalizeEmail2.default,
  toString: _toString2.default
};

exports.default = validator;
module.exports = exports['default'];

/***/ }),
/* 500 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = toDate;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function toDate(date) {
  (0, _assertString2.default)(date);
  date = Date.parse(date);
  return !isNaN(date) ? new Date(date) : null;
}
module.exports = exports['default'];

/***/ }),
/* 501 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = assertString;
function assertString(input) {
  var isString = typeof input === 'string' || input instanceof String;

  if (!isString) {
    throw new TypeError('This library (validator.js) validates strings only');
  }
}
module.exports = exports['default'];

/***/ }),
/* 502 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = toFloat;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function toFloat(str) {
  (0, _assertString2.default)(str);
  return parseFloat(str);
}
module.exports = exports['default'];

/***/ }),
/* 503 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = toInt;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function toInt(str, radix) {
  (0, _assertString2.default)(str);
  return parseInt(str, radix || 10);
}
module.exports = exports['default'];

/***/ }),
/* 504 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = toBoolean;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function toBoolean(str, strict) {
  (0, _assertString2.default)(str);
  if (strict) {
    return str === '1' || str === 'true';
  }
  return str !== '0' && str !== 'false' && str !== '';
}
module.exports = exports['default'];

/***/ }),
/* 505 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = equals;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function equals(str, comparison) {
  (0, _assertString2.default)(str);
  return str === comparison;
}
module.exports = exports['default'];

/***/ }),
/* 506 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = contains;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _toString = __webpack_require__(507);

var _toString2 = _interopRequireDefault(_toString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function contains(str, elem) {
  (0, _assertString2.default)(str);
  return str.indexOf((0, _toString2.default)(elem)) >= 0;
}
module.exports = exports['default'];

/***/ }),
/* 507 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

exports.default = toString;
function toString(input) {
  if ((typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object' && input !== null) {
    if (typeof input.toString === 'function') {
      input = input.toString();
    } else {
      input = '[object Object]';
    }
  } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) {
    input = '';
  }
  return String(input);
}
module.exports = exports['default'];

/***/ }),
/* 508 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = matches;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function matches(str, pattern, modifiers) {
  (0, _assertString2.default)(str);
  if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {
    pattern = new RegExp(pattern, modifiers);
  }
  return pattern.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 509 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isEmail;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _merge = __webpack_require__(510);

var _merge2 = _interopRequireDefault(_merge);

var _isByteLength = __webpack_require__(511);

var _isByteLength2 = _interopRequireDefault(_isByteLength);

var _isFQDN = __webpack_require__(512);

var _isFQDN2 = _interopRequireDefault(_isFQDN);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var default_email_options = {
  allow_display_name: false,
  require_display_name: false,
  allow_utf8_local_part: true,
  require_tld: true
};

/* eslint-disable max-len */
/* eslint-disable no-control-regex */
var displayName = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\.\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\,\.\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF\s]*<(.+)>$/i;
var emailUserPart = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i;
var quotedEmailUser = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i;
var emailUserUtf8Part = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i;
var quotedEmailUserUtf8 = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;
/* eslint-enable max-len */
/* eslint-enable no-control-regex */

function isEmail(str, options) {
  (0, _assertString2.default)(str);
  options = (0, _merge2.default)(options, default_email_options);

  if (options.require_display_name || options.allow_display_name) {
    var display_email = str.match(displayName);
    if (display_email) {
      str = display_email[1];
    } else if (options.require_display_name) {
      return false;
    }
  }

  var parts = str.split('@');
  var domain = parts.pop();
  var user = parts.join('@');

  var lower_domain = domain.toLowerCase();
  if (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com') {
    user = user.replace(/\./g, '').toLowerCase();
  }

  if (!(0, _isByteLength2.default)(user, { max: 64 }) || !(0, _isByteLength2.default)(domain, { max: 254 })) {
    return false;
  }

  if (!(0, _isFQDN2.default)(domain, { require_tld: options.require_tld })) {
    return false;
  }

  if (user[0] === '"') {
    user = user.slice(1, user.length - 1);
    return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);
  }

  var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;

  var user_parts = user.split('.');
  for (var i = 0; i < user_parts.length; i++) {
    if (!pattern.test(user_parts[i])) {
      return false;
    }
  }

  return true;
}
module.exports = exports['default'];

/***/ }),
/* 510 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = merge;
function merge() {
  var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var defaults = arguments[1];

  for (var key in defaults) {
    if (typeof obj[key] === 'undefined') {
      obj[key] = defaults[key];
    }
  }
  return obj;
}
module.exports = exports['default'];

/***/ }),
/* 511 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

exports.default = isByteLength;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/* eslint-disable prefer-rest-params */
function isByteLength(str, options) {
  (0, _assertString2.default)(str);
  var min = void 0;
  var max = void 0;
  if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {
    min = options.min || 0;
    max = options.max;
  } else {
    // backwards compatibility: isByteLength(str, min [, max])
    min = arguments[1];
    max = arguments[2];
  }
  var len = encodeURI(str).split(/%..|./).length - 1;
  return len >= min && (typeof max === 'undefined' || len <= max);
}
module.exports = exports['default'];

/***/ }),
/* 512 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isFQDN;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _merge = __webpack_require__(510);

var _merge2 = _interopRequireDefault(_merge);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var default_fqdn_options = {
  require_tld: true,
  allow_underscores: false,
  allow_trailing_dot: false
};

function isFQDN(str, options) {
  (0, _assertString2.default)(str);
  options = (0, _merge2.default)(options, default_fqdn_options);

  /* Remove the optional trailing dot before checking validity */
  if (options.allow_trailing_dot && str[str.length - 1] === '.') {
    str = str.substring(0, str.length - 1);
  }
  var parts = str.split('.');
  if (options.require_tld) {
    var tld = parts.pop();
    if (!parts.length || !/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
      return false;
    }
    // disallow spaces
    if (/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20]/.test(tld)) {
      return false;
    }
  }
  for (var part, i = 0; i < parts.length; i++) {
    part = parts[i];
    if (options.allow_underscores) {
      part = part.replace(/_/g, '');
    }
    if (!/^[a-z\u00a1-\uffff0-9-]+$/i.test(part)) {
      return false;
    }
    // disallow full-width chars
    if (/[\uff01-\uff5e]/.test(part)) {
      return false;
    }
    if (part[0] === '-' || part[part.length - 1] === '-') {
      return false;
    }
  }
  return true;
}
module.exports = exports['default'];

/***/ }),
/* 513 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isURL;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _isFQDN = __webpack_require__(512);

var _isFQDN2 = _interopRequireDefault(_isFQDN);

var _isIP = __webpack_require__(514);

var _isIP2 = _interopRequireDefault(_isIP);

var _merge = __webpack_require__(510);

var _merge2 = _interopRequireDefault(_merge);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var default_url_options = {
  protocols: ['http', 'https', 'ftp'],
  require_tld: true,
  require_protocol: false,
  require_host: true,
  require_valid_protocol: true,
  allow_underscores: false,
  allow_trailing_dot: false,
  allow_protocol_relative_urls: false
};

var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;

function isRegExp(obj) {
  return Object.prototype.toString.call(obj) === '[object RegExp]';
}

function checkHost(host, matches) {
  for (var i = 0; i < matches.length; i++) {
    var match = matches[i];
    if (host === match || isRegExp(match) && match.test(host)) {
      return true;
    }
  }
  return false;
}

function isURL(url, options) {
  (0, _assertString2.default)(url);
  if (!url || url.length >= 2083 || /[\s<>]/.test(url)) {
    return false;
  }
  if (url.indexOf('mailto:') === 0) {
    return false;
  }
  options = (0, _merge2.default)(options, default_url_options);
  var protocol = void 0,
      auth = void 0,
      host = void 0,
      hostname = void 0,
      port = void 0,
      port_str = void 0,
      split = void 0,
      ipv6 = void 0;

  split = url.split('#');
  url = split.shift();

  split = url.split('?');
  url = split.shift();

  split = url.split('://');
  if (split.length > 1) {
    protocol = split.shift();
    if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
      return false;
    }
  } else if (options.require_protocol) {
    return false;
  } else if (options.allow_protocol_relative_urls && url.substr(0, 2) === '//') {
    split[0] = url.substr(2);
  }
  url = split.join('://');

  if (url === '') {
    return false;
  }

  split = url.split('/');
  url = split.shift();

  if (url === '' && !options.require_host) {
    return true;
  }

  split = url.split('@');
  if (split.length > 1) {
    auth = split.shift();
    if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {
      return false;
    }
  }
  hostname = split.join('@');

  port_str = null;
  ipv6 = null;
  var ipv6_match = hostname.match(wrapped_ipv6);
  if (ipv6_match) {
    host = '';
    ipv6 = ipv6_match[1];
    port_str = ipv6_match[2] || null;
  } else {
    split = hostname.split(':');
    host = split.shift();
    if (split.length) {
      port_str = split.join(':');
    }
  }

  if (port_str !== null) {
    port = parseInt(port_str, 10);
    if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
      return false;
    }
  }

  if (!(0, _isIP2.default)(host) && !(0, _isFQDN2.default)(host, options) && (!ipv6 || !(0, _isIP2.default)(ipv6, 6))) {
    return false;
  }

  host = host || ipv6;

  if (options.host_whitelist && !checkHost(host, options.host_whitelist)) {
    return false;
  }
  if (options.host_blacklist && checkHost(host, options.host_blacklist)) {
    return false;
  }

  return true;
}
module.exports = exports['default'];

/***/ }),
/* 514 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isIP;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var ipv4Maybe = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
var ipv6Block = /^[0-9A-F]{1,4}$/i;

function isIP(str) {
  var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';

  (0, _assertString2.default)(str);
  version = String(version);
  if (!version) {
    return isIP(str, 4) || isIP(str, 6);
  } else if (version === '4') {
    if (!ipv4Maybe.test(str)) {
      return false;
    }
    var parts = str.split('.').sort(function (a, b) {
      return a - b;
    });
    return parts[3] <= 255;
  } else if (version === '6') {
    var blocks = str.split(':');
    var foundOmissionBlock = false; // marker to indicate ::

    // At least some OS accept the last 32 bits of an IPv6 address
    // (i.e. 2 of the blocks) in IPv4 notation, and RFC 3493 says
    // that '::ffff:a.b.c.d' is valid for IPv4-mapped IPv6 addresses,
    // and '::a.b.c.d' is deprecated, but also valid.
    var foundIPv4TransitionBlock = isIP(blocks[blocks.length - 1], 4);
    var expectedNumberOfBlocks = foundIPv4TransitionBlock ? 7 : 8;

    if (blocks.length > expectedNumberOfBlocks) {
      return false;
    }
    // initial or final ::
    if (str === '::') {
      return true;
    } else if (str.substr(0, 2) === '::') {
      blocks.shift();
      blocks.shift();
      foundOmissionBlock = true;
    } else if (str.substr(str.length - 2) === '::') {
      blocks.pop();
      blocks.pop();
      foundOmissionBlock = true;
    }

    for (var i = 0; i < blocks.length; ++i) {
      // test for a :: which can not be at the string start/end
      // since those cases have been handled above
      if (blocks[i] === '' && i > 0 && i < blocks.length - 1) {
        if (foundOmissionBlock) {
          return false; // multiple :: in address
        }
        foundOmissionBlock = true;
      } else if (foundIPv4TransitionBlock && i === blocks.length - 1) {
        // it has been checked before that the last
        // block is a valid IPv4 address
      } else if (!ipv6Block.test(blocks[i])) {
        return false;
      }
    }
    if (foundOmissionBlock) {
      return blocks.length >= 1;
    }
    return blocks.length === expectedNumberOfBlocks;
  }
  return false;
}
module.exports = exports['default'];

/***/ }),
/* 515 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isMACAddress;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var macAddress = /^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/;

function isMACAddress(str) {
  (0, _assertString2.default)(str);
  return macAddress.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 516 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isBoolean;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isBoolean(str) {
  (0, _assertString2.default)(str);
  return ['true', 'false', '1', '0'].indexOf(str) >= 0;
}
module.exports = exports['default'];

/***/ }),
/* 517 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isAlpha;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _alpha = __webpack_require__(518);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isAlpha(str) {
  var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';

  (0, _assertString2.default)(str);
  if (locale in _alpha.alpha) {
    return _alpha.alpha[locale].test(str);
  }
  throw new Error('Invalid locale \'' + locale + '\'');
}
module.exports = exports['default'];

/***/ }),
/* 518 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
var alpha = exports.alpha = {
  'en-US': /^[A-Z]+$/i,
  'bg-BG': /^[А-Я]+$/i,
  'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,
  'da-DK': /^[A-ZÆØÅ]+$/i,
  'de-DE': /^[A-ZÄÖÜß]+$/i,
  'el-GR': /^[Α-ω]+$/i,
  'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,
  'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,
  'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,
  'nb-NO': /^[A-ZÆØÅ]+$/i,
  'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,
  'nn-NO': /^[A-ZÆØÅ]+$/i,
  'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,
  'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,
  'pt-PT': /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i,
  'ru-RU': /^[А-ЯЁ]+$/i,
  'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,
  'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,
  'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,
  'sv-SE': /^[A-ZÅÄÖ]+$/i,
  'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,
  'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,
  ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/
};

var alphanumeric = exports.alphanumeric = {
  'en-US': /^[0-9A-Z]+$/i,
  'bg-BG': /^[0-9А-Я]+$/i,
  'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,
  'da-DK': /^[0-9A-ZÆØÅ]+$/i,
  'de-DE': /^[0-9A-ZÄÖÜß]+$/i,
  'el-GR': /^[0-9Α-ω]+$/i,
  'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,
  'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,
  'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,
  'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,
  'nb-NO': /^[0-9A-ZÆØÅ]+$/i,
  'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,
  'nn-NO': /^[0-9A-ZÆØÅ]+$/i,
  'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,
  'pt-PT': /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i,
  'ru-RU': /^[0-9А-ЯЁ]+$/i,
  'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,
  'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,
  'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,
  'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,
  'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,
  'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,
  ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/
};

var decimal = exports.decimal = {
  'en-US': '.',
  ar: '٫'
};

var englishLocales = exports.englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];

for (var locale, i = 0; i < englishLocales.length; i++) {
  locale = 'en-' + englishLocales[i];
  alpha[locale] = alpha['en-US'];
  alphanumeric[locale] = alphanumeric['en-US'];
  decimal[locale] = decimal['en-US'];
}

// Source: http://www.localeplanet.com/java/
var arabicLocales = exports.arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];

for (var _locale, _i = 0; _i < arabicLocales.length; _i++) {
  _locale = 'ar-' + arabicLocales[_i];
  alpha[_locale] = alpha.ar;
  alphanumeric[_locale] = alphanumeric.ar;
  decimal[_locale] = decimal.ar;
}

// Source: https://en.wikipedia.org/wiki/Decimal_mark
var dotDecimal = exports.dotDecimal = [];
var commaDecimal = exports.commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'es-ES', 'fr-FR', 'it-IT', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-Pl', 'pt-PT', 'ru-RU', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA'];

for (var _i2 = 0; _i2 < dotDecimal.length; _i2++) {
  decimal[dotDecimal[_i2]] = decimal['en-US'];
}

for (var _i3 = 0; _i3 < commaDecimal.length; _i3++) {
  decimal[commaDecimal[_i3]] = ',';
}

alpha['pt-BR'] = alpha['pt-PT'];
alphanumeric['pt-BR'] = alphanumeric['pt-PT'];
decimal['pt-BR'] = decimal['pt-PT'];

/***/ }),
/* 519 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isAlphanumeric;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _alpha = __webpack_require__(518);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isAlphanumeric(str) {
  var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';

  (0, _assertString2.default)(str);
  if (locale in _alpha.alphanumeric) {
    return _alpha.alphanumeric[locale].test(str);
  }
  throw new Error('Invalid locale \'' + locale + '\'');
}
module.exports = exports['default'];

/***/ }),
/* 520 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isNumeric;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var numeric = /^[-+]?[0-9]+$/;

function isNumeric(str) {
  (0, _assertString2.default)(str);
  return numeric.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 521 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isPort;

var _isInt = __webpack_require__(522);

var _isInt2 = _interopRequireDefault(_isInt);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isPort(str) {
  return (0, _isInt2.default)(str, { min: 0, max: 65535 });
}
module.exports = exports['default'];

/***/ }),
/* 522 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isInt;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;
var intLeadingZeroes = /^[-+]?[0-9]+$/;

function isInt(str, options) {
  (0, _assertString2.default)(str);
  options = options || {};

  // Get the regex to use for testing, based on whether
  // leading zeroes are allowed or not.
  var regex = options.hasOwnProperty('allow_leading_zeroes') && !options.allow_leading_zeroes ? int : intLeadingZeroes;

  // Check min/max/lt/gt
  var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min;
  var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max;
  var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt;
  var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt;

  return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;
}
module.exports = exports['default'];

/***/ }),
/* 523 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isLowercase;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isLowercase(str) {
  (0, _assertString2.default)(str);
  return str === str.toLowerCase();
}
module.exports = exports['default'];

/***/ }),
/* 524 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isUppercase;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isUppercase(str) {
  (0, _assertString2.default)(str);
  return str === str.toUpperCase();
}
module.exports = exports['default'];

/***/ }),
/* 525 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isAscii;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/* eslint-disable no-control-regex */
var ascii = /^[\x00-\x7F]+$/;
/* eslint-enable no-control-regex */

function isAscii(str) {
  (0, _assertString2.default)(str);
  return ascii.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 526 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.fullWidth = undefined;
exports.default = isFullWidth;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var fullWidth = exports.fullWidth = /[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;

function isFullWidth(str) {
  (0, _assertString2.default)(str);
  return fullWidth.test(str);
}

/***/ }),
/* 527 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.halfWidth = undefined;
exports.default = isHalfWidth;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var halfWidth = exports.halfWidth = /[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;

function isHalfWidth(str) {
  (0, _assertString2.default)(str);
  return halfWidth.test(str);
}

/***/ }),
/* 528 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isVariableWidth;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _isFullWidth = __webpack_require__(526);

var _isHalfWidth = __webpack_require__(527);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isVariableWidth(str) {
  (0, _assertString2.default)(str);
  return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 529 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isMultibyte;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/* eslint-disable no-control-regex */
var multibyte = /[^\x00-\x7F]/;
/* eslint-enable no-control-regex */

function isMultibyte(str) {
  (0, _assertString2.default)(str);
  return multibyte.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 530 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isSurrogatePair;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var surrogatePair = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;

function isSurrogatePair(str) {
  (0, _assertString2.default)(str);
  return surrogatePair.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 531 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isFloat;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _alpha = __webpack_require__(518);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isFloat(str, options) {
  (0, _assertString2.default)(str);
  options = options || {};
  var float = new RegExp('^(?:[-+])?(?:[0-9]+)?(?:\\' + (options.locale ? _alpha.decimal[options.locale] : '.') + '[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$');
  if (str === '' || str === '.' || str === '-' || str === '+') {
    return false;
  }
  return float.test(str) && (!options.hasOwnProperty('min') || str >= options.min) && (!options.hasOwnProperty('max') || str <= options.max) && (!options.hasOwnProperty('lt') || str < options.lt) && (!options.hasOwnProperty('gt') || str > options.gt);
}
module.exports = exports['default'];

/***/ }),
/* 532 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isDecimal;

var _merge = __webpack_require__(510);

var _merge2 = _interopRequireDefault(_merge);

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _alpha = __webpack_require__(518);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function decimalRegExp(options) {
  var regExp = new RegExp('^[-+]?([0-9]+)?(\\' + _alpha.decimal[options.locale] + '[0-9]{' + options.decimal_digits + '})' + (options.force_decimal ? '' : '?') + '$');
  return regExp;
}

var default_decimal_options = {
  force_decimal: false,
  decimal_digits: '1,',
  locale: 'en-US'
};

var blacklist = ['', '-', '+'];

function isDecimal(str, options) {
  (0, _assertString2.default)(str);
  options = (0, _merge2.default)(options, default_decimal_options);
  if (options.locale in _alpha.decimal) {
    return !blacklist.includes(str.replace(/ /g, '')) && decimalRegExp(options).test(str);
  }
  throw new Error('Invalid locale \'' + options.locale + '\'');
}
module.exports = exports['default'];

/***/ }),
/* 533 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isHexadecimal;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var hexadecimal = /^[0-9A-F]+$/i;

function isHexadecimal(str) {
  (0, _assertString2.default)(str);
  return hexadecimal.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 534 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isDivisibleBy;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _toFloat = __webpack_require__(502);

var _toFloat2 = _interopRequireDefault(_toFloat);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isDivisibleBy(str, num) {
  (0, _assertString2.default)(str);
  return (0, _toFloat2.default)(str) % parseInt(num, 10) === 0;
}
module.exports = exports['default'];

/***/ }),
/* 535 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isHexColor;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{6})$/i;

function isHexColor(str) {
  (0, _assertString2.default)(str);
  return hexcolor.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 536 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isISRC;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// see http://isrc.ifpi.org/en/isrc-standard/code-syntax
var isrc = /^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/;

function isISRC(str) {
  (0, _assertString2.default)(str);
  return isrc.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 537 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isMD5;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var md5 = /^[a-f0-9]{32}$/;

function isMD5(str) {
  (0, _assertString2.default)(str);
  return md5.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 538 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isHash;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var lengths = {
  md5: 32,
  md4: 32,
  sha1: 40,
  sha256: 64,
  sha384: 96,
  sha512: 128,
  ripemd128: 32,
  ripemd160: 40,
  tiger128: 32,
  tiger160: 40,
  tiger192: 48,
  crc32: 8,
  crc32b: 8
};

function isHash(str, algorithm) {
  (0, _assertString2.default)(str);
  var hash = new RegExp('^[a-f0-9]{' + lengths[algorithm] + '}$');
  return hash.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 539 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

exports.default = isJSON;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isJSON(str) {
  (0, _assertString2.default)(str);
  try {
    var obj = JSON.parse(str);
    return !!obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';
  } catch (e) {/* ignore */}
  return false;
}
module.exports = exports['default'];

/***/ }),
/* 540 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isEmpty;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isEmpty(str) {
  (0, _assertString2.default)(str);
  return str.length === 0;
}
module.exports = exports['default'];

/***/ }),
/* 541 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

exports.default = isLength;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/* eslint-disable prefer-rest-params */
function isLength(str, options) {
  (0, _assertString2.default)(str);
  var min = void 0;
  var max = void 0;
  if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {
    min = options.min || 0;
    max = options.max;
  } else {
    // backwards compatibility: isLength(str, min [, max])
    min = arguments[1];
    max = arguments[2];
  }
  var surrogatePairs = str.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g) || [];
  var len = str.length - surrogatePairs.length;
  return len >= min && (typeof max === 'undefined' || len <= max);
}
module.exports = exports['default'];

/***/ }),
/* 542 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isUUID;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var uuid = {
  3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
  4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
  5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
  all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i
};

function isUUID(str) {
  var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'all';

  (0, _assertString2.default)(str);
  var pattern = uuid[version];
  return pattern && pattern.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 543 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isMongoId;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _isHexadecimal = __webpack_require__(533);

var _isHexadecimal2 = _interopRequireDefault(_isHexadecimal);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isMongoId(str) {
  (0, _assertString2.default)(str);
  return (0, _isHexadecimal2.default)(str) && str.length === 24;
}
module.exports = exports['default'];

/***/ }),
/* 544 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isAfter;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _toDate = __webpack_require__(500);

var _toDate2 = _interopRequireDefault(_toDate);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isAfter(str) {
  var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());

  (0, _assertString2.default)(str);
  var comparison = (0, _toDate2.default)(date);
  var original = (0, _toDate2.default)(str);
  return !!(original && comparison && original > comparison);
}
module.exports = exports['default'];

/***/ }),
/* 545 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isBefore;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _toDate = __webpack_require__(500);

var _toDate2 = _interopRequireDefault(_toDate);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isBefore(str) {
  var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());

  (0, _assertString2.default)(str);
  var comparison = (0, _toDate2.default)(date);
  var original = (0, _toDate2.default)(str);
  return !!(original && comparison && original < comparison);
}
module.exports = exports['default'];

/***/ }),
/* 546 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

exports.default = isIn;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _toString = __webpack_require__(507);

var _toString2 = _interopRequireDefault(_toString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isIn(str, options) {
  (0, _assertString2.default)(str);
  var i = void 0;
  if (Object.prototype.toString.call(options) === '[object Array]') {
    var array = [];
    for (i in options) {
      if ({}.hasOwnProperty.call(options, i)) {
        array[i] = (0, _toString2.default)(options[i]);
      }
    }
    return array.indexOf(str) >= 0;
  } else if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {
    return options.hasOwnProperty(str);
  } else if (options && typeof options.indexOf === 'function') {
    return options.indexOf(str) >= 0;
  }
  return false;
}
module.exports = exports['default'];

/***/ }),
/* 547 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isCreditCard;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/* eslint-disable max-len */
var creditCard = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|62[0-9]{14})$/;
/* eslint-enable max-len */

function isCreditCard(str) {
  (0, _assertString2.default)(str);
  var sanitized = str.replace(/[- ]+/g, '');
  if (!creditCard.test(sanitized)) {
    return false;
  }
  var sum = 0;
  var digit = void 0;
  var tmpNum = void 0;
  var shouldDouble = void 0;
  for (var i = sanitized.length - 1; i >= 0; i--) {
    digit = sanitized.substring(i, i + 1);
    tmpNum = parseInt(digit, 10);
    if (shouldDouble) {
      tmpNum *= 2;
      if (tmpNum >= 10) {
        sum += tmpNum % 10 + 1;
      } else {
        sum += tmpNum;
      }
    } else {
      sum += tmpNum;
    }
    shouldDouble = !shouldDouble;
  }
  return !!(sum % 10 === 0 ? sanitized : false);
}
module.exports = exports['default'];

/***/ }),
/* 548 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isISIN;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;

function isISIN(str) {
  (0, _assertString2.default)(str);
  if (!isin.test(str)) {
    return false;
  }

  var checksumStr = str.replace(/[A-Z]/g, function (character) {
    return parseInt(character, 36);
  });

  var sum = 0;
  var digit = void 0;
  var tmpNum = void 0;
  var shouldDouble = true;
  for (var i = checksumStr.length - 2; i >= 0; i--) {
    digit = checksumStr.substring(i, i + 1);
    tmpNum = parseInt(digit, 10);
    if (shouldDouble) {
      tmpNum *= 2;
      if (tmpNum >= 10) {
        sum += tmpNum + 1;
      } else {
        sum += tmpNum;
      }
    } else {
      sum += tmpNum;
    }
    shouldDouble = !shouldDouble;
  }

  return parseInt(str.substr(str.length - 1), 10) === (10000 - sum) % 10;
}
module.exports = exports['default'];

/***/ }),
/* 549 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isISBN;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var isbn10Maybe = /^(?:[0-9]{9}X|[0-9]{10})$/;
var isbn13Maybe = /^(?:[0-9]{13})$/;
var factor = [1, 3];

function isISBN(str) {
  var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';

  (0, _assertString2.default)(str);
  version = String(version);
  if (!version) {
    return isISBN(str, 10) || isISBN(str, 13);
  }
  var sanitized = str.replace(/[\s-]+/g, '');
  var checksum = 0;
  var i = void 0;
  if (version === '10') {
    if (!isbn10Maybe.test(sanitized)) {
      return false;
    }
    for (i = 0; i < 9; i++) {
      checksum += (i + 1) * sanitized.charAt(i);
    }
    if (sanitized.charAt(9) === 'X') {
      checksum += 10 * 10;
    } else {
      checksum += 10 * sanitized.charAt(9);
    }
    if (checksum % 11 === 0) {
      return !!sanitized;
    }
  } else if (version === '13') {
    if (!isbn13Maybe.test(sanitized)) {
      return false;
    }
    for (i = 0; i < 12; i++) {
      checksum += factor[i % 2] * sanitized.charAt(i);
    }
    if (sanitized.charAt(12) - (10 - checksum % 10) % 10 === 0) {
      return !!sanitized;
    }
  }
  return false;
}
module.exports = exports['default'];

/***/ }),
/* 550 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isISSN;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var issn = '^\\d{4}-?\\d{3}[\\dX]$';

function isISSN(str) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

  (0, _assertString2.default)(str);
  var testIssn = issn;
  testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;
  testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');
  if (!testIssn.test(str)) {
    return false;
  }
  var issnDigits = str.replace('-', '');
  var position = 8;
  var checksum = 0;
  var _iteratorNormalCompletion = true;
  var _didIteratorError = false;
  var _iteratorError = undefined;

  try {
    for (var _iterator = issnDigits[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
      var digit = _step.value;

      var digitValue = digit.toUpperCase() === 'X' ? 10 : +digit;
      checksum += digitValue * position;
      --position;
    }
  } catch (err) {
    _didIteratorError = true;
    _iteratorError = err;
  } finally {
    try {
      if (!_iteratorNormalCompletion && _iterator.return) {
        _iterator.return();
      }
    } finally {
      if (_didIteratorError) {
        throw _iteratorError;
      }
    }
  }

  return checksum % 11 === 0;
}
module.exports = exports['default'];

/***/ }),
/* 551 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isMobilePhone;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/* eslint-disable max-len */
var phones = {
  'ar-AE': /^((\+?971)|0)?5[024568]\d{7}$/,
  'ar-DZ': /^(\+?213|0)(5|6|7)\d{8}$/,
  'ar-EG': /^((\+?20)|0)?1[012]\d{8}$/,
  'ar-JO': /^(\+?962|0)?7[789]\d{7}$/,
  'ar-SA': /^(!?(\+?966)|0)?5\d{8}$/,
  'ar-SY': /^(!?(\+?963)|0)?9\d{8}$/,
  'be-BY': /^(\+?375)?(24|25|29|33|44)\d{7}$/,
  'bg-BG': /^(\+?359|0)?8[789]\d{7}$/,
  'cs-CZ': /^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,
  'da-DK': /^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/,
  'de-DE': /^(\+?49[ \.\-])?([\(]{1}[0-9]{1,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/,
  'el-GR': /^(\+?30|0)?(69\d{8})$/,
  'en-AU': /^(\+?61|0)4\d{8}$/,
  'en-GB': /^(\+?44|0)7\d{9}$/,
  'en-HK': /^(\+?852\-?)?[456789]\d{3}\-?\d{4}$/,
  'en-IN': /^(\+?91|0)?[6789]\d{9}$/,
  'en-KE': /^(\+?254|0)?[7]\d{8}$/,
  'en-NG': /^(\+?234|0)?[789]\d{9}$/,
  'en-NZ': /^(\+?64|0)2\d{7,9}$/,
  'en-PK': /^((\+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$|^\d{11}$|^\d{4}-\d{7}$/,
  'en-RW': /^(\+?250|0)?[7]\d{8}$/,
  'en-SG': /^(\+65)?[89]\d{7}$/,
  'en-TZ': /^(\+?255|0)?[67]\d{8}$/,
  'en-UG': /^(\+?256|0)?[7]\d{8}$/,
  'en-US': /^(\+?1)?[2-9]\d{2}[2-9](?!11)\d{6}$/,
  'en-ZA': /^(\+?27|0)\d{9}$/,
  'en-ZM': /^(\+?26)?09[567]\d{7}$/,
  'es-ES': /^(\+?34)?(6\d{1}|7[1234])\d{7}$/,
  'et-EE': /^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/,
  'fa-IR': /^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/,
  'fi-FI': /^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/,
  'fo-FO': /^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,
  'fr-FR': /^(\+?33|0)[67]\d{8}$/,
  'he-IL': /^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}/,
  'hu-HU': /^(\+?36)(20|30|70)\d{7}$/,
  'id-ID': /^(\+?62|0[1-9])[\s|\d]+$/,
  'it-IT': /^(\+?39)?\s?3\d{2} ?\d{6,7}$/,
  'ja-JP': /^(\+?81|0)[789]0[ \-]?[1-9]\d{2}[ \-]?\d{5}$/,
  'kk-KZ': /^(\+?7|8)?7\d{9}$/,
  'kl-GL': /^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/,
  'ko-KR': /^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/,
  'lt-LT': /^(\+370|8)\d{8}$/,
  'ms-MY': /^(\+?6?01){1}(([145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/,
  'nb-NO': /^(\+?47)?[49]\d{7}$/,
  'nl-BE': /^(\+?32|0)4?\d{8}$/,
  'nn-NO': /^(\+?47)?[49]\d{7}$/,
  'pl-PL': /^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/,
  'pt-BR': /^(\+?55|0)\-?[1-9]{2}\-?[2-9]{1}\d{3,4}\-?\d{4}$/,
  'pt-PT': /^(\+?351)?9[1236]\d{7}$/,
  'ro-RO': /^(\+?4?0)\s?7\d{2}(\/|\s|\.|\-)?\d{3}(\s|\.|\-)?\d{3}$/,
  'ru-RU': /^(\+?7|8)?9\d{9}$/,
  'sk-SK': /^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,
  'sr-RS': /^(\+3816|06)[- \d]{5,9}$/,
  'th-TH': /^(\+66|66|0)\d{9}$/,
  'tr-TR': /^(\+?90|0)?5\d{9}$/,
  'uk-UA': /^(\+?38|8)?0\d{9}$/,
  'vi-VN': /^(\+?84|0)?((1(2([0-9])|6([2-9])|88|99))|(9((?!5)[0-9])))([0-9]{7})$/,
  'zh-CN': /^(\+?0?86\-?)?1[3456789]\d{9}$/,
  'zh-TW': /^(\+?886\-?|0)?9\d{8}$/
};
/* eslint-enable max-len */

// aliases
phones['en-CA'] = phones['en-US'];
phones['fr-BE'] = phones['nl-BE'];
phones['zh-HK'] = phones['en-HK'];

function isMobilePhone(str, locale, options) {
  (0, _assertString2.default)(str);
  if (options && options.strictMode && !str.startsWith('+')) {
    return false;
  }
  if (locale in phones) {
    return phones[locale].test(str);
  } else if (locale === 'any') {
    for (var key in phones) {
      if (phones.hasOwnProperty(key)) {
        var phone = phones[key];
        if (phone.test(str)) {
          return true;
        }
      }
    }
    return false;
  }
  throw new Error('Invalid locale \'' + locale + '\'');
}
module.exports = exports['default'];

/***/ }),
/* 552 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isCurrency;

var _merge = __webpack_require__(510);

var _merge2 = _interopRequireDefault(_merge);

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function currencyRegex(options) {
  var decimal_digits = '\\d{' + options.digits_after_decimal[0] + '}';
  options.digits_after_decimal.forEach(function (digit, index) {
    if (index !== 0) decimal_digits = decimal_digits + '|\\d{' + digit + '}';
  });
  var symbol = '(\\' + options.symbol.replace(/\./g, '\\.') + ')' + (options.require_symbol ? '' : '?'),
      negative = '-?',
      whole_dollar_amount_without_sep = '[1-9]\\d*',
      whole_dollar_amount_with_sep = '[1-9]\\d{0,2}(\\' + options.thousands_separator + '\\d{3})*',
      valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep],
      whole_dollar_amount = '(' + valid_whole_dollar_amounts.join('|') + ')?',
      decimal_amount = '(\\' + options.decimal_separator + '(' + decimal_digits + '))' + (options.require_decimal ? '' : '?');
  var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : '');

  // default is negative sign before symbol, but there are two other options (besides parens)
  if (options.allow_negatives && !options.parens_for_negatives) {
    if (options.negative_sign_after_digits) {
      pattern += negative;
    } else if (options.negative_sign_before_digits) {
      pattern = negative + pattern;
    }
  }

  // South African Rand, for example, uses R 123 (space) and R-123 (no space)
  if (options.allow_negative_sign_placeholder) {
    pattern = '( (?!\\-))?' + pattern;
  } else if (options.allow_space_after_symbol) {
    pattern = ' ?' + pattern;
  } else if (options.allow_space_after_digits) {
    pattern += '( (?!$))?';
  }

  if (options.symbol_after_digits) {
    pattern += symbol;
  } else {
    pattern = symbol + pattern;
  }

  if (options.allow_negatives) {
    if (options.parens_for_negatives) {
      pattern = '(\\(' + pattern + '\\)|' + pattern + ')';
    } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {
      pattern = negative + pattern;
    }
  }

  // ensure there's a dollar and/or decimal amount, and that
  // it doesn't start with a space or a negative sign followed by a space
  return new RegExp('^(?!-? )(?=.*\\d)' + pattern + '$');
}

var default_currency_options = {
  symbol: '$',
  require_symbol: false,
  allow_space_after_symbol: false,
  symbol_after_digits: false,
  allow_negatives: true,
  parens_for_negatives: false,
  negative_sign_before_digits: false,
  negative_sign_after_digits: false,
  allow_negative_sign_placeholder: false,
  thousands_separator: ',',
  decimal_separator: '.',
  allow_decimal: true,
  require_decimal: false,
  digits_after_decimal: [2],
  allow_space_after_digits: false
};

function isCurrency(str, options) {
  (0, _assertString2.default)(str);
  options = (0, _merge2.default)(options, default_currency_options);
  return currencyRegex(options).test(str);
}
module.exports = exports['default'];

/***/ }),
/* 553 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isISO8601;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/* eslint-disable max-len */
// from http://goo.gl/0ejHHW
var iso8601 = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;
/* eslint-enable max-len */

function isISO8601(str) {
  (0, _assertString2.default)(str);
  return iso8601.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 554 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isISO31661Alpha2;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
var validISO31661Alpha2CountriesCodes = ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW'];

function isISO31661Alpha2(str) {
  (0, _assertString2.default)(str);
  return validISO31661Alpha2CountriesCodes.includes(str.toUpperCase());
}
module.exports = exports['default'];

/***/ }),
/* 555 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isBase64;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var notBase64 = /[^A-Z0-9+\/=]/i;

function isBase64(str) {
  (0, _assertString2.default)(str);
  var len = str.length;
  if (!len || len % 4 !== 0 || notBase64.test(str)) {
    return false;
  }
  var firstPaddingChar = str.indexOf('=');
  return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';
}
module.exports = exports['default'];

/***/ }),
/* 556 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isDataURI;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var validMediaType = /^[a-z]+\/[a-z0-9\-\+]+$/i;

var validAttribute = /^[a-z\-]+=[a-z0-9\-]+$/i;

var validData = /^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i;

function isDataURI(str) {
  (0, _assertString2.default)(str);
  var data = str.split(',');
  if (data.length < 2) {
    return false;
  }
  var attributes = data.shift().trim().split(';');
  var schemeAndMediaType = attributes.shift();
  if (schemeAndMediaType.substr(0, 5) !== 'data:') {
    return false;
  }
  var mediaType = schemeAndMediaType.substr(5);
  if (mediaType !== '' && !validMediaType.test(mediaType)) {
    return false;
  }
  for (var i = 0; i < attributes.length; i++) {
    if (i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') {
      // ok
    } else if (!validAttribute.test(attributes[i])) {
      return false;
    }
  }
  for (var _i = 0; _i < data.length; _i++) {
    if (!validData.test(data[_i])) {
      return false;
    }
  }
  return true;
}
module.exports = exports['default'];

/***/ }),
/* 557 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isMimeType;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/*
  Checks if the provided string matches to a correct Media type format (MIME type)

  This function only checks is the string format follows the
  etablished rules by the according RFC specifications.
  This function supports 'charset' in textual media types
  (https://tools.ietf.org/html/rfc6657).

  This function does not check against all the media types listed
  by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml)
  because of lightness purposes : it would require to include
  all these MIME types in this librairy, which would weigh it
  significantly. This kind of effort maybe is not worth for the use that
  this function has in this entire librairy.

  More informations in the RFC specifications :
  - https://tools.ietf.org/html/rfc2045
  - https://tools.ietf.org/html/rfc2046
  - https://tools.ietf.org/html/rfc7231#section-3.1.1.1
  - https://tools.ietf.org/html/rfc7231#section-3.1.1.5
*/

// Match simple MIME types
// NB :
//   Subtype length must not exceed 100 characters.
//   This rule does not comply to the RFC specs (what is the max length ?).
var mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+]{1,100}$/i; // eslint-disable-line max-len

// Handle "charset" in "text/*"
var mimeTypeText = /^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i; // eslint-disable-line max-len

// Handle "boundary" in "multipart/*"
var mimeTypeMultipart = /^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i; // eslint-disable-line max-len

function isMimeType(str) {
  (0, _assertString2.default)(str);
  return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);
}
module.exports = exports['default'];

/***/ }),
/* 558 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.default = function (str) {
  (0, _assertString2.default)(str);
  if (!str.includes(',')) return false;
  var pair = str.split(',');
  return lat.test(pair[0]) && long.test(pair[1]);
};

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var lat = /^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/;
var long = /^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/;

module.exports = exports['default'];

/***/ }),
/* 559 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.locales = undefined;

exports.default = function (str, locale) {
  (0, _assertString2.default)(str);
  if (locale in patterns) {
    return patterns[locale].test(str);
  } else if (locale === 'any') {
    for (var key in patterns) {
      if (patterns.hasOwnProperty(key)) {
        var pattern = patterns[key];
        if (pattern.test(str)) {
          return true;
        }
      }
    }
    return false;
  }
  throw new Error('Invalid locale \'' + locale + '\'');
};

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// common patterns
var threeDigit = /^\d{3}$/;
var fourDigit = /^\d{4}$/;
var fiveDigit = /^\d{5}$/;
var sixDigit = /^\d{6}$/;

var patterns = {
  AT: fourDigit,
  AU: fourDigit,
  BE: fourDigit,
  BG: fourDigit,
  CA: /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,
  CH: fourDigit,
  CZ: /^\d{3}\s?\d{2}$/,
  DE: fiveDigit,
  DK: fourDigit,
  DZ: fiveDigit,
  ES: fiveDigit,
  FI: fiveDigit,
  FR: /^\d{2}\s?\d{3}$/,
  GB: /^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,
  GR: /^\d{3}\s?\d{2}$/,
  IL: fiveDigit,
  IN: sixDigit,
  IS: threeDigit,
  IT: fiveDigit,
  JP: /^\d{3}\-\d{4}$/,
  KE: fiveDigit,
  LI: /^(948[5-9]|949[0-7])$/,
  MX: fiveDigit,
  NL: /^\d{4}\s?[a-z]{2}$/i,
  NO: fourDigit,
  PL: /^\d{2}\-\d{3}$/,
  PT: /^\d{4}\-\d{3}?$/,
  RO: sixDigit,
  RU: sixDigit,
  SA: fiveDigit,
  SE: /^\d{3}\s?\d{2}$/,
  TW: /^\d{3}(\d{2})?$/,
  US: /^\d{5}(-\d{4})?$/,
  ZA: fourDigit,
  ZM: fiveDigit
};

var locales = exports.locales = Object.keys(patterns);

/***/ }),
/* 560 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = ltrim;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function ltrim(str, chars) {
  (0, _assertString2.default)(str);
  var pattern = chars ? new RegExp('^[' + chars + ']+', 'g') : /^\s+/g;
  return str.replace(pattern, '');
}
module.exports = exports['default'];

/***/ }),
/* 561 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = rtrim;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function rtrim(str, chars) {
  (0, _assertString2.default)(str);
  var pattern = chars ? new RegExp('[' + chars + ']') : /\s/;

  var idx = str.length - 1;
  while (idx >= 0 && pattern.test(str[idx])) {
    idx--;
  }

  return idx < str.length ? str.substr(0, idx + 1) : str;
}
module.exports = exports['default'];

/***/ }),
/* 562 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = trim;

var _rtrim = __webpack_require__(561);

var _rtrim2 = _interopRequireDefault(_rtrim);

var _ltrim = __webpack_require__(560);

var _ltrim2 = _interopRequireDefault(_ltrim);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function trim(str, chars) {
  return (0, _rtrim2.default)((0, _ltrim2.default)(str, chars), chars);
}
module.exports = exports['default'];

/***/ }),
/* 563 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = escape;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function escape(str) {
  (0, _assertString2.default)(str);
  return str.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&#x27;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\//g, '&#x2F;').replace(/\\/g, '&#x5C;').replace(/`/g, '&#96;');
}
module.exports = exports['default'];

/***/ }),
/* 564 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = unescape;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function unescape(str) {
  (0, _assertString2.default)(str);
  return str.replace(/&amp;/g, '&').replace(/&quot;/g, '"').replace(/&#x27;/g, "'").replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&#x2F;/g, '/').replace(/&#x5C;/g, '\\').replace(/&#96;/g, '`');
}
module.exports = exports['default'];

/***/ }),
/* 565 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = stripLow;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

var _blacklist = __webpack_require__(566);

var _blacklist2 = _interopRequireDefault(_blacklist);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function stripLow(str, keep_new_lines) {
  (0, _assertString2.default)(str);
  var chars = keep_new_lines ? '\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F' : '\\x00-\\x1F\\x7F';
  return (0, _blacklist2.default)(str, chars);
}
module.exports = exports['default'];

/***/ }),
/* 566 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = blacklist;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function blacklist(str, chars) {
  (0, _assertString2.default)(str);
  return str.replace(new RegExp('[' + chars + ']+', 'g'), '');
}
module.exports = exports['default'];

/***/ }),
/* 567 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = whitelist;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function whitelist(str, chars) {
  (0, _assertString2.default)(str);
  return str.replace(new RegExp('[^' + chars + ']+', 'g'), '');
}
module.exports = exports['default'];

/***/ }),
/* 568 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isWhitelisted;

var _assertString = __webpack_require__(501);

var _assertString2 = _interopRequireDefault(_assertString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function isWhitelisted(str, chars) {
  (0, _assertString2.default)(str);
  for (var i = str.length - 1; i >= 0; i--) {
    if (chars.indexOf(str[i]) === -1) {
      return false;
    }
  }
  return true;
}
module.exports = exports['default'];

/***/ }),
/* 569 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = normalizeEmail;

var _merge = __webpack_require__(510);

var _merge2 = _interopRequireDefault(_merge);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var default_normalize_email_options = {
  // The following options apply to all email addresses
  // Lowercases the local part of the email address.
  // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024).
  // The domain is always lowercased, as per RFC 1035
  all_lowercase: true,

  // The following conversions are specific to GMail
  // Lowercases the local part of the GMail address (known to be case-insensitive)
  gmail_lowercase: true,
  // Removes dots from the local part of the email address, as that's ignored by GMail
  gmail_remove_dots: true,
  // Removes the subaddress (e.g. "+foo") from the email address
  gmail_remove_subaddress: true,
  // Conversts the googlemail.com domain to gmail.com
  gmail_convert_googlemaildotcom: true,

  // The following conversions are specific to Outlook.com / Windows Live / Hotmail
  // Lowercases the local part of the Outlook.com address (known to be case-insensitive)
  outlookdotcom_lowercase: true,
  // Removes the subaddress (e.g. "+foo") from the email address
  outlookdotcom_remove_subaddress: true,

  // The following conversions are specific to Yahoo
  // Lowercases the local part of the Yahoo address (known to be case-insensitive)
  yahoo_lowercase: true,
  // Removes the subaddress (e.g. "-foo") from the email address
  yahoo_remove_subaddress: true,

  // The following conversions are specific to iCloud
  // Lowercases the local part of the iCloud address (known to be case-insensitive)
  icloud_lowercase: true,
  // Removes the subaddress (e.g. "+foo") from the email address
  icloud_remove_subaddress: true
};

// List of domains used by iCloud
var icloud_domains = ['icloud.com', 'me.com'];

// List of domains used by Outlook.com and its predecessors
// This list is likely incomplete.
// Partial reference:
// https://blogs.office.com/2013/04/17/outlook-com-gets-two-step-verification-sign-in-by-alias-and-new-international-domains/
var outlookdotcom_domains = ['hotmail.at', 'hotmail.be', 'hotmail.ca', 'hotmail.cl', 'hotmail.co.il', 'hotmail.co.nz', 'hotmail.co.th', 'hotmail.co.uk', 'hotmail.com', 'hotmail.com.ar', 'hotmail.com.au', 'hotmail.com.br', 'hotmail.com.gr', 'hotmail.com.mx', 'hotmail.com.pe', 'hotmail.com.tr', 'hotmail.com.vn', 'hotmail.cz', 'hotmail.de', 'hotmail.dk', 'hotmail.es', 'hotmail.fr', 'hotmail.hu', 'hotmail.id', 'hotmail.ie', 'hotmail.in', 'hotmail.it', 'hotmail.jp', 'hotmail.kr', 'hotmail.lv', 'hotmail.my', 'hotmail.ph', 'hotmail.pt', 'hotmail.sa', 'hotmail.sg', 'hotmail.sk', 'live.be', 'live.co.uk', 'live.com', 'live.com.ar', 'live.com.mx', 'live.de', 'live.es', 'live.eu', 'live.fr', 'live.it', 'live.nl', 'msn.com', 'outlook.at', 'outlook.be', 'outlook.cl', 'outlook.co.il', 'outlook.co.nz', 'outlook.co.th', 'outlook.com', 'outlook.com.ar', 'outlook.com.au', 'outlook.com.br', 'outlook.com.gr', 'outlook.com.pe', 'outlook.com.tr', 'outlook.com.vn', 'outlook.cz', 'outlook.de', 'outlook.dk', 'outlook.es', 'outlook.fr', 'outlook.hu', 'outlook.id', 'outlook.ie', 'outlook.in', 'outlook.it', 'outlook.jp', 'outlook.kr', 'outlook.lv', 'outlook.my', 'outlook.ph', 'outlook.pt', 'outlook.sa', 'outlook.sg', 'outlook.sk', 'passport.com'];

// List of domains used by Yahoo Mail
// This list is likely incomplete
var yahoo_domains = ['rocketmail.com', 'yahoo.ca', 'yahoo.co.uk', 'yahoo.com', 'yahoo.de', 'yahoo.fr', 'yahoo.in', 'yahoo.it', 'ymail.com'];

function normalizeEmail(email, options) {
  options = (0, _merge2.default)(options, default_normalize_email_options);

  var raw_parts = email.split('@');
  var domain = raw_parts.pop();
  var user = raw_parts.join('@');
  var parts = [user, domain];

  // The domain is always lowercased, as it's case-insensitive per RFC 1035
  parts[1] = parts[1].toLowerCase();

  if (parts[1] === 'gmail.com' || parts[1] === 'googlemail.com') {
    // Address is GMail
    if (options.gmail_remove_subaddress) {
      parts[0] = parts[0].split('+')[0];
    }
    if (options.gmail_remove_dots) {
      parts[0] = parts[0].replace(/\./g, '');
    }
    if (!parts[0].length) {
      return false;
    }
    if (options.all_lowercase || options.gmail_lowercase) {
      parts[0] = parts[0].toLowerCase();
    }
    parts[1] = options.gmail_convert_googlemaildotcom ? 'gmail.com' : parts[1];
  } else if (~icloud_domains.indexOf(parts[1])) {
    // Address is iCloud
    if (options.icloud_remove_subaddress) {
      parts[0] = parts[0].split('+')[0];
    }
    if (!parts[0].length) {
      return false;
    }
    if (options.all_lowercase || options.icloud_lowercase) {
      parts[0] = parts[0].toLowerCase();
    }
  } else if (~outlookdotcom_domains.indexOf(parts[1])) {
    // Address is Outlook.com
    if (options.outlookdotcom_remove_subaddress) {
      parts[0] = parts[0].split('+')[0];
    }
    if (!parts[0].length) {
      return false;
    }
    if (options.all_lowercase || options.outlookdotcom_lowercase) {
      parts[0] = parts[0].toLowerCase();
    }
  } else if (~yahoo_domains.indexOf(parts[1])) {
    // Address is Yahoo
    if (options.yahoo_remove_subaddress) {
      var components = parts[0].split('-');
      parts[0] = components.length > 1 ? components.slice(0, -1).join('-') : components[0];
    }
    if (!parts[0].length) {
      return false;
    }
    if (options.all_lowercase || options.yahoo_lowercase) {
      parts[0] = parts[0].toLowerCase();
    }
  } else if (options.all_lowercase) {
    // Any other address
    parts[0] = parts[0].toLowerCase();
  }
  return parts.join('@');
}
module.exports = exports['default'];

/***/ }),
/* 570 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var stream = __webpack_require__(111);
var util = __webpack_require__(113);

function BufferStream(buffer, options) {
    stream.Readable.call(this, options);

    this._buffer = buffer;
    this._offset = 0;
    this._chunkSize = 4 * 1024 * 1024;
    this._bufferSize = buffer.length;
}

util.inherits(BufferStream, stream.Readable);

BufferStream.prototype._read = function () {
    while (this.push(this._readNextChunk())) {
        continue;
    }
};

BufferStream.prototype._readNextChunk = function () {
    var data = null;

    if (this._offset < this._bufferSize) {
        var end = this._offset + this._chunkSize;
        end = end > this._bufferSize ? this._bufferSize : end;
        data = this._buffer.slice(this._offset, end);
        this._offset = end;
    }

    return data;
};

module.exports = BufferStream;

/***/ }),
/* 571 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var util = __webpack_require__(113);

var azureUtil = __webpack_require__(273);
var errors = __webpack_require__(306);
var SR = __webpack_require__(278);
var Constants = __webpack_require__(275);

exports = module.exports;

/**
* The default protocol.
*/
exports.DEFAULT_PROTOCOL = Constants.HTTPS;

var NoMatchError = function (msg, constr) {
  errors.captureStackTrace(this, constr || this);
  this.message = msg || 'Error';
};

util.inherits(NoMatchError, Error);
NoMatchError.prototype.name = 'NoMatchError';

exports.NoMatchError = NoMatchError;

/**
* Throws an exception if the connection string format does not match any of the
* available formats.
*
* @param {string} connectionString The invalid formatted connection string.
* @return none
*/
exports.noMatchConnectionString = function (connectionString) {
  throw new NoMatchError('The provided connection string "' + connectionString + '" does not have complete configuration settings.');
};

/**
* Throws an exception if the settings dont match any of the
* available formats.
*
* @param {object} settings The invalid settings.
* @return none
*/
exports.noMatchSettings = function (settings) {
  throw new NoMatchError('The provided settings ' + JSON.stringify(settings) + ' are not complete.');
};

/**
* Parses the connection string and then validate that the parsed keys belong to
* the validSettingKeys
*
* @param {string} connectionString The user provided connection string.
* @param {array}  validKeys        The valid keys.
* @return {array} The tokenized connection string keys.
*/
exports.parseAndValidateKeys = function (connectionString, validKeys) {
  var parsedConnectionString = { };

  // parse key/value pairs from connection string
  var pairs = connectionString.split(';');
  for (var m = 0; m < pairs.length; m++) {
    if (pairs[m].length === 0) {
        continue;
    }

    var equalDex = pairs[m].indexOf('=');
    if (equalDex < 0) {
        throw new SyntaxError(SR.INVALID_CONNECTION_STRING);
    } else if (equalDex === 0) {
      // empty key name.
      throw new SyntaxError(SR.INVALID_CONNECTION_STRING_EMPTY_KEY);
    }

    var key = pairs[m].substring(0, equalDex);

    // assure that all given keys are valid.
    if (!azureUtil.inArrayInsensitive(key, validKeys)) {
      throw new SyntaxError(util.format(SR.INVALID_CONNECTION_STRING_BAD_KEY, key));
    }

    var value = pairs[m].substring(equalDex + 1);
    
    if(typeof parsedConnectionString[key] === 'undefined'){
      parsedConnectionString[key] = value;
    } else {
      // duplicate key name
      throw new SyntaxError(util.format(SR.INVALID_CONNECTION_STRING_DUPLICATE_KEY, key));
    }
  }

  return parsedConnectionString;
};

/**
* Creates an anonymous function that acts as predicate to perform a validation.
*
* @param array   {requirements} The array of conditions to satisfy.
* @param boolean {isRequired}   Either these conditions are all required or all
* optional.
* @param boolean {atLeastOne}   Indicates that at least one requirement must
* succeed.
* @return {function}
*/
exports.getValidator = function (requirements, isRequired, atLeastOne) {
  return function (userSettings) {
    var oneFound = false;
    var result = { };

    for (var key in userSettings) {
      if (userSettings.hasOwnProperty(key)) {
        result[key.toLowerCase()] = userSettings[key];
      }
    }

    for (var requirement in requirements) {
      if (requirements.hasOwnProperty(requirement)) {
        var settingName = requirements[requirement].SettingName.toLowerCase();

        // Check if the setting name exists in the provided user settings.
        if (result[settingName]) {
          // Check if the provided user setting value is valid.
          var validationFunc = requirements[requirement].SettingConstraint;
          var isValid = validationFunc(result[settingName]);

          if (isValid) {
            // Remove the setting as indicator for successful validation.
            delete result[settingName];
            oneFound = true;
          }
        } else if (isRequired) {
          // If required then fail because the setting does not exist
          return null;
        }
      }
    }

    if (atLeastOne) {
      // At least one requirement must succeed, otherwise fail.
      return oneFound ? result : null;
    } else {
      return result;
    }
  };
};

/**
* Creates a setting value condition that validates it is one of the
* passed valid values.
*
* @param {string} name The setting key name.
* @return {array}
*/
exports.setting = function (name) {
  var validValues = Array.prototype.slice.call(arguments, 1, arguments.length);

  var predicate = function (settingValue) {
    var validValuesString = JSON.stringify(validValues);
    if (validValues.length === 0) {
      // No restrictions, succeed.
      return true;
    }

    // Check to find if the settingValue is valid or not.
    for (var index = 0; index < validValues.length; index++) {
      if (settingValue.toString() == validValues[index].toString()) {
        // SettingValue is found in valid values set, succeed.
        return true;
      }
    }

    // settingValue is missing in valid values set, fail.
    throw new RangeError('The provided config value ' + settingValue + ' does not belong to the valid values subset:\n' + validValuesString);
  };

  return exports.settingWithFunc(name, predicate);
};

/**
* Creates an "at lease one" predicate for the provided list of requirements.
*
* @return callable
*/
exports.atLeastOne = function () {
  var allSettings = arguments;
  return exports.getValidator(allSettings, false, true);
};

/**
* Creates an optional predicate for the provided list of requirements.
*
* @return {function}
*/
exports.optional = function () {
  var optionalSettings = arguments;
  return exports.getValidator(optionalSettings, false, false);
};

/**
* Creates an required predicate for the provided list of requirements.
*
* @return {function}
*/
exports.allRequired = function () {
  var requiredSettings = arguments;
  return exports.getValidator(requiredSettings, true, false);
};

/**
* Creates a setting value condition using the passed predicate.
*
* @param {string}   name      The setting key name.
* @param {function} predicate The setting value predicate.
* @return {array}
*/
exports.settingWithFunc = function (name, predicate) {
  var requirement = {};
  requirement.SettingName = name;
  requirement.SettingConstraint = predicate;

  return requirement;
};


/**
* Tests to see if a given list of settings matches a set of filters exactly.
*
* @param array $settings The settings to check.
* @return boolean If any filter returns null, false. If there are any settings
* left over after all filters are processed, false. Otherwise true.
*/
exports.matchedSpecification = function (settings) {
  var constraints = Array.prototype.slice.call(arguments, 1, arguments.length);

  for (var constraint in constraints) {
    if (constraints.hasOwnProperty(constraint)) {
      var remainingSettings = constraints[constraint](settings);

      if (!remainingSettings) {
        return false;
      } else {
        settings = remainingSettings;
      }
    }
  }

  return azureUtil.objectKeysLength(settings) === 0;
};

/***/ }),
/* 572 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 



var _ = __webpack_require__(271);
var url = __webpack_require__(274);

var util = __webpack_require__(273);
var ServiceSettings = __webpack_require__(571);
var Constants = __webpack_require__(275);
var StorageServiceClientConstants = Constants.StorageServiceClientConstants;
var ConnectionStringKeys = Constants.ConnectionStringKeys;
var Validate = __webpack_require__(496);
var SR = __webpack_require__(278);
var TokenCredential = __webpack_require__(573);

var useDevelopmentStorageSetting = ServiceSettings.setting(ConnectionStringKeys.USE_DEVELOPMENT_STORAGE_NAME, true);
var developmentStorageProxyUriSetting = ServiceSettings.settingWithFunc(ConnectionStringKeys.DEVELOPMENT_STORAGE_PROXY_URI_NAME, Validate.isValidUri);
var defaultEndpointsProtocolSetting = ServiceSettings.setting(ConnectionStringKeys.DEFAULT_ENDPOINTS_PROTOCOL_NAME, 'http', 'https');
var accountNameSetting = ServiceSettings.setting(ConnectionStringKeys.ACCOUNT_NAME_NAME);
var accountKeySetting = ServiceSettings.settingWithFunc(ConnectionStringKeys.ACCOUNT_KEY_NAME, Validate.isBase64Encoded);
var sasSetting = ServiceSettings.settingWithFunc(ConnectionStringKeys.SHARED_ACCESS_SIGNATURE_NAME, _.isString);
var tokenSetting = ServiceSettings.settingWithFunc('token', function (object) {return object instanceof TokenCredential;});

var blobEndpointSetting = ServiceSettings.settingWithFunc(
  ConnectionStringKeys.BLOB_ENDPOINT_NAME,
  Validate.isValidHost
);

var queueEndpointSetting = ServiceSettings.settingWithFunc(
  ConnectionStringKeys.QUEUE_ENDPOINT_NAME,
  Validate.isValidHost
);

var tableEndpointSetting = ServiceSettings.settingWithFunc(
  ConnectionStringKeys.TABLE_ENDPOINT_NAME,
  Validate.isValidHost
);

var fileEndpointSetting = ServiceSettings.settingWithFunc(
  ConnectionStringKeys.FILE_ENDPOINT_NAME,
  Validate.isValidHost
);

var endpointSuffixSetting = ServiceSettings.settingWithFunc(
  ConnectionStringKeys.ENDPOINT_SUFFIX_NAME,
  Validate.isValidHost
);

var validKeys = [
  ConnectionStringKeys.USE_DEVELOPMENT_STORAGE_NAME,
  ConnectionStringKeys.DEVELOPMENT_STORAGE_PROXY_URI_NAME,
  ConnectionStringKeys.DEFAULT_ENDPOINTS_PROTOCOL_NAME,
  ConnectionStringKeys.ACCOUNT_NAME_NAME,
  ConnectionStringKeys.ACCOUNT_KEY_NAME,
  ConnectionStringKeys.SHARED_ACCESS_SIGNATURE_NAME,
  ConnectionStringKeys.BLOB_ENDPOINT_NAME,
  ConnectionStringKeys.QUEUE_ENDPOINT_NAME,
  ConnectionStringKeys.TABLE_ENDPOINT_NAME,
  ConnectionStringKeys.FILE_ENDPOINT_NAME,
  ConnectionStringKeys.ENDPOINT_SUFFIX_NAME
];

/**
* Creates new storage service settings instance.
*
* @param {string} name                      The storage service name.
* @param {string} key                       The storage service key.
* @param {string} sasToken                  The storage service shared access signature token.
* @param {string} blobEndpoint              The storage service blob endpoint.
* @param {string} queueEndpoint             The storage service queue endpoint.
* @param {string} tableEndpoint             The storage service table endpoint.
* @param {string} fileEndpoint              The storage service file endpoint.
* @param {bool}   usePathStyleUri           Boolean value indicating wether to use path style uri or not.
* @param {TokenCredential} [token]          The {@link TokenCredential} object.
*/
function StorageServiceSettings(name, key, sasToken, blobEndpoint, queueEndpoint, tableEndpoint, fileEndpoint, usePathStyleUri, token) {
  this._name = name;
  this._key = key;

  if (sasToken && sasToken[0] === '?') {
    this._sasToken = sasToken.slice(1);
  } else {
    this._sasToken = sasToken;
  }

  this._blobEndpoint = blobEndpoint;
  this._queueEndpoint = queueEndpoint;
  this._tableEndpoint = tableEndpoint;
  this._fileEndpoint = fileEndpoint;

  if (usePathStyleUri) {
    this._usePathStyleUri = usePathStyleUri;
  } else {
    this._usePathStyleUri = false;
  }

  this._token = token;
}

/**
* Creates a StorageServiceSettings object from the given connection string.
*
* @param {string} connectionString The storage settings connection string.
* @return {StorageServiceSettings}
*/
StorageServiceSettings.createFromConnectionString = function (connectionString) {
  var tokenizedSettings = ServiceSettings.parseAndValidateKeys(connectionString, validKeys);

  try {
    return StorageServiceSettings.createFromSettings(tokenizedSettings);
  } catch (e) {
    if (e instanceof ServiceSettings.NoMatchError) {
      // Replace no match settings exception by no match connection string one.
      ServiceSettings.noMatchConnectionString(connectionString);
    } else {
      throw e;
    }
  }
};

StorageServiceSettings.createExplicitly = function (storageAccount, storageAccessKey, host, sasToken, endpointSuffix, token) {
  var settings = {};
  function addIfNotNullOrEmpty(key, value){
    if(typeof value === 'string' && !util.stringIsEmpty(value)){
      settings[key] = value;
    } else if (typeof value == 'object' && !util.objectIsNull(value)) {
      settings[key] = value;
    }
  }

  // Endpoints
  if (host) {
    addIfNotNullOrEmpty('blobendpoint', host);
    addIfNotNullOrEmpty('tableendpoint', host);
    addIfNotNullOrEmpty('queueendpoint', host);
    addIfNotNullOrEmpty('fileendpoint', host);
  } else {
    addIfNotNullOrEmpty('defaultendpointsprotocol', ServiceSettings.DEFAULT_PROTOCOL.split(':', 1)[0]);
  }

  addIfNotNullOrEmpty('accountname', storageAccount);
  addIfNotNullOrEmpty('accountkey', storageAccessKey);
  addIfNotNullOrEmpty('sharedaccesssignature', sasToken);
  addIfNotNullOrEmpty('endpointsuffix', endpointSuffix);
  addIfNotNullOrEmpty('token', token);

  return StorageServiceSettings.createFromSettings(settings);
};

StorageServiceSettings.createFromEnvironment = function () {
  var emulated = process.env[StorageServiceClientConstants.EnvironmentVariables.EMULATED];
  if (emulated) {
    return StorageServiceSettings.getDevelopmentStorageAccountSettings();
  } 

  var connectionString = process.env[StorageServiceClientConstants.EnvironmentVariables.AZURE_STORAGE_CONNECTION_STRING];
  if (connectionString) {
    return StorageServiceSettings.createFromConnectionString(connectionString);
  } 

  var storageAccount = process.env[StorageServiceClientConstants.EnvironmentVariables.AZURE_STORAGE_ACCOUNT];
  var storageAccessKey = process.env[StorageServiceClientConstants.EnvironmentVariables.AZURE_STORAGE_ACCESS_KEY];
  if(storageAccount && storageAccessKey){
    return StorageServiceSettings.createExplicitly(storageAccount, storageAccessKey, null, null, null);
  }

  throw new Error(SR.NO_CREDENTIALS_PROVIDED);
};

/**
* Creates a StorageServiceSettings object from a set of settings.
*
* @param {object} settings The settings object.
* @return {StorageServiceSettings}
*/
StorageServiceSettings.createFromSettings = function (settings) {
  // Devstore case
  var matchedSpecs = ServiceSettings.matchedSpecification(
    settings,
    ServiceSettings.allRequired(useDevelopmentStorageSetting),
    ServiceSettings.optional(developmentStorageProxyUriSetting)
  );

  if (matchedSpecs) {
    var proxyUri = util.tryGetValueInsensitive(
      ConnectionStringKeys.DEVELOPMENT_STORAGE_PROXY_URI_NAME,
      settings
    );

    return this.getDevelopmentStorageAccountSettings(proxyUri);
  }

  // Account/Key automatic case
  matchedSpecs = ServiceSettings.matchedSpecification(
    settings,
    ServiceSettings.allRequired(
      defaultEndpointsProtocolSetting,
      accountNameSetting,
      accountKeySetting
    ), 
    ServiceSettings.optional(
      blobEndpointSetting,
      queueEndpointSetting,
      tableEndpointSetting,
      fileEndpointSetting,
      endpointSuffixSetting
    )
  );

  if (matchedSpecs) {  
    return this._createStorageServiceSettings(settings);
  }

  // Account/Key explicit case
  matchedSpecs = ServiceSettings.matchedSpecification(
    settings,
    ServiceSettings.allRequired(
      accountNameSetting,
      accountKeySetting
    ),
    ServiceSettings.atLeastOne(
      blobEndpointSetting,
      queueEndpointSetting,
      tableEndpointSetting,
      fileEndpointSetting,
      endpointSuffixSetting
    )
  );

  if (matchedSpecs) {  
    return this._createStorageServiceSettings(settings);
  }

  // SAS case
  matchedSpecs = ServiceSettings.matchedSpecification(
    settings,
    ServiceSettings.allRequired(
      sasSetting
    ),
    ServiceSettings.atLeastOne(
      blobEndpointSetting,
      queueEndpointSetting,
      tableEndpointSetting,
      fileEndpointSetting,
      endpointSuffixSetting
    )
  );

  if(matchedSpecs) {
    return this._createStorageServiceSettings(settings);
  }

  // anonymous explicit case
  // Only blob anonymous access is valid.
  matchedSpecs = ServiceSettings.matchedSpecification(
    settings,
    ServiceSettings.allRequired(
      blobEndpointSetting
    ),
    ServiceSettings.optional(
      fileEndpointSetting,
      queueEndpointSetting,
      tableEndpointSetting,
      endpointSuffixSetting
    )
  );

  if(matchedSpecs) {
    return this._createStorageServiceSettings(settings);
  }

  // Token case
  matchedSpecs = ServiceSettings.matchedSpecification(
    settings,
    ServiceSettings.allRequired(
      tokenSetting
    ),
    ServiceSettings.atLeastOne(
      blobEndpointSetting,
      queueEndpointSetting,
      tableEndpointSetting,
      fileEndpointSetting
    )
  );

  if(matchedSpecs) {
    return this._createStorageServiceSettings(settings);
  }

  ServiceSettings.noMatchSettings(settings);
};

/**
* Returns a StorageServiceSettings with development storage credentials using
* the specified proxy Uri.
*
* @param {string} proxyUri The proxy endpoint to use.
* @return {StorageServiceSettings}
*/
StorageServiceSettings.getDevelopmentStorageAccountSettings = function (proxyUri) {
  if (!proxyUri) {
    proxyUri = StorageServiceClientConstants.DEV_STORE_URI;
  }

  var parsedUri = url.parse(proxyUri);
  var scheme = parsedUri.protocol;
  var host   = parsedUri.host;
  var prefix = scheme + '//' + host;

  var blobEndpoint = {
    primaryHost: prefix + ':10000' + '/' + StorageServiceClientConstants.DEVSTORE_STORAGE_ACCOUNT,
    secondaryHost: prefix + ':10000' + '/' + StorageServiceClientConstants.DEVSTORE_STORAGE_ACCOUNT + '-secondary'
  };

  var queueEndpoint = {
    primaryHost: prefix + ':10001' + '/' + StorageServiceClientConstants.DEVSTORE_STORAGE_ACCOUNT,
    secondaryHost: prefix + ':10001' + '/' + StorageServiceClientConstants.DEVSTORE_STORAGE_ACCOUNT + '-secondary'
  };

  var tableEndpoint = {
    primaryHost: prefix + ':10002' + '/' + StorageServiceClientConstants.DEVSTORE_STORAGE_ACCOUNT,
    secondaryHost: prefix + ':10002' + '/' + StorageServiceClientConstants.DEVSTORE_STORAGE_ACCOUNT + '-secondary'
  };

  return new StorageServiceSettings(
    StorageServiceClientConstants.DEVSTORE_STORAGE_ACCOUNT,
    StorageServiceClientConstants.DEVSTORE_STORAGE_ACCESS_KEY,
    null,
    blobEndpoint,
    queueEndpoint,
    tableEndpoint,
    null,
    true
  );
};

/**
* Creates StorageServiceSettings object given endpoints uri.
*
* @ignore
* @param {array}  settings         The service settings.
* @param {string} blobEndpointUri  The blob endpoint uri.
* @param {string} queueEndpointUri The queue endpoint uri.
* @param {string} tableEndpointUri The table endpoint uri.
* @param {string} fileEndpointUri  The file endpoint uri.
* @return {StorageServiceSettings}
*/
StorageServiceSettings._createStorageServiceSettings = function (settings) {
  var standardizeHost = function (host, accountName, scheme, dns){
    var storageHost;
    if (host) {
      storageHost = {};
      storageHost.primaryHost = _.isString(host) ? host : host.primaryHost;
      storageHost.secondaryHost = _.isString(host) ? undefined : host.secondaryHost;
    }

    if (scheme && accountName && dns) {
      storageHost = storageHost ? storageHost : {};
      storageHost.primaryHost = storageHost.primaryHost ? storageHost.primaryHost : url.format({ protocol: scheme, hostname: accountName + '.' + dns});
      storageHost.secondaryHost = storageHost.secondaryHost ? storageHost.secondaryHost : url.format({ protocol: scheme, hostname: accountName + '-secondary.' + dns});
    }

    return storageHost;
  };

  var scheme = util.tryGetValueInsensitive(
    ConnectionStringKeys.DEFAULT_ENDPOINTS_PROTOCOL_NAME,
    settings
  );

  var accountName = util.tryGetValueInsensitive(
    ConnectionStringKeys.ACCOUNT_NAME_NAME,
    settings
  );

  var accountKey = util.tryGetValueInsensitive(
    ConnectionStringKeys.ACCOUNT_KEY_NAME,
    settings
  );

  var sasToken = util.tryGetValueInsensitive(
    ConnectionStringKeys.SHARED_ACCESS_SIGNATURE_NAME,
    settings
  );

  var endpointSuffix = util.tryGetValueInsensitive(
    ConnectionStringKeys.ENDPOINT_SUFFIX_NAME,
    settings
  );

  var token = util.tryGetValueInsensitive(
    'token',
    settings
  );

  var blobEndpoint = standardizeHost(
      util.tryGetValueInsensitive(ConnectionStringKeys.BLOB_ENDPOINT_NAME, settings),
      accountName,
      scheme,
      endpointSuffix ? 'blob.' + endpointSuffix : StorageServiceClientConstants.CLOUD_BLOB_HOST);

  var queueEndpoint = standardizeHost(
      util.tryGetValueInsensitive(ConnectionStringKeys.QUEUE_ENDPOINT_NAME, settings),
      accountName,
      scheme,
      endpointSuffix ? 'queue.' + endpointSuffix : StorageServiceClientConstants.CLOUD_QUEUE_HOST);

  var tableEndpoint = standardizeHost(
      util.tryGetValueInsensitive(ConnectionStringKeys.TABLE_ENDPOINT_NAME, settings),
      accountName,
      scheme,
      endpointSuffix ? 'table.' + endpointSuffix : StorageServiceClientConstants.CLOUD_TABLE_HOST);

  var fileEndpoint = standardizeHost(
      util.tryGetValueInsensitive(ConnectionStringKeys.FILE_ENDPOINT_NAME, settings),
      accountName,
      scheme,
      endpointSuffix ? 'file.' + endpointSuffix : StorageServiceClientConstants.CLOUD_FILE_HOST);


  return new StorageServiceSettings(
    accountName,
    accountKey,
    sasToken,
    blobEndpoint,
    queueEndpoint,
    tableEndpoint,
    fileEndpoint,
    token 
  );
};

StorageServiceSettings.validKeys = validKeys;

exports = module.exports = StorageServiceSettings;

/***/ }),
/* 573 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

/**
* Creates a new TokenCredential object.
* @class
* The TokenCredential class is used to store the access token string.
* 
* @constructor
* @param {string} token The access token, such as an OAuth access token in string type.
*
* @example
* var azure = require('azure-storage');
* var tokenCredential = new azure.TokenCredential('myOAuthAccessToken');
* var blobService = azure.createBlobServiceWithTokenCredential('https://account.blob.core.windows.net', tokenCredential);
* tokenCredential.set('updatedOAuthAccessToken');
*/
function TokenCredential (token) {
  this.token = token;
}

/**
* Get current access token.
*
* @return {string} The current access token in string type.
*/
TokenCredential.prototype.get = function () {
  return this.token;
};

/**
* Renew the access token.
*
* @param {string} token The new access token in string.
*/
TokenCredential.prototype.set = function (token) {
  this.token = token;
};

module.exports = TokenCredential;

/***/ }),
/* 574 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var _ = __webpack_require__(271);
var xmlbuilder = __webpack_require__(281);

var Constants = __webpack_require__(275);
var ServicePropertiesConstants = Constants.ServicePropertiesConstants;

exports = module.exports;

function serializeRetentionPolicy(doc, policy) {
  if (policy !== null) {
    if (typeof policy === 'undefined') {
      policy = {};
    }

    doc = doc.ele(ServicePropertiesConstants.RETENTION_POLICY_ELEMENT);
    if (typeof policy.Enabled !== 'undefined') {
      doc = doc.ele(ServicePropertiesConstants.ENABLED_ELEMENT)
        .txt(policy.Enabled)
        .up();
    } else {
      doc = doc.ele(ServicePropertiesConstants.ENABLED_ELEMENT)
        .txt(false)
        .up();
    }

    if (typeof policy.Days !== 'undefined') {
      doc = doc.ele(ServicePropertiesConstants.DAYS_ELEMENT)
        .txt(policy.Days)
        .up();
    } else if (policy.Enabled === true) {
      doc = doc.ele(ServicePropertiesConstants.DAYS_ELEMENT)
        .txt(1)
        .up();
    }

    doc = doc.up();
  }
}

function serializeDeleteRetentionPolicy(doc, policy) {
  if (policy !== null) {
    if (typeof policy === 'undefined') {
      policy = {};
    }

    if (typeof policy.Enabled !== 'undefined') {
      doc = doc.ele(ServicePropertiesConstants.ENABLED_ELEMENT)
        .txt(policy.Enabled)
        .up();
    } else {
      doc = doc.ele(ServicePropertiesConstants.ENABLED_ELEMENT)
        .txt(false)
        .up();
    }

    if (typeof policy.Days !== 'undefined') {
      doc = doc.ele(ServicePropertiesConstants.DAYS_ELEMENT)
        .txt(policy.Days)
        .up();
    } else if (policy.Enabled === true) {
      doc = doc.ele(ServicePropertiesConstants.DAYS_ELEMENT)
        .txt(1)
        .up();
    }

    doc = doc.up();
  }
}

function serializeStaticWebsite(doc, staticWebsite) {
  if (staticWebsite !== null) {
    if (typeof staticWebsite === 'undefined') {
      staticWebsite = {};
    }

    if (typeof staticWebsite.Enabled !== 'undefined') {
      doc = doc.ele(ServicePropertiesConstants.ENABLED_ELEMENT)
        .txt(staticWebsite.Enabled)
        .up();
    } else {
      doc = doc.ele(ServicePropertiesConstants.ENABLED_ELEMENT)
        .txt(false)
        .up();
    }

    if (typeof staticWebsite.IndexDocument !== 'undefined') {
      doc = doc.ele(ServicePropertiesConstants.DEFAULT_INDEX_DOCUMENT_ELEMENT)
        .txt(staticWebsite.IndexDocument)
        .up();
    }

    if (typeof staticWebsite.ErrorDocument404Path !== 'undefined') {
      doc = doc.ele(ServicePropertiesConstants.DEFAULT_ERROR_DOCUMENT_404_PATH_ELEMENT)
        .txt(staticWebsite.ErrorDocument404Path)
        .up();
    }

    doc = doc.up();
  }
}

function serializeLogging(doc, logging) {
  if (typeof logging.Version !== 'undefined') {
    doc = doc.ele(ServicePropertiesConstants.VERSION_ELEMENT)
      .txt(logging.Version)
      .up();
  } else {
    doc = doc.ele(ServicePropertiesConstants.VERSION_ELEMENT)
      .txt(ServicePropertiesConstants.DEFAULT_ANALYTICS_VERSION)
      .up();
  }

  if (typeof logging.Delete !== 'undefined') {
    doc = doc.ele(ServicePropertiesConstants.DELETE_ELEMENT)
      .txt(logging.Delete)
      .up();
  } else {
    doc = doc.ele(ServicePropertiesConstants.DELETE_ELEMENT)
      .txt(false)
      .up();
  }

  if (typeof logging.Read !== 'undefined') {
    doc = doc.ele(ServicePropertiesConstants.READ_ELEMENT)
      .txt(logging.Read)
      .up();
  } else {
    doc = doc.ele(ServicePropertiesConstants.READ_ELEMENT)
      .txt(false)
      .up();
  }

  if (typeof logging.Write !== 'undefined') {
    doc = doc.ele(ServicePropertiesConstants.WRITE_ELEMENT)
      .txt(logging.Write)
      .up();
  } else {
    doc = doc.ele(ServicePropertiesConstants.WRITE_ELEMENT)
      .txt(false)
      .up();
  }

  serializeRetentionPolicy(doc, logging.RetentionPolicy);

  doc = doc.up();
}

function serializeMetrics(doc, metrics) {
  if (typeof metrics.Version !== 'undefined') {
    doc = doc.ele(ServicePropertiesConstants.VERSION_ELEMENT)
      .txt(metrics.Version)
      .up();
  } else {
    doc = doc.ele(ServicePropertiesConstants.VERSION_ELEMENT)
      .txt(ServicePropertiesConstants.DEFAULT_ANALYTICS_VERSION)
      .up();
  }

  if (typeof metrics.Enabled !== 'undefined') {
    doc = doc.ele(ServicePropertiesConstants.ENABLED_ELEMENT)
      .txt(metrics.Enabled)
      .up();
  } else {
    doc = doc.ele(ServicePropertiesConstants.ENABLED_ELEMENT)
      .txt(false)
      .up();
  }

  if (metrics.Enabled) {
    if (typeof metrics.IncludeAPIs !== 'undefined') {
      doc = doc.ele(ServicePropertiesConstants.INCLUDE_APIS_ELEMENT)
        .txt(metrics.IncludeAPIs)
        .up();
    } else if (metrics.Enabled === true) {
      doc = doc.ele(ServicePropertiesConstants.INCLUDE_APIS_ELEMENT)
        .txt(false)
        .up();
    }
  }
  serializeRetentionPolicy(doc, metrics.RetentionPolicy);
}

function serializeCorsRules(doc, rules) {
  if (typeof rules !== 'undefined' && rules !== null && _.isArray(rules)) {
    rules.forEach(function (rule) {
      doc = doc.ele(ServicePropertiesConstants.CORS_RULE_ELEMENT);

      if (typeof rule.AllowedMethods !== 'undefined' && _.isArray(rule.AllowedMethods)) {
        doc = doc.ele(ServicePropertiesConstants.ALLOWED_METHODS_ELEMENT)
          .txt(rule.AllowedMethods.join(','))
          .up();
      }

      if (typeof rule.AllowedOrigins !== 'undefined' && _.isArray(rule.AllowedOrigins)) {
        doc = doc.ele(ServicePropertiesConstants.ALLOWED_ORIGINS_ELEMENT)
          .txt(rule.AllowedOrigins.join(','))
          .up();
      }

      if (typeof rule.AllowedHeaders !== 'undefined' && _.isArray(rule.AllowedHeaders)) {
        doc = doc.ele(ServicePropertiesConstants.ALLOWED_HEADERS_ELEMENT)
          .txt(rule.AllowedHeaders.join(','))
          .up();
      } else {
        doc = doc.ele(ServicePropertiesConstants.ALLOWED_HEADERS_ELEMENT)
          .txt('')
          .up();
      }

      if (typeof rule.ExposedHeaders !== 'undefined' && _.isArray(rule.ExposedHeaders)) {
        doc = doc.ele(ServicePropertiesConstants.EXPOSED_HEADERS_ELEMENT)
          .txt(rule.ExposedHeaders.join(','))
          .up();
      } else {
        doc = doc.ele(ServicePropertiesConstants.EXPOSED_HEADERS_ELEMENT)
          .txt('')
          .up();
      }

      if (typeof rule.MaxAgeInSeconds !== 'undefined') {
        doc = doc.ele(ServicePropertiesConstants.MAX_AGE_IN_SECONDS_ELEMENT)
          .txt(rule.MaxAgeInSeconds)
          .up();
      } else {
        doc = doc.ele(ServicePropertiesConstants.MAX_AGE_IN_SECONDS_ELEMENT)
          .txt('0')
          .up();
      }

      doc = doc.up();
    });
  }
}

exports.serialize = function (servicePropertiesJs) {
  var doc = xmlbuilder.create(ServicePropertiesConstants.STORAGE_SERVICE_PROPERTIES_ELEMENT, { version: '1.0', encoding: 'utf-8' });

  if (servicePropertiesJs.Logging) {
    doc = doc.ele(ServicePropertiesConstants.LOGGING_ELEMENT);
    serializeLogging(doc, servicePropertiesJs.Logging);
    doc = doc.up();
  }

  if (servicePropertiesJs.HourMetrics) {
    doc = doc.ele(ServicePropertiesConstants.HOUR_METRICS_ELEMENT);
    serializeMetrics(doc, servicePropertiesJs.HourMetrics);
    doc = doc.up();
  }

  if (servicePropertiesJs.MinuteMetrics) {
    doc = doc.ele(ServicePropertiesConstants.MINUTE_METRICS_ELEMENT);
    serializeMetrics(doc, servicePropertiesJs.MinuteMetrics);
    doc = doc.up();
  }

  if (servicePropertiesJs.Cors) {
    doc = doc.ele(ServicePropertiesConstants.CORS_ELEMENT);
    serializeCorsRules(doc, servicePropertiesJs.Cors.CorsRule);
    doc = doc.up();
  }

  if (servicePropertiesJs.DefaultServiceVersion) {
    doc = doc.ele(ServicePropertiesConstants.DEFAULT_SERVICE_VERSION_ELEMENT)
      .txt(servicePropertiesJs.DefaultServiceVersion)
      .up();
  }

  if (servicePropertiesJs.DeleteRetentionPolicy) {
    doc = doc.ele(ServicePropertiesConstants.DEFAULT_DELETE_RETENTION_POLICY_ELEMENT);
    serializeDeleteRetentionPolicy(doc, servicePropertiesJs.DeleteRetentionPolicy);
    doc = doc.up();
  }

  if (servicePropertiesJs.StaticWebsite) {
    doc = doc.ele(ServicePropertiesConstants.DEFAULT_STATIC_WEBSITE_ELEMENT);
    serializeStaticWebsite(doc, servicePropertiesJs.StaticWebsite);
    doc = doc.up();
  }

  return doc.doc().toString();
};

function parseRetentionPolicy(policyXml) {
  var policy = {};

  if (typeof policyXml.Enabled !== 'undefined') {
    policy.Enabled = policyXml.Enabled === 'true';
  }

  if (typeof policyXml.Days !== 'undefined') {
    policy.Days = parseInt(policyXml.Days, 10);
  }

  return policy;
}

function parseLogging(loggingXml) {
  var logging = {};

  if (typeof loggingXml.Version !== 'undefined') {
    logging.Version = loggingXml.Version;
  }

  if (typeof loggingXml.Delete !== 'undefined') {
    logging.Delete = loggingXml.Delete === 'true';
  }

  if (typeof loggingXml.Read !== 'undefined') {
    logging.Read = loggingXml.Read === 'true';
  }

  if (typeof loggingXml.Write !== 'undefined') {
    logging.Write = loggingXml.Write === 'true';
  }

  if (typeof loggingXml.RetentionPolicy !== 'undefined') {
    logging.RetentionPolicy = parseRetentionPolicy(loggingXml.RetentionPolicy);
  }

  return logging;
}

function parseMetrics(metricsXml) {
  var metrics = {};

  if (typeof metricsXml.Version !== 'undefined') {
    metrics.Version = metricsXml.Version;
  }

  if (typeof metricsXml.Enabled !== 'undefined') {
    metrics.Enabled = metricsXml.Enabled === 'true';
  }

  if (typeof metricsXml.IncludeAPIs !== 'undefined') {
    metrics.IncludeAPIs = metricsXml.IncludeAPIs === 'true';
  }

  if (typeof metricsXml.RetentionPolicy !== 'undefined') {
    metrics.RetentionPolicy = parseRetentionPolicy(metricsXml.RetentionPolicy);
  }

  return metrics;
}

function parseCors(corsXml) {
  var cors = {};

  if (typeof corsXml.CorsRule !== 'undefined') {
    var rulesXml = corsXml.CorsRule;
    if (!_.isArray(rulesXml)) {
      rulesXml = [rulesXml];
    }

    cors.CorsRule = [];
    rulesXml.forEach(function (ruleXml) {
      var rule = {};

      if (typeof ruleXml.AllowedMethods !== 'undefined') {
        if (ruleXml.AllowedMethods !== '') {
          rule.AllowedMethods = ruleXml.AllowedMethods.split(',');
        }
        else {
          rule.AllowedMethods = [];
        }
      }

      if (typeof ruleXml.AllowedOrigins !== 'undefined') {
        if (ruleXml.AllowedOrigins !== '') {
          rule.AllowedOrigins = ruleXml.AllowedOrigins.split(',');
        }
        else {
          rule.AllowedOrigins = [];
        }
      }

      if (typeof ruleXml.AllowedHeaders !== 'undefined') {
        if (ruleXml.AllowedHeaders !== '') {
          rule.AllowedHeaders = ruleXml.AllowedHeaders.split(',');
        }
        else {
          rule.AllowedHeaders = [];
        }
      }

      if (typeof ruleXml.ExposedHeaders !== 'undefined') {
        if (ruleXml.ExposedHeaders !== '') {
          rule.ExposedHeaders = ruleXml.ExposedHeaders.split(',');
        }
        else {
          rule.ExposedHeaders = [];
        }
      }

      if (typeof ruleXml.MaxAgeInSeconds !== 'undefined') {
        rule.MaxAgeInSeconds = parseInt(ruleXml.MaxAgeInSeconds, 10);
      }

      cors.CorsRule.push(rule);
    });
  }

  return cors;
}

function parseDeleteRetentionPolicy(deleteRetentionPolicyXml) {
  var deleteRetentionPolicy = {};

  if (typeof deleteRetentionPolicyXml.Enabled !== 'undefined') {
    deleteRetentionPolicy.Enabled = deleteRetentionPolicyXml.Enabled === 'true';
  }

  if (typeof deleteRetentionPolicyXml.Days !== 'undefined') {
    deleteRetentionPolicy.Days = parseInt(deleteRetentionPolicyXml.Days);
  }

  return deleteRetentionPolicy;
}

function parseStaticWebsite(staticWebsiteXml) {
  var staticWebsite = {};

  if (typeof staticWebsiteXml.Enabled !== 'undefined') {
    staticWebsite.Enabled = staticWebsiteXml.Enabled === 'true';
  }

  if (typeof staticWebsiteXml.IndexDocument !== 'undefined') {
    staticWebsite.IndexDocument = staticWebsiteXml.IndexDocument;
  }

  if (typeof staticWebsiteXml.ErrorDocument404Path !== 'undefined') {
    staticWebsite.ErrorDocument404Path = staticWebsiteXml.ErrorDocument404Path;
  }

  return staticWebsite;
}

exports.parse = function (servicePropertiesXml) {
  var serviceProperties = {};

  if (typeof servicePropertiesXml.Logging !== 'undefined') {
    serviceProperties.Logging = parseLogging(servicePropertiesXml.Logging);
  }

  if (typeof servicePropertiesXml.HourMetrics !== 'undefined') {
    serviceProperties.HourMetrics = parseMetrics(servicePropertiesXml.HourMetrics);
  }

  if (typeof servicePropertiesXml.MinuteMetrics !== 'undefined') {
    serviceProperties.MinuteMetrics = parseMetrics(servicePropertiesXml.MinuteMetrics);
  }

  if (typeof servicePropertiesXml.Cors !== 'undefined') {
    serviceProperties.Cors = parseCors(servicePropertiesXml.Cors);
  }

  if (typeof servicePropertiesXml.DefaultServiceVersion !== 'undefined') {
    serviceProperties.DefaultServiceVersion = servicePropertiesXml.DefaultServiceVersion;
  }

  if (typeof servicePropertiesXml.DeleteRetentionPolicy !== 'undefined') {
    serviceProperties.DeleteRetentionPolicy = parseDeleteRetentionPolicy(servicePropertiesXml.DeleteRetentionPolicy);
  }

  if (typeof servicePropertiesXml.StaticWebsite !== 'undefined') {
    serviceProperties.StaticWebsite = parseStaticWebsite(servicePropertiesXml.StaticWebsite);
  }

  return serviceProperties;
};

/***/ }),
/* 575 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Expose 'HeaderConstants'.
exports = module.exports;

/**
* Defines constants, enums, and utility functions for use with the Table service.
* @namespace TableUtilities
*/
var TableUtilities = {
  /**
  * Permission types.
  *
  * @const
  * @enum {string}
  */
  SharedAccessPermissions: {
    QUERY: 'r',
    ADD: 'a',
    UPDATE: 'u',
    DELETE: 'd'
  },

  /**
  * Payload Format.
  *
  * @const
  * @enum {string}
  */
  PayloadFormat: {
    FULL_METADATA: 'application/json;odata=fullmetadata',
    MINIMAL_METADATA: 'application/json;odata=minimalmetadata',
    NO_METADATA: 'application/json;odata=nometadata'
  },

  /**
  * Defines the set of Boolean operators for constructing queries.
  *
  * @const
  * @enum {string}
  */
  TableOperators: {
    AND: 'and',
    NOT: 'not',
    OR: 'or'
  },

  /**
  * Filter property comparison operators.
  *
  * @const
  * @enum {string}
  */
  QueryComparisons: {
    EQUAL: 'eq',
    NOT_EQUAL: 'ne',
    GREATER_THAN: 'gt',
    GREATER_THAN_OR_EQUAL: 'ge',
    LESS_THAN: 'lt',
    LESS_THAN_OR_EQUAL: 'le'
  },

  /**
  * Edm types.
  *
  * @const
  * @enum {string}
  */
  EdmType: {
    STRING: 'Edm.String',
    BINARY: 'Edm.Binary',
    INT64: 'Edm.Int64',
    INT32: 'Edm.Int32',
    DOUBLE: 'Edm.Double',
    DATETIME: 'Edm.DateTime',
    GUID: 'Edm.Guid',
    BOOLEAN: 'Edm.Boolean'
  },

  /**
  * A helper to create table entities.
  *
  * @example
  * var entGen = TableUtilities.entityGenerator;
  * var entity = {  PartitionKey: entGen.String('part2'),
  *        RowKey: entGen.String('row1'),
  *        boolValue: entGen.Boolean(true),
  *        intValue: entGen.Int32(42),
  *        dateValue: entGen.DateTime(new Date(Date.UTC(2011, 10, 25))),
  *       };
  */
  entityGenerator: (function()
  {
    var EntityProperty = function (value, type) {
        var entityProperty = { _:value};
        if (type) {
          entityProperty['$'] = type;
        }
        return entityProperty;
      };

      return {
      EntityProperty : EntityProperty,
      
      Int32 : function(value) {
        return new EntityProperty(value, 'Edm.Int32');
      },

      Int64 : function(value) {
        return new EntityProperty(value, 'Edm.Int64');
      },

      Binary : function(value) {
        return new EntityProperty(value, 'Edm.Binary');
      },

      Boolean : function(value) {
        return new EntityProperty(value, 'Edm.Boolean');
      },

      String : function(value) {
        return new EntityProperty(value, 'Edm.String');
      },

      Guid : function(value) {
        return new EntityProperty(value, 'Edm.Guid');
      },

      Double : function(value) {
        return new EntityProperty(value, 'Edm.Double');
      },

      DateTime : function(value) {
        return new EntityProperty(value, 'Edm.DateTime');
      }
    };
  })()
};

module.exports = TableUtilities;

/***/ }),
/* 576 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var _ = __webpack_require__(271);
var qs = __webpack_require__(330);

var azureutil = __webpack_require__(273);
var HmacSha256Sign = __webpack_require__(577);
var SR = __webpack_require__(278);
var errors = __webpack_require__(306);
var ArgumentError = errors.ArgumentError;

var Constants = __webpack_require__(275);
var HeaderConstants = Constants.HeaderConstants;
var QueryStringConstants = Constants.QueryStringConstants;
var HeaderConstants = Constants.HeaderConstants;
var CompatibleVersionConstants = Constants.CompatibleVersionConstants;

/**
* Creates a new SharedKey object.
*
* @constructor
* @param {string} storageAccount    The storage account.
* @param {string} storageAccessKey  The storage account's access key.
* @param {bool}   usePathStyleUri   Boolean value indicating if the path, or the hostname, should include the storage account.
*/
function SharedKey(storageAccount, storageAccessKey, usePathStyleUri) {
  this.storageAccount = storageAccount;
  this.storageAccessKey = storageAccessKey;
  this.usePathStyleUri = usePathStyleUri;
  this.signer = new HmacSha256Sign(storageAccessKey);
}

/**
* Generates the shared access signature for a account.
* For more detailed information, refer to https://msdn.microsoft.com/en-us/library/azure/mt584140.aspx
*
* @param {object}                     sharedAccessPolicy                                The shared access policy.
* @param {SharedAccessServices}       sharedAccessPolicy.AccessPolicy.Services          The services (blob, file, queue, table) for a shared access signature associated with this shared access policy.
*                                                                                       Refer to `Constants.AccountSasConstants.Services`.
* @param {SharedAccessResourceTypes}  sharedAccessPolicy.AccessPolicy.ResourceTypes     The resource type for a shared access signature associated with this shared access policy.
*                                                                                       Refer to `Constants.AccountSasConstants.Resources`.
* @param {SharedAccessPermissions}    sharedAccessPolicy.AccessPolicy.Permissions       The permissions for a shared access signature. 
*                                                                                       Refer to `Constants.AccountSasConstants.Permissions`.
* @param {date}                       sharedAccessPolicy.AccessPolicy.Start             The time at which the Shared Access Signature becomes valid.
* @param {date}                       sharedAccessPolicy.AccessPolicy.Expiry            The time at which the Shared Access Signature becomes expired.
* @param {string}                     sharedAccessPolicy.AccessPolicy.IPAddressOrRange  An IP address or a range of IP addresses from which to accept requests. When specifying a range, note that the range is inclusive.
* @param {string}                     sharedAccessPolicy.AccessPolicy.Protocols         The protocols permitted for a request made with the account SAS. 
*                                                                                       Possible values are both HTTPS and HTTP (https,http) or HTTPS only (https). The default value is https,http. 
*                                                                                       Refer to `Constants.AccountSasConstants.Protocols`.
* @return {string} The shared access signature.
*/
SharedKey.prototype.generateAccountSignedQueryString = function (sharedAccessPolicy) {
  var addIfNotNull = function (queryString, name, value) {
    if (!azureutil.objectIsNull(name) && !azureutil.objectIsNull(value)) {
      queryString[name] = value;
    }
  };

  var formatAccessPolicyDates = function (accessPolicy) {
    if (!azureutil.objectIsNull(accessPolicy.Start)) {
      if (!_.isDate(accessPolicy.Start)) {
        accessPolicy.Start = new Date(accessPolicy.Start);
      }
 
      accessPolicy.Start = azureutil.truncatedISO8061Date(accessPolicy.Start);
    }

    if (!azureutil.objectIsNull(accessPolicy.Expiry)) {
      if (!_.isDate(accessPolicy.Expiry)) {
        accessPolicy.Expiry = new Date(accessPolicy.Expiry);
      }

      accessPolicy.Expiry = azureutil.truncatedISO8061Date(accessPolicy.Expiry);
    }
  };

  var queryString = {};

  addIfNotNull(queryString, QueryStringConstants.SIGNED_VERSION, HeaderConstants.TARGET_STORAGE_VERSION);

  // add shared access policy params
  if (sharedAccessPolicy.AccessPolicy) {
    formatAccessPolicyDates(sharedAccessPolicy.AccessPolicy);

    addIfNotNull(queryString, QueryStringConstants.SIGNED_SERVICES, sharedAccessPolicy.AccessPolicy.Services);
    addIfNotNull(queryString, QueryStringConstants.SIGNED_RESOURCE_TYPES, sharedAccessPolicy.AccessPolicy.ResourceTypes);
    addIfNotNull(queryString, QueryStringConstants.SIGNED_PERMISSIONS, sharedAccessPolicy.AccessPolicy.Permissions);
    addIfNotNull(queryString, QueryStringConstants.SIGNED_START, sharedAccessPolicy.AccessPolicy.Start);
    addIfNotNull(queryString, QueryStringConstants.SIGNED_EXPIRY, sharedAccessPolicy.AccessPolicy.Expiry);
    addIfNotNull(queryString, QueryStringConstants.SIGNED_IP, sharedAccessPolicy.AccessPolicy.IPAddressOrRange);
    addIfNotNull(queryString, QueryStringConstants.SIGNED_PROTOCOL, sharedAccessPolicy.AccessPolicy.Protocols);
  }
  
  // add signature
  addIfNotNull(queryString, QueryStringConstants.SIGNATURE, this._generateAccountSharedAccessSignature(sharedAccessPolicy));

  return qs.stringify(queryString);
};


/**
* Generates the signature part of the shared access signature for a account.
* For more detailed information, refer to https://msdn.microsoft.com/en-us/library/azure/mt584140.aspx
*
* @param {object}                     sharedAccessPolicy                                The shared access policy.
* @param {SharedAccessServices}       sharedAccessPolicy.AccessPolicy.Services          The services (blob, file, queue, table) for a shared access signature associated with this shared access policy.
*                                                                                       Refer to `Constants.AccountSasConstants.Services`.
* @param {SharedAccessResourceTypes}  sharedAccessPolicy.AccessPolicy.ResourceTypes     The resource type for a shared access signature associated with this shared access policy.
*                                                                                       Refer to `Constants.AccountSasConstants.ResourceTypes`.
* @param {SharedAccessPermissions}    sharedAccessPolicy.AccessPolicy.Permissions       The permissions for a shared access signature. 
*                                                                                       Refer to `Constants.AccountSasConstants.Permissions`.
* @param {date}                       sharedAccessPolicy.AccessPolicy.Start             The time at which the Shared Access Signature becomes valid.
* @param {date}                       sharedAccessPolicy.AccessPolicy.Expiry            The time at which the Shared Access Signature becomes expired.
* @param {string}                     sharedAccessPolicy.AccessPolicy.IPAddressOrRange  An IP address or a range of IP addresses from which to accept requests. When specifying a range, note that the range is inclusive.
* @param {string}                     sharedAccessPolicy.AccessPolicy.Protocols         The protocols permitted for a request made with the account SAS. 
*                                                                                       Possible values are both HTTPS and HTTP (https,http) or HTTPS only (https). The default value is https,http. 
*                                                                                       Refer to `Constants.AccountSasConstants.Protocols`.
* @return {string} The signature part of the shared access signature.
*/
SharedKey.prototype._generateAccountSharedAccessSignature = function(sharedAccessPolicy){
  var getvalueToAppend = function (value, noNewLine) {
    var returnValue = '';
    if (!azureutil.objectIsNull(value)) {
      returnValue = value;
    }

    if (noNewLine !== true) {
      returnValue += '\n';
    }

    return returnValue;
  };  
  
  var stringToSign = getvalueToAppend(this.storageAccount) +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.Permissions : '') +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.Services : '') +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.ResourceTypes : '') +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.Start : '') +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.Expiry : '') +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.IPAddressOrRange : '') +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.Protocols : '') +
      getvalueToAppend(HeaderConstants.TARGET_STORAGE_VERSION);
      
  return this.signer.sign(stringToSign);  
};

/**
* Signs a request with the Authentication header.
*
* @param {WebResource}      webResource The webresource to be signed.
* @param {function(error)}  callback    The callback function.
*/
SharedKey.prototype.signRequest = function (webResource, callback) {
  var getvalueToAppend = function (value, headerName) {
    // Do not sign content-length 0 in 2014-08-16 and later
    if (headerName === HeaderConstants.CONTENT_LENGTH && (azureutil.objectIsNull(value[headerName]) || value[headerName].toString() === '0')) {
      return '\n';
    } else if (azureutil.objectIsNull(value) || azureutil.objectIsNull(value[headerName])) {
      return '\n';
    } else {
      return value[headerName] + '\n';
    }
  };

  var stringToSign =
    webResource.method + '\n' +
    getvalueToAppend(webResource.headers, HeaderConstants.CONTENT_ENCODING) +
    getvalueToAppend(webResource.headers, HeaderConstants.CONTENT_LANGUAGE) +
    getvalueToAppend(webResource.headers, HeaderConstants.CONTENT_LENGTH) +
    getvalueToAppend(webResource.headers, HeaderConstants.CONTENT_MD5) +
    getvalueToAppend(webResource.headers, HeaderConstants.CONTENT_TYPE) +
    getvalueToAppend(webResource.headers, HeaderConstants.DATE) +
    getvalueToAppend(webResource.headers, HeaderConstants.IF_MODIFIED_SINCE) +
    getvalueToAppend(webResource.headers, HeaderConstants.IF_MATCH) +
    getvalueToAppend(webResource.headers, HeaderConstants.IF_NONE_MATCH) +
    getvalueToAppend(webResource.headers, HeaderConstants.IF_UNMODIFIED_SINCE) +
    getvalueToAppend(webResource.headers, HeaderConstants.RANGE) +
    this._getCanonicalizedHeaders(webResource) +
    this._getCanonicalizedResource(webResource);

  var signature = this.signer.sign(stringToSign);

  webResource.withHeader(HeaderConstants.AUTHORIZATION, 'SharedKey ' + this.storageAccount + ':' + signature);
  callback(null);
};

/*
* Retrieves the webresource's canonicalized resource string.
* @param {WebResource} webResource The webresource to get the canonicalized resource string from.
* @return {string} The canonicalized resource string.
*/
SharedKey.prototype._getCanonicalizedResource = function (webResource) {
  var path = '/';
  if (webResource.path) {
    path = webResource.path;
  }

  var canonicalizedResource = '/' + this.storageAccount + path;

  // Get the raw query string values for signing
  var queryStringValues = webResource.queryString;

  // Build the canonicalized resource by sorting the values by name.
  if (queryStringValues) {
    var paramNames = [];
    Object.keys(queryStringValues).forEach(function (n) {
      paramNames.push(n);
    });

    paramNames = paramNames.sort();
    Object.keys(paramNames).forEach(function (name) {
      canonicalizedResource += '\n' + paramNames[name] + ':' + queryStringValues[paramNames[name]];
    });
  }

  return canonicalizedResource;
};

/*
* Constructs the Canonicalized Headers string.
*
* To construct the CanonicalizedHeaders portion of the signature string,
* follow these steps: 1. Retrieve all headers for the resource that begin
* with x-ms-, including the x-ms-date header. 2. Convert each HTTP header
* name to lowercase. 3. Sort the headers lexicographically by header name,
* in ascending order. Each header may appear only once in the
* string. 4. Unfold the string by replacing any breaking white space with a
* single space. 5. Trim any white space around the colon in the header. 6.
* Finally, append a new line character to each canonicalized header in the
* resulting list. Construct the CanonicalizedHeaders string by
* concatenating all headers in this list into a single string.
*
* @param {object} The webresource object.
* @return {string} The canonicalized headers.
*/
SharedKey.prototype._getCanonicalizedHeaders = function (webResource) {
  // Build canonicalized headers
  var canonicalizedHeaders = '';
  if (webResource.headers) {
    var canonicalizedHeadersArray = [];
    for (var header in webResource.headers) {
      if (header.indexOf(HeaderConstants.PREFIX_FOR_STORAGE) === 0) {
        var headerItem = { canonicalized: header.toLowerCase(), original: header };
        canonicalizedHeadersArray.push(headerItem);
      }
    }

    canonicalizedHeadersArray.sort(function(a, b) { return a.canonicalized.localeCompare(b.canonicalized); });

    _.each(canonicalizedHeadersArray, function (currentHeaderItem) {
      var value = webResource.headers[currentHeaderItem.original];
      if (!azureutil.IsNullOrEmptyOrUndefinedOrWhiteSpace(value)) {
        canonicalizedHeaders += currentHeaderItem.canonicalized + ':' + value + '\n';
      } else {
        canonicalizedHeaders += currentHeaderItem.canonicalized + ':\n';
      }
    });
  }

  return canonicalizedHeaders;
};

/**
* Generates the query string for a shared access signature signing.
*
* @this {SharedAccessSignature}
* @param {string}                     serviceType                                         The service type.
* @param {string}                     path                                                The path to the resource.
* @param {object}                     sharedAccessPolicy                                  The shared access policy.
* @param {string}                     [sharedAccessPolicy.Id]                             The signed identifier.
* @param {SharedAccessPermissions}    [sharedAccessPolicy.AccessPolicy.Permissions]       The permission type.
* @param {date}                       [sharedAccessPolicy.AccessPolicy.Start]             The time at which the Shared Access Signature becomes valid.
* @param {date}                       [sharedAccessPolicy.AccessPolicy.Expiry]            The time at which the Shared Access Signature becomes expired.
* @param {string}                     [sharedAccessPolicy.AccessPolicy.IPAddressOrRange]  An IP address or a range of IP addresses from which to accept requests. When specifying a range, note that the range is inclusive.
* @param {string}                     [sharedAccessPolicy.AccessPolicy.Protocols]         The protocols permitted for a request made with the account SAS. 
*                                                                                         Possible values are both HTTPS and HTTP (https,http) or HTTPS only (https). The default value is https,http. 
* @param {string}                     sasVersion                                          A string indicating the desired SAS Version to use, in storage service version format. Value must be 2012-02-12 or later.
* @parma {ResourceTypes}              [args.resourceType]                                 The resource type, if the resource is a blob or container.  Null if the resource is a queue or table.
* @parma {ResourceTypes}              [args.tableName]                                    The table name, if the resource is a table.  Null if the resource is a blob orqueue.
* @parma {ResourceTypes}              [args.queryString]                                  The query string, if additional parameters are desired.
* @param {object}                     [args.headers]                                      The optional header values to set for a blob returned wth this SAS.
* @param {string}                     [args.headers.CacheControl]                         The value of the Cache-Control response header to be returned when this SAS is used.
* @param {string}                     [args.headers.ContentType]                          The value of the Content-Type response header to be returned when this SAS is used.
* @param {string}                     [args.headers.ContentEncoding]                      The value of the Content-Encoding response header to be returned when this SAS is used.
* @param {string}                     [args.headers.ContentLanguage]                      The value of the Content-Language response header to be returned when this SAS is used.
* @param {string}                     [args.headers.ContentDisposition]                   The value of the Content-Disposition response header to be returned when this SAS is used.
* @return {object} The shared access signature query string.
*/
SharedKey.prototype.generateSignedQueryString = function (serviceType, path, sharedAccessPolicy, sasVersion, args) {
  var addIfNotNull = function (queryString, name, value) {
    if (!azureutil.objectIsNull(name) && !azureutil.objectIsNull(value)) {
      queryString[name] = value;
    }
  };

  var validateVersion = function (sasVersion) {
    // validate and add version
    if (azureutil.objectIsNull(sasVersion)) {
      return HeaderConstants.TARGET_STORAGE_VERSION;
    } else {
      var values = _.values(CompatibleVersionConstants);
      if (values.some(function(version) {
        return version.toLowerCase() === sasVersion.toLowerCase();
      })) {
        return sasVersion;
      } else {
        throw new ArgumentError('sasVersion', azureutil.stringFormat(SR.INVALID_SAS_VERSION, sasVersion, values));
      }
    }
  };

  var formatAccessPolicyDates = function (accessPolicy) {
    if (!azureutil.objectIsNull(accessPolicy.Start)) {
      if (!_.isDate(accessPolicy.Start)) {
        accessPolicy.Start = new Date(accessPolicy.Start);
      }
 
      accessPolicy.Start = azureutil.truncatedISO8061Date(accessPolicy.Start);
    }

    if (!azureutil.objectIsNull(accessPolicy.Expiry)) {
      if (!_.isDate(accessPolicy.Expiry)) {
        accessPolicy.Expiry = new Date(accessPolicy.Expiry);
      }

      accessPolicy.Expiry = azureutil.truncatedISO8061Date(accessPolicy.Expiry);
    }
  };

  // set up optional args
  var queryString;
  var resourceType;
  var headers;
  var tableName;
  
  if(args) {
    queryString = args.queryString;
    resourceType = args.resourceType;
    tableName = args.tableName;
    headers = args.headers;
  }

  if(!queryString) {
    queryString = {};
  }

  // add shared access policy params
  if (sharedAccessPolicy.AccessPolicy) {
    formatAccessPolicyDates(sharedAccessPolicy.AccessPolicy);

    addIfNotNull(queryString, QueryStringConstants.SIGNED_START, sharedAccessPolicy.AccessPolicy.Start);
    addIfNotNull(queryString, QueryStringConstants.SIGNED_EXPIRY, sharedAccessPolicy.AccessPolicy.Expiry);
    addIfNotNull(queryString, QueryStringConstants.SIGNED_PERMISSIONS, sharedAccessPolicy.AccessPolicy.Permissions);
    addIfNotNull(queryString, QueryStringConstants.SIGNED_IP, sharedAccessPolicy.AccessPolicy.IPAddressOrRange);
    addIfNotNull(queryString, QueryStringConstants.SIGNED_PROTOCOL, sharedAccessPolicy.AccessPolicy.Protocols);

    // tables only
    addIfNotNull(queryString, QueryStringConstants.STARTPK, sharedAccessPolicy.AccessPolicy.StartPk);
    addIfNotNull(queryString, QueryStringConstants.ENDPK, sharedAccessPolicy.AccessPolicy.EndPk);
    addIfNotNull(queryString, QueryStringConstants.STARTRK, sharedAccessPolicy.AccessPolicy.StartRk);
    addIfNotNull(queryString, QueryStringConstants.ENDRK, sharedAccessPolicy.AccessPolicy.EndRk);
  }

  // validate and add version
  var validatedSASVersionString = validateVersion(sasVersion);
  addIfNotNull(queryString, QueryStringConstants.SIGNED_VERSION, validatedSASVersionString);

  // add signed identifier
  addIfNotNull(queryString, QueryStringConstants.SIGNED_IDENTIFIER, sharedAccessPolicy.Id);

  // blobs only
  addIfNotNull(queryString, QueryStringConstants.SIGNED_RESOURCE, resourceType);
  if (headers) {
    addIfNotNull(queryString, QueryStringConstants.CACHE_CONTROL, headers.cacheControl);
    addIfNotNull(queryString, QueryStringConstants.CONTENT_TYPE, headers.contentType);
    addIfNotNull(queryString, QueryStringConstants.CONTENT_ENCODING, headers.contentEncoding);
    addIfNotNull(queryString, QueryStringConstants.CONTENT_LANGUAGE, headers.contentLanguage);
    addIfNotNull(queryString, QueryStringConstants.CONTENT_DISPOSITION, headers.contentDisposition);
  }

  // tables only
  addIfNotNull(queryString, QueryStringConstants.TABLENAME, tableName);

  // add signature
  addIfNotNull(queryString, QueryStringConstants.SIGNATURE, this._generateSignature(serviceType, path, sharedAccessPolicy, validatedSASVersionString, {resourceType: resourceType, headers: headers, tableName: tableName}));

  return qs.stringify(queryString);
};

/**
* Generates the shared access signature for a resource.
*
* @this {SharedAccessSignature}
* @param {string}                     serviceType                                         The service type.
* @param {string}                     path                                                The path to the resource.
* @param {object}                     sharedAccessPolicy                                  The shared access policy.
* @param {string}                     [sharedAccessPolicy.Id]                             The signed identifier.
* @param {SharedAccessPermissions}    [sharedAccessPolicy.AccessPolicy.Permissions]       The permission type.
* @param {date}                       [sharedAccessPolicy.AccessPolicy.Start]             The time at which the Shared Access Signature becomes valid.
* @param {date}                       [sharedAccessPolicy.AccessPolicy.Expiry]            The time at which the Shared Access Signature becomes expired.
* @param {string}                     [sharedAccessPolicy.AccessPolicy.IPAddressOrRange]  An IP address or a range of IP addresses from which to accept requests. When specifying a range, note that the range is inclusive.
* @param {string}                     [sharedAccessPolicy.AccessPolicy.Protocols]         The protocols permitted for a request made with the account SAS. 
*                                                                                         Possible values are both HTTPS and HTTP (https,http) or HTTPS only (https). The default value is https,http.
* @param {string}                     sasVersion                                          A string indicating the desired SAS Version to use, in storage service version format. Value must be 2012-02-12 or later.
* @parma {ResourceTypes}              [args.resourceType]                                 The resource type, if the resource is a blob or container.  Null if the resource is a queue or table.
* @parma {ResourceTypes}              [args.tableName]                                    The table name, if the resource is a table.  Null if the resource is a blob or queue.
* @param {object}                     [args.headers]                                      The optional header values to set for a blob returned wth this SAS.
* @param {string}                     [args.headers.CacheControl]                         The value of the Cache-Control response header to be returned when this SAS is used.
* @param {string}                     [args.headers.ContentType]                          The value of the Content-Type response header to be returned when this SAS is used.
* @param {string}                     [args.headers.ContentEncoding]                      The value of the Content-Encoding response header to be returned when this SAS is used.
* @param {string}                     [args.headers.ContentLanguage]                      The value of the Content-Language response header to be returned when this SAS is used.
* @param {string}                     [args.headers.ContentDisposition]                   The value of the Content-Disposition response header to be returned when this SAS is used.
* @return {string} The shared access signature.
*/
SharedKey.prototype._generateSignature = function (serviceType, path, sharedAccessPolicy, sasVersion, args) {
  var getvalueToAppend = function (value, noNewLine) {
    var returnValue = '';
    if (!azureutil.objectIsNull(value)) {
      returnValue = value;
    }

    if (noNewLine !== true) {
      returnValue += '\n';
    }

    return returnValue;
  };

  // set up optional args
  var resourceType;
  var tableName;
  var headers;
  if(args) {
    resourceType = args.resourceType;
    tableName = args.tableName;
    headers = args.headers;
  }

  // Add leading slash to path
  if (path.substr(0, 1) !== '/') {
    path = '/' + path;
  }

  var canonicalizedResource;
  if (sasVersion === CompatibleVersionConstants.FEBRUARY_2012 || sasVersion === CompatibleVersionConstants.AUGUST_2013) {
    // Do not prepend service name for older versions
    canonicalizedResource = '/' + this.storageAccount + path;
  } else {
    canonicalizedResource = '/' + serviceType + '/' + this.storageAccount + path;
  }

  var stringToSign = getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.Permissions : '') +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.Start : '') +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.Expiry : '') +
      getvalueToAppend(canonicalizedResource) +
      getvalueToAppend(sharedAccessPolicy.Id) +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.IPAddressOrRange : '') +
      getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.Protocols : '') +
      sasVersion;

  if(sasVersion == CompatibleVersionConstants.FEBRUARY_2012) {
    if(headers) {
      throw new ArgumentError('args.headers', SR.INVALID_HEADERS);
    }
  } else if (resourceType) {
    stringToSign += '\n' +
    getvalueToAppend(headers ? headers.cacheControl : '') +
    getvalueToAppend(headers ? headers.contentDisposition : '') +
    getvalueToAppend(headers ? headers.contentEncoding : '') +
    getvalueToAppend(headers ? headers.contentLanguage : '') +
    getvalueToAppend(headers ? headers.contentType : '', true);
  }

  if(tableName) {
    stringToSign += '\n' + 
    getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.StartPk : '') +
    getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.StartRk : '') +
    getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.EndPk : '') +
    getvalueToAppend(sharedAccessPolicy.AccessPolicy ? sharedAccessPolicy.AccessPolicy.EndRk : '', true);
  }

  return this.signer.sign(stringToSign);
};

module.exports = SharedKey;

/***/ }),
/* 577 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var crypto = __webpack_require__(57);

/**
* Creates a new HmacSHA256Sign object.
*
* @constructor
*/
function HmacSha256Sign(accessKey) {
  this._accessKey = accessKey;
  this._decodedAccessKey = Buffer.from(this._accessKey, 'base64');
}

/**
* Computes a signature for the specified string using the HMAC-SHA256 algorithm.
*
* @param {string} stringToSign The UTF-8-encoded string to sign.
* @return A String that contains the HMAC-SHA256-encoded signature.
*/
HmacSha256Sign.prototype.sign = function (stringToSign) {
  // Encoding the Signature
  // Signature=Base64(HMAC-SHA256(UTF8(StringToSign)))

  return crypto.createHmac('sha256', this._decodedAccessKey).update(stringToSign, 'utf-8').digest('base64');
};

module.exports = HmacSha256Sign;

/***/ }),
/* 578 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 
var HmacSha256Sign = __webpack_require__(577);
var Constants = __webpack_require__(275);
var SR = __webpack_require__(278);

/**
* Creates a new SharedAccessSignature object.
*
* @constructor
* @param {string} sasToken    The sasToken.
*/
function SharedAccessSignature(sasToken) {
  this.sasToken = sasToken;
  this.signer = new HmacSha256Sign(sasToken);
}

/**
* Signs a request with the signature header.
*
* @this {SharedAccessSignature}
* @param {WebResource} The webresource to be signed.
* @param {function(error)}  callback  The callback function.
*/
SharedAccessSignature.prototype.signRequest = function (webResource, callback) {
  if (webResource.uri.indexOf('?') === -1) {
    webResource.uri += '?';
  } else {
    webResource.uri += '&';
  }

  webResource.uri += this.sasToken;

  // Add the api-version
  if (this.sasToken.indexOf('api-version') == -1) {
    webResource.uri += '&' + Constants.QueryStringConstants.API_VERSION + '=' + Constants.HeaderConstants.TARGET_STORAGE_VERSION;
  } else {
    throw new SyntaxError(SR.INVALID_SAS_TOKEN);
  }
  callback(null);
};

module.exports = SharedAccessSignature;


/***/ }),
/* 579 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var Constants = __webpack_require__(275);
var HeaderConstants = Constants.HeaderConstants;

/**
* Creates a new TokenSigner object.
*
* @constructor
* @param {TokenCredential} tokenCredential The token credential, such as containing an OAuth access token.
*/
function TokenSigner (tokenCredential) {
  this.tokenCredential = tokenCredential;
}

/**
* Signs a request with the Authentication header.
*
* @param {WebResource}      webResource The webresource to be signed.
* @param {function(error)}  callback    The callback function.
*/
TokenSigner.prototype.signRequest = function (webResource, callback) {
  webResource.withHeader(HeaderConstants.AUTHORIZATION, 'Bearer ' + this.tokenCredential.get());
  callback(null);
};

module.exports = TokenSigner;

/***/ }),
/* 580 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 
exports = module.exports;

exports.parse = function (serviceStatsXml) {
  var serviceStats = {};

  if (typeof serviceStatsXml.GeoReplication !== 'undefined') {   
    serviceStats.GeoReplication = {};

    if (typeof serviceStatsXml.GeoReplication.Status !== 'undefined') {
      serviceStats.GeoReplication.Status = serviceStatsXml.GeoReplication.Status;
    }

    if (typeof serviceStatsXml.GeoReplication.LastSyncTime !== 'undefined' && serviceStatsXml.GeoReplication.LastSyncTime !== '') {
      serviceStats.GeoReplication.LastSyncTime = new Date(serviceStatsXml.GeoReplication.LastSyncTime);
    }
  }

  return serviceStats;
};

/***/ }),
/* 581 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var _ = __webpack_require__(271);
var xmlbuilder = __webpack_require__(281);

var azureutil = __webpack_require__(273);
var ISO8061Date = __webpack_require__(582);
var Constants = __webpack_require__(275);
var AclConstants = Constants.AclConstants;

exports = module.exports;

/**
* Builds an XML representation for container acl permissions.
*
* @param  {Object.<string, AccessPolicy>}  entity The signed identifiers.
* @return {string} The XML container acl permissions.
*/
exports.serialize = function (signedIdentifiersJs) {
  var doc = xmlbuilder.create(AclConstants.SIGNED_IDENTIFIERS_ELEMENT, { version: '1.0', encoding: 'utf-8' });

  var keys = Object.keys(signedIdentifiersJs);
  if (keys.length > 0) {
    keys.forEach(function (key) {
      var accessPolicy = signedIdentifiersJs[key];
      doc = doc
        .ele(AclConstants.SIGNED_IDENTIFIER_ELEMENT)
          .ele(AclConstants.ID)
            .txt(key)
          .up()
          .ele(AclConstants.ACCESS_POLICY);

      if (accessPolicy.Start) {
        var startIsoString = accessPolicy.Start;
        if (!_.isDate(startIsoString)) {
          startIsoString = new Date(startIsoString);
        }

        // Convert to expected ISO 8061 date format
        startIsoString = ISO8061Date.format(startIsoString);

        doc = doc
            .ele(AclConstants.START)
              .txt(startIsoString)
            .up();
      }

      if (accessPolicy.Expiry) {
        var expiryIsoString = accessPolicy.Expiry;
        if (!_.isDate(expiryIsoString)) {
          expiryIsoString = new Date(expiryIsoString);
        }

        // Convert to expected ISO 8061 date format
        expiryIsoString = ISO8061Date.format(expiryIsoString);

        doc = doc
            .ele(AclConstants.EXPIRY)
              .txt(expiryIsoString)
            .up();
      }

      if (accessPolicy.Permissions) {
        doc = doc
            .ele(AclConstants.PERMISSION)
              .txt(accessPolicy.Permissions)
            .up();
      }

      doc = doc.up().up();
    });
  }
  return doc.doc().toString();
};

exports.parse = function (signedIdentifiersXml) {
  var signedIdentifiers = {};

  signedIdentifiersXml = azureutil.tryGetValueChain(signedIdentifiersXml, [ 'SignedIdentifiers', 'SignedIdentifier' ]);
  if (signedIdentifiersXml) {
    if (!_.isArray(signedIdentifiersXml)) {
      signedIdentifiersXml = [ signedIdentifiersXml ];
    }

    signedIdentifiersXml.forEach(function (signedIdentifier) {
      var accessPolicy = {};
      if (signedIdentifier.AccessPolicy) {
        if (signedIdentifier.AccessPolicy.Start) {
          accessPolicy.Start = ISO8061Date.parse(signedIdentifier.AccessPolicy.Start);
        }

        if (signedIdentifier.AccessPolicy.Expiry) {
          accessPolicy.Expiry = ISO8061Date.parse(signedIdentifier.AccessPolicy.Expiry);
        }

        if (signedIdentifier.AccessPolicy.Permission) {
          accessPolicy.Permissions = signedIdentifier.AccessPolicy.Permission;
        }
      }

      signedIdentifiers[signedIdentifier.Id] = accessPolicy;
    });
  }

  return signedIdentifiers;
};

/***/ }),
/* 582 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var rightPad = function (n, number) {
  var currentN = '' + n;
  while (currentN.length < number) {
    currentN = currentN + '0';
  }

  return currentN;
};

/**
* Formats a date into an iso 8061 string.
*
* @param {date}    date The date to format.
* @param {bool}    skipMilliseconds Boolean value indicating if the miliseconds part of the date should not be included.
* @param {integer} millisecondsPading Number of digits to left pad the miliseconds.
* @return {string} The date formated in the ISO 8061 date format.
*/
exports.format = function (date) {
  var dateString = date.toISOString();
  return dateString.substring(0, dateString.length - 1) + '0000Z';
};

/**
* Parses an ISO 8061 date string into a date object.
*
* @param {string} stringDateTime The string with the date to parse in the ISO 8061 format.
* @return {date} The parsed date.
*/
exports.parse = function (stringDateTime) {
  var parts = stringDateTime.split('T');
  var ymd = parts[0].split('-');
  var time = parts[1].split('.');
  var hms = time[0].split(':');
  var ms = 0;
  if (time[1]) {
    ms = time[1].split('Z');
  }

  var date = new Date(Date.UTC(
    parseInt(ymd[0], 10),
    parseInt(ymd[1], 10) - 1,
    parseInt(ymd[2], 10),
    parseInt(hms[0], 10),
    parseInt(hms[1], 10),
    parseInt(hms[2], 10),
    Math.round(parseInt(rightPad(ms[0], 7), 10) / 10000)
  ));

  return date;
};

/***/ }),
/* 583 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
//

 
var RetryPolicyFilter = __webpack_require__(584);

/**
* Creates a new LinearRetryPolicyFilter instance.
* @class
* The LinearRetryPolicyFilter allows you to retry operations,
* using an linear back-off interval between retries.
* To apply a filter to service operations, use `withFilter`
* and specify the filter to be used when creating a service.
* @constructor
* @param {number} [retryCount=3]            The client retry count.
* @param {number} [retryInterval=30000]     The client retry interval, in milliseconds.
*
* @example
* var azure = require('azure-storage');
* var retryOperations = new azure.LinearRetryPolicyFilter();
* var blobService = azure.createBlobService().withFilter(retryOperations)
*/
function LinearRetryPolicyFilter(retryCount, retryInterval) {
  this.retryCount = retryCount ? retryCount : LinearRetryPolicyFilter.DEFAULT_CLIENT_RETRY_COUNT;
  this.retryInterval = retryInterval ? retryInterval : LinearRetryPolicyFilter.DEFAULT_CLIENT_RETRY_INTERVAL;
}

/**
* Represents the default client retry interval, in milliseconds.
*/
LinearRetryPolicyFilter.DEFAULT_CLIENT_RETRY_INTERVAL = 1000 * 30;

/**
* Represents the default client retry count.
*/
LinearRetryPolicyFilter.DEFAULT_CLIENT_RETRY_COUNT = 3;

/**
* Determines if the operation should be retried and how long to wait until the next retry.
*
 * @param {number} statusCode       The HTTP status code.
 * @param {object} requestOptions   The request options.
 * @return {retryInfo} Information about whether the operation qualifies for a retry and the retryInterval.
*/
LinearRetryPolicyFilter.prototype.shouldRetry = function (statusCode, requestOptions) {
  var retryData = (requestOptions && requestOptions.retryContext) ? requestOptions.retryContext : {};
  retryData.retryInterval = this.retryInterval;

  return RetryPolicyFilter._shouldRetryOnError(statusCode, requestOptions);
};

/**
* Handles an operation with a linear retry policy.
*
* @param {Object}   requestOptions The original request options.
* @param {function} next           The next filter to be handled.
*/
LinearRetryPolicyFilter.prototype.handle = function (requestOptions, next) {
  RetryPolicyFilter._handle(this, requestOptions, next);
};

module.exports = LinearRetryPolicyFilter;


/***/ }),
/* 584 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var azureutil = __webpack_require__(273);
var Constants = __webpack_require__(275);
var StorageUtilities = __webpack_require__(277);
var extend = __webpack_require__(113)._extend;

/**
* Creates a new RetryPolicyFilter instance.
* @class
* The RetryPolicyFilter allows you to retry operations,
* using a custom retry policy. Users are responsible to 
* define the shouldRetry method.
* To apply a filter to service operations, use `withFilter`
* and specify the filter to be used when creating a service.
* @constructor
* @param {number} [retryCount=30000]        The client retry count.
* @param {number} [retryInterval=3]     The client retry interval, in milliseconds.
*
* @example
* var azure = require('azure-storage');
* var retryPolicy = new azure.RetryPolicyFilter();
* retryPolicy.retryCount = 3;
* retryPolicy.retryInterval = 3000;
* retryPolicy.shouldRetry = function(statusCode, retryContext) {
*
* };
* var blobService = azure.createBlobService().withFilter(retryPolicy);
*/
function RetryPolicyFilter(retryCount, retryInterval) {
  this.retryCount = retryCount ? retryCount : RetryPolicyFilter.DEFAULT_CLIENT_RETRY_COUNT;
  this.retryInterval = retryInterval ? retryInterval : RetryPolicyFilter.DEFAULT_CLIENT_RETRY_INTERVAL;
}

/**
* Represents the default client retry interval, in milliseconds.
*/
RetryPolicyFilter.DEFAULT_CLIENT_RETRY_INTERVAL = 1000 * 30;

/**
* Represents the default client retry count.
*/
RetryPolicyFilter.DEFAULT_CLIENT_RETRY_COUNT = 3;

/**
* Handles an operation with a retry policy.
*
* @param {Object}   requestOptions The original request options.
* @param {function} next           The next filter to be handled.
*/
RetryPolicyFilter.prototype.handle = function (requestOptions, next) {
  RetryPolicyFilter._handle(this, requestOptions, next);
};

/**
* Handles an operation with a retry policy.
*
* @param {Object}   requestOptions The original request options.
* @param {function} next           The next filter to be handled.
*/
RetryPolicyFilter._handle = function (self, requestOptions, next) {

  var retryRequestOptions = extend({}, requestOptions);
  retryRequestOptions.retryInterval = 0;

  // Initialize retryContext because that will be passed to the shouldRetry method which users will implement 
  retryRequestOptions.retryContext = {
    retryCount: 0,
    error: null,
    retryInterval: retryRequestOptions.retryInterval,
    locationMode: retryRequestOptions.locationMode,
    currentLocation: retryRequestOptions.currentLocation
  };

  var lastPrimaryAttempt;
  var lastSecondaryAttempt;
  var operation = function () {
    // retry policies dont really do anything to the request options
    // so move on to next
    if (next) {
      next(retryRequestOptions, function (returnObject, finalCallback, nextPostCallback) {
        // Previous operation ended so update the retry data
        if (returnObject.error) {
          if (retryRequestOptions.retryContext.error) {
            returnObject.error.innerError = retryRequestOptions.retryContext.error;
          }

          retryRequestOptions.retryContext.error = returnObject.error;
        }

        // If a request sent to the secondary location fails with 404 (Not Found), it is possible
        // that the resource replication is not finished yet. So, in case of 404 only in the secondary
        // location, the failure should still be retryable.
        var secondaryNotFound = (retryRequestOptions.currentLocation === Constants.StorageLocation.SECONDARY) && ((returnObject.response && returnObject.response.statusCode === 404) || (returnObject.error && returnObject.error.code === 'ENOTFOUND'));
 
        var notExceedMaxRetryCount = retryRequestOptions.retryContext.retryCount ? retryRequestOptions.retryContext.retryCount <= self.retryCount : true;
        var retryInfo = self.shouldRetry(secondaryNotFound ? 500 : (azureutil.objectIsNull(returnObject.response) ? 306 : returnObject.response.statusCode), retryRequestOptions);
        retryRequestOptions.retryContext.retryCount++;

        if (retryInfo.ignore) {
          returnObject.error = null;
        }

        // If the custom retry logic(shouldRetry) does not return a targetLocation, calculate based on the previous location and locationMode.
        if(azureutil.objectIsNull(retryInfo.targetLocation)) {
          retryInfo.targetLocation = azureutil.getNextLocation(retryRequestOptions.currentLocation, retryRequestOptions.locationMode);
        }

        // If the custom retry logic(shouldRetry) does not return a retryInterval, try to set it to the value on the instance if it is available. Otherwise, the default(30000) will be used.
        if(azureutil.objectIsNull(retryInfo.retryInterval)) {
          retryInfo.retryInterval = self.retryInterval;
        }
        
        // Only in the case of success from server but client side failure like MD5 or length mismatch, returnObject.retryable has a value(we explicitly set it to false). 
        // In this case, we should not retry the request.
        // If the output stream already get sent to server and get error back, 
        // we should NOT retry within the SDK as the stream data is not valid anymore if we retry directly.
        if (
            !returnObject.outputStreamSent && returnObject.error && azureutil.objectIsNull(returnObject.retryable) && notExceedMaxRetryCount &&
            (
              (!azureutil.objectIsNull(returnObject.response) && retryInfo.retryable) || 
              (
                returnObject.error.code === 'ECONNREFUSED' ||
                returnObject.error.code === 'ETIMEDOUT' ||
                returnObject.error.code === 'ESOCKETTIMEDOUT' || 
                returnObject.error.code === 'ECONNRESET' || 
                returnObject.error.code === 'EAI_AGAIN' ||
                returnObject.error.message === 'XHR error' // stream-http XHR network error message in browsers
              )
            )
          ) {
          if (retryRequestOptions.currentLocation === Constants.StorageLocation.PRIMARY) {
            lastPrimaryAttempt = returnObject.operationEndTime;
          } else {
            lastSecondaryAttempt = returnObject.operationEndTime;
          }

          // Moreover, in case of 404 when trying the secondary location, instead of retrying on the
          // secondary, further requests should be sent only to the primary location, as it most
          // probably has a higher chance of succeeding there.
          if (secondaryNotFound && (retryRequestOptions.locationMode !== StorageUtilities.LocationMode.SECONDARY_ONLY))
          {
            retryInfo.locationMode = StorageUtilities.LocationMode.PRIMARY_ONLY;
            retryInfo.targetLocation = Constants.StorageLocation.PRIMARY;
          }

          // Now is the time to calculate the exact retry interval. ShouldRetry call above already
          // returned back how long two requests to the same location should be apart from each other.
          // However, for the reasons explained above, the time spent between the last attempt to
          // the target location and current time must be subtracted from the total retry interval
          // that ShouldRetry returned.
          var lastAttemptTime = retryInfo.targetLocation === Constants.StorageLocation.PRIMARY ? lastPrimaryAttempt : lastSecondaryAttempt;
          if (!azureutil.objectIsNull(lastAttemptTime)) {
            var sinceLastAttempt = new Date().getTime() - lastAttemptTime.getTime();
            if (sinceLastAttempt < 0) {
              sinceLastAttempt = 0;
            }

            retryRequestOptions.retryInterval = retryInfo.retryInterval - sinceLastAttempt;
          }
          else {
            retryRequestOptions.retryInterval = 0;
          }

          if(!azureutil.objectIsNull(retryInfo.locationMode)) {
            retryRequestOptions.locationMode = retryInfo.locationMode;
          }

          retryRequestOptions.currentLocation = retryInfo.targetLocation;
          operation();
        } else {
          if (nextPostCallback) {
            nextPostCallback(returnObject);
          } else if (finalCallback) {
            finalCallback(returnObject);
          }
        }
      });
    }
  };

  operation();
};

RetryPolicyFilter._shouldRetryOnError = function (statusCode, requestOptions) {
  var retryInfo = (requestOptions && requestOptions.retryContext) ? requestOptions.retryContext : {};

  // Non-timeout Cases
  if (statusCode >= 300 && statusCode != 408) {
    // Always no retry on "not implemented" and "version not supported"
    if (statusCode == 501 || statusCode == 505) {
      retryInfo.retryable = false;
      return retryInfo;
    }
    
    // When absorbConditionalErrorsOnRetry is set (for append blob)
    if (requestOptions && requestOptions.absorbConditionalErrorsOnRetry) {
      if (statusCode == 412) {
        // When appending block with precondition failure and their was a server error before, we ignore the error.
        if (retryInfo.lastServerError) {
          retryInfo.ignore = true;
          retryInfo.retryable = true;
        } else {
          retryInfo.retryable = false;
        }
      } else if (statusCode >= 500 && statusCode < 600) {
        // Retry on the server error
        retryInfo.retryable = true;
        retryInfo.lastServerError = true;
      }
    } else if (statusCode < 500) {
      // No retry on the client error
      retryInfo.retryable = false;
    }
  }

  return retryInfo;
};

module.exports = RetryPolicyFilter;


/***/ }),
/* 585 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 



var RetryPolicyFilter = __webpack_require__(584);
/**
* Creates a new 'ExponentialRetryPolicyFilter' instance.
* @class
* The ExponentialRetryPolicyFilter allows you to retry operations,
* using an exponential back-off interval between retries.
* To apply a filter to service operations, use `withFilter`
* and specify the filter to be used when creating a service.
* @constructor
* @param {number} [retryCount=3]            The client retry count.
* @param {number} [retryInterval=30000]     The client retry interval, in milliseconds.
* @param {number} [minRetryInterval=3000]   The minimum retry interval, in milliseconds.
* @param {number} [maxRetryInterval=90000]  The maximum retry interval, in milliseconds.
* 
* @example
* var azure = require('azure-storage');
* var retryOperations = new azure.ExponentialRetryPolicyFilter();
* var blobService = azure.createBlobService().withFilter(retryOperations)
*/
function ExponentialRetryPolicyFilter(retryCount, retryInterval, minRetryInterval, maxRetryInterval) {
  this.retryCount = retryCount ? retryCount : ExponentialRetryPolicyFilter.DEFAULT_CLIENT_RETRY_COUNT;
  this.retryInterval = retryInterval ? retryInterval : ExponentialRetryPolicyFilter.DEFAULT_CLIENT_RETRY_INTERVAL;
  this.minRetryInterval = minRetryInterval ? minRetryInterval : ExponentialRetryPolicyFilter.DEFAULT_CLIENT_MIN_RETRY_INTERVAL;
  this.maxRetryInterval = maxRetryInterval ? maxRetryInterval : ExponentialRetryPolicyFilter.DEFAULT_CLIENT_MAX_RETRY_INTERVAL;
}

/**
* Represents the default client retry interval, in milliseconds.
*/
ExponentialRetryPolicyFilter.DEFAULT_CLIENT_RETRY_INTERVAL = 1000 * 30;

/**
* Represents the default client retry count.
*/
ExponentialRetryPolicyFilter.DEFAULT_CLIENT_RETRY_COUNT = 3;

/**
* Represents the default maximum retry interval, in milliseconds.
*/
ExponentialRetryPolicyFilter.DEFAULT_CLIENT_MAX_RETRY_INTERVAL = 1000 * 90;

/**
* Represents the default minimum retry interval, in milliseconds.
*/
ExponentialRetryPolicyFilter.DEFAULT_CLIENT_MIN_RETRY_INTERVAL = 1000 * 3;

/**
 * Determines if the operation should be retried and how long to wait until the next retry.
 *
 * @param {number} statusCode The HTTP status code.
 * @param {object} requestOptions  The request options.
 * @return {retryInfo} Information about whether the operation qualifies for a retry and the retryInterval.
 */
ExponentialRetryPolicyFilter.prototype.shouldRetry = function (statusCode, requestOptions) {
  var retryData = (requestOptions && requestOptions.retryContext) ? requestOptions.retryContext : {};

  // Adjust retry interval
  var incrementDelta = Math.pow(2, retryData.retryCount) - 1;
  var boundedRandDelta = this.retryInterval * 0.8 + Math.floor(Math.random() * (this.retryInterval * 1.2 - this.retryInterval * 0.8));
  incrementDelta *= boundedRandDelta;
      
  retryData.retryInterval = Math.min(this.minRetryInterval + incrementDelta, this.maxRetryInterval);

  return RetryPolicyFilter._shouldRetryOnError(statusCode, requestOptions);
};

/**
* Handles an operation with an exponential retry policy.
*
* @param {Object}   requestOptions The original request options.
* @param {function} next           The next filter to be handled.
*/
ExponentialRetryPolicyFilter.prototype.handle = function (requestOptions, next) {
  RetryPolicyFilter._handle(this, requestOptions, next);
};

module.exports = ExponentialRetryPolicyFilter;


/***/ }),
/* 586 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var util = __webpack_require__(113);
var http = __webpack_require__(326);
var https = __webpack_require__(327);
var EventEmitter = __webpack_require__(237).EventEmitter;
var os = __webpack_require__(56);

var azureutil = __webpack_require__(273);
var Logger = __webpack_require__(304);
var Constants = __webpack_require__(275);
var errors = __webpack_require__(306);
var ArgumentError = errors.ArgumentError;

var DEFAULT_OPERATION_MEMORY_USAGE = Constants.BlobConstants.DEFAULT_WRITE_BLOCK_SIZE_IN_BYTES;
var DEFAULT_CRITICAL_MEMORY_LIMITATION_32_IN_BYTES = Constants.BlobConstants.DEFAULT_CRITICAL_MEMORY_LIMITATION_32_IN_BYTES;
var DEFAULT_CRITICAL_MEMORY_LIMITATION_BROWSER_IN_BYTES = Constants.BlobConstants.DEFAULT_CRITICAL_MEMORY_LIMITATION_BROWSER_IN_BYTES;
var DEFAULT_MINIMUM_MEMORY_USAGE_BROWSER_IN_BYTES = Constants.BlobConstants.DEFAULT_MINIMUM_MEMORY_USAGE_BROWSER_IN_BYTES;
var DEFAULT_GLOBAL_CONCURRENCY = 5; //Default http connection limitation for nodejs

var SystemTotalMemory = os.totalmem();
var CriticalFreeMemory = 0.1 * SystemTotalMemory;
var nodeVersion = azureutil.getNodeVersion();

/**
* Concurrently execute batch operations and call operation callback randomly or in sequence.
* Random mode is for uploading.
*   1. Fire user callback when the operation is done.
* Sequence mode is for downloading.
*   1. Fire user callback when the operation is done and all previous operations and callback has finished.
*   2. BatchOperation guarantees the user callback is fired one by one.
*   3. The next user callback can't be fired until the current one is completed.
*/
function BatchOperation(name, options) {
  if (!options) {
    options = {};
  }

  this.name = name;
  this.logger = options.logger || new Logger(Logger.LogLevels.INFO);
  this.operationMemoryUsage = options.operationMemoryUsage || DEFAULT_OPERATION_MEMORY_USAGE;
  this.callbackInOrder = options.callbackInOrder === true;
  this.callInOrder = options.callInOrder === true;
  this._currentOperationId = this.callbackInOrder ? 1 : -1;
  this.concurrency = DEFAULT_GLOBAL_CONCURRENCY;
  this.enableReuseSocket = (nodeVersion.major > 0 || nodeVersion.minor >= 10) && options.enableReuseSocket;

  this._emitter = new EventEmitter();
  this._enableComplete = false;
  this._ended = false;
  this._error = null;
  this._paused = false;

  //Total operations count(queued and active and connected)
  this._totalOperation = 0;

  //Action operations count(The operations which are connecting to remote or executing callback or queued for executing)
  this._activeOperation = 0;

  //Queued operations count(The operations which are connecting to remote or queued for executing)
  this._queuedOperation = 0;

  //finished operation should be removed from this array
  this._operations = [];
}

/**
* Operation state
*/
var OperationState = {
  INITED : 'inited',
  QUEUED : 'queued',
  RUNNING : 'running',
  COMPLETE : 'complete',
  CALLBACK : 'callback',
  ERROR : 'error'
};

BatchOperation.OperationState = OperationState;

/**
* Set batch operation concurrency
*/
BatchOperation.prototype.setConcurrency = function(concurrency) {
  if (concurrency) {
    this.concurrency = concurrency;
    http.Agent.maxSockets = this.concurrency;
    https.Agent.maxSockets = this.concurrency;
  }
};

/**
* Is the workload heavy and It can be used to determine whether we could queue operations
*/
BatchOperation.prototype.IsWorkloadHeavy = function() {
  //Only support one batch operation for now.
  //In order to work with the multiple batch operation, we can use global operation track objects
  //BatchOperation acquire a bunch of operation ids from global and allocated ids to RestOperation
  //RestOperation start to run in order of id
  var sharedRequest = 1;
  if(this.enableReuseSocket && !this.callInOrder) {
    sharedRequest = 2;
  }
  return this._activeOperation >= sharedRequest * this.concurrency || this._isLowMemory();
};

/**
* Get the approximate memory usage for batch operation.
*/
BatchOperation.prototype._getApproximateMemoryUsage = function() {
  var currentUsage = azureutil.isBrowser() ? DEFAULT_MINIMUM_MEMORY_USAGE_BROWSER_IN_BYTES : process.memoryUsage().rss; // Currently, we cannot get memory usage in browsers
  var futureUsage = this._queuedOperation * this.operationMemoryUsage;
  return currentUsage + futureUsage;
};

/**
* Return whether in a low memory situation.
*/
BatchOperation.prototype._isLowMemory = function() {  
  var approximateMemoryUsage = this._getApproximateMemoryUsage();
  return os.freemem() < CriticalFreeMemory ||
    (this._activeOperation >= this.concurrency && approximateMemoryUsage > 0.5 * SystemTotalMemory) ||
    (azureutil.is32() && approximateMemoryUsage > DEFAULT_CRITICAL_MEMORY_LIMITATION_32_IN_BYTES) ||
    (azureutil.isBrowser() && approximateMemoryUsage > DEFAULT_CRITICAL_MEMORY_LIMITATION_BROWSER_IN_BYTES);
};

/**
* Add a operation into batch operation
*/
BatchOperation.prototype.addOperation = function(operation) {
  this._operations.push(operation);
  operation.status = OperationState.QUEUED;
  operation.operationId = ++this._totalOperation;
  this._queuedOperation++;
  this.logger.debug(util.format('Add operation %d into batch operation %s. Active: %s; Queued: %s', operation.operationId, this.name, this._activeOperation, this._queuedOperation));
  //Immediately start the idle operation if workload isn't heavy
  this._runOperation(operation);
  return this.IsWorkloadHeavy();
};

/**
* Enable batch operation complete when there is no operation to run.
*/
BatchOperation.prototype.enableComplete = function() {
  this._enableComplete = true;
  this.logger.debug(util.format('Enable batch operation %s complete', this.name));
  this._tryEmitEndEvent();
};

/**
* Stop firing user call back
*/
BatchOperation.prototype.pause = function () {
  this._paused = true;
};

/**
* Start firing user call back
*/
BatchOperation.prototype.resume = function () {
  if (this._paused) {
    this._paused = false;
    this._fireOperationUserCallback();
  }
};

/**
* Add event listener
*/
BatchOperation.prototype.on = function(event, listener) {
  // only emit end if the batch has completed all operations
  if(this._ended && event === 'end') {
    listener();
  } else {
    this._emitter.on(event, listener);
  }
};

/**
* Run operation
*/
BatchOperation.prototype._runOperation = function (operation) {
  this.logger.debug(util.format('Operation %d start to run', operation.operationId));
  var cb = this.getBatchOperationCallback(operation);

  if(this._error) {
    cb(this._error);//Directly call the callback with previous error.
  } else {
    operation.run(cb);
  }

  this._activeOperation++;
};

/**
* Return an general operation call back.
* This callback is used to update the internal status and fire user's callback when operation is complete.
*/
BatchOperation.prototype.getBatchOperationCallback = function (operation) {
  var self = this;
  return function (error) {
    self._queuedOperation--;
    if (error) {
      operation.status = OperationState.ERROR;
      self.logger.debug(util.format('Operation %d failed. Error %s', operation.operationId, error));
      self._error = error;
    } else {
      operation.status = OperationState.CALLBACK;
      self.logger.debug(util.format('Operation %d succeed', operation.operationId));
    }

    operation._callbackArguments = arguments;
    if (self._paused) {
      operation.status = OperationState.CALLBACK;
      self.logger.debug(util.format('Batch operation paused and Operation %d wait for firing callback', operation.operationId));
    } else if (self.callbackInOrder) {
      operation.status = OperationState.CALLBACK;
      if (self._currentOperationId === operation.operationId) {
        self._fireOperationUserCallback(operation);
      } else if (self._currentOperationId > operation.operationId) {
        throw new Error('Debug error: current callback operation id cannot be larger than operation id');
      } else {
        self.logger.debug(util.format('Operation %d is waiting for firing callback %s', operation.operationId, self._currentOperationId));
      }
    } else {
      self._fireOperationUserCallback(operation);
    }

    self._tryEmitDrainEvent();
    operation = null;
    self = null;
  };
};

/**
* Fire user's call back
*/
BatchOperation.prototype._fireOperationUserCallback = function (operation) {
  var index = this._getCallbackOperationIndex();
  if (!operation && index != -1) {
    operation = this._operations[index];
  }

  if (operation && !this._paused) {
    // fire the callback, if exists
    if (operation._userCallback) {
      this.logger.debug(util.format('Fire user call back for operation %d', operation.operationId));
      // make sure UserCallback is a sync operation in sequence mode.
      // both async and sync operations are available for random mode.
      operation._fireUserCallback();
    }
    
    // remove the operation from the array and decrement the counter
    this._operations.splice(index, 1);
    this._activeOperation--;
    operation.status = OperationState.COMPLETE;
    index = operation = null;

    if (this.callbackInOrder) {
      this._currentOperationId++;
    }

    this._fireOperationUserCallback();
  } else if (this._paused) {
    this._tryEmitDrainEvent();
  } else {
    // check if batch has ended and if so emit end event
    this._tryEmitEndEvent();
  }
};

/**
* Try to emit the BatchOperation end event
* End event means all the operation and callback already finished.
*/
BatchOperation.prototype._tryEmitEndEvent = function () {
  if(this._enableComplete && this._activeOperation === 0 && this._operations.length === 0) {
    this._ended = true;
    this.logger.debug(util.format('Batch operation %s emits the end event', this.name));
    this._emitter.emit('end', this._error, null);
    return true;
  }
  
  // Workaround to recover from the 'hang' edge case. _tryEmitEndEvent function is not supposed to be called if the bacth is not really completed.
  this._tryEmitDrainEvent();
  return false;
};

/**
* Try to emit the drain event
*/
BatchOperation.prototype._tryEmitDrainEvent = function () {
  if (!this._emitter) return false;
  if(!this.IsWorkloadHeavy() || this._activeOperation < this.concurrency) {
    this._emitter.emit('drain');
    return true;
  }
  return false;
};

/**
* Get the current active operation index.
* Only the active operation could call user's callback in sequence model.
* The other finished but not active operations should wait for wake up.
*/
BatchOperation.prototype._getCallbackOperationIndex = function () {
  var operation = null;
  for (var i = 0; i < this._operations.length; i++) {
    operation = this._operations[i];
    if (this.callbackInOrder) {
      //Sequence mode
      if (operation.operationId == this._currentOperationId) {
        if (operation.status === OperationState.CALLBACK) {
          return i;
        } else {
          return -1;
        }
      }
    } else {
      //Random mode
      if (operation.status === OperationState.CALLBACK) {
        return i;
      }
    }
  }
  return -1;
};

/**
* Do nothing and directly call the callback.
* In random mode, the user callback will be called immediately
* In sequence mode, the user callback will be called after the previous callback has been called
*/
BatchOperation.noOperation = function (cb) {
  cb();
};

/**
* Rest operation in sdk
*/
function RestOperation(serviceClient, operation) {
  this.status = OperationState.Inited;
  this.operationId = -1;
  this._callbackArguments = null;

  // setup callback and args
  this._userCallback = arguments[arguments.length - 1];
  var sliceEnd = arguments.length;
  if(azureutil.objectIsFunction(this._userCallback)) {
    sliceEnd--;
  } else {
    this._userCallback = null;
  }
  var operationArguments = Array.prototype.slice.call(arguments).slice(2, sliceEnd);

  this.run = function(cb) {
    var func = serviceClient[operation];
    if(!func) {
      throw new ArgumentError('operation', util.format('Unknown operation %s in serviceclient', operation));
    } else {
      if(!cb) cb = this._userCallback;
      operationArguments.push(cb);
      this.status = OperationState.RUNNING;
      func.apply(serviceClient, operationArguments);
      operationArguments = operation = null;
    }
  };

  this._fireUserCallback = function () {
    if(this._userCallback) {
      this._userCallback.apply(null, this._callbackArguments);
    }
  };
}

BatchOperation.RestOperation = RestOperation;

/**
* Common operation wrapper
*/
function CommonOperation(operationFunc, callback) {
  this.status = OperationState.Inited;
  this.operationId = -1;
  this._callbackArguments = null;
  var sliceStart = 2;
  if (azureutil.objectIsFunction(callback)) {
    this._userCallback = callback;
  } else {
    this._userCallback = null;
    sliceStart = 1;
  }
  var operationArguments = Array.prototype.slice.call(arguments).slice(sliceStart);
  this.run = function (cb) {
    if (!cb) cb = this._userCallback;
    operationArguments.push(cb);
    this.status = OperationState.RUNNING;
    operationFunc.apply(null, operationArguments);
    operationArguments = operationFunc = null;
  };
  
  this._fireUserCallback = function () {
    if (this._userCallback) {
      this._userCallback.apply(null, this._callbackArguments);
    }
    this._userCallback = this._callbackArguments = null;
  };
}

BatchOperation.CommonOperation = CommonOperation;

module.exports = BatchOperation;


/***/ }),
/* 587 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 
/**
* Chunked memory pool allocator.
* It could dramatically reduce the memory usage.
* However, it can't dramatically reduce the CPU time since GC in v8 is very efficient.
*/
function ChunkAllocator(chunkSize, maxCount) {
  // Track the unused buffers and number of used buffers
  this._pool = [];
  this._inuse = 0;

  // Buffer size
  this._chunkSize = chunkSize;

  // If total memory is larger than this._chunkSize * this._maxCount, the buffer pool is not used.
  this._maxCount = maxCount || 10;

  // Immediately add a buffer to the pool.
  this._extendMemoryPool();
}

/**
* Synchronously require a buffer
* Caller should be aware of that the content of buffer is random since the Buffer.fill is Time-consumed opreation.
*/
ChunkAllocator.prototype.getBuffer = function(size) {
  var buffer = this._getBufferFromPool(size);
  if (buffer === null) {
    // Either the total memory is larger than this._chunkSize * this._maxCount
    // Or, the size does not match the chunk size of the pool
    buffer = Buffer.alloc(size);
  }

  this._inuse++;
  return buffer;
};

/**
* Get buffer from the current memory pool.
*/
ChunkAllocator.prototype._getBufferFromPool = function(size) {
  // Return null if the given size does not match the chunk size of the buffer pool.
  if(size !== this._chunkSize) {
    return null;
  } 

  // Extend the memory pool if it is empty.
  if(this._pool.length === 0) {
    this._extendMemoryPool();
  }

  // If the pool is not empty, return a buffer.
  if(this._pool.length !== 0) {
    return this._pool.pop();
  } else {
    return null;
  }
};

/**
* Extend the memory pool if the maximum size has not been reached.
*/
ChunkAllocator.prototype._extendMemoryPool = function() {
  var total = this._pool.length + this._inuse;

  // If the total is larger than the max, do not allocate more memory.
  if(total >= this._maxCount) return;

  // Calculate the new number of buffers, equal to the total*2 bounded by 1 and the maxCount
  var nextSize = Math.min(total * 2, this._maxCount) || 1;

  // Add more buffers.
  var increment = nextSize - total;
  for(var i = 0; i < increment; i++) {
    var buffer = Buffer.alloc(this._chunkSize);
    this._pool.push(buffer);
  }
};

/**
* Release the buffer.
*/
ChunkAllocator.prototype.releaseBuffer = function(buffer) {
  if(buffer.length !== this._chunkSize) {
    // Directly delete the buffer if bufferSize is invalid and wait for GC.
    buffer = null;
    return;
  }

  // Add the buffer to the pool if it is not full, otherwise delete it
  if (this._pool.length < this._maxCount) {
    this._pool.push(buffer);
  } else {
    buffer = null;
  }

  // Decrement _inuse 
  this._inuse--;

  // _inuse could be below zero if a buffer is released which was not returned by getBuffer
  if(this._inuse < 0) {
    this._inuse = 0;
  }
};

/**
* Destroy ChunkAllocator.
*/
ChunkAllocator.prototype.destroy = function() {
  this._pool = [];
  this._inuse = 0;
};

module.exports = ChunkAllocator;


/***/ }),
/* 588 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var stream = __webpack_require__(111);
var util = __webpack_require__(113);

var azureutil = __webpack_require__(273);
var Md5Wrapper = __webpack_require__(276);
var Constants = __webpack_require__(275);
var bufferSize = Constants.BlobConstants.DEFAULT_WRITE_BLOCK_SIZE_IN_BYTES;

/**
*  Chunk stream
*  1. Calculate md5
*  2. Track reading offset
*  3. Work with customize memory allocator
*  4. Buffer data from stream.
*  @param {object} options stream.Readable options
*/
function ChunkStream(options) {
  stream.Stream.call(this);
  this.writable = this.readable = true;

  if (!options) {
    options = {};
  }

  this._highWaterMark = options.highWaterMark || bufferSize;

  this._paused = undefined; //True/false is the external status from users.

  this._isStreamOpened = false;
  this._offset = 0;
  this._allocator = options.allocator;
  this._streamEnded = false;
  this._md5hash = null;
  this._buffer = null;
  this._internalBufferSize = 0;
  this._outputLengthLimit = 0;
  this._md5sum = undefined;

  if (options.calcContentMd5) {
    this._md5hash = new Md5Wrapper().createMd5Hash();
  }
}

util.inherits(ChunkStream, stream.Stream);

/**
* Set the memory allocator.
*/
ChunkStream.prototype.setMemoryAllocator = function(allocator) {
  this._allocator = allocator;
};

/**
* Set the output length.
*/
ChunkStream.prototype.setOutputLength = function(length) {
  if (length) {
    this._outputLengthLimit = length;
  }
};

/**
* Internal stream ended
*/
ChunkStream.prototype.end = function (chunk, encoding, cb) {
  if (typeof chunk === 'function') {
    cb = chunk;
    chunk = null;
    encoding = null;
  } else if (typeof encoding === 'function') {
    cb = encoding;
    encoding = null;
  }

  if (chunk) {
    this.write(chunk, encoding);
  }

  this._streamEnded = true;
  this._flushInternalBuffer();
  
  if (cb) {
    this.once('end', cb);
  }

  this.emit('end');
};

ChunkStream.prototype.finish = function () {
  this.emit('finish');

  this.destroy();
};

ChunkStream.prototype.error = function () {
  this.emit('error');

  this.destroy();
};

ChunkStream.prototype.destroy = function () {
  this.writable = this.readable = false;

  if (this._allocator && azureutil.objectIsFunction(this._allocator.destroy)) {
    this._allocator.destroy();
  }
  
  this.emit('close');
};

ChunkStream.prototype.stop = function () {
  this.destroy();
  this._streamEnded = true;
  this.emit('end');
};

/**
* Add event listener
*/
ChunkStream.prototype.write = function (chunk, encoding) {
  if (!this._isStreamOpened) {
    this._isStreamOpened = true;
  }

  this._buildChunk(chunk, encoding);

  return !this._paused;
};

/**
* Buffer the data into a chunk and emit it
*/
ChunkStream.prototype._buildChunk = function (data) {
  if (typeof data == 'string') {
    data = Buffer.from(data);
  }
  var dataSize = data.length;
  var dataOffset = 0;
  do {
    var buffer = null;
    var targetSize = this._internalBufferSize + dataSize;

    if (targetSize < this._highWaterMark) {
      // add the data to the internal buffer and return as it is not yet full
      this._copyToInternalBuffer(data, dataOffset, data.length);
      return;
    } else if (targetSize == this._highWaterMark){
      var canReleaseInnerStreamBuffer = this._stream && this._stream._allocator && this._stream._allocator.releaseBuffer;
      if(this._internalBufferSize === 0 && data.length === this._highWaterMark && !canReleaseInnerStreamBuffer) {
        // set the buffer to the data passed in to avoid creating a new buffer
        buffer = data;
      } else {
        // add the data to the internal buffer and pop that buffer
        this._copyToInternalBuffer(data, dataOffset, data.length);
        buffer = this._popInternalBuffer();
      }
      dataSize = 0;
    } else {
      // add data to the internal buffer until its full, then return it
      // set the dataSize parameter so that additional data is not lost
      var copySize = this._highWaterMark - this._internalBufferSize;
      this._copyToInternalBuffer(data, dataOffset, dataOffset + copySize);
      dataSize -= copySize;
      dataOffset += copySize;
      buffer = this._popInternalBuffer();
    }
    this._emitBufferData(buffer);
  } while(dataSize > 0);
};

/**
* Emit the buffer
*/
ChunkStream.prototype._emitBufferData = function(buffer) {
  var newOffset = this._offset + buffer.length;
  var range = {
    start : this._offset,
    end : newOffset - 1,
    size : buffer.length
  };

  this._offset = newOffset;
  
  if (this._outputLengthLimit > 0) {
    // When the start postion is larger than the limit, no data will be consumed though there is an event to be emitted.
    // So the buffer should not be calculated.
    if (range.start <= this._outputLengthLimit) {
      if (this._offset > this._outputLengthLimit) {
        // Don't use negative end parameter which means the index starting from the end of the buffer
        // to be compatible with node 0.8.
        buffer = buffer.slice(0, buffer.length - (this._offset - this._outputLengthLimit));
      }
      if (this._md5hash) {
        this._md5hash.update(buffer);
      }
    }
  } else if (this._md5hash) {
    this._md5hash.update(buffer);
  }

  this.emit('data', buffer, range);
};

/**
* Copy data into internal buffer
*/
ChunkStream.prototype._copyToInternalBuffer = function(data, start, end) {
  if(start === undefined) start = 0;
  if(end === undefined) end = data.length;
  if (!this._buffer) {
    this._buffer = this._allocateNewBuffer();
    this._internalBufferSize = 0;
  }
  var copied = data.copy(this._buffer, this._internalBufferSize, start, end);
  this._internalBufferSize += copied;

  if (this._stream && this._stream._allocator && this._stream._allocator.releaseBuffer) {
    this._stream._allocator.releaseBuffer(data);
  }

  if(copied != (end - start)) {
    throw new Error('Can not copy entire data to buffer');
  }
};

/**
* Flush internal buffer
*/
ChunkStream.prototype._flushInternalBuffer = function() {
  var buffer = this._popInternalBuffer();
  if (buffer) {
    this._emitBufferData(buffer);
  }
};

/**
* Pop internal buffer
*/
ChunkStream.prototype._popInternalBuffer = function () {
  var buf = null;
  if (!this._buffer || this._internalBufferSize === 0) {
    buf = null;
  } else if(this._internalBufferSize == this._highWaterMark) {
    buf = this._buffer;
  } else {
    buf = this._buffer.slice(0, this._internalBufferSize);
  }

  this._buffer = null;
  this._internalBufferSize = 0;

  return buf;
};

/**
* Allocate a buffer
*/
ChunkStream.prototype._allocateNewBuffer = function() {
  var size = this._highWaterMark;
  if(this._allocator && azureutil.objectIsFunction(this._allocator.getBuffer)) {
    return this._allocator.getBuffer(size);
  } else {
    var buffer = Buffer.alloc(size);
    return buffer;
  }
};

/**
* Get file content md5 when read completely.
*/
ChunkStream.prototype.getContentMd5 = function(encoding) {
  if (!encoding) encoding = 'base64';
  if(!this._md5hash) {
    throw new Error('Can\'t get content md5, please set the calcContentMd5 option for FileReadStream.');
  } else {
    if (this._streamEnded) {
      if (!this._md5sum) {
        this._md5sum = this._md5hash.digest(encoding);
      }
      return this._md5sum;
    } else {
      throw new Error('Stream has not ended.');
    }
  }
};

/**
* Pause chunk stream
*/
ChunkStream.prototype.pause = function() {
  this._paused = true;
};

/**
* Resume read stream
*/
ChunkStream.prototype.resume = function() {
  if (this._paused) {
    this._paused = false;

    this.emit('drain');
  }
};

module.exports = ChunkStream;

/***/ }),
/* 589 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var ChunkStream = __webpack_require__(588);
var EventEmitter = __webpack_require__(237).EventEmitter;
var util = __webpack_require__(113);
var azureutil = __webpack_require__(273);

/**
*  Chunk stream
*  1. Calculate md5
*  2. Track reading offset
*  3. Work with customize memory allocator
*  4. Buffer data from stream.
*  @param {object} options stream.Readable options
*/
function ChunkStreamWithStream(stream, options) {
  ChunkStream.call(this, options);

  stream.pause(); // Pause stream and wait for data listener. It's useful for node v0.8
  this._stream = stream;
  this._stream.on('end', this.end.bind(this)); // Should catch the end event for node v0.8
}

util.inherits(ChunkStreamWithStream, ChunkStream);

/**
* Add event listener
*/
ChunkStreamWithStream.prototype.on = function(event, listener) {
  if(event === 'end' && this._streamEnded) {
    listener(); //Directly call the end event when stream already ended
  } else {
    EventEmitter.prototype.on.call(this, event, listener);
  }

  if (event === 'data') {
    if (!this._isStreamOpened) {
      this._isStreamOpened = true;
      this._stream.on('data', this._buildChunk.bind(this));
    }
    if (this._paused === undefined) {
      this._stream.resume();
    }
  }
  
  return this;
};

/**
* Stop stream from external
*/
ChunkStreamWithStream.prototype.stop = function (chunk, encoding, cb) {
  if (azureutil.objectIsFunction(this._stream.destroy)) {
    this._stream.destroy();
  } else {
    this.pause();
  }
  ChunkStream.prototype.end.call(this, chunk, encoding, cb);
};

/**
* Pause chunk stream
*/
ChunkStreamWithStream.prototype.pause = function () {
  ChunkStream.prototype.pause.call(this);

  this._stream.pause();
};

/**
* Resume read stream
*/
ChunkStreamWithStream.prototype.resume = function() {
  ChunkStream.prototype.resume.call(this);

  this._stream.resume();
};

ChunkStreamWithStream.prototype.finish = function () {
  ChunkStream.prototype.finish.call(this);
  this._stream.emit.call(this._stream, 'finish');
};

ChunkStreamWithStream.prototype.destroy = function () {
  ChunkStream.prototype.destroy.call(this);
  this._stream.emit.call(this._stream, 'close');
};

module.exports = ChunkStreamWithStream;


/***/ }),
/* 590 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var EventEmitter = __webpack_require__(237);
var util = __webpack_require__(113);
var azureutil = __webpack_require__(273);

/**
* Blob upload/download speed summary.
* Trigger 'progress' event every progress updates.
*/
function SpeedSummary (name) {
  this.name = name;
  this._startTime = Date.now();
  this._timeWindowInSeconds = 10;
  this._timeWindow = this._timeWindowInSeconds * 1000;
  this._totalWindowSize = 0;
  this._speedTracks = new Array(this._timeWindowInSeconds);
  this._speedTrackPtr = 0;
  this.totalSize = undefined;
  this.completeSize = 0;
}

util.inherits(SpeedSummary, EventEmitter);

/**
* Convert the size to human readable size
*/
function toHumanReadableSize(size, len) {
  if(!size) return '0B';
  if (!len || len <= 0) {
    len = 2;
  }
  var units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
  var i = Math.floor( Math.log(size) / Math.log(1024));
  return (size/Math.pow(1024, i)).toFixed(len) + units[i];
}

/**
* Get running seconds
*/
SpeedSummary.prototype.getElapsedSeconds = function(humanReadable) {
  var now = Date.now();
  var seconds = parseInt((now - this._startTime) / 1000, 10);
  if (humanReadable !== false) {
    var s = parseInt(seconds % 60, 10);
    seconds /= 60;
    var m = Math.floor(seconds % 60);
    seconds /= 60;
    var h = Math.floor(seconds);
    seconds = util.format('%s:%s:%s', azureutil.zeroPaddingString(h, 2), azureutil.zeroPaddingString(m, 2), azureutil.zeroPaddingString(s, 2));
  }
  return seconds;
};

/**
* Get complete percentage
* @param {int} len The number of digits after the decimal point.
*/
SpeedSummary.prototype.getCompletePercent = function(len) {
  if (this.totalSize) {
    if(!len || len <= 0) {
      len = 1;
    }
    return (this.completeSize * 100 / this.totalSize).toFixed(len);
  } else {
    if(this.totalSize === 0) {
      return 100;
    } else {
      return 0;
    }
  }
};

/**
* Get average upload/download speed
*/
SpeedSummary.prototype.getAverageSpeed = function(humanReadable) {
  var elapsedTime = this.getElapsedSeconds(false);
  return this._getInternalSpeed(this.completeSize, elapsedTime, humanReadable);
};

/**
* Get instant speed
*/
SpeedSummary.prototype.getSpeed = function(humanReadable) {
  this._refreshSpeedTracks();
  var elapsedTime = this.getElapsedSeconds(false);
  elapsedTime = Math.min(elapsedTime, this._timeWindowInSeconds);
  return this._getInternalSpeed(this._totalWindowSize, elapsedTime, humanReadable);
};

/**
* Get internal speed
*/
SpeedSummary.prototype._getInternalSpeed = function(totalSize, elapsedTime, humanReadable) {
  if (elapsedTime <= 0) {
    elapsedTime = 1;
  }
  var speed = totalSize / elapsedTime;
  if(humanReadable !== false) {
    speed = toHumanReadableSize(speed) + '/s';
  }
  return speed;
};

/**
* Refresh speed tracks
*/
SpeedSummary.prototype._refreshSpeedTracks = function() {
  var now = Date.now();
  var totalSize = 0;
  for(var i = 0; i < this._speedTracks.length; i++) {
    if(!this._speedTracks[i]) continue;
    if(now - this._speedTracks[i].timeStamp <= this._timeWindow) {
      totalSize += this._speedTracks[i].size;
    } else {
      this._speedTracks[i] = null;
    }
  }
  this._totalWindowSize = totalSize;
};

/**
* Increment the complete data size
*/
SpeedSummary.prototype.increment = function(len) {
  this.completeSize += len;
  this._recordSpeed(len);

  var that = this;
  process.nextTick(function () {
    that.emit('progress');
  });

  return this.completeSize;
};

/**
* record complete size into speed tracks
*/
SpeedSummary.prototype._recordSpeed = function(completeSize) {
  var now = Date.now();
  var track = this._speedTracks[this._speedTrackPtr];
  if(track) {
    var timeDiff = now - track.timeStamp;
    if(timeDiff > this._timeWindow) {
      track.timeStamp = now;
      track.size = completeSize;
    } else if(timeDiff <= 1000) { //1 seconds
      track.size += completeSize;
    } else {
      this._speedTrackPtr = (this._speedTrackPtr + 1) % this._timeWindowInSeconds;
      this._recordSpeed(completeSize);
    }
  } else {
    track = {timeStamp : now, size: completeSize};
    this._speedTracks[this._speedTrackPtr] = track;
  }
};

/**
* Get auto increment function
*/
SpeedSummary.prototype.getAutoIncrementFunction = function(size) {
  var self = this;
  return function(error, retValue) {
    if(!error) {
      var doneSize = 0;
      if((!retValue && retValue !== 0) || isNaN(retValue)) {
        doneSize = size;
      } else {
        doneSize = retValue;
      }
      self.increment(doneSize);
    }
  };
};

/**
* Get total size
*/
SpeedSummary.prototype.getTotalSize = function(humanReadable) {
  if (humanReadable !== false) {
    return toHumanReadableSize(this.totalSize);
  } else {
    return this.totalSize;
  }
};

/**
* Get completed data size
*/
SpeedSummary.prototype.getCompleteSize = function(humanReadable) {
  if (humanReadable !== false) {
    return toHumanReadableSize(this.completeSize);
  } else {
    return this.completeSize;
  }
};

module.exports = SpeedSummary;


/***/ }),
/* 591 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

/**
* Date/time related helper functions
* @module date
* 
*/

/**
* Generates a Date object which is in the given days from now.
* 
* @param {int} days The days timespan.
* @return {Date}
*/
exports.daysFromNow = function (days) {
  var date = new Date();
  date.setDate(date.getDate() + days);
  return date;
};

/**
* Generates a Date object which is in the given hours from now.
*
* @param {int} hours The hours timespan.
* @return {Date}
*/
exports.hoursFromNow = function (hours) {
  var date = new Date();
  date.setHours(date.getHours() + hours);
  return date;
};

/**
* Generates a Date object which is in the given minutes from now.
*
* @param {int} minutes The minutes timespan.
* @return {Date}
*/
exports.minutesFromNow = function (minutes) {
  var date = new Date();
  date.setMinutes(date.getMinutes() + minutes);
  return date;
};

/**
* Generates a Date object which is in the given seconds from now.
*
* @param {int} seconds The seconds timespan.
* @return {Date}
*/
exports.secondsFromNow = function (seconds) {
  var date = new Date();
  date.setSeconds(date.getSeconds() + seconds);
  return date;
};

/***/ }),
/* 592 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Expose 'AccessCondition'.

/**
* Defines constants, enums, and utility functions for use with storage access condition.
* @namespace
*/



exports = module.exports;

/**
* Constructs an empty access condition.
*
* @return {object} An empty AccessCondition object
*/
exports.generateEmptyCondition = function () {
  return {};
};

/**
* Constructs an access condition such that an operation will be performed only if the resource does not exist on the service
*
* Setting this access condition modifies the request to include the HTTP If-None-Match conditional header

* @return {AccessConditions} An AccessCondition object that represents a condition that checks for nonexistence
*/
exports.generateIfNotExistsCondition = function () {
  var accessCondition = {};
  accessCondition.EtagNonMatch = '*';
  return accessCondition;
};

/**
* Constructs an access condition such that an operation will be performed only if the resource exists on the service
*
* Setting this access condition modifies the request to include the HTTP If-Match conditional header

* @return {AccessConditions} An AccessCondition object that represents a condition that checks for existence
*/
exports.generateIfExistsCondition = function () {
  var accessCondition = {};
  accessCondition.EtagMatch = '*';
  return accessCondition;
};

/**
* Constructs an access condition such that an operation will be performed only if the resource's ETag value 
* does not match the specified ETag value
*
* Setting this access condition modifies the request to include the HTTP If-None-Match conditional header
*
* @param  {string} etag                    The ETag value to check against the resource's ETag
* @return {AccessConditions}               An AccessCondition object that represents the If-None-Match condition
*/
exports.generateIfNoneMatchCondition = function (etag) {
  var accessCondition = {};
  accessCondition.EtagNonMatch = etag;
  return accessCondition;
};

/**
* Constructs an access condition such that an operation will be performed only if the resource's ETag value
* matches the specified ETag value
*
* Setting this access condition modifies the request to include the HTTP If-Match conditional header
*
* @param  {string} etag                    The ETag value to check against the resource's ETag
* @return {AccessConditions}               An AccessCondition object that represents the If-Match condition
*/
exports.generateIfMatchCondition = function (etag) {
  var accessCondition = {};
  accessCondition.EtagMatch = etag;
  return accessCondition;
};

/**
* Constructs an access condition such that an operation will be performed only if the resource has been
* modified since the specified time
*
* Setting this access condition modifies the request to include the HTTP If-Modified-Since conditional header
*
* @param  {Date|string}  time              A date object specifying the time since which the resource must have been modified
* @return {AccessConditions}               An AccessCondition object that represents the If-Modified-Since condition
*/
exports.generateIfModifiedSinceCondition = function (time) {
  var accessCondition = {};
  accessCondition.DateModifedSince = time;
  return accessCondition;
};

/**
* Constructs an access condition such that an operation will be performed only if the resource has not been
* modified since the specified time
*
* Setting this access condition modifies the request to include the HTTP If-Unmodified-Since conditional header
*
* @param  {Date|string}    time            A date object specifying the time since which the resource must have not been modified
* @return {AccessConditions}               An AccessCondition object that represents the If-Unmodified-Since condition
*/
exports.generateIfNotModifiedSinceCondition = function (time) {
  var accessCondition = {};
  accessCondition.DateUnModifiedSince = time;
  return accessCondition;
};

/**
* Constructs an access condition such that an operation will be performed only if the resource's sequence number
* is equal to the specified value
*
* Setting this access condition modifies the request to include the HTTP x-ms-if-sequence-number-eq conditional header
*
* @param  {Number|string}    sequenceNumber    A date object specifying the time since which the resource must have not been modified
* @return {AccessConditions}                   An AccessCondition object that represents the If-Unmodified-Since condition
*/
exports.generateSequenceNumberEqualCondition = function (sequenceNumber) {
  var accessCondition = {};
  accessCondition.SequenceNumberEqual = sequenceNumber;
  return accessCondition;
};

/**
* Constructs an access condition such that an operation will be performed only if the resource's sequence number
* is less than the specified value
*
* Setting this access condition modifies the request to include the HTTP x-ms-if-sequence-number-lt conditional header
*
* @param  {Number|string}    sequenceNumber    A date object specifying the time since which the resource must have not been modified
* @return {AccessConditions}                   An AccessCondition object that represents the If-Unmodified-Since condition
*/
exports.generateSequenceNumberLessThanCondition = function (sequenceNumber) {
  var accessCondition = {};
  accessCondition.SequenceNumberLessThan = sequenceNumber;
  return accessCondition;
};

/**
* Constructs an access condition such that an operation will be performed only if the resource's sequence number
* is less than or equal to the specified value
*
* Setting this access condition modifies the request to include the HTTP x-ms-if-sequence-number-le conditional header
*
* @param  {Number|string}    sequenceNumber    A date object specifying the time since which the resource must have not been modified
* @return {AccessConditions}                   An AccessCondition object that represents the If-Unmodified-Since condition
*/
exports.generateSequenceNumberLessThanOrEqualCondition = function (sequenceNumber) {
  var accessCondition = {};
  accessCondition.SequenceNumberLessThanOrEqual = sequenceNumber;
  return accessCondition;
};

/***/ }),
/* 593 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var util = __webpack_require__(113);
var azureCommon = __webpack_require__(272);
var SharedKey = azureCommon.SharedKey;
var azureutil = azureCommon.util;
var Constants = azureCommon.Constants;
var HeaderConstants = Constants.HeaderConstants;
var QueryStringConstants = Constants.QueryStringConstants;

/**
* Creates a new SharedKeyTable object.
*
* @constructor
* @param {string} storageAccount    The storage account.
* @param {string} storageAccessKey  The storage account's access key.
* @param {bool}   usePathStyleUri   Boolean value indicating if the path, or the hostname, should include the storage account.
*/
function SharedKeyTable(storageAccount, storageAccessKey, usePathStyleUri) {
  SharedKeyTable['super_'].call(this,
    storageAccount,
    storageAccessKey,
    usePathStyleUri);
}

util.inherits(SharedKeyTable, SharedKey);

/**
* Signs a request with the Authentication header.
*
* @param {WebResource} The webresource to be signed.
* @param {function(error)}  callback  The callback function.
*/
SharedKeyTable.prototype.signRequest = function (webResource, callback) {
  var getvalueToAppend = function (value) {
    if (azureutil.objectIsNull(value)) {
      return '\n';
    } else {
      return value + '\n';
    }
  };

  var stringToSign =
      webResource.method + '\n' +
      getvalueToAppend(webResource.headers[HeaderConstants.CONTENT_MD5]) +
      getvalueToAppend(webResource.headers[HeaderConstants.CONTENT_TYPE]) +
      getvalueToAppend(webResource.headers[HeaderConstants.MS_DATE]) +
      this._getCanonicalizedResource(webResource);

  var signature = this.signer.sign(stringToSign);

  webResource.withHeader(HeaderConstants.AUTHORIZATION, 'SharedKey ' + this.storageAccount + ':' + signature);
  callback(null);
};

/*
* Retrieves the webresource's canonicalized resource string.
* @param {WebResource} webResource The webresource to get the canonicalized resource string from.
* @return {string} The canonicalized resource string.
*/
SharedKeyTable.prototype._getCanonicalizedResource = function (webResource) {
  var path = '/';
  if (webResource.path) {
    path = webResource.path;
  }

  var canonicalizedResource = '/' + this.storageAccount + path;

  var queryStringValues = webResource.queryString;
  if (queryStringValues[QueryStringConstants.COMP]) {
    canonicalizedResource += '?comp=' + queryStringValues[QueryStringConstants.COMP];
  }

  return canonicalizedResource;
};

module.exports = SharedKeyTable;

/***/ }),
/* 594 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var util = __webpack_require__(113);
var azureCommon = __webpack_require__(272);
var WebResource = azureCommon.WebResource;
var SR = azureCommon.SR;
var Constants = azureCommon.Constants;
var HeaderConstants = Constants.HeaderConstants;
var TableConstants = Constants.TableConstants;
var entityResult = __webpack_require__(595);

exports = module.exports;

/**
* Retrieves the entity path from the table name and an entity descriptor.
* @ignore
*
* @param {string}   table         The table name.
* @param {object}   entity        The entity descriptor.
* @return {string} The entity path.
*/
function getEntityPath (tableName, partitionKey, rowKey) {
  var path = '/' + tableName;

  if (typeof (partitionKey) === 'string' && typeof (rowKey) === 'string') {
    // Escape single quotes according to OData Protocol Specification: "single quotes within string literals are represented as two consecutive single quotes".
    partitionKey = partitionKey.replace(/'/g, '\'\'');
    rowKey = rowKey.replace(/'/g, '\'\'');
    path = path + '(PartitionKey=\'' + encodeURIComponent(partitionKey.toString('utf8')) + '\',RowKey=\'' + encodeURIComponent(rowKey.toString('utf8')) + '\')';
  } else {
    throw new Error(SR.INCORRECT_ENTITY_KEYS);
  }

  return path;
}

/**
* Constructs the web resource for a table operation.
*
* @param {string}             operation                           The operation to perform.
* @param {string}             table                               The table name.
* @param {object}             entityDescriptor                    The entity descriptor.
* @param {object}             [options]                           The create options or callback function.
* @param {boolean}            [options.checkEtag]                 Boolean value indicating weather the etag should be matched or not.
* @param {string}             [options.echoContent]               Whether or not to return the entity upon a successful insert. Default to false.
* @param {string}             [options.payloadFormat]             The payload format to use for the request.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @return {webResource}
*/
exports.constructEntityWebResource = function (operation, table, entityDescriptor, options) {
  var webResource = null;
  if (operation === TableConstants.Operations.INSERT) {
    webResource = WebResource.post(table)
      .withHeader(HeaderConstants.PREFER, options.echoContent ? HeaderConstants.PREFER_CONTENT : HeaderConstants.PREFER_NO_CONTENT);
  } else {
    var partitionKey;
    var rowKey;

    if (typeof (entityDescriptor.PartitionKey) === 'string') {
      partitionKey = entityDescriptor.PartitionKey;
    } else {
      partitionKey = entityDescriptor.PartitionKey[TableConstants.ODATA_VALUE_MARKER];
    }

    if (typeof (entityDescriptor.RowKey) === 'string') {
      rowKey = entityDescriptor.RowKey;
    } else {
      rowKey = entityDescriptor.RowKey[TableConstants.ODATA_VALUE_MARKER];
    }

    var path = getEntityPath(table, partitionKey, rowKey);

    if (operation === TableConstants.Operations.DELETE) {
      webResource = WebResource.del(path);
    } else if (operation === TableConstants.Operations.MERGE || operation === TableConstants.Operations.INSERT_OR_MERGE) {
      webResource = WebResource.merge(path);
    } else if (operation === TableConstants.Operations.REPLACE || operation === TableConstants.Operations.INSERT_OR_REPLACE) {
      webResource = WebResource.put(path);
    } else if (operation === TableConstants.Operations.RETRIEVE) {
      webResource = WebResource.get(path);
    } else {
      throw new Error(util.format(SR.INVALID_TABLE_OPERATION, operation));
    }
  }

  if (operation === TableConstants.Operations.DELETE || operation === TableConstants.Operations.REPLACE || operation === TableConstants.Operations.MERGE) {
    webResource.withHeader(HeaderConstants.IF_MATCH, entityResult.getEtag(entityDescriptor) || '*');
  }

  var entitySerializedDescriptor;
  if (!(operation === TableConstants.Operations.DELETE || operation === TableConstants.Operations.RETRIEVE)) {
    entitySerializedDescriptor = entityResult.serialize(entityDescriptor);
  }

  exports.setTableRequestHeadersAndBody(webResource, entitySerializedDescriptor, options.payloadFormat);

  return webResource;
};

/**
* Sets the table request headers.
*
* @param {string}             webResource       The webResource to add headers to.
* @param {object}             [body]            The body of the request.
*/
exports.setTableRequestHeadersAndBody = function (webResource, body, acceptType) {
  if (body) {
    webResource.withHeader(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(body, 'utf8'))
      .withBody(body)
      .withHeader(HeaderConstants.CONTENT_TYPE, HeaderConstants.JSON_CONTENT_TYPE_VALUE);
  }

  webResource.withHeader(HeaderConstants.ACCEPT, acceptType)
    .withHeader(HeaderConstants.MAX_DATA_SERVICE_VERSION, TableConstants.DEFAULT_DATA_SERVICE_VERSION);
};

/***/ }),
/* 595 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var azureCommon = __webpack_require__(272);
var Constants = azureCommon.Constants;
var TableConstants = Constants.TableConstants;
var HeaderConstants = Constants.HeaderConstants;
var odataHandler = __webpack_require__(596);

exports = module.exports;

exports.serialize = function (entity) {
  return odataHandler.serializeJson(entity);
};

exports.parseQuery = function (response, autoResolveProperties, propertyResolver, entityResolver) {
  var result = {};
  if (response.body) {
    result = odataHandler.parseJsonEntities(response.body, autoResolveProperties, propertyResolver, entityResolver);
  }

  return result;
};

exports.parseEntity = function (response, autoResolveProperties, propertyResolver, entityResolver) {
  var result = {};
  if (response.body) {
    result = odataHandler.parseJsonSingleEntity(response.body, autoResolveProperties, propertyResolver, entityResolver);
  }

  if (response.headers && response.headers[HeaderConstants.ETAG.toLowerCase()]) {
    if (!result[TableConstants.ODATA_METADATA_MARKER]) {
      result[TableConstants.ODATA_METADATA_MARKER] = {};
    }

    result[TableConstants.ODATA_METADATA_MARKER].etag = response.headers[HeaderConstants.ETAG.toLowerCase()];
  }

  return result;
};

exports.getEtag = function (entity) {
  var etag;
  if (entity && entity[TableConstants.ODATA_METADATA_MARKER]) {
    etag = entity[TableConstants.ODATA_METADATA_MARKER].etag;
  } 
  return etag;
};

/***/ }),
/* 596 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var util = __webpack_require__(113);

var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var SR = azureCommon.SR;
var Constants = azureCommon.Constants;
var edmHandler = __webpack_require__(597);

var prefixLength = Constants.TableConstants.ODATA_PREFIX.length;
var suffixLength = Constants.TableConstants.ODATA_TYPE_SUFFIX.length;

exports = module.exports;

/* Serialize an entity to an Odata (Json based) payload
* Input must be in the following format:
* { stringValue: { '$': 'Edm.String', '_': 'my string' }, myInt: { '$': 'Edm.Int32', '_': 3 } }
*/
exports.serializeJson = function (entity) {
  function normalizeEntityProperty(property) {
    if(azureutil.objectIsNull(property)) {
      return { _: property };
    }

    if (typeof property === 'object' && property.hasOwnProperty(Constants.TableConstants.ODATA_VALUE_MARKER)) {
      return property;
    }

    var result = { _: property };
    result[Constants.TableConstants.ODATA_TYPE_MARKER] = edmHandler.propertyType(property, true);

    return result;
  }

  var result = {};
  for (var propName in entity) {
    // ignore if .metadata or null or undefined
    if (propName !== Constants.TableConstants.ODATA_METADATA_MARKER) {
      var property = normalizeEntityProperty(entity[propName]);
      if (!azureutil.objectIsNull(property[Constants.TableConstants.ODATA_VALUE_MARKER])) {
        var value = property[Constants.TableConstants.ODATA_VALUE_MARKER];
        var type = property[Constants.TableConstants.ODATA_TYPE_MARKER];

        if (type === undefined) {
          type = edmHandler.propertyType(value, true);
        }

        result[propName] = edmHandler.serializeValue(type, value);
        if (edmHandler.isTypeRequired(type, value)) {
          result[propName + Constants.TableConstants.ODATA_TYPE_SUFFIX] = type;
        }
      }
    } 
  }

  var replacer = function(key, value) {
    if (value === Number.POSITIVE_INFINITY) {
      return 'Infinity';
    }
    if (value === Number.NEGATIVE_INFINITY) {
      return '-Infinity';
    }
    if (azureutil.objectIsNaN(value)) {
      return 'NaN';
    }
    return value;
  };
  
  return JSON.stringify(result, replacer);
};

/*
Input: The body of the HTTP response from the server from a table list as JSON (responseObject.response.body).

Return:
This will return an array in the following format:

[
  tableName1,
  tableName2
]

For example,

[
  myTable1,
  myTable2
]

*/
exports.parseJsonTables = function (response) {
  var result = [];

  if (response.value) {
    for (var i = 0; i < response.value.length; i++) {
      var entity = response.value[i].TableName;
      result.push(entity);
    }
  }

  return result;
};

/*
Input: The body of the HTTP response from the server from a table query as JSON (responseObject.response.body).

Return:
This will return an array in the following format:

[
  {{ '$': edmHandler1, '_': value1}, { '$': edmHandler2, '_': value2}, { '$': edmHandler3, '_': value3}},
  {{ '$': edmHandler4, '_': value4}, { '$': edmHandler5, '_': value5}, { '$': edmHandler6, '_': value6}}
]

For example,

[
  {{ '$': Edm.Int32, '_': 42}, { '$': Edm.String, '_': 'sample string'}, { '$': Edm.Boolean, '_': false}},
  {{ '$': Edm.Int64, '_': 42}, { '$': Edm.String, '_': 'sample string 2'}, { '$': Edm.Boolean, '_': true}}
]

*/
exports.parseJsonEntities = function (response, autoResolveProperties, propertyResolver, entityResolver) {
  if (!response.value) {
    return [exports.parseJsonSingleEntity(response, autoResolveProperties, propertyResolver, entityResolver)];
  } else {
    var result = [];

    for (var i = 0; i < response.value.length; i++) {
      var rawEntity = response.value[i];
      var entity = exports.parseJsonSingleEntity(rawEntity, autoResolveProperties, propertyResolver, entityResolver);
      result.push(entity);
    }

    return result;  
  }
};

exports.parseJsonSingleEntity = function(rawEntity, autoResolveProperties, propertyResolver, entityResolver) {
  var rawEntityProperties = {};
  var entityPropertyTypes = {PartitionKey: 'Edm.String', RowKey: 'Edm.String', Timestamp: 'Edm.DateTime'};
  var odataMetadata = {};

  // parse properties
  for (var entityPropertyName in rawEntity) {
    if (azureutil.stringStartsWith(entityPropertyName, Constants.TableConstants.ODATA_PREFIX)) {
      odataMetadata[entityPropertyName.slice(prefixLength)] = rawEntity[entityPropertyName];
    } else if (azureutil.stringEndsWith(entityPropertyName, Constants.TableConstants.ODATA_TYPE_SUFFIX)) {
      entityPropertyTypes[entityPropertyName.slice(0, entityPropertyName.length - suffixLength)] = rawEntity[entityPropertyName];
    } else {
      rawEntityProperties[entityPropertyName] = rawEntity[entityPropertyName];
    }
  }

  // make sure etag is set
  if (!odataMetadata.etag && rawEntityProperties.Timestamp) {
    var timestampString = Buffer.from(rawEntityProperties.Timestamp).toString();
    odataMetadata.etag = 'W/"datetime\'' + timestampString + '\'"';
  }

  var entity = {};
  for (var entityPropertyName in rawEntityProperties) {
    if (rawEntityProperties.hasOwnProperty(entityPropertyName)) {
      // set the type, if given in the response
      var entityPropertyType = entityPropertyTypes[entityPropertyName];
      entity[entityPropertyName] = {};  

      // use the given property resolver if present, otherwise infer type if undefined
      if (propertyResolver) {
        // partition key, row key, name, value, type if present
        entityPropertyType = propertyResolver(rawEntityProperties.PartitionKey, rawEntityProperties.RowKey, entityPropertyName, rawEntityProperties[entityPropertyName], entityPropertyType);
      }
      if (!entityPropertyType && autoResolveProperties) {
        entityPropertyType = edmHandler.propertyType(rawEntityProperties[entityPropertyName], false);
      } 

      if (entityPropertyType) {
        entity[entityPropertyName][Constants.TableConstants.ODATA_TYPE_MARKER] = entityPropertyType;
      } 

      try {
        entity[entityPropertyName][Constants.TableConstants.ODATA_VALUE_MARKER] = edmHandler.deserializeValueFromJson(entityPropertyType, rawEntityProperties[entityPropertyName]);
      } catch (err) {
        if (propertyResolver) {
          // if a property resolver was used and the type is invalid, throw an appropriate error
          throw new Error(util.format(SR.INVALID_PROPERTY_RESOLVER, entityPropertyName, entityPropertyType, rawEntityProperties[entityPropertyName]));
        } else {
          throw err;
        }
      }
    }
  }

  entity[Constants.TableConstants.ODATA_METADATA_MARKER] = odataMetadata;

  if (entityResolver) {
    entity = entityResolver(entity);
  }

  return entity;
};


/***/ }),
/* 597 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var _ = __webpack_require__(271);
var util = __webpack_require__(113);
var guid = __webpack_require__(492);

var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var SR = azureCommon.SR;

var TableUtilities = __webpack_require__(575);
var EdmType = TableUtilities.EdmType;

/**
* Get the Edm type of an object.
*
* @param {object} value A typed instance.
* @return {string} The Edm type.
*/
exports.propertyType = function (value, guessNumberType) {
  if (_.isNumber(value)) {
    if (guessNumberType) {
      if (azureutil.objectIsInt(value)) {
        return 'Edm.Int32';
      } else {
        return 'Edm.Double';
      }
    } else {
      return null;
    }
  } else if (_.isBoolean(value)) {
    return 'Edm.Boolean';
  } else if (_.isDate(value)) {
    return 'Edm.DateTime';
  } else {
    return 'Edm.String';
  }
};

/**
* Convert a JSON value from over the wire into the correct EDM type.
* 
* Note that Int64, is remaining a string.  Converting it to a Number would lose precision.
* Int32, Boolean, and Double should already be the correct non-string types
*
* @param {string} type  The type of the value as it appears in the type attribute.
* @param value The value in JSON format.
* @return {object} The unserialized value.
*/
exports.deserializeValueFromJson = function (type, value) {
  if (type) {
    switch (type) {
      case EdmType.BINARY:
        return Buffer.from(value, 'base64');
      case EdmType.DATETIME:
        return new Date(value);
      case EdmType.GUID:
        return value;
      case EdmType.DOUBLE:
        // Account for Infinity and NaN:
        if (typeof value !== 'number') {
          return parseFloat(value);
        }
        return value;
      case EdmType.INT32:
      case EdmType.INT64:
      case EdmType.STRING:
      case EdmType.BOOLEAN:
        return value;
      default:
        throw new Error(util.format(SR.TYPE_NOT_SUPPORTED, type));
    }
  } else {
    return value;
  }
};

/**
* Convert a raw EdmType value into the JSON value expected to be sent over the wire.
*
* TODO: validate correct input types?
* Expects Edm.Int64 and Edm.String to be string, Edm.Double and Edm.Int32 to be Number,
* Edm.Guid to be an array or buffer compatible with Node.uuid, Edm.Binary to be a Node Buffer, Edm.DateTime to be a Date,
* and Edm.Boolean to be a boolean.
*
* @param {string} type  The type of the value as it will appear in the type attribute.
* @param {string} value The value
* @return {object} The serialized value.
*/
exports.serializeValue = function (type, value) {
  switch (type) {
    case EdmType.BINARY:
      if (Buffer.isBuffer(value)) {
        return value.toString('base64');
      }
      return value;
    case EdmType.DATETIME:
      if (_.isDate(value)) {
        return value.toISOString();
      }
      return value;
    case EdmType.GUID:
      if (Buffer.isBuffer(value) || _.isArray(value)) {
        return guid.unparse(value);
      }
      return value;
    case EdmType.INT64:
    case EdmType.DOUBLE:
      return value.toString();
    case EdmType.INT32:
      if (value === Number.POSITIVE_INFINITY) {
        return 'Infinity';
      }
      if (value === Number.NEGATIVE_INFINITY) {
        return '-Infinity';
      }
      if (azureutil.objectIsNaN(value)) {
        return 'NaN';
      }
      return value;
    case EdmType.STRING:
    case EdmType.BOOLEAN:
      return value;
    default:
      throw new Error(SR.TYPE_NOT_SUPPORTED + type);
  }
};

/*
* Determines if a type annotation is required for the input type when sending JSON data to the service. 
*/
exports.isTypeRequired = function(type, value) {
  switch (type) {
  case EdmType.BINARY:
  case EdmType.INT64:
  case EdmType.DATETIME:
  case EdmType.GUID:
  case EdmType.DOUBLE:
    return true;
  case EdmType.INT32:
    if (typeof value !== 'number' || value === Number.POSITIVE_INFINITY || value === Number.NEGATIVE_INFINITY || (azureutil.objectIsNaN(value))) {
      return true;
    }
    return false;
  case EdmType.STRING:
  case EdmType.BOOLEAN:
    return false;
  default:
    throw new Error(util.format(SR.TYPE_NOT_SUPPORTED, type));
  }
};

/**
* Serializes value into proper value to be used in odata query value.
*
* @param {object} value The value to be serialized.
* @return {string} The serialized value.
*/
exports.serializeQueryValue = function (value, type) {
  var edmType = type || exports.propertyType(value, true);
  switch (edmType) {
    case EdmType.INT32:
      return value.toString();
    case EdmType.BOOLEAN:
      return value ? 'true' : 'false';
    case EdmType.DOUBLE:
      return value.toString();
    case EdmType.INT64:
      return value.toString() + 'L';
    case EdmType.DATETIME:
      if(_.isDate(value)) {
        var dateTimeString = value.toISOString();
        return 'datetime\'' + dateTimeString + '\'';
      }
      throw new Error(util.format(SR.INVALID_EDM_TYPE, value, type));
    case EdmType.GUID:
      return 'guid\'' + value.toString() + '\'';
    case EdmType.BINARY:
      return 'X\'' + value.toString('hex') + '\'';
    default:
      return '\'' + value.toString().replace(/'/g, '\'\'') + '\'';
  }   
};

/***/ }),
/* 598 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var _ = __webpack_require__(271);
var util = __webpack_require__(113);

var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var SR = azureCommon.SR;
var QueryStringConstants =  azureCommon.Constants.QueryStringConstants;

var edmHandler = __webpack_require__(597);
var TableUtilities = __webpack_require__(575);
var QueryComparisons = TableUtilities.QueryComparisons;
var TableOperators = TableUtilities.TableOperators;
var EdmType = TableUtilities.EdmType;

/**
 * Creates a new TableQuery object.
 *
 * @constructor
 */
function TableQuery() {
  this._fields = [];
  this._where = [];
  this._top = null;
}

/**
* Specifies the select clause. If no arguments are given, all fields will be selected.
*
* @param {array} fields The fields to be selected.
* @return {TableQuery} A table query object with the select clause.
* @example
* var tableQuery = new TableQuery().select('field1', 'field2');
*/
TableQuery.prototype.select = function () {
  var self = this;
  if (arguments) {
    _.each(arguments, function (argument) {
      self._fields.push(argument);
    });
  }

  return this;
};

/**
 * Specifies the top clause.
 *
 * @param {int} top The number of items to fetch.
 * @return {TableQuery} A table query object with the top clause.
 * @example
 * var tableQuery = new TableQuery().top(10);
 *
 * // tasktable should already exist and have entities
 * tableService.queryEntities('tasktable', tableQuery, null \/*currentToken*\/, function(error, result) {
 *   if(!error) { 
 *     var entities = result.entities; // there will be 10 or less entities
 *     // do stuff with the returned entities if there are any
 *     // if result.continuationToken exists, to get the next 10 (or less) entities
 *     // call queryEntities as above, but with the returned token instead of null
 *   }
 * });
 */
TableQuery.prototype.top = function (top) {
  this._top = top;
  return this;
};

/**
 * Specifies the where clause.
 *
 * Valid type specifier strings include: ?string?, ?bool?, ?int32?, ?double?, ?date?, ?guid?, ?int64?, ?binary?
 * A type must be specified for guid, int64, and binaries or the filter produced will be incorrect.
 *
 * @param {string}       condition   The condition string.
 * @param {string|array} value       Value(s) to insert in question mark (?) parameters.
 * @return {TableQuery}  A table query object with the where clause.
 * @example
 * var tableQuery = new TableQuery().where(TableQuery.guidFilter('GuidField', QueryComparisons.EQUAL, guidVal));
 * OR
 * var tableQuery = new TableQuery().where('Name == ? or Name <= ?', name1, name2);
 * OR
 * var tableQuery = new TableQuery().where('Name == ?string? && Value == ?int64?', name1, int64Val);
 *
 * // tasktable should already exist and have entities
 * tableService.queryEntities('tasktable', tableQuery, null \/*currentToken*\/, function(error, result, response) {
 *   if(!error) { 
 *     var entities = result.entities;
 *     // do stuff with the returned entities if there are any
 *   }
 * });
 */
TableQuery.prototype.where = function (condition) {  
  this._where.push(TableQuery._encodeConditionString(condition, arguments));
  return this;
};

/**
 * Generates a property filter condition string for an 'int' value.
 *
 * @param {string}       propertyName   A string containing the name of the property to compare.
 * @param {string}       operation      A string containing the comparison operator to use. 
 *                                      See Constants.TableConstants.QueryComparisons for a list of allowed operations.
 * @param {string|int}   value          An 'int' containing the value to compare with the property.
 * @return {string} A string containing the formatted filter condition.
 * @example
 * var query = TableQuery.int32Filter('IntField', QueryComparisons.EQUAL, 5);
 */
TableQuery.int32Filter = function (propertyName, operation, value) {
  return TableQuery._concatFilterString(propertyName, operation, value, EdmType.INT32);
};

/**
 * Generates a property filter condition string for a 'int64' value.
 *
 * @param {string}       propertyName   A string containing the name of the property to compare.
 * @param {string}       operation      A string containing the comparison operator to use. 
 *                                      See Constants.TableConstants.QueryComparisons for a list of allowed operations.
 * @param {string|int64} value          An 'int64' containing the value to compare with the property.
 * @return {string} A string containing the formatted filter condition.
 * @example
 * var query = TableQuery.int64Filter('Int64Field', QueryComparisons.EQUAL, 123);
 */
TableQuery.int64Filter = function (propertyName, operation, value) {
  return TableQuery._concatFilterString(propertyName, operation, value, EdmType.INT64);
};

/**
 * Generates a property filter condition string for a 'double' value.
 *
 * @param {string}       propertyName   A string containing the name of the property to compare.
 * @param {string}       operation      A string containing the comparison operator to use. 
 *                                      See Constants.TableConstants.QueryComparisons for a list of allowed operations.
 * @param {string|double}value          A 'double' containing the value to compare with the property.
 * @return {string} A string containing the formatted filter condition.
 * @example
 * var query = TableQuery.doubleFilter('DoubleField', QueryComparisons.EQUAL, 123.45);
 */
TableQuery.doubleFilter = function (propertyName, operation, value) {
  return TableQuery._concatFilterString(propertyName, operation, value, EdmType.DOUBLE);
};

/**
 * Generates a property filter condition string for a 'boolean' value.
 *
 * @param {string}       propertyName   A string containing the name of the property to compare.
 * @param {string}       operation      A string containing the comparison operator to use. 
 *                                      See Constants.TableConstants.QueryComparisons for a list of allowed operations.
 * @param {string|boolean}       value          A 'boolean' containing the value to compare with the property.
 * @return {string} A string containing the formatted filter condition.
 * @example
 * var query = TableQuery.booleanFilter('BooleanField', QueryComparisons.EQUAL, false);
 */
TableQuery.booleanFilter = function (propertyName, operation, value) {
  return TableQuery._concatFilterString(propertyName, operation, value, EdmType.BOOLEAN);
};

/**
 * Generates a property filter condition string for a 'datetime' value.
 *
 * @param {string}       propertyName   A string containing the name of the property to compare.
 * @param {string}       operation      A string containing the comparison operator to use. 
 *                                      See Constants.TableConstants.QueryComparisons for a list of allowed operations.
 * @param {string|date}     value              A 'datetime' containing the value to compare with the property.
 * @return {string} A string containing the formatted filter condition.
 * @example
 * var query = TableQuery.dateFilter('DateTimeField', QueryComparisons.EQUAL, new Date(Date.UTC(2001, 1, 3, 4, 5, 6)));
 */
TableQuery.dateFilter = function (propertyName, operation, value) {
  return TableQuery._concatFilterString(propertyName, operation, value, EdmType.DATETIME);
};

/**
 * Generates a property filter condition string for a 'guid' value.
 *
 * @param {string}       propertyName   A string containing the name of the property to compare.
 * @param {string}       operation      A string containing the comparison operator to use. 
 *                                      See Constants.TableConstants.QueryComparisons for a list of allowed operations.
 * @param {string|guid}  value          A 'guid' containing the value to compare with the property.
 * @return {string} A string containing the formatted filter condition.
 * @example
 * var query = TableQuery.guidFilter('GuidField', QueryComparisons.EQUAL, guid.v1());
 */
TableQuery.guidFilter = function (propertyName, operation, value) {
  return TableQuery._concatFilterString(propertyName, operation, value, EdmType.GUID);
};

/**
 * Generates a property filter condition string for a 'binary' value.
 *
 * @param {string}       propertyName   A string containing the name of the property to compare.
 * @param {string}       operation      A string containing the comparison operator to use. 
 *                                      See Constants.TableConstants.QueryComparisons for a list of allowed operations.
 * @param {string|buffer}value          A 'buffer' containing the value to compare with the property.
 * @return {string} A string containing the formatted filter condition.
 * @example
 * var query = TableQuery.binaryFilter('BinaryField', QueryComparisons.EQUAL, Buffer.from('hello'));
 */
TableQuery.binaryFilter = function (propertyName, operation, value) {
  return TableQuery._concatFilterString(propertyName, operation, value, EdmType.BINARY);
};

/**
 * Generates a property filter condition string.
 *
 * @param {string}       propertyName   A string containing the name of the property to compare.
 * @param {string}       operation      A string containing the comparison operator to use. 
 *                                      See Constants.TableConstants.QueryComparisons for a list of allowed operations.
 * @param {string}       value          A 'string' containing the value to compare with the property.
 * @return {string} A string containing the formatted filter condition.
 * @example
 * var query = TableQuery.stringFilter('StringField', QueryComparisons.EQUAL, 'name');
 */
TableQuery.stringFilter = function (propertyName, operation, value) {
  return TableQuery._concatFilterString(propertyName, operation, value, EdmType.STRING);
};

/**
 * Creates a filter condition using the specified logical operator on two filter conditions.
 *
 * @param {string}       filterA          A string containing the first formatted filter condition.
 * @param {string}       operatorString   A string containing the operator to use (AND, OR).
 * @param {string}       filterB          A string containing the second formatted filter condition.
 * @return {string} A string containing the combined filter expression.
 * @example
 * var filter1 = TableQuery.stringFilter('Name', QueryComparisons.EQUAL, 'Person');
 * var filter2 = TableQuery.booleanFilter('Visible', QueryComparisons.EQUAL, true);
 * var combinedFilter = TableQuery.combineFilters(filter1, TableUtilities.TableOperators.AND, filter2);
 */
TableQuery.combineFilters = function (filterA, operatorString, filterB) {
  return filterA + ' ' + operatorString + ' ' + filterB;
};

/**
 * Specifies an AND where condition.
 *
 * @param {string}       condition   The condition string.
 * @param {array}        arguments   Any number of arguments to be replaced in the condition by the question mark (?).
 * @return {TableQuery} A table query object with the and clause.
 * @example
 * var tableQuery = new TableQuery()
 *                      .where('Name == ? or Name <= ?', 'Person1', 'Person2');
 *                      .and('Age >= ?', 18);
 */
TableQuery.prototype.and = function (condition) {
  if (this._where.length === 0) {
    throw new Error(util.format(SR.QUERY_OPERATOR_REQUIRES_WHERE, 'AND'));
  }

  this._where.push(' and ' + TableQuery._encodeConditionString(condition, arguments));
  return this;
};

/**
 * Specifies an OR where condition.
 *
 * @param {string}       condition   The condition.
 * @param {array}        arguments   Any number of arguments to be replaced in the condition by the question mark (?).
 * @return {TableQuery} A table query object with the or clause.
 * @example
 * var tableQuery = new TableQuery()
 *                      .where('Name == ? or Name <= ?', 'Person1', 'Person2');
 *                      .or('Age >= ?', 18);
 */
TableQuery.prototype.or = function (condition) {
  if (this._where.length === 0) {
    throw new Error(util.format(SR.QUERY_OPERATOR_REQUIRES_WHERE, 'OR'));
  }

  this._where.push(' or ' + TableQuery._encodeConditionString(condition, arguments));
  return this;
};

/**
 * Returns the query string object for the query.
 *
 * @return {object} JSON object representing the query string arguments for the query.
 */
TableQuery.prototype.toQueryObject = function () {
  var query = {};
  if (this._fields.length > 0) {
    query[QueryStringConstants.SELECT] = this._fields.join(',');
  }

  if (this._where.length > 0) {
    query[QueryStringConstants.FILTER] = this._where.join('');
  }

  if (this._top) {
    query[QueryStringConstants.TOP] = this._top;
  }

  return query;
};

// Functions

/**
* Concat the filter string parameters.
*
* @param {string}       propertyName   A string containing the name of the property to compare.
* @param {string}       operation      A string containing the comparison operator to use. 
*                                      See Constants.TableConstants.QueryComparisons for a list of allowed operations.
* @param {object}       value          The value to compare with the property.
* @param {string}       type           A string EdmType of the property to compare.
* @return {string} A string containing the formatted filter condition.
* @ignore
*/
TableQuery._concatFilterString = function (propertyName, operation, value, type) {
  if (azureutil.objectIsNull(propertyName)) {
    throw new Error(util.format(SR.ARGUMENT_NULL_OR_UNDEFINED, 'propertyName'));
  }

  if (azureutil.objectIsNull(operation)) {
    throw new Error(util.format(SR.ARGUMENT_NULL_OR_UNDEFINED, 'operation'));
  }

  if (azureutil.objectIsNull(value)) {
    throw new Error(util.format(SR.ARGUMENT_NULL_OR_UNDEFINED, 'value'));
  }

  var serializedValue = edmHandler.serializeQueryValue(value, type);
  return propertyName + ' ' + operation + ' ' + serializedValue;
};

/**
 * Encodes a condition string.
 *
 * @param {string}       condition   The condition.
 * @param {array}        arguments   Any number of arguments to be replaced in the condition by the question mark (?).
 * @return {TableQuery} A table query object with the or clause
 * @ignore
 */
TableQuery._encodeConditionString = function (condition, args) {
  var encodedCondition = TableQuery._replaceOperators(condition);
  if (args.length > 1) {
    var sections = encodedCondition.split(/(\?string\?|\?int32\?|\?int64\?|\?bool\?|\?double\?|\?date\?|\?binary\?|\?guid\?|\?)/);
    var count = 1;
    for (var i = 0; i < sections.length && count < args.length; i++) {
      if (sections[i].indexOf('?') === 0) {
        var type = TableQuery._getEdmType(sections[i]);
        sections[i] = edmHandler.serializeQueryValue(args[count], type);
        count++;
      }
    }
    encodedCondition = sections.join('');
  }

  return encodedCondition;
};

/**
 * Converts the query string type to an Edm type.
 *
 * @param {string} type The type included in the query string.
 * @return {string} The EdmType.
 * @ignore
 */
TableQuery._getEdmType = function (type) {
  switch (type) {
    case '?binary?':
      return EdmType.BINARY;
    case '?int64?':
      return EdmType.INT64;
    case '?date?':
      return EdmType.DATETIME;
    case '?guid?':
      return EdmType.GUID;
    case '?int32?':
      return EdmType.INT32;
    case '?double?':
      return EdmType.DOUBLE;
    case '?bool?':
      return EdmType.BOOLEAN;
    case '?string?':
      return EdmType.STRING;
    default:
      return undefined;
  }
};

/**
 * Replace operators.
 * @ignore
 * @param {string} whereClause The text where to replace the operators.
 * @return {string} The string with the replaced operators.
 * @ignore
 */
TableQuery._replaceOperators = function (whereClause) {
  var encodedWhereClause = whereClause.replace(/ == /g, ' ' + QueryComparisons.EQUAL + ' ');
  encodedWhereClause = encodedWhereClause.replace(/ != /g, ' ' + QueryComparisons.NOT_EQUAL + ' ');
  encodedWhereClause = encodedWhereClause.replace(/ >= /g, ' ' + QueryComparisons.GREATER_THAN_OR_EQUAL + ' ');
  encodedWhereClause = encodedWhereClause.replace(/ > /g, ' ' + QueryComparisons.GREATER_THAN + ' ');
  encodedWhereClause = encodedWhereClause.replace(/ <= /g, ' ' + QueryComparisons.LESS_THAN_OR_EQUAL + ' ');
  encodedWhereClause = encodedWhereClause.replace(/ < /g, ' ' + QueryComparisons.LESS_THAN + ' ');
  encodedWhereClause = encodedWhereClause.replace(/ \&\& /g, ' ' + TableOperators.AND + ' ');
  encodedWhereClause = encodedWhereClause.replace(/ \|\| /g, ' ' + TableOperators.OR + ' ');
  encodedWhereClause = encodedWhereClause.replace(/!/g, TableOperators.NOT);

  return encodedWhereClause;
};

module.exports = TableQuery;


/***/ }),
/* 599 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var odataHandler = __webpack_require__(596);

function TableResult(name) {
  this.name = name;
}

TableResult.serialize = function (tableName) {
  return JSON.stringify({ TableName: tableName });
};

TableResult.parse = function (response) {
  var result = null;
  if (response.body) {
    result = odataHandler.parseJsonTables(response.body);
  }

  return result;
};

exports = module.exports = TableResult;

/***/ }),
/* 600 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var Md5Wrapper = __webpack_require__(276);
var StorageServiceClient = azureCommon.StorageServiceClient;
var WebResource = azureCommon.WebResource;
var Constants = azureCommon.Constants;
var HeaderConstants = Constants.HeaderConstants;
var TableConstants = Constants.TableConstants;

var RequestHandler = __webpack_require__(594);
var entityResult = __webpack_require__(595);

/**
* Creates a new BatchResult.
*
* @param {TableService}      tableService    The table service.
* @param {string}            table           The table name.
* @param {array}             operations      The array of batch operations.
* @constructor
* @ignore
*/
function BatchResult(tableService, table, operations) {
  this.tableService = tableService;
  this.table = table;
  this.operations = operations;
  this.batchBoundary = 'batch_' + BatchResult._getBoundary();
  this.changesetBoundary = 'changeset_' + BatchResult._getBoundary();
}

/**
* Gets a boundary string.
*
* @return {string}   The boundary string.
* @ignore
*/
BatchResult._getBoundary = function () {
  return (new Md5Wrapper().createMd5Hash()).update('' + (new Date()).getTime()).digest('hex');
};

/**
* Constructs the batch web request.
*
* @return {WebResource}   The batch WebResource.
* @ignore
*/
BatchResult.prototype.constructWebResource = function () {
  var webResource = WebResource.post('$batch')
    .withRawResponse(true);

  webResource.withHeader(HeaderConstants.CONTENT_TYPE, 'multipart/mixed; charset="utf-8"; boundary=' + this.batchBoundary);
  webResource.withHeader(HeaderConstants.DATA_SERVICE_VERSION, '3.0;');
  webResource.withHeader(HeaderConstants.MAX_DATA_SERVICE_VERSION, '3.0;NetFx');

  return webResource;
};

/**
* Serializes the batch web body.
*
* @return {string}      The serialized batch content.
* @ignore
*/
BatchResult.prototype.serialize = function () {
  var body = '--' + this.batchBoundary + '\n';
  
  if (this.operations.length === 1 && this.operations[0].type === TableConstants.Operations.RETRIEVE) {
    body += HeaderConstants.CONTENT_TYPE + ': application/http\n';
    body += HeaderConstants.CONTENT_TRANSFER_ENCODING + ': binary\n\n';
    body += this._serializeOperation(this.operations[0]);
  } else {
    body += HeaderConstants.CONTENT_TYPE + ': multipart/mixed;charset="utf-8";boundary=' + this.changesetBoundary + '\n\n';

    for (var i = 0; i < this.operations.length; i++) {
      body += '--' + this.changesetBoundary + '\n';
      body += HeaderConstants.CONTENT_TYPE + ': application/http\n';
      body += HeaderConstants.CONTENT_TRANSFER_ENCODING + ': binary\n\n';
      body += this._serializeOperation(this.operations[i], i) + '\n';
    }
    body += '--' + this.changesetBoundary + '--\n';
  } 
  body += '--' + this.batchBoundary + '--';

  return body;
};

/**
* Serializes a request within the batch.
*
* @param {object}       The operation to serialize.  
* @param {number}       The index of the operation in the operations arrray.
* @return {string}      The serialized operation content.
* @ignore
*/
BatchResult.prototype._serializeOperation = function (operation, count) {
  operation.options.payloadFormat = operation.options.payloadFormat || this.tableService.defaultPayloadFormat;
  var webResource = RequestHandler.constructEntityWebResource(operation.type, this.table, operation.entity, operation.options);

  if (count) {
    webResource.headers[HeaderConstants.CONTENT_ID] = count;
  }

  var contentType = webResource.headers[HeaderConstants.CONTENT_TYPE];
  if (contentType) {
    if (!azureutil.stringEndsWith(contentType, ';')) {
      webResource.headers[HeaderConstants.CONTENT_TYPE] += ';';
    }
    webResource.headers[HeaderConstants.CONTENT_TYPE] += 'type=entry';
  }

  this.tableService._setRequestUrl(webResource);

  var content = webResource.method + ' ' + webResource.uri + ' HTTP/1.1\n';

  Object.keys(webResource.headers).forEach(function (header) {
    content += header + ': ' + webResource.headers[header] + '\n';
  });

  content += '\n';
  content += webResource.body || '';

  return content;
};

/**
* Parses a batch response.
*
* @param {object} responseObject    The response object for the batch request.
* @return {array} An array with the processed / parsed responses.
*/
BatchResult.prototype.parse = function (responseObject) {
  var responses = null;
  if (responseObject && responseObject.response && responseObject.response.body &&
      typeof responseObject.response.body === 'string') {
    responses = [];
    var rawResponses = responseObject.response.body.split(TableConstants.CHANGESET_DELIMITER);

    if(rawResponses.length === 1) {
      rawResponses = responseObject.response.body.split(TableConstants.BATCH_DELIMITER);
    }

    var self = this;
    rawResponses.forEach(function (rawResponse) {
      // Find HTTP/1.1 CODE line
      var httpLocation = rawResponse.indexOf('HTTP/1.1');
      if (httpLocation !== -1) {
        rawResponse = rawResponse.substring(httpLocation);

        // valid response
        var response = self._parseOperation(rawResponse);
        responses.push(response);
      }
    });
  }

  return responses;
};

/**
* Parses a partial response.
*
* @param {string}      rawResponse      The raw, unparsed, http response from the server for the batch response.
* @return {object}      A response object.
*/
BatchResult.prototype._parseOperation = function (rawResponse) {
  var responseObject = {
    error: null,
    response: { }
  };

  // Split into multiple lines and process them
  var responseLines = rawResponse.split('\r\n');

  if (responseLines.length > 0) {
    // Retrieve response code
    var headers = responseLines.shift().split(' ');
    if (headers.length >= 2) {
      responseObject.response.statusCode = parseInt(headers[1]);
      responseObject.response.isSuccessful = WebResource.validResponse(responseObject.response.statusCode);
    }

    // Populate headers
    responseObject.response.headers = { };
    responseObject.response.body = '';

    var isBody = false;
    responseLines.forEach(function (line) {
      if (line === '' && !isBody) {
        isBody = true;
      } else if (isBody) {
        responseObject.response.body += line;
      } else {
        var headerSplit = line.indexOf(':');
        if (headerSplit !== -1) {
          responseObject.response.headers[line.substring(0, headerSplit).trim().toLowerCase()] = line.substring(headerSplit + 1).trim();
        }
      }
    });

    StorageServiceClient._parseResponse(responseObject.response, this.tableService.xml2jsSettings);
    if (!responseObject.response.isSuccessful) {
      responseObject.error = StorageServiceClient._normalizeError(responseObject.response.body, responseObject.response);
    }

    if (!responseObject.error) {
      var index = responseObject.response.headers[HeaderConstants.CONTENT_ID] || 0;
      var propertyResolver;
      var entityResolver;
      if (index && this.operations[index]) {
        var options = this.operations[index].options;
        propertyResolver = options.propertyResolver;
        entityResolver = options.entityResolver;
      } 
      responseObject.entity = entityResult.parseEntity(responseObject.response, propertyResolver, entityResolver);
    }
  }

  return responseObject;
};

module.exports = BatchResult;

/***/ }),
/* 601 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var extend = __webpack_require__(270);

var azureCommon = __webpack_require__(272);
var SR = azureCommon.SR;
var validate = azureCommon.validate;
var Constants = azureCommon.Constants;
var TableConstants = Constants.TableConstants;

/**
* Creates a new TableBatch.
*
* @constructor
*/
function TableBatch() {
  this.operations = [];
  this.pk = null;
  this.retrieve = false;
}

/**
* Removes all of the operations from the batch.
*/
TableBatch.prototype.clear = function () {
  this.operations = [];
};

/**
* Returns a boolean value indicating weather there are operations in the batch.
*
* @return {Boolean} True if there are operations queued up; false otherwise.
*/
TableBatch.prototype.hasOperations = function () {
  return this.operations.length > 0;
};

/**
* Returns the number of operations in the batch.
*
* @return {number} The number of operations in the batch.
*/
TableBatch.prototype.size = function () {
  return this.operations.length;
};

/**
* Adds a retrieve operation to the batch. Note that this must be the only operation in the batch.
*
* @param {string}             partitionKey                                    The partition key.
* @param {string}             rowKey                                          The row key.
* @param {object}             [options]                                       The request options.
* @param {string}             [options.payloadFormat]                         The payload format to use for the request.
* @param {TableService~propertyResolver}  [options.propertyResolver]  The property resolver. Given the partition key, row key, property name, property value,
*                                                                             and the property Edm type if given by the service, returns the Edm type of the property.
* @param {Function(entity)} [options.entityResolver]                          The entity resolver. Given the single entity returned by the query, returns a modified object.
*/
TableBatch.prototype.retrieveEntity = function (partitionKey, rowKey, options) {
  var entity = { PartitionKey: {_: partitionKey, $: 'Edm.String'},
    RowKey: {_: rowKey, $: 'Edm.String'},
  };
  this.addOperation(TableConstants.Operations.RETRIEVE, entity, options);
};

/**
* Adds an insert operation to the batch.
*
* @param {object}             entity                                          The entity.
* @param {object}             [options]                                       The request options.
* @param {string}             [options.echoContent]                           Whether or not to return the entity upon a successful insert. Inserts only, default to false.
* @param {string}             [options.payloadFormat]                         The payload format to use for the request.
* @param {TableService~propertyResolver}  [options.propertyResolver]  The property resolver. Only applied if echoContent is true. Given the partition key, row key, property name, 
*                                                                             property value, and the property Edm type if given by the service, returns the Edm type of the property.
* @param {Function(entity)} [options.entityResolver]                          The entity resolver. Only applied if echoContent is true. Given the single entity returned by the insert, returns 
*                                                                             a modified object.
*/
TableBatch.prototype.insertEntity = function (entity, options) {
  this.addOperation(TableConstants.Operations.INSERT, entity, options);
};

/**
* Adds a delete operation to the batch.
*
* @param {object}             entity              The entity.
*/
TableBatch.prototype.deleteEntity = function (entity) {
  this.addOperation(TableConstants.Operations.DELETE, entity);
};

/**
* Adds a merge operation to the batch.
*
* @param {object}             entity              The entity.
*/
TableBatch.prototype.mergeEntity = function (entity) {
  this.addOperation(TableConstants.Operations.MERGE, entity);
};

/**
* Adds an replace operation to the batch.
*
* @param {object}             entity              The entity.
*/
TableBatch.prototype.replaceEntity = function (entity) {
  this.addOperation(TableConstants.Operations.REPLACE, entity);
};

/**
* Adds an insert or replace operation to the batch.
*
* @param {object}             entity              The entity.
*/
TableBatch.prototype.insertOrReplaceEntity = function (entity) {
  this.addOperation(TableConstants.Operations.INSERT_OR_REPLACE, entity);
};

/**
* Adds an insert or merge operation to the batch.
*
* @param {object}             entity              The entity.
*/
TableBatch.prototype.insertOrMergeEntity = function (entity) {
  this.addOperation(TableConstants.Operations.INSERT_OR_MERGE, entity);
};

/**
* Adds an operation to the batch after performing checks.
*
* @param {string}             operationType       The type of operation to perform. See Constants.TableConstants.Operations
* @param {object}             entity              The entity.
* @param {object}             [options]                                       The request options.
*/
TableBatch.prototype.addOperation = function (operationType, entity, options) {
  validate.validateArgs('addOperation', function (v) {
    v.object(entity, 'entity');
    v.object(entity.PartitionKey, 'entity.PartitionKey');
    v.object(entity.RowKey, 'entity.RowKey');
    v.stringAllowEmpty(entity.PartitionKey._, 'entity.PartitionKey._');
    v.stringAllowEmpty(entity.RowKey._, 'entity.RowKey._');
  });

  if(this.operations.length >= 100) {
    throw new Error(SR.BATCH_TOO_LARGE);
  }

  if (operationType === TableConstants.Operations.RETRIEVE) {
    if(this.hasOperations()) {
      throw new Error(SR.BATCH_ONE_RETRIEVE);
    } else {
      this.retrieve = true;
    }
  } else if (this.retrieve) {
    throw new Error(SR.BATCH_ONE_RETRIEVE);
  }

  if (!this.hasOperations()) {
    this.pk = entity.PartitionKey._;
  } else if (entity.PartitionKey._ !== this.pk) {
    throw new Error(SR.BATCH_ONE_PARTITION_KEY);
  }

  var copiedOptions = extend(true, {}, options);
  this.operations.push({type: operationType, entity: entity, options: copiedOptions});
};

/**
* Gets an operation from the batch. Returns null if the index does not exist.
*
* @param {number}             index           The index in the operations array at which to remove an element.
* @return {object}                            The removed operation.
*/
TableBatch.prototype.getOperation = function (index) {
  return this.operations[index];
};

/**
* Removes an operation from the batch. Returns null if the index does not exist.
*
* @param {number}             index           The index in the operations array at which to remove an element.
* @return {object}                            The removed operation.
*/
TableBatch.prototype.removeOperation = function (index) {
  var operation = this.operations.splice(index, 1)[0];

  // if the array is empty, unlock the partition key
  if (!this.hasOperations()) {
    this.pk = null;
    this.retrieve = false;
  }

  return operation;
};

module.exports = TableBatch;


/***/ }),
/* 602 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var azureCommon = __webpack_require__(603);
var BlobService = __webpack_require__(605);
var extend = __webpack_require__(270);
var fs = __webpack_require__(94);
var mime = __webpack_require__(614);

var azureutil = azureCommon.util;
var Constants = azureCommon.Constants;
var FileReadStream = azureCommon.FileReadStream;
var SpeedSummary = azureCommon.SpeedSummary;
var validate = azureCommon.validate;
var BlobConstants = Constants.BlobConstants;

/**
* Downloads a blob into a file.
* (Not available in the JavaScript Client Library for Browsers)
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {string}             localFileName                               The local path to the file to be downloaded.
* @param {object}             [options]                                   The request options.
* @param {boolean}            [options.skipSizeCheck]                     Skip the size check to perform direct download.
*                                                                         Set the option to true for small blobs.
*                                                                         Parallel download and speed summary won't work with this option on.
* @param {SpeedSummary}       [options.speedSummary]                      The download tracker objects.
* @param {int}                [options.parallelOperationThreadCount]      The number of parallel operations that may be performed when uploading.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {string}             [options.rangeStart]                        Return only the bytes of the blob in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the blob in the specified range.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading blobs.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `[result]{@link BlobResult}` will contain the blob information.
*                                                                         `response` will contain information related to this operation.
* @return {SpeedSummary}
* 
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* blobService.getBlobToLocalFile('taskcontainer', 'task1', 'task1-download.txt', function(error, serverBlob) {
*   if(!error) {
*     // Blob available in serverBlob.blob variable
*   }
*/
BlobService.prototype.getBlobToLocalFile = function (container, blob, localFileName, optionsOrCallback, callback) {
  var options;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { options = o; callback = c; });

  validate.validateArgs('getBlobToLocalFile', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.string(localFileName, 'localFileName');
    v.containerNameIsValid(container);
    v.callback(callback);
  });
  
  return this._getBlobToLocalFile(container, blob, localFileName, options, callback);
};

/**
* Uploads a page blob from file. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
* (Not available in the JavaScript Client Library for Browsers)
*
* @this {BlobService}
* @param {string}             container                                           The container name.
* @param {string}             blob                                                The blob name.
* @param {string}             localFileName                                       The local path to the file to be uploaded.
* @param {object}             [options]                                           The request options.
* @param {SpeedSummary}       [options.speedSummary]                              The upload tracker objects.
* @param {int}                [options.parallelOperationThreadCount]              The number of parallel operations that may be performed when uploading.
* @param {string}             [options.leaseId]                                   The lease identifier.
* @param {string}             [options.transactionalContentMD5]                   An MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                                  The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                       Specifies whether the blob's ContentMD5 header should be set on uploads. 
*                                                                                 The default value is false for page blobs.
* @param {bool}               [options.useTransactionalMD5]                       Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.blobTier]                                  For page blobs on premium accounts only. Set the tier of the target blob. Refer to BlobUtilities.BlobTier.PremiumPageBlobTier.
* @param {object}             [options.contentSettings]                           The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]               The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]           The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]           The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]              The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]        The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]                The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                          The access conditions.
* @param {LocationMode}       [options.locationMode]                              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]                  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]                  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                                 The default value is false.
* @param {errorOrResult}      callback                                            `error` will contain information
*                                                                                 if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                                 the blob information.
*                                                                                 `response` will contain information related to this operation.
* @return {SpeedSummary}
*/
BlobService.prototype.createPageBlobFromLocalFile = function (container, blob, localFileName, optionsOrCallback, callback) {
  return this._createBlobFromLocalFile(container, blob, BlobConstants.BlobTypes.PAGE, localFileName, optionsOrCallback, callback);
};

/**
* Creates a new block blob. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
* (Not available in the JavaScript Client Library for Browsers)
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {string}             localFileName                                 The local path to the file to be uploaded.
* @param {object}             [options]                                     The request options.
* @param {int}                [options.blockSize]                           The size of each block. Maximum is 100MB.
* @param {string}             [options.blockIdPrefix]                       The prefix to be used to generate the block id.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @return {SpeedSummary}
*/
BlobService.prototype.createBlockBlobFromLocalFile = function (container, blob, localFileName, optionsOrCallback, callback) {
  return this._createBlobFromLocalFile(container, blob, BlobConstants.BlobTypes.BLOCK, localFileName, optionsOrCallback, callback);
};

/**
* Creates a new append blob from a local file. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
* This API should be used strictly in a single writer scenario because the API internally uses the append-offset conditional header to avoid duplicate blocks.
* If you are guaranteed to have a single writer scenario, please look at options.absorbConditionalErrorsOnRetry and see if setting this flag to true is acceptable for you.
* If you want to append data to an already existing blob, please look at appendFromLocalFile.
* (Not available in the JavaScript Client Library for Browsers)
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {string}             localFileName                                 The local path to the file to be uploaded.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry.
* @param {string}             [options.leaseId]                             The lease identifier. 
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 ahash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @return {SpeedSummary}
*/
BlobService.prototype.createAppendBlobFromLocalFile = function (container, blob, localFileName, optionsOrCallback, callback) {
  return this._createBlobFromLocalFile(container, blob, BlobConstants.BlobTypes.APPEND, localFileName, optionsOrCallback, callback);
};

/**
* Appends to an append blob from a local file. Assumes the blob already exists on the service.
* This API should be used strictly in a single writer scenario because the API internally uses the append-offset conditional header to avoid duplicate blocks.
* If you are guaranteed to have a single writer scenario, please look at options.absorbConditionalErrorsOnRetry and see if setting this flag to true is acceptable for you.
* (Not available in the JavaScript Client Library for Browsers)
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {string}             localFileName                                 The local path to the file to be uploaded.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @return {SpeedSummary}
*/
BlobService.prototype.appendFromLocalFile = function (container, blob, localFileName, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('appendFromLocalFile', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.string(localFileName, 'localFileName');
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);
  options.speedSummary = options.speedSummary || new SpeedSummary(blob);

  var self = this;
  fs.stat(localFileName, function (error, stat) {
    if (error) {
      callback(error);
    } else {
      var stream = new FileReadStream(localFileName, { calcContentMd5: options.storeBlobContentMD5 });
      var streamCallback = function (appendError, blob, response) {
        if (azureutil.objectIsFunction(stream.destroy)) {
          stream.destroy();
        }
        callback(appendError, blob, response);
      };

      try {
        self._uploadBlobFromStream(false, container, blob, BlobConstants.BlobTypes.APPEND, stream, stat.size, options, streamCallback);
      } catch (err) {
        callback(err);
      }
    }
  });
  
  return options.speedSummary;
};

// Private methods

/**
* Creates a new blob (Block/Page/Append). If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
*
* @ignore
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {BlobType}           blobType                                      The blob type.
* @param {string}             localFileName                                 The local path to the file to be uploaded.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry. (For append blob only)
* @param {int}                [options.blockSize]                           The size of each block. Maximum is 100MB.
* @param {string}             [options.blockIdPrefix]                       The prefix to be used to generate the block id. (For block blob only)
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             An MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {string}             [options.blobTier]                            For page blobs on premium accounts only. Set the tier of the target blob. Refer to BlobUtilities.BlobTier.PremiumPageBlobTier.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The MD5 hash of the blob content.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      The callback function.
*
* @return {SpeedSummary}
*
*/
BlobService.prototype._createBlobFromLocalFile = function (container, blob, blobType, localFileName, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('_createBlobFromLocalFile', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.blobTypeIsValid(blobType);
    v.string(localFileName, 'localFileName');
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);
  options.speedSummary = options.speedSummary || new SpeedSummary(blob);

  var self = this;
  var size = 0;
  
  var creationCallback = function (createError, createBlob, createResponse) {
    if (createError) {
      callback(createError, createBlob, createResponse);
    } else {
      // Automatically detect the mime type
      if(azureutil.tryGetValueChain(options, ['contentSettings','contentType'], undefined) === undefined) {
        azureutil.setObjectInnerPropertyValue(options, ['contentSettings','contentType'], mime.lookup(localFileName));
      }

      var stream = new FileReadStream(localFileName, { calcContentMd5: options.storeBlobContentMD5 });
      var streamCallback = function (createError, createBlob, createResponse) {
        if (azureutil.objectIsFunction(stream.destroy)) {
          stream.destroy();
        }
        callback(createError, createBlob, createResponse);
      };
      self._uploadBlobFromStream(true, container, blob, blobType, stream, size, options, streamCallback);
    }
  };

  // Check the file size to determine the upload method: single request or chunks
  fs.stat(localFileName, function (error, stat) {
    if (error) {
      callback(error);
    } else {
      size = stat.size;
      try {
        self._createBlob(container, blob, blobType, size, options, creationCallback);
      } catch (err) {
        callback(err);
      }
    }
  });
  
  return options.speedSummary;
};

/**
* Downloads a blob into a file.
* @ignore
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {string}             localFileName                               The local path to the file to be downloaded.
* @param {object}             [options]                                   The request options.
* @param {boolean}            [options.skipSizeCheck]                     Skip the size check to perform direct download.
*                                                                         Set the option to true for small blobs.
*                                                                         Parallel download and speed summary won't work with this option on.
* @param {SpeedSummary}       [options.speedSummary]                      The download tracker objects.
* @param {int}                [options.parallelOperationThreadCount]      The number of parallel operations that may be performed when uploading.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {string}             [options.rangeStart]                        Return only the bytes of the blob in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the blob in the specified range.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading blobs.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `result` will contain the blob information.
*                                                                         `response` will contain information related to this operation.
* @return {SpeedSummary}
* 
*/
BlobService.prototype._getBlobToLocalFile = function (container, blob, localFileName, optionsOrCallback, callback) {
  var options;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { options = o; callback = c; });
  options.speedSummary = options.speedSummary || new SpeedSummary(blob);
  
  var writeStream = fs.createWriteStream(localFileName, { 'highWaterMark': BlobConstants.MAX_QUEUED_WRITE_DISK_BUFFER_SIZE });
  writeStream.on('error', function (error) {
    callback(error);
  });
  
  this.getBlobToStream(container, blob, writeStream, options, function (error, responseBlob, response) {
    if (error) {
      var onErrorCallback = function() {
        // If the download failed from the beginning, remove the file.
        if (fs.existsSync(localFileName) && writeStream.bytesWritten === 0) {
          fs.unlinkSync(localFileName);
        }
        callback(error, responseBlob, response);
      };
      if (!writeStream.closed) {
        writeStream.end(onErrorCallback);
      } else {
        onErrorCallback();
      }
    } else {
      callback(error, responseBlob, response);
    }
  });
  
  return options.speedSummary;
};

module.exports = BlobService;

/***/ }),
/* 603 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var azureCommon = __webpack_require__(272);

// Streams
azureCommon.FileReadStream = __webpack_require__(604);

module.exports = azureCommon;

/***/ }),
/* 604 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var stream = __webpack_require__(111);
var util = __webpack_require__(113);
var fs = __webpack_require__(94);
var validator = __webpack_require__(499);

var Md5Wrapper = __webpack_require__(276);
var Constants = __webpack_require__(275);
var bufferSize = Constants.BlobConstants.DEFAULT_WRITE_BLOCK_SIZE_IN_BYTES;

var EventEmitter = __webpack_require__(237).EventEmitter;

/**
*  File read stream
*  1. Calculate md5
*  2. Track reading offset
*  3. Work with customize memory allocator
*  4. Buffer data from stream.
*  @param {object} options stream.Readable options
*/
function FileReadStream(path, options) {
  stream.Stream.call(this);
  this.readable = true;

  if(!options) {
    options = {};
  }

  this._destroyed = false;
  this._streamEnded = false;
  this._fd = null;
  this._fileName = undefined;
  this._highWaterMark = options.highWaterMark || bufferSize;
  this._offset = 0;
  this._paused = undefined;
  this._allocator = options.allocator;
  this._fileName = path;

  this._md5hash = null;
  this._md5sum = undefined;

  if (options.calcContentMd5) {
    this._md5hash = new Md5Wrapper().createMd5Hash();
  }

  this._open();
}

util.inherits(FileReadStream, stream.Stream);

/**
* Open file
*/
FileReadStream.prototype._open = function () {
  var flags = 'r';
  var self = this;
  fs.open(this._fileName, flags, function(error, fd) {
    if (error) {
      self.emit('error', error);
    } else {
      self._fd = fd;
      self.emit('open', fd);
    }
  });
};

/**
* Add event listener
*/
FileReadStream.prototype.on = function(event, listener) {
  if (event === 'data' && this._paused === undefined) {
    this._paused = false;
    this._emitData();
  }

  return EventEmitter.prototype.on.call(this, event, listener);
};

/**
* Set memory allocator
*/
FileReadStream.prototype.setMemoryAllocator = function(allocator) {
  this._allocator = allocator;
};

/**
* Get buffer
*/
FileReadStream.prototype._getBuffer = function(size) {
  if(this._allocator && this._allocator.getBuffer) {
    return this._allocator.getBuffer(size);
  } else {
    var buffer = Buffer.alloc(size);
    return buffer;
  }
};

/**
* Release buffer
*/
FileReadStream.prototype._releaseBuffer = function(buffer) {
  if(this._allocator && this._allocator.releaseBuffer) {
    this._allocator.releaseBuffer(buffer);
  }
};

/**
* Emit the data from file
*/
FileReadStream.prototype._emitData = function() {
  var self = this;
  if(!this._fd) {
    this.once('open', function() {
      self._emitData();
    });
    return;
  }

  if (this._paused || this._streamEnded) {
    return;
  }
  var buffer = this._getBuffer(this._highWaterMark);
  fs.read(this._fd, buffer, 0, this._highWaterMark, this._offset, function(error, bytesRead, readBuffer) {
    if (error) {
      self.emit('error', error);
      return;
    }

    if(bytesRead === 0) {
      if(!self._streamEnded) {
        self._streamEnded = true;
        self.emit('end');
      }
      return;
    }

    var range = {
      start : self._offset,
      end : self._offset + bytesRead - 1,
      size : bytesRead
    };

    var data;
    if(bytesRead == self._highWaterMark) {
      data = readBuffer;
    } else {
      data = readBuffer.slice(0, bytesRead);
      //Release the current buffer since we created a new one
      self._releaseBuffer(readBuffer);
    }

    if(self._md5hash) {
      self._md5hash.update(data);
    }

    self.emit('data', data, range);

    // cleanup
    self._offset += bytesRead;
    buffer = readBuffer = data = null;
    self._emitData();
  });
};

/**
* Get file content md5 when read completely.
*/
FileReadStream.prototype.getContentMd5 = function(encoding) {
  if (!encoding) encoding = 'base64';
  if(!this._md5hash) {
    throw new Error('Can\'t get content md5, please set the calcContentMd5 option for FileReadStream.');
  } else {
    if (this._streamEnded) {
      if (!this._md5sum) {
        this._md5sum = this._md5hash.digest(encoding);
      }
      return this._md5sum;
    } else {
      throw new Error('FileReadStream has not ended.');
    }
  }
};

/**
* Pause chunk stream
*/
FileReadStream.prototype.pause = function() {
  this._paused = true;
};

/**
* Resume read stream
*/
FileReadStream.prototype.resume = function() {
  var previousState = this._paused;
  if (this._paused) {
    this._paused = false;

    if(previousState === true) {
      //Only start to emit data when it's in pause state
      this._emitData();
    }
  }
};

FileReadStream.prototype.finish = function () {
  this.destroy();
};

FileReadStream.prototype.destroy = function () {
  if (this._destroyed) {
    return;
  }

  var self = this;
  this.readable = false;

  function close(fd) {
    fs.close(fd || self._fd, function(err) {
      if (err) {
        self.emit('error', err);
      }
      else {
        self.emit('close');
      }
    });
    self._fd = null;
    self._destroyed = true;
  }

  // when the stream is closed immediately after creating it
  if (!validator.isInt('' + this._fd)) {
    this.once('open', close);
    return;
  }

  close();
};

FileReadStream.prototype.stop = function () {
  this.destroy();
  this._streamEnded = true;
  this.emit('end');
};

module.exports = FileReadStream;


/***/ }),
/* 605 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var qs = __webpack_require__(330);
var url = __webpack_require__(274);
var util = __webpack_require__(113);
var _ = __webpack_require__(271);
var extend = __webpack_require__(270);

var azureCommon = __webpack_require__(272);
var BlockRangeStream = __webpack_require__(606);
var Md5Wrapper = __webpack_require__(276);
var PageRangeStream = __webpack_require__(607);
var RangeStream = __webpack_require__(608);
var azureutil = azureCommon.util;
var SR = azureCommon.SR;
var validate = azureCommon.validate;
var StorageServiceClient = azureCommon.StorageServiceClient;
var WebResource = azureCommon.WebResource;

// Constants
var Constants = azureCommon.Constants;
var BlobConstants = Constants.BlobConstants;
var HeaderConstants = Constants.HeaderConstants;
var QueryStringConstants = Constants.QueryStringConstants;
var RequestLocationMode = Constants.RequestLocationMode;

// Streams
var BatchOperation = azureCommon.BatchOperation;
var SpeedSummary = azureCommon.SpeedSummary;
var ChunkAllocator = azureCommon.ChunkAllocator;
var ChunkStream = azureCommon.ChunkStream;
var ChunkStreamWithStream = azureCommon.ChunkStreamWithStream;

// Models requires
var AclResult = azureCommon.AclResult;
var ServiceStatsParser = azureCommon.ServiceStatsParser;
var AccountPropertiesResult = __webpack_require__(609);
var BlockListResult = __webpack_require__(610);
var BlobResult = __webpack_require__(611);
var ContainerResult = __webpack_require__(612);
var LeaseResult = __webpack_require__(613);

var BlobUtilities = __webpack_require__(497);

// Errors requires
var errors = __webpack_require__(306);
var ArgumentError = errors.ArgumentError;
var ArgumentNullError = errors.ArgumentNullError;
var StorageError = errors.StorageError;

/**
* Creates a new BlobService object.
* If no connection string or storageaccount and storageaccesskey are provided,
* the AZURE_STORAGE_CONNECTION_STRING or AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY environment variables will be used.
* @class
* The BlobService class is used to perform operations on the Microsoft Azure Blob Service.
* The Blob Service provides storage for binary large objects, and provides
* functions for working with data stored in blobs as either streams or pages of data.
* 
* For more information on the Blob Service, as well as task focused information on using it in a Node.js application, see
* [How to Use the Blob Service from Node.js](http://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-how-to-use-blob-storage/).
* The following defaults can be set on the blob service.
* singleBlobPutThresholdInBytes                       The default maximum size, in bytes, of a blob before it must be separated into blocks.
* defaultEnableReuseSocket                            The default boolean value to enable socket reuse when uploading local files or streams.
*                                                     If the Node.js version is lower than 0.10.x, socket reuse will always be turned off.
* defaultTimeoutIntervalInMs                          The default timeout interval, in milliseconds, to use for request made via the Blob service.
* defaultClientRequestTimeoutInMs                     The default timeout of client requests, in milliseconds, to use for the request made via the Blob service.
* defaultMaximumExecutionTimeInMs                     The default maximum execution time across all potential retries, for requests made via the Blob service.
* defaultLocationMode                                 The default location mode for requests made via the Blob service.
* parallelOperationThreadCount                        The number of parallel operations that may be performed when uploading a blob that is greater than 
*                                                     the value specified by the singleBlobPutThresholdInBytes property in size.
* useNagleAlgorithm                                   Determines whether the Nagle algorithm is used for requests made via the Blob service; true to use the  
*                                                     Nagle algorithm; otherwise, false. The default value is false.
* enableGlobalHttpAgent                               Determines whether global HTTP(s) agent is enabled; true to use Global HTTP(s) agent; otherwise, false to use
*                                                     http(s).Agent({keepAlive:true}).
* @constructor
* @extends {StorageServiceClient}
*
* @param {string} [storageAccountOrConnectionString]  The storage account or the connection string.
* @param {string} [storageAccessKey]                  The storage access key.
* @param {string|object} [host]                       The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @param {string} [sas]                               The Shared Access Signature string.
* @param {string} [endpointSuffix]                    The endpoint suffix.
* @param {TokenCredential} [token]                    The {@link TokenCredential} object.
*/
function BlobService(storageAccountOrConnectionString, storageAccessKey, host, sas, endpointSuffix, token) {
  var storageServiceSettings = StorageServiceClient.getStorageSettings(storageAccountOrConnectionString, storageAccessKey, host, sas, endpointSuffix, token);

  BlobService['super_'].call(this,
    storageServiceSettings._name,
    storageServiceSettings._key,
    storageServiceSettings._blobEndpoint,
    storageServiceSettings._usePathStyleUri,
    storageServiceSettings._sasToken,
    token);
  
  this.defaultEnableReuseSocket = Constants.DEFAULT_ENABLE_REUSE_SOCKET;
  this.singleBlobPutThresholdInBytes = BlobConstants.DEFAULT_SINGLE_BLOB_PUT_THRESHOLD_IN_BYTES;
  this.parallelOperationThreadCount = Constants.DEFAULT_PARALLEL_OPERATION_THREAD_COUNT;
}

util.inherits(BlobService, StorageServiceClient);

// Non-class methods

/**
* Create resource name
* @ignore
*
* @param {string} containerName Container name
* @param {string} blobName      Blob name
* @return {string} The encoded resource name.
*/
function createResourceName(containerName, blobName, forSAS) {
  // Resource name
  if (blobName && !forSAS) {
    blobName = encodeURIComponent(blobName);
    blobName = blobName.replace(/%2F/g, '/');
    blobName = blobName.replace(/%5C/g, '/');
    blobName = blobName.replace(/\+/g, '%20');
  }

  // return URI encoded resource name
  if (blobName) {
    return containerName + '/' + blobName;
  }
  else {
    return containerName;
  }
}

// Blob service methods

/**
* Gets the service stats for a storage account’s Blob service.
*
* @this {BlobService}
* @param {object}       [options]                               The request options.
* @param {LocationMode} [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}          [options.timeoutIntervalInMs]           The timeout interval, in milliseconds, to use for the request.
* @param {int}          [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}          [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}       [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}         [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                               The default value is false.
* @param {errorOrResult}  callback                              `error` will contain information if an error occurs; otherwise, `[result]{@link ServiceStats}` will contain the stats and 
*                                                               `response` will contain information related to this operation.
*/
BlobService.prototype.getServiceStats = function (optionsOrCallback, callback) {
  var options;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { options = o; callback = c; });

  validate.validateArgs('getServiceStats', function (v) {
    v.callback(callback);
  });

  var webResource = WebResource.get()
    .withQueryOption(QueryStringConstants.COMP, 'stats')
    .withQueryOption(QueryStringConstants.RESTYPE, 'service');

  options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;

  var processResponseCallback = function (responseObject, next) {
    responseObject.serviceStatsResult = null;
    if (!responseObject.error) {
      responseObject.serviceStatsResult = ServiceStatsParser.parse(responseObject.response.body.StorageServiceStats);
    }

    // function to be called after all filters
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.serviceStatsResult, returnObject.response);
    };

    // call the first filter
    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Gets the properties of a storage account’s Blob service, including Azure Storage Analytics.
*
* @this {BlobService}
* @param {object}       [options]                               The request options.
* @param {LocationMode} [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}          [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}          [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}          [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}       [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}         [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                               The default value is false.
* @param {errorOrResult}  callback                              `error` will contain information if an error occurs; otherwise, `[result]{@link BlobServiceProperties}` will contain the properties 
*                                                               and `response` will contain information related to this operation.
*/
BlobService.prototype.getServiceProperties = function (optionsOrCallback, callback) {
  return this.getAccountServiceProperties(optionsOrCallback, callback);
};

/**
* Gets the properties of a storage account.
*
* @this {BlobService}
* @param {string}       [container]                             Optional. Name of an existing container. Required when using a SAS token to a specific container or blob.
* @param {string}       [blob]                                  Optional. Name of an existing blob. Required when using a SAS token to a specific blob.
* @param {object}       [options]                               The request options.
* @param {LocationMode} [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}          [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}          [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}          [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}       [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}         [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                               The default value is false.
* @param {errorOrResult}  callback                              `error` will contain information if an error occurs; otherwise, `[result]{@link ServiceProperties}` will contain the properties 
*                                                               and `response` will contain information related to this operation.
*/
BlobService.prototype.getAccountProperties = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('getAccountProperties', function (v) {
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);
  
  var webResource = WebResource.head(createResourceName(container, blob))
    .withQueryOption(QueryStringConstants.COMP, 'properties')
    .withQueryOption(QueryStringConstants.RESTYPE, 'account');
  
  options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;
  
  var processResponseCallback = function (responseObject, next) {
    responseObject.accountPropertiesResult = null;
    if (!responseObject.error) {
      responseObject.accountPropertiesResult = AccountPropertiesResult.parse(responseObject.response.headers);
    }
    
    // function to be called after all filters
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.accountPropertiesResult, returnObject.response);
    };
    
    // call the first filter
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Sets the properties of a storage account's Blob service, including Azure Storage Analytics.
* You can also use this operation to set the default request version for all incoming requests that do not have a version specified.
* When you set blob service properties (such as enabling soft delete), it may take up to 30 seconds to take effect. 
*
* @this {BlobService}
* @param {object}             serviceProperties                        A `[BlobServiceProperties]{@link BlobServiceProperties}` object.
* @param {object}             [options]                                The request options.
* @param {LocationMode}       [options.locationMode]                   Specifies the location mode used to decide which location the request should be sent to. 
*                                                                      Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]            The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]       The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]       The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                      The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                      execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]              Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                      The default value is false.
* @param {errorOrResponse}    callback                                 `error` will contain information
*                                                                      if an error occurs; otherwise, `response`
*                                                                      will contain information related to this operation.
*/
BlobService.prototype.setServiceProperties = function (serviceProperties, optionsOrCallback, callback) {
  return this.setAccountServiceProperties(serviceProperties, optionsOrCallback, callback);
};

/**
* Sets the tier of a blockblob under a blob storage account, or the tier of a pageblob under a premium storage account.
*
* @this {BlobService}
* @param {string}             container                                The container name.
* @param {string}             blob                                     The blob name.
* @param {string}             blobTier                                 Please see BlobUtilities.BlobTier.StandardBlobTier or BlobUtilities.BlobTier.PremiumPageBlobTier for possible values.
* @param {LocationMode}       [options.locationMode]                   Specifies the location mode used to decide which location the request should be sent to. 
*                                                                      Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]            The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]       The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]       The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                      The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                      execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]              Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                      The default value is false.
* @param {errorOrResponse}    callback                                 `error` will contain information
*                                                                      if an error occurs; otherwise, `response`
*                                                                      will contain information related to this operation.
*/
BlobService.prototype.setBlobTier = function (container, blob, blobTier, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('setBlobTier', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.string(blobTier, 'blobTier');
    v.containerNameIsValid(container);
    v.blobNameIsValid(container, blob);
    v.blobTierNameIsValid(blobTier);
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);
  
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'tier')
    .withHeader(HeaderConstants.ACCESS_TIER, blobTier);
  
  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };
    
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Lists a segment containing a collection of container items under the specified account.
*
* @this {BlobService}
* @param {object}             currentToken                                A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.maxResults]                        Specifies the maximum number of containers to return per call to Azure storage.
* @param {string}             [options.include]                           Include this parameter to specify that the container's metadata be returned as part of the response body. (allowed values: '', 'metadata')
*                                                                         **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                         `entries`  gives a list of `[containers]{@link ContainerResult}` and the `continuationToken` is used for the next listing operation.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.listContainersSegmented = function (currentToken, optionsOrCallback, callback) {
  this.listContainersSegmentedWithPrefix(null /* prefix */, currentToken, optionsOrCallback, callback);
};

/**
* Lists a segment containing a collection of container items whose names begin with the specified prefix under the specified account.
*
* @this {BlobService}
* @param {string}             prefix                                      The prefix of the container name.
* @param {object}             currentToken                                A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.maxResults]                        Specifies the maximum number of containers to return per call to Azure storage.
* @param {string}             [options.include]                           Include this parameter to specify that the container's metadata be returned as part of the response body. (allowed values: '', 'metadata')
*                                                                         **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                         `entries`  gives a list of `[containers]{@link ContainerResult}` and the `continuationToken` is used for the next listing operation.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.listContainersSegmentedWithPrefix = function (prefix, currentToken, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('listContainers', function (v) {
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get()
    .withQueryOption(QueryStringConstants.COMP, 'list')
    .withQueryOption(QueryStringConstants.MAX_RESULTS, options.maxResults)
    .withQueryOption(QueryStringConstants.INCLUDE, options.include);

  if (!azureutil.objectIsNull(currentToken)) {
    webResource.withQueryOption(QueryStringConstants.MARKER, currentToken.nextMarker);
  }

  webResource.withQueryOption(QueryStringConstants.PREFIX, prefix);

  options.requestLocationMode = azureutil.getNextListingLocationMode(currentToken);

  var processResponseCallback = function (responseObject, next) {
    responseObject.listContainersResult = null;

    if (!responseObject.error) {
      responseObject.listContainersResult = {
        entries: null,
        continuationToken: null
      };
      responseObject.listContainersResult.entries = [];

      var containers = [];

      if (responseObject.response.body.EnumerationResults.Containers && responseObject.response.body.EnumerationResults.Containers.Container) {
        containers = responseObject.response.body.EnumerationResults.Containers.Container;
        if (!_.isArray(containers)) {
          containers = [containers];
        }
      }

      containers.forEach(function (currentContainer) {
        var containerResult = ContainerResult.parse(currentContainer);
        responseObject.listContainersResult.entries.push(containerResult);
      });

      if (responseObject.response.body.EnumerationResults.NextMarker) {
        responseObject.listContainersResult.continuationToken = {
          nextMarker: null,
          targetLocation: null
        };

        responseObject.listContainersResult.continuationToken.nextMarker = responseObject.response.body.EnumerationResults.NextMarker;
        responseObject.listContainersResult.continuationToken.targetLocation = responseObject.targetLocation;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.listContainersResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

// Container methods

/**
* Checks whether or not a container exists on the service.
*
* @this {BlobService}
* @param {string}             container                               The container name.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}      callback                                `error` will contain information
*                                                                     if an error occurs; otherwise `[result]{@link ContainerResult}` will contain
*                                                                     the container information including `exists` boolean member. 
*                                                                     `response` will contain information related to this operation.
*/
BlobService.prototype.doesContainerExist = function (container, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('doesContainerExist', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  this._doesContainerExist(container, false, options, callback);
};

/**
* Creates a new container under the specified account.
* If a container with the same name already exists, the operation fails.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {object}             [options]                           The request options.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {object}             [options.metadata]                  The metadata key/value pairs.
* @param {string}             [options.publicAccessLevel]         Specifies whether data in the container may be accessed publicly and the level of access.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `[result]{@link ContainerResult}` will contain
*                                                                 the container information.
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.createContainer = function (container, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createContainer', function (v) {
    v.string(container, 'container');
    v.test(function () { return container !== '$logs'; },
      'Container name format is incorrect');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(container)
    .withQueryOption(QueryStringConstants.RESTYPE, 'container');

  webResource.addOptionalMetadataHeaders(options.metadata);
  webResource.withHeader(HeaderConstants.BLOB_PUBLIC_ACCESS, options.publicAccessLevel);

  var processResponseCallback = function (responseObject, next) {
    responseObject.containerResult = null;
    if (!responseObject.error) {
      responseObject.containerResult = new ContainerResult(container);
      responseObject.containerResult.getPropertiesFromHeaders(responseObject.response.headers);

      if (options.metadata) {
        responseObject.containerResult.metadata = options.metadata;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.containerResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Creates a new container under the specified account if the container does not exists.
*
* @this {BlobService}
* @param {string}             container                                 The container name.
* @param {object}             [options]                                 The request options.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {object}             [options.metadata]                        The metadata key/value pairs.
* @param {string}             [options.publicAccessLevel]               Specifies whether data in the container may be accessed publicly and the level of access.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResult}      callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise `[result]{@link ContainerResult}` will contain
*                                                                       the container information including `created` boolean member. 
*                                                                       `response` will contain information related to this operation.
*
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* blobService.createContainerIfNotExists('taskcontainer', {publicAccessLevel : 'blob'}, function(error) {
*   if(!error) {
*     // Container created or exists, and is public
*   }
* }); 
*/
BlobService.prototype.createContainerIfNotExists = function (container, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createContainerIfNotExists', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var self = this;
  self._doesContainerExist(container, true, options, function (error, result, response) {
    var exists = result.exists;
    result.created = false;
    delete result.exists;

    if (error) {
      callback(error, result, response);
    } else if (exists) {
      response.isSuccessful = true;
      callback(error, result, response);
    } else {
      self.createContainer(container, options, function (createError, containerResult, createResponse) {
        if (!createError) {
          containerResult.created = true;
        }
        else if (createError && createError.statusCode === Constants.HttpConstants.HttpResponseCodes.Conflict && createError.code === Constants.BlobErrorCodeStrings.CONTAINER_ALREADY_EXISTS) {
          // If it was created before, there was no actual error.
          createError = null;
          createResponse.isSuccessful = true;
        }

        callback(createError, containerResult, createResponse);
      });
    }
  });
};

/**
* Retrieves a container and its properties from a specified account.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {object}             [options]                           The request options.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {string}             [options.leaseId]                   The container lease identifier.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `[result]{@link ContainerResult}` will contain
*                                                                 information for the container.
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.getContainerProperties = function (container, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getContainerProperties', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.head(container)
    .withQueryOption(QueryStringConstants.RESTYPE, 'container')
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.containerResult = null;
    if (!responseObject.error) {
      responseObject.containerResult = new ContainerResult(container);
      responseObject.containerResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.containerResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.containerResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Returns all user-defined metadata for the container.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
*
* @this {BlobService}
* @param {string}             container                                 The container name.
* @param {object}             [options]                                 The request options.
* @param {string}             [options.leaseId]                         The container lease identifier.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResult}      callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise `[result]{@link ContainerResult}` will contain
*                                                                       information for the container.
*                                                                       `response` will contain information related to this operation.
*/
BlobService.prototype.getContainerMetadata = function (container, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getContainerMetadata', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.head(container)
    .withQueryOption(QueryStringConstants.RESTYPE, 'container')
    .withQueryOption(QueryStringConstants.COMP, 'metadata')
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.containerResult = null;
    if (!responseObject.error) {
      responseObject.containerResult = new ContainerResult(container);
      responseObject.containerResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.containerResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.containerResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Sets the container's metadata.
*
* Calling the Set Container Metadata operation overwrites all existing metadata that is associated with the container.
* It's not possible to modify an individual name/value pair.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {object}             metadata                            The metadata key/value pairs.
* @param {object}             [options]                           The request options.
* @param {string}             [options.leaseId]                   The container lease identifier.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {AccessConditions}   [options.accessConditions]          The access conditions.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResponse}    callback                            `error` will contain information
*                                                                 if an error occurs; otherwise 
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.setContainerMetadata = function (container, metadata, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setContainerMetadata', function (v) {
    v.string(container, 'container');
    v.object(metadata, 'metadata');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(container)
    .withQueryOption(QueryStringConstants.RESTYPE, 'container')
    .withQueryOption(QueryStringConstants.COMP, 'metadata')
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  webResource.addOptionalMetadataHeaders(metadata);

  var processResponseCallback = function (responseObject, next) {
    responseObject.containerResult = null;
    if (!responseObject.error) {
      responseObject.containerResult = new ContainerResult(container);
      responseObject.containerResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.containerResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Gets the container's ACL.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {object}             [options]                           The request options.
* @param {string}             [options.leaseId]                   The container lease identifier.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `[result]{@link ContainerAclResult}` will contain
*                                                                 information for the container.
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.getContainerAcl = function (container, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getContainerAcl', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get(container)
    .withQueryOption(QueryStringConstants.RESTYPE, 'container')
    .withQueryOption(QueryStringConstants.COMP, 'acl')
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var processResponseCallback = function (responseObject, next) {
    responseObject.containerResult = null;
    if (!responseObject.error) {
      responseObject.containerResult = new ContainerResult(container);
      responseObject.containerResult.getPropertiesFromHeaders(responseObject.response.headers);
      responseObject.containerResult.signedIdentifiers = AclResult.parse(responseObject.response.body);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.containerResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Updates the container's ACL.
*
* @this {BlobService}
* @param {string}                         container                           The container name.
* @param {Object.<string, AccessPolicy>}  signedIdentifiers                   The container ACL settings. See `[AccessPolicy]{@link AccessPolicy}` for detailed information.
* @param {object}                         [options]                           The request options.
* @param {AccessConditions}               [options.accessConditions]          The access conditions.
* @param {string}                         [options.publicAccessLevel]         Specifies whether data in the container may be accessed publicly and the level of access.
* @param {string}                         [options.leaseId]                   The container lease identifier.
* @param {int}                            [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                            [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                            [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                             The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                             execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}                         [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}                           [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                             The default value is false.
* @param {errorOrResult}                  callback                            `error` will contain information
*                                                                             if an error occurs; otherwise `[result]{@link ContainerAclResult}` will contain
*                                                                             information for the container.
*                                                                             `response` will contain information related to this operation.
*/
BlobService.prototype.setContainerAcl = function (container, signedIdentifiers, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setContainerAcl', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var policies = null;
  if (signedIdentifiers) {
    if (_.isArray(signedIdentifiers)) {
      throw new TypeError(SR.INVALID_SIGNED_IDENTIFIERS);
    }
    policies = AclResult.serialize(signedIdentifiers);
  }

  var webResource = WebResource.put(container)
    .withQueryOption(QueryStringConstants.RESTYPE, 'container')
    .withQueryOption(QueryStringConstants.COMP, 'acl')
    .withHeader(HeaderConstants.CONTENT_LENGTH, !azureutil.objectIsNull(policies) ? Buffer.byteLength(policies) : 0)
    .withHeader(HeaderConstants.BLOB_PUBLIC_ACCESS, options.publicAccessLevel)
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId)
    .withBody(policies);

  var processResponseCallback = function (responseObject, next) {
    responseObject.containerResult = null;
    if (!responseObject.error) {
      responseObject.containerResult = new ContainerResult(container, options.publicAccessLevel);
      responseObject.containerResult.getPropertiesFromHeaders(responseObject.response.headers);
      if (signedIdentifiers) {
        responseObject.containerResult.signedIdentifiers = signedIdentifiers;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.containerResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

/**
* Marks the specified container for deletion.
* The container and any blobs contained within it are later deleted during garbage collection.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {object}             [options]                           The request options.
* @param {AccessConditions}   [options.accessConditions]          The access conditions.
* @param {string}             [options.leaseId]                   The container lease identifier.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResponse}    callback                            `error` will contain information
*                                                                 if an error occurs; otherwise
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.deleteContainer = function (container, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteContainer', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.del(container)
    .withQueryOption(QueryStringConstants.RESTYPE, 'container')
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Marks the specified container for deletion if it exists.
* The container and any blobs contained within it are later deleted during garbage collection.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {object}             [options]                           The request options.
* @param {AccessConditions}   [options.accessConditions]          The access conditions.
* @param {string}             [options.leaseId]                   The container lease identifier.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will 
*                                                                 be true if the container exists and was deleted, or false if the container
*                                                                 did not exist.
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.deleteContainerIfExists = function (container, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteContainerIfExists', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var self = this;
  self._doesContainerExist(container, true, options, function (error, result, response) {
    if (error) {
      callback(error, result.exists, response);
    } else if (!result.exists) {
      response.isSuccessful = true;
      callback(error, false, response);
    } else {
      self.deleteContainer(container, options, function (deleteError, deleteResponse) {
        var deleted;
        if (!deleteError) {
          deleted = true;
        } else if (deleteError && deleteError.statuscode === Constants.HttpConstants.HttpResponseCodes.NotFound && deleteError.code === Constants.BlobErrorCodeStrings.CONTAINER_NOT_FOUND) {
          // If it was deleted already, there was no actual error.
          deleted = false;
          deleteError = null;
          deleteResponse.isSuccessful = true;
        }

        callback(deleteError, deleted, deleteResponse);
      });
    }
  });
};

/**
* Lists a segment containing a collection of blob directory items in the container.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {object}             currentToken                        A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                           The request options.
* @param {int}                [options.maxResults]                Specifies the maximum number of directories to return per call to Azure ServiceClient. This does NOT affect list size returned by this function. (maximum: 5000)
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                 `entries`  gives a list of `[directories]{@link DirectoryResult}` and the `continuationToken` is used for the next listing operation.
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.listBlobDirectoriesSegmented = function (container, currentToken, optionsOrCallback, callback) {
  this.listBlobDirectoriesSegmentedWithPrefix(container, null /* prefix */, currentToken, optionsOrCallback, callback);
};

/**
* Lists a segment containing a collection of blob directory items in the container.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {string}             prefix                              The prefix of the blob directory.
* @param {object}             currentToken                        A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                           The request options.
* @param {int}                [options.maxResults]                Specifies the maximum number of directories to return per call to Azure ServiceClient. This does NOT affect list size returned by this function. (maximum: 5000)
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                 `entries`  gives a list of `[directories]{@link BlobResult}` and the `continuationToken` is used for the next listing operation.
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.listBlobDirectoriesSegmentedWithPrefix = function (container, prefix, currentToken, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  userOptions.delimiter = '/';

  this._listBlobsOrDircotriesSegmentedWithPrefix(container, prefix, currentToken, BlobConstants.ListBlobTypes.Directory, userOptions, callback);
};

/**
* Lists a segment containing a collection of blob items in the container.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {object}             currentToken                        A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                           The request options.
* @param {string}             [options.delimiter]                 Delimiter, i.e. '/', for specifying folder hierarchy.
* @param {int}                [options.maxResults]                Specifies the maximum number of blobs to return per call to Azure ServiceClient. (maximum: 5000)
* @param {string}             [options.include]                   Specifies that the response should include one or more of the following subsets: '', 'metadata', 'snapshots', 'uncommittedblobs', 'copy', 'deleted'). 
*                                                                 Please find these values in BlobUtilities.BlobListingDetails. Multiple values can be added separated with a comma (,).
*                                                                 **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                 `entries`  gives a list of `[blobs]{@link BlobResult}` and the `continuationToken` is used for the next listing operation.
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.listBlobsSegmented = function (container, currentToken, optionsOrCallback, callback) {
  this.listBlobsSegmentedWithPrefix(container, null /* prefix */, currentToken, optionsOrCallback, callback);
};

/**
* Lists a segment containing a collection of blob items whose names begin with the specified prefix in the container.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {string}             prefix                              The prefix of the blob name.
* @param {object}             currentToken                        A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                           The request options.
* @param {string}             [options.delimiter]                 Delimiter, i.e. '/', for specifying folder hierarchy.
* @param {int}                [options.maxResults]                Specifies the maximum number of blobs to return per call to Azure ServiceClient. (maximum: 5000)
* @param {string}             [options.include]                   Specifies that the response should include one or more of the following subsets: '', 'metadata', 'snapshots', 'uncommittedblobs', 'copy', 'deleted').
*                                                                 Please find these values in BlobUtilities.BlobListingDetails. Multiple values can be added separated with a comma (,).
*                                                                 **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will contain
*                                                                 the entries of `[blobs]{@link BlobResult}` and the continuation token for the next listing operation.
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.listBlobsSegmentedWithPrefix = function (container, prefix, currentToken, optionsOrCallback, callback) {
  this._listBlobsOrDircotriesSegmentedWithPrefix(container, prefix, currentToken, BlobConstants.ListBlobTypes.Blob, optionsOrCallback, callback);
};

// Lease methods

/**
* Acquires a new lease. If container and blob are specified, acquires a blob lease. Otherwise, if only container is specified and blob is null, acquires a container lease.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.leaseDuration]                     The lease duration in seconds. A non-infinite lease can be between 15 and 60 seconds. Default is never to expire. 
* @param {string}             [options.proposedLeaseId]                   The proposed lease identifier. Must be a GUID.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link LeaseResult}` will contain
*                                                                         the lease information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.acquireLease = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('acquireLease', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  if (!options.leaseDuration) {
    options.leaseDuration = -1;
  }

  this._leaseImpl(container, blob, null /* leaseId */, BlobConstants.LeaseOperation.ACQUIRE, options, callback);
};

/**
* Renews an existing lease. If container and blob are specified, renews the blob lease. Otherwise, if only container is specified and blob is null, renews the container lease.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {string}             leaseId                                     The lease identifier. Must be a GUID.
* @param {object}             [options]                                   The request options.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link LeaseResult}` will contain
*                                                                         the lease information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.renewLease = function (container, blob, leaseId, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('renewLease', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  this._leaseImpl(container, blob, leaseId, BlobConstants.LeaseOperation.RENEW, options, callback);
};

/**
* Changes the lease ID of an active lease. If container and blob are specified, changes the blob lease. Otherwise, if only container is specified and blob is null, changes the 
* container lease.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {string}             leaseId                                     The current lease identifier.
* @param {string}             proposedLeaseId                             The proposed lease identifier. Must be a GUID. 
* @param {object}             [options]                                   The request options.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `[result]{@link LeaseResult}` will contain  the lease information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.changeLease = function (container, blob, leaseId, proposedLeaseId, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('changeLease', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  options.proposedLeaseId = proposedLeaseId;
  this._leaseImpl(container, blob, leaseId, BlobConstants.LeaseOperation.CHANGE, options, callback);
};

/**
* Releases the lease. If container and blob are specified, releases the blob lease. Otherwise, if only container is specified and blob is null, releases the container lease.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {string}             leaseId                                     The lease identifier.
* @param {object}             [options]                                   The request options.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link LeaseResult}` will contain
*                                                                         the lease information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.releaseLease = function (container, blob, leaseId, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('releaseLease', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  this._leaseImpl(container, blob, leaseId, BlobConstants.LeaseOperation.RELEASE, options, callback);
};

/**
* Breaks the lease but ensures that another client cannot acquire a new lease until the current lease period has expired. If container and blob are specified, breaks the blob lease. 
* Otherwise, if only container is specified and blob is null, breaks the container lease.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             [options]                                   The request options.
* @param {int}                [options.leaseBreakPeriod]                  The lease break period, between 0 and 60 seconds. If unspecified, a fixed-duration lease breaks after 
*                                                                         the remaining lease period elapses, and an infinite lease breaks immediately.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link LeaseResult}` will contain
*                                                                         the lease information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.breakLease = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('breakLease', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  this._leaseImpl(container, blob, null /*leaseId*/, BlobConstants.LeaseOperation.BREAK, options, callback);
};

// Blob methods

/**
* Returns all user-defined metadata, standard HTTP properties, and system properties for the blob.
* It does not return or modify the content of the blob.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                         information about the blob.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.getBlobProperties = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getBlobProperties', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.head(resourceName);

  if (options.snapshotId) {
    webResource.withQueryOption(QueryStringConstants.SNAPSHOT, options.snapshotId);
  }

  BlobResult.setHeadersFromBlob(webResource, options);

  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = null;
    if (!responseObject.error) {
      responseObject.blobResult = new BlobResult(container, blob);
      responseObject.blobResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Returns all user-defined metadata for the specified blob or snapshot.
* It does not modify or return the content of the blob.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                         information about the blob.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.getBlobMetadata = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getBlobMetadata', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.head(resourceName);

  webResource.withQueryOption(QueryStringConstants.COMP, 'metadata');
  webResource.withQueryOption(QueryStringConstants.SNAPSHOT, options.snapshotId);

  BlobResult.setHeadersFromBlob(webResource, options);

  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = null;
    if (!responseObject.error) {
      responseObject.blobResult = new BlobResult(container, blob);
      responseObject.blobResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Sets user-defined properties for the specified blob or snapshot.
* It does not modify or return the content of the blob.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             [properties]                                The blob properties to set.
* @param {string}             [properties.contentType]                    The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [properties.contentEncoding]                The content encodings that have been applied to the blob.
* @param {string}             [properties.contentLanguage]                The natural languages used by this resource.
* @param {string}             [properties.cacheControl]                   The blob's cache control.
* @param {string}             [properties.contentDisposition]             The blob's content disposition.
* @param {string}             [properties.contentMD5]                     The blob's MD5 hash.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                         information about the blob.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.setBlobProperties = function (container, blob, properties, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setBlobProperties', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, { contentSettings: properties }, userOptions);
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'properties');

  BlobResult.setPropertiesFromBlob(webResource, options);

  this._setBlobPropertiesHelper({
    webResource: webResource,
    options: options,
    container: container,
    blob: blob,
    callback: callback
  });
};

/**
* Sets user-defined metadata for the specified blob or snapshot as one or more name-value pairs 
* It does not modify or return the content of the blob.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             metadata                                    The metadata key/value pairs.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                         information on the blob.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.setBlobMetadata = function (container, blob, metadata, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setBlobMetadata', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.object(metadata, 'metadata');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'metadata');

  webResource.withQueryOption(QueryStringConstants.SNAPSHOT, options.snapshotId);

  options.metadata = metadata;
  BlobResult.setHeadersFromBlob(webResource, options);

  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = null;
    if (!responseObject.error) {
      responseObject.blobResult = new BlobResult(container, blob);
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};


/**
* Provides a stream to read from a blob.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {string}             [options.rangeStart]                        Return only the bytes of the blob in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the blob in the specified range.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading blobs.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `[result]{@link BlobResult}` will contain the blob information.
*                                                                         `response` will contain information related to this operation.
* @return {Readable}                                                      A Node.js Readable stream.
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* var writable = fs.createWriteStream(destinationFileNameTarget);
*  blobService.createReadStream(containerName, blobName).pipe(writable);
*/
BlobService.prototype.createReadStream = function (container, blob, optionsOrCallback, callback) {
  var options;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { options = o; callback = c; });

  validate.validateArgs('createReadStream', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
  });

  var readStream = new ChunkStream();
  this.getBlobToStream(container, blob, readStream, options, function (error, responseBlob, response) {
    if (error) {
      readStream.emit('error', error);
    }

    if (callback) {
      callback(error, responseBlob, response);
    }
  });

  return readStream;
};

/**
* Downloads a blob into a stream.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {Writable}           writeStream                                 The Node.js Writable stream.
* @param {object}             [options]                                   The request options.
* @param {boolean}            [options.skipSizeCheck]                     Skip the size check to perform direct download.
*                                                                         Set the option to true for small blobs.
*                                                                         Parallel download and speed summary won't work with this option on.
* @param {SpeedSummary}       [options.speedSummary]                      The download tracker objects.
* @param {int}                [options.parallelOperationThreadCount]      The number of parallel operations that may be performed when uploading.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {string}             [options.rangeStart]                        Return only the bytes of the blob in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the blob in the specified range. 
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading blobs.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `[result]{@link BlobResult}` will contain the blob information.
*                                                                         `response` will contain information related to this operation.
* @return {SpeedSummary}
*
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* blobService.getBlobToStream('taskcontainer', 'task1', fs.createWriteStream('task1-download.txt'), function(error, serverBlob) {
*   if(!error) {
*     // Blob available in serverBlob.blob variable
*   }
* }); 
*/
BlobService.prototype.getBlobToStream = function (container, blob, writeStream, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  userOptions.speedSummary = userOptions.speedSummary || new SpeedSummary(blob);

  validate.validateArgs('getBlobToStream', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.object(writeStream, 'writeStream');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var propertiesRequestOptions = {
    timeoutIntervalInMs: options.timeoutIntervalInMs,
    clientRequestTimeoutInMs: options.clientRequestTimeoutInMs,
    snapshotId: options.snapshotId,
    accessConditions: options.accessConditions
  };

  if (options.skipSizeCheck) {
    this._getBlobToStream(container, blob, writeStream, options, callback);
  } else {
    var self = this;
    this.getBlobProperties(container, blob, propertiesRequestOptions, function (error, properties) {
      if (error) {
        callback(error);
      } else {
        var size;
        if (options.rangeStart) {
          var endOffset = properties.contentLength - 1;
          var end = options.rangeEnd ? Math.min(options.rangeEnd, endOffset) : endOffset;
          size = end - options.rangeStart + 1;
        } else {
          size = properties.contentLength;
        }
        options.speedSummary.totalSize = size;

        if (size > self.singleBlobPutThresholdInBytes) {
          azureutil.setObjectInnerPropertyValue(options, ['contentSettings', 'contentMD5'], azureutil.tryGetValueChain(properties, ['contentSettings', 'contentMD5'], null));
          self._getBlobToRangeStream(container, blob, properties.blobType, writeStream, options, callback);
        } else {
          self._getBlobToStream(container, blob, writeStream, options, callback);
        }
      }
    });
  }

  return options.speedSummary;
};

/**
* Downloads a blob into a text string.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier. 
* @param {string}             [options.rangeStart]                        Return only the bytes of the blob in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the blob in the specified range.
* @param {bool}               [options.useTransactionalMD5]               Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading blobs.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {BlobService~blobToText}  callback                               `error` will contain information
*                                                                         if an error occurs; otherwise `text` will contain the blob contents,
*                                                                         and `[blockBlob]{@link BlobResult}` will contain
*                                                                         the blob information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.getBlobToText = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getBlobToText', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.get(resourceName)
    .withRawResponse();

  webResource.withQueryOption(QueryStringConstants.SNAPSHOT, options.snapshotId);

  BlobResult.setHeadersFromBlob(webResource, options);
  this._setRangeContentMD5Header(webResource, options);

  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.text = null;
    responseObject.blobResult = null;

    if (!responseObject.error) {
      responseObject.blobResult = new BlobResult(container, blob);
      responseObject.blobResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);
      responseObject.text = responseObject.response.body;

      self._validateLengthAndMD5(options, responseObject);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.text, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Marks the specified blob or snapshot for deletion. The blob is later deleted during garbage collection.
* If a blob has snapshots, you must delete them when deleting the blob. Using the deleteSnapshots option, you can choose either to delete both the blob and its snapshots, 
* or to delete only the snapshots but not the blob itself. If the blob has snapshots, you must include the deleteSnapshots option or the blob service will return an error
* and nothing will be deleted. 
* If you are deleting a specific snapshot using the snapshotId option, the deleteSnapshots option must NOT be included.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.deleteSnapshots]                   The snapshot delete option. See azure.BlobUtilities.SnapshotDeleteOptions.*. 
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResponse}    callback                                    `error` will contain information
*                                                                         if an error occurs; `response` will contain information related to this operation.
*/
BlobService.prototype.deleteBlob = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteBlob', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.del(resourceName)
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  if (!azureutil.objectIsNull(options.snapshotId) && !azureutil.objectIsNull(options.deleteSnapshots)) {
    throw new ArgumentError('options', SR.INVALID_DELETE_SNAPSHOT_OPTION);
  }

  webResource.withQueryOption(QueryStringConstants.SNAPSHOT, options.snapshotId);
  webResource.withHeader(HeaderConstants.DELETE_SNAPSHOT, options.deleteSnapshots);

  BlobResult.setHeadersFromBlob(webResource, options);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* The undelete Blob operation restores the contents and metadata of soft deleted blob or snapshot.
* Attempting to undelete a blob or snapshot that is not soft deleted will succeed without any changes.
* 
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             [options]                                   The request options.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResponse}    callback                                    `error` will contain information
*                                                                         if an error occurs; `response` will contain information related to this operation.
*/
BlobService.prototype.undeleteBlob = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteBlob', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'undelete');
    
  BlobResult.setHeadersFromBlob(webResource, options);  

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Checks whether or not a blob exists on the service.
*
* @this {BlobService}
* @param {string}             container                               The container name.
* @param {string}             blob                                    The blob name.
* @param {object}             [options]                               The request options.
* @param {string}             [options.snapshotId]                    The snapshot identifier.
* @param {string}             [options.leaseId]                       The lease identifier.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {Function(error, result, response)}  callback                `error` will contain information
*                                                                     if an error occurs; otherwise `[result]{@link BlobResult}` will contain 
*                                                                     the blob information including the `exists` boolean member. 
*                                                                     `response` will contain information related to this operation.
*/
BlobService.prototype.doesBlobExist = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('doesBlobExist', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  this._doesBlobExist(container, blob, false, options, callback);
};

/**
* Marks the specified blob or snapshot for deletion if it exists. The blob is later deleted during garbage collection.
* If a blob has snapshots, you must delete them when deleting the blob. Using the deleteSnapshots option, you can choose either to delete both the blob and its snapshots, 
* or to delete only the snapshots but not the blob itself. If the blob has snapshots, you must include the deleteSnapshots option or the blob service will return an error
* and nothing will be deleted. 
* If you are deleting a specific snapshot using the snapshotId option, the deleteSnapshots option must NOT be included.
*
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {string}             blob                                The blob name.
* @param {object}             [options]                           The request options.
* @param {string}             [options.deleteSnapshots]           The snapshot delete option. See azure.BlobUtilities.SnapshotDeleteOptions.*. 
* @param {string}             [options.snapshotId]                The snapshot identifier.
* @param {string}             [options.leaseId]                   The lease identifier.
* @param {AccessConditions}   [options.accessConditions]          The access conditions.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will
*                                                                 be true if the blob was deleted, or false if the blob
*                                                                 does not exist.
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype.deleteBlobIfExists = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteBlobIfExists', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var self = this;
  self._doesBlobExist(container, blob, true, options, function (error, existsResult, response) {
    if (error) {
      callback(error, existsResult.exists, response);
    } else if (!existsResult.exists) {
      response.isSuccessful = true;
      callback(error, false, response);
    } else {
      self.deleteBlob(container, blob, options, function (deleteError, deleteResponse) {
        var deleted;
        if (!deleteError) {
          deleted = true;
        } else if (deleteError && deleteError.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound && deleteError.code === Constants.BlobErrorCodeStrings.BLOB_NOT_FOUND) {
          // If it was deleted already, there was no actual error.
          deleted = false;
          deleteError = null;
          deleteResponse.isSuccessful = true;
        }

        callback(deleteError, deleted, deleteResponse);
      });
    }
  });
};

/**
* Creates a read-only snapshot of a blob.
*
* @this {BlobService}
* @param {string}             container                             The container name.
* @param {string}             blob                                  The blob name.
* @param {object}             [options]                             The request options.
* @param {string}             [options.snapshotId]                  The snapshot identifier.
* @param {object}             [options.metadata]                    The metadata key/value pairs.
* @param {string}             [options.leaseId]                     The lease identifier.
* @param {AccessConditions}   [options.accessConditions]            The access conditions.
* @param {LocationMode}       [options.locationMode]                Specifies the location mode used to decide which location the request should be sent to. 
*                                                                   Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]         The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]    The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]    The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                   The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                   execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]             A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]           Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                   The default value is false.
* @param {errorOrResult}      callback                              `error` will contain information
*                                                                   if an error occurs; otherwise `result` will contain
*                                                                   the ID of the snapshot.
*                                                                   `response` will contain information related to this operation.
*/
BlobService.prototype.createBlobSnapshot = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createBlobSnapshot', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'snapshot');

  BlobResult.setHeadersFromBlob(webResource, options);

  var processResponseCallback = function (responseObject, next) {
    responseObject.snapshotId = null;
    if (!responseObject.error) {
      responseObject.snapshotId = responseObject.response.headers[HeaderConstants.SNAPSHOT];
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.snapshotId, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Starts to copy a blob or an Azure Storage file to a destination blob.
*
* For an asynchronous copy(by default), this operation returns a object including a copy ID which
* you can use to check or abort the copy operation. The Blob service copies blobs on a best-effort basis.
* The source blob for an asynchronous copy operation may be a block blob, an append blob,
* a page blob or an Azure Storage file.
*
* Refer to https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob for more details. 
*
* @this {BlobService}
* @param {string}             sourceUri                                 The source blob URI.
* @param {string}             targetContainer                           The target container name.
* @param {string}             targetBlob                                The target blob name.
* @param {object}             [options]                                 The request options.
* @param {string}             [options.blobTier]                        For page blobs on premium accounts only. Set the tier of target blob. Refer to BlobUtilities.BlobTier.PremiumPageBlobTier.
* @param {boolean}            [options.isIncrementalCopy]               If it's incremental copy or not. Refer to https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/incremental-copy-blob
* @param {string}             [options.snapshotId]                      The source blob snapshot identifier.
* @param {object}             [options.metadata]                        The target blob metadata key/value pairs.
* @param {string}             [options.leaseId]                         The target blob lease identifier.
* @param {string}             [options.sourceLeaseId]                   The source blob lease identifier.
* @param {AccessConditions}   [options.accessConditions]                The access conditions.
* @param {AccessConditions}   [options.sourceAccessConditions]          The source access conditions.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResult}      callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                       the blob information.
*                                                                       `response` will contain information related to this operation.
*/
BlobService.prototype.startCopyBlob = function (sourceUri, targetContainer, targetBlob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('startCopyBlob', function (v) {
    v.string(sourceUri, 'sourceUri');
    v.string(targetContainer, 'targetContainer');
    v.string(targetBlob, 'targetBlob');
    v.containerNameIsValid(targetContainer);
    v.callback(callback);
  });

  var targetResourceName = createResourceName(targetContainer, targetBlob);

  var options = extend(true, {}, userOptions);

  if (options.snapshotId) {
    var uri = url.parse(sourceUri, true);
    if (uri.query['snapshot']) {
      throw new ArgumentError('options.snapshotId', 'Duplicate snapshot supplied in both the source uri and option.');
    }

    uri.search = undefined;
    uri.query['snapshot'] = options.snapshotId;

    sourceUri = url.format(uri);
  }

  var webResource = WebResource.put(targetResourceName)
    .withHeader(HeaderConstants.COPY_SOURCE, sourceUri);

  if (options.isIncrementalCopy) {
    webResource.withQueryOption(QueryStringConstants.COMP, 'incrementalcopy');
  }

  webResource.withHeader(HeaderConstants.ACCESS_TIER, options.blobTier);
  webResource.withHeader(HeaderConstants.LEASE_ID, options.leaseId);
  webResource.withHeader(HeaderConstants.SOURCE_LEASE_ID, options.sourceLeaseId);
  webResource.addOptionalMetadataHeaders(options.metadata);

  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = null;
    if (!responseObject.error) {
      responseObject.blobResult = new BlobResult(targetContainer, targetBlob);
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);

      if (options.metadata) {
        responseObject.blobResult.metadata = options.metadata;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Abort a blob copy operation.
*
* @this {BlobService}
* @param {string}             container                                 The destination container name.
* @param {string}             blob                                      The destination blob name.
* @param {string}             copyId                                    The copy operation identifier.
* @param {object}             [options]                                 The request options.
* @param {string}             [options.leaseId]                         The target blob lease identifier.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResponse}    callback                                  `error` will contain information  if an error occurs; 
*                                                                       `response` will contain information related to this operation.
*/
BlobService.prototype.abortCopyBlob = function (container, blob, copyId, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('abortCopyBlob', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var resourceName = createResourceName(container, blob);

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COPY_ID, copyId)
    .withQueryOption(QueryStringConstants.COMP, 'copy')
    .withHeader(HeaderConstants.COPY_ACTION, 'abort');

  webResource.withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Retrieves a shared access signature token.
*
* @this {BlobService}
* @param {string}                   container                                           The container name.
* @param {string}                   [blob]                                              The blob name.
* @param {object}                   sharedAccessPolicy                                  The shared access policy.
* @param {string}                   [sharedAccessPolicy.Id]                             The signed identifier.
* @param {object}                   [sharedAccessPolicy.AccessPolicy.Permissions]       The permission type.
* @param {date|string}              [sharedAccessPolicy.AccessPolicy.Start]             The time at which the Shared Access Signature becomes valid (The UTC value will be used).
* @param {date|string}              [sharedAccessPolicy.AccessPolicy.Expiry]            The time at which the Shared Access Signature becomes expired (The UTC value will be used).
* @param {string}                   [sharedAccessPolicy.AccessPolicy.IPAddressOrRange]  An IP address or a range of IP addresses from which to accept requests. When specifying a range, note that the range is inclusive.
* @param {string}                   [sharedAccessPolicy.AccessPolicy.Protocols]         The protocols permitted for a request made with the account SAS. 
*                                                                                       Possible values are both HTTPS and HTTP (https,http) or HTTPS only (https). The default value is https,http.
* @param {object}                   [headers]                                           The optional header values to set for a blob returned wth this SAS.
* @param {string}                   [headers.cacheControl]                              The optional value of the Cache-Control response header to be returned when this SAS is used.
* @param {string}                   [headers.contentType]                               The optional value of the Content-Type response header to be returned when this SAS is used.
* @param {string}                   [headers.contentEncoding]                           The optional value of the Content-Encoding response header to be returned when this SAS is used.
* @param {string}                   [headers.contentLanguage]                           The optional value of the Content-Language response header to be returned when this SAS is used.
* @param {string}                   [headers.contentDisposition]                        The optional value of the Content-Disposition response header to be returned when this SAS is used.
* @return {string}                                                                      The shared access signature query string. Note this string does not contain the leading "?".
*/
BlobService.prototype.generateSharedAccessSignature = function (container, blob, sharedAccessPolicy, headers) {
  // check if the BlobService is able to generate a shared access signature
  if (!this.storageCredentials) {
    throw new ArgumentNullError('storageCredentials');
  }

  if (!this.storageCredentials.generateSignedQueryString) {
    throw new ArgumentError('storageCredentials', SR.CANNOT_CREATE_SAS_WITHOUT_ACCOUNT_KEY);
  }

  // Validate container name. Blob name is optional.
  validate.validateArgs('generateSharedAccessSignature', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.object(sharedAccessPolicy, 'sharedAccessPolicy');
  });

  var resourceType = BlobConstants.ResourceTypes.CONTAINER;
  if (blob) {
    validate.validateArgs('generateSharedAccessSignature', function (v) {
      v.string(blob, 'blob');
    });
    resourceType = BlobConstants.ResourceTypes.BLOB;
  }

  if (sharedAccessPolicy.AccessPolicy) {
    if (!azureutil.objectIsNull(sharedAccessPolicy.AccessPolicy.Start)) {
      if (!_.isDate(sharedAccessPolicy.AccessPolicy.Start)) {
        sharedAccessPolicy.AccessPolicy.Start = new Date(sharedAccessPolicy.AccessPolicy.Start);
      }

      sharedAccessPolicy.AccessPolicy.Start = azureutil.truncatedISO8061Date(sharedAccessPolicy.AccessPolicy.Start);
    }

    if (!azureutil.objectIsNull(sharedAccessPolicy.AccessPolicy.Expiry)) {
      if (!_.isDate(sharedAccessPolicy.AccessPolicy.Expiry)) {
        sharedAccessPolicy.AccessPolicy.Expiry = new Date(sharedAccessPolicy.AccessPolicy.Expiry);
      }

      sharedAccessPolicy.AccessPolicy.Expiry = azureutil.truncatedISO8061Date(sharedAccessPolicy.AccessPolicy.Expiry);
    }
  }

  var resourceName = createResourceName(container, blob, true);
  return this.storageCredentials.generateSignedQueryString(Constants.ServiceType.Blob, resourceName, sharedAccessPolicy, null, { headers: headers, resourceType: resourceType });
};

/**
* Retrieves a blob or container URL.
*
* @param {string}                   container                The container name.
* @param {string}                   [blob]                   The blob name.
* @param {string}                   [sasToken]               The Shared Access Signature token.
* @param {boolean}                  [primary]                A boolean representing whether to use the primary or the secondary endpoint.
* @param {string}                   [snapshotId]             The snapshot identifier.
* @return {string}                                           The formatted URL string.
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* var sharedAccessPolicy = {
*   AccessPolicy: {
*     Permissions: azure.BlobUtilities.SharedAccessPermissions.READ,
*     Start: startDate,
*     Expiry: expiryDate
*   },
* };
* 
* var sasToken = blobService.generateSharedAccessSignature(containerName, blobName, sharedAccessPolicy);
* var sasUrl = blobService.getUrl(containerName, blobName, sasToken);
*/
BlobService.prototype.getUrl = function (container, blob, sasToken, primary, snapshotId) {
  validate.validateArgs('getUrl', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
  });

  var host;
  if (!azureutil.objectIsNull(primary) && primary === false) {
    host = this.host.secondaryHost;
  } else {
    host = this.host.primaryHost;
  }

  host = azureutil.trimPortFromUri(host);
  if (host && host.lastIndexOf('/') !== (host.length - 1)) {
    host = host + '/';
  }

  var query = qs.parse(sasToken);
  if (snapshotId) {
    query[QueryStringConstants.SNAPSHOT] = snapshotId;
  }

  var fullPath = url.format({ pathname: this._getPath(createResourceName(container, blob)), query: query });
  return url.resolve(host, fullPath);
};

// Page blob methods

/**
* Creates a page blob of the specified length. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {int}                length                                        The length of the page blob in bytes.
* @param {object}             [options]                                     The request options.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {string}             [options.leaseId]                             The target blob lease identifier.
* @param {string}             [options.blobTier]                            For page blobs on premium accounts only. Set the tier of the target blob. Refer to BlobUtilities.BlobTier.PremiumPageBlobTier.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The MD5 hash of the blob content.
* @param {string}             [options.sequenceNumber]                      The blob's sequence number.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResponse}    callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise 
*                                                                           `response` will contain information related to this operation.
*/
BlobService.prototype.createPageBlob = function (container, blob, length, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createPageBlob', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.value(length, 'length');
    v.callback(callback);
  });

  if (length && length % BlobConstants.PAGE_SIZE !== 0) {
    throw new RangeError(SR.INVALID_PAGE_BLOB_LENGTH);
  }

  var options = extend(true, {}, userOptions);

  var resourceName = createResourceName(container, blob);

  var webResource = WebResource.put(resourceName)
    .withHeader(HeaderConstants.BLOB_TYPE, BlobConstants.BlobTypes.PAGE)
    .withHeader(HeaderConstants.BLOB_CONTENT_LENGTH, length)
    .withHeader(HeaderConstants.CONTENT_LENGTH, 0)
    .withHeader(HeaderConstants.ACCESS_TIER, options.blobTier)
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  BlobResult.setHeadersFromBlob(webResource, options);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Uploads a page blob from a stream. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param (Stream)             stream                                        Stream to the data to store.
* @param {int}                streamLength                                  The length of the stream to upload.
* @param {object}             [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The download tracker objects;
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             An MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for page blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.blobTier]                            For page blobs on premium accounts only. Set the tier of the target blob. Refer to BlobUtilities.BlobTier.PremiumPageBlobTier.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @return {SpeedSummary}
*/
BlobService.prototype.createPageBlobFromStream = function (container, blob, stream, streamLength, optionsOrCallback, callback) {
  return this._createBlobFromStream(container, blob, BlobConstants.BlobTypes.PAGE, stream, streamLength, optionsOrCallback, callback);
};

/**
* Provides a stream to write to a page blob. Assumes that the blob exists. 
* If it does not, please create the blob using createPageBlob before calling this method or use createWriteStreamNewPageBlob.
* Please note the `Stream` returned by this API should be used with piping.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {object}             [options]                                     The request options.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for page blobs and true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @return {Writable}                                                        A Node.js Writable stream.
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* blobService.createPageBlob(containerName, blobName, 1024, function (err) {
*   // Pipe file to a blob
*   var stream = fs.createReadStream(fileNameTarget).pipe(blobService.createWriteStreamToExistingPageBlob(containerName, blobName));
* });
*/
BlobService.prototype.createWriteStreamToExistingPageBlob = function (container, blob, optionsOrCallback, callback) {
  return this._createWriteStreamToBlob(container, blob, BlobConstants.BlobTypes.PAGE, 0, false, optionsOrCallback, callback);
};

/**
* Provides a stream to write to a page blob. Creates the blob before writing data. If the blob already exists on the service, it will be overwritten.
* Please note the `Stream` returned by this API should be used with piping.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {string}             length                                        The blob length.
* @param {object}             [options]                                     The request options.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for page blobs and true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.blobTier]                            For page blobs on premium accounts only. Set the tier of the target blob. Refer to BlobUtilities.BlobTier.PremiumPageBlobTier.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @return {Writable}                                                        A Node.js Writable stream.
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* blobService.createPageBlob(containerName, blobName, 1024, function (err) {
*   // Pipe file to a blob
*   var stream = fs.createReadStream(fileNameTarget).pipe(blobService.createWriteStreamToNewPageBlob(containerName, blobName));
* });
*/
BlobService.prototype.createWriteStreamToNewPageBlob = function (container, blob, length, optionsOrCallback, callback) {
  return this._createWriteStreamToBlob(container, blob, BlobConstants.BlobTypes.PAGE, length, true, optionsOrCallback, callback);
};

/**
* Updates a page blob from a stream.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {Readable}           readStream                                  The Node.js Readable stream.
* @param {int}                rangeStart                                  The range start.
* @param {int}                rangeEnd                                    The range end.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.leaseId]                           The target blob lease identifier.
* @param {bool}               [options.useTransactionalMD5]               Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.transactionalContentMD5]           An optional hash value used to ensure transactional integrity for the page. 
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                         the page information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.createPagesFromStream = function (container, blob, readStream, rangeStart, rangeEnd, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createPagesFromStream', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  if ((rangeEnd - rangeStart) + 1 > BlobConstants.MAX_UPDATE_PAGE_SIZE) {
    throw new RangeError(SR.INVALID_PAGE_RANGE_FOR_UPDATE);
  }

  var self = this;
  if (azureutil.objectIsNull(options.transactionalContentMD5) && options.useTransactionalMD5) {
    azureutil.calculateMD5(readStream, BlobConstants.MAX_UPDATE_PAGE_SIZE, options, function (internalBuff, contentMD5) {
      options.transactionalContentMD5 = contentMD5;
      self._createPages(container, blob, internalBuff, null /* stream */, rangeStart, rangeEnd, options, callback);
    });
  } else {
    self._createPages(container, blob, null /* text */, readStream, rangeStart, rangeEnd, options, callback);
  }
};

/**
* Lists page ranges. Lists all of the page ranges by default, or only the page ranges over a specific range of bytes if rangeStart and rangeEnd are specified.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {object}             [options]                                   The request options.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {int}                [options.rangeStart]                        The range start.
* @param {int}                [options.rangeEnd]                          The range end.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The target blob lease identifier.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain
*                                                                         the page ranges information, see `[Range]{@link Range}` for detailed information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.listPageRanges = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('listPageRanges', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.get(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'pagelist')
    .withQueryOption(QueryStringConstants.SNAPSHOT, options.snapshotId);

  if (options.rangeStart && options.rangeStart % BlobConstants.PAGE_SIZE !== 0) {
    throw new RangeError(SR.INVALID_PAGE_START_OFFSET);
  }

  if (options.rangeEnd && (options.rangeEnd + 1) % BlobConstants.PAGE_SIZE !== 0) {
    throw new RangeError(SR.INVALID_PAGE_END_OFFSET);
  }

  BlobResult.setHeadersFromBlob(webResource, options);

  options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;

  var processResponseCallback = function (responseObject, next) {
    responseObject.pageRanges = null;
    if (!responseObject.error) {
      responseObject.pageRanges = [];

      var pageRanges = [];
      if (responseObject.response.body.PageList.PageRange) {
        pageRanges = responseObject.response.body.PageList.PageRange;

        if (!_.isArray(pageRanges)) {
          pageRanges = [pageRanges];
        }
      }

      pageRanges.forEach(function (pageRange) {
        var range = {
          start: parseInt(pageRange.Start, 10),
          end: parseInt(pageRange.End, 10)
        };

        responseObject.pageRanges.push(range);
      });
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.pageRanges, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Gets page ranges that have been updated or cleared since the snapshot specified by `previousSnapshotTime` was taken. Gets all of the page ranges by default, or only the page ranges over a specific range of bytes if rangeStart and rangeEnd are specified.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {string}             previousSnapshotTime                        The previous snapshot time for comparison. Must be prior to `options.snapshotId` if it's provided.
* @param {object}             [options]                                   The request options.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {int}                [options.rangeStart]                        The range start.
* @param {int}                [options.rangeEnd]                          The range end.
* @param {string}             [options.snapshotId]                        The snapshot identifier. 
* @param {string}             [options.leaseId]                           The target blob lease identifier.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain
*                                                                         the page ranges diff information, see `[RangeDiff]{@link RangeDiff}` for detailed information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.getPageRangesDiff = function (container, blob, previousSnapshotTime, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getPageRangesDiff', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.get(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'pagelist')
    .withQueryOption(QueryStringConstants.SNAPSHOT, options.snapshotId)
    .withQueryOption(QueryStringConstants.PREV_SNAPSHOT, previousSnapshotTime);

  if (options.rangeStart && options.rangeStart % BlobConstants.PAGE_SIZE !== 0) {
    throw new RangeError(SR.INVALID_PAGE_START_OFFSET);
  }

  if (options.rangeEnd && (options.rangeEnd + 1) % BlobConstants.PAGE_SIZE !== 0) {
    throw new RangeError(SR.INVALID_PAGE_END_OFFSET);
  }

  if (options.rangeEnd && (options.rangeEnd + 1) % BlobConstants.PAGE_SIZE !== 0) {
    throw new RangeError(SR.INVALID_PAGE_END_OFFSET);
  }

  BlobResult.setHeadersFromBlob(webResource, options);

  options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;

  var processResponseCallback = function (responseObject, next) {
    responseObject.pageRangesDiff = null;
    if (!responseObject.error) {
      responseObject.pageRangesDiff = [];

      if (responseObject.response.body.PageList.PageRange) {
        var updatedPageRanges = responseObject.response.body.PageList.PageRange;

        if (!_.isArray(updatedPageRanges)) {
          updatedPageRanges = [updatedPageRanges];
        }

        updatedPageRanges.forEach(function (pageRange) {
          var range = {
            start: parseInt(pageRange.Start, 10),
            end: parseInt(pageRange.End, 10),
            isCleared: false
          };

          responseObject.pageRangesDiff.push(range);
        });
      }

      if (responseObject.response.body.PageList.ClearRange) {
        var clearedPageRanges = responseObject.response.body.PageList.ClearRange;

        if (!_.isArray(clearedPageRanges)) {
          clearedPageRanges = [clearedPageRanges];
        }

        clearedPageRanges.forEach(function (pageRange) {
          var range = {
            start: parseInt(pageRange.Start, 10),
            end: parseInt(pageRange.End, 10),
            isCleared: true
          };

          responseObject.pageRangesDiff.push(range);
        });
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.pageRangesDiff, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Clears a range of pages.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {int}                rangeStart                                  The range start.
* @param {int}                rangeEnd                                    The range end.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.leaseId]                           The target blob lease identifier.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResponse}    callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise 
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.clearPageRange = function (container, blob, rangeStart, rangeEnd, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('clearPageRange', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var request = this._updatePageBlobPagesImpl(container, blob, rangeStart, rangeEnd, BlobConstants.PageWriteOptions.CLEAR, options);

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  self.performRequest(request, null, options, processResponseCallback);
};

/**
* Resizes a page blob.
*
* @this {BlobService}
* @param {string}               container                                   The container name.
* @param {string}               blob                                        The blob name.
* @param {String}               size                                        The size of the page blob, in bytes.
* @param {object}               [options]                                   The request options.
* @param {string}               [options.leaseId]                           The blob lease identifier.
* @param {AccessConditions}     [options.accessConditions]                  The access conditions.
* @param {LocationMode}         [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                  [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                  [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                  [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}               [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}                 [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the page information.
*                                                                           `response` will contain information related to this operation.
*/
BlobService.prototype.resizePageBlob = function (container, blob, size, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('resizePageBlob', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'properties')
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  if (size && size % BlobConstants.PAGE_SIZE !== 0) {
    throw new RangeError(SR.INVALID_PAGE_BLOB_LENGTH);
  }

  webResource.withHeader(HeaderConstants.BLOB_CONTENT_LENGTH, size);

  this._setBlobPropertiesHelper({
    webResource: webResource,
    options: options,
    container: container,
    blob: blob,
    callback: callback
  });

};

/**
* Sets the page blob's sequence number.
*
* @this {BlobService}
* @param {string}               container                                   The container name.
* @param {string}               blob                                        The blob name.
* @param {SequenceNumberAction} sequenceNumberAction                        A value indicating the operation to perform on the sequence number. 
*                                                                           The allowed values are defined in azure.BlobUtilities.SequenceNumberAction.
* @param {string}               sequenceNumber                              The sequence number.  The value of the sequence number must be between 0 and 2^63 - 1.
*                                                                           Set this parameter to null if this operation is an increment action.
* @param {object}               [options]                                   The request options.
* @param {AccessConditions}     [options.accessConditions]                  The access conditions.
* @param {LocationMode}         [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                  [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                  [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                  [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}               [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}                 [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the page information.
*                                                                           `response` will contain information related to this operation.
*/
BlobService.prototype.setPageBlobSequenceNumber = function (container, blob, sequenceNumberAction, sequenceNumber, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setPageBlobSequenceNumber', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  if (sequenceNumberAction === BlobUtilities.SequenceNumberAction.INCREMENT) {
    if (!azureutil.objectIsNull(sequenceNumber)) {
      throw new ArgumentError('sequenceNumber', SR.BLOB_INVALID_SEQUENCE_NUMBER);
    }
  } else {
    if (azureutil.objectIsNull(sequenceNumber)) {
      throw new ArgumentNullError('sequenceNumber', util.format(SR.ARGUMENT_NULL_OR_EMPTY, 'sequenceNumber'));
    }
  }

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'properties')
    .withHeader(HeaderConstants.SEQUENCE_NUMBER_ACTION, sequenceNumberAction);

  if (sequenceNumberAction !== BlobUtilities.SequenceNumberAction.INCREMENT) {
    webResource.withHeader(HeaderConstants.SEQUENCE_NUMBER, sequenceNumber);
  }

  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = null;
    if (!responseObject.error) {
      responseObject.blobResult = new BlobResult(container, blob);
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

// Block blob methods

/**
* Uploads a block blob from a stream. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param (Stream)             stream                                        Stream to the data to store.
* @param {int}                streamLength                                  The length of the stream to upload.
* @param {object}             [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The download tracker objects.
* @param {int}                [options.blockSize]                           The size of each block. Maximum is 100MB.
* @param {string}             [options.blockIdPrefix]                       The prefix to be used to generate the block id.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @return {SpeedSummary}
*/
BlobService.prototype.createBlockBlobFromStream = function (container, blob, stream, streamLength, optionsOrCallback, callback) {
  return this._createBlobFromStream(container, blob, BlobConstants.BlobTypes.BLOCK, stream, streamLength, optionsOrCallback, callback);
};

/**
* Uploads a block blob from a text string. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {string|object}      text                                          The blob text, as a string or in a Buffer.
* @param {object}             [options]                                     The request options.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
*/
BlobService.prototype.createBlockBlobFromText = function (container, blob, text, optionsOrCallback, callback) {
  return this._createBlobFromText(container, blob, BlobConstants.BlobTypes.BLOCK, text, optionsOrCallback, callback);
};

/**
* Provides a stream to write to a block blob. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
* Please note the `Stream` returned by this API should be used with piping.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {object}             [options]                                     The request options.
* @param {int}                [options.blockSize]                           The size of each block. Maximum is 100MB.
* @param {string}             [options.blockIdPrefix]                       The prefix to be used to generate the block id.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for page blobs and true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @return {Writable}                                                        A Node.js Writable stream.
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* var stream = fs.createReadStream(fileNameTarget).pipe(blobService.createWriteStreamToBlockBlob(containerName, blobName, { blockIdPrefix: 'block' }));
*/
BlobService.prototype.createWriteStreamToBlockBlob = function (container, blob, optionsOrCallback, callback) {
  return this._createWriteStreamToBlob(container, blob, BlobConstants.BlobTypes.BLOCK, 0, false, optionsOrCallback, callback);
};

/**
* Creates a new block to be committed as part of a blob.
*
* @this {BlobService}
* @param {string}             blockId                                   The block identifier.
* @param {string}             container                                 The container name.
* @param {string}             blob                                      The blob name.
* @param {Readable}           readStream                                The Node.js Readable stream.
* @param {int}                streamLength                              The stream length.
* @param {object}             [options]                                 The request options.
* @param {bool}               [options.useTransactionalMD5]             Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.leaseId]                         The target blob lease identifier.
* @param {string}             [options.transactionalContentMD5]         An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport.
* @param {AccessConditions}   [options.accessConditions]                The access conditions.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResponse}    callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise 
*                                                                       `response` will contain information related to this operation.
*/
BlobService.prototype.createBlockFromStream = function (blockId, container, blob, readStream, streamLength, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createBlockFromStream', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.exists(readStream, 'readStream');
    v.value(streamLength, 'streamLength');
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  if (streamLength > BlobConstants.MAX_BLOCK_BLOB_BLOCK_SIZE) {
    throw new RangeError(SR.INVALID_STREAM_LENGTH);
  } else {
    this._createBlock(blockId, container, blob, null, readStream, streamLength, options, callback);
  }
};

/**
* Creates a new block to be committed as part of a blob.
*
* @this {BlobService}
* @param {string}             blockId                                   The block identifier.
* @param {string}             container                                 The container name.
* @param {string}             blob                                      The blob name.
* @param {string|buffer}      content                                   The block content.
* @param {object}             [options]                                 The request options.
* @param {bool}               [options.useTransactionalMD5]             Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.leaseId]                         The target blob lease identifier.
* @param {string}             [options.transactionalContentMD5]         An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport. 
* @param {AccessConditions}   [options.accessConditions]                The access conditions.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResponse}    callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise 
*                                                                       `response` will contain information related to this operation.
*/
BlobService.prototype.createBlockFromText = function (blockId, container, blob, content, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createBlockFromText', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var contentLength = (Buffer.isBuffer(content) ? content.length : Buffer.byteLength(content));

  if (contentLength > BlobConstants.MAX_BLOCK_BLOB_BLOCK_SIZE) {
    throw new RangeError(SR.INVALID_TEXT_LENGTH);
  } else {
    this._createBlock(blockId, container, blob, content, null, contentLength, options, callback);
  }
};

/**
* Creates a new block to be committed as part of a blob from an URL of an Azure blob or file.
*
* @this {BlobService}
* @param {string}             blockId                                   The block identifier.
* @param {string}             container                                 The container name.
* @param {string}             blob                                      The blob name.
* @param {string}             sourceURL                                 The URL of the source data.
*                                                                       It can point to any Azure Blob or File, that is either public or has a shared access signature attached.
* @param {int}                sourceRangeStart                          The start of the range of bytes(inclusive) that has to be taken from the copy source.
* @param {int}                sourceRangeEnd                            The end of the range of bytes(inclusive) that has to be taken from the copy source.
* @param {object}             [options]                                 The request options.
* @param {string}             [options.leaseId]                         The target blob lease identifier.
* @param {string}             [options.transactionalContentMD5]         An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport. 
* @param {AccessConditions}   [options.accessConditions]                The access conditions.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResponse}    callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise 
*                                                                       `response` will contain information related to this operation.
*/
BlobService.prototype.createBlockFromURL = function (blockId, container, blob, sourceURL, sourceRangeStart, sourceRangeEnd, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createBlockFromURL', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.string(sourceURL, 'sourceURL');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(container, blob);
  
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'block')
    .withQueryOption(QueryStringConstants.BLOCK_ID, Buffer.from(blockId).toString('base64'))
    .withHeader(HeaderConstants.COPY_SOURCE, sourceURL);

  options.sourceRangeStart = sourceRangeStart;
  options.sourceRangeEnd = sourceRangeEnd;
  BlobResult.setHeadersFromBlob(webResource, options);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Creates a new block to be committed as part of a block blob.
* @ignore
*
* @this {BlobService}
* @param {string}             blockId                                   The block identifier.
* @param {string}             container                                 The container name.
* @param {string}             blob                                      The blob name.
* @param {string|buffer}      content                                   The block content.
* @param {Stream}             stream                                    The stream to the data to store.
* @param {int}                length                                    The length of the stream or text to upload.
* @param {object}             [options]                                 The request options.
* @param {bool}               [options.useTransactionalMD5]             Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.leaseId]                         The target blob lease identifier.
* @param {string}             [options.transactionalContentMD5]         An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport.
* @param {AccessConditions}   [options.accessConditions]                The access conditions.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResponse}    callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise 
*                                                                       `response` will contain information related to this operation.
*/
BlobService.prototype._createBlock = function (blockId, container, blob, content, stream, length, options, callback) {
  var resourceName = createResourceName(container, blob);

  var self = this;
  var startCreateBlock = function () {
    var webResource = WebResource.put(resourceName)
      .withQueryOption(QueryStringConstants.COMP, 'block')
      .withQueryOption(QueryStringConstants.BLOCK_ID, Buffer.from(blockId).toString('base64'))
      .withHeader(HeaderConstants.CONTENT_LENGTH, length);

    BlobResult.setHeadersFromBlob(webResource, options);

    var processResponseCallback = function (responseObject, next) {
      var finalCallback = function (returnObject) {
        callback(returnObject.error, returnObject.response);
      };

      next(responseObject, finalCallback);
    };

    if (!azureutil.objectIsNull(content)) {
      self.performRequest(webResource, content, options, processResponseCallback);
    } else {
      self.performRequestOutputStream(webResource, stream, options, processResponseCallback);
    }
  };

  if (azureutil.objectIsNull(options.transactionalContentMD5) && options.useTransactionalMD5) {
    if (!azureutil.objectIsNull(content)) {
      options.transactionalContentMD5 = azureutil.getContentMd5(content);
      startCreateBlock();
    } else {
      azureutil.calculateMD5(stream, length, options, function (internalBuff, contentMD5) {
        options.transactionalContentMD5 = contentMD5;
        content = internalBuff;
        length = internalBuff.length;
        startCreateBlock();
      });
    }
  } else {
    startCreateBlock();
  }
};

/**
* Writes a blob by specifying the list of block IDs that make up the blob.
* In order to be written as part of a blob, a block must have been successfully written to the server in a prior
* createBlock operation.
* Note: If no valid list is specified in the blockList parameter, blob would be updated with empty content,
* i.e. existing blocks in the blob will be removed, this behavior is kept for backward compatibility consideration.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {object}             blockList                                     The wrapper for block ID list contains block IDs that make up the blob.
*                                                                           Three kinds of list are provided, please choose one to use according to requirement.
*                                                                           For more background knowledge, please refer to https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-list
* @param {string[]}           [blockList.LatestBlocks]                      The list contains block IDs that make up the blob sequentially.
*                                                                           All the block IDs in this list will be specified within Latest element.
*                                                                           Choose this list to contain block IDs indicates that the Blob service should first search
*                                                                           the uncommitted block list, and then the committed block list for the named block.
* @param {string[]}           [blockList.CommittedBlocks]                   The list contains block IDs that make up the blob sequentially.
*                                                                           All the block IDs in this list will be specified within Committed element.
*                                                                           Choose this list to contain block IDs indicates that the Blob service should only search
*                                                                           the committed block list for the named block.
* @param {string[]}           [blockList.UncommittedBlocks]                 The list contains block IDs that make up the blob sequentially.
*                                                                           All the block IDs in this list will be specified within Uncommitted element.
*                                                                           Choose this list to contain block IDs indicates that the Blob service should only search
*                                                                           the uncommitted block list for the named block.
* @param {object}             [options]                                     The request options.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {string}             [options.leaseId]                             The target blob lease identifier.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* blobService.createBlockFromText("sampleBlockName", containerName, blobName, "sampleBlockContent", function(error) {
*   assert.equal(error, null);
*   // In this example, LatestBlocks is used, we hope the Blob service first search
*   // the uncommitted block list, and then the committed block list for the named block "sampleBlockName",
*   // and thus make sure the block is with latest content.
*   blobService.commitBlocks(containerName, blobName, { LatestBlocks: ["sampleBlockName"] }, function(error) {
*     assert.equal(error, null);
*   });
* });
*
 */
BlobService.prototype.commitBlocks = function (container, blob, blockList, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('commitBlocks', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.object(blockList, 'blockList');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var blockListXml = BlockListResult.serialize(blockList);

  var resourceName = createResourceName(container, blob);
  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'blocklist')
    .withHeader(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(blockListXml))
    .withBody(blockListXml);

  BlobResult.setPropertiesFromBlob(webResource, options);

  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = new BlobResult(container, blob);
    responseObject.blobResult.list = null;
    if (!responseObject.error) {
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);
      responseObject.blobResult.list = blockList;
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

/**
* Retrieves the list of blocks that have been uploaded as part of a block blob.
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {BlockListFilter}    blocklisttype                               The type of block list to retrieve.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.snapshotId]                        The source blob snapshot identifier.
* @param {string}             [options.leaseId]                           The target blob lease identifier.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain
*                                                                         the blocklist information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype.listBlocks = function (container, blob, blocklisttype, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('listBlocks', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var resourceName = createResourceName(container, blob);
  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'blocklist')
    .withQueryOption(QueryStringConstants.BLOCK_LIST_TYPE, blocklisttype)
    .withQueryOption(QueryStringConstants.SNAPSHOT, options.snapshotId);

  options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;

  var processResponseCallback = function (responseObject, next) {
    responseObject.blockListResult = null;
    if (!responseObject.error) {
      responseObject.blockListResult = BlockListResult.parse(responseObject.response.body.BlockList);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.blockListResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Generate a random block id prefix
*/
BlobService.prototype.generateBlockIdPrefix = function () {
  var prefix = Math.floor(Math.random() * 0x100000000).toString(16);
  return azureutil.zeroPaddingString(prefix, 8);
};

/**
* Get a block id according to prefix and block number
*/
BlobService.prototype.getBlockId = function (prefix, number) {
  return prefix + '-' + azureutil.zeroPaddingString(number, 6);
};

// Append blob methods

/**
* Creates an empty append blob. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {object}             [options]                                     The request options.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {string}             [options.leaseId]                             The target blob lease identifier.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResponse}    callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise 
*                                                                           `response` will contain information related to this operation.
*/
BlobService.prototype.createOrReplaceAppendBlob = function (container, blob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createOrReplaceAppendBlob', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var resourceName = createResourceName(container, blob);

  var webResource = WebResource.put(resourceName)
    .withHeader(HeaderConstants.BLOB_TYPE, BlobConstants.BlobTypes.APPEND)
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId)
    .withHeader(HeaderConstants.CONTENT_LENGTH, 0);

  BlobResult.setHeadersFromBlob(webResource, options);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Uploads an append blob from a stream. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
* This API should be used strictly in a single writer scenario because the API internally uses the append-offset conditional header to avoid duplicate blocks.
* If you are guaranteed to have a single writer scenario, please look at options.absorbConditionalErrorsOnRetry and see if setting this flag to true is acceptable for you.
* If you want to append data to an already existing blob, please look at appendFromStream.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param (Stream)             stream                                        Stream to the data to store.
* @param {int}                streamLength                                  The length of the stream to upload.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry.
* @param {SpeedSummary}       [options.speedSummary]                        The download tracker objects.
* @param {string}             [options.leaseId]                             The lease identifier. 
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @return {SpeedSummary}
*/
BlobService.prototype.createAppendBlobFromStream = function (container, blob, stream, streamLength, optionsOrCallback, callback) {
  return this._createBlobFromStream(container, blob, BlobConstants.BlobTypes.APPEND, stream, streamLength, optionsOrCallback, callback);
};

/**
* Uploads an append blob from a text string. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
* This API should be used strictly in a single writer scenario because the API internally uses the append-offset conditional header to avoid duplicate blocks.
* If you are guaranteed to have a single writer scenario, please look at options.absorbConditionalErrorsOnRetry and see if setting this flag to true is acceptable for you.
* If you want to append data to an already existing blob, please look at appendFromText.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {string|object}      text                                          The blob text, as a string or in a Buffer.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry.
* @param {string}             [options.leaseId]                             The lease identifier. 
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
*/
BlobService.prototype.createAppendBlobFromText = function (container, blob, text, optionsOrCallback, callback) {
  return this._createBlobFromText(container, blob, BlobConstants.BlobTypes.APPEND, text, optionsOrCallback, callback);
};

/**
* Provides a stream to write to a new append blob. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
* This API should be used strictly in a single writer scenario because the API internally uses the append-offset conditional header to avoid duplicate blocks.
* If you are guaranteed to have a single writer scenario, please look at options.absorbConditionalErrorsOnRetry and see if setting this flag to true is acceptable for you.
* Please note the `Stream` returned by this API should be used with piping.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for page blobs and true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResponse}    callback                                      The callback function.
* @return {Writable}                                                        A Node.js Writable stream.
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* var stream = fs.createReadStream(fileNameTarget).pipe(blobService.createWriteStreamToAppendBlob(containerName, blobName));
*/
BlobService.prototype.createWriteStreamToNewAppendBlob = function (container, blob, optionsOrCallback, callback) {
  return this._createWriteStreamToBlob(container, blob, BlobConstants.BlobTypes.APPEND, 0, true, optionsOrCallback, callback);
};

/**
* Provides a stream to write to an existing append blob. Assumes that the blob exists. 
* If it does not, please create the blob using createAppendBlob before calling this method or use createWriteStreamToNewAppendBlob.
* This API should be used strictly in a single writer scenario because the API internally uses the append-offset conditional header to avoid duplicate blocks.
* If you are guaranteed to have a single writer scenario, please look at options.absorbConditionalErrorsOnRetry and see if setting this flag to true is acceptable for you.
* Please note the `Stream` returned by this API should be used with piping.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for page blobs and true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResponse}    callback                                      The callback function.
* @return {Writable}                                                        A Node.js Writable stream.
* @example
* var azure = require('azure-storage');
* var blobService = azure.createBlobService();
* var stream = fs.createReadStream(fileNameTarget).pipe(blobService.createWriteStreamToAppendBlob(containerName, blobName));
*/
BlobService.prototype.createWriteStreamToExistingAppendBlob = function (container, blob, optionsOrCallback, callback) {
  return this._createWriteStreamToBlob(container, blob, BlobConstants.BlobTypes.APPEND, 0, false, optionsOrCallback, callback);
};

/**
* Appends to an append blob from a stream. Assumes the blob already exists on the service.
* This API should be used strictly in a single writer scenario because the API internally uses the append-offset conditional header to avoid duplicate blocks.
* If you are guaranteed to have a single writer scenario, please look at options.absorbConditionalErrorsOnRetry and see if setting this flag to true is acceptable for you.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param (Stream)             stream                                        Stream to the data to store.
* @param {int}                streamLength                                  The length of the stream to upload.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry.
* @param {SpeedSummary}       [options.speedSummary]                        The download tracker objects.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
* @return {SpeedSummary}
*/
BlobService.prototype.appendFromStream = function (container, blob, stream, streamLength, optionsOrCallback, callback) {
  var options;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { options = o; callback = c; });

  validate.validateArgs('appendFromStream', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.exists(stream, 'stream');
    v.value(streamLength, 'streamLength');
    v.callback(callback);
  });

  return this._uploadBlobFromStream(false, container, blob, BlobConstants.BlobTypes.APPEND, stream, streamLength, options, callback);
};

/**
* Appends to an append blob from a text string. Assumes the blob already exists on the service.
* This API should be used strictly in a single writer scenario because the API internally uses the append-offset conditional header to avoid duplicate blocks.
* If you are guaranteed to have a single writer scenario, please look at options.absorbConditionalErrorsOnRetry and see if setting this flag to true is acceptable for you.
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {string|object}      text                                          The blob text, as a string or in a Buffer.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                           the blob information.
*                                                                           `response` will contain information related to this operation.
*/
BlobService.prototype.appendFromText = function (container, blob, text, optionsOrCallback, callback) {
  return this._uploadBlobFromText(false, container, blob, BlobConstants.BlobTypes.APPEND, text, optionsOrCallback, callback);
};


/**
* Creates a new block from a read stream to be appended to an append blob.
* If the sequence of data to be appended is important, please use this API strictly in a single writer.
* If you are guaranteed to have a single writer scenario, please look at options.absorbConditionalErrorsOnRetry and see if setting this flag to true is acceptable for you.
* If the sequence of data to be appended is not important, this API can be used in parallel,
* in this case, options.appendPosition can be left without settings.
*
* @this {BlobService}
* @param {string}             container                                 The container name.
* @param {string}             blob                                      The blob name.
* @param {Readable}           readStream                                The Node.js Readable stream.
* @param {int}                streamLength                              The stream length.
* @param {object}             [options]                                 The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]  Specifies whether to absorb the conditional error on retry.
* @param {int}                [options.maxBlobSize]                     The max length in bytes allowed for the append blob to grow to.
* @param {int}                [options.appendPosition]                  The number indicating the byte offset to check for. The append will succeed only if the end position of the blob is equal to this number.
* @param {string}             [options.leaseId]                         The target blob lease identifier.
* @param {string}             [options.transactionalContentMD5]         An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport.
* @param {AccessConditions}   [options.accessConditions]                The access conditions.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResult}      callback                                  `error` will contain information
*                                                                      if an error occurs; otherwise `[result]{@link BlobResult}` will contain
*                                                                      the blob information.
*                                                                      `response` will contain information related to this operation.
*/
BlobService.prototype.appendBlockFromStream = function (container, blob, readStream, streamLength, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('appendBlockFromStream', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.exists(readStream, 'readStream');
    v.value(streamLength, 'streamLength');
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  if (streamLength > BlobConstants.MAX_APPEND_BLOB_BLOCK_SIZE) {
    throw new RangeError(SR.INVALID_STREAM_LENGTH);
  } else {
    this._appendBlock(container, blob, null, readStream, streamLength, options, callback);
  }
};

/**
* Creates a new block from a text to be appended to an append blob.
* If the sequence of data to be appended is important, please use this API strictly in a single writer.
* If you are guaranteed to have a single writer scenario, please look at options.absorbConditionalErrorsOnRetry and see if setting this flag to true is acceptable for you.
* If the sequence of data to be appended is not important, this API can be used in parallel,
* in this case, options.appendPosition can be left without settings.
*
* @this {BlobService}
* @param {string}             container                                 The container name.
* @param {string}             blob                                      The blob name.
* @param {string|object}      content                                   The block text, as a string or in a Buffer.
* @param {object}             [options]                                 The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]  Specifies whether to absorb the conditional error on retry.
* @param {int}                [options.maxBlobSize]                     The max length in bytes allowed for the append blob to grow to.
* @param {int}                [options.appendPosition]                  The number indicating the byte offset to check for. The append will succeed only if the end position of the blob is equal to this number.
* @param {string}             [options.leaseId]                         The target blob lease identifier.
* @param {string}             [options.transactionalContentMD5]         An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport.
* @param {AccessConditions}   [options.accessConditions]                The access conditions.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResponse}    callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise 
*                                                                       `response` will contain information related to this operation.
*/
BlobService.prototype.appendBlockFromText = function (container, blob, content, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('appendBlockFromText', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var contentLength = (Buffer.isBuffer(content) ? content.length : Buffer.byteLength(content));
  if (contentLength > BlobConstants.MAX_APPEND_BLOB_BLOCK_SIZE) {
    throw new RangeError(SR.INVALID_TEXT_LENGTH);
  } else {
    this._appendBlock(container, blob, content, null, contentLength, options, callback);
  }
};

// Private methods

/**
* Creates a new blob from a stream. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
*
* @ignore
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {BlobType}           blobType                                      The blob type.
* @param (Stream)             stream                                        Stream to the data to store.
* @param {int}                streamLength                                  The length of the stream to upload.
* @param {object}             [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The upload tracker objects.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry. (For append blob only)
* @param {string}             [options.blockIdPrefix]                       The prefix to be used to generate the block id. (For block blob only)
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.blobTier]                            For page blobs on premium accounts only. Set the tier of the target blob. Refer to BlobUtilities.BlobTier.PremiumPageBlobTier.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      The callback function.
* @return {SpeedSummary}
*/
BlobService.prototype._createBlobFromStream = function (container, blob, blobType, stream, streamLength, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('_createBlobFromStream', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.blobTypeIsValid(blobType);
    v.exists(stream, 'stream');
    v.value(streamLength, 'streamLength');
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var self = this;
  var creationCallback = function (createError, createBlob, createResponse) {
    if (createError) {
      callback(createError, createBlob, createResponse);
    } else {
      self._uploadBlobFromStream(true, container, blob, blobType, stream, streamLength, options, callback);
    }
  };

  this._createBlob(container, blob, blobType, streamLength, options, creationCallback);

  return options.speedSummary;
};

/**
* Uploads a block blob or an append blob from a text string. If the blob already exists on the service, it will be overwritten.
* To avoid overwriting and instead throw an error if the blob exists, please pass in an accessConditions parameter in the options object.
*
* @ignore
* 
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {BlobType}           blobType                                      The blob type.
* @param {string|buffer}      content                                       The blob text, as a string or in a Buffer.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry. (For append blob only)
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `result` will contain
*                                                                           information about the blob.
*                                                                           `response` will contain information related to this operation.
*/
BlobService.prototype._createBlobFromText = function (container, blob, blobType, content, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('_createBlobFromText', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.blobTypeIsValid(blobType);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var self = this;
  var creationCallback = function (createError, createBlob, createResponse) {
    if (createError) {
      callback(createError, createBlob, createResponse);
    } else {
      self._uploadBlobFromText(true, container, blob, blobType, content, options, callback);
    }
  };

  var contentLength = azureutil.objectIsNull(content) ? 0 : ((Buffer.isBuffer(content) ? content.length : Buffer.byteLength(content)));
  this._createBlob(container, blob, blobType, contentLength, options, creationCallback);

  return options.speedSummary;
};

/**
* Provides a stream to write to a block blob or an append blob.
*
* @ignore
* 
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {BlobType}           blobType                                      The blob type.
* @param {int}                length                                        The blob length.
* @param {bool}               createNewBlob                                 Specifies whether create a new blob.
* @param {object}             [options]                                     The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry. (For append blob only)
* @param {string}             [options.blockSize]                           The size of each block. Maximum is 100MB. (For block blob only)
* @param {string}             [options.blockIdPrefix]                       The prefix to be used to generate the block id. (For block blob only)
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for page blobs and true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.blobTier]                            For page blobs on premium accounts only. Set the tier of the target blob. Refer to BlobUtilities.BlobTier.PremiumPageBlobTier.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResponse}    callback                                      The callback function.
* @return {Writable}                                                        A Node.js Writable stream.
*/
BlobService.prototype._createWriteStreamToBlob = function (container, blob, blobType, length, createNewBlob, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('_createWriteStreamToBlob', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.blobTypeIsValid(blobType);
  });

  var options = extend(true, {}, userOptions);

  var sizeLimitation;
  if (blobType === BlobConstants.BlobTypes.BLOCK) {
    // default to true, unless explicitly set to false
    options.storeBlobContentMD5 = options.storeBlobContentMD5 === false ? false : true;
    sizeLimitation = options.blockSize || BlobConstants.DEFAULT_WRITE_BLOCK_SIZE_IN_BYTES;
  } else if (blobType == BlobConstants.BlobTypes.PAGE) {
    sizeLimitation = BlobConstants.DEFAULT_WRITE_PAGE_SIZE_IN_BYTES;
  } else if (blobType == BlobConstants.BlobTypes.APPEND) {
    sizeLimitation = BlobConstants.DEFAULT_WRITE_BLOCK_SIZE_IN_BYTES;
  }

  var stream = new ChunkStream({ calcContentMd5: options.storeBlobContentMD5 });
  stream._highWaterMark = sizeLimitation;

  stream.pause(); //Immediately pause the stream in order to wait for the destination to getting ready

  var self = this;
  var createCallback = function (createError, createBlob, createResponse) {
    if (createError) {
      if (callback) {
        callback(createError, createBlob, createResponse);
      }
    } else {
      self._uploadBlobFromStream(createNewBlob, container, blob, blobType, stream, null, options, function (error, blob, response) {
        if (error) {
          stream.emit('error', error);
        }

        if (callback) {
          callback(error, blob, response);
        }
      });
    }
  };

  if (createNewBlob === true) {
    this._createBlob(container, blob, blobType, length, options, createCallback);
  } else {
    createCallback();
  }

  return stream;
};

/**
* Upload blob content from a stream. Assumes the blob already exists.
*
* @ignore
*
* @this {BlobService}
* @param {bool}               isNewBlob                                     Specifies whether the blob is newly created.
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {BlobType}           blobType                                      The blob type.
* @param (Stream)             stream                                        Stream to the data to store.
* @param {int}                streamLength                                  The length of the stream to upload.
* @param {object}             [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The upload tracker objects.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry. (For append blob only)
* @param {string}             [options.blockIdPrefix]                       The prefix to be used to generate the block id. (For block blob only)
* @param {int}                [options.blockSize]                           The size of each block. Maximum is 100MB. (For block blob only)
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      The callback function.
* @return {SpeedSummary}
*/
BlobService.prototype._uploadBlobFromStream = function (isNewBlob, container, blob, blobType, stream, streamLength, optionsOrCallback, callback) {
  var options;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { options = o; callback = c; });
  options.speedSummary = options.speedSummary || new SpeedSummary(blob);

  if (blobType === BlobConstants.BlobTypes.BLOCK) {
    // default to true, unless explicitly set to false
    options.storeBlobContentMD5 = options.storeBlobContentMD5 === false ? false : true;
  }

  stream.pause();

  var self = this;
  var startUpload = function () {
    var putBlockBlobFromStream = function () {
      if (streamLength > 0 && azureutil.objectIsNull(azureutil.tryGetValueChain(options, ['contentSettings', 'contentMD5'], null)) && options.storeBlobContentMD5) {
        azureutil.calculateMD5(stream, Math.min(self.singleBlobPutThresholdInBytes, streamLength), options, function (internalBuff, contentMD5) {
          azureutil.setObjectInnerPropertyValue(options, ['contentSettings', 'contentMD5'], contentMD5);
          self._putBlockBlob(container, blob, internalBuff, null, internalBuff.length, options, callback);
        });
        stream.resume();
      } else {
        // Stream will resume when it has a pipe destination or a 'data' listener
        self._putBlockBlob(container, blob, null, stream, streamLength, options, callback);
      }
    };

    if (streamLength === null || streamLength >= self.singleBlobPutThresholdInBytes || blobType !== BlobConstants.BlobTypes.BLOCK) {
      var chunkStream = new ChunkStreamWithStream(stream, { calcContentMd5: options.storeBlobContentMD5 });
      self._uploadContentFromChunkStream(container, blob, blobType, chunkStream, streamLength, options, callback);
    } else {
      putBlockBlobFromStream();
    }
  };

  if (!isNewBlob) {
    if (options.storeBlobContentMD5 && blobType !== BlobConstants.BlobTypes.BLOCK) {
      throw new Error(SR.MD5_NOT_POSSIBLE);
    }

    if (blobType === BlobConstants.BlobTypes.APPEND || options.accessConditions) {
      // Do a getBlobProperties right at the beginning for existing blobs and use the user passed in access conditions. 
      // So any pre-condition failure on the first block (in a strictly single writer scenario) is caught.
      // This call also helps us get the append position to append to if the user hasn’t specified an access condition.
      this.getBlobProperties(container, blob, options, function (error, properties, response) {
        if (error && !(options.accessConditions && options.accessConditions.EtagNonMatch === '*' && response.statusCode === 400)) {
          callback(error);
        } else {
          if (blobType === BlobConstants.BlobTypes.APPEND) {
            options.appendPosition = properties.contentLength;
          }

          startUpload();
        }
      });
    } else {
      startUpload();
    }
  } else {
    startUpload();
  }

  return options.speedSummary;
};

/**
* Upload blob content from a text. Assumes the blob already exists.
*
* @ignore
*
* @this {BlobService}
* @param {bool}               isNewBlob                                     Specifies whether the blob is newly created.
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {BlobType}           blobType                                      The blob type.
* @param (string)             content                                       The blob text, as a string or in a Buffer.
* @param {object}             [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The upload tracker objects.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry. (For append blob only)
* @param {string}             [options.blockIdPrefix]                       The prefix to be used to generate the block id. (For block blob only)
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      The callback function.
* @return {SpeedSummary}
*/
BlobService.prototype._uploadBlobFromText = function (isNewBlob, container, blob, blobType, content, optionsOrCallback, callback) {
  var options;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { options = o; callback = c; });
  options.speedSummary = options.speedSummary || new SpeedSummary(blob);
  options[HeaderConstants.CONTENT_TYPE] = (options.contentSettings && options.contentSettings.contentType) || 'text/plain;charset="utf-8"';

  var self = this;
  var startUpload = function () {
    var operationFunc;
    var length = azureutil.objectIsNull(content) ? 0 : (Buffer.isBuffer(content) ? content.length : Buffer.byteLength(content));

    if (blobType === BlobConstants.BlobTypes.BLOCK) {
      // default to true, unless explicitly set to false
      options.storeBlobContentMD5 = options.storeBlobContentMD5 === false ? false : true;
      operationFunc = self._putBlockBlob;

      if (length > BlobConstants.MAX_SINGLE_UPLOAD_BLOB_SIZE_IN_BYTES) {
        throw new RangeError(SR.INVALID_BLOB_LENGTH);
      }
    } else if (blobType === BlobConstants.BlobTypes.APPEND) {
      operationFunc = self._appendBlock;

      if (length > BlobConstants.MAX_APPEND_BLOB_BLOCK_SIZE) {
        throw new RangeError(SR.INVALID_TEXT_LENGTH);
      }
    }

    var finalCallback = function (error, blobResult, response) {
      if (blobType !== BlobConstants.BlobTypes.BLOCK) {
        self.setBlobProperties(container, blob, options.contentSettings, options, function (error, blob, response) {
          blob = extend(false, blob, blobResult);
          callback(error, blob, response);
        });
      } else {
        callback(error, blobResult, response);
      }
    };

    operationFunc.call(self, container, blob, content, null, length, options, finalCallback);
  };

  if (!isNewBlob) {
    if (options.storeBlobContentMD5 && blobType !== BlobConstants.BlobTypes.BLOCK) {
      throw new Error(SR.MD5_NOT_POSSIBLE);
    }

    if (blobType === BlobConstants.BlobTypes.APPEND || options.accessConditions) {
      // Do a getBlobProperties right at the beginning for existing blobs and use the user passed in access conditions. 
      // So any pre-condition failure on the first block (in a strictly single writer scenario) is caught.
      // This call also helps us get the append position to append to if the user hasn’t specified an access condition.
      this.getBlobProperties(container, blob, options, function (error, properties) {
        if (error) {
          callback(error);
        } else {
          if (blobType === BlobConstants.BlobTypes.APPEND) {
            options.appendPosition = properties.contentLength;
          }

          startUpload();
        }
      });
    }
  } else {
    if (!azureutil.objectIsNull(content) && azureutil.objectIsNull(azureutil.tryGetValueChain(options, ['contentSettings', 'contentMD5'], null)) && options.storeBlobContentMD5) {
      azureutil.setObjectInnerPropertyValue(options, ['contentSettings', 'contentMD5'], azureutil.getContentMd5(content));
    }
    startUpload();
  }
};

/**
* Uploads a block blob from a stream.
* @ignore
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {string}             text                                          The blob text.
* @param (Stream)             stream                                        Stream to the data to store.
* @param {int}                length                                        The length of the stream or text to upload.
* @param {object}             [options]                                     The request options.
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {string}             [options.transactionalContentMD5]             The MD5 hash of the blob content. This hash is used to verify the integrity of the blob during transport.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads. The default value is true for block blobs.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `result` will contain
*                                                                           information about the blob.
*                                                                           `response` will contain information related to this operation.
*/
BlobService.prototype._putBlockBlob = function (container, blob, text, stream, length, options, callback) {
  if (!options.speedSummary) {
    options.speedSummary = new SpeedSummary(blob);
  }

  var speedSummary = options.speedSummary;
  speedSummary.totalSize = length;

  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.put(resourceName)
    .withHeader(HeaderConstants.CONTENT_TYPE, 'application/octet-stream')
    .withHeader(HeaderConstants.BLOB_TYPE, BlobConstants.BlobTypes.BLOCK)
    .withHeader(HeaderConstants.CONTENT_LENGTH, length);

  if (!azureutil.objectIsNull(text) && azureutil.objectIsNull(options.transactionalContentMD5) && options.useTransactionalMD5) {
    options.transactionalContentMD5 = azureutil.getContentMd5(text);
  }

  BlobResult.setHeadersFromBlob(webResource, options);

  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = null;
    if (!responseObject.error) {
      responseObject.blobResult = new BlobResult(container, blob);
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);
      if (options.metadata) {
        responseObject.blobResult.metadata = options.metadata;
      }
    }

    var finalCallback = function (returnObject) {
      if (!returnObject || !returnObject.error) {
        speedSummary.increment(length);
      }
      callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  if (!azureutil.objectIsNull(text)) {
    this.performRequest(webResource, text, options, processResponseCallback);
  } else {
    this.performRequestOutputStream(webResource, stream, options, processResponseCallback);
  }

  return options.speedSummary;
};

/**
* Appends a new block to an append blob.
* 
* @ignore
*
* @this {BlobService}
* @param {string}             container                                 The container name.
* @param {string}             blob                                      The blob name.
* @param {string|buffer}      content                                   The block content.
* @param (Stream)             stream                                    The stream to the data to store.
* @param {int}                length                                    The length of the stream or content to upload.
* @param {object}             [options]                                 The request options.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]  Specifies whether to absorb the conditional error on retry.
* @param {int}                [options.maxBlobSize]                     The max length in bytes allowed for the append blob to grow to.
* @param {int}                [options.appendPosition]                  The number indicating the byte offset to check for. The append will succeed only if the end position of the blob is equal to this number.
* @param {string}             [options.leaseId]                         The target blob lease identifier.
* @param {string}             [options.transactionalContentMD5]         The blob’s MD5 hash. This hash is used to verify the integrity of the blob during transport.
* @param {bool}               [options.useTransactionalMD5]             Calculate and send/validate content MD5 for transactions.
* @param {AccessConditions}   [options.accessConditions]                The access conditions.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResponse}    callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise 
*                                                                       `response` will contain information related to this operation.
*/
BlobService.prototype._appendBlock = function (container, blob, content, stream, length, options, callback) {
  var speedSummary = options.speedSummary || new SpeedSummary(blob);
  speedSummary.totalSize = length;

  var self = this;
  var startAppendBlock = function () {
    var resourceName = createResourceName(container, blob);

    var webResource = WebResource.put(resourceName)
      .withQueryOption(QueryStringConstants.COMP, 'appendblock')
      .withHeader(HeaderConstants.CONTENT_LENGTH, length)
      .withHeader(HeaderConstants.BLOB_CONDITION_MAX_SIZE, options.maxBlobSize)
      .withHeader(HeaderConstants.BLOB_CONDITION_APPEND_POSITION, options.appendPosition);

    BlobResult.setHeadersFromBlob(webResource, options);

    var processResponseCallback = function (responseObject, next) {
      responseObject.blobResult = null;
      if (!responseObject.error) {
        responseObject.blobResult = new BlobResult(container, blob);
        responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);
      }

      var finalCallback = function (returnObject) {
        if (!returnObject || !returnObject.error) {
          speedSummary.increment(length);
        }
        callback(returnObject.error, returnObject.blobResult, returnObject.response);
      };

      next(responseObject, finalCallback);
    };

    if (!azureutil.objectIsNull(content)) {
      self.performRequest(webResource, content, options, processResponseCallback);
    } else {
      self.performRequestOutputStream(webResource, stream, options, processResponseCallback);
    }
  };

  if (azureutil.objectIsNull(options.transactionalContentMD5) && options.useTransactionalMD5) {
    if (!azureutil.objectIsNull(content)) {
      options.transactionalContentMD5 = azureutil.getContentMd5(content);
      startAppendBlock();
    } else {
      azureutil.calculateMD5(stream, length, options, function (internalBuff, contentMD5) {
        options.transactionalContentMD5 = contentMD5;
        content = internalBuff;
        length = internalBuff.length;
        startAppendBlock();
      });
    }
  } else {
    startAppendBlock();
  }

  return options.speedSummary;
};

/**
* Creates and dispatches lease requests.
* @ignore
* 
* @this {BlobService}
* @param {object}             webResource                             The web resource.
* @param {string}             container                               The container name.
* @param {string}             blob                                    The blob name.
* @param {string}             leaseId                                 The lease identifier. Required to renew, change or release the lease.
* @param {string}             leaseAction                             The lease action (BlobConstants.LeaseOperation.*). Required.
* @param {object}             userOptions                             The request options.
* @param {int}                [userOptions.leaseBreakPeriod]          The lease break period.
* @param {string}             [userOptions.leaseDuration]             The lease duration. Default is never to expire.
* @param {string}             [userOptions.proposedLeaseId]           The proposed lease identifier. This is required for the CHANGE lease action.
* @param {LocationMode}       [userOptions.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {AccessConditions}   [options.accessConditions]              The access conditions.
* @param {int}                [userOptions.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [userOptions.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {Function(error, lease, response)}  callback                 `error` will contain information
*                                                                     if an error occurs; otherwise `lease` will contain
*                                                                     the lease information.
*                                                                     `response` will contain information related to this operation.
*/
BlobService.prototype._leaseImpl = function (container, blob, leaseId, leaseAction, options, callback) {
  var webResource;
  if (!azureutil.objectIsNull(blob)) {
    validate.validateArgs('_leaseImpl', function (v) {
      v.string(blob, 'blob');
    });
    var resourceName = createResourceName(container, blob);
    webResource = WebResource.put(resourceName);
  } else {
    webResource = WebResource.put(container)
      .withQueryOption(QueryStringConstants.RESTYPE, 'container');
  }

  webResource.withQueryOption(QueryStringConstants.COMP, 'lease')
    .withHeader(HeaderConstants.LEASE_ID, leaseId)
    .withHeader(HeaderConstants.LEASE_ACTION, leaseAction.toLowerCase())
    .withHeader(HeaderConstants.LEASE_BREAK_PERIOD, options.leaseBreakPeriod)
    .withHeader(HeaderConstants.PROPOSED_LEASE_ID, options.proposedLeaseId)
    .withHeader(HeaderConstants.LEASE_DURATION, options.leaseDuration);

  var processResponseCallback = function (responseObject, next) {
    responseObject.leaseResult = null;
    if (!responseObject.error) {
      responseObject.leaseResult = new LeaseResult(container, blob);
      responseObject.leaseResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.leaseResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Updates a page blob from text.
* @ignore
*
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {string}             text                                        The text string.
* @param {Readable}           readStream                                  The Node.js Readable stream.
* @param {int}                rangeStart                                  The range start.
* @param {int}                rangeEnd                                    The range end.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.leaseId]                           The target blob lease identifier.
* @param {string}             [options.transactionalContentMD5]           An MD5 hash of the page content. This hash is used to verify the integrity of the page during transport. 
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {Function(error, pageBlob, response)}  callback                  `error` will contain information
*                                                                         if an error occurs; otherwise `pageBlob` will contain
*                                                                         the blob information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype._createPages = function (container, blob, text, readStream, rangeStart, rangeEnd, options, callback) {
  var request = this._updatePageBlobPagesImpl(container, blob, rangeStart, rangeEnd, BlobConstants.PageWriteOptions.UPDATE, options);

  // At this point, we have already validated that the range is less than 4MB. Therefore, we just need to calculate the contentMD5 if required.
  // Even when this is called from the createPagesFromStream method, it is pre-buffered and called with text.
  if (!azureutil.objectIsNull(text) && azureutil.objectIsNull(options.transactionalContentMD5) && options.useTransactionalMD5) {
    request.withHeader(HeaderConstants.CONTENT_MD5, azureutil.getContentMd5(text));
  }

  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = null;
    if (!responseObject.error) {
      responseObject.blobResult = new BlobResult(container, blob);
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  if (!azureutil.objectIsNull(text)) {
    this.performRequest(request, text, options, processResponseCallback);
  } else {
    this.performRequestOutputStream(request, readStream, options, processResponseCallback);
  }
};

/**
* @ignore
*/
BlobService.prototype._updatePageBlobPagesImpl = function (container, blob, rangeStart, rangeEnd, writeMethod, options) {
  if (rangeStart && rangeStart % BlobConstants.PAGE_SIZE !== 0) {
    throw new RangeError(SR.INVALID_PAGE_START_OFFSET);
  }

  if (rangeEnd && (rangeEnd + 1) % BlobConstants.PAGE_SIZE !== 0) {
    throw new RangeError(SR.INVALID_PAGE_END_OFFSET);
  }

  // this is necessary if this is called from _uploadContentFromChunkStream->_createPages
  if (!options) {
    options = {};
  }

  options.rangeStart = rangeStart;
  options.rangeEnd = rangeEnd;

  options.contentLength = writeMethod === BlobConstants.PageWriteOptions.UPDATE ? (rangeEnd - rangeStart) + 1 : 0;

  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'page')
    .withHeader(HeaderConstants.CONTENT_TYPE, 'application/octet-stream')
    .withHeader(HeaderConstants.PAGE_WRITE, writeMethod);

  BlobResult.setHeadersFromBlob(webResource, options);

  return webResource;
};

/**
* Uploads blob content from a stream.
* For block blob, it creates a new block to be committed.
* For page blob, it writes a range of pages.
* For append blob, it appends a new block.
*
* @ignore
*
* @this {BlobService}
* @param {string}             container                                     The container name.
* @param {string}             blob                                          The blob name.
* @param {string}             blobType                                      The blob type.
* @param (Stream)             stream                                        Stream to the data to store.
* @param {int}                streamLength                                  The length of the stream to upload.
* @param {object|function}    [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The download tracker objects;
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.absorbConditionalErrorsOnRetry]      Specifies whether to absorb the conditional error on retry. (For append blob only)
* @param {int}                [options.maxBlobSize]                         The max length in bytes allowed for the append blob to grow to.
* @param {int}                [options.appendPosition]                      The number indicating the byte offset to check for. The append will succeed only if the end position of the blob is equal to this number.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.blockIdPrefix]                       The prefix to be used to generate the block id. (For block blob only)
* @param {int}                [options.blockSize]                           The size of each block. Maximum is 100MB. (For block blob only)
* @param {string}             [options.leaseId]                             The lease identifier.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {bool}               [options.storeBlobContentMD5]                 Specifies whether the blob's ContentMD5 header should be set on uploads.
* @param {object}             [options.contentSettings]                     The content settings of the blob.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the blob. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the blob.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The Blob service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The blob's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The blob's MD5 hash.
* @param {AccessConditions}   [options.accessConditions]                    The access conditions.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {function(error, null)}  callback                                  The callback function.
* @return {SpeedSummary}
*/

BlobService.prototype._uploadContentFromChunkStream = function (container, blob, blobType, chunkStream, streamLength, options, callback) {
  this.logger.debug(util.format('_uploadContentFromChunkStream for blob %s', blob));

  var apiName;
  var isBlockBlobUpload;
  var isPageBlobUpload;
  var isAppendBlobUpload;
  var sizeLimitation;
  var originalContentMD5 = azureutil.tryGetValueChain(options, ['contentSettings', 'contentMD5'], null);
  var parallelOperationThreadCount = options.parallelOperationThreadCount || this.parallelOperationThreadCount;

  if (blobType == BlobConstants.BlobTypes.BLOCK) {
    apiName = 'createBlockFromText';
    isBlockBlobUpload = true;

    // BlockBlob can only have 50000 blocks in maximum
    var minBlockSize = Math.ceil(streamLength / 50000);
    if (options.blockSize) {
      if (options.blockSize < minBlockSize) {
        // options.blockSize is less than the minBlockSize, error callback        
        var error = new ArgumentError('options.blockSize', util.format('The minimum blockSize is %s and the provided blockSize %s is too small.', minBlockSize, options.blockSize));
        callback(error);
        return;
      } else {
        sizeLimitation = options.blockSize;
      }
    } else {
      // 4MB minimum for auto-calculated block size
      sizeLimitation = Math.max(minBlockSize, BlobConstants.DEFAULT_WRITE_BLOCK_SIZE_IN_BYTES);
    }
  } else if (blobType == BlobConstants.BlobTypes.PAGE) {
    apiName = '_createPages';
    isPageBlobUpload = true;
    sizeLimitation = BlobConstants.DEFAULT_WRITE_PAGE_SIZE_IN_BYTES;
  } else if (blobType == BlobConstants.BlobTypes.APPEND) {
    apiName = 'appendBlockFromText';
    isAppendBlobUpload = true;
    parallelOperationThreadCount = 1;
    sizeLimitation = BlobConstants.DEFAULT_WRITE_BLOCK_SIZE_IN_BYTES;
  } else {
    var error = new ArgumentError('blobType', util.format('Unknown blob type %s', blobType));
    callback(error);
    return;
  }

  chunkStream._highWaterMark = sizeLimitation;

  this._setOperationExpiryTime(options);

  // initialize the speed summary
  var speedSummary = options.speedSummary || new SpeedSummary(blob);
  speedSummary.totalSize = streamLength;

  // initialize chunk allocator
  var allocator = new ChunkAllocator(sizeLimitation, parallelOperationThreadCount, { logger: this.logger });
  chunkStream.setMemoryAllocator(allocator);
  chunkStream.setOutputLength(streamLength);

  // if this is a FileReadStream, set the allocator on that stream
  if (chunkStream._stream && chunkStream._stream.setMemoryAllocator) {
    var fileReadStreamAllocator = new ChunkAllocator(chunkStream._stream._highWaterMark, parallelOperationThreadCount, { logger: this.logger });      
    chunkStream._stream.setMemoryAllocator(fileReadStreamAllocator);
  }

  // initialize batch operations
  var batchOperations = new BatchOperation(apiName, {
    callInOrder: isAppendBlobUpload,
    callbackInOrder: isAppendBlobUpload,
    logger: this.logger,
    enableReuseSocket: this.defaultEnableReuseSocket,
    operationMemoryUsage: sizeLimitation
  });
  batchOperations.setConcurrency(parallelOperationThreadCount);

  // initialize options
  var rangeOptions = {
    leaseId: options.leaseId,
    timeoutIntervalInMs: options.timeoutIntervalInMs,
    clientRequestTimeoutInMs: options.clientRequestTimeoutInMs,
    operationExpiryTime: options.operationExpiryTime,
    maxBlobSize: options.maxBlobSize,
    appendPosition: options.appendPosition || 0,
    initialAppendPosition: options.appendPosition || 0,
    absorbConditionalErrorsOnRetry: options.absorbConditionalErrorsOnRetry
  };

  // initialize block blob variables
  var blockIdPrefix = options.blockIdPrefix || this.generateBlockIdPrefix();
  var blockCount = 0;
  var blockIds = [];
  var blobResult = {};

  var self = this;
  chunkStream.on('data', function (data, range) {
    var operation = null;
    var full = false;
    var autoIncrement = speedSummary.getAutoIncrementFunction(data.length);

    if (data.length > sizeLimitation) {
      throw new RangeError(util.format(SR.EXCEEDED_SIZE_LIMITATION, sizeLimitation, data.length));
    }

    if (options.useTransactionalMD5) {
      //calculate content md5 for the current uploading block data
      var contentMD5 = azureutil.getContentMd5(data);
      rangeOptions.transactionalContentMD5 = contentMD5;
    }

    var checkLengthLimit = function () {
      if (!streamLength) return true;
      if (range.start >= streamLength) {
        self.logger.debug(util.format('Stop uploading data from %s bytes to %s bytes to blob %s because of limit %s', range.start, range.end, blob, streamLength));
        chunkStream.stop();
        return false;
      } else if (range.end >= streamLength) {
        self.logger.debug(util.format('Clip uploading data from %s bytes to %s bytes to blob %s because of limit %s', range.start, range.end, blob, streamLength));
        range.end = streamLength - 1;
        data = data.slice(0, streamLength - range.start);
        if (options.useTransactionalMD5) {
          rangeOptions.transactionalContentMD5 = azureutil.getContentMd5(data);
        }
      }
      return true;
    };

    var uploadBlockBlobChunk = function () {
      if (!checkLengthLimit()) return;
      var blockId = self.getBlockId(blockIdPrefix, blockCount);
      blockIds.push(blockId);

      operation = new BatchOperation.RestOperation(self, apiName, blockId, container, blob, data, rangeOptions, function (error) {
        if (!error) {
          autoIncrement();
        } else {
          self.logger.debug(util.format('Stop uploading data as error happens. Error: %s', util.inspect(error)));
          chunkStream.stop();
        }
        allocator.releaseBuffer(data);
        data = null;
      });

      blockCount++;
    };

    var uploadPageBlobChunk = function () {
      if (!checkLengthLimit()) return;

      if (azureutil.isBufferAllZero(data)) {
        self.logger.debug(util.format('Skip upload data from %s bytes to %s bytes to blob %s', range.start, range.end, blob));
        speedSummary.increment(data.length);
      } else {
        self.logger.debug(util.format('Upload data from %s bytes to %s bytes to blob %s', range.start, range.end, blob));
        operation = new BatchOperation.RestOperation(self, apiName, container, blob, data, null, range.start, range.end, rangeOptions, function (error) {
          if (!error) {
            autoIncrement();
          } else {
            self.logger.debug(util.format('Stop uploading data as error happens. Error: %s', util.inspect(error)));
            chunkStream.stop();
          }
          allocator.releaseBuffer(data);
          data = null;
        });
      }
    };

    var uploadAppendBlobChunk = function () {
      if (!checkLengthLimit()) return;

      rangeOptions.appendPosition = Number(rangeOptions.initialAppendPosition) + Number(range.start);

      // We cannot differentiate between max size condition failing only in the retry versus failing in the first attempt and retry.  
      // So we will eliminate the latter and handle the former in the append operation callback.
      if (options.maxBlobSize && rangeOptions.appendPosition + data.length > options.maxBlobSize) {
        throw new Error(SR.MAX_BLOB_SIZE_CONDITION_NOT_MEET);
      }

      operation = new BatchOperation.RestOperation(self, apiName, container, blob, data, rangeOptions, function (error, currentBlob) {
        if (!error) {
          autoIncrement();
        } else {
          self.logger.debug(util.format('Stop uploading data as error happens. Error: %s', util.inspect(error)));
          chunkStream.stop();
        }
        blobResult = currentBlob;
        allocator.releaseBuffer(data);
        data = null;
      });
    };

    if (isBlockBlobUpload) {
      uploadBlockBlobChunk();
    } else if (isAppendBlobUpload) {
      uploadAppendBlobChunk();
    } else if (isPageBlobUpload) {
      uploadPageBlobChunk();
    }

    if (operation) {
      full = batchOperations.addOperation(operation);
      operation = null;

      if (full) {
        self.logger.debug('File stream paused');
        chunkStream.pause();
      }
    }
  });

  chunkStream.on('end', function () {
    self.logger.debug(util.format('File read stream ended for blob %s', blob));
    batchOperations.enableComplete();
  });

  batchOperations.on('drain', function () {
    self.logger.debug('file stream resume');
    chunkStream.resume();
  });

  batchOperations.on('end', function (error) {
    self.logger.debug('batch operations commited');

    speedSummary = null;
    if (error) {
      callback(error);
      return;
    }

    if (originalContentMD5) {
      options.contentSettings.contentMD5 = originalContentMD5;
    } else if (options.storeBlobContentMD5) {
      var contentMD5 = chunkStream.getContentMd5('base64');
      azureutil.setObjectInnerPropertyValue(options, ['contentSettings', 'contentMD5'], contentMD5);
    }

    if (isBlockBlobUpload) {
      //commit block list
      var blockList = { 'UncommittedBlocks': blockIds };
      self.commitBlocks(container, blob, blockList, options, function (error, blockList, response) {
        self.logger.debug(util.format('Blob %s committed', blob));

        if (error) {
          chunkStream.finish();

          callback(error);
        } else {
          blobResult['commmittedBlocks'] = blockIds;

          chunkStream.finish();
          callback(error, blobResult, response);
        }
      });
    } else {
      // upload page blob or append blob completely
      var blobProperties = options.contentSettings;
      self.setBlobProperties(container, blob, blobProperties, function (error, blob, response) {
        chunkStream.finish();
        blob = extend(false, blob, blobResult);
        callback(error, blob, response);
      });
    }
  });

  return speedSummary;
};

/**
* Checks whether or not a container exists on the service.
* @ignore
*
* @this {BlobService}
* @param {string}             container                                         The container name.
* @param {string}             primaryOnly                                       If true, the request will be executed against the primary storage location.
* @param {object}             [options]                                         The request options.
* @param {string}             [options.leaseId]                                 The lease identifier.
* @param {LocationMode}       [options.locationMode]                            Specifies the location mode used to decide which location the request should be sent to. 
*                                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                     The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]                The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]                The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                         A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                       Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                               The default value is false.
* @param {Function(error, result, response)}  callback                          `error` will contain information
*                                                                               if an error occurs; otherwise `result` will contain
*                                                                               the container information including `exists` boolean member. 
*                                                                               `response` will contain information related to this operation.
*/
BlobService.prototype._doesContainerExist = function (container, primaryOnly, options, callback) {
  var webResource = WebResource.head(container)
    .withQueryOption(QueryStringConstants.RESTYPE, 'container')
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  if (primaryOnly === false) {
    options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;
  }

  var processResponseCallback = function (responseObject, next) {
    responseObject.containerResult = new ContainerResult(container);
    if (!responseObject.error) {
      responseObject.containerResult.exists = true;
      responseObject.containerResult.getPropertiesFromHeaders(responseObject.response.headers);

    } else if (responseObject.error && responseObject.error.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound) {
      responseObject.error = null;
      responseObject.containerResult.exists = false;
      responseObject.response.isSuccessful = true;
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.containerResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Checks whether or not a blob exists on the service.
* @ignore
*
* @this {BlobService}
* @param {string}             container                                         The container name.
* @param {string}             blob                                              The blob name.
* @param {string}             primaryOnly                                       If true, the request will be executed against the primary storage location.
* @param {object}             [options]                                         The request options.
* @param {string}             [options.snapshotId]                              The snapshot identifier.
* @param {string}             [options.leaseId]                                 The lease identifier.
* @param {LocationMode}       [options.locationMode]                            Specifies the location mode used to decide which location the request should be sent to. 
*                                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                     The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]                The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]                The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                         A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                       Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                               The default value is false.
* @param {Function(error, result, response)}  callback                          `error` will contain information
*                                                                               if an error occurs; otherwise `result` will contain 
*                                                                               the blob information including `exists` boolean member. 
*                                                                               `response` will contain information related to this operation.
*/
BlobService.prototype._doesBlobExist = function (container, blob, primaryOnly, options, callback) {
  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.head(resourceName)
    .withQueryOption(QueryStringConstants.SNAPSHOT, options.snapshotId)
    .withHeader(HeaderConstants.LEASE_ID, options.leaseId);

  if (primaryOnly === false) {
    options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;
  }

  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = new BlobResult(container, blob);
    if (!responseObject.error) {
      responseObject.blobResult.exists = true;
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);

    } else if (responseObject.error && responseObject.error.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound) {
      responseObject.error = null;
      responseObject.blobResult.exists = false;
      responseObject.response.isSuccessful = true;
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* @ignore
*/
BlobService.prototype._setBlobPropertiesHelper = function (settings) {
  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = null;
    if (!responseObject.error) {
      responseObject.blobResult = new BlobResult(settings.container, settings.blob);
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      settings.callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(settings.webResource, null, settings.options, processResponseCallback);
};

/**
* @ignore
*/
BlobService.prototype._validateLengthAndMD5 = function (options, responseObject) {
  var storedMD5 = responseObject.response.headers[Constants.HeaderConstants.CONTENT_MD5];
  var contentLength;

  if (!azureutil.objectIsNull(responseObject.response.headers[Constants.HeaderConstants.CONTENT_LENGTH])) {
    contentLength = parseInt(responseObject.response.headers[Constants.HeaderConstants.CONTENT_LENGTH], 10);
  }

  // If the user has not specified this option, the default value should be false.
  if (azureutil.objectIsNull(options.disableContentMD5Validation)) {
    options.disableContentMD5Validation = false;
  }

  // None of the below cases should be retried. So set the error in every case so the retry policy filter handle knows that it shouldn't be retried.
  if (options.disableContentMD5Validation === false && options.useTransactionalMD5 === true && azureutil.objectIsNull(storedMD5)) {
    responseObject.error = new StorageError(SR.MD5_NOT_PRESENT_ERROR);
    responseObject.retryable = false;
  }

  // Validate length and if required, MD5.
  // If getBlobToText called this method, then the responseObject.length and responseObject.contentMD5 are not set. Calculate them first using responseObject.response.body and then validate.
  if (azureutil.objectIsNull(responseObject.length)) {
    if (typeof responseObject.response.body == 'string') {
      responseObject.length = Buffer.byteLength(responseObject.response.body);
    } else if (Buffer.isBuffer(responseObject.response.body)) {
      responseObject.length = responseObject.response.body.length;
    }
  }

  if (!azureutil.objectIsNull(contentLength) && responseObject.length !== contentLength) {
    responseObject.error = new Error(SR.CONTENT_LENGTH_MISMATCH);
    responseObject.retryable = false;
  }

  if (options.disableContentMD5Validation === false && azureutil.objectIsNull(responseObject.contentMD5)) {
    responseObject.contentMD5 = azureutil.getContentMd5(responseObject.response.body);
  }

  if (options.disableContentMD5Validation === false && !azureutil.objectIsNull(storedMD5) && storedMD5 !== responseObject.contentMD5) {
    responseObject.error = new Error(util.format(SR.HASH_MISMATCH, storedMD5, responseObject.contentMD5));
    responseObject.retryable = false;
  }
};

/**
* @ignore
*/
BlobService.prototype._setRangeContentMD5Header = function (webResource, options) {
  if (!azureutil.objectIsNull(options.rangeStart) && options.useTransactionalMD5) {
    if (azureutil.objectIsNull(options.rangeEnd)) {
      throw new ArgumentNullError('options.rangeEndHeader', util.format(SR.ARGUMENT_NULL_OR_EMPTY, options.rangeEndHeader));
    }

    var size = parseInt(options.rangeEnd, 10) - parseInt(options.rangeStart, 10) + 1;
    if (size > BlobConstants.MAX_RANGE_GET_SIZE_WITH_MD5) {
      throw new ArgumentError('options', SR.INVALID_RANGE_FOR_MD5);
    } else {
      webResource.withHeader(HeaderConstants.RANGE_GET_CONTENT_MD5, 'true');
    }
  }
};

/**
* Downloads a blockblob, pageblob or appendblob into a range stream.
* @ignore
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {string}             blobType                                    The type of blob to download: block blob, page blob or append blob.
* @param {Writable}           writeStream                                 The Node.js Writable stream.
* @param {object}             [options]                                   The request options.
* @param {SpeedSummary}       [options.speedSummary]                      The download tracker objects.
* @param {int}                [options.parallelOperationThreadCount]      The number of parallel operations that may be performed when uploading.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {string}             [options.rangeStart]                        Return only the bytes of the blob in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the blob in the specified range.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading blobs.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `result` will contain the blob information.
*                                                                         `response` will contain information related to this operation.
* @return {SpeedSummary}
*/
BlobService.prototype._getBlobToRangeStream = function (container, blob, blobType, writeStream, optionsOrCallback, callback) {
  var options;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { options = o; callback = c; });

  validate.validateArgs('_getBlobToRangeStream', function (v) {
    v.string(container, 'container');
    v.string(blob, 'blob');
    v.containerNameIsValid(container);
    v.blobNameIsValid(container, blob);
    v.blobTypeIsValid(blobType);
    v.callback(callback);
  });

  var rangeStream = null;
  var isPageBlobDownload = true;

  if (blobType == BlobConstants.BlobTypes.PAGE) {
    rangeStream = new PageRangeStream(this, container, blob, options);
  } else if (blobType == BlobConstants.BlobTypes.APPEND) {
    rangeStream = new RangeStream(this, container, blob, options);
    isPageBlobDownload = false;
  } else if (blobType == BlobConstants.BlobTypes.BLOCK) {
    rangeStream = new BlockRangeStream(this, container, blob, options);
    isPageBlobDownload = false;
  }

  if (!options.speedSummary) {
    options.speedSummary = new SpeedSummary(blob);
  }

  var speedSummary = options.speedSummary;
  var parallelOperationThreadCount = options.parallelOperationThreadCount || this.parallelOperationThreadCount;
  var batchOperations = new BatchOperation('getBlobInRanges', { callbackInOrder: true, logger: this.logger, enableReuseSocket: this.defaultEnableReuseSocket });
  batchOperations.setConcurrency(parallelOperationThreadCount);

  var self = this;
  var checkMD5sum = !options.disableContentMD5Validation;
  var md5Hash = null;
  if (checkMD5sum) {
    md5Hash = new Md5Wrapper().createMd5Hash();
  }

  var savedBlobResult = null;
  var savedBlobResponse = null;

  rangeStream.on('range', function (range) {
    if (!speedSummary.totalSize) {
      speedSummary.totalSize = rangeStream.rangeSize;
    }

    var requestOptions = {
      rangeStart: range.start,
      rangeEnd: range.end,
      responseEncoding: null //Use Buffer to store the response data
    };

    var rangeSize = range.size;
    requestOptions.timeoutIntervalInMs = options.timeoutIntervalInMs;
    requestOptions.clientRequestTimeoutInMs = options.clientRequestTimeoutInMs;
    requestOptions.useTransactionalMD5 = options.useTransactionalMD5;
    requestOptions.snapshotId = options.snapshotId;

    if (range.dataSize === 0) {
      if (isPageBlobDownload) {
        var autoIncrement = speedSummary.getAutoIncrementFunction(rangeSize);
        //No operation to do and only wait for write zero to file in callback
        var writeZeroOperation = new BatchOperation.CommonOperation(BatchOperation.noOperation, function (error) {
          if (error) return;
          var bufferAvailable = azureutil.writeZerosToStream(writeStream, rangeSize, md5Hash, autoIncrement);
          //There is no need to pause the rangestream since we can perform http request and write disk at the same time
          self.logger.debug(util.format('Write %s bytes Zero from %s to %s', rangeSize, range.start, range.end));
          if (!bufferAvailable) {
            self.logger.debug('Write stream is full and pause batch operation');
            batchOperations.pause();
          }
        });
        batchOperations.addOperation(writeZeroOperation);
      } else {
        self.logger.debug(util.format('Can not read %s bytes to %s bytes of blob %s', range.start, range.end, blob));
      }
      return;
    }

    if (range.start > range.end) {
      return;
    }

    var operation = new BatchOperation.RestOperation(self, 'getBlobToText', container, blob, requestOptions, function (error, content, blobResult, response) {
      if (!error) {
        if (rangeSize !== content.length) {
          self.logger.warn(util.format('Request %s bytes, but server returns %s bytes', rangeSize, content.length));
        }
        //Save one of the succeeded callback parameters and use them at the final callback
        if (!savedBlobResult) {
          savedBlobResult = blobResult;
        }
        if (!savedBlobResponse) {
          savedBlobResponse = response;
        }
        var autoIncrement = speedSummary.getAutoIncrementFunction(content.length);
        var bufferAvailable = writeStream.write(content, autoIncrement);
        if (!bufferAvailable) {
          self.logger.debug('Write stream is full and pause batch operation');
          batchOperations.pause();
        }
        if (md5Hash) {
          md5Hash.update(content);
        }
        content = null;
      } else {
        self.logger.debug(util.format('Stop downloading data as error happens. Error: %s', util.inspect(error)));
        rangeStream.stop();
      }
    });

    var full = batchOperations.addOperation(operation);
    if (full) {
      self.logger.debug('Pause range stream');
      rangeStream.pause();
    }
  });

  rangeStream.on('end', function () {
    self.logger.debug('Range stream has ended.');
    batchOperations.enableComplete();
  });

  batchOperations.on('drain', function () {
    self.logger.debug('Resume range stream');
    rangeStream.resume();
  });

  writeStream.on('drain', function () {
    self.logger.debug('Resume batch operations');
    batchOperations.resume();
  });

  batchOperations.on('end', function (error) {
    self.logger.debug('Download completed!');
    if (error) {
      callback(error);
      return;
    } else {
      writeStream.end(function () {
        self.logger.debug('Write stream has ended');
        if (!savedBlobResult) {
          savedBlobResult = {};
        }

        azureutil.setObjectInnerPropertyValue(savedBlobResult, ['contentSettings', 'contentMD5'], azureutil.tryGetValueChain(options, ['contentSettings', 'contentMD5'], null));
        savedBlobResult.clientSideContentMD5 = null;
        if (md5Hash) {
          savedBlobResult.clientSideContentMD5 = md5Hash.digest('base64');
        }
        callback(error, savedBlobResult, savedBlobResponse);
      });
    }
  });

  var listOptions = {
    timeoutIntervalInMs: options.timeoutIntervalInMs,
    clientRequestTimeoutInMs: options.clientRequestTimeoutInMs,
    snapshotId: options.snapshotId,
    leaseId: options.leaseId,
    blockListFilter: BlobUtilities.BlockListFilter.COMMITTED
  };

  rangeStream.list(listOptions, function (error) {
    callback(error);
  });

  return speedSummary;
};

/**
* Downloads a blockblob or pageblob into a stream.
* @ignore
* @this {BlobService}
* @param {string}             container                                   The container name.
* @param {string}             blob                                        The blob name.
* @param {Writable}           writeStream                                 The Node.js Writable stream.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.snapshotId]                        The snapshot identifier.
* @param {string}             [options.leaseId]                           The lease identifier.
* @param {string}             [options.rangeStart]                        Return only the bytes of the blob in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the blob in the specified range.
* @param {AccessConditions}   [options.accessConditions]                  The access conditions.
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading blobs.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `result` will contain the blob information.
*                                                                         `response` will contain information related to this operation.
*/
BlobService.prototype._getBlobToStream = function (container, blob, writeStream, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  var resourceName = createResourceName(container, blob);
  var webResource = WebResource.get(resourceName).withRawResponse();

  var options = extend(true, {}, userOptions);
  webResource.withQueryOption(QueryStringConstants.SNAPSHOT, options.snapshotId);

  BlobResult.setHeadersFromBlob(webResource, options);

  this._setRangeContentMD5Header(webResource, options);

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.blobResult = null;

    if (!responseObject.error) {
      responseObject.blobResult = new BlobResult(container, blob);
      responseObject.blobResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.blobResult.getPropertiesFromHeaders(responseObject.response.headers);

      self._validateLengthAndMD5(options, responseObject);
      
      if (options.speedSummary) {
        options.speedSummary.increment(responseObject.length);
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.blobResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequestInputStream(webResource, null, writeStream, options, processResponseCallback);
};

/**
* Lists a segment containing a collection of blob items whose names begin with the specified prefix in the container.
* @ignore
* @this {BlobService}
* @param {string}             container                           The container name.
* @param {string}             prefix                              The prefix of the blob name.
* @param {object}             currentToken                        A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {ListBlobTypes}      listBlobType                        Specifies the item type of the results.
* @param {object}             [options]                           The request options.
* @param {int}                [options.maxResults]                Specifies the maximum number of blobs to return per call to Azure ServiceClient. This does NOT affect list size returned by this function. (maximum: 5000)
* @param {string}             [options.include]                   Specifies that the response should include one or more of the following subsets: '', 'metadata', 'snapshots', 'uncommittedblobs', 'copy', 'deleted').
*                                                                 Please find these values in BlobUtilities.BlobListingDetails. Multiple values can be added separated with a comma (,).
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will contain
*                                                                 the entries of blobs and the continuation token for the next listing operation.
*                                                                 `response` will contain information related to this operation.
*/
BlobService.prototype._listBlobsOrDircotriesSegmentedWithPrefix = function (container, prefix, currentToken, listBlobType, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('listBlobsSegmented', function (v) {
    v.string(container, 'container');
    v.containerNameIsValid(container);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get(container)
    .withQueryOption(QueryStringConstants.RESTYPE, 'container')
    .withQueryOption(QueryStringConstants.COMP, 'list')
    .withQueryOption(QueryStringConstants.MAX_RESULTS, options.maxResults)
    .withQueryOptions(options,
    QueryStringConstants.DELIMITER,
    QueryStringConstants.INCLUDE);

  if (!azureutil.objectIsNull(currentToken)) {
    webResource.withQueryOption(QueryStringConstants.MARKER, currentToken.nextMarker);
  }

  webResource.withQueryOption(QueryStringConstants.PREFIX, prefix);

  options.requestLocationMode = azureutil.getNextListingLocationMode(currentToken);

  var processResponseCallback = function (responseObject, next) {
    responseObject.listBlobsResult = null;
    if (!responseObject.error) {
      responseObject.listBlobsResult = {
        entries: null,
        continuationToken: null
      };

      responseObject.listBlobsResult.entries = [];
      var results = [];

      if (listBlobType == BlobConstants.ListBlobTypes.Directory && responseObject.response.body.EnumerationResults.Blobs.BlobPrefix) {
        results = responseObject.response.body.EnumerationResults.Blobs.BlobPrefix;
        if (!_.isArray(results)) {
          results = [results];
        }
      } else if (listBlobType == BlobConstants.ListBlobTypes.Blob && responseObject.response.body.EnumerationResults.Blobs.Blob) {
        results = responseObject.response.body.EnumerationResults.Blobs.Blob;
        if (!_.isArray(results)) {
          results = [results];
        }
      }

      results.forEach(function (currentBlob) {
        var blobResult = BlobResult.parse(currentBlob);
        responseObject.listBlobsResult.entries.push(blobResult);
      });

      if (responseObject.response.body.EnumerationResults.NextMarker) {
        responseObject.listBlobsResult.continuationToken = {
          nextMarker: null,
          targetLocation: null
        };

        responseObject.listBlobsResult.continuationToken.nextMarker = responseObject.response.body.EnumerationResults.NextMarker;
        responseObject.listBlobsResult.continuationToken.targetLocation = responseObject.targetLocation;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.listBlobsResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Create a new blob.
* @ignore
* 
* @this {BlobService}
* @param {string}             container                                The container name.
* @param {string}             blob                                     The blob name.
* @param {BlobType}           blobType                                 The blob type.
* @param {int}                size                                     The blob size. 
* @param {object}             [options]                                The request options.
* @param {string}             [options.blobTier]                       For page blobs on premium accounts only. Set the tier of the target blob. Refer to BlobUtilities.BlobTier.PremiumPageBlobTier.
* @param {errorOrResult}      callback                                 The callback which operates on the specific blob.
*/
BlobService.prototype._createBlob = function (container, blob, blobType, size, options, creationCallback) {
  if (blobType == BlobConstants.BlobTypes.APPEND) {
    this.createOrReplaceAppendBlob(container, blob, options, function (createError, createResponse) {
      creationCallback(createError, null, createResponse);
    });
  } else if (blobType == BlobConstants.BlobTypes.PAGE) {
    this.createPageBlob(container, blob, size, options, function (createError) {
      creationCallback(createError);
    });
  } else if (blobType == BlobConstants.BlobTypes.BLOCK) {
    creationCallback();
  }
};

/**
* The callback for {BlobService~getBlobToText}.
* @typedef {function} BlobService~blobToText
* @param {object} error      If an error occurs, the error information.
* @param {string} text       The text returned from the blob.
* @param {object} blockBlob  Information about the blob.
* @param {object} response   Information related to this operation.
*/

BlobService.SpeedSummary = SpeedSummary;

module.exports = BlobService;


/***/ }),
/* 606 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var Constants = __webpack_require__(275);
var EventEmitter = __webpack_require__(237).EventEmitter;
var BlobUtilities = __webpack_require__(497);

/**
* BlockBlob block range stream
*/
function BlockRangeStream(blobServiceClient, container, blob, options) {
  this.blobServiceClient = blobServiceClient;
  this.container = container;
  this.blob = blob;
  this._emitter = new EventEmitter();
  this._paused = false;
  this._emittedAll = false;
  this._emittedRangeType = null;
  this._emittedRangeIndex = null;
  this._offset = 0;
  this._rangelist = [];
  this._isEmitting = false;
  if (options.rangeStart) {
    this._startOffset = options.rangeStart;
  } else {
    this._startOffset = 0;
  }
  if (options.rangeEnd) {
    this._endOffset = options.rangeEnd;
  } else {
    this._endOffset = Number.MAX_VALUE;
  }
}

/**
* Add event listener
*/
BlockRangeStream.prototype.on = function (event, listener) {
  this._emitter.on(event, listener);
};

/**
* Get block list
*/
BlockRangeStream.prototype.list = function (options, callback) {
  if (!options) {
    options = {};
  }
  
  if (!options.blockListFilter) {
    options.blockListFilter = BlobUtilities.BlockListFilter.ALL;
  }
  
  var self = this;
  this.blobServiceClient.listBlocks(this.container, this.blob, options.blockListFilter, options, function (error, blocklist, response) {
    if (error) {
      callback(error);
    } else {
      var totalSize = parseInt(response.headers[Constants.HeaderConstants.BLOB_CONTENT_LENGTH], 10);
      if (!blocklist.CommittedBlocks) {
        //Convert single block blob to block blob range
        var name = 'NODESDK_BLOCKBLOB_RANGESTREAM';
        blocklist.CommittedBlocks = [{ Name : name, Size : totalSize }];
      }
      
      self._rangelist = blocklist;
      self._emitBlockList();
      self = blocklist = null;
    }
  });
};

/**
* Emit block ranges
*/
BlockRangeStream.prototype._emitBlockList = function () {
  if (this._paused || this._emittedAll || this._isEmitting) return;
  
  var self = this;
  this._getTypeList(function () {
    self._rangelist = null;
    self._emittedAll = true;
    self._emitter.emit('end');
  });
};

/**
* Get the block type list
*/
BlockRangeStream.prototype._getTypeList = function (callback) {
  this._isEmitting = true;
  try {
    var typeStart = false;
    if (this._rangelist) {
      for (var blockType in this._rangelist) {
        if (this._rangelist.hasOwnProperty(blockType)) {
          if (this._emittedRangeType === null || typeStart || this._emittedRangeType == blockType) {
            this._emittedRangeType = blockType;
            typeStart = true;
          } else if (this._emittedRangeType !== blockType) {
            continue;
          }
          
          if (this._paused) {
            return;
          }
          
          this._emitBlockRange (blockType, callback);
        }
      }
    }
  } finally {
    this._isEmitting = false;
  }
};

/**
* Get the block list
*/
BlockRangeStream.prototype._emitBlockRange  = function (blockType, callback) {
  var blockList = this._rangelist[blockType];
  var indexStart = false;
  for (var blockIndex = 0; blockIndex < blockList.length; blockIndex++) {
    if (this._emittedRangeIndex === null || indexStart || this._emittedRangeIndex === blockIndex) {
      this._emittedRangeIndex = blockIndex;
      indexStart = true;
    } else if (this._emittedRangeIndex !== blockIndex) {
      continue;
    }
    
    if (this._paused) {
      return;
    }
    
    var range = blockList[blockIndex];
    // follow the same naming convention of page ranges and json
    range.name = range.Name;
    range.type = blockType;
    range.start = this._offset;
    this._offset += parseInt(range.Size, 10);
    range.end = this._offset - 1;
    delete range.Name;
    delete range.Size;
    
    if (range.start > this._endOffset) {
      break;
    } else if (range.end < this._startOffset) {
      continue;
    } else {
      range.start = Math.max(range.start, this._startOffset);
      range.end = Math.min(range.end, this._endOffset);
      range.size = range.end - range.start + 1;
      range.dataSize = range.size;
      this._emitter.emit('range', range);
    }
  }

  // remove the used range and avoid memory leak
  this._rangelist[blockType] = null;

  callback();
};

/**
* Pause the stream
*/
BlockRangeStream.prototype.pause = function () {
  this._paused = true;
};

/**
* Resume the stream
*/
BlockRangeStream.prototype.resume = function () {
  this._paused = false;
  if (!this._isEmitting) {
    this._emitBlockList();
  }
};

/**
* Stop the stream
*/
BlockRangeStream.prototype.stop = function () {
  this.pause();
  this._emittedAll = true;
  this._emitter.emit('end');
};

module.exports = BlockRangeStream;


/***/ }),
/* 607 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var util = __webpack_require__(113);
var RangeStream = __webpack_require__(608);
var Constants = __webpack_require__(275);

/**
* PageBlob page range stream
*/
function PageRangeStream(blobServiceClient, container, blob, options) {
  PageRangeStream['super_'].call(this, blobServiceClient, container, blob, options);
  
  if (options.minRangeSize) {
    this._minRangeSize = options.minRangeSize;
  } else {
    this._minRangeSize = Constants.BlobConstants.MIN_WRITE_PAGE_SIZE_IN_BYTES;
  }
  if (options.maxRangeSize) {
    this._maxRangeSize = options.maxRangeSize;
  } else {
    this._maxRangeSize = Constants.BlobConstants.DEFAULT_WRITE_PAGE_SIZE_IN_BYTES;
  }
  this._lengthHeader = Constants.HeaderConstants.BLOB_CONTENT_LENGTH;
  this._listFunc = blobServiceClient.listPageRanges;
}

util.inherits(PageRangeStream, RangeStream);

module.exports = PageRangeStream;


/***/ }),
/* 608 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var Constants = __webpack_require__(275);
var EventEmitter = __webpack_require__(237).EventEmitter;

/**
* Range stream
*/
function RangeStream(serviceClient, container, blob, options) {
  this.serviceClient = serviceClient;
  this._emitter = new EventEmitter();
  this._paused = false;
  this._emittedAll = false;
  this._emittedRangeIndex = 0;
  this._rangelist = [];
  this._resourcePath = [];
  this._isEmitting = false;
  this._rangeStreamEnded = false;
  this._lengthHeader = Constants.HeaderConstants.CONTENT_LENGTH;
  this._minRangeSize = Constants.BlobConstants.MIN_WRITE_PAGE_SIZE_IN_BYTES;
  this._maxRangeSize = Constants.BlobConstants.DEFAULT_WRITE_PAGE_SIZE_IN_BYTES;
  if (options.rangeStart) {
    this._startOffset = options.rangeStart;
  } else {
    this._startOffset = 0;
  }
  this._dataOffset = this._startOffset;
  if (options.rangeEnd) {
    this._endOffset = options.rangeEnd;
  } else {
    this._endOffset = Number.MAX_VALUE;
  }
  if (container) {
    this._resourcePath.push(container);
  }
  if (blob) {
    this._resourcePath.push(blob); 
  }
}

/**
* Get range list
*/
RangeStream.prototype.list = function (options, callback) {
  var start = this._startOffset;
  var end;
  var singleRangeSize = Constants.BlobConstants.MAX_SINGLE_GET_PAGE_RANGE_SIZE;

  if (this._listFunc === undefined) {
    // the default function puts the whole blob into a single list item
    this._listFunc = this._defaultListFunc;
    end = this._endOffset;
  } else {
    end = Math.min(this._startOffset + singleRangeSize - 1, this._endOffset);
  }
  options.rangeStart = start;
  if (end != Number.MAX_VALUE) {
    options.rangeEnd = end;
  }

  var self = this;
  var onList = function (error, ranges, response) {
    if (error) {
      callback(error);
    } else {
      if (self._rangeStreamEnded) {
        return;
      }

      var totalSize = parseInt(response.headers[self._lengthHeader], 10);
      var endOffset = Math.min(totalSize - 1, self._endOffset);
      var rangeEnd = Math.min(end, endOffset);
  
      if (!ranges.length) {
        // convert single object to range
        // start >= end means there is no valid regions
        ranges.push({ start : start, end : rangeEnd, dataSize: 0 });
      } else if (ranges[ranges.length - 1].end !== rangeEnd) {
        // don't forget the zero chunk at the end of range
        ranges.push({ start : ranges[ranges.length - 1].end + 1, end : rangeEnd, dataSize: 0 });
      }
      
      if (end >= endOffset) {
        self._rangeStreamEnded = true;
      }
      self.resizeAndSaveRanges(ranges);
      self._startOffset += singleRangeSize;
      self._emitRange();
      
      // This is only valid when listing pages because when listing with the default function, the "endOffset" will always equal to or greater than the "end". 
      if (end < endOffset && !self._rangeStreamEnded) {
        process.nextTick(function () {
          ranges = null;
          self.list(options, callback);
          self = null;
        });
      }
    }
  };

  var callArguments = Array.prototype.slice.call(this._resourcePath);
  callArguments.push(options);
  callArguments.push(onList);
  this._listFunc.apply(this.serviceClient, callArguments);
};

/**
* Resize regions:
*   1. Merge small pieces into a range no less than this._minRangeSize
*   2. Split large pieces into ranges no more than this._maxRangeSize
*/
RangeStream.prototype.resizeAndSaveRanges = function (ranges) {
  var rangeList = this._rangelist;
  var holdingRange = { type : 'range', size : 0, dataSize : 0, start : this._startOffset, end : -1 };
  var readingRange = null;
  var rangeSize = 0;

  for (var index = 0; index < ranges.length; index++) {
    readingRange = ranges[index];
    rangeSize = readingRange.end - holdingRange.start + 1;
    
    if (rangeSize < this._minRangeSize) {
      // merge fragment ranges
      this.mergeRanges(holdingRange, readingRange);
    } else {
      if (holdingRange.end != -1) {
        // save the holding range list and hold the reading range
        this.splitAndSaveRanges(holdingRange, rangeList);
        holdingRange = readingRange;
      }
      
      if (this._dataOffset != readingRange.start) {
        // padding zero for empty range and hold the reading range 
        this.putZeroRange(this._dataOffset, readingRange.start - 1, rangeList);
        holdingRange = readingRange;
      } else if (holdingRange.end == -1) {
        // if holdingRange is never set, it means readingRange exceeds MIN_WRITE_FILE_SIZE_IN_BYTES
        this.splitAndSaveRanges(readingRange, rangeList);
        // reading range has been saved, offset the holding start position for calculating the range size in next loop
        holdingRange.start = readingRange.end + 1;
      }
    }
    
    // If it is the last range, put the holding range into list anyway
    if (index == ranges.length - 1 && holdingRange.end > holdingRange.start) {
      this.splitAndSaveRanges(holdingRange, rangeList);
    }
    
    this._dataOffset = readingRange.end + 1;
  }
};

/**
* Put a zero range into range list
*/
RangeStream.prototype.putZeroRange = function (startOffset, endOffset, rangeList) {
  var zeroDataRange = { type : 'range', size : -1, dataSize : 0, start : startOffset, end : endOffset };
  this.splitAndSaveRanges(zeroDataRange, rangeList);
};

/**
* Merge small ranges
*/
RangeStream.prototype.mergeRanges = function (holdingRange, readingRange) {
  holdingRange.size = readingRange.end - holdingRange.start + 1;
  holdingRange.dataSize += readingRange.dataSize;
  holdingRange.end = readingRange.end;
  return holdingRange;
};

/**
* Split range into small pieces with maximum _maxRangeSize and minimum _minRangeSize size.
* For example, [0, 10G - 1] => [0, 4MB - 1], [4MB, 8MB - 1] ... [10GB - 4MB, 10GB - 1]
*/
RangeStream.prototype.splitAndSaveRanges = function (range, rangeList) {
  var rangeSize = range.end - range.start + 1;
  var offset = range.start;
  var limitedSize = 0;

  while (rangeSize > 0) {
    var newRange = { type : 'range', size : 0, dataSize : 0, start : -1, end : -1 };
    limitedSize = Math.min(rangeSize, this._maxRangeSize);
    newRange.start = offset;
    newRange.size = limitedSize;
    if (range.dataSize === 0) {
      newRange.dataSize = 0;
    } else {
      newRange.dataSize = limitedSize;
    }
    offset += limitedSize;
    newRange.end = offset - 1;
    rangeList.push(newRange);
    rangeSize -= limitedSize;
  }
};

/**
* Emit a range
*/
RangeStream.prototype._emitRange = function () {
  if (this._paused || this._emittedAll || this._isEmitting) return;
  this._isEmitting = true;
  try {
    for (; this._emittedRangeIndex < this._rangelist.length; this._emittedRangeIndex++) {
      if (this._paused) {
        return;
      }
      var range = this._rangelist[this._emittedRangeIndex];
      this._emitter.emit('range', range);
      this._rangelist[this._emittedRangeIndex] = null;
    }
    
    if (this._rangeStreamEnded) {
      this._rangelist = null;
      this._emittedAll = true;
      this._emitter.emit('end');
    }
  } finally {
    this._isEmitting = false;
  }
};

/**
* The Default list function which puts the whole blob into one range.
*/
RangeStream.prototype._defaultListFunc = function (container, blob, optionsOrCallback, callback) {
  var options;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { options = o; callback = c; });
  
  this.getBlobProperties(container, blob, options, function (error, result, response) {
    if (error) {
      callback(error);
    } else {
      var range = [{}];
      range[0].start = options.rangeStart ? Math.max(options.rangeStart, 0) : 0;
      range[0].end = options.rangeEnd ? Math.min(options.rangeEnd, result.contentLength - 1) : result.contentLength - 1;
      range[0].size = range[0].end - range[0].start + 1;
      range[0].dataSize = range[0].size;
      callback(error, range, response);
    }
  });
};

/**
* Add event listener
*/
RangeStream.prototype.on = function (event, listener) {
  this._emitter.on(event, listener);
};

/**
* Pause the stream
*/
RangeStream.prototype.pause = function () {
  this._paused = true;
};

/**
* Resume the stream
*/
RangeStream.prototype.resume = function () {
  this._paused = false;
  if (!this._isEmitting) {
    this._emitRange();
  }
};

/**
* Stop the stream
*/
RangeStream.prototype.stop = function () {
  this.pause();
  this._emittedAll = true;
  this._emitter.emit('end');
};

module.exports = RangeStream;


/***/ }),
/* 609 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var Constants = __webpack_require__(275);
var HeaderConstants = Constants.HeaderConstants;

exports.parse = function (headers) {
  var accountPropertiesResult = {};

  if (headers[HeaderConstants.SKU_NAME]) {
    accountPropertiesResult.SkuName = headers[HeaderConstants.SKU_NAME];
  }

  if (headers[HeaderConstants.ACCOUNT_KIND]) {
    accountPropertiesResult.AccountKind = headers[HeaderConstants.ACCOUNT_KIND];
  }

  return accountPropertiesResult;
};

/***/ }),
/* 610 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var _ = __webpack_require__(271);

var azureCommon = __webpack_require__(272);
var xmlbuilder = azureCommon.xmlbuilder;
var Constants = azureCommon.Constants;

/**
* Builds an XML representation for a block list.
*
* @param  {array}  The block list.
* @return {string} The XML block list.
*/
exports.serialize = function (blockListJs) {
  var blockListDoc = xmlbuilder.create(Constants.BlobConstants.BLOCK_LIST_ELEMENT, { version: '1.0', encoding: 'utf-8' });

  if (_.isArray(blockListJs.LatestBlocks)) {
    blockListJs.LatestBlocks.forEach(function (block) {
      blockListDoc = blockListDoc.ele(Constants.BlobConstants.LATEST_ELEMENT)
        .txt(Buffer.from(block).toString('base64'))
        .up();
    });
  }

  if (_.isArray(blockListJs.CommittedBlocks)) {
    blockListJs.CommittedBlocks.forEach(function (block) {
      blockListDoc = blockListDoc.ele(Constants.BlobConstants.COMMITTED_ELEMENT)
        .txt(Buffer.from(block).toString('base64'))
        .up();
    });
  }

  if (_.isArray(blockListJs.UncommittedBlocks)) {
    blockListJs.UncommittedBlocks.forEach(function (block) {
      blockListDoc = blockListDoc.ele(Constants.BlobConstants.UNCOMMITTED_ELEMENT)
        .txt(Buffer.from(block).toString('base64'))
        .up();
    });
  }

  return blockListDoc.doc().toString();
};

exports.parse = function (blockListXml) {
  var blockListResult = {};

  if (blockListXml.CommittedBlocks && blockListXml.CommittedBlocks.Block) {
    blockListResult.CommittedBlocks = blockListXml.CommittedBlocks.Block;
    if (!_.isArray(blockListResult.CommittedBlocks)) {
      blockListResult.CommittedBlocks = [blockListResult.CommittedBlocks];
    }
    blockListResult.CommittedBlocks.forEach(function(block) {
      block.Name = Buffer.from(block.Name, 'base64').toString();
    });
  }

  if (blockListXml.UncommittedBlocks && blockListXml.UncommittedBlocks.Block) {
    blockListResult.UncommittedBlocks = blockListXml.UncommittedBlocks.Block;
    if (!_.isArray(blockListResult.UncommittedBlocks)) {
      blockListResult.UncommittedBlocks = [blockListResult.UncommittedBlocks];
    }
    blockListResult.UncommittedBlocks.forEach(function(block) {
      block.Name = Buffer.from(block.Name, 'base64').toString();
    });
  }

  return blockListResult;
};

/***/ }),
/* 611 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var _ = __webpack_require__(271);

var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var Constants = azureCommon.Constants;
var HeaderConstants = Constants.HeaderConstants;

/**
* Creates a new BlobResult object.
* @class
* The BlobResult class is used to store the blob information.
* 
 * @property  {string}                      container                             The container name.
 * @property  {string}                      name                                  The blob name.
 * @property  {object}                      metadata                              The metadata key/value pair.
 * @property  {string}                      etag                                  The etag.
 * @property  {string}                      lastModified                          The date/time that the blob was last modified.
 * @property  {string}                      contentLength                         The size of the blob in bytes.
 * @property  {string}                      blobType                              The blob type.
 * @property  {boolean}                     isIncrementalCopy                     If the blob is incremental copy blob.
 * @property  {string}                      requestId                             The request id.
 * @property  {string}                      sequenceNumber                        The current sequence number for a page blob.
 * @property  {string}                      contentRange                          The content range.
 * @property  {string}                      committedBlockCount                   The committed block count.
 * @property  {string}                      serverEncrypted                       If the blob data and application metadata are completely encrypted using the specified algorithm. true/false.
 * @property  {object}                      contentSettings                       The content settings.
 * @property  {string}                      contentSettings.contentType           The content type.
 * @property  {string}                      contentSettings.contentEncoding       The content encoding.
 * @property  {string}                      contentSettings.contentLanguage       The content language.
 * @property  {string}                      contentSettings.cacheControl          The cache control.
 * @property  {string}                      contentSettings.contentDisposition    The content disposition.
 * @property  {string}                      contentSettings.contentMD5            The content MD5 hash.
 * @property  {object}                      lease                                 The lease information.
 * @property  {string}                      lease.id                              The lease id.
 * @property  {string}                      lease.status                          The lease status.
 * @property  {string}                      lease.state                           The lease state.
 * @property  {string}                      lease.duration                        The lease duration.
 * @property  {object}                      copy                                  The copy information.
 * @property  {string}                      copy.id                               The copy id.
 * @property  {string}                      copy.status                           The copy status.
 * @property  {string}                      copy.completionTime                   The copy completion time. 
 * @property  {string}                      copy.statusDescription                The copy status description.
 * @property  {string}                      copy.destinationSnapshot              The snapshot time of the last successful incremental copy snapshot for this blob.
 * @property  {string}                      copy.progress                         The copy progress.
 * @property  {string}                      copy.source                           The copy source.
 * 
* @constructor
* @param {string} [container]  The container name.
* @param {string} [name]       The blob name.
*/
function BlobResult(container, name) {
  if (container) {
    this.container = container;
  }

  if (name) {
    this.name = name;
  }
}

BlobResult.parse = function (blobXml) {
  var blobResult = new BlobResult();
  
  for (var propertyName in blobXml) {
    if (blobXml.hasOwnProperty(propertyName)) {
      if (propertyName === 'Properties') {
        //  Lift out the properties onto the main object to keep consistent across all APIs like: getBlobProperties
        azureutil.setPropertyValueFromXML(blobResult, blobXml[propertyName], true);
      } else if (propertyName === 'Metadata') {
        var resultPropertyName = azureutil.normalizePropertyNameFromXML(propertyName);
        blobResult[resultPropertyName] = {};
        azureutil.setPropertyValueFromXML(blobResult[resultPropertyName], blobXml[propertyName], false);
      } else {
        blobResult[propertyName.toLowerCase()] = blobXml[propertyName];
      }
    }
  }

  if (blobResult.isIncrementalCopy !== undefined) {
    blobResult.isIncrementalCopy = (blobResult.isIncrementalCopy === 'true');
  }

  // convert accessTierInferred to boolean type
  if (blobResult.accessTierInferred !== undefined) {
    blobResult.accessTierInferred = (blobResult.accessTierInferred === 'true');
  }

  if (blobResult.deleted !== undefined) {
    blobResult.deleted = (blobResult.deleted == 'true');
  }

  if (blobResult.remainingRetentionDays !== undefined) {
    blobResult.remainingRetentionDays = parseInt(blobResult.remainingRetentionDays);
  }

  return blobResult;
};

var headersForProperties = {
  'lastModified': 'LAST_MODIFIED',
  'creationTime': 'CREATION_TIME',
  'etag': 'ETAG',
  'sequenceNumber': 'SEQUENCE_NUMBER',
  'blobType': 'BLOB_TYPE',
  'contentLength': 'CONTENT_LENGTH',
  'blobContentLength': 'BLOB_CONTENT_LENGTH',
  'contentRange': 'CONTENT_RANGE',
  'committedBlockCount': 'BLOB_COMMITTED_BLOCK_COUNT',
  'serverEncrypted': 'SERVER_ENCRYPTED',
  'requestId': 'REQUEST_ID',
  
  'range': 'RANGE',
  'blobRange': 'STORAGE_RANGE',
  'getContentMd5': 'RANGE_GET_CONTENT_MD5',
  'acceptRanges': 'ACCEPT_RANGES',
  'appendOffset': 'BLOB_APPEND_OFFSET',

  'accessTier': 'ACCESS_TIER',
  'accessTierChangeTime': 'ACCESS_TIER_CHANGE_TIME',  
  'accessTierInferred': 'ACCESS_TIER_INFERRED',
  'archiveStatus': 'ARCHIVE_STATUS',

  'isIncrementalCopy': 'INCREMENTAL_COPY',
  
  // ContentSettings
  'contentSettings.contentType': 'CONTENT_TYPE',
  'contentSettings.contentEncoding': 'CONTENT_ENCODING',
  'contentSettings.contentLanguage': 'CONTENT_LANGUAGE',
  'contentSettings.cacheControl': 'CACHE_CONTROL',
  'contentSettings.contentDisposition': 'CONTENT_DISPOSITION',
  'contentSettings.contentMD5': 'CONTENT_MD5',

  // Lease
  'lease.id': 'LEASE_ID',
  'lease.status': 'LEASE_STATUS',
  'lease.duration': 'LEASE_DURATION',
  'lease.state': 'LEASE_STATE',

  // Copy
  'copy.id': 'COPY_ID',
  'copy.status': 'COPY_STATUS',
  'copy.source': 'COPY_SOURCE',
  'copy.progress': 'COPY_PROGRESS',
  'copy.completionTime': 'COPY_COMPLETION_TIME',
  'copy.statusDescription': 'COPY_STATUS_DESCRIPTION',
  'copy.destinationSnapshot': 'COPY_DESTINATION_SNAPSHOT'
};

BlobResult.prototype.getPropertiesFromHeaders = function (headers) {
  var self = this;

  var setBlobPropertyFromHeaders = function (blobProperty, headerProperty) {
    if (!azureutil.tryGetValueChain(self, blobProperty.split('.'), null) && headers[headerProperty.toLowerCase()]) {
      azureutil.setObjectInnerPropertyValue(self, blobProperty.split('.'), headers[headerProperty.toLowerCase()]);
      
      if (blobProperty === 'copy.progress') {
        var info = azureutil.parseCopyProgress(self.copy.progress);
        self.copy.bytesCopied = parseInt(info.bytesCopied);
        self.copy.totalBytes = parseInt(info.totalBytes);
      }
    }
  };

  // For range get, 'x-ms-blob-content-md5' indicate the overall MD5 of the blob. Try to set the contentMD5 using this header if it presents
  setBlobPropertyFromHeaders('contentSettings.contentMD5', HeaderConstants.BLOB_CONTENT_MD5);
  
  _.chain(headersForProperties).pairs().each(function (pair) {
    var property = pair[0];
    var header = HeaderConstants[pair[1]];
    setBlobPropertyFromHeaders(property, header);
  });

  // convert isIncrementalCopy to boolean type
  if (self.isIncrementalCopy !== undefined) {
    self.isIncrementalCopy = (self.isIncrementalCopy === 'true');
  }

  // convert accessTierInferred to boolean type  
  if (self.accessTierInferred !== undefined) {
    self.accessTierInferred = (self.accessTierInferred == 'true');
  }
};

/**
* This method sets the HTTP headers and is used by all methods except setBlobProperties and commitBlocks. Those 2 methods will set the x-ms-* headers using setPropertiesFromBlob.
* @ignore
*/
BlobResult.setHeadersFromBlob = function (webResource, blob) {
  var setHeaderPropertyFromBlob = function (headerProperty, blobProperty) {
    var blobPropertyValue = azureutil.tryGetValueChain(blob, blobProperty.split('.'), null);
    if (blobPropertyValue) {
      webResource.withHeader(headerProperty, blobPropertyValue);
    }
  };

  if (blob) {
    // Content-Type
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CONTENT_TYPE, 'contentSettings.contentType');

    // Content-Encoding
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CONTENT_ENCODING, 'contentSettings.contentEncoding');

    // Content-Language
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CONTENT_LANGUAGE, 'contentSettings.contentLanguage');

    // Content-Disposition
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CONTENT_DISPOSITION, 'contentSettings.contentDisposition');

    // Cache-Control
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CACHE_CONTROL, 'contentSettings.cacheControl');

    // Blob's Content-MD5
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CONTENT_MD5, 'contentSettings.contentMD5');

    // Content-Length
    setHeaderPropertyFromBlob(HeaderConstants.CONTENT_LENGTH, 'contentLength');

    // transactional Content-MD5
    setHeaderPropertyFromBlob(HeaderConstants.CONTENT_MD5, 'transactionalContentMD5');

    // Range
    if (!azureutil.objectIsNull(blob.rangeStart)) {
      var range = 'bytes=' + blob.rangeStart + '-';

      if (!azureutil.objectIsNull(blob.rangeEnd)) {
        range += blob.rangeEnd;
      }

      webResource.withHeader(HeaderConstants.RANGE, range);
    }

    // Source Range
    if (!azureutil.objectIsNull(blob.sourceRangeStart)) {
      var sourceRange = 'bytes=' + blob.sourceRangeStart + '-';

      if (!azureutil.objectIsNull(blob.sourceRangeEnd)) {
        sourceRange += blob.sourceRangeEnd;
      }

      webResource.withHeader(HeaderConstants.SOURCE_RANGE, sourceRange);
    }

    // Blob Type
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_TYPE, 'blobType');

    // Lease id
    setHeaderPropertyFromBlob(HeaderConstants.LEASE_ID, 'leaseId');

    // Sequence number
    setHeaderPropertyFromBlob(HeaderConstants.SEQUENCE_NUMBER, 'sequenceNumber');
    setHeaderPropertyFromBlob(HeaderConstants.SEQUENCE_NUMBER_ACTION, 'sequenceNumberAction');

    if (blob.metadata) {
      webResource.addOptionalMetadataHeaders(blob.metadata);
    }
  }
};

/**
* This method sets the x-ms-* headers and is used by setBlobProperties and commitBlocks. All other methods will set the regular HTTP headers using setHeadersFromBlob.
* @ignore
*/
BlobResult.setPropertiesFromBlob = function (webResource, blob) {
  var setHeaderPropertyFromBlob = function (headerProperty, blobProperty) {
    var propertyValue = azureutil.tryGetValueChain(blob, blobProperty.split('.'), null);
    if (propertyValue) {
      webResource.withHeader(headerProperty, propertyValue);
    }
  };

  if (blob) {
    // Content-Type
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CONTENT_TYPE, 'contentSettings.contentType');

    // Content-Encoding
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CONTENT_ENCODING, 'contentSettings.contentEncoding');

    // Content-Language
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CONTENT_LANGUAGE, 'contentSettings.contentLanguage');

    // Content-Disposition
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CONTENT_DISPOSITION, 'contentSettings.contentDisposition');

    // Cache-Control
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CACHE_CONTROL, 'contentSettings.cacheControl');

    // Content-MD5
    setHeaderPropertyFromBlob(HeaderConstants.BLOB_CONTENT_MD5, 'contentSettings.contentMD5');

    // Lease id
    setHeaderPropertyFromBlob(HeaderConstants.LEASE_ID, 'leaseId');

    if (blob.metadata) {
      webResource.addOptionalMetadataHeaders(blob.metadata);
    }
  }
};

module.exports = BlobResult;


/***/ }),
/* 612 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var Constants = azureCommon.Constants;

var HeaderConstants = Constants.HeaderConstants;
var BlobUtilities = __webpack_require__(497);

/**
* Creates a new ContainerResult object.
* @class
* The ContainerResult class is used to store the container information.
* 
 * @property  {string}                      name                                  The container name.
 * @property  {string}                      publicAccessLevel                     The public access level.
 * @property  {object}                      metadata                              The metadata key/value pair.
 * @property  {string}                      etag                                  The etag.
 * @property  {string}                      lastModified                          The date/time that the container was last modified.
 * @property  {string}                      requestId                             The request id.
 * @property  {object}                      lease                                 The lease information.
 * @property  {string}                      lease.status                          The lease status.
 * @property  {string}                      lease.state                           The lease state.
 * @property  {string}                      lease.duration                        The lease duration.
 * 
* @constructor
* @param {string} [container]               The container name.
* @param {string} [publicAccessLevel]       The public access level.
*/
function ContainerResult(name, publicAccessLevel) {
  if (name) {
    this.name = name;
  }

  if (publicAccessLevel) {
    this.publicAccessLevel = publicAccessLevel;
  }
}

ContainerResult.parse = function (containerXml) {
  var containerResult = new ContainerResult();
  
  for (var propertyName in containerXml) {
    if (containerXml.hasOwnProperty(propertyName)) {
      if (propertyName === 'Properties') {
        //  Lift out the properties onto the main object to keep consistent across all APIs like: getContainerProperties
        azureutil.setPropertyValueFromXML(containerResult, containerXml[propertyName], true);
      } else if (propertyName === 'Metadata') {
        var resultPropertyName = azureutil.normalizePropertyNameFromXML(propertyName);
        containerResult[resultPropertyName] = {};
        azureutil.setPropertyValueFromXML(containerResult[resultPropertyName], containerXml[propertyName], false);
      } else {
        containerResult[propertyName.toLowerCase()] = containerXml[propertyName];
      }
    }
  }

  if (!containerResult.publicAccessLevel) {
    containerResult.publicAccessLevel = BlobUtilities.BlobContainerPublicAccessType.OFF;
  }

  // convert hasImmutabilityPolicy to boolean type
  if (containerResult.hasImmutabilityPolicy !== undefined) {
    containerResult.hasImmutabilityPolicy = (containerResult.hasImmutabilityPolicy === 'true');
  }

  // convert hasLegalHold to boolean type
  if (containerResult.hasLegalHold !== undefined) {
    containerResult.hasLegalHold = (containerResult.hasLegalHold === 'true');
  }

  return containerResult;
};

ContainerResult.prototype.getPropertiesFromHeaders = function (headers) {
  var self = this;
  
  var setContainerPropertyFromHeaders = function (containerProperty, headerProperty) {
    if (!azureutil.tryGetValueChain(self, containerProperty.split('.'), null) && headers[headerProperty.toLowerCase()]) {
      azureutil.setObjectInnerPropertyValue(self, containerProperty.split('.'), headers[headerProperty.toLowerCase()]);
    }
  };

  setContainerPropertyFromHeaders('etag', HeaderConstants.ETAG);
  setContainerPropertyFromHeaders('lastModified', HeaderConstants.LAST_MODIFIED);
  setContainerPropertyFromHeaders('lease.status', HeaderConstants.LEASE_STATUS);
  setContainerPropertyFromHeaders('lease.state', HeaderConstants.LEASE_STATE);
  setContainerPropertyFromHeaders('lease.duration', HeaderConstants.LEASE_DURATION);
  setContainerPropertyFromHeaders('requestId', HeaderConstants.REQUEST_ID);
  setContainerPropertyFromHeaders('hasImmutabilityPolicy', HeaderConstants.HAS_IMMUTABILITY_POLICY);
  setContainerPropertyFromHeaders('hasLegalHold', HeaderConstants.HAS_LEGAL_HOLD);

  // convert hasImmutabilityPolicy to boolean type
  if (self.hasImmutabilityPolicy !== undefined) {
    self.hasImmutabilityPolicy = (self.hasImmutabilityPolicy === 'true');
  }

  // convert hasLegalHold to boolean type
  if (self.hasLegalHold !== undefined) {
    self.hasLegalHold = (self.hasLegalHold === 'true');
  }

  if (!self.publicAccessLevel) {
    self.publicAccessLevel = BlobUtilities.BlobContainerPublicAccessType.OFF;
    if (headers[HeaderConstants.BLOB_PUBLIC_ACCESS]) {
      self.publicAccessLevel = headers[HeaderConstants.BLOB_PUBLIC_ACCESS];
    }
  }

  if (self.publicAccessLevel === 'true') {
    // The container was marked for full public read access using a version prior to 2009-09-19.
    self.publicAccessLevel = BlobUtilities.BlobContainerPublicAccessType.CONTAINER;
  }
};

/**
* The container ACL settings.
* @typedef    {object}                        ContainerAclResult
* @extends    {ContainerResult}
* @property   {Object.<string, AccessPolicy>}    signedIdentifiers   The container ACL settings. See `[AccessPolicy]{@link AccessPolicy}` for detailed information.
*/

module.exports = ContainerResult;

/***/ }),
/* 613 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var Constants = __webpack_require__(272).Constants;
var HeaderConstants = Constants.HeaderConstants;


/**
* Creates a new LeaseResult object.
* @class
* The LeaseResult class is used to store the lease information.
* 
 * @property  {string}                      container                         The container name.
 * @property  {string}                      blob                              The blob name.
 * @property  {string}                      id                                The lease id.
 * @property  {string}                      time                              Approximate time remaining in the lease period, in seconds.
 * @property  {string}                      etag                              The etag.
 * @property  {string}                      lastModified                      The date/time that the lease was last modified.
 * 
* @constructor
* @param {string} [container]               The container name.
* @param {string} [blob]                    The blob name.
* @param {string} [id]                      The lease id.
* @param {string} [time]                    Approximate time remaining in the lease period, in seconds.
*/
function LeaseResult(container, blob, id, time) {
  if (container) {
    this.container = container;
  }

  if (blob) {
    this.blob = blob;
  }

  if (id) {
    this.id = id;
  }

  if (time) {
    this.time = time;
  }
}

LeaseResult.prototype.getPropertiesFromHeaders = function (headers) {
  var self = this;

  if (!self['id'] && headers[HeaderConstants.LEASE_ID]) {
    self['id'] = headers[HeaderConstants.LEASE_ID];
  }

  if (!self['time'] && headers[HeaderConstants.LEASE_TIME]) {
    self['time'] = parseInt(headers[HeaderConstants.LEASE_TIME], 10);
  }

  self['etag'] = headers[HeaderConstants.ETAG];
  self['lastModified'] = headers[HeaderConstants.LAST_MODIFIED.toLowerCase()];
};

module.exports = LeaseResult;

/***/ }),
/* 614 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
//this file was generated

var mime = module.exports = {
    lookup: function (path, fallback) {
  var ext = path.replace(/.*[\.\/]/, '').toLowerCase();

  return this.types[ext] || fallback || this.default_type;
}
  , default_type: "application/octet-stream"
  , types: {
  "123": "application/vnd.lotus-1-2-3",
  "ez": "application/andrew-inset",
  "aw": "application/applixware",
  "atom": "application/atom+xml",
  "atomcat": "application/atomcat+xml",
  "atomsvc": "application/atomsvc+xml",
  "ccxml": "application/ccxml+xml",
  "cdmia": "application/cdmi-capability",
  "cdmic": "application/cdmi-container",
  "cdmid": "application/cdmi-domain",
  "cdmio": "application/cdmi-object",
  "cdmiq": "application/cdmi-queue",
  "cu": "application/cu-seeme",
  "davmount": "application/davmount+xml",
  "dbk": "application/docbook+xml",
  "dssc": "application/dssc+der",
  "xdssc": "application/dssc+xml",
  "ecma": "application/ecmascript",
  "emma": "application/emma+xml",
  "epub": "application/epub+zip",
  "exi": "application/exi",
  "pfr": "application/font-tdpfr",
  "gml": "application/gml+xml",
  "gpx": "application/gpx+xml",
  "gxf": "application/gxf",
  "stk": "application/hyperstudio",
  "ink": "application/inkml+xml",
  "inkml": "application/inkml+xml",
  "ipfix": "application/ipfix",
  "jar": "application/java-archive",
  "ser": "application/java-serialized-object",
  "class": "application/java-vm",
  "js": "application/javascript",
  "json": "application/json",
  "jsonml": "application/jsonml+json",
  "lostxml": "application/lost+xml",
  "hqx": "application/mac-binhex40",
  "cpt": "application/mac-compactpro",
  "mads": "application/mads+xml",
  "mrc": "application/marc",
  "mrcx": "application/marcxml+xml",
  "ma": "application/mathematica",
  "nb": "application/mathematica",
  "mb": "application/mathematica",
  "mathml": "application/mathml+xml",
  "mbox": "application/mbox",
  "mscml": "application/mediaservercontrol+xml",
  "metalink": "application/metalink+xml",
  "meta4": "application/metalink4+xml",
  "mets": "application/mets+xml",
  "mods": "application/mods+xml",
  "m21": "application/mp21",
  "mp21": "application/mp21",
  "mp4s": "application/mp4",
  "doc": "application/msword",
  "dot": "application/msword",
  "mxf": "application/mxf",
  "bin": "application/octet-stream",
  "dms": "application/octet-stream",
  "lrf": "application/octet-stream",
  "mar": "application/octet-stream",
  "so": "application/octet-stream",
  "dist": "application/octet-stream",
  "distz": "application/octet-stream",
  "pkg": "application/octet-stream",
  "bpk": "application/octet-stream",
  "dump": "application/octet-stream",
  "elc": "application/octet-stream",
  "deploy": "application/octet-stream",
  "oda": "application/oda",
  "opf": "application/oebps-package+xml",
  "ogx": "application/ogg",
  "omdoc": "application/omdoc+xml",
  "onetoc": "application/onenote",
  "onetoc2": "application/onenote",
  "onetmp": "application/onenote",
  "onepkg": "application/onenote",
  "oxps": "application/oxps",
  "xer": "application/patch-ops-error+xml",
  "pdf": "application/pdf",
  "pgp": "application/pgp-encrypted",
  "asc": "application/pgp-signature",
  "sig": "application/pgp-signature",
  "prf": "application/pics-rules",
  "p10": "application/pkcs10",
  "p7m": "application/pkcs7-mime",
  "p7c": "application/pkcs7-mime",
  "p7s": "application/pkcs7-signature",
  "p8": "application/pkcs8",
  "ac": "application/pkix-attr-cert",
  "cer": "application/pkix-cert",
  "crl": "application/pkix-crl",
  "pkipath": "application/pkix-pkipath",
  "pki": "application/pkixcmp",
  "pls": "application/pls+xml",
  "ai": "application/postscript",
  "eps": "application/postscript",
  "ps": "application/postscript",
  "cww": "application/prs.cww",
  "pskcxml": "application/pskc+xml",
  "rdf": "application/rdf+xml",
  "rif": "application/reginfo+xml",
  "rnc": "application/relax-ng-compact-syntax",
  "rl": "application/resource-lists+xml",
  "rld": "application/resource-lists-diff+xml",
  "rs": "application/rls-services+xml",
  "gbr": "application/rpki-ghostbusters",
  "mft": "application/rpki-manifest",
  "roa": "application/rpki-roa",
  "rsd": "application/rsd+xml",
  "rss": "application/rss+xml",
  "rtf": "application/rtf",
  "sbml": "application/sbml+xml",
  "scq": "application/scvp-cv-request",
  "scs": "application/scvp-cv-response",
  "spq": "application/scvp-vp-request",
  "spp": "application/scvp-vp-response",
  "sdp": "application/sdp",
  "setpay": "application/set-payment-initiation",
  "setreg": "application/set-registration-initiation",
  "shf": "application/shf+xml",
  "smi": "application/smil+xml",
  "smil": "application/smil+xml",
  "rq": "application/sparql-query",
  "srx": "application/sparql-results+xml",
  "gram": "application/srgs",
  "grxml": "application/srgs+xml",
  "sru": "application/sru+xml",
  "ssdl": "application/ssdl+xml",
  "ssml": "application/ssml+xml",
  "tei": "application/tei+xml",
  "teicorpus": "application/tei+xml",
  "tfi": "application/thraud+xml",
  "tsd": "application/timestamped-data",
  "plb": "application/vnd.3gpp.pic-bw-large",
  "psb": "application/vnd.3gpp.pic-bw-small",
  "pvb": "application/vnd.3gpp.pic-bw-var",
  "tcap": "application/vnd.3gpp2.tcap",
  "pwn": "application/vnd.3m.post-it-notes",
  "aso": "application/vnd.accpac.simply.aso",
  "imp": "application/vnd.accpac.simply.imp",
  "acu": "application/vnd.acucobol",
  "atc": "application/vnd.acucorp",
  "acutc": "application/vnd.acucorp",
  "air": "application/vnd.adobe.air-application-installer-package+zip",
  "fcdt": "application/vnd.adobe.formscentral.fcdt",
  "fxp": "application/vnd.adobe.fxp",
  "fxpl": "application/vnd.adobe.fxp",
  "xdp": "application/vnd.adobe.xdp+xml",
  "xfdf": "application/vnd.adobe.xfdf",
  "ahead": "application/vnd.ahead.space",
  "azf": "application/vnd.airzip.filesecure.azf",
  "azs": "application/vnd.airzip.filesecure.azs",
  "azw": "application/vnd.amazon.ebook",
  "acc": "application/vnd.americandynamics.acc",
  "ami": "application/vnd.amiga.ami",
  "apk": "application/vnd.android.package-archive",
  "cii": "application/vnd.anser-web-certificate-issue-initiation",
  "fti": "application/vnd.anser-web-funds-transfer-initiation",
  "atx": "application/vnd.antix.game-component",
  "mpkg": "application/vnd.apple.installer+xml",
  "m3u8": "application/vnd.apple.mpegurl",
  "swi": "application/vnd.aristanetworks.swi",
  "iota": "application/vnd.astraea-software.iota",
  "aep": "application/vnd.audiograph",
  "mpm": "application/vnd.blueice.multipass",
  "bmi": "application/vnd.bmi",
  "rep": "application/vnd.businessobjects",
  "cdxml": "application/vnd.chemdraw+xml",
  "mmd": "application/vnd.chipnuts.karaoke-mmd",
  "cdy": "application/vnd.cinderella",
  "cla": "application/vnd.claymore",
  "rp9": "application/vnd.cloanto.rp9",
  "c4g": "application/vnd.clonk.c4group",
  "c4d": "application/vnd.clonk.c4group",
  "c4f": "application/vnd.clonk.c4group",
  "c4p": "application/vnd.clonk.c4group",
  "c4u": "application/vnd.clonk.c4group",
  "c11amc": "application/vnd.cluetrust.cartomobile-config",
  "c11amz": "application/vnd.cluetrust.cartomobile-config-pkg",
  "csp": "application/vnd.commonspace",
  "cdbcmsg": "application/vnd.contact.cmsg",
  "cmc": "application/vnd.cosmocaller",
  "clkx": "application/vnd.crick.clicker",
  "clkk": "application/vnd.crick.clicker.keyboard",
  "clkp": "application/vnd.crick.clicker.palette",
  "clkt": "application/vnd.crick.clicker.template",
  "clkw": "application/vnd.crick.clicker.wordbank",
  "wbs": "application/vnd.criticaltools.wbs+xml",
  "pml": "application/vnd.ctc-posml",
  "ppd": "application/vnd.cups-ppd",
  "car": "application/vnd.curl.car",
  "pcurl": "application/vnd.curl.pcurl",
  "dart": "application/vnd.dart",
  "rdz": "application/vnd.data-vision.rdz",
  "uvf": "application/vnd.dece.data",
  "uvvf": "application/vnd.dece.data",
  "uvd": "application/vnd.dece.data",
  "uvvd": "application/vnd.dece.data",
  "uvt": "application/vnd.dece.ttml+xml",
  "uvvt": "application/vnd.dece.ttml+xml",
  "uvx": "application/vnd.dece.unspecified",
  "uvvx": "application/vnd.dece.unspecified",
  "uvz": "application/vnd.dece.zip",
  "uvvz": "application/vnd.dece.zip",
  "fe_launch": "application/vnd.denovo.fcselayout-link",
  "dna": "application/vnd.dna",
  "mlp": "application/vnd.dolby.mlp",
  "dpg": "application/vnd.dpgraph",
  "dfac": "application/vnd.dreamfactory",
  "kpxx": "application/vnd.ds-keypoint",
  "ait": "application/vnd.dvb.ait",
  "svc": "application/vnd.dvb.service",
  "geo": "application/vnd.dynageo",
  "mag": "application/vnd.ecowin.chart",
  "nml": "application/vnd.enliven",
  "esf": "application/vnd.epson.esf",
  "msf": "application/vnd.epson.msf",
  "qam": "application/vnd.epson.quickanime",
  "slt": "application/vnd.epson.salt",
  "ssf": "application/vnd.epson.ssf",
  "es3": "application/vnd.eszigno3+xml",
  "et3": "application/vnd.eszigno3+xml",
  "ez2": "application/vnd.ezpix-album",
  "ez3": "application/vnd.ezpix-package",
  "fdf": "application/vnd.fdf",
  "mseed": "application/vnd.fdsn.mseed",
  "seed": "application/vnd.fdsn.seed",
  "dataless": "application/vnd.fdsn.seed",
  "gph": "application/vnd.flographit",
  "ftc": "application/vnd.fluxtime.clip",
  "fm": "application/vnd.framemaker",
  "frame": "application/vnd.framemaker",
  "maker": "application/vnd.framemaker",
  "book": "application/vnd.framemaker",
  "fnc": "application/vnd.frogans.fnc",
  "ltf": "application/vnd.frogans.ltf",
  "fsc": "application/vnd.fsc.weblaunch",
  "oas": "application/vnd.fujitsu.oasys",
  "oa2": "application/vnd.fujitsu.oasys2",
  "oa3": "application/vnd.fujitsu.oasys3",
  "fg5": "application/vnd.fujitsu.oasysgp",
  "bh2": "application/vnd.fujitsu.oasysprs",
  "ddd": "application/vnd.fujixerox.ddd",
  "xdw": "application/vnd.fujixerox.docuworks",
  "xbd": "application/vnd.fujixerox.docuworks.binder",
  "fzs": "application/vnd.fuzzysheet",
  "txd": "application/vnd.genomatix.tuxedo",
  "ggb": "application/vnd.geogebra.file",
  "ggt": "application/vnd.geogebra.tool",
  "gex": "application/vnd.geometry-explorer",
  "gre": "application/vnd.geometry-explorer",
  "gxt": "application/vnd.geonext",
  "g2w": "application/vnd.geoplan",
  "g3w": "application/vnd.geospace",
  "gmx": "application/vnd.gmx",
  "kml": "application/vnd.google-earth.kml+xml",
  "kmz": "application/vnd.google-earth.kmz",
  "gqf": "application/vnd.grafeq",
  "gqs": "application/vnd.grafeq",
  "gac": "application/vnd.groove-account",
  "ghf": "application/vnd.groove-help",
  "gim": "application/vnd.groove-identity-message",
  "grv": "application/vnd.groove-injector",
  "gtm": "application/vnd.groove-tool-message",
  "tpl": "application/vnd.groove-tool-template",
  "vcg": "application/vnd.groove-vcard",
  "hal": "application/vnd.hal+xml",
  "zmm": "application/vnd.handheld-entertainment+xml",
  "hbci": "application/vnd.hbci",
  "les": "application/vnd.hhe.lesson-player",
  "hpgl": "application/vnd.hp-hpgl",
  "hpid": "application/vnd.hp-hpid",
  "hps": "application/vnd.hp-hps",
  "jlt": "application/vnd.hp-jlyt",
  "pcl": "application/vnd.hp-pcl",
  "pclxl": "application/vnd.hp-pclxl",
  "sfd-hdstx": "application/vnd.hydrostatix.sof-data",
  "mpy": "application/vnd.ibm.minipay",
  "afp": "application/vnd.ibm.modcap",
  "listafp": "application/vnd.ibm.modcap",
  "list3820": "application/vnd.ibm.modcap",
  "irm": "application/vnd.ibm.rights-management",
  "sc": "application/vnd.ibm.secure-container",
  "icc": "application/vnd.iccprofile",
  "icm": "application/vnd.iccprofile",
  "igl": "application/vnd.igloader",
  "ivp": "application/vnd.immervision-ivp",
  "ivu": "application/vnd.immervision-ivu",
  "igm": "application/vnd.insors.igm",
  "xpw": "application/vnd.intercon.formnet",
  "xpx": "application/vnd.intercon.formnet",
  "i2g": "application/vnd.intergeo",
  "qbo": "application/vnd.intu.qbo",
  "qfx": "application/vnd.intu.qfx",
  "rcprofile": "application/vnd.ipunplugged.rcprofile",
  "irp": "application/vnd.irepository.package+xml",
  "xpr": "application/vnd.is-xpr",
  "fcs": "application/vnd.isac.fcs",
  "jam": "application/vnd.jam",
  "rms": "application/vnd.jcp.javame.midlet-rms",
  "jisp": "application/vnd.jisp",
  "joda": "application/vnd.joost.joda-archive",
  "ktz": "application/vnd.kahootz",
  "ktr": "application/vnd.kahootz",
  "karbon": "application/vnd.kde.karbon",
  "chrt": "application/vnd.kde.kchart",
  "kfo": "application/vnd.kde.kformula",
  "flw": "application/vnd.kde.kivio",
  "kon": "application/vnd.kde.kontour",
  "kpr": "application/vnd.kde.kpresenter",
  "kpt": "application/vnd.kde.kpresenter",
  "ksp": "application/vnd.kde.kspread",
  "kwd": "application/vnd.kde.kword",
  "kwt": "application/vnd.kde.kword",
  "htke": "application/vnd.kenameaapp",
  "kia": "application/vnd.kidspiration",
  "kne": "application/vnd.kinar",
  "knp": "application/vnd.kinar",
  "skp": "application/vnd.koan",
  "skd": "application/vnd.koan",
  "skt": "application/vnd.koan",
  "skm": "application/vnd.koan",
  "sse": "application/vnd.kodak-descriptor",
  "lasxml": "application/vnd.las.las+xml",
  "lbd": "application/vnd.llamagraphics.life-balance.desktop",
  "lbe": "application/vnd.llamagraphics.life-balance.exchange+xml",
  "apr": "application/vnd.lotus-approach",
  "pre": "application/vnd.lotus-freelance",
  "nsf": "application/vnd.lotus-notes",
  "org": "application/vnd.lotus-organizer",
  "scm": "application/vnd.lotus-screencam",
  "lwp": "application/vnd.lotus-wordpro",
  "portpkg": "application/vnd.macports.portpkg",
  "mcd": "application/vnd.mcd",
  "mc1": "application/vnd.medcalcdata",
  "cdkey": "application/vnd.mediastation.cdkey",
  "mwf": "application/vnd.mfer",
  "mfm": "application/vnd.mfmp",
  "flo": "application/vnd.micrografx.flo",
  "igx": "application/vnd.micrografx.igx",
  "mif": "application/vnd.mif",
  "daf": "application/vnd.mobius.daf",
  "dis": "application/vnd.mobius.dis",
  "mbk": "application/vnd.mobius.mbk",
  "mqy": "application/vnd.mobius.mqy",
  "msl": "application/vnd.mobius.msl",
  "plc": "application/vnd.mobius.plc",
  "txf": "application/vnd.mobius.txf",
  "mpn": "application/vnd.mophun.application",
  "mpc": "application/vnd.mophun.certificate",
  "xul": "application/vnd.mozilla.xul+xml",
  "cil": "application/vnd.ms-artgalry",
  "cab": "application/vnd.ms-cab-compressed",
  "xls": "application/vnd.ms-excel",
  "xlm": "application/vnd.ms-excel",
  "xla": "application/vnd.ms-excel",
  "xlc": "application/vnd.ms-excel",
  "xlt": "application/vnd.ms-excel",
  "xlw": "application/vnd.ms-excel",
  "xlam": "application/vnd.ms-excel.addin.macroenabled.12",
  "xlsb": "application/vnd.ms-excel.sheet.binary.macroenabled.12",
  "xlsm": "application/vnd.ms-excel.sheet.macroenabled.12",
  "xltm": "application/vnd.ms-excel.template.macroenabled.12",
  "eot": "application/vnd.ms-fontobject",
  "chm": "application/vnd.ms-htmlhelp",
  "ims": "application/vnd.ms-ims",
  "lrm": "application/vnd.ms-lrm",
  "thmx": "application/vnd.ms-officetheme",
  "cat": "application/vnd.ms-pki.seccat",
  "stl": "application/vnd.ms-pki.stl",
  "ppt": "application/vnd.ms-powerpoint",
  "pps": "application/vnd.ms-powerpoint",
  "pot": "application/vnd.ms-powerpoint",
  "ppam": "application/vnd.ms-powerpoint.addin.macroenabled.12",
  "pptm": "application/vnd.ms-powerpoint.presentation.macroenabled.12",
  "sldm": "application/vnd.ms-powerpoint.slide.macroenabled.12",
  "ppsm": "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
  "potm": "application/vnd.ms-powerpoint.template.macroenabled.12",
  "mpp": "application/vnd.ms-project",
  "mpt": "application/vnd.ms-project",
  "docm": "application/vnd.ms-word.document.macroenabled.12",
  "dotm": "application/vnd.ms-word.template.macroenabled.12",
  "wps": "application/vnd.ms-works",
  "wks": "application/vnd.ms-works",
  "wcm": "application/vnd.ms-works",
  "wdb": "application/vnd.ms-works",
  "wpl": "application/vnd.ms-wpl",
  "xps": "application/vnd.ms-xpsdocument",
  "mseq": "application/vnd.mseq",
  "mus": "application/vnd.musician",
  "msty": "application/vnd.muvee.style",
  "taglet": "application/vnd.mynfc",
  "nlu": "application/vnd.neurolanguage.nlu",
  "ntf": "application/vnd.nitf",
  "nitf": "application/vnd.nitf",
  "nnd": "application/vnd.noblenet-directory",
  "nns": "application/vnd.noblenet-sealer",
  "nnw": "application/vnd.noblenet-web",
  "ngdat": "application/vnd.nokia.n-gage.data",
  "n-gage": "application/vnd.nokia.n-gage.symbian.install",
  "rpst": "application/vnd.nokia.radio-preset",
  "rpss": "application/vnd.nokia.radio-presets",
  "edm": "application/vnd.novadigm.edm",
  "edx": "application/vnd.novadigm.edx",
  "ext": "application/vnd.novadigm.ext",
  "odc": "application/vnd.oasis.opendocument.chart",
  "otc": "application/vnd.oasis.opendocument.chart-template",
  "odb": "application/vnd.oasis.opendocument.database",
  "odf": "application/vnd.oasis.opendocument.formula",
  "odft": "application/vnd.oasis.opendocument.formula-template",
  "odg": "application/vnd.oasis.opendocument.graphics",
  "otg": "application/vnd.oasis.opendocument.graphics-template",
  "odi": "application/vnd.oasis.opendocument.image",
  "oti": "application/vnd.oasis.opendocument.image-template",
  "odp": "application/vnd.oasis.opendocument.presentation",
  "otp": "application/vnd.oasis.opendocument.presentation-template",
  "ods": "application/vnd.oasis.opendocument.spreadsheet",
  "ots": "application/vnd.oasis.opendocument.spreadsheet-template",
  "odt": "application/vnd.oasis.opendocument.text",
  "odm": "application/vnd.oasis.opendocument.text-master",
  "ott": "application/vnd.oasis.opendocument.text-template",
  "oth": "application/vnd.oasis.opendocument.text-web",
  "xo": "application/vnd.olpc-sugar",
  "dd2": "application/vnd.oma.dd2+xml",
  "oxt": "application/vnd.openofficeorg.extension",
  "pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
  "sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide",
  "ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
  "potx": "application/vnd.openxmlformats-officedocument.presentationml.template",
  "xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
  "xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
  "docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
  "dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
  "mgp": "application/vnd.osgeo.mapguide.package",
  "dp": "application/vnd.osgi.dp",
  "esa": "application/vnd.osgi.subsystem",
  "pdb": "application/vnd.palm",
  "pqa": "application/vnd.palm",
  "oprc": "application/vnd.palm",
  "paw": "application/vnd.pawaafile",
  "str": "application/vnd.pg.format",
  "ei6": "application/vnd.pg.osasli",
  "efif": "application/vnd.picsel",
  "wg": "application/vnd.pmi.widget",
  "plf": "application/vnd.pocketlearn",
  "pbd": "application/vnd.powerbuilder6",
  "box": "application/vnd.previewsystems.box",
  "mgz": "application/vnd.proteus.magazine",
  "qps": "application/vnd.publishare-delta-tree",
  "ptid": "application/vnd.pvi.ptid1",
  "qxd": "application/vnd.quark.quarkxpress",
  "qxt": "application/vnd.quark.quarkxpress",
  "qwd": "application/vnd.quark.quarkxpress",
  "qwt": "application/vnd.quark.quarkxpress",
  "qxl": "application/vnd.quark.quarkxpress",
  "qxb": "application/vnd.quark.quarkxpress",
  "bed": "application/vnd.realvnc.bed",
  "mxl": "application/vnd.recordare.musicxml",
  "musicxml": "application/vnd.recordare.musicxml+xml",
  "cryptonote": "application/vnd.rig.cryptonote",
  "cod": "application/vnd.rim.cod",
  "rm": "application/vnd.rn-realmedia",
  "rmvb": "application/vnd.rn-realmedia-vbr",
  "link66": "application/vnd.route66.link66+xml",
  "st": "application/vnd.sailingtracker.track",
  "see": "application/vnd.seemail",
  "sema": "application/vnd.sema",
  "semd": "application/vnd.semd",
  "semf": "application/vnd.semf",
  "ifm": "application/vnd.shana.informed.formdata",
  "itp": "application/vnd.shana.informed.formtemplate",
  "iif": "application/vnd.shana.informed.interchange",
  "ipk": "application/vnd.shana.informed.package",
  "twd": "application/vnd.simtech-mindmapper",
  "twds": "application/vnd.simtech-mindmapper",
  "mmf": "application/vnd.smaf",
  "teacher": "application/vnd.smart.teacher",
  "sdkm": "application/vnd.solent.sdkm+xml",
  "sdkd": "application/vnd.solent.sdkm+xml",
  "dxp": "application/vnd.spotfire.dxp",
  "sfs": "application/vnd.spotfire.sfs",
  "sdc": "application/vnd.stardivision.calc",
  "sda": "application/vnd.stardivision.draw",
  "sdd": "application/vnd.stardivision.impress",
  "smf": "application/vnd.stardivision.math",
  "sdw": "application/vnd.stardivision.writer",
  "vor": "application/vnd.stardivision.writer",
  "sgl": "application/vnd.stardivision.writer-global",
  "smzip": "application/vnd.stepmania.package",
  "sm": "application/vnd.stepmania.stepchart",
  "sxc": "application/vnd.sun.xml.calc",
  "stc": "application/vnd.sun.xml.calc.template",
  "sxd": "application/vnd.sun.xml.draw",
  "std": "application/vnd.sun.xml.draw.template",
  "sxi": "application/vnd.sun.xml.impress",
  "sti": "application/vnd.sun.xml.impress.template",
  "sxm": "application/vnd.sun.xml.math",
  "sxw": "application/vnd.sun.xml.writer",
  "sxg": "application/vnd.sun.xml.writer.global",
  "stw": "application/vnd.sun.xml.writer.template",
  "sus": "application/vnd.sus-calendar",
  "susp": "application/vnd.sus-calendar",
  "svd": "application/vnd.svd",
  "sis": "application/vnd.symbian.install",
  "sisx": "application/vnd.symbian.install",
  "xsm": "application/vnd.syncml+xml",
  "bdm": "application/vnd.syncml.dm+wbxml",
  "xdm": "application/vnd.syncml.dm+xml",
  "tao": "application/vnd.tao.intent-module-archive",
  "pcap": "application/vnd.tcpdump.pcap",
  "cap": "application/vnd.tcpdump.pcap",
  "dmp": "application/vnd.tcpdump.pcap",
  "tmo": "application/vnd.tmobile-livetv",
  "tpt": "application/vnd.trid.tpt",
  "mxs": "application/vnd.triscape.mxs",
  "tra": "application/vnd.trueapp",
  "ufd": "application/vnd.ufdl",
  "ufdl": "application/vnd.ufdl",
  "utz": "application/vnd.uiq.theme",
  "umj": "application/vnd.umajin",
  "unityweb": "application/vnd.unity",
  "uoml": "application/vnd.uoml+xml",
  "vcx": "application/vnd.vcx",
  "vsd": "application/vnd.visio",
  "vst": "application/vnd.visio",
  "vss": "application/vnd.visio",
  "vsw": "application/vnd.visio",
  "vis": "application/vnd.visionary",
  "vsf": "application/vnd.vsf",
  "wbxml": "application/vnd.wap.wbxml",
  "wmlc": "application/vnd.wap.wmlc",
  "wmlsc": "application/vnd.wap.wmlscriptc",
  "wtb": "application/vnd.webturbo",
  "nbp": "application/vnd.wolfram.player",
  "wpd": "application/vnd.wordperfect",
  "wqd": "application/vnd.wqd",
  "stf": "application/vnd.wt.stf",
  "xar": "application/vnd.xara",
  "xfdl": "application/vnd.xfdl",
  "hvd": "application/vnd.yamaha.hv-dic",
  "hvs": "application/vnd.yamaha.hv-script",
  "hvp": "application/vnd.yamaha.hv-voice",
  "osf": "application/vnd.yamaha.openscoreformat",
  "osfpvg": "application/vnd.yamaha.openscoreformat.osfpvg+xml",
  "saf": "application/vnd.yamaha.smaf-audio",
  "spf": "application/vnd.yamaha.smaf-phrase",
  "cmp": "application/vnd.yellowriver-custom-menu",
  "zir": "application/vnd.zul",
  "zirz": "application/vnd.zul",
  "zaz": "application/vnd.zzazz.deck+xml",
  "vxml": "application/voicexml+xml",
  "wgt": "application/widget",
  "hlp": "application/winhlp",
  "wsdl": "application/wsdl+xml",
  "wspolicy": "application/wspolicy+xml",
  "7z": "application/x-7z-compressed",
  "abw": "application/x-abiword",
  "ace": "application/x-ace-compressed",
  "dmg": "application/x-apple-diskimage",
  "aab": "application/x-authorware-bin",
  "x32": "application/x-authorware-bin",
  "u32": "application/x-authorware-bin",
  "vox": "application/x-authorware-bin",
  "aam": "application/x-authorware-map",
  "aas": "application/x-authorware-seg",
  "bcpio": "application/x-bcpio",
  "torrent": "application/x-bittorrent",
  "blb": "application/x-blorb",
  "blorb": "application/x-blorb",
  "bz": "application/x-bzip",
  "bz2": "application/x-bzip2",
  "boz": "application/x-bzip2",
  "cbr": "application/x-cbr",
  "cba": "application/x-cbr",
  "cbt": "application/x-cbr",
  "cbz": "application/x-cbr",
  "cb7": "application/x-cbr",
  "vcd": "application/x-cdlink",
  "cfs": "application/x-cfs-compressed",
  "chat": "application/x-chat",
  "pgn": "application/x-chess-pgn",
  "nsc": "application/x-conference",
  "cpio": "application/x-cpio",
  "csh": "application/x-csh",
  "deb": "application/x-debian-package",
  "udeb": "application/x-debian-package",
  "dgc": "application/x-dgc-compressed",
  "dir": "application/x-director",
  "dcr": "application/x-director",
  "dxr": "application/x-director",
  "cst": "application/x-director",
  "cct": "application/x-director",
  "cxt": "application/x-director",
  "w3d": "application/x-director",
  "fgd": "application/x-director",
  "swa": "application/x-director",
  "wad": "application/x-doom",
  "ncx": "application/x-dtbncx+xml",
  "dtb": "application/x-dtbook+xml",
  "res": "application/x-dtbresource+xml",
  "dvi": "application/x-dvi",
  "evy": "application/x-envoy",
  "eva": "application/x-eva",
  "bdf": "application/x-font-bdf",
  "gsf": "application/x-font-ghostscript",
  "psf": "application/x-font-linux-psf",
  "otf": "application/x-font-otf",
  "pcf": "application/x-font-pcf",
  "snf": "application/x-font-snf",
  "ttf": "application/x-font-ttf",
  "ttc": "application/x-font-ttf",
  "pfa": "application/x-font-type1",
  "pfb": "application/x-font-type1",
  "pfm": "application/x-font-type1",
  "afm": "application/x-font-type1",
  "woff": "application/x-font-woff",
  "arc": "application/x-freearc",
  "spl": "application/x-futuresplash",
  "gca": "application/x-gca-compressed",
  "ulx": "application/x-glulx",
  "gnumeric": "application/x-gnumeric",
  "gramps": "application/x-gramps-xml",
  "gtar": "application/x-gtar",
  "hdf": "application/x-hdf",
  "install": "application/x-install-instructions",
  "iso": "application/x-iso9660-image",
  "jnlp": "application/x-java-jnlp-file",
  "latex": "application/x-latex",
  "lzh": "application/x-lzh-compressed",
  "lha": "application/x-lzh-compressed",
  "mie": "application/x-mie",
  "prc": "application/x-mobipocket-ebook",
  "mobi": "application/x-mobipocket-ebook",
  "application": "application/x-ms-application",
  "lnk": "application/x-ms-shortcut",
  "wmd": "application/x-ms-wmd",
  "wmz": "application/x-msmetafile",
  "xbap": "application/x-ms-xbap",
  "mdb": "application/x-msaccess",
  "obd": "application/x-msbinder",
  "crd": "application/x-mscardfile",
  "clp": "application/x-msclip",
  "exe": "application/x-msdownload",
  "dll": "application/x-msdownload",
  "com": "application/x-msdownload",
  "bat": "application/x-msdownload",
  "msi": "application/x-msdownload",
  "mvb": "application/x-msmediaview",
  "m13": "application/x-msmediaview",
  "m14": "application/x-msmediaview",
  "wmf": "application/x-msmetafile",
  "emf": "application/x-msmetafile",
  "emz": "application/x-msmetafile",
  "mny": "application/x-msmoney",
  "pub": "application/x-mspublisher",
  "scd": "application/x-msschedule",
  "trm": "application/x-msterminal",
  "wri": "application/x-mswrite",
  "nc": "application/x-netcdf",
  "cdf": "application/x-netcdf",
  "nzb": "application/x-nzb",
  "p12": "application/x-pkcs12",
  "pfx": "application/x-pkcs12",
  "p7b": "application/x-pkcs7-certificates",
  "spc": "application/x-pkcs7-certificates",
  "p7r": "application/x-pkcs7-certreqresp",
  "rar": "application/x-rar-compressed",
  "ris": "application/x-research-info-systems",
  "sh": "application/x-sh",
  "shar": "application/x-shar",
  "swf": "application/x-shockwave-flash",
  "xap": "application/x-silverlight-app",
  "sql": "application/x-sql",
  "sit": "application/x-stuffit",
  "sitx": "application/x-stuffitx",
  "srt": "application/x-subrip",
  "sv4cpio": "application/x-sv4cpio",
  "sv4crc": "application/x-sv4crc",
  "t3": "application/x-t3vm-image",
  "gam": "application/x-tads",
  "tar": "application/x-tar",
  "tcl": "application/x-tcl",
  "tex": "application/x-tex",
  "tfm": "application/x-tex-tfm",
  "texinfo": "application/x-texinfo",
  "texi": "application/x-texinfo",
  "obj": "application/x-tgif",
  "ustar": "application/x-ustar",
  "src": "application/x-wais-source",
  "der": "application/x-x509-ca-cert",
  "crt": "application/x-x509-ca-cert",
  "fig": "application/x-xfig",
  "xlf": "application/x-xliff+xml",
  "xpi": "application/x-xpinstall",
  "xz": "application/x-xz",
  "z1": "application/x-zmachine",
  "z2": "application/x-zmachine",
  "z3": "application/x-zmachine",
  "z4": "application/x-zmachine",
  "z5": "application/x-zmachine",
  "z6": "application/x-zmachine",
  "z7": "application/x-zmachine",
  "z8": "application/x-zmachine",
  "xaml": "application/xaml+xml",
  "xdf": "application/xcap-diff+xml",
  "xenc": "application/xenc+xml",
  "xhtml": "application/xhtml+xml",
  "xht": "application/xhtml+xml",
  "xml": "application/xml",
  "xsl": "application/xml",
  "dtd": "application/xml-dtd",
  "xop": "application/xop+xml",
  "xpl": "application/xproc+xml",
  "xslt": "application/xslt+xml",
  "xspf": "application/xspf+xml",
  "mxml": "application/xv+xml",
  "xhvml": "application/xv+xml",
  "xvml": "application/xv+xml",
  "xvm": "application/xv+xml",
  "yang": "application/yang",
  "yin": "application/yin+xml",
  "zip": "application/zip",
  "adp": "audio/adpcm",
  "au": "audio/basic",
  "snd": "audio/basic",
  "mid": "audio/midi",
  "midi": "audio/midi",
  "kar": "audio/midi",
  "rmi": "audio/midi",
  "mp4a": "audio/mp4",
  "mpga": "audio/mpeg",
  "mp2": "audio/mpeg",
  "mp2a": "audio/mpeg",
  "mp3": "audio/mpeg",
  "m2a": "audio/mpeg",
  "m3a": "audio/mpeg",
  "oga": "audio/ogg",
  "ogg": "audio/ogg",
  "spx": "audio/ogg",
  "s3m": "audio/s3m",
  "sil": "audio/silk",
  "uva": "audio/vnd.dece.audio",
  "uvva": "audio/vnd.dece.audio",
  "eol": "audio/vnd.digital-winds",
  "dra": "audio/vnd.dra",
  "dts": "audio/vnd.dts",
  "dtshd": "audio/vnd.dts.hd",
  "lvp": "audio/vnd.lucent.voice",
  "pya": "audio/vnd.ms-playready.media.pya",
  "ecelp4800": "audio/vnd.nuera.ecelp4800",
  "ecelp7470": "audio/vnd.nuera.ecelp7470",
  "ecelp9600": "audio/vnd.nuera.ecelp9600",
  "rip": "audio/vnd.rip",
  "weba": "audio/webm",
  "aac": "audio/x-aac",
  "aif": "audio/x-aiff",
  "aiff": "audio/x-aiff",
  "aifc": "audio/x-aiff",
  "caf": "audio/x-caf",
  "flac": "audio/x-flac",
  "mka": "audio/x-matroska",
  "m3u": "audio/x-mpegurl",
  "wax": "audio/x-ms-wax",
  "wma": "audio/x-ms-wma",
  "ram": "audio/x-pn-realaudio",
  "ra": "audio/x-pn-realaudio",
  "rmp": "audio/x-pn-realaudio-plugin",
  "wav": "audio/x-wav",
  "xm": "audio/xm",
  "cdx": "chemical/x-cdx",
  "cif": "chemical/x-cif",
  "cmdf": "chemical/x-cmdf",
  "cml": "chemical/x-cml",
  "csml": "chemical/x-csml",
  "xyz": "chemical/x-xyz",
  "bmp": "image/bmp",
  "cgm": "image/cgm",
  "g3": "image/g3fax",
  "gif": "image/gif",
  "ief": "image/ief",
  "jpeg": "image/jpeg",
  "jpg": "image/jpeg",
  "jpe": "image/jpeg",
  "ktx": "image/ktx",
  "png": "image/png",
  "btif": "image/prs.btif",
  "sgi": "image/sgi",
  "svg": "image/svg+xml",
  "svgz": "image/svg+xml",
  "tiff": "image/tiff",
  "tif": "image/tiff",
  "psd": "image/vnd.adobe.photoshop",
  "uvi": "image/vnd.dece.graphic",
  "uvvi": "image/vnd.dece.graphic",
  "uvg": "image/vnd.dece.graphic",
  "uvvg": "image/vnd.dece.graphic",
  "sub": "text/vnd.dvb.subtitle",
  "djvu": "image/vnd.djvu",
  "djv": "image/vnd.djvu",
  "dwg": "image/vnd.dwg",
  "dxf": "image/vnd.dxf",
  "fbs": "image/vnd.fastbidsheet",
  "fpx": "image/vnd.fpx",
  "fst": "image/vnd.fst",
  "mmr": "image/vnd.fujixerox.edmics-mmr",
  "rlc": "image/vnd.fujixerox.edmics-rlc",
  "mdi": "image/vnd.ms-modi",
  "wdp": "image/vnd.ms-photo",
  "npx": "image/vnd.net-fpx",
  "wbmp": "image/vnd.wap.wbmp",
  "xif": "image/vnd.xiff",
  "webp": "image/webp",
  "3ds": "image/x-3ds",
  "ras": "image/x-cmu-raster",
  "cmx": "image/x-cmx",
  "fh": "image/x-freehand",
  "fhc": "image/x-freehand",
  "fh4": "image/x-freehand",
  "fh5": "image/x-freehand",
  "fh7": "image/x-freehand",
  "ico": "image/x-icon",
  "sid": "image/x-mrsid-image",
  "pcx": "image/x-pcx",
  "pic": "image/x-pict",
  "pct": "image/x-pict",
  "pnm": "image/x-portable-anymap",
  "pbm": "image/x-portable-bitmap",
  "pgm": "image/x-portable-graymap",
  "ppm": "image/x-portable-pixmap",
  "rgb": "image/x-rgb",
  "tga": "image/x-tga",
  "xbm": "image/x-xbitmap",
  "xpm": "image/x-xpixmap",
  "xwd": "image/x-xwindowdump",
  "eml": "message/rfc822",
  "mime": "message/rfc822",
  "igs": "model/iges",
  "iges": "model/iges",
  "msh": "model/mesh",
  "mesh": "model/mesh",
  "silo": "model/mesh",
  "dae": "model/vnd.collada+xml",
  "dwf": "model/vnd.dwf",
  "gdl": "model/vnd.gdl",
  "gtw": "model/vnd.gtw",
  "mts": "model/vnd.mts",
  "vtu": "model/vnd.vtu",
  "wrl": "model/vrml",
  "vrml": "model/vrml",
  "x3db": "model/x3d+binary",
  "x3dbz": "model/x3d+binary",
  "x3dv": "model/x3d+vrml",
  "x3dvz": "model/x3d+vrml",
  "x3d": "model/x3d+xml",
  "x3dz": "model/x3d+xml",
  "appcache": "text/cache-manifest",
  "ics": "text/calendar",
  "ifb": "text/calendar",
  "css": "text/css",
  "csv": "text/csv",
  "html": "text/html",
  "htm": "text/html",
  "n3": "text/n3",
  "txt": "text/plain",
  "text": "text/plain",
  "conf": "text/plain",
  "def": "text/plain",
  "list": "text/plain",
  "log": "text/plain",
  "in": "text/plain",
  "dsc": "text/prs.lines.tag",
  "rtx": "text/richtext",
  "sgml": "text/sgml",
  "sgm": "text/sgml",
  "tsv": "text/tab-separated-values",
  "t": "text/troff",
  "tr": "text/troff",
  "roff": "text/troff",
  "man": "text/troff",
  "me": "text/troff",
  "ms": "text/troff",
  "ttl": "text/turtle",
  "uri": "text/uri-list",
  "uris": "text/uri-list",
  "urls": "text/uri-list",
  "vcard": "text/vcard",
  "curl": "text/vnd.curl",
  "dcurl": "text/vnd.curl.dcurl",
  "scurl": "text/vnd.curl.scurl",
  "mcurl": "text/vnd.curl.mcurl",
  "fly": "text/vnd.fly",
  "flx": "text/vnd.fmi.flexstor",
  "gv": "text/vnd.graphviz",
  "3dml": "text/vnd.in3d.3dml",
  "spot": "text/vnd.in3d.spot",
  "jad": "text/vnd.sun.j2me.app-descriptor",
  "wml": "text/vnd.wap.wml",
  "wmls": "text/vnd.wap.wmlscript",
  "s": "text/x-asm",
  "asm": "text/x-asm",
  "c": "text/x-c",
  "cc": "text/x-c",
  "cxx": "text/x-c",
  "cpp": "text/x-c",
  "h": "text/x-c",
  "hh": "text/x-c",
  "dic": "text/x-c",
  "f": "text/x-fortran",
  "for": "text/x-fortran",
  "f77": "text/x-fortran",
  "f90": "text/x-fortran",
  "java": "text/x-java-source",
  "opml": "text/x-opml",
  "p": "text/x-pascal",
  "pas": "text/x-pascal",
  "nfo": "text/x-nfo",
  "etx": "text/x-setext",
  "sfv": "text/x-sfv",
  "uu": "text/x-uuencode",
  "vcs": "text/x-vcalendar",
  "vcf": "text/x-vcard",
  "3gp": "video/3gpp",
  "3g2": "video/3gpp2",
  "h261": "video/h261",
  "h263": "video/h263",
  "h264": "video/h264",
  "jpgv": "video/jpeg",
  "jpm": "video/jpm",
  "jpgm": "video/jpm",
  "mj2": "video/mj2",
  "mjp2": "video/mj2",
  "mp4": "video/mp4",
  "mp4v": "video/mp4",
  "mpg4": "video/mp4",
  "mpeg": "video/mpeg",
  "mpg": "video/mpeg",
  "mpe": "video/mpeg",
  "m1v": "video/mpeg",
  "m2v": "video/mpeg",
  "ogv": "video/ogg",
  "qt": "video/quicktime",
  "mov": "video/quicktime",
  "uvh": "video/vnd.dece.hd",
  "uvvh": "video/vnd.dece.hd",
  "uvm": "video/vnd.dece.mobile",
  "uvvm": "video/vnd.dece.mobile",
  "uvp": "video/vnd.dece.pd",
  "uvvp": "video/vnd.dece.pd",
  "uvs": "video/vnd.dece.sd",
  "uvvs": "video/vnd.dece.sd",
  "uvv": "video/vnd.dece.video",
  "uvvv": "video/vnd.dece.video",
  "dvb": "video/vnd.dvb.file",
  "fvt": "video/vnd.fvt",
  "mxu": "video/vnd.mpegurl",
  "m4u": "video/vnd.mpegurl",
  "pyv": "video/vnd.ms-playready.media.pyv",
  "uvu": "video/vnd.uvvu.mp4",
  "uvvu": "video/vnd.uvvu.mp4",
  "viv": "video/vnd.vivo",
  "webm": "video/webm",
  "f4v": "video/x-f4v",
  "fli": "video/x-fli",
  "flv": "video/x-flv",
  "m4v": "video/x-m4v",
  "mkv": "video/x-matroska",
  "mk3d": "video/x-matroska",
  "mks": "video/x-matroska",
  "mng": "video/x-mng",
  "asf": "video/x-ms-asf",
  "asx": "video/x-ms-asf",
  "vob": "video/x-ms-vob",
  "wm": "video/x-ms-wm",
  "wmv": "video/x-ms-wmv",
  "wmx": "video/x-ms-wmx",
  "wvx": "video/x-ms-wvx",
  "avi": "video/x-msvideo",
  "movie": "video/x-sgi-movie",
  "smv": "video/x-smv",
  "ice": "x-conference/x-cooltalk",
  "vtt": "text/vtt",
  "crx": "application/x-chrome-extension",
  "htc": "text/x-component",
  "manifest": "text/cache-manifest",
  "buffer": "application/octet-stream",
  "m4p": "application/mp4",
  "m4a": "audio/mp4",
  "ts": "video/MP2T",
  "event-stream": "text/event-stream",
  "webapp": "application/x-web-app-manifest+json",
  "lua": "text/x-lua",
  "luac": "application/x-lua-bytecode",
  "markdown": "text/x-markdown",
  "md": "text/x-markdown",
  "mkd": "text/x-markdown"
}
  , extensions: {
  "application/andrew-inset": "ez",
  "application/applixware": "aw",
  "application/atom+xml": "atom",
  "application/atomcat+xml": "atomcat",
  "application/atomsvc+xml": "atomsvc",
  "application/ccxml+xml": "ccxml",
  "application/cdmi-capability": "cdmia",
  "application/cdmi-container": "cdmic",
  "application/cdmi-domain": "cdmid",
  "application/cdmi-object": "cdmio",
  "application/cdmi-queue": "cdmiq",
  "application/cu-seeme": "cu",
  "application/davmount+xml": "davmount",
  "application/docbook+xml": "dbk",
  "application/dssc+der": "dssc",
  "application/dssc+xml": "xdssc",
  "application/ecmascript": "ecma",
  "application/emma+xml": "emma",
  "application/epub+zip": "epub",
  "application/exi": "exi",
  "application/font-tdpfr": "pfr",
  "application/gml+xml": "gml",
  "application/gpx+xml": "gpx",
  "application/gxf": "gxf",
  "application/hyperstudio": "stk",
  "application/inkml+xml": "ink",
  "application/ipfix": "ipfix",
  "application/java-archive": "jar",
  "application/java-serialized-object": "ser",
  "application/java-vm": "class",
  "application/javascript": "js",
  "application/json": "json",
  "application/jsonml+json": "jsonml",
  "application/lost+xml": "lostxml",
  "application/mac-binhex40": "hqx",
  "application/mac-compactpro": "cpt",
  "application/mads+xml": "mads",
  "application/marc": "mrc",
  "application/marcxml+xml": "mrcx",
  "application/mathematica": "ma",
  "application/mathml+xml": "mathml",
  "application/mbox": "mbox",
  "application/mediaservercontrol+xml": "mscml",
  "application/metalink+xml": "metalink",
  "application/metalink4+xml": "meta4",
  "application/mets+xml": "mets",
  "application/mods+xml": "mods",
  "application/mp21": "m21",
  "application/mp4": "mp4s",
  "application/msword": "doc",
  "application/mxf": "mxf",
  "application/octet-stream": "bin",
  "application/oda": "oda",
  "application/oebps-package+xml": "opf",
  "application/ogg": "ogx",
  "application/omdoc+xml": "omdoc",
  "application/onenote": "onetoc",
  "application/oxps": "oxps",
  "application/patch-ops-error+xml": "xer",
  "application/pdf": "pdf",
  "application/pgp-encrypted": "pgp",
  "application/pgp-signature": "asc",
  "application/pics-rules": "prf",
  "application/pkcs10": "p10",
  "application/pkcs7-mime": "p7m",
  "application/pkcs7-signature": "p7s",
  "application/pkcs8": "p8",
  "application/pkix-attr-cert": "ac",
  "application/pkix-cert": "cer",
  "application/pkix-crl": "crl",
  "application/pkix-pkipath": "pkipath",
  "application/pkixcmp": "pki",
  "application/pls+xml": "pls",
  "application/postscript": "ai",
  "application/prs.cww": "cww",
  "application/pskc+xml": "pskcxml",
  "application/rdf+xml": "rdf",
  "application/reginfo+xml": "rif",
  "application/relax-ng-compact-syntax": "rnc",
  "application/resource-lists+xml": "rl",
  "application/resource-lists-diff+xml": "rld",
  "application/rls-services+xml": "rs",
  "application/rpki-ghostbusters": "gbr",
  "application/rpki-manifest": "mft",
  "application/rpki-roa": "roa",
  "application/rsd+xml": "rsd",
  "application/rss+xml": "rss",
  "application/rtf": "rtf",
  "application/sbml+xml": "sbml",
  "application/scvp-cv-request": "scq",
  "application/scvp-cv-response": "scs",
  "application/scvp-vp-request": "spq",
  "application/scvp-vp-response": "spp",
  "application/sdp": "sdp",
  "application/set-payment-initiation": "setpay",
  "application/set-registration-initiation": "setreg",
  "application/shf+xml": "shf",
  "application/smil+xml": "smi",
  "application/sparql-query": "rq",
  "application/sparql-results+xml": "srx",
  "application/srgs": "gram",
  "application/srgs+xml": "grxml",
  "application/sru+xml": "sru",
  "application/ssdl+xml": "ssdl",
  "application/ssml+xml": "ssml",
  "application/tei+xml": "tei",
  "application/thraud+xml": "tfi",
  "application/timestamped-data": "tsd",
  "application/vnd.3gpp.pic-bw-large": "plb",
  "application/vnd.3gpp.pic-bw-small": "psb",
  "application/vnd.3gpp.pic-bw-var": "pvb",
  "application/vnd.3gpp2.tcap": "tcap",
  "application/vnd.3m.post-it-notes": "pwn",
  "application/vnd.accpac.simply.aso": "aso",
  "application/vnd.accpac.simply.imp": "imp",
  "application/vnd.acucobol": "acu",
  "application/vnd.acucorp": "atc",
  "application/vnd.adobe.air-application-installer-package+zip": "air",
  "application/vnd.adobe.formscentral.fcdt": "fcdt",
  "application/vnd.adobe.fxp": "fxp",
  "application/vnd.adobe.xdp+xml": "xdp",
  "application/vnd.adobe.xfdf": "xfdf",
  "application/vnd.ahead.space": "ahead",
  "application/vnd.airzip.filesecure.azf": "azf",
  "application/vnd.airzip.filesecure.azs": "azs",
  "application/vnd.amazon.ebook": "azw",
  "application/vnd.americandynamics.acc": "acc",
  "application/vnd.amiga.ami": "ami",
  "application/vnd.android.package-archive": "apk",
  "application/vnd.anser-web-certificate-issue-initiation": "cii",
  "application/vnd.anser-web-funds-transfer-initiation": "fti",
  "application/vnd.antix.game-component": "atx",
  "application/vnd.apple.installer+xml": "mpkg",
  "application/vnd.apple.mpegurl": "m3u8",
  "application/vnd.aristanetworks.swi": "swi",
  "application/vnd.astraea-software.iota": "iota",
  "application/vnd.audiograph": "aep",
  "application/vnd.blueice.multipass": "mpm",
  "application/vnd.bmi": "bmi",
  "application/vnd.businessobjects": "rep",
  "application/vnd.chemdraw+xml": "cdxml",
  "application/vnd.chipnuts.karaoke-mmd": "mmd",
  "application/vnd.cinderella": "cdy",
  "application/vnd.claymore": "cla",
  "application/vnd.cloanto.rp9": "rp9",
  "application/vnd.clonk.c4group": "c4g",
  "application/vnd.cluetrust.cartomobile-config": "c11amc",
  "application/vnd.cluetrust.cartomobile-config-pkg": "c11amz",
  "application/vnd.commonspace": "csp",
  "application/vnd.contact.cmsg": "cdbcmsg",
  "application/vnd.cosmocaller": "cmc",
  "application/vnd.crick.clicker": "clkx",
  "application/vnd.crick.clicker.keyboard": "clkk",
  "application/vnd.crick.clicker.palette": "clkp",
  "application/vnd.crick.clicker.template": "clkt",
  "application/vnd.crick.clicker.wordbank": "clkw",
  "application/vnd.criticaltools.wbs+xml": "wbs",
  "application/vnd.ctc-posml": "pml",
  "application/vnd.cups-ppd": "ppd",
  "application/vnd.curl.car": "car",
  "application/vnd.curl.pcurl": "pcurl",
  "application/vnd.dart": "dart",
  "application/vnd.data-vision.rdz": "rdz",
  "application/vnd.dece.data": "uvf",
  "application/vnd.dece.ttml+xml": "uvt",
  "application/vnd.dece.unspecified": "uvx",
  "application/vnd.dece.zip": "uvz",
  "application/vnd.denovo.fcselayout-link": "fe_launch",
  "application/vnd.dna": "dna",
  "application/vnd.dolby.mlp": "mlp",
  "application/vnd.dpgraph": "dpg",
  "application/vnd.dreamfactory": "dfac",
  "application/vnd.ds-keypoint": "kpxx",
  "application/vnd.dvb.ait": "ait",
  "application/vnd.dvb.service": "svc",
  "application/vnd.dynageo": "geo",
  "application/vnd.ecowin.chart": "mag",
  "application/vnd.enliven": "nml",
  "application/vnd.epson.esf": "esf",
  "application/vnd.epson.msf": "msf",
  "application/vnd.epson.quickanime": "qam",
  "application/vnd.epson.salt": "slt",
  "application/vnd.epson.ssf": "ssf",
  "application/vnd.eszigno3+xml": "es3",
  "application/vnd.ezpix-album": "ez2",
  "application/vnd.ezpix-package": "ez3",
  "application/vnd.fdf": "fdf",
  "application/vnd.fdsn.mseed": "mseed",
  "application/vnd.fdsn.seed": "seed",
  "application/vnd.flographit": "gph",
  "application/vnd.fluxtime.clip": "ftc",
  "application/vnd.framemaker": "fm",
  "application/vnd.frogans.fnc": "fnc",
  "application/vnd.frogans.ltf": "ltf",
  "application/vnd.fsc.weblaunch": "fsc",
  "application/vnd.fujitsu.oasys": "oas",
  "application/vnd.fujitsu.oasys2": "oa2",
  "application/vnd.fujitsu.oasys3": "oa3",
  "application/vnd.fujitsu.oasysgp": "fg5",
  "application/vnd.fujitsu.oasysprs": "bh2",
  "application/vnd.fujixerox.ddd": "ddd",
  "application/vnd.fujixerox.docuworks": "xdw",
  "application/vnd.fujixerox.docuworks.binder": "xbd",
  "application/vnd.fuzzysheet": "fzs",
  "application/vnd.genomatix.tuxedo": "txd",
  "application/vnd.geogebra.file": "ggb",
  "application/vnd.geogebra.tool": "ggt",
  "application/vnd.geometry-explorer": "gex",
  "application/vnd.geonext": "gxt",
  "application/vnd.geoplan": "g2w",
  "application/vnd.geospace": "g3w",
  "application/vnd.gmx": "gmx",
  "application/vnd.google-earth.kml+xml": "kml",
  "application/vnd.google-earth.kmz": "kmz",
  "application/vnd.grafeq": "gqf",
  "application/vnd.groove-account": "gac",
  "application/vnd.groove-help": "ghf",
  "application/vnd.groove-identity-message": "gim",
  "application/vnd.groove-injector": "grv",
  "application/vnd.groove-tool-message": "gtm",
  "application/vnd.groove-tool-template": "tpl",
  "application/vnd.groove-vcard": "vcg",
  "application/vnd.hal+xml": "hal",
  "application/vnd.handheld-entertainment+xml": "zmm",
  "application/vnd.hbci": "hbci",
  "application/vnd.hhe.lesson-player": "les",
  "application/vnd.hp-hpgl": "hpgl",
  "application/vnd.hp-hpid": "hpid",
  "application/vnd.hp-hps": "hps",
  "application/vnd.hp-jlyt": "jlt",
  "application/vnd.hp-pcl": "pcl",
  "application/vnd.hp-pclxl": "pclxl",
  "application/vnd.hydrostatix.sof-data": "sfd-hdstx",
  "application/vnd.ibm.minipay": "mpy",
  "application/vnd.ibm.modcap": "afp",
  "application/vnd.ibm.rights-management": "irm",
  "application/vnd.ibm.secure-container": "sc",
  "application/vnd.iccprofile": "icc",
  "application/vnd.igloader": "igl",
  "application/vnd.immervision-ivp": "ivp",
  "application/vnd.immervision-ivu": "ivu",
  "application/vnd.insors.igm": "igm",
  "application/vnd.intercon.formnet": "xpw",
  "application/vnd.intergeo": "i2g",
  "application/vnd.intu.qbo": "qbo",
  "application/vnd.intu.qfx": "qfx",
  "application/vnd.ipunplugged.rcprofile": "rcprofile",
  "application/vnd.irepository.package+xml": "irp",
  "application/vnd.is-xpr": "xpr",
  "application/vnd.isac.fcs": "fcs",
  "application/vnd.jam": "jam",
  "application/vnd.jcp.javame.midlet-rms": "rms",
  "application/vnd.jisp": "jisp",
  "application/vnd.joost.joda-archive": "joda",
  "application/vnd.kahootz": "ktz",
  "application/vnd.kde.karbon": "karbon",
  "application/vnd.kde.kchart": "chrt",
  "application/vnd.kde.kformula": "kfo",
  "application/vnd.kde.kivio": "flw",
  "application/vnd.kde.kontour": "kon",
  "application/vnd.kde.kpresenter": "kpr",
  "application/vnd.kde.kspread": "ksp",
  "application/vnd.kde.kword": "kwd",
  "application/vnd.kenameaapp": "htke",
  "application/vnd.kidspiration": "kia",
  "application/vnd.kinar": "kne",
  "application/vnd.koan": "skp",
  "application/vnd.kodak-descriptor": "sse",
  "application/vnd.las.las+xml": "lasxml",
  "application/vnd.llamagraphics.life-balance.desktop": "lbd",
  "application/vnd.llamagraphics.life-balance.exchange+xml": "lbe",
  "application/vnd.lotus-1-2-3": "123",
  "application/vnd.lotus-approach": "apr",
  "application/vnd.lotus-freelance": "pre",
  "application/vnd.lotus-notes": "nsf",
  "application/vnd.lotus-organizer": "org",
  "application/vnd.lotus-screencam": "scm",
  "application/vnd.lotus-wordpro": "lwp",
  "application/vnd.macports.portpkg": "portpkg",
  "application/vnd.mcd": "mcd",
  "application/vnd.medcalcdata": "mc1",
  "application/vnd.mediastation.cdkey": "cdkey",
  "application/vnd.mfer": "mwf",
  "application/vnd.mfmp": "mfm",
  "application/vnd.micrografx.flo": "flo",
  "application/vnd.micrografx.igx": "igx",
  "application/vnd.mif": "mif",
  "application/vnd.mobius.daf": "daf",
  "application/vnd.mobius.dis": "dis",
  "application/vnd.mobius.mbk": "mbk",
  "application/vnd.mobius.mqy": "mqy",
  "application/vnd.mobius.msl": "msl",
  "application/vnd.mobius.plc": "plc",
  "application/vnd.mobius.txf": "txf",
  "application/vnd.mophun.application": "mpn",
  "application/vnd.mophun.certificate": "mpc",
  "application/vnd.mozilla.xul+xml": "xul",
  "application/vnd.ms-artgalry": "cil",
  "application/vnd.ms-cab-compressed": "cab",
  "application/vnd.ms-excel": "xls",
  "application/vnd.ms-excel.addin.macroenabled.12": "xlam",
  "application/vnd.ms-excel.sheet.binary.macroenabled.12": "xlsb",
  "application/vnd.ms-excel.sheet.macroenabled.12": "xlsm",
  "application/vnd.ms-excel.template.macroenabled.12": "xltm",
  "application/vnd.ms-fontobject": "eot",
  "application/vnd.ms-htmlhelp": "chm",
  "application/vnd.ms-ims": "ims",
  "application/vnd.ms-lrm": "lrm",
  "application/vnd.ms-officetheme": "thmx",
  "application/vnd.ms-pki.seccat": "cat",
  "application/vnd.ms-pki.stl": "stl",
  "application/vnd.ms-powerpoint": "ppt",
  "application/vnd.ms-powerpoint.addin.macroenabled.12": "ppam",
  "application/vnd.ms-powerpoint.presentation.macroenabled.12": "pptm",
  "application/vnd.ms-powerpoint.slide.macroenabled.12": "sldm",
  "application/vnd.ms-powerpoint.slideshow.macroenabled.12": "ppsm",
  "application/vnd.ms-powerpoint.template.macroenabled.12": "potm",
  "application/vnd.ms-project": "mpp",
  "application/vnd.ms-word.document.macroenabled.12": "docm",
  "application/vnd.ms-word.template.macroenabled.12": "dotm",
  "application/vnd.ms-works": "wps",
  "application/vnd.ms-wpl": "wpl",
  "application/vnd.ms-xpsdocument": "xps",
  "application/vnd.mseq": "mseq",
  "application/vnd.musician": "mus",
  "application/vnd.muvee.style": "msty",
  "application/vnd.mynfc": "taglet",
  "application/vnd.neurolanguage.nlu": "nlu",
  "application/vnd.nitf": "ntf",
  "application/vnd.noblenet-directory": "nnd",
  "application/vnd.noblenet-sealer": "nns",
  "application/vnd.noblenet-web": "nnw",
  "application/vnd.nokia.n-gage.data": "ngdat",
  "application/vnd.nokia.n-gage.symbian.install": "n-gage",
  "application/vnd.nokia.radio-preset": "rpst",
  "application/vnd.nokia.radio-presets": "rpss",
  "application/vnd.novadigm.edm": "edm",
  "application/vnd.novadigm.edx": "edx",
  "application/vnd.novadigm.ext": "ext",
  "application/vnd.oasis.opendocument.chart": "odc",
  "application/vnd.oasis.opendocument.chart-template": "otc",
  "application/vnd.oasis.opendocument.database": "odb",
  "application/vnd.oasis.opendocument.formula": "odf",
  "application/vnd.oasis.opendocument.formula-template": "odft",
  "application/vnd.oasis.opendocument.graphics": "odg",
  "application/vnd.oasis.opendocument.graphics-template": "otg",
  "application/vnd.oasis.opendocument.image": "odi",
  "application/vnd.oasis.opendocument.image-template": "oti",
  "application/vnd.oasis.opendocument.presentation": "odp",
  "application/vnd.oasis.opendocument.presentation-template": "otp",
  "application/vnd.oasis.opendocument.spreadsheet": "ods",
  "application/vnd.oasis.opendocument.spreadsheet-template": "ots",
  "application/vnd.oasis.opendocument.text": "odt",
  "application/vnd.oasis.opendocument.text-master": "odm",
  "application/vnd.oasis.opendocument.text-template": "ott",
  "application/vnd.oasis.opendocument.text-web": "oth",
  "application/vnd.olpc-sugar": "xo",
  "application/vnd.oma.dd2+xml": "dd2",
  "application/vnd.openofficeorg.extension": "oxt",
  "application/vnd.openxmlformats-officedocument.presentationml.presentation": "pptx",
  "application/vnd.openxmlformats-officedocument.presentationml.slide": "sldx",
  "application/vnd.openxmlformats-officedocument.presentationml.slideshow": "ppsx",
  "application/vnd.openxmlformats-officedocument.presentationml.template": "potx",
  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
  "application/vnd.openxmlformats-officedocument.spreadsheetml.template": "xltx",
  "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
  "application/vnd.openxmlformats-officedocument.wordprocessingml.template": "dotx",
  "application/vnd.osgeo.mapguide.package": "mgp",
  "application/vnd.osgi.dp": "dp",
  "application/vnd.osgi.subsystem": "esa",
  "application/vnd.palm": "pdb",
  "application/vnd.pawaafile": "paw",
  "application/vnd.pg.format": "str",
  "application/vnd.pg.osasli": "ei6",
  "application/vnd.picsel": "efif",
  "application/vnd.pmi.widget": "wg",
  "application/vnd.pocketlearn": "plf",
  "application/vnd.powerbuilder6": "pbd",
  "application/vnd.previewsystems.box": "box",
  "application/vnd.proteus.magazine": "mgz",
  "application/vnd.publishare-delta-tree": "qps",
  "application/vnd.pvi.ptid1": "ptid",
  "application/vnd.quark.quarkxpress": "qxd",
  "application/vnd.realvnc.bed": "bed",
  "application/vnd.recordare.musicxml": "mxl",
  "application/vnd.recordare.musicxml+xml": "musicxml",
  "application/vnd.rig.cryptonote": "cryptonote",
  "application/vnd.rim.cod": "cod",
  "application/vnd.rn-realmedia": "rm",
  "application/vnd.rn-realmedia-vbr": "rmvb",
  "application/vnd.route66.link66+xml": "link66",
  "application/vnd.sailingtracker.track": "st",
  "application/vnd.seemail": "see",
  "application/vnd.sema": "sema",
  "application/vnd.semd": "semd",
  "application/vnd.semf": "semf",
  "application/vnd.shana.informed.formdata": "ifm",
  "application/vnd.shana.informed.formtemplate": "itp",
  "application/vnd.shana.informed.interchange": "iif",
  "application/vnd.shana.informed.package": "ipk",
  "application/vnd.simtech-mindmapper": "twd",
  "application/vnd.smaf": "mmf",
  "application/vnd.smart.teacher": "teacher",
  "application/vnd.solent.sdkm+xml": "sdkm",
  "application/vnd.spotfire.dxp": "dxp",
  "application/vnd.spotfire.sfs": "sfs",
  "application/vnd.stardivision.calc": "sdc",
  "application/vnd.stardivision.draw": "sda",
  "application/vnd.stardivision.impress": "sdd",
  "application/vnd.stardivision.math": "smf",
  "application/vnd.stardivision.writer": "sdw",
  "application/vnd.stardivision.writer-global": "sgl",
  "application/vnd.stepmania.package": "smzip",
  "application/vnd.stepmania.stepchart": "sm",
  "application/vnd.sun.xml.calc": "sxc",
  "application/vnd.sun.xml.calc.template": "stc",
  "application/vnd.sun.xml.draw": "sxd",
  "application/vnd.sun.xml.draw.template": "std",
  "application/vnd.sun.xml.impress": "sxi",
  "application/vnd.sun.xml.impress.template": "sti",
  "application/vnd.sun.xml.math": "sxm",
  "application/vnd.sun.xml.writer": "sxw",
  "application/vnd.sun.xml.writer.global": "sxg",
  "application/vnd.sun.xml.writer.template": "stw",
  "application/vnd.sus-calendar": "sus",
  "application/vnd.svd": "svd",
  "application/vnd.symbian.install": "sis",
  "application/vnd.syncml+xml": "xsm",
  "application/vnd.syncml.dm+wbxml": "bdm",
  "application/vnd.syncml.dm+xml": "xdm",
  "application/vnd.tao.intent-module-archive": "tao",
  "application/vnd.tcpdump.pcap": "pcap",
  "application/vnd.tmobile-livetv": "tmo",
  "application/vnd.trid.tpt": "tpt",
  "application/vnd.triscape.mxs": "mxs",
  "application/vnd.trueapp": "tra",
  "application/vnd.ufdl": "ufd",
  "application/vnd.uiq.theme": "utz",
  "application/vnd.umajin": "umj",
  "application/vnd.unity": "unityweb",
  "application/vnd.uoml+xml": "uoml",
  "application/vnd.vcx": "vcx",
  "application/vnd.visio": "vsd",
  "application/vnd.visionary": "vis",
  "application/vnd.vsf": "vsf",
  "application/vnd.wap.wbxml": "wbxml",
  "application/vnd.wap.wmlc": "wmlc",
  "application/vnd.wap.wmlscriptc": "wmlsc",
  "application/vnd.webturbo": "wtb",
  "application/vnd.wolfram.player": "nbp",
  "application/vnd.wordperfect": "wpd",
  "application/vnd.wqd": "wqd",
  "application/vnd.wt.stf": "stf",
  "application/vnd.xara": "xar",
  "application/vnd.xfdl": "xfdl",
  "application/vnd.yamaha.hv-dic": "hvd",
  "application/vnd.yamaha.hv-script": "hvs",
  "application/vnd.yamaha.hv-voice": "hvp",
  "application/vnd.yamaha.openscoreformat": "osf",
  "application/vnd.yamaha.openscoreformat.osfpvg+xml": "osfpvg",
  "application/vnd.yamaha.smaf-audio": "saf",
  "application/vnd.yamaha.smaf-phrase": "spf",
  "application/vnd.yellowriver-custom-menu": "cmp",
  "application/vnd.zul": "zir",
  "application/vnd.zzazz.deck+xml": "zaz",
  "application/voicexml+xml": "vxml",
  "application/widget": "wgt",
  "application/winhlp": "hlp",
  "application/wsdl+xml": "wsdl",
  "application/wspolicy+xml": "wspolicy",
  "application/x-7z-compressed": "7z",
  "application/x-abiword": "abw",
  "application/x-ace-compressed": "ace",
  "application/x-apple-diskimage": "dmg",
  "application/x-authorware-bin": "aab",
  "application/x-authorware-map": "aam",
  "application/x-authorware-seg": "aas",
  "application/x-bcpio": "bcpio",
  "application/x-bittorrent": "torrent",
  "application/x-blorb": "blb",
  "application/x-bzip": "bz",
  "application/x-bzip2": "bz2",
  "application/x-cbr": "cbr",
  "application/x-cdlink": "vcd",
  "application/x-cfs-compressed": "cfs",
  "application/x-chat": "chat",
  "application/x-chess-pgn": "pgn",
  "application/x-conference": "nsc",
  "application/x-cpio": "cpio",
  "application/x-csh": "csh",
  "application/x-debian-package": "deb",
  "application/x-dgc-compressed": "dgc",
  "application/x-director": "dir",
  "application/x-doom": "wad",
  "application/x-dtbncx+xml": "ncx",
  "application/x-dtbook+xml": "dtb",
  "application/x-dtbresource+xml": "res",
  "application/x-dvi": "dvi",
  "application/x-envoy": "evy",
  "application/x-eva": "eva",
  "application/x-font-bdf": "bdf",
  "application/x-font-ghostscript": "gsf",
  "application/x-font-linux-psf": "psf",
  "application/x-font-otf": "otf",
  "application/x-font-pcf": "pcf",
  "application/x-font-snf": "snf",
  "application/x-font-ttf": "ttf",
  "application/x-font-type1": "pfa",
  "application/x-font-woff": "woff",
  "application/x-freearc": "arc",
  "application/x-futuresplash": "spl",
  "application/x-gca-compressed": "gca",
  "application/x-glulx": "ulx",
  "application/x-gnumeric": "gnumeric",
  "application/x-gramps-xml": "gramps",
  "application/x-gtar": "gtar",
  "application/x-hdf": "hdf",
  "application/x-install-instructions": "install",
  "application/x-iso9660-image": "iso",
  "application/x-java-jnlp-file": "jnlp",
  "application/x-latex": "latex",
  "application/x-lzh-compressed": "lzh",
  "application/x-mie": "mie",
  "application/x-mobipocket-ebook": "prc",
  "application/x-ms-application": "application",
  "application/x-ms-shortcut": "lnk",
  "application/x-ms-wmd": "wmd",
  "application/x-ms-wmz": "wmz",
  "application/x-ms-xbap": "xbap",
  "application/x-msaccess": "mdb",
  "application/x-msbinder": "obd",
  "application/x-mscardfile": "crd",
  "application/x-msclip": "clp",
  "application/x-msdownload": "exe",
  "application/x-msmediaview": "mvb",
  "application/x-msmetafile": "wmf",
  "application/x-msmoney": "mny",
  "application/x-mspublisher": "pub",
  "application/x-msschedule": "scd",
  "application/x-msterminal": "trm",
  "application/x-mswrite": "wri",
  "application/x-netcdf": "nc",
  "application/x-nzb": "nzb",
  "application/x-pkcs12": "p12",
  "application/x-pkcs7-certificates": "p7b",
  "application/x-pkcs7-certreqresp": "p7r",
  "application/x-rar-compressed": "rar",
  "application/x-research-info-systems": "ris",
  "application/x-sh": "sh",
  "application/x-shar": "shar",
  "application/x-shockwave-flash": "swf",
  "application/x-silverlight-app": "xap",
  "application/x-sql": "sql",
  "application/x-stuffit": "sit",
  "application/x-stuffitx": "sitx",
  "application/x-subrip": "srt",
  "application/x-sv4cpio": "sv4cpio",
  "application/x-sv4crc": "sv4crc",
  "application/x-t3vm-image": "t3",
  "application/x-tads": "gam",
  "application/x-tar": "tar",
  "application/x-tcl": "tcl",
  "application/x-tex": "tex",
  "application/x-tex-tfm": "tfm",
  "application/x-texinfo": "texinfo",
  "application/x-tgif": "obj",
  "application/x-ustar": "ustar",
  "application/x-wais-source": "src",
  "application/x-x509-ca-cert": "der",
  "application/x-xfig": "fig",
  "application/x-xliff+xml": "xlf",
  "application/x-xpinstall": "xpi",
  "application/x-xz": "xz",
  "application/x-zmachine": "z1",
  "application/xaml+xml": "xaml",
  "application/xcap-diff+xml": "xdf",
  "application/xenc+xml": "xenc",
  "application/xhtml+xml": "xhtml",
  "application/xml": "xml",
  "application/xml-dtd": "dtd",
  "application/xop+xml": "xop",
  "application/xproc+xml": "xpl",
  "application/xslt+xml": "xslt",
  "application/xspf+xml": "xspf",
  "application/xv+xml": "mxml",
  "application/yang": "yang",
  "application/yin+xml": "yin",
  "application/zip": "zip",
  "audio/adpcm": "adp",
  "audio/basic": "au",
  "audio/midi": "mid",
  "audio/mp4": "mp4a",
  "audio/mpeg": "mpga",
  "audio/ogg": "oga",
  "audio/s3m": "s3m",
  "audio/silk": "sil",
  "audio/vnd.dece.audio": "uva",
  "audio/vnd.digital-winds": "eol",
  "audio/vnd.dra": "dra",
  "audio/vnd.dts": "dts",
  "audio/vnd.dts.hd": "dtshd",
  "audio/vnd.lucent.voice": "lvp",
  "audio/vnd.ms-playready.media.pya": "pya",
  "audio/vnd.nuera.ecelp4800": "ecelp4800",
  "audio/vnd.nuera.ecelp7470": "ecelp7470",
  "audio/vnd.nuera.ecelp9600": "ecelp9600",
  "audio/vnd.rip": "rip",
  "audio/webm": "weba",
  "audio/x-aac": "aac",
  "audio/x-aiff": "aif",
  "audio/x-caf": "caf",
  "audio/x-flac": "flac",
  "audio/x-matroska": "mka",
  "audio/x-mpegurl": "m3u",
  "audio/x-ms-wax": "wax",
  "audio/x-ms-wma": "wma",
  "audio/x-pn-realaudio": "ram",
  "audio/x-pn-realaudio-plugin": "rmp",
  "audio/x-wav": "wav",
  "audio/xm": "xm",
  "chemical/x-cdx": "cdx",
  "chemical/x-cif": "cif",
  "chemical/x-cmdf": "cmdf",
  "chemical/x-cml": "cml",
  "chemical/x-csml": "csml",
  "chemical/x-xyz": "xyz",
  "image/bmp": "bmp",
  "image/cgm": "cgm",
  "image/g3fax": "g3",
  "image/gif": "gif",
  "image/ief": "ief",
  "image/jpeg": "jpeg",
  "image/ktx": "ktx",
  "image/png": "png",
  "image/prs.btif": "btif",
  "image/sgi": "sgi",
  "image/svg+xml": "svg",
  "image/tiff": "tiff",
  "image/vnd.adobe.photoshop": "psd",
  "image/vnd.dece.graphic": "uvi",
  "image/vnd.dvb.subtitle": "sub",
  "image/vnd.djvu": "djvu",
  "image/vnd.dwg": "dwg",
  "image/vnd.dxf": "dxf",
  "image/vnd.fastbidsheet": "fbs",
  "image/vnd.fpx": "fpx",
  "image/vnd.fst": "fst",
  "image/vnd.fujixerox.edmics-mmr": "mmr",
  "image/vnd.fujixerox.edmics-rlc": "rlc",
  "image/vnd.ms-modi": "mdi",
  "image/vnd.ms-photo": "wdp",
  "image/vnd.net-fpx": "npx",
  "image/vnd.wap.wbmp": "wbmp",
  "image/vnd.xiff": "xif",
  "image/webp": "webp",
  "image/x-3ds": "3ds",
  "image/x-cmu-raster": "ras",
  "image/x-cmx": "cmx",
  "image/x-freehand": "fh",
  "image/x-icon": "ico",
  "image/x-mrsid-image": "sid",
  "image/x-pcx": "pcx",
  "image/x-pict": "pic",
  "image/x-portable-anymap": "pnm",
  "image/x-portable-bitmap": "pbm",
  "image/x-portable-graymap": "pgm",
  "image/x-portable-pixmap": "ppm",
  "image/x-rgb": "rgb",
  "image/x-tga": "tga",
  "image/x-xbitmap": "xbm",
  "image/x-xpixmap": "xpm",
  "image/x-xwindowdump": "xwd",
  "message/rfc822": "eml",
  "model/iges": "igs",
  "model/mesh": "msh",
  "model/vnd.collada+xml": "dae",
  "model/vnd.dwf": "dwf",
  "model/vnd.gdl": "gdl",
  "model/vnd.gtw": "gtw",
  "model/vnd.mts": "mts",
  "model/vnd.vtu": "vtu",
  "model/vrml": "wrl",
  "model/x3d+binary": "x3db",
  "model/x3d+vrml": "x3dv",
  "model/x3d+xml": "x3d",
  "text/cache-manifest": "appcache",
  "text/calendar": "ics",
  "text/css": "css",
  "text/csv": "csv",
  "text/html": "html",
  "text/n3": "n3",
  "text/plain": "txt",
  "text/prs.lines.tag": "dsc",
  "text/richtext": "rtx",
  "text/sgml": "sgml",
  "text/tab-separated-values": "tsv",
  "text/troff": "t",
  "text/turtle": "ttl",
  "text/uri-list": "uri",
  "text/vcard": "vcard",
  "text/vnd.curl": "curl",
  "text/vnd.curl.dcurl": "dcurl",
  "text/vnd.curl.scurl": "scurl",
  "text/vnd.curl.mcurl": "mcurl",
  "text/vnd.dvb.subtitle": "sub",
  "text/vnd.fly": "fly",
  "text/vnd.fmi.flexstor": "flx",
  "text/vnd.graphviz": "gv",
  "text/vnd.in3d.3dml": "3dml",
  "text/vnd.in3d.spot": "spot",
  "text/vnd.sun.j2me.app-descriptor": "jad",
  "text/vnd.wap.wml": "wml",
  "text/vnd.wap.wmlscript": "wmls",
  "text/x-asm": "s",
  "text/x-c": "c",
  "text/x-fortran": "f",
  "text/x-java-source": "java",
  "text/x-opml": "opml",
  "text/x-pascal": "p",
  "text/x-nfo": "nfo",
  "text/x-setext": "etx",
  "text/x-sfv": "sfv",
  "text/x-uuencode": "uu",
  "text/x-vcalendar": "vcs",
  "text/x-vcard": "vcf",
  "video/3gpp": "3gp",
  "video/3gpp2": "3g2",
  "video/h261": "h261",
  "video/h263": "h263",
  "video/h264": "h264",
  "video/jpeg": "jpgv",
  "video/jpm": "jpm",
  "video/mj2": "mj2",
  "video/mp4": "mp4",
  "video/mpeg": "mpeg",
  "video/ogg": "ogv",
  "video/quicktime": "qt",
  "video/vnd.dece.hd": "uvh",
  "video/vnd.dece.mobile": "uvm",
  "video/vnd.dece.pd": "uvp",
  "video/vnd.dece.sd": "uvs",
  "video/vnd.dece.video": "uvv",
  "video/vnd.dvb.file": "dvb",
  "video/vnd.fvt": "fvt",
  "video/vnd.mpegurl": "mxu",
  "video/vnd.ms-playready.media.pyv": "pyv",
  "video/vnd.uvvu.mp4": "uvu",
  "video/vnd.vivo": "viv",
  "video/webm": "webm",
  "video/x-f4v": "f4v",
  "video/x-fli": "fli",
  "video/x-flv": "flv",
  "video/x-m4v": "m4v",
  "video/x-matroska": "mkv",
  "video/x-mng": "mng",
  "video/x-ms-asf": "asf",
  "video/x-ms-vob": "vob",
  "video/x-ms-wm": "wm",
  "video/x-ms-wmv": "wmv",
  "video/x-ms-wmx": "wmx",
  "video/x-ms-wvx": "wvx",
  "video/x-msvideo": "avi",
  "video/x-sgi-movie": "movie",
  "video/x-smv": "smv",
  "x-conference/x-cooltalk": "ice",
  "text/vtt": "vtt",
  "application/x-chrome-extension": "crx",
  "text/x-component": "htc",
  "video/MP2T": "ts",
  "text/event-stream": "event-stream",
  "application/x-web-app-manifest+json": "webapp",
  "text/x-lua": "lua",
  "application/x-lua-bytecode": "luac",
  "text/x-markdown": "markdown"
}
  , extension: function (mimeType) {
  var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase();
  return this.extensions[type];
}
  , define: function (map) {
  for (var type in map) {
    var exts = map[type];

    for (var i = 0; i < exts.length; i++) {
      if (false) {}

      this.types[exts[i]] = type;
    }

    // Default extension is the first one we encounter
    if (!this.extensions[type]) {
      this.extensions[type] = exts[0];
    }
  }
}
  , charsets: {lookup: function (mimeType, fallback) {
    // Assume text types are utf8
    return (/^text\//).test(mimeType) ? 'UTF-8' : fallback;
  }}
}
mime.types.constructor = undefined
mime.extensions.constructor = undefined

/***/ }),
/* 615 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var azureCommon = __webpack_require__(603);
var extend = __webpack_require__(270);
var fs = __webpack_require__(94);
var FileService = __webpack_require__(616);

var azureutil = azureCommon.util;
var FileReadStream = azureCommon.FileReadStream;
var SpeedSummary = azureCommon.SpeedSummary;
var validate = azureCommon.validate;

/**
* Downloads an Azure file into a file.
* (Not available in the JavaScript Client Library for Browsers)
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {string}             localFileName                               The local path to the file to be downloaded.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.shareSnapshotId]                   The snapshot identifier of the share.
* @param {boolean}            [options.skipSizeCheck]                     Skip the size check to perform direct download.
*                                                                         Set the option to true for small files.
*                                                                         Parallel download and speed summary won't work with this option on.
* @param {SpeedSummary}       [options.speedSummary]                      The download tracker objects.
* @param {int}                [options.parallelOperationThreadCount]      The number of parallel operations that may be performed when uploading.
* @param {string}             [options.rangeStart]                        Return only the bytes of the file in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the file in the specified range.
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading files.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `[result]{@link FileResult}` will contain the file information.
*                                                                         `response` will contain information related to this operation.
* @return {SpeedSummary}
* 
* @example
* var azure = require('azure-storage');
* var FileService = azure.createFileService();
* FileService.getFileToLocalFile('taskshare', taskdirectory', 'task1', 'task1-download.txt', function(error, serverFile) {
*   if(!error) {
*     // file available in serverFile.file variable
*   }
*/
FileService.prototype.getFileToLocalFile = function (share, directory, file, localFileName, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  userOptions.speedSummary = userOptions.speedSummary || new SpeedSummary(file);

  validate.validateArgs('getFileToLocalFile', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.string(localFileName, 'localFileName');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var writeStream = fs.createWriteStream(localFileName);
  writeStream.on('error', function (error) {
    callback(error);
  });

  this.getFileToStream(share, directory, file, writeStream, options, function (error, responseFile, response) {
    if (error) {
      writeStream.end(function () {
        // If the download failed from the beginning, remove the file.
        if (fs.existsSync(localFileName) && writeStream.bytesWritten === 0) {
          fs.unlinkSync(localFileName);
        }
        callback(error, responseFile, response);
      });
    } else {
      callback(error, responseFile, response);
    }
  });
  
  return options.speedSummary;
};


/**
* Uploads a file to storage from a local file. If the file already exists on the service, it will be overwritten.
* (Not available in the JavaScript Client Library for Browsers)
*
* @this {FileService}
* @param {string}             share                                         The share name.
* @param {string}             directory                                     The directory name. Use '' to refer to the base directory.
* @param {string}             file                                          The file name. File names may not start or end with the delimiter '/'.
* @param (string)             localFileName                                 The local path to the file to be uploaded.
* @param {object}             [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The download tracker objects;
* @param {bool}               [options.storeFileContentMD5]                 Specifies whether the file's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for files.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The file's content settings.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the file. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the file.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The file service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The file's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The file's MD5 hash.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information if an error occurs; 
*                                                                           otherwise `[result]{@link FileResult}` will contain the file information.
*                                                                           `response` will contain information related to this operation.
* @return {SpeedSummary}
*/
FileService.prototype.createFileFromLocalFile = function (share, directory, file, localFileName, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createFileFromLocalFile', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.string(localFileName, 'localFileName');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  options.speedSummary = options.speedSummary || new SpeedSummary(file);

  var self = this;
  fs.stat(localFileName, function(error, stat) {
    if (error) {
      callback(error);
    } else {
      self.createFile(share, directory, file, stat.size, options, function(error) {
        if(error) {
          callback(error);
        } else {
          var stream = new FileReadStream(localFileName, {calcContentMd5: options.storeFileContentMD5});
          self._createFileFromChunkStream(share, directory, file, stream, stat.size, options, callback);
        }
      });
    }
  });

  return options.speedSummary;
};

module.exports = FileService;

/***/ }),
/* 616 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var qs = __webpack_require__(330);
var url = __webpack_require__(274);
var util = __webpack_require__(113);
var _ = __webpack_require__(271);
var extend = __webpack_require__(270);
var path = __webpack_require__(55);

var azureCommon = __webpack_require__(272);
var Md5Wrapper = __webpack_require__(276);
var azureutil = azureCommon.util;
var SR = azureCommon.SR;
var validate = azureCommon.validate;
var SpeedSummary = azureCommon.SpeedSummary;
var StorageServiceClient = azureCommon.StorageServiceClient;
var WebResource = azureCommon.WebResource;

// Constants
var Constants = azureCommon.Constants;
var FileConstants = Constants.FileConstants;
var HeaderConstants = Constants.HeaderConstants;
var HttpConstants = Constants.HttpConstants;
var QueryStringConstants = Constants.QueryStringConstants;

// Streams
var BatchOperation = azureCommon.BatchOperation;
var SpeedSummary = azureCommon.SpeedSummary;
var ChunkAllocator = azureCommon.ChunkAllocator;
var ChunkStream = azureCommon.ChunkStream;
var ChunkStreamWithStream = azureCommon.ChunkStreamWithStream;
var FileRangeStream = __webpack_require__(617);

// Models requires
var ShareResult = __webpack_require__(618);
var DirectoryResult = __webpack_require__(619);
var FileResult = __webpack_require__(620);
var AclResult = azureCommon.AclResult;

// Errors requires
var errors = __webpack_require__(306);
var ArgumentNullError = errors.ArgumentNullError;
var ArgumentError = errors.ArgumentError;

/**
* Creates a new FileService object.
* If no connection string or storageaccount and storageaccesskey are provided,
* the AZURE_STORAGE_CONNECTION_STRING or AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY environment variables will be used.
* @class
* The FileService class is used to perform operations on the Microsoft Azure File Service.
* The File Service provides storage for binary large objects, and provides functions for working with data stored in files.
* 
* For more information on the File Service, as well as task focused information on using it in a Node.js application, see
* [How to Use the File Service from Node.js](http://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-how-to-use-file-storage/).
* The following defaults can be set on the file service.
* defaultTimeoutIntervalInMs                          The default timeout interval, in milliseconds, to use for request made via the file service.
* defaultEnableReuseSocket                            The default boolean value to enable socket reuse when uploading local files or streams.
*                                                     If the Node.js version is lower than 0.10.x, socket reuse will always be turned off.
* defaultClientRequestTimeoutInMs                     The default timeout of client requests, in milliseconds, to use for the request made via the file service.
* defaultMaximumExecutionTimeInMs                     The default maximum execution time across all potential retries, for requests made via the file service.
* defaultLocationMode                                 The default location mode for requests made via the file service.
* parallelOperationThreadCount                        The number of parallel operations that may be performed when uploading a file.
* useNagleAlgorithm                                   Determines whether the Nagle algorithm is used for requests made via the file service; true to use the  
*                                                     Nagle algorithm; otherwise, false. The default value is false.
* enableGlobalHttpAgent                               Determines whether global HTTP(s) agent is enabled; true to use Global HTTP(s) agent; otherwise, false to use
*                                                     http(s).Agent({keepAlive:true}).
* @constructor
* @extends {StorageServiceClient}
*
* @param {string} [storageAccountOrConnectionString]  The storage account or the connection string.
* @param {string} [storageAccessKey]                  The storage access key.
* @param {string|object} [host]                       The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @param {string} [sasToken]                          The Shared Access Signature token.
* @param {string} [endpointSuffix]                    The endpoint suffix.
*/
function FileService(storageAccountOrConnectionString, storageAccessKey, host, sasToken, endpointSuffix) {
  var storageServiceSettings = StorageServiceClient.getStorageSettings(storageAccountOrConnectionString, storageAccessKey, host, sasToken, endpointSuffix);

  FileService['super_'].call(this,
    storageServiceSettings._name,
    storageServiceSettings._key,
    storageServiceSettings._fileEndpoint,
    storageServiceSettings._usePathStyleUri,
    storageServiceSettings._sasToken);

  this.defaultEnableReuseSocket = Constants.DEFAULT_ENABLE_REUSE_SOCKET;
  this.singleFileThresholdInBytes = FileConstants.DEFAULT_SINGLE_FILE_GET_THRESHOLD_IN_BYTES;
  this.parallelOperationThreadCount = Constants.DEFAULT_PARALLEL_OPERATION_THREAD_COUNT;
}

util.inherits(FileService, StorageServiceClient);

// Utility methods

/**
* Create resource name
* @ignore
*
* @param {string} share          Share name
* @param {string} [directory]    Directory name
* @param {string} [file]         File name
* @return {string} The encoded resource name.
*/
function createResourceName(share, directory, file, forSAS) {
  var encode = function(name) {
    if (name && !forSAS) {
      name = encodeURIComponent(name);
      name = name.replace(/%2F/g, '/');
      name = name.replace(/%5C/g, '/');
      name = name.replace(/\+/g, '%20');
    }
    return name;
  };

  var name = share;

  if (directory) {
    // if directory does not start with '/', add it
    if (directory[0] !== '/') {
      name += ('/');
    }

    name += encode(directory);
  } 

  if (file) {
    // if the current path does not end with '/', add it
    if (name[name.length - 1] !== '/') {
      name += ('/');
    }
    
    name += encode(file);
  }

  return path.normalize(name).replace(/\\/g, '/');
}

// File service methods

/**
* Gets the properties of a storage account's File service, including Azure Storage Analytics.
*
* @this {FileService}
* @param {object}       [options]                               The request options.
* @param {LocationMode} [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}          [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}          [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}          [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}       [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}         [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                               The default value is false.
* @param {errorOrResult}  callback                              `error` will contain information if an error occurs; otherwise, `[result]{@link ServiceProperties}` will contain the properties 
*                                                               and `response` will contain information related to this operation.
*/
FileService.prototype.getServiceProperties = function (optionsOrCallback, callback) {
  return this.getAccountServiceProperties(optionsOrCallback, callback);
};

/**
* Sets the properties of a storage account's File service, including Azure Storage Analytics.
* You can also use this operation to set the default request version for all incoming requests that do not have a version specified.
*
* @this {FileService}
* @param {object}             serviceProperties                        The service properties.
* @param {object}             [options]                                The request options.
* @param {LocationMode}       [options.locationMode]                   Specifies the location mode used to decide which location the request should be sent to. 
*                                                                      Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]            The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]       The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]       The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                      The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                      execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]              Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                      The default value is false.
* @param {errorOrResponse}    callback                                 `error` will contain information
*                                                                      if an error occurs; otherwise, `response`
*                                                                      will contain information related to this operation.
*/
FileService.prototype.setServiceProperties = function (serviceProperties, optionsOrCallback, callback) {
  return this.setAccountServiceProperties(serviceProperties, optionsOrCallback, callback);
};

// Share methods

/**
* Lists a segment containing a collection of share items under the specified account.
*
* @this {FileService}
* @param {object}             currentToken                                A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.maxResults]                        Specifies the maximum number of shares to return per call to Azure storage.
* @param {string}             [options.include]                           Include this parameter to specify that the share's metadata be returned as part of the response body. (allowed values: '', 'metadata', 'snapshots' or any combination of them)
*                                                                         **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                         `entries`  gives a list of `[shares]{@link ShareResult}` and the `continuationToken` is used for the next listing operation.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.listSharesSegmented = function (currentToken, optionsOrCallback, callback) {
  this.listSharesSegmentedWithPrefix(null /* prefix */, currentToken, optionsOrCallback, callback);
};

/**
* Lists a segment containing a collection of share items whose names begin with the specified prefix under the specified account.
*
* @this {FileService}
* @param {string}             prefix                                      The prefix of the share name.
* @param {object}             currentToken                                A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {string}             [options.prefix]                            Filters the results to return only shares whose name begins with the specified prefix.
* @param {int}                [options.maxResults]                        Specifies the maximum number of shares to return per call to Azure storage.
* @param {string}             [options.include]                           Include this parameter to specify that the share's metadata be returned as part of the response body. (allowed values: '', 'metadata', 'snapshots' or any combination of them)
*                                                                         **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                         `entries`  gives a list of `[shares]{@link ShareResult}` and the `continuationToken` is used for the next listing operation.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.listSharesSegmentedWithPrefix = function (prefix, currentToken, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('listShares', function (v) {
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get()
    .withQueryOption(QueryStringConstants.COMP, 'list')
    .withQueryOption(QueryStringConstants.MAX_RESULTS, options.maxResults)
    .withQueryOption(QueryStringConstants.INCLUDE, options.include);
  
  if (!azureutil.objectIsNull(currentToken)) {
    webResource.withQueryOption(QueryStringConstants.MARKER, currentToken.nextMarker);
  }
  
  webResource.withQueryOption(QueryStringConstants.PREFIX, prefix);
  
  //options.requestLocationMode = azureutil.getNextListingLocationMode(currentToken);
  
  var processResponseCallback = function (responseObject, next) {
    responseObject.listSharesResult = null;
    
    if (!responseObject.error) {
      responseObject.listSharesResult = {
        entries: null,
        continuationToken: null
      };
      responseObject.listSharesResult.entries = [];
      
      var shares = [];
      
      if (responseObject.response.body.EnumerationResults.Shares && responseObject.response.body.EnumerationResults.Shares.Share) {
        shares = responseObject.response.body.EnumerationResults.Shares.Share;
        if (!_.isArray(shares)) {
          shares = [shares];
        }
      }
      
      shares.forEach(function (currentShare) {
        var shareResult = ShareResult.parse(currentShare);
        responseObject.listSharesResult.entries.push(shareResult);
      });
      
      if (responseObject.response.body.EnumerationResults.NextMarker) {
        responseObject.listSharesResult.continuationToken = {
          nextMarker: null,
          targetLocation: null
        };
        
        responseObject.listSharesResult.continuationToken.nextMarker = responseObject.response.body.EnumerationResults.NextMarker;
        responseObject.listSharesResult.continuationToken.targetLocation = responseObject.targetLocation;
      }
    }
    
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.listSharesResult, returnObject.response);
    };
    
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Checks whether or not a share exists on the service.
*
* @this {FileService}
* @param {string}             share                                   The share name.
* @param {object}             [options]                               The request options.
* @param {string}             [options.shareSnapshotId]               The snapshot identifier of the share.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}      callback                                `error` will contain information
*                                                                     if an error occurs; otherwise `[result]{@link ShareResult}` will contain
*                                                                     the share information including `exists` boolean member. 
*                                                                     `response` will contain information related to this operation.
*/
FileService.prototype.doesShareExist = function (share, optionsOrCallback, callback) {
  this._doesShareExist(share, false, optionsOrCallback, callback);
};

/**
* Creates a new share under the specified account.
* If a share with the same name already exists, the operation fails.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {object}             [options]                           The request options.
* @param {int}                [options.quota]                     Specifies the maximum size of the share, in gigabytes.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {object}             [options.metadata]                  The metadata key/value pairs.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.   
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `[result]{@link ShareResult}` will contain
*                                                                 the share information.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.createShare = function (share, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createShare', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.shareQuotaIsValid(userOptions.quota);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(share)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withHeader(HeaderConstants.SHARE_QUOTA, options.quota);

  webResource.addOptionalMetadataHeaders(options.metadata);

  var processResponseCallback = function (responseObject, next) {
    responseObject.shareResult = null;
    if (!responseObject.error) {
      responseObject.shareResult = new ShareResult(share);
      responseObject.shareResult.getPropertiesFromHeaders(responseObject.response.headers);

      if (options.metadata) {
        responseObject.shareResult.metadata = options.metadata;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.shareResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Creates a share snapshot.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {object}             [options]                           The request options.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {object}             [options.metadata]                  The metadata key/value pairs.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.   
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will contain
*                                                                 the ID of the snapshot.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.createShareSnapshot = function (share, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createShareSnapshot', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(share)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withQueryOption(QueryStringConstants.COMP, QueryStringConstants.SNAPSHOT);
  webResource.addOptionalMetadataHeaders(options.metadata);

  var processResponseCallback = function (responseObject, next) {
    responseObject.snapshotId = null;
    if (!responseObject.error) {
      responseObject.snapshotId = responseObject.response.headers[HeaderConstants.SNAPSHOT];
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.snapshotId, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Creates a new share under the specified account if the share does not exists.
*
* @this {FileService}
* @param {string}             share                                     The share name.
* @param {object}             [options]                                 The request options.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {object}             [options.metadata]                        The metadata key/value pairs.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResult}      callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise `[result]{@link ShareResult}` will contain
*                                                                       the share information including `created` boolean member.
*                                                                       `response` will contain information related to this operation.
*
* @example
* var azure = require('azure-storage');
* var FileService = azure.createFileService();
* FileService.createShareIfNotExists('taskshare', function(error) {
*   if(!error) {
*     // Share created or already existed
*   }
* }); 
*/
FileService.prototype.createShareIfNotExists = function (share, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createShareIfNotExists', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  delete options.shareSnapshotId;

  var self = this;
  self._doesShareExist(share, true, options, function(error, result, response) {
    var exists = result.exists;
    result.created = false;
    delete result.exists;
    
    if(error){
      callback(error, result, response);
    } else if (exists) {
      response.isSuccessful = true;
      callback(error, result, response);
    } else {
      self.createShare(share, options, function (createError, responseShare, createResponse) {
        if(!createError){
          responseShare.created = true;
        }
        else if (createError && createError.statusCode === HttpConstants.HttpResponseCodes.Conflict && createError.code === Constants.FileErrorCodeStrings.SHARE_ALREADY_EXISTS) {
          // If it was created before, there was no actual error.
          createError = null;
          createResponse.isSuccessful = true;
        }

        callback(createError, responseShare, createResponse);
      });
    }
  });
};

/**
* Retrieves a share and its properties from a specified account.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.


*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {object}             [options]                           The request options.
* @param {string}             [options.shareSnapshotId]           The snapshot identifier of the share.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `[result]{@link ShareResult}` will contain
*                                                                 information for the share.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.getShareProperties = function (share, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getShareProperties', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.head(share)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);

  //options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.shareResult = null;
    if (!responseObject.error) {
      responseObject.shareResult = new ShareResult(share);
      responseObject.shareResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.shareResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.shareResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Sets the properties for the specified share.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {object}             [properties]                                The share properties to set.
* @param {string|int}         [properties.quota]                          Specifies the maximum size of the share, in gigabytes.
* @param {object}             [options]                                   The request options.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[share]{@link ShareResult}` will contain
*                                                                         information about the share.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.setShareProperties = function (share, properties, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('setShareProperties', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.shareQuotaIsValid(userOptions.quota);
    v.callback(callback);
  });
  
  var options = extend(true, properties, userOptions);
  var resourceName = createResourceName(share);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withQueryOption(QueryStringConstants.COMP, 'properties')
    .withHeader(HeaderConstants.SHARE_QUOTA, options.quota);
  
  FileResult.setProperties(webResource, options);
  
  var processResponseCallback = function (responseObject, next) {
    responseObject.shareResult = null;
    if (!responseObject.error) {
      responseObject.shareResult = new ShareResult(share);
      responseObject.shareResult.getPropertiesFromHeaders(responseObject.response.headers);
    }
    
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.shareResult, returnObject.response);
    };
    
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Gets the share statistics for a share.
*
* @this {FileService}
* @param {string}           share                                   The share name.
* @param {object}           [options]                               The request options.
* @param {LocationMode}     [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                   Please see StorageUtilities.LocationMode for the possible values.
* @param {int}              [options.timeoutIntervalInMs]           The timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]    The timeout of client requests, in milliseconds, to use for the request.
* @param {int}              [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                   The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                   execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}           [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}             [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                   The default value is false.
* @param {errorOrResult}    callback                                `error` will contain information if an error occurs; otherwise, `[result]{@link ServiceStats}` will contain the stats and 
*                                                                   `response` will contain information related to this operation.
*/
FileService.prototype.getShareStats = function (share, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('getShareStats', function (v) {
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(share);
  var webResource = WebResource.get(resourceName)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withQueryOption(QueryStringConstants.COMP, 'stats');
  
  var processResponseCallback = function (responseObject, next) {
    responseObject.shareResult = null;
    if (!responseObject.error) {
      responseObject.shareResult = ShareResult.parse(responseObject.response.body, share);
      responseObject.shareResult.getPropertiesFromHeaders(responseObject.response.headers);
    }
    
    // function to be called after all filters
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.shareResult, returnObject.response);
    };
    
    // call the first filter
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};


/**
* Returns all user-defined metadata for the share.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
*
* @this {FileService}
* @param {string}             share                                     The share name.
* @param {object}             [options]                                 The request options.
* @param {string}             [options.shareSnapshotId]                 The snapshot identifier of the share.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResult}      callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise `[result]{@link ShareResult}` will contain
*                                                                       information for the share.
*                                                                       `response` will contain information related to this operation.
*/
FileService.prototype.getShareMetadata = function (share, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getShareMetadata', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.head(share)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withQueryOption(QueryStringConstants.COMP, 'metadata')
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.shareResult = null;
    if (!responseObject.error) {
      responseObject.shareResult = new ShareResult(share);
      responseObject.shareResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.shareResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.shareResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Sets the share's metadata.
*
* Calling the Set Share Metadata operation overwrites all existing metadata that is associated with the share.
* It's not possible to modify an individual name/value pair.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {object}             metadata                            The metadata key/value pairs.
* @param {object}             [options]                           The request options.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResponse}  callback                              `error` will contain information
*                                                                 if an error occurs; otherwise 
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.setShareMetadata = function (share, metadata, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setShareMetadata', function (v) {
    v.string(share, 'share');
    v.object(metadata, 'metadata');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(share)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withQueryOption(QueryStringConstants.COMP, 'metadata');

  webResource.addOptionalMetadataHeaders(metadata);

  var processResponseCallback = function (responseObject, next) {
    responseObject.shareResult = null;
    if (!responseObject.error) {
      responseObject.shareResult = new ShareResult(share);
      responseObject.shareResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.shareResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Gets the share's ACL.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {object}             [options]                           The request options.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `[result]{@link ShareAclResult}` will contain
*                                                                 information for the share.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.getShareAcl = function (share, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('getShareAcl', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get(share)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withQueryOption(QueryStringConstants.COMP, 'acl');
  
  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;
  
  var processResponseCallback = function (responseObject, next) {
    responseObject.shareResult = null;
    if (!responseObject.error) {
      responseObject.shareResult = new ShareResult(share);
      responseObject.shareResult.getPropertiesFromHeaders(responseObject.response.headers);
      responseObject.shareResult.signedIdentifiers = AclResult.parse(responseObject.response.body);
    }
    
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.shareResult, returnObject.response);
    };
    
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Updates the share's ACL.
*
* @this {FileService}
* @param {string}                         share                               The share name.
* @param {Object.<string, AccessPolicy>}  signedIdentifiers                   The share ACL settings. See `[AccessPolicy]{@link AccessPolicy}` for detailed information.
* @param {object}                         [options]                           The request options.
* @param {int}                            [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                            [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                            [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                             The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                             execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}                         [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}                           [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                             The default value is false.
* @param {errorOrResult}                  callback                            `error` will contain information
*                                                                             if an error occurs; otherwise `[result]{@link ShareAclResult}` will contain
*                                                                             information for the share.
*                                                                             `response` will contain information related to this operation.
*/
FileService.prototype.setShareAcl = function (share, signedIdentifiers, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('setShareAcl', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);
  
  var policies = null;
  if (signedIdentifiers) {
    if(_.isArray(signedIdentifiers)) {
      throw new TypeError(SR.INVALID_SIGNED_IDENTIFIERS);
    }
    policies = AclResult.serialize(signedIdentifiers);
  }
  
  var webResource = WebResource.put(share)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withQueryOption(QueryStringConstants.COMP, 'acl')
    .withHeader(HeaderConstants.CONTENT_LENGTH, !azureutil.objectIsNull(policies) ? Buffer.byteLength(policies) : 0)
    .withBody(policies);
  
  var processResponseCallback = function (responseObject, next) {
    responseObject.shareResult = null;
    if (!responseObject.error) {
      responseObject.shareResult = new ShareResult(share);
      responseObject.shareResult.getPropertiesFromHeaders(responseObject.response.headers);
      if (signedIdentifiers) {
        responseObject.shareResult.signedIdentifiers = signedIdentifiers;
      }
    }
    
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.shareResult, returnObject.response);
    };
    
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

/**
* Marks the specified share for deletion.
* The share and any files contained within it are later deleted during garbage collection.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {object}             [options]                           The request options.
* @param {string}             [options.deleteSnapshots]           The snapshot delete option. See azure.FileUtilities.ShareSnapshotDeleteOptions.*. 
* @param {string}             [options.shareSnapshotId]           The share snapshot identifier.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResponse}  callback                              `error` will contain information
*                                                                 if an error occurs; otherwise
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.deleteShare = function (share, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteShare', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  if (!azureutil.objectIsNull(options.shareSnapshotId) && !azureutil.objectIsNull(options.deleteSnapshots)) {
    throw new ArgumentError('options', SR.INVALID_DELETE_SNAPSHOT_OPTION);
  }

  var webResource = WebResource.del(share)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId)
    .withHeader(HeaderConstants.DELETE_SNAPSHOT, options.deleteSnapshots);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Marks the specified share for deletion if it exists.
* The share and any files contained within it are later deleted during garbage collection.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {object}             [options]                           The request options.
* @param {string}             [options.deleteSnapshots]           The snapshot delete option. See azure.FileUtilities.ShareSnapshotDeleteOptions.*. 
* @param {string}             [options.shareSnapshotId]           The share snapshot identifier.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will 
*                                                                 be true if the share exists and was deleted, or false if the share
*                                                                 did not exist.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.deleteShareIfExists = function (share, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteShareIfExists', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var self = this;
  self._doesShareExist(share, true, options, function (error, result, response) {
    if(error){
      callback(error, result.exists, response);
    } else if (!result.exists) {
      response.isSuccessful = true;
      callback(error, false, response);
    } else {
      self.deleteShare(share, options, function (deleteError, deleteResponse) {
        var deleted;
        if (!deleteError){
          deleted = true;
        } else if (deleteError && deleteError.statuscode === HttpConstants.HttpResponseCodes.NotFound && deleteError.code === Constants.FileErrorCodeStrings.SHARE_NOT_FOUND) {
          // If it was deleted already, there was no actual error.
          deleted = false;
          deleteError = null;
          deleteResponse.isSuccessful = true;
        }

        callback(deleteError, deleted, deleteResponse);
      });
    }
  });
};

// Directory methods

/**
* Checks whether or not a directory exists on the service.
*
* @this {FileService}
* @param {string}             share                                   The share name.
* @param {string}             directory                               The directory name. Use '' to refer to the base directory.
* @param {object}             [options]                               The request options.
* @param {string}             [options.shareSnapshotId]               The share snapshot identifier.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {errorOrResult}      callback                                `error` will contain information
*                                                                     if an error occurs; otherwise `[result]{@link DirectoryResult}` will contain
*                                                                     the directory information including `exists` boolean member.
*                                                                     `response` will contain information related to this operation.
*/
FileService.prototype.doesDirectoryExist = function (share, directory, optionsOrCallback, callback) {
  this._doesDirectoryExist(share, directory, false, optionsOrCallback, callback);
};

/**
* Creates a new directory under the specified account.
* If a directory with the same name already exists, the operation fails.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {string}             directory                           The directory name.
* @param {object}             [options]                           The request options.
* @param {object}             [options.metadata]                  The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.    
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `[result]{@link DirectoryResult}` will contain
*                                                                 the directory information.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.createDirectory = function (share, directory, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createDirectory', function (v) {
    v.string(share, 'share');
    v.string(directory, 'directory');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(createResourceName(share, directory))
    .withQueryOption(QueryStringConstants.RESTYPE, 'directory');

  webResource.addOptionalMetadataHeaders(options.metadata);

  var processResponseCallback = function (responseObject, next) {
    responseObject.directoryResult = null;
    if (!responseObject.error) {
      responseObject.directoryResult = new DirectoryResult(directory);
      responseObject.directoryResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.directoryResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Creates a new directory under the specified account if the directory does not exists.
*
* @this {FileService}
* @param {string}             share                                     The share name.
* @param {string}             directory                                 The directory name.
* @param {object}             [options]                                 The request options.
* @param {object}             [options.metadata]                        The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResult}      callback                                  `error` will contain information
*                                                                       if an error occurs; otherwise `[result]{@link DirectoryResult}` will contain
*                                                                       the directory information including `created` boolean member.
*                                                                       already exists.
*                                                                       `response` will contain information related to this operation.
*
* @example
* var azure = require('azure-storage');
* var FileService = azure.createFileService();
* FileService.createDirectoryIfNotExists('taskshare', taskdirectory', function(error) {
*   if(!error) {
*     // Directory created or already existed
*   }
* }); 
*/
FileService.prototype.createDirectoryIfNotExists = function (share, directory, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createDirectoryIfNotExists', function (v) {
    v.string(share, 'share');
    v.string(directory, 'directory');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  delete options.shareSnapshotId;
  
  var self = this;
  self._doesDirectoryExist(share, directory, true, options, function(error, result, response) {
    var exists = result.exists;
    result.created = false;
    delete result.exists;
    
    if(error){
      callback(error, result, response);
    } else if (exists) {
      response.isSuccessful = true;
      callback(error, result, response);
    } else {
      self.createDirectory(share, directory, options, function (createError, responseDirectory, createResponse) {
        if(!createError){
          responseDirectory.created = true;
        }
        else if (createError && createError.statusCode === HttpConstants.HttpResponseCodes.Conflict && createError.code === Constants.StorageErrorCodeStrings.RESOURCE_ALREADY_EXISTS) {
          // If it was created before, there was no actual error.
          createError = null;
          createResponse.isSuccessful = true;
        }

        callback(createError, responseDirectory, createResponse);
      });
    }
  });
};

/**
* Retrieves a directory and its properties from a specified account.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {string}             directory                           The directory name. Use '' to refer to the base directory.
* @param {object}             [options]                           The request options.
* @param {string}             [options.shareSnapshotId]           The snapshot identifier of the share.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `[result]{@link DirectoryResult}` will contain
*                                                                 information for the directory.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.getDirectoryProperties = function (share, directory, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getDirectoryProperties', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.head(createResourceName(share, directory))
    .withQueryOption(QueryStringConstants.RESTYPE, 'directory')
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);
    
  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.directoryResult = null;
    if (!responseObject.error) {
      responseObject.directoryResult = new DirectoryResult(directory);
      responseObject.directoryResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.directoryResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.directoryResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Marks the specified directory for deletion. The directory must be empty before it can be deleted.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {string}             directory                           The directory name.
* @param {object}             [options]                           The request options.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResponse}  callback                              `error` will contain information
*                                                                 if an error occurs; otherwise
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.deleteDirectory = function (share, directory, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteDirectory', function (v) {
    v.string(share, 'share');
    v.string(directory, 'directory');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.del(createResourceName(share, directory))
    .withQueryOption(QueryStringConstants.RESTYPE, 'directory');
  
  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Marks the specified directory for deletion if it exists. The directory must be empty before it can be deleted.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {string}             directory                           The directory name.
* @param {object}             [options]                           The request options.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will 
*                                                                 be true if the directory exists and was deleted, or false if the directory
*                                                                 did not exist.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.deleteDirectoryIfExists = function (share, directory, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteDirectoryIfExists', function (v) {
    v.string(share, 'share');
    v.string(directory, 'directory');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  delete options.shareSnapshotId;

  var self = this;
  self._doesDirectoryExist(share, directory, true, options, function(error, result, response) {
    if(error){
      callback(error, result.exists, response);
    } else if (!result.exists) {
      response.isSuccessful = true;
      callback(error, false, response);
    } else {
      self.deleteDirectory(share, directory, options, function (deleteError, deleteResponse) {
        var deleted;
        if (!deleteError){
          deleted = true;
        } else if (deleteError && deleteError.statuscode === HttpConstants.HttpResponseCodes.NotFound && deleteError.code === Constants.StorageErrorCodeStrings.RESOURCE_NOT_FOUND) {
          // If it was deleted already, there was no actual error.
          deleted = false;
          deleteError = null;
          deleteResponse.isSuccessful = true;
        }

        callback(deleteError, deleted, deleteResponse);
      });
    }
  });
};

/**
* Lists a segment containing a collection of file items in the directory.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {string}             directory                           The directory name. Use '' to refer to the base directory.
* @param {object}             currentToken                        A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                           The request options.
* @param {string}             [options.shareSnapshotId]           The snapshot identifier of the share.
* @param {int}                [options.maxResults]                Specifies the maximum number of files to return per call to Azure ServiceClient. This does NOT affect list size returned by this function. (maximum: 5000)
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will contain
*                                                                 entries.files which contains a list of `[files]{@link FileResult}`, entries.directories which contains a list of `[directories]{@link DirectoryResult}` and the continuationToken for the next listing operation.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.listFilesAndDirectoriesSegmented = function (share, directory, currentToken, optionsOrCallback, callback) {
  this.listFilesAndDirectoriesSegmentedWithPrefix(share, directory, null /*prefix*/, currentToken, optionsOrCallback, callback);
};


/**
* Lists a segment containing a collection of file items in the directory.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {string}             directory                           The directory name. Use '' to refer to the base directory.
* @param {string}             prefix                              The prefix of the directory/files name.
* @param {object}             currentToken                        A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                           The request options.
* @param {string}             [options.shareSnapshotId]           The snapshot identifier of the share.
* @param {int}                [options.maxResults]                Specifies the maximum number of files to return per call to Azure ServiceClient. This does NOT affect list size returned by this function. (maximum: 5000)
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will contain
*                                                                 entries.files which contains a list of `[files]{@link FileResult}`, entries.directories which contains a list of `[directories]{@link DirectoryResult}` and the continuationToken for the next listing operation.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.listFilesAndDirectoriesSegmentedWithPrefix = function (share, directory, prefix, currentToken, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('listFilesSegmented', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get(createResourceName(share, directory))
    .withQueryOption(QueryStringConstants.RESTYPE, 'directory')
    .withQueryOption(QueryStringConstants.COMP, 'list')
    .withQueryOption(QueryStringConstants.MAX_RESULTS, options.maxResults)
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);

  if (!azureutil.objectIsNull(currentToken)) {
    webResource.withQueryOption(QueryStringConstants.MARKER, currentToken.nextMarker);
  }

  webResource.withQueryOption(QueryStringConstants.PREFIX, prefix);

  var processResponseCallback = function (responseObject, next) {
    responseObject.listResult = null;
    if (!responseObject.error) {
      responseObject.listResult = {
        entries: null,
        continuationToken: null
      };

      responseObject.listResult.entries = {};
      responseObject.listResult.entries.files = [];
      responseObject.listResult.entries.directories = [];
      var files = [];
      var directories = [];

      // parse files
      if (responseObject.response.body.EnumerationResults.Entries.File) {
        files = responseObject.response.body.EnumerationResults.Entries.File;
        if (!_.isArray(files)) {
          files = [ files ];
        }
      }

      files.forEach(function (currentFile) {
        var fileResult = FileResult.parse(currentFile);
        responseObject.listResult.entries.files.push(fileResult);
      });

      // parse directories
      if (responseObject.response.body.EnumerationResults.Entries.Directory) {
        directories = responseObject.response.body.EnumerationResults.Entries.Directory;
        if (!_.isArray(directories)) {
          directories = [ directories ];
        }
      }

      directories.forEach(function (currentDirectory) {
        var directoryResult = DirectoryResult.parse(currentDirectory);
        responseObject.listResult.entries.directories.push(directoryResult);
      });

      // parse continuation token
      if(responseObject.response.body.EnumerationResults.NextMarker) {
        responseObject.listResult.continuationToken = {
          nextMarker: null,
          targetLocation: null
        };

        responseObject.listResult.continuationToken.nextMarker = responseObject.response.body.EnumerationResults.NextMarker;
        responseObject.listResult.continuationToken.targetLocation = responseObject.targetLocation;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.listResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Returns all user-defined metadata for the specified directory.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.shareSnapshotId]                   The snapshot identifier of the share.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link DirectoryResult}` will contain
*                                                                         information about the directory.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.getDirectoryMetadata = function (share, directory, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('getDirectoryMetadata', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.shareNameIsValid(share);
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(share, directory);
  var webResource = WebResource.head(resourceName)
    .withQueryOption(QueryStringConstants.RESTYPE, 'directory')
    .withQueryOption(QueryStringConstants.COMP, 'metadata')
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.directoryResult = null;
    if (!responseObject.error) {
      responseObject.directoryResult = new DirectoryResult(directory);
      responseObject.directoryResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.directoryResult.getPropertiesFromHeaders(responseObject.response.headers);
    }
    
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.directoryResult, returnObject.response);
    };
    
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Sets user-defined metadata for the specified directory as one or more name-value pairs 
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {object}             metadata                                    The metadata key/value pairs.
* @param {object}             [options]                                   The request options.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link DirectoryResult}` will contain
*                                                                         information on the directory.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.setDirectoryMetadata = function (share, directory, metadata, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('setDirectoryMetadata', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.shareNameIsValid(share);
    v.object(metadata, 'metadata');
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(share, directory);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.RESTYPE, 'directory')
    .withQueryOption(QueryStringConstants.COMP, 'metadata');
  
  webResource.addOptionalMetadataHeaders(metadata);
  
  var processResponseCallback = function (responseObject, next) {
    responseObject.directoryResult = null;
    if (!responseObject.error) {
      responseObject.directoryResult = new DirectoryResult(directory);
      responseObject.directoryResult.getPropertiesFromHeaders(responseObject.response.headers);
    }
    
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.directoryResult, returnObject.response);
    };
    
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};

// File methods

/**
* Retrieves a shared access signature token.
*
* @this {FileService}
* @param {string}                   share                                               The share name.
* @param {string}                   [directory]                                         The directory name. Use '' to refer to the base directory.
* @param {string}                   [file]                                              The file name.
* @param {object}                   sharedAccessPolicy                                  The shared access policy.
* @param {string}                   [sharedAccessPolicy.Id]                             The signed identifier.
* @param {object}                   [sharedAccessPolicy.AccessPolicy.Permissions]       The permission type.
* @param {date|string}              [sharedAccessPolicy.AccessPolicy.Start]             The time at which the Shared Access Signature becomes valid (The UTC value will be used).
* @param {date|string}              [sharedAccessPolicy.AccessPolicy.Expiry]            The time at which the Shared Access Signature becomes expired (The UTC value will be used).
* @param {string}                   [sharedAccessPolicy.AccessPolicy.IPAddressOrRange]  An IP address or a range of IP addresses from which to accept requests. When specifying a range, note that the range is inclusive.
* @param {string}                   [sharedAccessPolicy.AccessPolicy.Protocols]         The protocols permitted for a request made with the account SAS. 
*                                                                                       Possible values are both HTTPS and HTTP (https,http) or HTTPS only (https). The default value is https,http.
* @param {object}                   [headers]                                           The optional header values to set for a file returned wth this SAS.
* @param {string}                   [headers.cacheControl]                              The optional value of the Cache-Control response header to be returned when this SAS is used.
* @param {string}                   [headers.contentType]                               The optional value of the Content-Type response header to be returned when this SAS is used.
* @param {string}                   [headers.contentEncoding]                           The optional value of the Content-Encoding response header to be returned when this SAS is used.
* @param {string}                   [headers.contentLanguage]                           The optional value of the Content-Language response header to be returned when this SAS is used.
* @param {string}                   [headers.contentDisposition]                        The optional value of the Content-Disposition response header to be returned when this SAS is used.
* @return {string}                                                                      The shared access signature query string. Note this string does not contain the leading "?".
*/
FileService.prototype.generateSharedAccessSignature = function (share, directory, file, sharedAccessPolicy, headers) {
  // check if the FileService is able to generate a shared access signature
  if (!this.storageCredentials || !this.storageCredentials.generateSignedQueryString) {
    throw new Error(SR.CANNOT_CREATE_SAS_WITHOUT_ACCOUNT_KEY);
  }

  // Validate share name. File name is optional.
  validate.validateArgs('generateSharedAccessSignature', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.object(sharedAccessPolicy, 'sharedAccessPolicy');
  });

  var resourceType = FileConstants.ResourceTypes.SHARE;
  if (file) {
    validate.validateArgs('generateSharedAccessSignature', function (v) {
      v.stringAllowEmpty(directory, 'directory');
      v.string(file, 'file');
    });
    resourceType = FileConstants.ResourceTypes.FILE;
  } else {
    directory = ''; // If file is not set, directory is not a part of the string to sign.
  }

  if (sharedAccessPolicy.AccessPolicy) {
    if (!azureutil.objectIsNull(sharedAccessPolicy.AccessPolicy.Start)) {
      if (!_.isDate(sharedAccessPolicy.AccessPolicy.Start)) {
        sharedAccessPolicy.AccessPolicy.Start = new Date(sharedAccessPolicy.AccessPolicy.Start);
      }
 
      sharedAccessPolicy.AccessPolicy.Start = azureutil.truncatedISO8061Date(sharedAccessPolicy.AccessPolicy.Start);
    }

    if (!azureutil.objectIsNull(sharedAccessPolicy.AccessPolicy.Expiry)) {
      if (!_.isDate(sharedAccessPolicy.AccessPolicy.Expiry)) {
        sharedAccessPolicy.AccessPolicy.Expiry = new Date(sharedAccessPolicy.AccessPolicy.Expiry);
      }

      sharedAccessPolicy.AccessPolicy.Expiry = azureutil.truncatedISO8061Date(sharedAccessPolicy.AccessPolicy.Expiry);
    }
  }

  var resourceName = createResourceName(share, directory, file, true);
  return this.storageCredentials.generateSignedQueryString(Constants.ServiceType.File, resourceName, sharedAccessPolicy, null, { headers: headers, resourceType: resourceType });
};

/**
* Retrieves a file or directory URL.
*
* @param {string}                   share                    The share name.
* @param {string}                   directory                The directory name. Use '' to refer to the base directory.
* @param {string}                   [file]                   The file name. File names may not start or end with the delimiter '/'.
* @param {string}                   [sasToken]               The Shared Access Signature token.
* @param {boolean}                  [primary]                A boolean representing whether to use the primary or the secondary endpoint.
* @param {string}                   [shareSnapshotId]        The snapshot identifier of the share.
* @return {string}                                           The formatted URL string.
* @example
* var azure = require('azure-storage');
* var fileService = azure.createFileService();
* var sharedAccessPolicy = {
*   AccessPolicy: {
*     Permissions: azure.FileUtilities.SharedAccessPermissions.READ,
*     Start: startDate,
*     Expiry: expiryDate
*   },
* };
* 
* var sasToken = fileService.generateSharedAccessSignature(shareName, directoryName, fileName, sharedAccessPolicy);
* var url = fileService.getUrl(shareName, directoryName, fileName, sasToken, true);
*/
FileService.prototype.getUrl = function (share, directory, file, sasToken, primary, shareSnapshotId) {
  validate.validateArgs('getUrl', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.shareNameIsValid(share);
  });

  var host;
  if(!azureutil.objectIsNull(primary) && primary === false) {
    host = this.host.secondaryHost;
  } else {
    host = this.host.primaryHost;
  }
  host = azureutil.trimPortFromUri(host);
  if(host && host.lastIndexOf('/') !== (host.length - 1)){
    host = host + '/';
  }

  var name = createResourceName(share, directory, file);
  var query = qs.parse(sasToken);
  if(shareSnapshotId) {
    query[QueryStringConstants.SHARE_SNAPSHOT] = shareSnapshotId;
  }
  return url.resolve(host, url.format({pathname: this._getPath(name), query: query}));
};

/**
* Returns all user-defined metadata, standard HTTP properties, and system properties for the file.
* It does not return or modify the content of the file.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.shareSnapshotId]                   The snapshot identifier of the share.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link FileResult}` will contain
*                                                                         information about the file.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.getFileProperties = function (share, directory, file, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getFileProperties', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(share, directory, file);
  var webResource = WebResource.head(resourceName)
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.fileResult = null;
    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(share, directory, file);
      responseObject.fileResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers, true);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Returns all user-defined metadata for the specified file.
* It does not modify or return the content of the file.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.shareSnapshotId]                   The snapshot identifier of the share.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link FileResult}` will contain
*                                                                         information about the file.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.getFileMetadata = function (share, directory, file, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getFileMetadata', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(share, directory, file);
  var webResource = WebResource.head(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'metadata')
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.fileResult = null;
    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(share, directory, file);
      responseObject.fileResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Sets user-defined properties for the specified file.
* It does not modify or return the content of the file.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {object}             [properties]                                The file properties to set.
* @param {string}             [properties.contentType]                    The MIME content type of the file. The default type is application/octet-stream.
* @param {string}             [properties.contentEncoding]                The content encodings that have been applied to the file.
* @param {string}             [properties.contentLanguage]                The natural languages used by this resource.
* @param {string}             [properties.cacheControl]                   The file's cache control.
* @param {string}             [properties.contentDisposition]             The file's content disposition.
* @param {string}             [properties.contentLength]                  Resizes a file to the specified size. If the specified byte value is less than the current size of the file, 
*                                                                         then all ranges above the specified byte value are cleared.
* @param {string}             [properties.contentMD5]                     The file's MD5 hash.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link FileResult}` will contain
*                                                                         information about the file.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.setFileProperties = function (share, directory, file, properties, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setFileProperties', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {contentSettings: properties, contentLength: properties.contentLength }, userOptions);
  var resourceName = createResourceName(share, directory, file);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'properties');

  FileResult.setProperties(webResource, options);

  var processResponseCallback = function(responseObject, next) {
    responseObject.fileResult = null;
    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(share, directory, file);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers);
    }
    
    var finalCallback = function(returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Sets user-defined metadata for the specified file as one or more name-value pairs 
* It does not modify or return the content of the file.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {object}             metadata                                    The metadata key/value pairs.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link FileResult}` will contain
*                                                                         information on the file.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.setFileMetadata = function (share, directory, file, metadata, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setFileMetadata', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.object(metadata, 'metadata');
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(share, directory, file);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'metadata');

  webResource.addOptionalMetadataHeaders(metadata);

  var processResponseCallback = function (responseObject, next) {
    responseObject.fileResult = null;
    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(share, directory, file);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Resizes a file.
*
* @this {FileService}
* @param {string}               share                                       The share name.
* @param {string}               directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}               file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {String}               size                                        The size of the file, in bytes.
* @param {object}               [options]                                   The request options.
* @param {int}                  [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                  [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                  [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}               [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}                 [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}        callback                                    `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link FileResult}` will contain
*                                                                           information about the file.
*                                                                           `response` will contain information related to this operation.
*/
FileService.prototype.resizeFile = function (share, directory, file, size, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('resizeFile', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.value(size);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(share, directory, file);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'properties');

  webResource.withHeader(HeaderConstants.FILE_CONTENT_LENGTH, size);

  var processResponseCallback = function(responseObject, next) {
    responseObject.fileResult = null;
    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(share, directory, file);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers);
    }
    
    var finalCallback = function(returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);  
};

/**
* Checks whether or not a file exists on the service.
*
* @this {FileService}
* @param {string}             share                                   The share name.
* @param {string}             directory                               The directory name. Use '' to refer to the base directory.
* @param {string}             file                                    The file name. File names may not start or end with the delimiter '/'.
* @param {object}             [options]                               The request options.
* @param {string}             [options.shareSnapshotId]               The snapshot identifier of the share.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {Function(error, result, response)}  callback                `error` will contain information
*                                                                     if an error occurs; otherwise `[result]{@link FileResult}` will contain
*                                                                     the file information including the `exists` boolean member. 
*                                                                     `response` will contain information related to this operation.
*/
FileService.prototype.doesFileExist = function (share, directory, file, optionsOrCallback, callback) {
  this._doesFileExist(share, directory, file, false, optionsOrCallback, callback);
};

/**
* Creates a file of the specified length. If the file already exists on the service, it will be overwritten.
*
* @this {FileService}
* @param {string}             share                                         The share name.
* @param {string}             directory                                     The directory name. Use '' to refer to the base directory.
* @param {string}             file                                          The file name. File names may not start or end with the delimiter '/'.
* @param {int}                length                                        The length of the file in bytes.
* @param {object}             [options]                                     The request options.
* @param {object}             [options.contentSettings]                     The file's content settings.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the file. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the file.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The file service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The file's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The file's MD5 hash.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information
*                                                                           if an error occurs; otherwise `[result]{@link FileResult}` will contain
*                                                                           the file information.
*                                                                           `response` will contain information related to this operation.
*/
FileService.prototype.createFile = function (share, directory, file, length, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  validate.validateArgs('createFile', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.value(length);
    v.callback(callback);
  });

  var resourceName = createResourceName(share, directory, file);
  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(resourceName)
    .withHeader(HeaderConstants.TYPE, 'file')
    .withHeader(HeaderConstants.FILE_CONTENT_LENGTH, length);

  FileResult.setProperties(webResource, options);

  var processResponseCallback = function(responseObject, next) {
    responseObject.fileResult = null;
    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(share, directory, file);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers);
    }
    
    var finalCallback = function(returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Marks the specified file for deletion. The file is later deleted during garbage collection.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResponse}  callback                                      `error` will contain information
*                                                                         if an error occurs; `response` will contain information related to this operation.
*/
FileService.prototype.deleteFile = function (share, directory, file, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteFile', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(share, directory, file);
  var webResource = WebResource.del(resourceName);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Marks the specified file for deletion if it exists. The file is later deleted during garbage collection.
*
* @this {FileService}
* @param {string}             share                               The share name.
* @param {string}             directory                           The directory name. Use '' to refer to the base directory.
* @param {string}             file                                The file name. File names may not start or end with the delimiter '/'. 
* @param {object}             [options]                           The request options.
* @param {LocationMode}       [options.locationMode]              Specifies the location mode used to decide which location the request should be sent to. 
*                                                                 Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]       The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]  The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]  The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                 The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                 execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]           A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]         Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                 The default value is false.
* @param {errorOrResult}      callback                            `error` will contain information
*                                                                 if an error occurs; otherwise `result` will
*                                                                 be true if the file was deleted, or false if the file
*                                                                 does not exist.
*                                                                 `response` will contain information related to this operation.
*/
FileService.prototype.deleteFileIfExists = function (share, directory, file, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteFileIfExists', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  delete options.shareSnapshotId;

  var self = this;
  self._doesFileExist(share, directory, file, true, options, function(error, result, response) {
    if(error){
      callback(error, result.exists, response);
    } else if (!result.exists) {
      response.isSuccessful = true;
      callback(error, false, response);
    } else {
      self.deleteFile(share, directory, file, options, function (deleteError, deleteResponse) {
        var deleted;
        if (!deleteError){
          deleted = true;
        } else if (deleteError && deleteError.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound && deleteError.code === Constants.FileErrorCodeStrings.FILE_NOT_FOUND) {
          // If it was deleted already, there was no actual error.
          deleted = false;
          deleteError = null;
          deleteResponse.isSuccessful = true;
        }

        callback(deleteError, deleted, deleteResponse);
      });
    }
  });
};

/**
* Downloads a file into a text string.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.shareSnapshotId]                   The snapshot identifier of the share.
* @param {int}                [options.rangeStart]                        The range start.
* @param {int}                [options.rangeEnd]                          The range end.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading files.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {FileService~FileToText}  callback                               `error` will contain information
*                                                                         if an error occurs; otherwise `text` will contain the file contents,
*                                                                         and `[file]{@link FileResult}` will contain the file information.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.getFileToText = function (share, directory, file, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getFileToText', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(share, directory, file);
  var webResource = WebResource.get(resourceName)
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId)
    .withRawResponse();

  FileResult.setHeaders(webResource, options);
  this._setRangeContentMD5Header(webResource, options);

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.text = null;
    responseObject.fileResult = null;

    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(share, directory, file);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers, true);
      responseObject.fileResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.text = responseObject.response.body;

      self._validateLengthAndMD5(options, responseObject);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.text, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Provides a stream to read from a file.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.shareSnapshotId]                   The snapshot identifier of the share.
* @param {string}             [options.rangeStart]                        Return only the bytes of the file in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the file in the specified range.
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading files.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `[result]{@link FileResult}` will contain the file information.
*                                                                         `response` will contain information related to this operation.
* @return {Readable}                                                      A Node.js Readable stream.
* @example
* var azure = require('azure-storage');
* var fileService = azure.createFileService();
* var writable = fs.createWriteStream(destinationFileNameTarget);
* fileService.createReadStream(shareName, directoryName, fileName).pipe(writable);
*/
FileService.prototype.createReadStream = function (share, directory, file, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createReadStream', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
  });

  var options = extend(true, {}, userOptions);

  var readStream = new ChunkStream(options);
  this.getFileToStream(share, directory, file, readStream, options, function (error, fileResponse, response) {
    if(error) {
      readStream.emit('error', error);
    }

    if(callback) {
      callback(error, fileResponse, response);
    }
  });

  return readStream;
};

/**
* Downloads a file into a stream.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {Writable}           writeStream                                 The Node.js Writable stream.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.shareSnapshotId]                   The snapshot identifier of the share.
* @param {boolean}            [options.skipSizeCheck]                     Skip the size check to perform direct download.
*                                                                         Set the option to true for small files.
*                                                                         Parallel download and speed summary won't work with this option on.
* @param {SpeedSummary}       [options.speedSummary]                      The download tracker objects.
* @param {int}                [options.parallelOperationThreadCount]      The number of parallel operations that may be performed when uploading.
* @param {string}             [options.rangeStart]                        Return only the bytes of the file in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the file in the specified range. 
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading files.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `[result]{@link FileResult}` will contain the file information.
*                                                                         `response` will contain information related to this operation.
* @return {SpeedSummary}
* 
*
* @example
* var azure = require('azure-storage');
* var FileService = azure.createFileService();
* FileService.getFileToStream('taskshare', taskdirectory', 'task1', fs.createWriteStream('task1-download.txt'), function(error, serverFile) {
*   if(!error) {
*     // file available in serverFile.file variable
*   }
* }); 
*/
FileService.prototype.getFileToStream = function (share, directory, file, writeStream, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  userOptions.speedSummary = userOptions.speedSummary || new SpeedSummary(file);  
  
  validate.validateArgs('getFileToStream', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.object(writeStream, 'writeStream');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var propertiesRequestOptions = {
    timeoutIntervalInMs : options.timeoutIntervalInMs,
    clientRequestTimeoutInMs : options.clientRequestTimeoutInMs,
    accessConditions : options.accessConditions,
    shareSnapshotId : options.shareSnapshotId
  };
  
  if (options.skipSizeCheck) {
    this._getFileToStream(share, directory, file, writeStream, options, callback);
  } else {
    var self = this;
    this.getFileProperties(share, directory, file, propertiesRequestOptions, function (error, properties) {
      if (error) {
        callback(error);
      } else {
        var size;
        if (options.rangeStart) {
          var endOffset = properties.contentLength - 1;
          var end = options.rangeEnd ? Math.min(options.rangeEnd, endOffset) : endOffset;
          size = end - options.rangeStart + 1;
        } else {
          size = properties.contentLength;
        }
        options.speedSummary.totalSize = size;
        
        if (size > self.singleFileThresholdInBytes) {
          azureutil.setObjectInnerPropertyValue(options, ['contentSettings', 'contentMD5'], azureutil.tryGetValueChain(properties, ['contentSettings', 'contentMD5'], null));
          self._getFileToRangeStream(share, directory, file, writeStream, options, callback);
        } else {
          self._getFileToStream(share, directory, file, writeStream, options, callback);
        }
      }
    });
  }
  
  return options.speedSummary;
};

/**
* Lists file ranges. Lists all of the ranges by default, or only the ranges over a specific range of bytes if rangeStart and rangeEnd are specified.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.shareSnapshotId]                   The snapshot identifier of the share.
* @param {int}                [options.rangeStart]                        The range start.
* @param {int}                [options.rangeEnd]                          The range end.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link FileResult}` will contain
*                                                                         the range information.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.listRanges = function (share, directory, file, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('listRanges', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var resourceName = createResourceName(share, directory, file);
  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'rangelist')
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);

  FileResult.setHeaders(webResource, options);

  var processResponseCallback = function (responseObject, next) {
    responseObject.ranges = null;
    if (!responseObject.error) {
      responseObject.ranges = [];

      var ranges = [];
      if (responseObject.response.body.Ranges.Range) {
        ranges = responseObject.response.body.Ranges.Range;

        if (!_.isArray(ranges)) {
          ranges = [ ranges ];
        }
      }

      ranges.forEach(function (fileRange) {
        var range = {
          start: parseInt(fileRange.Start, 10),
          end: parseInt(fileRange.End, 10)
        };

        responseObject.ranges.push(range);
      });
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.ranges, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Clears a range. Clears all of the ranges by default, or only the ranges over a specific range of bytes if rangeStart and rangeEnd are specified.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {int}                rangeStart                                  The range start.
* @param {int}                rangeEnd                                    The range end.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link FileResult}` will contain
*                                                                         the directory information.
*                                                                        `response` will contain information related to this operation.
*/
FileService.prototype.clearRange = function (share, directory, file, rangeStart, rangeEnd, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('clearRange', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.value(rangeStart);
    v.value(rangeEnd);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var request = this._updateFilesImpl(share, directory, file, rangeStart, rangeEnd, FileConstants.RangeWriteOptions.CLEAR, options);

  var processResponseCallback = function(responseObject, next) {
    responseObject.fileResult = null;
    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(share, directory, file);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers);
    }
    
    var finalCallback = function(returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(request, null, options, processResponseCallback);
};

/**
* Updates a range from a stream.
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {Readable}           readStream                                  The Node.js Readable stream.
* @param {int}                rangeStart                                  The range start.
* @param {int}                rangeEnd                                    The range end.
* @param {object}             [options]                                   The request options.
* @param {bool}               [options.useTransactionalMD5]               Calculate and send/validate content MD5 for transactions.
* @param {string}             [options.transactionalContentMD5]           An optional hash value used to ensure transactional integrity for the page. 
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link FileResult}` will contain
*                                                                         the file information.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype.createRangesFromStream = function (share, directory, file, readStream, rangeStart, rangeEnd, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createRangesFromStream', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.object(readStream, 'readStream');
    v.shareNameIsValid(share);
    v.value(rangeStart);
    v.value(rangeEnd);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var requiresContentMD5 = azureutil.objectIsNull(options.transactionalContentMD5) && options.useTransactionalMD5 === true;

  var length = (rangeEnd - rangeStart) + 1;
  if(length > FileConstants.MAX_UPDATE_FILE_SIZE) {
    throw new Error(SR.INVALID_FILE_RANGE_FOR_UPDATE);
  }

  var self = this;
  if (requiresContentMD5) {
    azureutil.calculateMD5(readStream, length, options, function(internalBuff, contentMD5) {
      options.transactionalContentMD5 = contentMD5;
      self._createRanges(share, directory, file, internalBuff, null /* stream */, rangeStart, rangeEnd, options, callback);
    });
  } else {
    self._createRanges(share, directory, file, null /* text */, readStream, rangeStart, rangeEnd, options, callback);
  }
};

/**
* Uploads a file from a text string. If the file already exists on the service, it will be overwritten.
*
* @this {FileService}
* @param {string}             share                                         The share name.
* @param {string}             directory                                     The directory name. Use '' to refer to the base directory.
* @param {string}             file                                          The file name. File names may not start or end with the delimiter '/'.
* @param {string|object}      text                                          The file text, as a string or in a Buffer.
* @param {object}             [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The upload tracker objects;
* @param {bool}               [options.storeFileContentMD5]                 Specifies whether the file's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for files.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The file's content settings.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the file. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the file.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The file service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The file's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The file's MD5 hash.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {FileService~FileToText}  callback                                 `error` will contain information
*                                                                           if an error occurs; otherwise `text` will contain the file contents,
*                                                                           and `[file]{@link FileResult}` will contain the file information.
*                                                                           `response` will contain information related to this operation.
* @example
* var azure = require('azure-storage');
* var fileService = azure.createFileService();
*
* var text = 'Hello World!';
*
* fileService.createFileFromText('taskshare', 'taskdirectory', 'taskfile', text, function(error, result, response) {
*   if (!error) {
*     // file created
*   }
* });
*/
FileService.prototype.createFileFromText = function (share, directory, file, text, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createFileFromText', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var length = azureutil.objectIsNull(text) ? 0 : ((Buffer.isBuffer(text) ? text.length : Buffer.byteLength(text)));
  if (length > FileConstants.MAX_UPDATE_FILE_SIZE) {
    throw new Error(SR.INVALID_FILE_LENGTH);
  }

  if(options.storeFileContentMD5 && azureutil.objectIsNull(azureutil.tryGetValueChain(options, ['contentSettings', 'contentMD5'], null))) {
     azureutil.setObjectInnerPropertyValue(options, ['contentSettings', 'contentMD5'], azureutil.getContentMd5(text));
  }

  var self = this;
  this.createFile(share, directory, file, length, options, function(error, fileResult, response) {
    if(error || length === 0) {
      callback(error, fileResult, response);
    }
    else {
      self._createRanges(share, directory, file, text, null, 0, length - 1, options, callback);
    }
  });
};

/**
* Uploads a file from a stream. If the file already exists on the service, it will be overwritten.
*
* @this {FileService}
* @param {string}             share                                         The share name.
* @param {string}             directory                                     The directory name. Use '' to refer to the base directory.
* @param {string}             file                                          The file name. File names may not start or end with the delimiter '/'. 
* @param (Stream)             stream                                        Stream to the data to store.
* @param {int}                streamLength                                  The length of the stream to upload.
* @param {object}             [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The download tracker objects;
* @param {bool}               [options.storeFileContentMD5]                 Specifies whether the file's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for files.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The file's content settings.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the file. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the file.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The file service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The file's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The file's MD5 hash.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information if an error occurs; 
*                                                                           otherwise `[result]{@link FileResult}` will contain the file information.
*                                                                           `response` will contain information related to this operation.
* @return {SpeedSummary}
* @example
* var stream = require('stream');
* var azure = require('azure-storage');
* var fileService = azure.createFileService();
*
* var fileStream = new stream.Readable();
* fileStream.push(myFileBuffer);
* fileStream.push(null);
*
* fileService.createFileFromStream('taskshare', 'taskdirectory', 'taskfile', fileStream, myFileBuffer.length, function(error, result, response) {
*   if (!error) {
*     // file uploaded
*   }
* });
*/
FileService.prototype.createFileFromStream = function(share, directory, file, stream, streamLength, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createFileFromStream', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.object(stream, 'stream');
    v.value(streamLength, 'streamLength');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  options.speedSummary = options.speedSummary || new SpeedSummary(file);

  stream.pause(); // Immediately pause the stream in order to compatible with Node v0.8

  var self = this;
  this.createFile(share, directory, file, streamLength, options, function(error) {
    if(error) {
      callback(error);
    } else {
      var chunkStream = new ChunkStreamWithStream(stream, {calcContentMd5: options.storeFileContentMD5});
      self._createFileFromChunkStream(share, directory, file, chunkStream, streamLength, options, callback);
    }
  });

  return options.speedSummary;
};

/**
* Provides a stream to write to a file. Assumes that the file exists. 
* If it does not, please create the file using createFile before calling this method or use createWriteStreamNewFile.
* Please note the `Stream` returned by this API should be used with piping.
*
* @this {FileService}
* @param {string}             share                                         The share name.
* @param {string}             directory                                     The directory name. Use '' to refer to the base directory.
* @param {string}             file                                          The file name. File names may not start or end with the delimiter '/'.
* @param {object}             [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The download tracker objects;
* @param {bool}               [options.storeFileContentMD5]                 Specifies whether the file's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for files.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The file's content settings.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the file. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the file.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The file service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The file's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The file's MD5 hash.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information if an error occurs; 
*                                                                           otherwise `[result]{@link FileResult}` will contain the file information.
*                                                                           `response` will contain information related to this operation.
* @return {Writable}                                                        A Node.js Writable stream.
* @example
* var azure = require('azure-storage');
* var FileService = azure.createFileService();
* FileService.createFile(shareName, directoryName, fileName, 1024, function (err) {
*   // Pipe file to a file
*   var stream = fs.createReadStream(fileNameTarget).pipe(FileService.createWriteStreamToExistingFile(shareName, directoryName, fileName));
* });
*/
FileService.prototype.createWriteStreamToExistingFile = function (share, directory, file, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createWriteStreamToExistingFile', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
  });

  var options = extend(true, {}, userOptions);

  var stream = new ChunkStream({calcContentMd5: options.storeFileContentMD5});
  this._createFileFromChunkStream(share, directory, file, stream, null, options, function (error, file, response) {
    if(error) {
      stream.emit('error', error);
    }

    if (callback) {
      callback(error, file, response);
    }
  });

  return stream;
};

/**
* Provides a stream to write to a file. Creates the file before writing data.
* Please note the `Stream` returned by this API should be used with piping.
*
* @this {FileService}
* @param {string}             share                                         The share name.
* @param {string}             directory                                     The directory name. Use '' to refer to the base directory.
* @param {string}             file                                          The file name. File names may not start or end with the delimiter '/'.
* @param {string}             length                                        The file length.
* @param {object}             [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The download tracker objects;
* @param {bool}               [options.storeFileContentMD5]                 Specifies whether the file's ContentMD5 header should be set on uploads. 
*                                                                           The default value is false for files.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {object}             [options.contentSettings]                     The file's content settings.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the file. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the file.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The file service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The file's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The file's MD5 hash.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {errorOrResult}      callback                                      `error` will contain information if an error occurs; 
*                                                                           otherwise `[result]{@link FileResult}` will contain the file information.
*                                                                           `response` will contain information related to this operation.
* @return {Writable}                                                        A Node.js Writable stream.
* @example
* var azure = require('azure-storage');
* var FileService = azure.createFileService();
* var stream = fs.createReadStream(fileNameTarget).pipe(FileService.createWriteStreamToNewFile(shareName, directoryName, fileName));
*/
FileService.prototype.createWriteStreamToNewFile = function (share, directory, file, length, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createWriteStreamToNewFile', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.value(length, 'length');
    v.shareNameIsValid(share);
  });

  var options = extend(true, {}, userOptions);

  var stream = new ChunkStream({calcContentMd5: options.storeFileContentMD5});
  stream.pause();
  
  var self = this;
  this.createFile(share, directory, file, length, options, function(error) {
    if(error) {
      stream.emit('error', error);
      callback(error);
    }
    else {
      stream.resume();
      self._createFileFromChunkStream(share, directory, file, stream, null, options, function (error, file, response) {
        if(error) {
          stream.emit('error', error);
        }

        if (callback) {
          callback(error, file, response);
        }
      });
    }
  });
  
  return stream;
};

/**
* Starts to copy a file to a destination within the storage account.
*
* @this {FileService}
* @param {string}             sourceUri                                 The source file or blob URI.
* @param {string}             targetShare                               The target share name.
* @param {string}             targetDirectory                           The target directory name.
* @param {string}             targetFile                                The target file name.
* @param {object}             [options]                                 The request options.
* @param {object}             [options.metadata]                        The target file metadata key/value pairs.
* @param {AccessConditions}   [options.accessConditions]                The access conditions.
* @param {AccessConditions}   [options.sourceAccessConditions]          The source access conditions.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResult}      callback                                  `error` will contain information if an error occurs; 
*                                                                       otherwise `[result]{@link FileResult}` will contain the file information.
*                                                                       `response` will contain information related to this operation.
*/
FileService.prototype.startCopyFile = function (sourceUri, targetShare, targetDirectory, targetFile, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('startCopyFile', function (v) {
    v.string(targetShare, 'targetShare');
    v.stringAllowEmpty(targetDirectory, 'targetDirectory');
    v.string(targetFile, 'targetFile');
    v.shareNameIsValid(targetShare);
    v.callback(callback);
  });
  
  var targetResourceName = createResourceName(targetShare, targetDirectory, targetFile);
  
  var options = extend(true, {}, userOptions);
  
  var webResource = WebResource.put(targetResourceName)
    .withHeader(HeaderConstants.COPY_SOURCE, sourceUri)
    .addOptionalMetadataHeaders(options.metadata);
  
  var processResponseCallback = function (responseObject, next) {
    responseObject.fileResult = null;
    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(targetShare, targetDirectory, targetFile);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers, true);
      
      if (options.metadata) {
        responseObject.fileResult.metadata = options.metadata;
      }
    }
    
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };
    
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Abort a file copy operation.
*
* @this {FileService}
* @param {string}             share                                     The destination share name.
* @param {string}             directory                                 The destination directory name.
* @param {string}             file                                      The destination file name.
* @param {string}             copyId                                    The copy operation identifier.
* @param {object}             [options]                                 The request options.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResult}      callback                                  `error` will contain information if an error occurs; 
*                                                                       otherwise `[result]{@link FileResult}` will contain the file information.
*                                                                       `response` will contain information related to this operation.
*/
FileService.prototype.abortCopyFile = function (share, directory, file, copyId, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });
  
  validate.validateArgs('abortCopyFile', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.callback(callback);
  });
  
  var resourceName = createResourceName(share, directory, file);
  
  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COPY_ID, copyId)
    .withQueryOption(QueryStringConstants.COMP, 'copy')
    .withHeader(HeaderConstants.COPY_ACTION, 'abort');
  
  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };
    
    next(responseObject, finalCallback);
  };
  
  this.performRequest(webResource, null, options, processResponseCallback);
};

// Internal Methods

/**
* Updates a file from text.
* @ignore
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {string}             text                                        The text string.
* @param {Readable}           readStream                                  The Node.js Readable stream.
* @param {int}                rangeStart                                  The range start.
* @param {int}                rangeEnd                                    The range end.
* @param {object}             [options]                                   The request options.
* @param {bool}               [options.useTransactionalMD5]               Calculate and send/validate content MD5 for transactions.
* @param {bool}               [options.transactionalContentMD5]           An MD5 hash of the content. This hash is used to verify the integrity of the data during transport.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {Function(error, file, response)}  callback                      `error` will contain information
*                                                                         if an error occurs; otherwise `file` will contain
*                                                                         the file information.
*                                                                         `response` will contain information related to this operation.
*/
FileService.prototype._createRanges = function (share, directory, file, text, readStream, rangeStart, rangeEnd, options, callback) {
  var request = this._updateFilesImpl(share, directory, file, rangeStart, rangeEnd, FileConstants.RangeWriteOptions.UPDATE, options);

  // At this point, we have already validated that the range is less than 4MB. Therefore, we just need to calculate the contentMD5 if required.
  if(!azureutil.objectIsNull(text) && azureutil.objectIsNull(options.transactionalContentMD5) && options.useTransactionalMD5 === true) {
    request.withHeader(HeaderConstants.CONTENT_MD5, azureutil.getContentMd5(text));
  }

  var processResponseCallback = function (responseObject, next) {
    responseObject.fileResult = null;
    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(share, directory, file);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  if(!azureutil.objectIsNull(text)) {
    this.performRequest(request, text, options, processResponseCallback);
  } else {
    this.performRequestOutputStream(request, readStream, options, processResponseCallback);
  }
};

/**
* Uploads a file from a stream.
* @ignore
*
* @this {FileService}
* @param {string}             share                                         The share name.
* @param {string}             directory                                     The directory name. Use '' to refer to the base directory.
* @param {string}             file                                          The file name. File names may not start or end with the delimiter '/'.
* @param (Stream)             stream                                        Stream to the data to store.
* @param {int}                streamLength                                  The length of the stream to upload.
* @param {object|function}    [options]                                     The request options.
* @param {SpeedSummary}       [options.speedSummary]                        The download tracker objects;
* @param {int}                [options.parallelOperationThreadCount]        The number of parallel operations that may be performed when uploading.
* @param {bool}               [options.useTransactionalMD5]                 Calculate and send/validate content MD5 for transactions.
* @param {bool}               [options.storeFileContentMD5]                 Specifies whether the file's ContentMD5 header should be set on uploads.
* @param {string}             [options.contentSettings.contentType]         The MIME content type of the file. The default type is application/octet-stream.
* @param {string}             [options.contentSettings.contentEncoding]     The content encodings that have been applied to the file.
* @param {string}             [options.contentSettings.contentLanguage]     The natural languages used by this resource.
* @param {string}             [options.contentSettings.cacheControl]        The file service stores this value but does not use or modify it.
* @param {string}             [options.contentSettings.contentDisposition]  The file's content disposition.
* @param {string}             [options.contentSettings.contentMD5]          The MD5 hash of the file content.
* @param {object}             [options.metadata]                            The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]                        Specifies the location mode used to decide which location the request should be sent to. 
*                                                                           Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                 The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]            The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]            The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                           The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                           execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                     A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                   Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                           The default value is false.
* @param {function(error, null)}  callback                                  The callback function.
* @return {SpeedSummary}
*/
FileService.prototype._createFileFromChunkStream = function(share, directory, file, chunkStream, streamLength, options, callback) {
  this.logger.debug(util.format('_createFileFromChunkStream for file %s', file));

  var apiName = '_createRanges';
  var sizeLimitation = FileConstants.DEFAULT_WRITE_SIZE_IN_BYTES;
  var originalContentMD5 = azureutil.tryGetValueChain(options, ['contentSettings', 'contentMD5'], null);

  this._setOperationExpiryTime(options);

  // initialize the speed summary
  var speedSummary = options.speedSummary || new SpeedSummary();
  speedSummary.totalSize = streamLength;

  var parallelOperationThreadCount = options.parallelOperationThreadCount || this.parallelOperationThreadCount;

  // initialize chunk allocator
  var allocator = new ChunkAllocator(sizeLimitation, parallelOperationThreadCount, { logger: this.logger });

  // if this is a FileReadStream, set the allocator on that stream
  if (chunkStream._stream && chunkStream._stream.setMemoryAllocator) {
    chunkStream._stream.setMemoryAllocator(allocator);
  }

  // initialize batch operations
  var batchOperations = new BatchOperation(apiName, { logger : this.logger, enableReuseSocket : this.defaultEnableReuseSocket});
  batchOperations.setConcurrency(parallelOperationThreadCount);

  // initialize options
  var rangeOptions = {
    timeoutIntervalInMs: options.timeoutIntervalInMs,
    clientRequestTimeoutInMs: options.clientRequestTimeoutInMs,
    operationExpiryTime: options.operationExpiryTime
  };

  var self = this;
  chunkStream.on('data', function (data, range) {
    var operation = null;
    var full = false;
    var autoIncrement = speedSummary.getAutoIncrementFunction(data.length);

    if(data.length > sizeLimitation) {
      throw new Error(util.format(SR.EXCEEDED_SIZE_LIMITATION, sizeLimitation, data.length));
    }

    if (options.useTransactionalMD5) {
      //calculate content md5 for the current uploading block data
      var contentMD5 = azureutil.getContentMd5(data);
      rangeOptions.transactionalContentMD5 = contentMD5;
    }

    if (azureutil.isBufferAllZero(data)) {
      self.logger.debug(util.format('Skip upload data from %s bytes to %s bytes to file %s', range.start, range.end, file));
      speedSummary.increment(data.length);
    } else {
      operation = new BatchOperation.RestOperation(self, apiName, share, directory, file, data, null, range.start, range.end, rangeOptions, function (error) {
        if(!error) {
          autoIncrement();
        } else {
          self.logger.debug(util.format('Stop downloading data as error happens. Error: %s', util.inspect(error)));
          chunkStream.stop();
        }

        allocator.releaseBuffer(data);
        data = null;
      });
    }

    if (operation) {
      full = batchOperations.addOperation(operation);
      operation = null;

      if(full) {
        self.logger.debug('file stream paused');
        chunkStream.pause();
      }
    }
  });

  chunkStream.on('end', function () {
    self.logger.debug(util.format('File read stream ended for file %s', file));
    batchOperations.enableComplete();
  });

  batchOperations.on('drain', function () {
    self.logger.debug('File stream resume');
    chunkStream.resume();
  });

  batchOperations.on('end', function (error) {
    self.logger.debug('batch operations commited');
 
    if (error) {
      callback(error);
      return;
    }

    if (originalContentMD5) {
      options.contentSettings.contentMD5 = originalContentMD5;
    } else if (options.storeFileContentMD5) {
      azureutil.setObjectInnerPropertyValue(options, ['contentSettings', 'contentMD5'], chunkStream.getContentMd5('base64'));
    }

    // upload file completely
    var fileProperties = extend(false, options.contentSettings, { contentLength: options.streamLength });
    self.setFileProperties(share, directory, file, fileProperties, function (error, file, response) {
      chunkStream.finish();
      callback(error, file, response);
    });
  });

  return speedSummary;
};

/**
* Downloads a file into a stream.
* @ignore
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {Writable}           writeStream                                 The Node.js Writable stream.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.shareSnapshotId]                   The snapshot identifier of the share.
* @param {string}             [options.rangeStart]                        Return only the bytes of the file in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the file in the specified range. 
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading files.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `result` will contain the file information.
*                                                                         `response` will contain information related to this operation.
*
* @return {SpeedSummary}
*/
FileService.prototype._getFileToStream = function (share, directory, file, writeStream, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('_getFileToStream', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.object(writeStream, 'writeStream');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var resourceName = createResourceName(share, directory, file);
  var webResource = WebResource.get(resourceName)
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId)
    .withRawResponse();

  FileResult.setHeaders(webResource, options);
  this._setRangeContentMD5Header(webResource, options);

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.fileResult = null;

    if (!responseObject.error) {
      responseObject.fileResult = new FileResult(share, directory, file);
      responseObject.fileResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers, true);

      self._validateLengthAndMD5(options, responseObject);
            
      if (options.speedSummary) {
        options.speedSummary.increment(responseObject.length);
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequestInputStream(webResource, null, writeStream, options, processResponseCallback);
};

/**
* Downloads a file into a range stream.
* @ignore
*
* @this {FileService}
* @param {string}             share                                       The share name.
* @param {string}             directory                                   The directory name. Use '' to refer to the base directory.
* @param {string}             file                                        The file name. File names may not start or end with the delimiter '/'.
* @param {Writable}           writeStream                                 The Node.js Writable stream.
* @param {object}             [options]                                   The request options.
* @param {int}                [options.parallelOperationThreadCount]      The number of parallel operations that may be performed when uploading.
* @param {string}             [options.rangeStart]                        Return only the bytes of the file in the specified range.
* @param {string}             [options.rangeEnd]                          Return only the bytes of the file in the specified range. 
* @param {boolean}            [options.useTransactionalMD5]               When set to true, Calculate and send/validate content MD5 for transactions.
* @param {boolean}            [options.disableContentMD5Validation]       When set to true, MD5 validation will be disabled when downloading files.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information if an error occurs; 
*                                                                         otherwise `result` will contain the file information.
*                                                                         `response` will contain information related to this operation.
*
* @return {SpeedSummary}
*/
FileService.prototype._getFileToRangeStream = function (share, directory, file, writeStream, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('_getFileToRangeStream', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.object(writeStream, 'writeStream');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var speedSummary = userOptions.speedSummary || new SpeedSummary(file);
  var parallelOperationThreadCount = userOptions.parallelOperationThreadCount || this.parallelOperationThreadCount;
  var batchOperations = new BatchOperation('getfile', { callbackInOrder: true, logger : this.logger, enableReuseSocket : this.defaultEnableReuseSocket });
  batchOperations.setConcurrency(parallelOperationThreadCount);

  var rangeStream = new FileRangeStream(this, share, directory, file, userOptions);

  var self = this;
  var checkMD5sum = !userOptions.disableContentMD5Validation;
  var md5Hash = null;
  if (checkMD5sum) {
    md5Hash = new Md5Wrapper().createMd5Hash();
  }

  var savedFileResult = null;
  var savedFileResponse = null;

  rangeStream.on('range', function (range) {
    if (!speedSummary.totalSize) {
      speedSummary.totalSize = rangeStream.rangeSize;
    }

    var requestOptions = {
      rangeStart : range.start,
      rangeEnd : range.end,
      responseEncoding : null //Use Buffer to store the response data
    };

    var rangeSize = range.size;
    requestOptions.shareSnapshotId = userOptions.shareSnapshotId;
    requestOptions.timeoutIntervalInMs = userOptions.timeoutIntervalInMs;
    requestOptions.clientRequestTimeoutInMs = userOptions.clientRequestTimeoutInMs;
    requestOptions.useTransactionalMD5 = userOptions.useTransactionalMD5;

    if (range.dataSize === 0) {
      var autoIncrement = speedSummary.getAutoIncrementFunction(rangeSize);
      //No operation to do and only wait for write zero to file in callback
      var writeZeroOperation = new BatchOperation.CommonOperation(BatchOperation.noOperation, function (error) {
        if (error) return;
        var bufferAvailable = azureutil.writeZerosToStream(writeStream, rangeSize, md5Hash, autoIncrement);
        //There is no need to pause the rangestream since we can perform http request and write disk at the same time
        self.logger.debug(util.format('Write %s bytes Zero from %s to %s', rangeSize, range.start, range.end));
        if (!bufferAvailable) {
          self.logger.debug('Write stream is full and pause batch operation');
          batchOperations.pause();
        }
      });
      batchOperations.addOperation(writeZeroOperation);
      return;
    }
      
    if (range.start > range.end) {
      return;
    }
      
    var operation = new BatchOperation.RestOperation(self, 'getFileToText', share, directory, file, requestOptions, function (error, content, fileResult, response) {
      if (!error) {
        if (rangeSize !== content.length) {
          self.logger.warn(util.format('Request %s bytes, but server returns %s bytes', rangeSize, content.length));
        }
        //Save one of the succeeded callback parameters and use them at the final callback
        if (!savedFileResult) {
          savedFileResult = fileResult;
        }
        if (!savedFileResponse) {
          savedFileResponse = response;
        }
        var autoIncrement = speedSummary.getAutoIncrementFunction(content.length);
        var bufferAvailable = writeStream.write(content, autoIncrement);
        if (!bufferAvailable) {
          self.logger.debug('Write stream is full and pause batch operation');
          batchOperations.pause();
        }
        if (md5Hash) {
          md5Hash.update(content);
        }
        content = null;
      } else {
        self.logger.debug(util.format('Stop downloading data as error happens. Error: %s', util.inspect(error)));
        rangeStream.stop();
      }
    });

    var full = batchOperations.addOperation(operation);
    if (full) {
      self.logger.debug('Pause range stream');
      rangeStream.pause();
    }    
  });
  
  rangeStream.on('end', function () {
    self.logger.debug('Range stream has ended.');
    batchOperations.enableComplete();
  });
  
  batchOperations.on('drain', function () {
    self.logger.debug('Resume range stream');
    rangeStream.resume();
  });
  
  writeStream.on('drain', function () {
    self.logger.debug('Resume batch operations');
    batchOperations.resume();
  });
  
  batchOperations.on('end', function (error) {
    self.logger.debug('Download completed!');
    if (error) {
      callback(error);
    } else {
      writeStream.end(function () {
        self.logger.debug('Write stream has ended');
        if (!savedFileResult) {
          savedFileResult = {};
        }
        azureutil.setObjectInnerPropertyValue(savedFileResult, ['contentSettings', 'contentMD5'], azureutil.tryGetValueChain(userOptions, ['contentSettings', 'contentMD5'], null));
        savedFileResult.clientSideContentMD5 = null;
        if (md5Hash) {
          savedFileResult.clientSideContentMD5 = md5Hash.digest('base64');
        }
        callback(error, savedFileResult, savedFileResponse);
      });
    }
  });
  
  var listOptions = {
    timeoutIntervalInMs : userOptions.timeoutIntervalInMs,
    clientRequestTimeoutInMs : userOptions.clientRequestTimeoutInMs,
  };
  
  rangeStream.list(listOptions);
  return speedSummary;
};

/**
* @ignore
*/
FileService.prototype._setRangeContentMD5Header = function (webResource, options) {
  if(!azureutil.objectIsNull(options.rangeStart) && options.useTransactionalMD5) {
    if(azureutil.objectIsNull(options.rangeEnd)) {
      throw new ArgumentNullError(util.format(SR.ARGUMENT_NULL_OR_EMPTY, options.rangeEndHeader));
    }

    var size = parseInt(options.rangeEnd, 10) - parseInt(options.rangeStart, 10) + 1;
    if (size > FileConstants.MAX_RANGE_GET_SIZE_WITH_MD5) {
      throw new Error(SR.INVALID_RANGE_FOR_MD5);
    } else {
      webResource.withHeader(HeaderConstants.RANGE_GET_CONTENT_MD5, 'true');
    }
  }
};

/**
* @ignore
*/
FileService.prototype._updateFilesImpl = function (share, directory, file, rangeStart, rangeEnd, writeMethod, options) {
  var resourceName = createResourceName(share, directory, file);
  var webResource = WebResource.put(resourceName)
    .withQueryOption(QueryStringConstants.COMP, 'range')
    .withHeader(HeaderConstants.CONTENT_TYPE, 'application/octet-stream')
    .withHeader(HeaderConstants.FILE_WRITE, writeMethod);

  options.rangeStart = rangeStart;
  options.rangeEnd = rangeEnd;

  FileResult.setHeaders(webResource, options); 

  if(writeMethod === FileConstants.RangeWriteOptions.UPDATE) {
    var size = (rangeEnd - rangeStart) + 1;
    webResource.withHeader(HeaderConstants.CONTENT_LENGTH, size);
  } else {
    webResource.withHeader(HeaderConstants.CONTENT_LENGTH, 0);
  }

  return webResource;
};

/**
* @ignore
*/
FileService.prototype._validateLengthAndMD5 = function (options, responseObject) {
  var storedMD5 = responseObject.response.headers[Constants.HeaderConstants.CONTENT_MD5];
  var contentLength;

  if (!azureutil.objectIsNull(responseObject.response.headers[Constants.HeaderConstants.CONTENT_LENGTH])) {
    contentLength = parseInt(responseObject.response.headers[Constants.HeaderConstants.CONTENT_LENGTH], 10);
  }

  // If the user has not specified this option, the default value should be false.
  if(azureutil.objectIsNull(options.disableContentMD5Validation)) {
    options.disableContentMD5Validation = false;
  }

  // None of the below cases should be retried. So set the error in every case so the retry policy filter handle knows that it shouldn't be retried.
  if (options.disableContentMD5Validation === false && options.useTransactionalMD5 === true && azureutil.objectIsNull(storedMD5)) {
    responseObject.error = new Error(SR.MD5_NOT_PRESENT_ERROR);
    responseObject.retryable = false;
  }

  // Validate length and if required, MD5.
  // If getFileToText called this method, then the responseObject.length and responseObject.contentMD5 are not set. Calculate them first using responseObject.response.body and then validate.
  if(azureutil.objectIsNull(responseObject.length)) {
    if (typeof responseObject.response.body == 'string') {
      responseObject.length = Buffer.byteLength(responseObject.response.body);
    } else if (Buffer.isBuffer(responseObject.response.body)) {
      responseObject.length = responseObject.response.body.length;
    }
  }

  if(!azureutil.objectIsNull(contentLength) && responseObject.length !== contentLength) {
    responseObject.error = new Error(SR.CONTENT_LENGTH_MISMATCH);
    responseObject.retryable = false;
  }

  if(options.disableContentMD5Validation === false && azureutil.objectIsNull(responseObject.contentMD5)) {
    responseObject.contentMD5 = azureutil.getContentMd5(responseObject.response.body);
  }

  if (options.disableContentMD5Validation === false && !azureutil.objectIsNull(storedMD5) && storedMD5 !== responseObject.contentMD5) {
    responseObject.error = new Error(util.format(SR.HASH_MISMATCH, storedMD5, responseObject.contentMD5));
    responseObject.retryable = false;
  }
};

/**
* Checks whether or not a file exists on the service.
* @ignore
*
* @this {FileService}
* @param {string}             share                                             The share name.
* @param {string}             directory                                         The directory name. Use '' to refer to the base directory.
* @param {string}             file                                              The file name. File names may not start or end with the delimiter '/'.
* @param {string}             primaryOnly                                       If true, the request will be executed against the primary storage location.
* @param {object}             [options]                                         The request options.
* @param {string}             [options.shareSnapshotId]                         The snapshot identifier of the share.
* @param {LocationMode}       [options.locationMode]                            Specifies the location mode used to decide which location the request should be sent to. 
*                                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                     The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]                The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]                The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                         A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                       Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                               The default value is false.
* @param {Function(error, result, response)}  callback                          `error` will contain information
*                                                                               if an error occurs; otherwise `result` will contain
*                                                                               the file information including the `exists` boolean member.
*                                                                               `response` will contain information related to this operation.
*/
FileService.prototype._doesFileExist = function (share, directory, file, primaryOnly, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('FileExists', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.string(file, 'file');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  var resourceName = createResourceName(share, directory, file);
  var webResource = WebResource.head(resourceName)
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);

  /*if(primaryOnly === false) {
    options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;
  }*/
  
  var processResponseCallback = function (responseObject, next) {
    responseObject.fileResult = new FileResult(share, directory, file);
    if (!responseObject.error) {
      responseObject.fileResult.exists = true;
      responseObject.fileResult.getPropertiesFromHeaders(responseObject.response.headers);
      
    } else if (responseObject.error && responseObject.error.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound) {
      responseObject.error = null;
      responseObject.fileResult.exists = false;
      responseObject.response.isSuccessful = true;
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.fileResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Checks whether or not a directory exists on the service.
* @ignore
*
* @this {FileService}
* @param {string}             share                                             The share name.
* @param {string}             directory                                         The directory name. Use '' to refer to the base directory.
* @param {string}             primaryOnly                                       If true, the request will be executed against the primary storage location.
* @param {object}             [options]                                         The request options.
* @param {string}             [options.shareSnapshotId]                         The share snapshot identifier.
* @param {LocationMode}       [options.locationMode]                            Specifies the location mode used to decide which location the request should be sent to. 
*                                                                               Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]                     The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]                The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]                The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                               The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                               execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                         A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                       Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                               The default value is false.
* @param {Function(error, result, response)}  callback                          `error` will contain information
*                                                                               if an error occurs; otherwise `result` will contain
*                                                                               the directory information including `exists` boolean member. 
*                                                                               `response` will contain information related to this operation.
*/
FileService.prototype._doesDirectoryExist = function (share, directory, primaryOnly, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('directoryExists', function (v) {
    v.string(share, 'share');
    v.stringAllowEmpty(directory, 'directory');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.head(createResourceName(share, directory))
    .withQueryOption(QueryStringConstants.RESTYPE, 'directory')
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);

  /*if(primaryOnly === false) {
    options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;
  }*/
    
  var self = this;
  var processResponseCallback = function(responseObject, next){
    responseObject.directoryResult = new DirectoryResult(directory);
    responseObject.directoryResult.exists = false;
    
    if (!responseObject.error) {
      responseObject.directoryResult.exists = true;
      responseObject.directoryResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.directoryResult.getPropertiesFromHeaders(responseObject.response.headers);
      
    } else if (responseObject.error && responseObject.error.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound) {
      responseObject.error = null;
      responseObject.response.isSuccessful = true;
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.directoryResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Checks whether or not a share exists on the service.
* @ignore
*
* @this {FileService}
* @param {string}             share                                   The share name.
* @param {string}             [options.shareSnapshotId]               The share snapshot identifier.
* @param {string}             primaryOnly                             If true, the request will be executed against the primary storage location.
* @param {object}             [options]                               The request options.
* @param {LocationMode}       [options.locationMode]                  Specifies the location mode used to decide which location the request should be sent to. 
*                                                                     Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]           The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]      The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]      The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                     The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                     execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]               A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]             Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                     The default value is false.
* @param {Function(error, result, response)}      callback            `error` will contain information
*                                                                     if an error occurs; otherwise `result` will contain
*                                                                     the share information including `exists` boolean member.
*                                                                     `response` will contain information related to this operation.
*/
FileService.prototype._doesShareExist = function (share, primaryOnly, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('shareExists', function (v) {
    v.string(share, 'share');
    v.shareNameIsValid(share);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.head(share)
    .withQueryOption(QueryStringConstants.RESTYPE, 'share')
    .withQueryOption(QueryStringConstants.SHARE_SNAPSHOT, options.shareSnapshotId);

  /*if(primaryOnly === false) {
    options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;
  }*/
  
  var processResponseCallback = function(responseObject, next){
    responseObject.shareResult = new ShareResult(share);
    responseObject.shareResult.exists = false;
    
    if (!responseObject.error) {
      responseObject.shareResult.exists = true;
      responseObject.shareResult.getPropertiesFromHeaders(responseObject.response.headers);
      
    } else if (responseObject.error && responseObject.error.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound) {
      responseObject.error = null;
      responseObject.response.isSuccessful = true;
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.shareResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* The callback for {FileService~getFileToText}.
* @typedef {function} FileService~FileToText
* @param {object} error      If an error occurs, the error information.
* @param {string} text       The text returned from the file.
* @param {object} file       Information about the file.
* @param {object} response   Information related to this operation.
*/

FileService.SpeedSummary = SpeedSummary;

module.exports = FileService;


/***/ }),
/* 617 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

var util = __webpack_require__(113);
var RangeStream = __webpack_require__(608);
var Constants = __webpack_require__(275);

/**
* File range stream
*/
function FileRangeStream(fileServiceClient, share, directory, file, options) {
  FileRangeStream['super_'].call(this, fileServiceClient, null, null, options);
    
  this._lengthHeader = Constants.HeaderConstants.FILE_CONTENT_LENGTH;
  if (options.minRangeSize) {
    this._minRangeSize = options.minRangeSize;
  } else {
    this._minRangeSize = Constants.FileConstants.MIN_WRITE_FILE_SIZE_IN_BYTES;
  }
  if (options.maxRangeSize) {
    this._maxRangeSize = options.maxRangeSize;
  } else {
    this._maxRangeSize = Constants.FileConstants.DEFAULT_WRITE_SIZE_IN_BYTES;
  }
  this._listFunc = fileServiceClient.listRanges;
  this._resourcePath.push(share);
  this._resourcePath.push(directory);
  this._resourcePath.push(file);
}

util.inherits(FileRangeStream, RangeStream);

module.exports = FileRangeStream;


/***/ }),
/* 618 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var Constants = azureCommon.Constants;
var HeaderConstants = Constants.HeaderConstants;

/**
* Creates a new ShareResult object.
* @class
* The ShareResult class is used to store the share information.
* 
 * @property  {string}                      name                                  The share name.
 * @property  {object}                      metadata                              The metadata key/value pair.
 * @property  {string}                      etag                                  The etag.
 * @property  {string}                      lastModified                          The date/time that the share was last modified.
 * @property  {string}                      requestId                             The request id.
 * @property  {string}                      quota                                 The share quota.
 * 
* @constructor
* @param {string} [name]                    The share name.
*/
function ShareResult(name) {
  this.name = name;
}

ShareResult.parse = function (shareXml, name) {
  var shareResult = new ShareResult(name);
  for (var propertyName in shareXml) {
    if (shareXml.hasOwnProperty(propertyName)) {
      if (propertyName === 'Properties') {
        //  Lift out the properties onto the main object to keep consistent across all APIs like: getShareProperties
        azureutil.setPropertyValueFromXML(shareResult, shareXml[propertyName], true);
      } else if (propertyName === 'Metadata' || propertyName === 'ShareStats') {
        var resultPropertyName = azureutil.normalizePropertyNameFromXML(propertyName);
        shareResult[resultPropertyName] = {};
        azureutil.setPropertyValueFromXML(shareResult[resultPropertyName], shareXml[propertyName], propertyName === 'ShareStats');
      } else {
        shareResult[propertyName.toLowerCase()] = shareXml[propertyName];
      }
    }
  }

  return shareResult;
};

ShareResult.prototype.getPropertiesFromHeaders = function (headers) {
  var self = this;

  var setSharePropertyFromHeaders = function (shareProperty, headerProperty) {
    if (!self[shareProperty] && headers[headerProperty.toLowerCase()]) {
      self[shareProperty] = headers[headerProperty.toLowerCase()];
    }
  };

  setSharePropertyFromHeaders('etag', HeaderConstants.ETAG);
  setSharePropertyFromHeaders('lastModified', HeaderConstants.LAST_MODIFIED);
  setSharePropertyFromHeaders('requestId', HeaderConstants.REQUEST_ID);
  setSharePropertyFromHeaders('quota', HeaderConstants.SHARE_QUOTA);
};

/**
* The share ACL settings.
* @typedef    {object}                ShareAclResult
* @extends    {ShareAclResult}
* @property   {Object.<string, AccessPolicy>}    signedIdentifiers   The container ACL settings. See `[AccessPolicy]{@link AccessPolicy}` for detailed information.
*/

module.exports = ShareResult;

/***/ }),
/* 619 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var HeaderConstants = __webpack_require__(272).Constants.HeaderConstants;

/**
* Creates a new DirectoryResult object.
* @class
* The DirectoryResult class is used to store the directory information.
* 
 * @property  {string}                      name                                  The container name.
 * @property  {object}                      metadata                              The metadata key/value pair.
 * @property  {string}                      etag                                  The etag.
 * @property  {string}                      lastModified                          The date/time that the directory was last modified.
 * @property  {string}                      requestId                             The request id.
 * @property  {string}                      serverEncrypted                       If the directory metadata is completely encrypted using the specified algorithm. true/false.
 *
* @constructor
* @param {string} [name]                    The directory name.
*/
function DirectoryResult(name) {
  this.name = name;
}

DirectoryResult.parse = function (dirXml) {
  return new DirectoryResult(dirXml.Name);
};

DirectoryResult.prototype.getPropertiesFromHeaders = function (headers) {
  var self = this;

  var setDirectoryPropertyFromHeaders = function (directoryProperty, headerProperty) {
    if (!self[directoryProperty] && headers[headerProperty.toLowerCase()]) {
      self[directoryProperty] = headers[headerProperty.toLowerCase()];
    }
  };

  setDirectoryPropertyFromHeaders('etag', HeaderConstants.ETAG);
  setDirectoryPropertyFromHeaders('lastModified', HeaderConstants.LAST_MODIFIED);
  setDirectoryPropertyFromHeaders('requestId', HeaderConstants.REQUEST_ID);
  setDirectoryPropertyFromHeaders('serverEncrypted', HeaderConstants.SERVER_ENCRYPTED);
};

module.exports = DirectoryResult;

/***/ }),
/* 620 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var _ = __webpack_require__(271);

var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var Constants = azureCommon.Constants;
var HeaderConstants = Constants.HeaderConstants;

/**
* Creates a new FileResult object.
* @class
* The FileResult class is used to store the file information.
* 
 * @property  {string}                      share                                 The share name.
 * @property  {string}                      directory                             The directory name.
 * @property  {string}                      name                                  The file name.
 * @property  {object}                      metadata                              The metadata key/value pair.
 * @property  {string}                      etag                                  The etag.
 * @property  {string}                      lastModified                          The date/time that the file was last modified.
 * @property  {string}                      requestId                             The request id.
 * @property  {string}                      acceptRanges                          The accept ranges.
 * @property  {string}                      serverEncrypted                       If the file data and application metadata are completely encrypted using the specified algorithm. true/false.
 * @property  {string}                      contentRange                          The content range
 * @property  {string}                      contentLength                         The size of the file in bytes.
 * @property  {object}                      contentSettings                       The content settings.
 * @property  {string}                      contentSettings.contentType           The content type.
 * @property  {string}                      contentSettings.contentEncoding       The content encoding.
 * @property  {string}                      contentSettings.contentLanguage       The content language.
 * @property  {string}                      contentSettings.cacheControl          The cache control.
 * @property  {string}                      contentSettings.contentDisposition    The content disposition.
 * @property  {string}                      contentSettings.contentMD5            The content MD5 hash.
 * @property  {object}                      copy                                  The copy information.
 * @property  {string}                      copy.id                               The copy id.
 * @property  {string}                      copy.status                           The copy status.
 * @property  {string}                      copy.completionTime                   The copy completion time. 
 * @property  {string}                      copy.statusDescription                The copy status description.
 * @property  {string}                      copy.progress                         The copy progress.
 * @property  {string}                      copy.source                           The copy source.
 * 
* @constructor
* @param {string} [share]      The share name.
* @param {string} [directory]  The directory name.
* @param {string} [name]       The file name.
*/
function FileResult(share, directory, name) {
  this.share = share;
  this.directory = directory;
  this.name = name;
}

FileResult.parse = function (entryXml) {
  var listResult = new FileResult();
  for (var propertyName in entryXml) {
    if (propertyName === 'Properties') {
      //  Lift out the properties onto the main object to keep consistent across all APIs like: getFileProperties
        azureutil.setPropertyValueFromXML(listResult, entryXml[propertyName], true);
    } else {
      listResult[propertyName.toLowerCase()] = entryXml[propertyName];
    }
  }

  return listResult;
};

var responseHeaders = {
  'acceptRanges': 'ACCEPT_RANGES',
  'contentLength': 'CONTENT_LENGTH',
  'contentRange': 'CONTENT_RANGE',

  'contentSettings.contentType': 'CONTENT_TYPE',
  'contentSettings.contentEncoding': 'CONTENT_ENCODING',
  'contentSettings.contentLanguage': 'CONTENT_LANGUAGE',
  'contentSettings.cacheControl': 'CACHE_CONTROL',
  'contentSettings.contentDisposition': 'CONTENT_DISPOSITION',
  'contentSettings.contentMD5': 'CONTENT_MD5',
  'contentSettings.fileContentMD5': 'FILE_CONTENT_MD5',
  
  'copy.id': 'COPY_ID',
  'copy.status': 'COPY_STATUS',
  'copy.source': 'COPY_SOURCE',
  'copy.progress': 'COPY_PROGRESS',
  'copy.completionTime': 'COPY_COMPLETION_TIME',
  'copy.statusDescription': 'COPY_STATUS_DESCRIPTION'
};

FileResult.prototype.getPropertiesFromHeaders = function (headers, content) {
  var self = this;
  
  var setFilePropertyFromHeaders = function (fileProperty, headerProperty) {
    if (!azureutil.tryGetValueChain(self, fileProperty.split('.'), null) && headers[headerProperty.toLowerCase()]) {
      azureutil.setObjectInnerPropertyValue(self, fileProperty.split('.'), headers[headerProperty.toLowerCase()]);
      
      if (fileProperty === 'copy.progress') {
        var info = azureutil.parseCopyProgress(self.copy.progress);
        self.copy.bytesCopied = parseInt(info.bytesCopied);
        self.copy.totalBytes = parseInt(info.totalBytes);
      }
    }
  };
   
  // For range get, 'x-ms-content-md5' indicate the overall MD5 of the file. Try to set the contentMD5 using this header if it presents
  setFilePropertyFromHeaders('contentSettings.contentMD5', HeaderConstants.FILE_CONTENT_MD5);

  setFilePropertyFromHeaders('etag', HeaderConstants.ETAG);
  setFilePropertyFromHeaders('lastModified', HeaderConstants.LAST_MODIFIED);
  setFilePropertyFromHeaders('requestId', HeaderConstants.REQUEST_ID);
  setFilePropertyFromHeaders('serverEncrypted', HeaderConstants.SERVER_ENCRYPTED);

  if (content) {
     _.chain(responseHeaders).pairs().each(function (pair) {
      var property = pair[0];
      var header = HeaderConstants[pair[1]];
      setFilePropertyFromHeaders(property, header);
    });

   }
};

/**
* This method sets the HTTP headers and is used by all methods except setFileProperties and createFile. 
* Those methods will set the x-ms-* headers using setProperties.
*/
FileResult.setHeaders = function (webResource, options) {
  var setHeaderProperty = function (headerProperty, fileProperty) {
    var propertyValue = azureutil.tryGetValueChain(options, fileProperty.split('.'), null);
    if (propertyValue) {
      webResource.withHeader(headerProperty, propertyValue);
    }
  };

  if (options) {
    // Content-MD5
    setHeaderProperty(HeaderConstants.CONTENT_MD5, 'transactionalContentMD5');

    // Content-Length
    setHeaderProperty(HeaderConstants.CONTENT_LENGTH, 'contentLength');

    // Range
    if (!azureutil.objectIsNull(options.rangeStart)) {
      var range = 'bytes=' + options.rangeStart + '-';

      if (!azureutil.objectIsNull(options.rangeEnd)) {
        range += options.rangeEnd;
      }

      webResource.withHeader(HeaderConstants.STORAGE_RANGE, range);
    }   
  }
};

/**
* This method sets the x-ms-* headers and is used by setFileProperties and createFile. 
* All other methods will set the regular HTTP headers using setHeaders.
*/
FileResult.setProperties = function (webResource, options) {
  var setHeaderProperty = function (headerProperty, fileProperty) {
    var propertyValue = azureutil.tryGetValueChain(options, fileProperty.split('.'), null);
    if (propertyValue) {
      webResource.withHeader(headerProperty, propertyValue);
    }
  };

  if (options) {
    // Content-Length
    setHeaderProperty(HeaderConstants.FILE_CONTENT_LENGTH, 'contentLength');
    
    // Content-Type
    setHeaderProperty(HeaderConstants.FILE_CONTENT_TYPE, 'contentSettings.contentType');

    // Content-Encoding
    setHeaderProperty(HeaderConstants.FILE_CONTENT_ENCODING, 'contentSettings.contentEncoding');

    // Content-Language
    setHeaderProperty(HeaderConstants.FILE_CONTENT_LANGUAGE, 'contentSettings.contentLanguage');

    // Content-Disposition
    setHeaderProperty(HeaderConstants.FILE_CONTENT_DISPOSITION, 'contentSettings.contentDisposition');

    // Cache-Control
    setHeaderProperty(HeaderConstants.FILE_CACHE_CONTROL, 'contentSettings.cacheControl');

    // Content-MD5
    setHeaderProperty(HeaderConstants.FILE_CONTENT_MD5, 'contentSettings.contentMD5');

    if (options.metadata) {
      webResource.addOptionalMetadataHeaders(options.metadata);
    }
  }
};

module.exports = FileResult;

/***/ }),
/* 621 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var util = __webpack_require__(113);
var _ = __webpack_require__(271);
var extend = __webpack_require__(270);

var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var SR = azureCommon.SR;
var validate = azureCommon.validate;

var StorageServiceClient = azureCommon.StorageServiceClient;
var WebResource = azureCommon.WebResource;
var Constants = azureCommon.Constants;
var QueryStringConstants = Constants.QueryStringConstants;
var HeaderConstants = Constants.HeaderConstants;
var RequestLocationMode = Constants.RequestLocationMode;

// Models requires
var QueueResult = __webpack_require__(622);
var AclResult = azureCommon.AclResult;
var QueueMessageResult = __webpack_require__(623);
var QueueMessageEncoder = __webpack_require__(624);
var ServiceStatsParser = azureCommon.ServiceStatsParser;

/**
* Creates a new QueueService object.
* If no connection string or storageaccount and storageaccesskey are provided,
* the AZURE_STORAGE_CONNECTION_STRING or AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY environment variables will be used.
* @class
* The QueueService class is used to perform operations on the Microsoft Azure Queue Service.
* 
* For more information on using the Queue Service, as well as task focused information on using it from a Node.js application, see
* [How to Use the Queue Service from Node.js](http://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-how-to-use-queues/).
* The following defaults can be set on the Queue service.
* messageEncoder                                      The message encoder to specify how QueueService encodes and decodes the queue message. Default is `[TextXmlQueueMessageEncoder]{@link TextXmlQueueMessageEncoder}`.
* defaultTimeoutIntervalInMs                          The default timeout interval, in milliseconds, to use for request made via the Queue service.
* defaultClientRequestTimeoutInMs                     The default timeout of client requests, in milliseconds, to use for the request made via the Queue service.
* defaultMaximumExecutionTimeInMs                     The default maximum execution time across all potential retries, for requests made via the Queue service.
* defaultLocationMode                                 The default location mode for requests made via the Queue service.
* useNagleAlgorithm                                   Determines whether the Nagle algorithm is used for requests made via the Queue service; true to use the  
*                                                     Nagle algorithm; otherwise, false. The default value is false.
* enableGlobalHttpAgent                               Determines whether global HTTP(s) agent is enabled; true to use Global HTTP(s) agent; otherwise, false to use
*                                                     http(s).Agent({keepAlive:true}).
* @constructor
* @augments {StorageServiceClient}
*
* @param {string} [storageAccountOrConnectionString]  The storage account or the connection string.
* @param {string} [storageAccessKey]                  The storage access key.
* @param {string|object} [host]                       The host address. To define primary only, pass a string. 
*                                                     Otherwise 'host.primaryHost' defines the primary host and 'host.secondaryHost' defines the secondary host.
* @param {string} [sas]                               The Shared Access Signature string.
* @param {string} [endpointSuffix]                    The endpoint suffix.
* @param {TokenCredential} [token]                    The {@link TokenCredential} object.
*/
function QueueService(storageAccountOrConnectionString, storageAccessKey, host, sas, endpointSuffix, token) {
  var storageServiceSettings = StorageServiceClient.getStorageSettings(storageAccountOrConnectionString, storageAccessKey, host, sas, endpointSuffix, token);

  QueueService['super_'].call(this,
    storageServiceSettings._name,
    storageServiceSettings._key,
    storageServiceSettings._queueEndpoint,
    storageServiceSettings._usePathStyleUri,
    storageServiceSettings._sasToken,
    token);

  if (this.anonymous) {
    throw new Error(SR.ANONYMOUS_ACCESS_BLOBSERVICE_ONLY);
  }
  
  /**
   * @property {boolean} QueueService#messageEncoder
   * @defaultvalue      {QueueMessageEncoder}     `[TextXmlQueueMessageEncoder]{@link TextXmlQueueMessageEncoder}`.
   * The message encoder to specify how QueueService encodes and decodes the queue message. Default is `[TextXmlQueueMessageEncoder]{@link TextXmlQueueMessageEncoder}`.
   */
  this.messageEncoder = new QueueMessageEncoder.TextXmlQueueMessageEncoder();
}

util.inherits(QueueService, StorageServiceClient);

/**
* Gets the service stats for a storage account’s Queue service.
*
* @this {QueueService}
* @param {object}       [options]                                         The request options.
* @param {LocationMode} [options.locationMode]                            Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}          [options.timeoutIntervalInMs]                     The server timeout interval, in milliseconds, to use for the request.
* @param {int}          [options.clientRequestTimeoutInMs]                The timeout of client requests, in milliseconds, to use for the request.
* @param {int}          [options.maximumExecutionTimeInMs]                The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}       [options.clientRequestId]                         A string that represents the client request ID with a 1KB character limit.
* @param {bool}         [options.useNagleAlgorithm]                       Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise, `[result]{@link ServiceStats}`
*                                                                         will contain the stats and `response`
*                                                                         will contain information related to this operation.
*/
QueueService.prototype.getServiceStats = function (optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getServiceStats', function (v) {
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get()
    .withQueryOption(QueryStringConstants.COMP, 'stats')
    .withQueryOption(QueryStringConstants.RESTYPE, 'service');

  options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;

  var processResponseCallback = function (responseObject, next) {
    responseObject.serviceStatsResult = null;
    if (!responseObject.error) {
      responseObject.serviceStatsResult = ServiceStatsParser.parse(responseObject.response.body.StorageServiceStats);
    }

    // function to be called after all filters
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.serviceStatsResult, returnObject.response);
    };

    // call the first filter
    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Gets the properties of a storage account’s Queue service, including Microsoft Azure Storage Analytics.
*
* @this {QueueService}
* @param {object}             [options]                                 The request options.
* @param {LocationMode}       [options.locationMode]                    Specifies the location mode used to decide which location the request should be sent to. 
*                                                                       Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]             The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]        The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]        The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                       The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                       execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                 A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]               Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                       The default value is false.
* @param {errorOrResult}  callback                                      `error` will contain information
*                                                                       if an error occurs; otherwise, `[result]{@link ServiceProperties}`
*                                                                       will contain the properties and `response`
*                                                                       will contain information related to this operation.
*/
QueueService.prototype.getServiceProperties = function (optionsOrCallback, callback) {
  return this.getAccountServiceProperties(optionsOrCallback, callback);
};

/**
* Sets the properties of a storage account’s Queue service, including Microsoft Azure Storage Analytics.
* You can also use this operation to set the default request version for all incoming requests that do not have a version specified.
*
* @this {QueueService}
* @param {object}             serviceProperties                        The service properties.
* @param {object}             [options]                                The request options.
* @param {LocationMode}       [options.locationMode]                   Specifies the location mode used to decide which location the request should be sent to. 
*                                                                      Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]            The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]       The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]       The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                      The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                      execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]              Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                      The default value is false.
* @param {errorOrResponse}  callback                                   `error` will contain information
*                                                                      if an error occurs; otherwise, `response`
*                                                                      will contain information related to this operation.
*/
QueueService.prototype.setServiceProperties = function (serviceProperties, optionsOrCallback, callback) {
  return this.setAccountServiceProperties(serviceProperties, optionsOrCallback, callback);
};

/**
* Lists a segment containing a collection of queue items whose names begin with the specified prefix under the given account.
*
* @this {QueueService}
* @param {object}             currentToken                                A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.
* @param {object}             [options]                                   The request options.
* @param {int}                [options.maxResults]                        Specifies the maximum number of queues to return per call to Azure storage. This does NOT affect list size returned by this function. (maximum: 5000)
* @param {string}             [options.include]                           Include this parameter to specify that the queue's metadata be returned as part of the response body. (allowed values: '', 'metadata')
*                                                                         **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                         `entries`  gives a list of `[queues]{@link QueueResult}` and the `continuationToken` is used for the next listing operation.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.listQueuesSegmented = function (currentToken, optionsOrCallback, callback) {
  this.listQueuesSegmentedWithPrefix(null /* prefix */, currentToken, optionsOrCallback, callback);
};

/**
* Lists a segment containing a collection of queue items  under the given account.
*
* @this {QueueService}
* @param {string}             prefix                                      The prefix of the queue name.
* @param {object}             currentToken                                A continuation token returned by a previous listing operation. Please use 'null' or 'undefined' if this is the first operation.* @param {string}             [options.prefix]                  Filters the results to return only queues whose name begins with the specified prefix.
* @param {object}             [options]                                   The request options.
* @param {string}             [options.marker]                            String value that identifies the portion of the list to be returned with the next list operation.
* @param {int}                [options.maxResults]                        Specifies the maximum number of queues to return per call to Azure storage. This does NOT affect list size returned by this function. (maximum: 5000)
* @param {string}             [options.include]                           Include this parameter to specify that the queue's metadata be returned as part of the response body. (allowed values: '', 'metadata')
*                                                                         **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain `entries` and `continuationToken`. 
*                                                                         `entries`  gives a list of `[queues]{@link QueueResult}` and the `continuationToken` is used for the next listing operation.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.listQueuesSegmentedWithPrefix = function (prefix, currentToken, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('listQueuesSegmentedWithPrefix', function (v) {
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get();
  webResource.withQueryOption(QueryStringConstants.COMP, 'list')
    .withQueryOption(QueryStringConstants.MAX_RESULTS, options.maxResults)
    .withQueryOption(QueryStringConstants.INCLUDE, options.include)
    .withQueryOption(QueryStringConstants.PREFIX, prefix);

  if(!azureutil.objectIsNull(currentToken)) {
    webResource.withQueryOption(QueryStringConstants.MARKER, currentToken.nextMarker);
  }

  options.requestLocationMode = azureutil.getNextListingLocationMode(currentToken);

  var processResponseCallback = function (responseObject, next) {
    responseObject.listQueuesResult = null;

    if (!responseObject.error) {
      responseObject.listQueuesResult = {
        entries: null,
        continuationToken: null
      };
      responseObject.listQueuesResult.entries = [];
      var queues = [];

      if (responseObject.response.body.EnumerationResults.Queues && responseObject.response.body.EnumerationResults.Queues.Queue) {
        queues = responseObject.response.body.EnumerationResults.Queues.Queue;

        if (!_.isArray(queues)) {
          queues = [ queues ];
        }

        queues.forEach(function (currentQueue) {
          var queueResult = QueueResult.parse(currentQueue);
          responseObject.listQueuesResult.entries.push(queueResult);
        });

        if(responseObject.response.body.EnumerationResults.NextMarker) {
          responseObject.listQueuesResult.continuationToken = {
            nextMarker: null,
            targetLocation: null
          };

          responseObject.listQueuesResult.continuationToken.nextMarker = responseObject.response.body.EnumerationResults.NextMarker;
          responseObject.listQueuesResult.continuationToken.targetLocation = responseObject.targetLocation;
        }
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.listQueuesResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Checks to see if a queue exists.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {Function(error, result, response)}  callback                    `error` will contain information
*                                                                         if an error occurs; otherwise, `[result]{@link QueueResult}` will contain
*                                                                         the queue information including `exists` boolean member.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.doesQueueExist = function (queue, optionsOrCallback, callback) {
  this._doesQueueExist(queue, false, optionsOrCallback, callback);
};

/**
* Creates a new queue under the given account.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {object}             [options.metadata]                          The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link QueueResult}` will contain
*                                                                         the queue information.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.createQueue = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createQueue', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(queue);
  if (options) {
    webResource.addOptionalMetadataHeaders(options.metadata);
  }

  var processResponseCallback = function (responseObject, next) {
    responseObject.queueResult = null;
    if (!responseObject.error) {
      responseObject.queueResult = new QueueResult(queue);
      if (options && options.metadata) {
        responseObject.queueResult.metadata = options.metadata;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.queueResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Creates a new queue under the given account if it doesn't exist.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {object}             [options.metadata]                          The metadata key/value pairs.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                       `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link QueueResult}` will contain 
*                                                                         the queue information including `created` boolean member and 
*                                                                         `response` will contain information related to this operation.
*
* @example
* var azure = require('azure-storage');
* var queueService = azure.createQueueService();
* queueService.createQueueIfNotExists('taskqueue', function(error) {
*   if(!error) {
*     // Queue created or exists
*   }
* }); 
*/
QueueService.prototype.createQueueIfNotExists = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createQueueIfNotExists', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var self = this;
  self._doesQueueExist(queue, true, options, function(error, result, response) {
    var exists = result.exists;
    result.created = false;
    delete result.exists;
    
    if (error) {
      callback(error, result, response);
    } else if (exists) {
      response.isSuccessful = true;
      callback(error, result, response);
    } else {
      self.createQueue(queue, options, function(createError, responseQueue, createResponse) {
        if (!createError) {
          responseQueue.created = true;
        }
        else if (createError && createError.statusCode === Constants.HttpConstants.HttpResponseCodes.Conflict && createError.code === Constants.QueueErrorCodeStrings.QUEUE_ALREADY_EXISTS) {
          createError = null;
          responseQueue.created = false;
          createResponse.isSuccessful = true;
        }

        callback(createError, responseQueue, createResponse);
      });
    }
  });
};

/**
* Permanently deletes the specified queue.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResponse}  callback                                      `error` will contain information if an error occurs; 
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.deleteQueue = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteQueue', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.del(queue);
  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Permanently deletes the specified queue if it exists.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain
*                                                                         'true' if the queue was deleted and 'false' if the queue did not exist.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.deleteQueueIfExists = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteQueueIfExists', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var self = this;
  self._doesQueueExist(queue, true, options, function existsCallback(error, existsResult, response) {
    if (error) {
      callback(error, existsResult.exists, response);
    } else if (!existsResult.exists) {
      response.isSuccessful = true;
      callback(error, false, response);
    } else {
      self.deleteQueue(queue, options, function(deleteError, deleteResponse) {
        var deleted;
        if (!deleteError) {
          deleted = true;
        } else if (deleteError && deleteError.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound && deleteError.code === Constants.QueueErrorCodeStrings.QUEUE_NOT_FOUND) {
          deleted = false;
          deleteError = null;
          deleteResponse.isSuccessful = true;
        }

        callback(deleteError, deleted, deleteResponse);
      });
    }
  });
};

/**
* Returns queue properties, including user-defined metadata.
* **Note** that all metadata names returned from the server will be converted to lower case by NodeJS itself as metadata is set via HTTP headers and HTTP header names are case insensitive.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link QueueResult}` will contain
*                                                                         the queue information.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.getQueueMetadata = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getQueueMetadata', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get(queue)
    .withQueryOption(QueryStringConstants.COMP, 'metadata');

  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var self = this;
  var processResponseCallback = function (responseObject, next) {
    responseObject.queueResult = null;
    if (!responseObject.error) {
      responseObject.queueResult = new QueueResult(queue);
      responseObject.queueResult.metadata = self.parseMetadataHeaders(responseObject.response.headers);
      responseObject.queueResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.queueResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Sets user-defined metadata on the specified queue. Metadata is associated with the queue as name-value pairs.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             metadata                                    The metadata key/value pairs.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link QueueResult}` will contain
*                                                                         the queue information.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.setQueueMetadata = function (queue, metadata, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setQueueMetadata', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.put(queue)
    .withQueryOption(QueryStringConstants.COMP, 'metadata')
    .addOptionalMetadataHeaders(metadata);

  var processResponseCallback = function (responseObject, next) {
    responseObject.queueResult = null;
    if (!responseObject.error) {
      responseObject.queueResult = new QueueResult(queue, metadata);
      responseObject.queueResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.queueResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Adds a new message to the back of the message queue. 
* The encoded message can be up to 64KB in size for versions 2011-08-18 and newer, or 8KB in size for previous versions. 
* Unencoded messages must be in a format that can be included in an XML request with UTF-8 encoding. 
* Queue messages are encoded using the `[TextXmlQueueMessageEncoder]{@link TextXmlQueueMessageEncoder}`. See queueService.messageEncoder to set encoder defaults. 
* 
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {string|Buffer}      messageText                                 The message text.
* @param {object}             [options]                                   The request options.
* @param {int}                [options.messageTimeToLive]                 The time-to-live interval for the message, in seconds. The maximum time-to-live allowed is 7 days. If this parameter is omitted, the default time-to-live is 7 days
* @param {int}                [options.visibilityTimeout]                 Specifies the new visibility timeout value, in seconds, relative to server time. The new value must be larger than or equal to 0, and cannot be larger than 7 days. The visibility timeout of a message cannot be set to a value later than the expiry time. visibilitytimeout should be set to a value smaller than the time-to-live value.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}      callback                                    `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link QueueMessageResult}` will contain
*                                                                         the message.
*                                                                         `response` will contain information related to this operation.
*
* @example
* var azure = require('azure-storage');
* var queueService = azure.createQueueService();
* queueService.createMessage('taskqueue', 'Hello world!', function(error) {
*   if(!error) {
*     // Message inserted
*   }
* });
*/
QueueService.prototype.createMessage = function (queue, messageText, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('createMessage', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var xmlMessageDescriptor = QueueMessageResult.serialize(messageText, this.messageEncoder);

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.post(queue + '/messages')
    .withHeader(HeaderConstants.CONTENT_TYPE, 'application/atom+xml;charset="utf-8"')
    .withHeader(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(xmlMessageDescriptor, 'utf8'))
    .withQueryOption(QueryStringConstants.MESSAGE_TTL, options.messageTimeToLive)
    .withQueryOption(QueryStringConstants.VISIBILITY_TIMEOUT, options.visibilityTimeout)
    .withBody(xmlMessageDescriptor);

  var messageEncoder = this.messageEncoder;

  var processResponseCallback = function (responseObject, next) {
    responseObject.queueMessageResults = [];

    if (responseObject.response && responseObject.response.body && responseObject.response.body.QueueMessagesList && responseObject.response.body.QueueMessagesList.QueueMessage) {
      var messages = responseObject.response.body.QueueMessagesList.QueueMessage;

      if (!_.isArray(messages)) {
        messages = [ messages ];
      }

      messages.forEach(function (message) {
        var queueMessageResult = QueueMessageResult.parse(message, messageEncoder);
        responseObject.queueMessageResults.push(queueMessageResult);
      });
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, responseObject.queueMessageResults[0], returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

/**
* Retrieve messages from the queue and makes them invisible to other consumers.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {int}                [options.numOfMessages]                     A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. By default, a single message is retrieved from the queue with this operation.
* @param {int}                [options.visibilityTimeout]                 Required if not peek only. Specifies the new visibility timeout value, in seconds, relative to server time. The new value must be larger than or equal to 0, and cannot be larger than 7 days. The visibility timeout of a message can be set to a value later than the expiry time.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain
*                                                                         a list of `[messages]{@link QueueMessageResult}`.
*                                                                         `response` will contain information related to this operation.
*
* @example
* var azure = require('azure-storage');
* var queueService = azure.createQueueService();
* var queueName = 'taskqueue';
* queueService.getMessages(queueName, function(error, serverMessages) {
*   if(!error) {
*     // Process the message in less than 30 seconds, the message
*     // text is available in serverMessages[0].messagetext
*     queueService.deleteMessage(queueName, serverMessages[0].messageId, serverMessages[0].popReceipt, function(error) {
*       if(!error){
*           // Message deleted
*       }
*     });
*   }
* });
*/
QueueService.prototype.getMessages = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getMessages', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  delete options.peekOnly;
  
  this._getOrPeekMessages(queue, options, callback);
};

/**
* Retrieves a message from the queue and makes it invisible to other consumers.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {int}                [options.visibilityTimeout]                 Required if not peek only. Specifies the new visibility timeout value, in seconds, relative to server time. The new value must be larger than or equal to 0, and cannot be larger than 7 days. The visibility timeout of a message can be set to a value later than the expiry time.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link QueueMessageResult}` will contain
*                                                                         the message.
*                                                                         `response` will contain information related to this operation.
*
* @example
* var azure = require('azure-storage');
* var queueService = azure.createQueueService();
* var queueName = 'taskqueue';
* queueService.getMessage(queueName, function(error, serverMessage) {
*   if(!error) {
*     // Process the message in less than 30 seconds, the message
*     // text is available in serverMessage.messagetext
*     queueService.deleteMessage(queueName, serverMessage.messageId, serverMessage.popReceipt, function(error) {
*       if(!error){
*           // Message deleted
*       }
*     });
*   }
* });
*/
QueueService.prototype.getMessage = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getMessage', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  options.numOfMessages = 1;
  
  var finalCallback = function(error, messages, response){
    var message;
    if(messages && messages.length > 0){
      message = messages[0];
    }
    
    callback(error, message, response);
  };
  
  this.getMessages(queue, options, finalCallback);
};

/**
* Retrieves messages from the front of the queue, without changing the messages visibility.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {int}                [options.numOfMessages]                     A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. By default, a single message is retrieved from the queue with this operation.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `result` will contain
*                                                                         `[messages]{@link QueueMessageResult}`.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.peekMessages = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('peekMessages', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  options.peekOnly = true;
  delete options.visibilityTimeout;
  
  this._getOrPeekMessages(queue, options, callback);
};

/**
* Retrieves a message from the front of the queue, without changing the message visibility.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link QueueMessageResult}` will contain
*                                                                         the message.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.peekMessage = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('peekMessage', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  options.numOfMessages = 1;
  
  var finalCallback = function(error, messages, response){
    var message;
    if(messages && messages.length > 0){
      message = messages[0];
    }
    
    callback(error, message, response);
  };
  
  this.peekMessages(queue, options, finalCallback);
};

/**
* Deletes a specified message from the queue.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {string}             messageId                                   The message identifier of the message to delete.
* @param {string}             popReceipt                                  A valid pop receipt value returned from an earlier call to the Get Messages or Update Message operation
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResponse}  callback                                      `error` will contain information if an error occurs; 
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.deleteMessage = function (queue, messageId, popReceipt, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('deleteMessage', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  if (azureutil.objectIsNull(popReceipt)) {
    throw new Error(SR.INVALID_POP_RECEIPT);
  }

  if (azureutil.objectIsNull(messageId)) {
    throw new Error(SR.INVALID_MESSAGE_ID);
  }

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.del(queue + '/messages/' + messageId)
    .withQueryOption(QueryStringConstants.POP_RECEIPT, popReceipt, null, true);

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Clears all messages from the queue.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResponse}  callback                                      `error` will contain information
*                                                                         if an error occurs; otherwise 
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.clearMessages = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('clearMessages', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.del(queue + '/messages');

  var processResponseCallback = function (responseObject, next) {
    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Updates the visibility timeout of a message. You can also use this operation to update the contents of a message.
* A message must be in a format that can be included in an XML request with UTF-8 encoding, and the encoded message can be up to 64KB in size.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {string}             messageId                                   The message identifier of the message to update.
* @param {string}             popReceipt                                  A valid pop receipt value returned from an earlier call to the Get Messages or Update Message operation
* @param {int}                visibilityTimeout                           Specifies the new visibility timeout value, in seconds, relative to server time. The new value must be larger than or equal to 0, and cannot be larger than 7 days. The visibility timeout of a message can be set to a value later than the expiry time.
* @param {object}             [options]                                   The request options.
* @param {object}             [options.messageText]                       The new message text.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link QueueMessageResult}` will contain
*                                                                         the message result information.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.updateMessage = function (queue, messageId, popReceipt, visibilityTimeout, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('updateMessage', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  if (azureutil.objectIsNull(popReceipt)) {
    throw new Error(SR.INVALID_POP_RECEIPT);
  }

  if (azureutil.objectIsNull(messageId)) {
    throw new Error(SR.INVALID_MESSAGE_ID);
  }

  var options = extend(true, {}, userOptions);
  var content = null;
  if (options.messageText) {
    content = QueueMessageResult.serialize(options.messageText, this.messageEncoder);
  }

  var contentLength = content ? Buffer.byteLength(content, 'utf8') : 0;

  var webResource = WebResource.put(queue + '/messages/' + messageId)
    .withHeader(HeaderConstants.CONTENT_TYPE, 'application/atom+xml;charset="utf-8"')
    .withHeader(HeaderConstants.CONTENT_LENGTH, contentLength)
    .withQueryOption(QueryStringConstants.POP_RECEIPT, popReceipt, null, true)
    .withQueryOption(QueryStringConstants.VISIBILITY_TIMEOUT, visibilityTimeout)
    .withBody(content);

  var processResponseCallback = function (responseObject, next) {
    responseObject.queueMessageResult = null;
    if (!responseObject.error) {
      responseObject.queueMessageResult = new QueueMessageResult(queue, messageId);
      responseObject.queueMessageResult.getPropertiesFromHeaders(responseObject.response.headers);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.queueMessageResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

/**
* Gets the queue's ACL.
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {errorOrResult}  callback                                        `error` will contain information
*                                                                         if an error occurs; otherwise `[result]{@link QueueResult}` will contain
*                                                                         information for the queue.
*                                                                         `response` will contain information related to this operation.
*/
QueueService.prototype.getQueueAcl = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('getQueueAcl', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.get(queue)
    .withQueryOption(QueryStringConstants.COMP, 'acl');

  options.requestLocationMode = Constants.RequestLocationMode.PRIMARY_OR_SECONDARY;

  var processResponseCallback = function (responseObject, next) {
    responseObject.queueResult = null;
    if (!responseObject.error) {
      responseObject.queueResult = new QueueResult(queue);
      responseObject.queueResult.getPropertiesFromHeaders(responseObject.response.headers);
      responseObject.queueResult.signedIdentifiers = AclResult.parse(responseObject.response.body);
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.queueResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Updates the queue's ACL.
*
* @this {QueueService}
* @param {string}                             queue                                       The queue name.
* @property   {Object.<string, AccessPolicy>}    signedIdentifiers                           The container ACL settings. See `[AccessPolicy]{@link AccessPolicy}` for detailed information.
* @param {object}                             [options]                                   The request options.
* @param {LocationMode}                       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}                             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}                               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                                         The default value is false.
* @param {errorOrResult}  callback                                                        `error` will contain information
*                                                                                         if an error occurs; otherwise `[result]{@link QueueResult}` will contain
*                                                                                         information for the queue.
*                                                                                         `response` will contain information related to this operation.
* @example
* var azure = require('azure-storage');
* var SharedAccessPermissions = azure.QueueUtilities.SharedAccessPermissions;
* var queueService = azure.createQueueService();
* var sharedAccessPolicies = [
* {AccessPolicy: {
*     Permissions: PROCESS,
*     Start: startDate,
*     Expiry: expiryDate
*   },
*   Id: processOnly,
* },
* {AccessPolicy: {
*     Permissions: SharedAccessPermissions.PROCESS + SharedAccessPermissions.DELETE,
*     Start: startDate,
*     Expiry: expiryDate
*   },
*   Id: processAndDelete,
* }];
* 
* queueService.setQueueAcl(queueName, sharedAccessPolicies, function(error, queueResult, response) {
*     // do whatever
* });
*/
QueueService.prototype.setQueueAcl = function (queue, signedIdentifiers, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('setQueueAcl', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });
  
  var options = extend(true, {}, userOptions);

  var policies = null;
  if (signedIdentifiers) {
    if(_.isArray(signedIdentifiers)) {
      throw new TypeError(SR.INVALID_SIGNED_IDENTIFIERS);
    }
    policies = AclResult.serialize(signedIdentifiers);
  }

  var webResource = WebResource.put(queue)
    .withQueryOption(QueryStringConstants.COMP, 'acl')
    .withHeader(HeaderConstants.CONTENT_LENGTH, !azureutil.objectIsNull(policies) ? Buffer.byteLength(policies) : 0)
    .withBody(policies);

  var processResponseCallback = function (responseObject, next) {
    responseObject.containerResult = null;
    if (!responseObject.error) {
      responseObject.queueResult = new QueueResult(queue);
      responseObject.queueResult.getPropertiesFromHeaders(responseObject.response.headers);
      if (signedIdentifiers) {
        responseObject.queueResult.signedIdentifiers = signedIdentifiers;
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.queueResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, webResource.body, options, processResponseCallback);
};

/**
* Retrieves a shared access signature token.
*
* @this {QueueService}
* @param {string}                   queue                                               The queue name.
* @param {object}                   sharedAccessPolicy                                  The shared access policy.
* @param {string}                   [sharedAccessPolicy.Id]                             The signed identifier.
* @param {object}                   [sharedAccessPolicy.AccessPolicy.Permissions]       The permission type.
* @param {date|string}              [sharedAccessPolicy.AccessPolicy.Start]             The time at which the Shared Access Signature becomes valid (The UTC value will be used).
* @param {date|string}              [sharedAccessPolicy.AccessPolicy.Expiry]            The time at which the Shared Access Signature becomes expired (The UTC value will be used).
* @param {string}                   [sharedAccessPolicy.AccessPolicy.IPAddressOrRange]  An IP address or a range of IP addresses from which to accept requests. When specifying a range, note that the range is inclusive.
* @param {string}                   sharedAccessPolicy.AccessPolicy.Protocols           The protocols permitted for a request made with the account SAS. 
*                                                                                       Possible values are both HTTPS and HTTP (https,http) or HTTPS only (https). The default value is https,http.
* @return {string}                                                                      The shared access signature query string. Note this string does not contain the leading "?".
*/
QueueService.prototype.generateSharedAccessSignature = function (queue, sharedAccessPolicy) {
  // check if the QueueService is able to generate a shared access signature
  if (!this.storageCredentials || !this.storageCredentials.generateSignedQueryString) {
    throw new Error(SR.CANNOT_CREATE_SAS_WITHOUT_ACCOUNT_KEY);
  }

  validate.validateArgs('generateSharedAccessSignature', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.object(sharedAccessPolicy, 'sharedAccessPolicy');
  });

  return this.storageCredentials.generateSignedQueryString(Constants.ServiceType.Queue, queue, sharedAccessPolicy, null);
};

/**
* Checks to see if a queue exists.
* @ignore
*
* @this {QueueService}
* @param {string}             queue                                       The queue name.
* @param {string}             primaryOnly                                 If true, the request will be executed against the primary storage location.
* @param {object}             [options]                                   The request options.
* @param {LocationMode}       [options.locationMode]                      Specifies the location mode used to decide which location the request should be sent to. 
*                                                                         Please see StorageUtilities.LocationMode for the possible values.
* @param {int}                [options.timeoutIntervalInMs]               The server timeout interval, in milliseconds, to use for the request.
* @param {int}                [options.clientRequestTimeoutInMs]          The timeout of client requests, in milliseconds, to use for the request.
* @param {int}                [options.maximumExecutionTimeInMs]          The maximum execution time, in milliseconds, across all potential retries, to use when making this request.
*                                                                         The maximum execution time interval begins at the time that the client begins building the request. The maximum
*                                                                         execution time is checked intermittently while performing requests, and before executing retries.
* @param {string}             [options.clientRequestId]                   A string that represents the client request ID with a 1KB character limit.
* @param {bool}               [options.useNagleAlgorithm]                 Determines whether the Nagle algorithm is used; true to use the Nagle algorithm; otherwise, false.
*                                                                         The default value is false.
* @param {Function(error, result, response)}         callback             `error` will contain information
*                                                                         if an error occurs; otherwise, `result` will contain
*                                                                         the queue information including `exists` boolean member
*                                                                         and `response` will contain information related to this operation.
*
*/
QueueService.prototype._doesQueueExist = function (queue, primaryOnly, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('doesQueueExist', function(v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);
  var webResource = WebResource.head(queue)
    .withQueryOption(QueryStringConstants.COMP, 'metadata');

  if(primaryOnly === false) {
    options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;
  }

  var processResponseCallback = function(responseObject, next) {
    responseObject.queueResult = new QueueResult(queue);
    responseObject.queueResult.exists = false;
    
    if (!responseObject.error) {
      responseObject.queueResult.exists = true;
      responseObject.queueResult.getPropertiesFromHeaders(responseObject.response.headers);
      
    } else if (responseObject.error && responseObject.error.statusCode === Constants.HttpConstants.HttpResponseCodes.NotFound) {
      responseObject.error = null;
      responseObject.queueResult.exists = false;
      responseObject.response.isSuccessful = true;
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.queueResult, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
 * @ignore
 */
QueueService.prototype._getOrPeekMessages = function (queue, optionsOrCallback, callback) {
  var userOptions;
  azureutil.normalizeArgs(optionsOrCallback, callback, function (o, c) { userOptions = o; callback = c; });

  validate.validateArgs('_getOrPeekMessages', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
    v.callback(callback);
  });

  var options = extend(true, {}, userOptions);

  if (!options.numOfMessages) {
    options.numOfMessages = 1;
  }

  var webResource = WebResource.get(queue + '/messages')
    .withQueryOption(QueryStringConstants.NUM_OF_MESSAGES, options.numOfMessages)
    .withQueryOption(QueryStringConstants.VISIBILITY_TIMEOUT, options.visibilityTimeout)
    .withQueryOption(QueryStringConstants.PEEK_ONLY, options.peekOnly);

  if (options.peekOnly) {
    // For peek message, it's a read-only action and can be performed against secondary endpoint.
    options.requestLocationMode = RequestLocationMode.PRIMARY_OR_SECONDARY;
  }


  var messageEncoder = this.messageEncoder;
  var processResponseCallback = function (responseObject, next) {
    responseObject.queueMessageResults = null;

    if (!responseObject.error) {
      responseObject.queueMessageResults = [];

      if (responseObject.response.body.QueueMessagesList && responseObject.response.body.QueueMessagesList.QueueMessage) {
        var messages = responseObject.response.body.QueueMessagesList.QueueMessage;

        if (!_.isArray(messages)) {
          messages = [ messages ];
        }

        messages.forEach(function (message) {
          var queueMessageResult = QueueMessageResult.parse(message, messageEncoder);
          responseObject.queueMessageResults.push(queueMessageResult);
        });
      }
    }

    var finalCallback = function (returnObject) {
      callback(returnObject.error, returnObject.queueMessageResults, returnObject.response);
    };

    next(responseObject, finalCallback);
  };

  this.performRequest(webResource, null, options, processResponseCallback);
};

/**
* Retrieves a queue URL.
*
* @param {string}                   queue                    The queue name.
* @param {string}                   [sasToken]               The Shared Access Signature token.
* @param {boolean}                  [primary]                A boolean representing whether to use the primary or the secondary endpoint.
* @return {string}                                           The formatted URL string.
* @example
* var azure = require('azure-storage');
* var queueService = azure.createQueueService();
* var sharedAccessPolicy = {
*   AccessPolicy: {
*     Permissions: azure.QueueUtilities.SharedAccessPermissions.READ,
*     Start: startDate,
*     Expiry: expiryDate
*   },
* };
* 
* var sasToken = queueService.generateSharedAccessSignature(queue, sharedAccessPolicy);
* var sasUrl = queueService.getUrl(queue, sasToken);
*/
QueueService.prototype.getUrl = function (queue, sasToken, primary) {
  validate.validateArgs('getUrl', function (v) {
    v.string(queue, 'queue');
    v.queueNameIsValid(queue);
  });

  return this._getUrl(queue, sasToken, primary);
};

module.exports = QueueService;


/***/ }),
/* 622 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var Constants = __webpack_require__(272).Constants;
var HeaderConstants = Constants.HeaderConstants;

/**
* Creates a new QueueResult object.
* @class
* The QueueResult class is used to store the queue information.
* 
* @property   {string}                      name                                  The queue name.
* @property   {object}                      metadata                              The metadata key/value pair.
* @property   {number}                      approximateMessageCount               The approximate number of messages in the queue. This number is not lower than the actual number of messages in the queue, but could be higher.
* @property   {Object.<string, AccessPolicy>}  signedIdentifiers                     The container ACL settings. See `[AccessPolicy]{@link AccessPolicy}` for detailed information.
 * 
* @constructor
* @param {string} [name]                    The queue name.
* @param {string} [metadata]                The metadata key/value pair.
*/
function QueueResult(name, metadata) {
  if (name) {
    this.name = name;
  }

  if (metadata) {
    this.metadata = metadata;
  }
}

QueueResult.parse = function (messageXml) {
  var queueResult = new QueueResult();
  for (var property in messageXml) {
    if (messageXml.hasOwnProperty(property)) {
      queueResult[property.toLowerCase()] = messageXml[property];
    }
  }

  return queueResult;
};

QueueResult.prototype.getPropertiesFromHeaders = function (headers) {
  var self = this;

  var setPropertyFromHeaders = function (queueProperty, headerProperty, typeConverterFunc) {
    if (!self[queueProperty] && headers[headerProperty.toLowerCase()]) {
      if(typeConverterFunc) {
        self[queueProperty] = typeConverterFunc(headers[headerProperty.toLowerCase()]);
      } else{
        self[queueProperty] = headers[headerProperty.toLowerCase()];
      }
    }
  };

  setPropertyFromHeaders('approximateMessageCount', HeaderConstants.APPROXIMATE_MESSAGES_COUNT, parseInt);
};

module.exports = QueueResult;

/***/ }),
/* 623 */
/***/ (function(module, exports, __webpack_require__) {

﻿// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.
var azureCommon = __webpack_require__(272);
var azureutil = azureCommon.util;
var xmlbuilder = azureCommon.xmlbuilder;
var Constants = azureCommon.Constants;

var HeaderConstants = Constants.HeaderConstants;

/**
* Creates a new QueueMessageResult object.
* @class
* The QueueMessageResult class is used to store the queue message information.
* 
* @property   {string}                      queue                           The queue name.
* @property   {string}                      messageId                       The message id.
* @property   {string}                      popReceipt                      The pop receipt.
* @property   {string}                      messageText                     The message text.
* @property   {string}                      timeNextVisible                 The time next visible.
* @property   {string}                      insertionTime                   The insertion time.
* @property   {string}                      expirationTime                  The expiration time.
* @property   {number}                      dequeueCount                    The dequeue count.
 * 
* @constructor
* @param {string} [queue]                   The queue name.
* @param {string} [messageId]               The message id.
* @param {string} [popReceipt]              The pop receipt.
*/
function QueueMessageResult(queue, messageId, popReceipt) {
  if (queue) {
    this.queue = queue;
  }

  if (messageId) {
    this.messageId = messageId;
  }

  if (popReceipt) {
    this.popReceipt = popReceipt;
  }
}

/**
* Builds an XML representation for a queue message
*
* @param  {string}  messageJs    The queue message.
* @param  {QueueMessageEncoder}  The message encoder.
* @return {string} The XML queue message.
*/
QueueMessageResult.serialize = function (messageJs, encoder) {
  var doc = xmlbuilder.create(Constants.QueueConstants.QUEUE_MESSAGE_ELEMENT, { version: '1.0', encoding: 'utf-8' });

  if (messageJs) {
    var message;
    if (encoder !== null && encoder !== undefined) {
      message = encoder.encode(messageJs);
    } else {
      message = messageJs;
    }
    
    doc.ele(Constants.QueueConstants.MESSAGE_TEXT_ELEMENT)
        .txt(message)
      .up();
  } else {
    doc.ele(Constants.QueueConstants.MESSAGE_TEXT_ELEMENT).up();
  }

  return doc.doc().toString();
};


/**
* Pase the XML representation of a queue message to a QueueMessageResult object.
*
* @param  {Object}  messageXml   The XML representation of the queue message.
* @param  {QueueMessageEncoder}  The message encoder.
* @return {QueueMessageResult}   The QueueMessageResult object.
*/
QueueMessageResult.parse = function (messageXml, encoder) {
  var queueMessageResult = new QueueMessageResult();
  for (var property in messageXml) {
    if (property === Constants.QueueConstants.MESSAGE_TEXT_ELEMENT) {
      if (encoder !== null && encoder !== undefined) {
        queueMessageResult.messageText = encoder.decode(messageXml[property]);
      } else {
        queueMessageResult.messageText = messageXml[property];
      }
    } else {
      var resultPropertyName = azureutil.normalizePropertyNameFromXML(property);
      queueMessageResult[resultPropertyName] = messageXml[property];
    }
  }

  // Convert dequeueCount to number
  if (queueMessageResult.dequeueCount) {
    queueMessageResult.dequeueCount = parseInt(queueMessageResult.dequeueCount);
  }

  return queueMessageResult;
};

QueueMessageResult.prototype.getPropertiesFromHeaders = function (headers) {
  var self = this;

  var setmessagePropertyFromHeaders = function (messageProperty, headerProperty) {
    if (!self[messageProperty] && headers[headerProperty.toLowerCase()]) {
      self[messageProperty] = headers[headerProperty.toLowerCase()];
    }
  };

  setmessagePropertyFromHeaders('popReceipt', HeaderConstants.POP_RECEIPT);
  setmessagePropertyFromHeaders('timeNextVisible', HeaderConstants.TIME_NEXT_VISIBLE);
};

module.exports = QueueMessageResult;

/***/ }),
/* 624 */
/***/ (function(module, exports, __webpack_require__) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Module dependencies.

var util = __webpack_require__(113);

/**
 * The interface for classes that represent a encoder which can be used to specify how the queue service encodes and decodes queue messages.
 * 
 * To specify how the queue service encodes and decodes queue messages, set `queueService.messageEncoder` to object of built-in encoder types
 * `[TextBase64QueueMessageEncoder]{@link TextBase64QueueMessageEncoder}`, `[BinaryBase64QueueMessageEncoder]{@link BinaryBase64QueueMessageEncoder}`, `[TextXmlQueueMessageEncoder]{@link TextXmlQueueMessageEncoder}`,
 * or custom implementation of the QueueMessageEncoder.
 * 
 * @class
 */
function QueueMessageEncoder() {
}

/**
 * Function to encode queue messages.
 * 
 * @param   {object}    [input]               The target to be encoded.
 * @return  {string}
 */
QueueMessageEncoder.prototype.encode = function(input){
  return input;
};

/**
 * Function to decode queue messages
 * 
 * @param   {string}    [textToBeDecoded]     The base64 string to be decoded.
 * @returns {any}
 */
QueueMessageEncoder.prototype.decode = function(textToBeDecoded){
  return textToBeDecoded;
};


/**
 * Create a new TextBase64QueueMessageEncoder object
 * @class
 * 
 * Encode from utf-8 string to base64 string
 * Decode from base64 string to utf-8 string.
 * 
 * @constructor
 * @extends {QueueMessageEncoder}
 */
function TextBase64QueueMessageEncoder(){
}
util.inherits(TextBase64QueueMessageEncoder, QueueMessageEncoder);

/**
 * Encode from utf-8 string to base64 string
 * @this TextBase64QueueMessageEncoder
 * 
 * @param   {string}    [input]               The target to be encoded.
 * 
 * @return {string}
 */
TextBase64QueueMessageEncoder.prototype.encode = function(input){
  return Buffer.from(input, 'utf8').toString('base64');
};

/**
 * Decode from base64 string to utf-8 string.
 * @this TextBase64QueueMessageEncoder
 * 
 * @param   {string}    [textToBeDecoded]     The base64 string to be decoded.
 * 
 * @return {string}
 */
TextBase64QueueMessageEncoder.prototype.decode = function(textToDecode){
  return Buffer.from(textToDecode, 'base64').toString('utf8');
};


/**
 * Create a new BinaryBase64QueueMessageEncoder object
 * @class
 * 
 * Encode from binary buffer to base64 string
 * Decode from base64 string to binary buffer.
 * 
 * @constructor
 * @extends {QueueMessageEncoder}
 */
function BinaryBase64QueueMessageEncoder(){
}
util.inherits(BinaryBase64QueueMessageEncoder, QueueMessageEncoder);

/**
 * Encode from binary buffer string to base64 string
 * @this BinaryBase64QueueMessageEncoder
 * 
 * @param   {Buffer}    [input]               The target to be encoded.
 * 
 * @return {string}
 */
BinaryBase64QueueMessageEncoder.prototype.encode = function(input){
  return input.toString('base64');
};


/**
 * Decode from base64 string to binary buffer.
 * @this BinaryBase64QueueMessageEncoder
 * 
 * @param   {string}    [textToBeDecoded]     The base64 string to be decoded.
 * 
 * @return {Buffer}
 */
BinaryBase64QueueMessageEncoder.prototype.decode = function(textToDecode){
  return Buffer.from(textToDecode, 'base64');
};


/**
 * Create a new TextXmlQueueMessageEncoder object
 * @class
 * 
 * Encode utf-8 string by escaping the xml markup characters.
 * Decode from utf-8 string by unescaping the xml markup characters.
 * 
 * @constructor
 * @extends {QueueMessageEncoder}
 */
function TextXmlQueueMessageEncoder(){
}
util.inherits(TextXmlQueueMessageEncoder, QueueMessageEncoder);

/**
 * Encode utf-8 string by escaping the xml markup characters.
 * @this TextXmlQueueMessageEncoder
 * 
 * @param   {string}    [input]               The target to be encoded.
 * 
 * @return {string}
 */
TextXmlQueueMessageEncoder.prototype.encode = function(input){
  return input.replace(/&/gm, '&amp;')
    .replace(/</gm, '&lt;')
    .replace(/>/gm, '&gt;')
    .replace(/"/gm, '&quot;')
    .replace(/'/gm, '&apos;');
};

/**
 * Decode from utf-8 string by unescaping the xml markup characters.
 * @this TextXmlQueueMessageEncoder
 * 
 * @param   {string}    [textToBeDecoded]     The base64 string to be decoded.
 * 
 * @return {string}
 */
TextXmlQueueMessageEncoder.prototype.decode = function(textToDecode){
  return textToDecode.replace(/&amp;/gm, '&')
    .replace(/&lt;/gm, '<')
    .replace(/&gt;/gm, '>')
    .replace(/&quot;/gm, '"')
    .replace(/&apos;/gm, '\'');
};

module.exports = QueueMessageEncoder;
module.exports.TextBase64QueueMessageEncoder = TextBase64QueueMessageEncoder;
module.exports.BinaryBase64QueueMessageEncoder = BinaryBase64QueueMessageEncoder;
module.exports.TextXmlQueueMessageEncoder = TextXmlQueueMessageEncoder;

/***/ }),
/* 625 */
/***/ (function(module, exports) {

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Expose 'QueueUtilities'.
exports = module.exports;

/**
* Defines enums for use with the Queue service.
* @namespace QueueUtilities
*/
var QueueUtilities = {
	/**
  * Permission types.
  *
  * @const
  * @enum {string}
  */
  SharedAccessPermissions: {
    READ: 'r',
    ADD: 'a',
    UPDATE: 'u',
    PROCESS: 'p'
  }
};

module.exports = QueueUtilities;

/***/ }),
/* 626 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const semver_1 = __webpack_require__(265);
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(74);
const types_3 = __webpack_require__(205);
const types_4 = __webpack_require__(75);
const platform_1 = __webpack_require__(627);
const types_5 = __webpack_require__(95);
const types_6 = __webpack_require__(77);
const languageServerPackageRepository_1 = __webpack_require__(266);
const downloadBaseFileName = 'Python-Language-Server';
exports.maxMajorVersion = 0;
exports.PackageNames = {
    [types_6.PlatformName.Windows32Bit]: `${downloadBaseFileName}-${types_6.PlatformName.Windows32Bit}`,
    [types_6.PlatformName.Windows64Bit]: `${downloadBaseFileName}-${types_6.PlatformName.Windows64Bit}`,
    [types_6.PlatformName.Linux64Bit]: `${downloadBaseFileName}-${types_6.PlatformName.Linux64Bit}`,
    [types_6.PlatformName.Mac64Bit]: `${downloadBaseFileName}-${types_6.PlatformName.Mac64Bit}`
};
let LanguageServerPackageService = class LanguageServerPackageService {
    constructor(serviceContainer, appEnv, platform) {
        this.serviceContainer = serviceContainer;
        this.appEnv = appEnv;
        this.platform = platform;
        this.maxMajorVersion = exports.maxMajorVersion;
    }
    getNugetPackageName() {
        switch (this.platform.osType) {
            case platform_1.OSType.Windows: {
                return exports.PackageNames[this.platform.is64bit ? types_6.PlatformName.Windows64Bit : types_6.PlatformName.Windows32Bit];
            }
            case platform_1.OSType.OSX: {
                return exports.PackageNames[types_6.PlatformName.Mac64Bit];
            }
            default: {
                return exports.PackageNames[types_6.PlatformName.Linux64Bit];
            }
        }
    }
    async getLatestNugetPackageVersion() {
        const downloadChannel = this.getLanguageServerDownloadChannel();
        const nugetRepo = this.serviceContainer.get(types_2.INugetRepository, downloadChannel);
        const packageName = this.getNugetPackageName();
        logger_1.traceVerbose(`Listing packages for ${downloadChannel} for ${packageName}`);
        const packages = await nugetRepo.getPackages(packageName);
        return this.getValidPackage(packages);
    }
    getLanguageServerDownloadChannel() {
        const configService = this.serviceContainer.get(types_4.IConfigurationService);
        const settings = configService.getSettings();
        if (settings.analysis.downloadChannel) {
            return settings.analysis.downloadChannel;
        }
        return 'stable';
    }
    getValidPackage(packages) {
        const nugetService = this.serviceContainer.get(types_2.INugetService);
        const validPackages = packages
            .filter(item => item.version.major === this.maxMajorVersion)
            .filter(item => nugetService.isReleaseVersion(item.version))
            .sort((a, b) => a.version.compare(b.version));
        const pkg = validPackages[validPackages.length - 1];
        const minimumVersion = this.appEnv.packageJson.languageServerVersion;
        if (pkg.version.compare(minimumVersion) >= 0) {
            return validPackages[validPackages.length - 1];
        }
        // This is a fall back, if the wrong version is returned, e.g. version is cached downstream in some proxy server or similar.
        // This way, we always ensure we have the minimum version that's compatible.
        return {
            version: new semver_1.SemVer(minimumVersion),
            package: languageServerPackageRepository_1.LanguageServerPackageStorageContainers.stable,
            uri: `${languageServerPackageRepository_1.azureCDNBlobStorageAccount}/${languageServerPackageRepository_1.LanguageServerPackageStorageContainers.stable}/${this.getNugetPackageName()}.${minimumVersion}.nupkg`
        };
    }
    isAlphaVersionOfExtension() {
        return false;
    }
};
__decorate([
    logger_1.traceDecorators.verbose('Get latest language server nuget package version')
], LanguageServerPackageService.prototype, "getLatestNugetPackageVersion", null);
LanguageServerPackageService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_5.IServiceContainer)),
    __param(1, inversify_1.inject(types_1.IApplicationEnvironment)),
    __param(2, inversify_1.inject(types_3.IPlatformService))
], LanguageServerPackageService);
exports.LanguageServerPackageService = LanguageServerPackageService;


/***/ }),
/* 627 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
var Architecture;
(function (Architecture) {
    Architecture[Architecture["Unknown"] = 1] = "Unknown";
    Architecture[Architecture["x86"] = 2] = "x86";
    Architecture[Architecture["x64"] = 3] = "x64";
})(Architecture = exports.Architecture || (exports.Architecture = {}));
var OSType;
(function (OSType) {
    OSType["Unknown"] = "Unknown";
    OSType["Windows"] = "Windows";
    OSType["OSX"] = "OSX";
    OSType["Linux"] = "Linux";
})(OSType = exports.OSType || (exports.OSType = {}));


/***/ }),
/* 628 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const logger_1 = __webpack_require__(86);
const decorators_1 = __webpack_require__(151);
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(77);
const function_1 = __webpack_require__(80);
let LanguageServerManager = class LanguageServerManager {
    constructor(serviceContainer, analysisOptions, lsExtension) {
        this.serviceContainer = serviceContainer;
        this.analysisOptions = analysisOptions;
        this.lsExtension = lsExtension;
        this.disposables = [];
    }
    dispose() {
        if (this.languageServer) {
            this.languageServer.dispose();
        }
        this.disposables.forEach(d => d.dispose());
    }
    async start(resource) {
        if (this.languageServer) {
            throw new Error('Language Server already started');
        }
        this.registerCommandHandler();
        this.resource = resource;
        this.analysisOptions.onDidChange(this.restartLanguageServerDebounced, this, this.disposables);
        await this.analysisOptions.initialize(resource);
        await this.startLanguageServer();
    }
    registerCommandHandler() {
        this.lsExtension.invoked(this.loadExtensionIfNecessary, this, this.disposables);
    }
    loadExtensionIfNecessary() {
        if (this.languageServer && this.lsExtension.loadExtensionArgs) {
            this.languageServer.loadExtension(this.lsExtension.loadExtensionArgs);
        }
    }
    restartLanguageServerDebounced() {
        this.restartLanguageServer().catch(function_1.emptyFn);
    }
    async restartLanguageServer() {
        if (this.languageServer) {
            this.languageServer.dispose();
        }
        await this.startLanguageServer();
    }
    async startLanguageServer() {
        this.languageServer = this.serviceContainer.get(types_2.ILanguageServer);
        const options = await this.analysisOptions.getAnalysisOptions();
        await this.languageServer.start(this.resource, options);
        this.loadExtensionIfNecessary();
    }
};
__decorate([
    logger_1.traceDecorators.error('Failed to start Language Server')
], LanguageServerManager.prototype, "start", null);
__decorate([
    decorators_1.debounce(1000)
], LanguageServerManager.prototype, "restartLanguageServerDebounced", null);
__decorate([
    logger_1.traceDecorators.error('Failed to restart Language Server'),
    logger_1.traceDecorators.verbose('Restarting Language Server')
], LanguageServerManager.prototype, "restartLanguageServer", null);
__decorate([
    logger_1.traceDecorators.verbose('Starting Language Server')
], LanguageServerManager.prototype, "startLanguageServer", null);
LanguageServerManager = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer)),
    __param(1, inversify_1.inject(types_2.ILanguageServerAnalysisOptions)),
    __param(2, inversify_1.inject(types_2.ILanguageServerExtension))
], LanguageServerManager);
exports.LanguageServerManager = LanguageServerManager;


/***/ }),
/* 629 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(205);
var PlatformName;
(function (PlatformName) {
    PlatformName["Windows32Bit"] = "win-x86";
    PlatformName["Windows64Bit"] = "win-x64";
    PlatformName["Mac64Bit"] = "osx-x64";
    PlatformName["Linux64Bit"] = "linux-x64";
})(PlatformName = exports.PlatformName || (exports.PlatformName = {}));
var PlatformLSExecutables;
(function (PlatformLSExecutables) {
    PlatformLSExecutables["Windows"] = "Microsoft.Python.LanguageServer.exe";
    PlatformLSExecutables["MacOS"] = "Microsoft.Python.LanguageServer";
    PlatformLSExecutables["Linux"] = "Microsoft.Python.LanguageServer";
})(PlatformLSExecutables = exports.PlatformLSExecutables || (exports.PlatformLSExecutables = {}));
let PlatformData = class PlatformData {
    constructor(platform) {
        this.platform = platform;
    }
    get platformName() {
        if (this.platform.isWindows) {
            return this.platform.is64bit ? PlatformName.Windows64Bit : PlatformName.Windows32Bit;
        }
        if (this.platform.isMac) {
            return PlatformName.Mac64Bit;
        }
        if (this.platform.isLinux) {
            if (!this.platform.is64bit) {
                throw new Error('Microsoft Python Language Server does not support 32-bit Linux.');
            }
            return PlatformName.Linux64Bit;
        }
        throw new Error('Unknown OS platform.');
    }
    get engineDllName() {
        return 'Microsoft.Python.LanguageServer.dll';
    }
    get engineExecutableName() {
        if (this.platform.isWindows) {
            return PlatformLSExecutables.Windows;
        }
        else if (this.platform.isLinux) {
            return PlatformLSExecutables.Linux;
        }
        else if (this.platform.isMac) {
            return PlatformLSExecutables.MacOS;
        }
        else {
            return 'unknown-platform';
        }
    }
};
PlatformData = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IPlatformService))
], PlatformData);
exports.PlatformData = PlatformData;


/***/ }),
/* 630 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const logger_1 = __webpack_require__(86);
// tslint:disable-next-line:no-any
function buildApi(ready) {
    return {
        // 'ready' will propogate the exception, but we must log it here first.
        ready: ready.catch(ex => {
            logger_1.traceError('Failure during activation.', ex);
            return Promise.reject(ex);
        }),
        debug: () => {
            return Promise.reject(new Error('not implemented'));
        }
    };
}
exports.buildApi = buildApi;


/***/ }),
/* 631 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const serviceRegistry_1 = __webpack_require__(632);
const surceMapSupportService_1 = __webpack_require__(647);
const types_1 = __webpack_require__(97);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_1.ISourceMapSupportService, surceMapSupportService_1.SourceMapSupportService);
    serviceRegistry_1.registerTypes(serviceManager);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 632 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(83);
const applicationDiagnostics_1 = __webpack_require__(633);
const envPathVariable_1 = __webpack_require__(634);
const invalidDebuggerType_1 = __webpack_require__(635);
const invalidPythonPathInDebugger_1 = __webpack_require__(636);
const lsNotSupported_1 = __webpack_require__(92);
const macPythonInterpreter_1 = __webpack_require__(638);
const powerShellActivation_1 = __webpack_require__(639);
const pythonInterpreter_1 = __webpack_require__(640);
const factory_1 = __webpack_require__(641);
const types_2 = __webpack_require__(98);
const filter_1 = __webpack_require__(646);
const promptHandler_1 = __webpack_require__(100);
const types_3 = __webpack_require__(97);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_3.IDiagnosticFilterService, filter_1.DiagnosticFilterService);
    serviceManager.addSingleton(types_3.IDiagnosticHandlerService, promptHandler_1.DiagnosticCommandPromptHandlerService, promptHandler_1.DiagnosticCommandPromptHandlerServiceId);
    serviceManager.addSingleton(types_3.IDiagnosticsService, envPathVariable_1.EnvironmentPathVariableDiagnosticsService, envPathVariable_1.EnvironmentPathVariableDiagnosticsServiceId);
    serviceManager.addSingleton(types_3.IDiagnosticsService, invalidDebuggerType_1.InvalidDebuggerTypeDiagnosticsService, invalidDebuggerType_1.InvalidDebuggerTypeDiagnosticsServiceId);
    serviceManager.addSingleton(types_3.IDiagnosticsService, pythonInterpreter_1.InvalidPythonInterpreterService, pythonInterpreter_1.InvalidPythonInterpreterServiceId);
    serviceManager.addSingleton(types_3.IDiagnosticsService, invalidPythonPathInDebugger_1.InvalidPythonPathInDebuggerService, invalidPythonPathInDebugger_1.InvalidPythonPathInDebuggerServiceId);
    serviceManager.addSingleton(types_3.IDiagnosticsService, lsNotSupported_1.LSNotSupportedDiagnosticService, lsNotSupported_1.LSNotSupportedDiagnosticServiceId);
    serviceManager.addSingleton(types_3.IDiagnosticsService, powerShellActivation_1.PowerShellActivationHackDiagnosticsService, powerShellActivation_1.PowerShellActivationHackDiagnosticsServiceId);
    serviceManager.addSingleton(types_3.IDiagnosticsService, macPythonInterpreter_1.InvalidMacPythonInterpreterService, macPythonInterpreter_1.InvalidMacPythonInterpreterServiceId);
    serviceManager.addSingleton(types_2.IDiagnosticsCommandFactory, factory_1.DiagnosticsCommandFactory);
    serviceManager.addSingleton(types_1.IApplicationDiagnostics, applicationDiagnostics_1.ApplicationDiagnostics);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 633 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const constants_1 = __webpack_require__(84);
const types_1 = __webpack_require__(75);
const types_2 = __webpack_require__(95);
const types_3 = __webpack_require__(97);
const function_1 = __webpack_require__(80);
let ApplicationDiagnostics = class ApplicationDiagnostics {
    constructor(serviceContainer, outputChannel) {
        this.serviceContainer = serviceContainer;
        this.outputChannel = outputChannel;
    }
    register() {
        this.serviceContainer.get(types_3.ISourceMapSupportService).register();
    }
    async performPreStartupHealthCheck(resource) {
        // When testing, do not perform health checks, as modal dialogs can be displayed.
        if (constants_1.isTestExecution()) {
            return;
        }
        const services = this.serviceContainer.getAll(types_3.IDiagnosticsService);
        // Perform these validation checks in the foreground.
        await this.runDiagnostics(services.filter(item => !item.runInBackground), resource);
        // Perform these validation checks in the background.
        this.runDiagnostics(services.filter(item => item.runInBackground), resource).catch(function_1.emptyFn);
    }
    async runDiagnostics(diagnosticServices, resource) {
        await Promise.all(diagnosticServices.map(async (diagnosticService) => {
            const diagnostics = await diagnosticService.diagnose(resource);
            if (diagnostics.length > 0) {
                this.log(diagnostics);
                await diagnosticService.handle(diagnostics);
            }
        }));
    }
    log(diagnostics) {
        const logger = this.serviceContainer.get(types_1.ILogger);
        diagnostics.forEach(item => {
            const message = `Diagnostic Code: ${item.code}, Message: ${item.message}`;
            switch (item.severity) {
                case vscode_languageserver_protocol_1.DiagnosticSeverity.Error: {
                    logger.logError(message);
                    this.outputChannel.appendLine(message);
                    break;
                }
                case vscode_languageserver_protocol_1.DiagnosticSeverity.Warning: {
                    logger.logWarning(message);
                    this.outputChannel.appendLine(message);
                    break;
                }
                default: {
                    logger.logInformation(message);
                }
            }
        });
    }
};
ApplicationDiagnostics = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer)),
    __param(1, inversify_1.inject(types_1.IOutputChannel)), __param(1, inversify_1.named(constants_1.STANDARD_OUTPUT_CHANNEL))
], ApplicationDiagnostics);
exports.ApplicationDiagnostics = ApplicationDiagnostics;


/***/ }),
/* 634 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const types_4 = __webpack_require__(95);
const base_1 = __webpack_require__(96);
const types_5 = __webpack_require__(98);
const constants_1 = __webpack_require__(99);
const promptHandler_1 = __webpack_require__(100);
const types_6 = __webpack_require__(97);
const string_1 = __webpack_require__(149);
const InvalidEnvPathVariableMessage = 'The environment variable \'{0}\' seems to have some paths containing the \'"\' character.' +
    ' The existence of such a character is known to have caused the {1} extension to not load. If the extension fails to load please modify your paths to remove this \'"\' character.';
class InvalidEnvironmentPathVariableDiagnostic extends base_1.BaseDiagnostic {
    constructor(message, resource) {
        super(constants_1.DiagnosticCodes.InvalidEnvironmentPathVariableDiagnostic, message, vscode_languageserver_protocol_1.DiagnosticSeverity.Warning, types_6.DiagnosticScope.Global, resource);
    }
}
exports.InvalidEnvironmentPathVariableDiagnostic = InvalidEnvironmentPathVariableDiagnostic;
exports.EnvironmentPathVariableDiagnosticsServiceId = 'EnvironmentPathVariableDiagnosticsServiceId';
let EnvironmentPathVariableDiagnosticsService = class EnvironmentPathVariableDiagnosticsService extends base_1.BaseDiagnosticsService {
    constructor(serviceContainer) {
        super([constants_1.DiagnosticCodes.InvalidEnvironmentPathVariableDiagnostic], serviceContainer, true);
        this.platform = this.serviceContainer.get(types_2.IPlatformService);
        this.messageService = serviceContainer.get(types_6.IDiagnosticHandlerService, promptHandler_1.DiagnosticCommandPromptHandlerServiceId);
    }
    async diagnose(resource) {
        if (this.platform.isWindows && this.doesPathVariableHaveInvalidEntries()) {
            const env = this.serviceContainer.get(types_1.IApplicationEnvironment);
            const message = string_1.format(InvalidEnvPathVariableMessage, this.platform.pathVariableName, env.extensionName);
            return [new InvalidEnvironmentPathVariableDiagnostic(message, resource)];
        }
        else {
            return [];
        }
    }
    async onHandle(diagnostics) {
        // This class can only handle one type of diagnostic, hence just use first item in list.
        if (diagnostics.length === 0 || !this.canHandle(diagnostics[0])) {
            return;
        }
        const diagnostic = diagnostics[0];
        if (await this.filterService.shouldIgnoreDiagnostic(diagnostic.code)) {
            return;
        }
        const commandFactory = this.serviceContainer.get(types_5.IDiagnosticsCommandFactory);
        const options = [
            {
                prompt: 'Ignore'
            },
            {
                prompt: 'Always Ignore',
                command: commandFactory.createCommand(diagnostic, { type: 'ignore', options: types_6.DiagnosticScope.Global })
            },
            {
                prompt: 'More Info',
                command: commandFactory.createCommand(diagnostic, { type: 'launch', options: 'https://aka.ms/Niq35h' })
            }
        ];
        await this.messageService.handle(diagnostic, { commandPrompts: options });
    }
    doesPathVariableHaveInvalidEntries() {
        const currentProc = this.serviceContainer.get(types_3.ICurrentProcess);
        const pathValue = currentProc.env[this.platform.pathVariableName];
        const pathSeparator = this.serviceContainer.get(types_3.IPathUtils).delimiter;
        const paths = (pathValue || '').split(pathSeparator);
        return paths.filter(item => item.indexOf('"') >= 0).length > 0;
    }
};
EnvironmentPathVariableDiagnosticsService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.IServiceContainer))
], EnvironmentPathVariableDiagnosticsService);
exports.EnvironmentPathVariableDiagnosticsService = EnvironmentPathVariableDiagnosticsService;


/***/ }),
/* 635 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(95);
const base_1 = __webpack_require__(96);
const constants_1 = __webpack_require__(99);
const promptHandler_1 = __webpack_require__(100);
const types_3 = __webpack_require__(97);
const InvalidDebuggerTypeMessage = 'Your launch.json file needs to be updated to change the "pythonExperimental" debug ' +
    'configurations to use the "python" debugger type, otherwise Python debugging may ' +
    'not work. Would you like to automatically update your launch.json file now?';
class InvalidDebuggerTypeDiagnostic extends base_1.BaseDiagnostic {
    constructor(message, resource) {
        super(constants_1.DiagnosticCodes.InvalidDebuggerTypeDiagnostic, message, vscode_languageserver_protocol_1.DiagnosticSeverity.Error, types_3.DiagnosticScope.WorkspaceFolder, resource, 'always');
    }
}
exports.InvalidDebuggerTypeDiagnostic = InvalidDebuggerTypeDiagnostic;
exports.InvalidDebuggerTypeDiagnosticsServiceId = 'InvalidDebuggerTypeDiagnosticsServiceId';
let InvalidDebuggerTypeDiagnosticsService = class InvalidDebuggerTypeDiagnosticsService extends base_1.BaseDiagnosticsService {
    constructor(serviceContainer) {
        super([constants_1.DiagnosticCodes.InvalidEnvironmentPathVariableDiagnostic], serviceContainer, true);
        this.messageService = serviceContainer.get(types_3.IDiagnosticHandlerService, promptHandler_1.DiagnosticCommandPromptHandlerServiceId);
        this.fs = this.serviceContainer.get(types_1.IFileSystem);
    }
    async diagnose(resource) {
        return [];
    }
    async onHandle(diagnostics) {
        // This class can only handle one type of diagnostic, hence just use first item in list.
        if (diagnostics.length === 0 || !this.canHandle(diagnostics[0])) {
            return;
        }
    }
};
InvalidDebuggerTypeDiagnosticsService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], InvalidDebuggerTypeDiagnosticsService);
exports.InvalidDebuggerTypeDiagnosticsService = InvalidDebuggerTypeDiagnosticsService;


/***/ }),
/* 636 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(75);
const localize_1 = __webpack_require__(93);
const systemVariables_1 = __webpack_require__(637);
const contracts_1 = __webpack_require__(90);
const types_3 = __webpack_require__(95);
const base_1 = __webpack_require__(96);
const types_4 = __webpack_require__(98);
const constants_1 = __webpack_require__(99);
const promptHandler_1 = __webpack_require__(100);
const types_5 = __webpack_require__(97);
const messages = {
    [constants_1.DiagnosticCodes.InvalidPythonPathInDebuggerSettingsDiagnostic]: localize_1.Diagnostics.invalidPythonPathInDebuggerSettings(),
    [constants_1.DiagnosticCodes.InvalidPythonPathInDebuggerLaunchDiagnostic]: localize_1.Diagnostics.invalidPythonPathInDebuggerLaunch()
};
class InvalidPythonPathInDebuggerDiagnostic extends base_1.BaseDiagnostic {
    constructor(code, resource) {
        super(code, messages[code], vscode_languageserver_protocol_1.DiagnosticSeverity.Error, types_5.DiagnosticScope.WorkspaceFolder, resource, 'always');
    }
}
exports.InvalidPythonPathInDebuggerDiagnostic = InvalidPythonPathInDebuggerDiagnostic;
exports.InvalidPythonPathInDebuggerServiceId = 'InvalidPythonPathInDebuggerServiceId';
let InvalidPythonPathInDebuggerService = class InvalidPythonPathInDebuggerService extends base_1.BaseDiagnosticsService {
    constructor(serviceContainer, commandFactory, interpreterHelper, documentManager, configService, messageService) {
        super([
            constants_1.DiagnosticCodes.InvalidPythonPathInDebuggerSettingsDiagnostic,
            constants_1.DiagnosticCodes.InvalidPythonPathInDebuggerLaunchDiagnostic
        ], serviceContainer, true);
        this.commandFactory = commandFactory;
        this.interpreterHelper = interpreterHelper;
        this.documentManager = documentManager;
        this.configService = configService;
        this.messageService = messageService;
    }
    async diagnose(_resource) {
        return [];
    }
    async validatePythonPath(pythonPath, pythonPathSource, resource) {
        // pythonPath = pythonPath ? this.resolveVariables(pythonPath, resource) : undefined
        // // tslint:disable-next-line:no-invalid-template-strings
        // if (pythonPath === '${config:python.pythonPath}' || !pythonPath) {
        //   pythonPath = this.configService.getSettings(resource).pythonPath
        // }
        // if (await this.interpreterHelper.getInterpreterInformation(pythonPath).catch(() => undefined)) {
        //   return true
        // }
        // traceError(`Invalid Python Path '${pythonPath}'`)
        // if (pythonPathSource === pythonPathSource.launchJson) {
        //   this.handle([new InvalidPythonPathInDebuggerDiagnostic(DiagnosticCodes.InvalidPythonPathInDebuggerLaunchDiagnostic, resource)])
        //     .catch(ex => traceError('Failed to handle invalid python path in launch.json debugger', ex))
        //     .catch(emptyFn)
        // } else {
        //   this.handle([new InvalidPythonPathInDebuggerDiagnostic(DiagnosticCodes.InvalidPythonPathInDebuggerSettingsDiagnostic, resource)])
        //     .catch(ex => traceError('Failed to handle invalid python path in settings.json debugger', ex))
        //     .catch(emptyFn)
        // }
        return false;
    }
    async onHandle(diagnostics) {
        // This class can only handle one type of diagnostic, hence just use first item in list.
        if (diagnostics.length === 0 || !this.canHandle(diagnostics[0])) {
            return;
        }
        const diagnostic = diagnostics[0];
        const commandPrompts = this.getCommandPrompts(diagnostic);
        await this.messageService.handle(diagnostic, { commandPrompts });
    }
    resolveVariables(pythonPath, _resource) {
        const systemVariables = new systemVariables_1.SystemVariables(coc_nvim_1.workspace.rootPath);
        return systemVariables.resolveAny(pythonPath);
    }
    getCommandPrompts(diagnostic) {
        switch (diagnostic.code) {
            case constants_1.DiagnosticCodes.InvalidPythonPathInDebuggerSettingsDiagnostic: {
                return [
                    {
                        prompt: 'Select Python Interpreter',
                        command: this.commandFactory.createCommand(diagnostic, {
                            type: 'executeVSCCommand',
                            options: 'python.setInterpreter'
                        })
                    }
                ];
            }
            case constants_1.DiagnosticCodes.InvalidPythonPathInDebuggerLaunchDiagnostic: {
                return [
                    {
                        prompt: 'Open launch.json',
                        command: {
                            diagnostic,
                            invoke: async () => {
                                // const launchJson = this.getLaunchJsonFile(workspc.workspaceFolders![0])
                                // const doc = await this.documentManager.openTextDocument(launchJson)
                                // await this.documentManager.showTextDocument(doc)
                            }
                        }
                    }
                ];
            }
            default: {
                throw new Error('Invalid diagnostic for \'InvalidPythonPathInDebuggerService\'');
            }
        }
    }
};
InvalidPythonPathInDebuggerService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.IServiceContainer)),
    __param(1, inversify_1.inject(types_4.IDiagnosticsCommandFactory)),
    __param(2, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(3, inversify_1.inject(types_1.IDocumentManager)),
    __param(4, inversify_1.inject(types_2.IConfigurationService)),
    __param(5, inversify_1.inject(types_5.IDiagnosticHandlerService)),
    __param(5, inversify_1.named(promptHandler_1.DiagnosticCommandPromptHandlerServiceId))
], InvalidPythonPathInDebuggerService);
exports.InvalidPythonPathInDebuggerService = InvalidPythonPathInDebuggerService;


/***/ }),
/* 637 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const Path = __importStar(__webpack_require__(55));
const Types = __importStar(__webpack_require__(202));
/* tslint:disable:rule1 no-any no-unnecessary-callback-wrapper jsdoc-format no-for-in prefer-const no-increment-decrement */
class AbstractSystemVariables {
    // tslint:disable-next-line:no-any
    resolve(value) {
        if (Types.isString(value)) {
            return this.__resolveString(value);
        }
        else if (Types.isArray(value)) {
            return this.__resolveArray(value);
        }
        else if (Types.isObject(value)) {
            return this.__resolveLiteral(value);
        }
        return value;
    }
    // tslint:disable-next-line:no-any
    resolveAny(value) {
        if (Types.isString(value)) {
            return this.__resolveString(value);
        }
        else if (Types.isArray(value)) {
            return this.__resolveAnyArray(value);
        }
        else if (Types.isObject(value)) {
            return this.__resolveAnyLiteral(value);
        }
        return value;
    }
    __resolveString(value) {
        const regexp = /\$\{(.*?)\}/g;
        return value.replace(regexp, (match, name) => {
            // tslint:disable-next-line:no-any
            const newValue = this[name];
            if (Types.isString(newValue)) {
                return newValue;
            }
            else {
                return match && (match.indexOf('env.') > 0 || match.indexOf('env:') > 0) ? '' : match;
            }
        });
    }
    __resolveLiteral(values) {
        const result = Object.create(null);
        Object.keys(values).forEach(key => {
            const value = values[key];
            // tslint:disable-next-line:no-any
            result[key] = this.resolve(value);
        });
        return result;
    }
    // tslint:disable-next-line:no-any
    __resolveAnyLiteral(values) {
        const result = Object.create(null);
        Object.keys(values).forEach(key => {
            const value = values[key];
            // tslint:disable-next-line:no-any
            result[key] = this.resolveAny(value);
        });
        return result;
    }
    __resolveArray(value) {
        return value.map(s => this.__resolveString(s));
    }
    // tslint:disable-next-line:no-any
    __resolveAnyArray(value) {
        return value.map(s => this.resolveAny(s));
    }
}
exports.AbstractSystemVariables = AbstractSystemVariables;
class SystemVariables extends AbstractSystemVariables {
    constructor(workspaceFolder) {
        super();
        this._workspaceFolder = typeof workspaceFolder === 'string' ? workspaceFolder : __dirname;
        this._workspaceFolderName = Path.basename(this._workspaceFolder);
        Object.keys(process.env).forEach(key => {
            this[`env:${key}`] = this[`env.${key}`] = process.env[key];
        });
    }
    get cwd() {
        return this.workspaceFolder;
    }
    get workspaceRoot() {
        return this._workspaceFolder;
    }
    get workspaceFolder() {
        return this._workspaceFolder;
    }
    get workspaceRootFolderName() {
        return this._workspaceFolderName;
    }
    get workspaceFolderBasename() {
        return this._workspaceFolderName;
    }
}
exports.SystemVariables = SystemVariables;


/***/ }),
/* 638 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const contracts_1 = __webpack_require__(90);
const types_4 = __webpack_require__(95);
const base_1 = __webpack_require__(96);
const types_5 = __webpack_require__(98);
const constants_1 = __webpack_require__(99);
const promptHandler_1 = __webpack_require__(100);
const types_6 = __webpack_require__(97);
const messages = {
    [constants_1.DiagnosticCodes.MacInterpreterSelectedAndHaveOtherInterpretersDiagnostic]: 'You have selected the macOS system install of Python, which is not recommended for use with the Python extension. Some functionality will be limited, please select a different interpreter.',
    [constants_1.DiagnosticCodes.MacInterpreterSelectedAndNoOtherInterpretersDiagnostic]: 'The macOS system install of Python is not recommended, some functionality in the extension will be limited. Install another version of Python for the best experience.'
};
class InvalidMacPythonInterpreterDiagnostic extends base_1.BaseDiagnostic {
    constructor(code, resource) {
        super(code, messages[code], vscode_languageserver_protocol_1.DiagnosticSeverity.Error, types_6.DiagnosticScope.WorkspaceFolder, resource);
    }
}
exports.InvalidMacPythonInterpreterDiagnostic = InvalidMacPythonInterpreterDiagnostic;
exports.InvalidMacPythonInterpreterServiceId = 'InvalidMacPythonInterpreterServiceId';
let InvalidMacPythonInterpreterService = class InvalidMacPythonInterpreterService extends base_1.BaseDiagnosticsService {
    constructor(serviceContainer, interpreterService, platform, helper) {
        super([
            constants_1.DiagnosticCodes.MacInterpreterSelectedAndHaveOtherInterpretersDiagnostic,
            constants_1.DiagnosticCodes.MacInterpreterSelectedAndNoOtherInterpretersDiagnostic
        ], serviceContainer, true);
        this.interpreterService = interpreterService;
        this.platform = platform;
        this.helper = helper;
        this.changeThrottleTimeout = 1000;
        this.addPythonPathChangedHandler();
    }
    async diagnose(resource) {
        if (!this.platform.isMac) {
            return [];
        }
        const configurationService = this.serviceContainer.get(types_3.IConfigurationService);
        const settings = configurationService.getSettings(resource);
        if (settings.disableInstallationChecks === true) {
            return [];
        }
        const hasInterpreters = await this.interpreterService.hasInterpreters;
        if (!hasInterpreters) {
            return [];
        }
        const currentInterpreter = await this.interpreterService.getActiveInterpreter(resource);
        if (!currentInterpreter) {
            return [];
        }
        if (!this.helper.isMacDefaultPythonPath(settings.pythonPath)) {
            return [];
        }
        if (!currentInterpreter || currentInterpreter.type !== contracts_1.InterpreterType.Unknown) {
            return [];
        }
        const interpreters = await this.interpreterService.getInterpreters(resource);
        if (interpreters.filter(i => !this.helper.isMacDefaultPythonPath(i.path)).length === 0) {
            return [
                new InvalidMacPythonInterpreterDiagnostic(constants_1.DiagnosticCodes.MacInterpreterSelectedAndNoOtherInterpretersDiagnostic, resource)
            ];
        }
        return [
            new InvalidMacPythonInterpreterDiagnostic(constants_1.DiagnosticCodes.MacInterpreterSelectedAndHaveOtherInterpretersDiagnostic, resource)
        ];
    }
    async onHandle(diagnostics) {
        if (diagnostics.length === 0) {
            return;
        }
        const messageService = this.serviceContainer.get(types_6.IDiagnosticHandlerService, promptHandler_1.DiagnosticCommandPromptHandlerServiceId);
        await Promise.all(diagnostics.map(async (diagnostic) => {
            const canHandle = await this.canHandle(diagnostic);
            const shouldIgnore = await this.filterService.shouldIgnoreDiagnostic(diagnostic.code);
            if (!canHandle || shouldIgnore) {
                return;
            }
            const commandPrompts = this.getCommandPrompts(diagnostic);
            return messageService.handle(diagnostic, { commandPrompts, message: diagnostic.message });
        }));
    }
    addPythonPathChangedHandler() {
        const workspaceService = this.serviceContainer.get(types_1.IWorkspaceService);
        const disposables = this.serviceContainer.get(types_3.IDisposableRegistry);
        disposables.push(workspaceService.onDidChangeConfiguration(this.onDidChangeConfiguration.bind(this)));
    }
    async onDidChangeConfiguration(event) {
        if (!event.affectsConfiguration('python.pythonPath'))
            return;
        // Lets wait, for more changes, dirty simple throttling.
        if (this.timeOut) {
            clearTimeout(this.timeOut);
            this.timeOut = undefined;
        }
        this.timeOut = setTimeout(() => {
            this.timeOut = undefined;
            this.diagnose(coc_nvim_1.Uri.parse(coc_nvim_1.workspace.rootPath))
                .then(diagnostics => this.handle(diagnostics))
                .catch(() => {
                // noop
            });
        }, this.changeThrottleTimeout);
    }
    getCommandPrompts(diagnostic) {
        const commandFactory = this.serviceContainer.get(types_5.IDiagnosticsCommandFactory);
        switch (diagnostic.code) {
            case constants_1.DiagnosticCodes.MacInterpreterSelectedAndHaveOtherInterpretersDiagnostic: {
                return [
                    {
                        prompt: 'Select Python Interpreter',
                        command: commandFactory.createCommand(diagnostic, {
                            type: 'executeVSCCommand',
                            options: 'python.setInterpreter'
                        })
                    },
                    {
                        prompt: 'Do not show again',
                        command: commandFactory.createCommand(diagnostic, {
                            type: 'ignore',
                            options: types_6.DiagnosticScope.Global
                        })
                    }
                ];
            }
            case constants_1.DiagnosticCodes.MacInterpreterSelectedAndNoOtherInterpretersDiagnostic: {
                return [
                    {
                        prompt: 'Learn more',
                        command: commandFactory.createCommand(diagnostic, {
                            type: 'launch',
                            options: 'https://code.visualstudio.com/docs/python/python-tutorial#_prerequisites'
                        })
                    },
                    {
                        prompt: 'Download',
                        command: commandFactory.createCommand(diagnostic, {
                            type: 'launch',
                            options: 'https://www.python.org/downloads'
                        })
                    },
                    {
                        prompt: 'Do not show again',
                        command: commandFactory.createCommand(diagnostic, {
                            type: 'ignore',
                            options: types_6.DiagnosticScope.Global
                        })
                    }
                ];
            }
            default: {
                throw new Error('Invalid diagnostic for \'InvalidMacPythonInterpreterService\'');
            }
        }
    }
};
InvalidMacPythonInterpreterService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.IServiceContainer)),
    __param(1, inversify_1.inject(contracts_1.IInterpreterService)),
    __param(2, inversify_1.inject(types_2.IPlatformService)),
    __param(3, inversify_1.inject(contracts_1.IInterpreterHelper))
], InvalidMacPythonInterpreterService);
exports.InvalidMacPythonInterpreterService = InvalidMacPythonInterpreterService;


/***/ }),
/* 639 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(95);
const base_1 = __webpack_require__(96);
const types_2 = __webpack_require__(98);
const constants_1 = __webpack_require__(99);
const promptHandler_1 = __webpack_require__(100);
const types_3 = __webpack_require__(97);
const PowershellActivationNotSupportedWithBatchFilesMessage = 'Activation of the selected Python environment is not supported in PowerShell. Consider changing your shell to Command Prompt.';
class PowershellActivationNotAvailableDiagnostic extends base_1.BaseDiagnostic {
    constructor(resource) {
        super(constants_1.DiagnosticCodes.EnvironmentActivationInPowerShellWithBatchFilesNotSupportedDiagnostic, PowershellActivationNotSupportedWithBatchFilesMessage, vscode_languageserver_protocol_1.DiagnosticSeverity.Warning, types_3.DiagnosticScope.Global, resource, 'always');
    }
}
exports.PowershellActivationNotAvailableDiagnostic = PowershellActivationNotAvailableDiagnostic;
exports.PowerShellActivationHackDiagnosticsServiceId = 'EnvironmentActivationInPowerShellWithBatchFilesNotSupportedDiagnostic';
let PowerShellActivationHackDiagnosticsService = class PowerShellActivationHackDiagnosticsService extends base_1.BaseDiagnosticsService {
    constructor(serviceContainer) {
        super([constants_1.DiagnosticCodes.EnvironmentActivationInPowerShellWithBatchFilesNotSupportedDiagnostic], serviceContainer, true);
        this.messageService = serviceContainer.get(types_3.IDiagnosticHandlerService, promptHandler_1.DiagnosticCommandPromptHandlerServiceId);
    }
    async diagnose(_resource) {
        return [];
    }
    async onHandle(diagnostics) {
        // This class can only handle one type of diagnostic, hence just use first item in list.
        if (diagnostics.length === 0 || !this.canHandle(diagnostics[0])) {
            return;
        }
        const diagnostic = diagnostics[0];
        if (await this.filterService.shouldIgnoreDiagnostic(diagnostic.code)) {
            return;
        }
        const commandFactory = this.serviceContainer.get(types_2.IDiagnosticsCommandFactory);
        const options = [
            {
                prompt: 'Ignore'
            },
            {
                prompt: 'Always Ignore',
                command: commandFactory.createCommand(diagnostic, { type: 'ignore', options: types_3.DiagnosticScope.Global })
            },
            {
                prompt: 'More Info',
                command: commandFactory.createCommand(diagnostic, {
                    type: 'launch',
                    options: 'https://aka.ms/CondaPwsh'
                })
            }
        ];
        await this.messageService.handle(diagnostic, { commandPrompts: options });
    }
};
PowerShellActivationHackDiagnosticsService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], PowerShellActivationHackDiagnosticsService);
exports.PowerShellActivationHackDiagnosticsService = PowerShellActivationHackDiagnosticsService;


/***/ }),
/* 640 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(75);
const contracts_1 = __webpack_require__(90);
const types_2 = __webpack_require__(95);
const base_1 = __webpack_require__(96);
const types_3 = __webpack_require__(98);
const constants_1 = __webpack_require__(99);
const promptHandler_1 = __webpack_require__(100);
const types_4 = __webpack_require__(97);
const messages = {
    [constants_1.DiagnosticCodes.NoPythonInterpretersDiagnostic]: 'Python is not installed. Please download and install Python before using the extension.',
    [constants_1.DiagnosticCodes.NoCurrentlySelectedPythonInterpreterDiagnostic]: 'No Python interpreter is selected. You need to select a Python interpreter to enable features such as IntelliSense, linting, and debugging.'
};
class InvalidPythonInterpreterDiagnostic extends base_1.BaseDiagnostic {
    constructor(code, resource) {
        super(code, messages[code], vscode_languageserver_protocol_1.DiagnosticSeverity.Error, types_4.DiagnosticScope.WorkspaceFolder, resource);
    }
}
exports.InvalidPythonInterpreterDiagnostic = InvalidPythonInterpreterDiagnostic;
exports.InvalidPythonInterpreterServiceId = 'InvalidPythonInterpreterServiceId';
let InvalidPythonInterpreterService = class InvalidPythonInterpreterService extends base_1.BaseDiagnosticsService {
    constructor(serviceContainer) {
        super([
            constants_1.DiagnosticCodes.NoPythonInterpretersDiagnostic,
            constants_1.DiagnosticCodes.NoCurrentlySelectedPythonInterpreterDiagnostic
        ], serviceContainer, false);
    }
    async diagnose(resource) {
        const configurationService = this.serviceContainer.get(types_1.IConfigurationService);
        const settings = configurationService.getSettings(resource);
        if (settings.disableInstallationChecks === true) {
            return [];
        }
        const interpreterService = this.serviceContainer.get(contracts_1.IInterpreterService);
        const hasInterpreters = await interpreterService.hasInterpreters;
        if (!hasInterpreters) {
            return [new InvalidPythonInterpreterDiagnostic(constants_1.DiagnosticCodes.NoPythonInterpretersDiagnostic, resource)];
        }
        const currentInterpreter = await interpreterService.getActiveInterpreter(resource);
        if (!currentInterpreter) {
            return [
                new InvalidPythonInterpreterDiagnostic(constants_1.DiagnosticCodes.NoCurrentlySelectedPythonInterpreterDiagnostic, resource)
            ];
        }
        return [];
    }
    async onHandle(diagnostics) {
        if (diagnostics.length === 0) {
            return;
        }
        const messageService = this.serviceContainer.get(types_4.IDiagnosticHandlerService, promptHandler_1.DiagnosticCommandPromptHandlerServiceId);
        await Promise.all(diagnostics.map(async (diagnostic) => {
            if (!this.canHandle(diagnostic)) {
                return;
            }
            const commandPrompts = this.getCommandPrompts(diagnostic);
            return messageService.handle(diagnostic, { commandPrompts, message: diagnostic.message });
        }));
    }
    getCommandPrompts(diagnostic) {
        const commandFactory = this.serviceContainer.get(types_3.IDiagnosticsCommandFactory);
        switch (diagnostic.code) {
            case constants_1.DiagnosticCodes.NoPythonInterpretersDiagnostic: {
                return [
                    {
                        prompt: 'Download',
                        command: commandFactory.createCommand(diagnostic, {
                            type: 'launch',
                            options: 'https://www.python.org/downloads'
                        })
                    }
                ];
            }
            case constants_1.DiagnosticCodes.NoCurrentlySelectedPythonInterpreterDiagnostic: {
                return [
                    {
                        prompt: 'Select Python Interpreter',
                        command: commandFactory.createCommand(diagnostic, {
                            type: 'executeVSCCommand',
                            options: 'python.setInterpreter'
                        })
                    }
                ];
            }
            default: {
                throw new Error('Invalid diagnostic for \'InvalidPythonInterpreterService\'');
            }
        }
    }
};
InvalidPythonInterpreterService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], InvalidPythonInterpreterService);
exports.InvalidPythonInterpreterService = InvalidPythonInterpreterService;


/***/ }),
/* 641 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(95);
const execVSCCommand_1 = __webpack_require__(642);
const ignore_1 = __webpack_require__(644);
const launchBrowser_1 = __webpack_require__(645);
let DiagnosticsCommandFactory = class DiagnosticsCommandFactory {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    createCommand(diagnostic, options) {
        const commandType = options.type;
        switch (options.type) {
            case 'ignore': {
                return new ignore_1.IgnoreDiagnosticCommand(diagnostic, this.serviceContainer, options.options);
            }
            case 'launch': {
                return new launchBrowser_1.LaunchBrowserCommand(diagnostic, this.serviceContainer, options.options);
            }
            case 'executeVSCCommand': {
                return new execVSCCommand_1.ExecuteVSCCommand(diagnostic, this.serviceContainer, options.options);
            }
            default: {
                throw new Error(`Unknown Diagnostic command commandType '${commandType}'`);
            }
        }
    }
};
DiagnosticsCommandFactory = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], DiagnosticsCommandFactory);
exports.DiagnosticsCommandFactory = DiagnosticsCommandFactory;


/***/ }),
/* 642 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(78);
const base_1 = __webpack_require__(643);
class ExecuteVSCCommand extends base_1.BaseDiagnosticCommand {
    constructor(diagnostic, serviceContainer, commandName) {
        super(diagnostic);
        this.serviceContainer = serviceContainer;
        this.commandName = commandName;
    }
    async invoke() {
        const cmdManager = this.serviceContainer.get(types_1.ICommandManager);
        return cmdManager.executeCommand(this.commandName).then(() => undefined);
    }
}
exports.ExecuteVSCCommand = ExecuteVSCCommand;


/***/ }),
/* 643 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
class BaseDiagnosticCommand {
    constructor(diagnostic) {
        this.diagnostic = diagnostic;
    }
}
exports.BaseDiagnosticCommand = BaseDiagnosticCommand;


/***/ }),
/* 644 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(97);
const base_1 = __webpack_require__(643);
class IgnoreDiagnosticCommand extends base_1.BaseDiagnosticCommand {
    constructor(diagnostic, serviceContainer, scope) {
        super(diagnostic);
        this.serviceContainer = serviceContainer;
        this.scope = scope;
    }
    invoke() {
        const filter = this.serviceContainer.get(types_1.IDiagnosticFilterService);
        return filter.ignoreDiagnostic(this.diagnostic.code, this.scope);
    }
}
exports.IgnoreDiagnosticCommand = IgnoreDiagnosticCommand;


/***/ }),
/* 645 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(75);
const base_1 = __webpack_require__(643);
class LaunchBrowserCommand extends base_1.BaseDiagnosticCommand {
    constructor(diagnostic, serviceContainer, url) {
        super(diagnostic);
        this.serviceContainer = serviceContainer;
        this.url = url;
    }
    async invoke() {
        // sendTelemetryEvent(EventName.DIAGNOSTICS_ACTION, undefined, { url: this.url })
        const browser = this.serviceContainer.get(types_1.IBrowserService);
        return browser.launch(this.url);
    }
}
exports.LaunchBrowserCommand = LaunchBrowserCommand;


/***/ }),
/* 646 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(75);
const types_2 = __webpack_require__(95);
const types_3 = __webpack_require__(97);
var FilterKeys;
(function (FilterKeys) {
    FilterKeys["GlobalDiagnosticFilter"] = "GLOBAL_DIAGNOSTICS_FILTER";
    FilterKeys["WorkspaceDiagnosticFilter"] = "WORKSPACE_DIAGNOSTICS_FILTER";
})(FilterKeys = exports.FilterKeys || (exports.FilterKeys = {}));
let DiagnosticFilterService = class DiagnosticFilterService {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    async shouldIgnoreDiagnostic(code) {
        const factory = this.serviceContainer.get(types_1.IPersistentStateFactory);
        const globalState = factory.createGlobalPersistentState(FilterKeys.GlobalDiagnosticFilter, []);
        const workspaceState = factory.createWorkspacePersistentState(FilterKeys.WorkspaceDiagnosticFilter, []);
        return globalState.value.indexOf(code) >= 0 ||
            workspaceState.value.indexOf(code) >= 0;
    }
    async ignoreDiagnostic(code, scope) {
        const factory = this.serviceContainer.get(types_1.IPersistentStateFactory);
        const state = scope === types_3.DiagnosticScope.Global ?
            factory.createGlobalPersistentState(FilterKeys.GlobalDiagnosticFilter, []) :
            factory.createWorkspacePersistentState(FilterKeys.WorkspaceDiagnosticFilter, []);
        const currentValue = state.value.slice();
        await state.updateValue(currentValue.concat(code));
    }
};
DiagnosticFilterService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], DiagnosticFilterService);
exports.DiagnosticFilterService = DiagnosticFilterService;


/***/ }),
/* 647 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_2 = __webpack_require__(75);
const localize_1 = __webpack_require__(93);
let SourceMapSupportService = class SourceMapSupportService {
    constructor(commandManager, disposables, configurationService, shell) {
        this.commandManager = commandManager;
        this.disposables = disposables;
        this.configurationService = configurationService;
        this.shell = shell;
    }
    register() {
        this.disposables.push(this.commandManager.registerCommand(constants_1.Commands.Enable_SourceMap_Support, this.onEnable, this));
    }
    async enable() {
        await this.configurationService.updateSetting('diagnostics.sourceMapsEnabled', true, undefined, coc_nvim_1.ConfigurationTarget.Global);
        coc_nvim_1.workspace.nvim.command('CocRestart', true);
    }
    async onEnable() {
        const enableSourceMapsAndReloadVSC = localize_1.Diagnostics.enableSourceMapsAndReloadVSC();
        coc_nvim_1.workspace.showMessage(localize_1.Diagnostics.warnBeforeEnablingSourceMaps(), 'warning');
        let res = await coc_nvim_1.workspace.showPrompt(enableSourceMapsAndReloadVSC);
        if (res) {
            await this.enable();
        }
    }
};
SourceMapSupportService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.ICommandManager)),
    __param(1, inversify_1.inject(types_2.IDisposableRegistry)),
    __param(2, inversify_1.inject(types_2.IConfigurationService)),
    __param(3, inversify_1.inject(types_1.IApplicationShell))
], SourceMapSupportService);
exports.SourceMapSupportService = SourceMapSupportService;


/***/ }),
/* 648 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const platform_1 = __webpack_require__(627);
const compatibilityService_1 = __webpack_require__(649);
const linuxCompatibilityService_1 = __webpack_require__(650);
const macCompatibilityService_1 = __webpack_require__(651);
const unknownOsCompatibilityService_1 = __webpack_require__(652);
const windowsCompatibilityService_1 = __webpack_require__(653);
const types_1 = __webpack_require__(262);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_1.IDotNetCompatibilityService, compatibilityService_1.DotNetCompatibilityService);
    serviceManager.addSingleton(types_1.IOSDotNetCompatibilityService, macCompatibilityService_1.MacDotNetCompatibilityService, platform_1.OSType.OSX);
    serviceManager.addSingleton(types_1.IOSDotNetCompatibilityService, windowsCompatibilityService_1.WindowsDotNetCompatibilityService, platform_1.OSType.Windows);
    serviceManager.addSingleton(types_1.IOSDotNetCompatibilityService, linuxCompatibilityService_1.LinuxDotNetCompatibilityService, platform_1.OSType.Linux);
    serviceManager.addSingleton(types_1.IOSDotNetCompatibilityService, unknownOsCompatibilityService_1.UnknownOSDotNetCompatibilityService, platform_1.OSType.Unknown);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 649 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(205);
const platform_1 = __webpack_require__(627);
const types_2 = __webpack_require__(262);
/**
 * .NET Core 2.1 OS Requirements
 * https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1-supported-os.md
 * We are using the versions provided in the above .NET 2.1 Core requirements page as minimum required versions.
 * Why, cuz getting distros, mapping them to the ones listd on .NET 2.1 Core requirements are entirely accurate.
 * Due to the inaccuracy, its easier and safer to just assume futur versions of an OS are also supported.
 * We will need to regularly update the requirements over time, when using .NET Core 2.2 or 3, etc.
 */
let DotNetCompatibilityService = class DotNetCompatibilityService {
    constructor(unknownOsService, macService, winService, linuxService, platformService) {
        this.platformService = platformService;
        this.mappedServices = new Map();
        this.mappedServices.set(platform_1.OSType.Unknown, unknownOsService);
        this.mappedServices.set(platform_1.OSType.OSX, macService);
        this.mappedServices.set(platform_1.OSType.Windows, winService);
        this.mappedServices.set(platform_1.OSType.Linux, linuxService);
    }
    // tslint:disable-next-line: typedef
    isSupported() {
        return this.mappedServices.get(this.platformService.osType).isSupported();
    }
};
DotNetCompatibilityService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IOSDotNetCompatibilityService)), __param(0, inversify_1.named(platform_1.OSType.Unknown)),
    __param(1, inversify_1.inject(types_2.IOSDotNetCompatibilityService)), __param(1, inversify_1.named(platform_1.OSType.OSX)),
    __param(2, inversify_1.inject(types_2.IOSDotNetCompatibilityService)), __param(2, inversify_1.named(platform_1.OSType.Windows)),
    __param(3, inversify_1.inject(types_2.IOSDotNetCompatibilityService)), __param(3, inversify_1.named(platform_1.OSType.Linux)),
    __param(4, inversify_1.inject(types_1.IPlatformService))
], DotNetCompatibilityService);
exports.DotNetCompatibilityService = DotNetCompatibilityService;


/***/ }),
/* 650 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
let LinuxDotNetCompatibilityService = class LinuxDotNetCompatibilityService {
    constructor(platformService) {
        this.platformService = platformService;
    }
    async isSupported() {
        if (!this.platformService.is64bit) {
            logger_1.traceError('.NET is not supported on 32 Bit Linux');
            return false;
        }
        return true;
    }
};
__decorate([
    logger_1.traceDecorators.verbose('Checking support of .NET')
], LinuxDotNetCompatibilityService.prototype, "isSupported", null);
LinuxDotNetCompatibilityService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IPlatformService))
], LinuxDotNetCompatibilityService);
exports.LinuxDotNetCompatibilityService = LinuxDotNetCompatibilityService;


/***/ }),
/* 651 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(205);
// Min version on https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1-supported-os.md is 10.12.
// On this site https://en.wikipedia.org/wiki/MacOS_Sierra, that maps to 16.0.0.
const minVersion = '16.0.0';
let MacDotNetCompatibilityService = class MacDotNetCompatibilityService {
    constructor(platformService) {
        this.platformService = platformService;
    }
    // tslint:disable-next-line: typedef
    async isSupported() {
        const version = await this.platformService.getVersion();
        return version.compare(minVersion) >= 0;
    }
};
MacDotNetCompatibilityService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IPlatformService))
], MacDotNetCompatibilityService);
exports.MacDotNetCompatibilityService = MacDotNetCompatibilityService;


/***/ }),
/* 652 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const logger_1 = __webpack_require__(86);
let UnknownOSDotNetCompatibilityService = class UnknownOSDotNetCompatibilityService {
    async isSupported() {
        return false;
    }
};
__decorate([
    logger_1.traceDecorators.info('Unable to determine compatiblity of DOT.NET with an unknown OS')
], UnknownOSDotNetCompatibilityService.prototype, "isSupported", null);
UnknownOSDotNetCompatibilityService = __decorate([
    inversify_1.injectable()
], UnknownOSDotNetCompatibilityService);
exports.UnknownOSDotNetCompatibilityService = UnknownOSDotNetCompatibilityService;


/***/ }),
/* 653 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
let WindowsDotNetCompatibilityService = class WindowsDotNetCompatibilityService {
    // tslint:disable-next-line: typedef
    async isSupported() {
        return true;
    }
};
WindowsDotNetCompatibilityService = __decorate([
    inversify_1.injectable()
], WindowsDotNetCompatibilityService);
exports.WindowsDotNetCompatibilityService = WindowsDotNetCompatibilityService;


/***/ }),
/* 654 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(75);
const channelManager_1 = __webpack_require__(655);
const condaInstaller_1 = __webpack_require__(658);
const pipEnvInstaller_1 = __webpack_require__(661);
const pipInstaller_1 = __webpack_require__(662);
const poetryInstaller_1 = __webpack_require__(663);
const productPath_1 = __webpack_require__(664);
const productService_1 = __webpack_require__(667);
const types_2 = __webpack_require__(657);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_2.IModuleInstaller, condaInstaller_1.CondaInstaller);
    serviceManager.addSingleton(types_2.IModuleInstaller, pipInstaller_1.PipInstaller);
    serviceManager.addSingleton(types_2.IModuleInstaller, pipEnvInstaller_1.PipEnvInstaller);
    serviceManager.addSingleton(types_2.IModuleInstaller, poetryInstaller_1.PoetryInstaller);
    serviceManager.addSingleton(types_2.IInstallationChannelManager, channelManager_1.InstallationChannelManager);
    serviceManager.addSingleton(types_2.IProductService, productService_1.ProductService);
    serviceManager.addSingleton(types_2.IProductPathService, productPath_1.CTagsProductPathService, types_1.ProductType.WorkspaceSymbols);
    serviceManager.addSingleton(types_2.IProductPathService, productPath_1.FormatterProductPathService, types_1.ProductType.Formatter);
    serviceManager.addSingleton(types_2.IProductPathService, productPath_1.LinterProductPathService, types_1.ProductType.Linter);
    serviceManager.addSingleton(types_2.IProductPathService, productPath_1.RefactoringLibraryProductPathService, types_1.ProductType.RefactoringLibrary);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 655 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const contracts_1 = __webpack_require__(90);
const types_1 = __webpack_require__(95);
const productNames_1 = __webpack_require__(656);
const types_2 = __webpack_require__(657);
let InstallationChannelManager = class InstallationChannelManager {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    async getInstallationChannel(product, resource) {
        const channels = await this.getInstallationChannels(resource);
        if (channels.length === 1) {
            return channels[0];
        }
        const productName = productNames_1.ProductNames.get(product);
        if (channels.length === 0) {
            await this.showNoInstallersMessage(resource);
            return;
        }
        const placeHolder = `Select an option to install ${productName}`;
        const options = channels.map(installer => {
            return {
                label: `Install using ${installer.displayName}`,
                description: '',
                installer
            };
        });
        const idx = await coc_nvim_1.workspace.showQuickpick(options.map(o => o.label), placeHolder);
        return idx == -1 ? undefined : options[idx].installer;
    }
    async getInstallationChannels(resource) {
        const installers = this.serviceContainer.getAll(types_2.IModuleInstaller);
        const supportedInstallers = [];
        if (installers.length === 0) {
            return [];
        }
        // group by priority and pick supported from the highest priority
        installers.sort((a, b) => b.priority - a.priority);
        let currentPri = installers[0].priority;
        for (const mi of installers) {
            if (mi.priority !== currentPri) {
                if (supportedInstallers.length > 0) {
                    break; // return highest priority supported installers
                }
                // If none supported, try next priority group
                currentPri = mi.priority;
            }
            if (await mi.isSupported(resource)) {
                supportedInstallers.push(mi);
            }
        }
        return supportedInstallers;
    }
    async showNoInstallersMessage(resource) {
        const interpreters = this.serviceContainer.get(contracts_1.IInterpreterService);
        const interpreter = await interpreters.getActiveInterpreter(resource);
        if (!interpreter) {
            return; // Handled in the Python installation check.
        }
        if (interpreter.type === contracts_1.InterpreterType.Conda) {
            coc_nvim_1.workspace.showMessage('There is no Conda or Pip installer available in the selected environment.', 'error');
        }
        else {
            coc_nvim_1.workspace.showMessage('There is no Pip installer available in the selected environment.', 'error');
        }
    }
};
InstallationChannelManager = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], InstallationChannelManager);
exports.InstallationChannelManager = InstallationChannelManager;


/***/ }),
/* 656 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(75);
// tslint:disable-next-line:variable-name
exports.ProductNames = new Map();
exports.ProductNames.set(types_1.Product.autopep8, 'autopep8');
exports.ProductNames.set(types_1.Product.bandit, 'bandit');
exports.ProductNames.set(types_1.Product.black, 'black');
exports.ProductNames.set(types_1.Product.flake8, 'flake8');
exports.ProductNames.set(types_1.Product.mypy, 'mypy');
exports.ProductNames.set(types_1.Product.nosetest, 'nosetest');
exports.ProductNames.set(types_1.Product.pep8, 'pep8');
exports.ProductNames.set(types_1.Product.pylama, 'pylama');
exports.ProductNames.set(types_1.Product.prospector, 'prospector');
exports.ProductNames.set(types_1.Product.pydocstyle, 'pydocstyle');
exports.ProductNames.set(types_1.Product.pylint, 'pylint');
exports.ProductNames.set(types_1.Product.pytest, 'pytest');
exports.ProductNames.set(types_1.Product.yapf, 'yapf');
exports.ProductNames.set(types_1.Product.rope, 'rope');


/***/ }),
/* 657 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.IModuleInstaller = Symbol('IModuleInstaller');
exports.IPythonInstallation = Symbol('IPythonInstallation');
exports.IInstallationChannelManager = Symbol('IInstallationChannelManager');
exports.IProductService = Symbol('IProductService');
exports.IProductPathService = Symbol('IProductPathService');


/***/ }),
/* 658 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const contracts_1 = __webpack_require__(90);
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(75);
const moduleInstaller_1 = __webpack_require__(659);
const string_1 = __webpack_require__(149);
/**
 * A Python module installer for a conda environment.
 */
let CondaInstaller = class CondaInstaller extends moduleInstaller_1.ModuleInstaller {
    constructor(serviceContainer) {
        super(serviceContainer);
    }
    get displayName() {
        return 'Conda';
    }
    get priority() {
        return 0;
    }
    /**
     * Checks whether we can use Conda as module installer for a given resource.
     * We need to perform two checks:
     * 1. Ensure we have conda.
     * 2. Check if the current environment is a conda environment.
     * @param {Uri} [resource=] Resource used to identify the workspace.
     * @returns {Promise<boolean>} Whether conda is supported as a module installer or not.
     */
    async isSupported(resource) {
        if (this.isCondaAvailable === false) {
            return false;
        }
        const condaLocator = this.serviceContainer.get(contracts_1.ICondaService);
        this.isCondaAvailable = await condaLocator.isCondaAvailable();
        if (!this.isCondaAvailable) {
            return false;
        }
        // Now we need to check if the current environment is a conda environment or not.
        return this.isCurrentEnvironmentACondaEnvironment(resource);
    }
    /**
     * Return the commandline args needed to install the module.
     */
    async getExecutionInfo(moduleName, resource) {
        const condaService = this.serviceContainer.get(contracts_1.ICondaService);
        const condaFile = await condaService.getCondaFile();
        const pythonPath = this.serviceContainer.get(types_2.IConfigurationService).getSettings(resource).pythonPath;
        const info = await condaService.getCondaEnvironment(pythonPath);
        const args = ['install'];
        if (info && info.name) {
            // If we have the name of the conda environment, then use that.
            args.push('--name');
            args.push(string_1.toCommandArgument(info.name));
        }
        else if (info && info.path) {
            // Else provide the full path to the environment path.
            args.push('--prefix');
            args.push(string_1.fileToCommandArgument(info.path));
        }
        args.push(moduleName);
        return {
            args,
            execPath: condaFile
        };
    }
    /**
     * Is anaconda the current interpreter?
     */
    async isCurrentEnvironmentACondaEnvironment(resource) {
        const condaService = this.serviceContainer.get(contracts_1.ICondaService);
        const pythonPath = this.serviceContainer.get(types_2.IConfigurationService).getSettings(resource).pythonPath;
        return condaService.isCondaEnvironment(pythonPath);
    }
};
CondaInstaller = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], CondaInstaller);
exports.CondaInstaller = CondaInstaller;


/***/ }),
/* 659 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs = __importStar(__webpack_require__(94));
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const contracts_1 = __webpack_require__(90);
const constants_1 = __webpack_require__(84);
const types_1 = __webpack_require__(75);
const misc_1 = __webpack_require__(259);
let ModuleInstaller = class ModuleInstaller {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    async installModule(name, resource) {
        const executionInfo = await this.getExecutionInfo(name, resource);
        const executionInfoArgs = await this.processInstallArgs(executionInfo.args, resource);
        if (executionInfo.moduleName) {
            const configService = this.serviceContainer.get(types_1.IConfigurationService);
            const settings = configService.getSettings(resource);
            const args = ['-m', executionInfo.moduleName].concat(executionInfoArgs);
            const pythonPath = settings.pythonPath;
            const interpreterService = this.serviceContainer.get(contracts_1.IInterpreterService);
            const currentInterpreter = await interpreterService.getActiveInterpreter(resource);
            if (!currentInterpreter || currentInterpreter.type !== contracts_1.InterpreterType.Unknown) {
                await coc_nvim_1.workspace.runTerminalCommand(`${pythonPath} ${args.join(' ')}`);
            }
            else if (settings.globalModuleInstallation) {
                if (await this.isPathWritableAsync(path.dirname(pythonPath))) {
                    await coc_nvim_1.workspace.runTerminalCommand(`${pythonPath} ${args.join(' ')}`);
                }
                else {
                    this.elevatedInstall(pythonPath, args);
                }
            }
            else {
                await coc_nvim_1.workspace.runTerminalCommand(`${pythonPath} ${args.concat(['--user']).join(' ')}`);
            }
        }
        else {
            await coc_nvim_1.workspace.runTerminalCommand(`${executionInfo.execPath} ${executionInfoArgs.join(' ')}`);
        }
    }
    async processInstallArgs(args, resource) {
        const indexOfPylint = args.findIndex(arg => arg.toUpperCase() === 'PYLINT');
        if (indexOfPylint === -1) {
            return args;
        }
        // If installing pylint on python 2.x, then use pylint~=1.9.0
        const interpreterService = this.serviceContainer.get(contracts_1.IInterpreterService);
        const currentInterpreter = await interpreterService.getActiveInterpreter(resource);
        if (currentInterpreter && currentInterpreter.version && currentInterpreter.version.major === 2) {
            const newArgs = [...args];
            // This command could be sent to the terminal, hence '<' needs to be escaped for UNIX.
            newArgs[indexOfPylint] = '"pylint<2.0.0"';
            return newArgs;
        }
        return args;
    }
    async isPathWritableAsync(directoryPath) {
        const filePath = `${directoryPath}${path.sep}___vscpTest___`;
        return new Promise(resolve => {
            fs.open(filePath, fs.constants.O_CREAT | fs.constants.O_RDWR, (error, fd) => {
                if (!error) {
                    fs.close(fd, () => {
                        fs.unlink(filePath, misc_1.noop);
                    });
                }
                return resolve(!error);
            });
        });
    }
    elevatedInstall(execPath, args) {
        const options = {
            name: 'VS Code Python'
        };
        const outputChannel = this.serviceContainer.get(types_1.IOutputChannel, constants_1.STANDARD_OUTPUT_CHANNEL);
        const command = `"${execPath.replace(/\\/g, '/')}" ${args.join(' ')}`;
        outputChannel.appendLine('');
        outputChannel.appendLine(`[Elevated] ${command}`);
        // tslint:disable-next-line:no-require-imports no-var-requires
        const sudo = __webpack_require__(660);
        sudo.exec(command, options, (error, stdout, stderr) => {
            if (error) {
                coc_nvim_1.workspace.showMessage(error, 'error');
            }
            else {
                outputChannel.show();
                if (stdout) {
                    outputChannel.appendLine('');
                    outputChannel.append(stdout);
                }
                if (stderr) {
                    outputChannel.appendLine('');
                    outputChannel.append(`Warning: ${stderr}`);
                }
            }
        });
    }
};
ModuleInstaller = __decorate([
    inversify_1.injectable()
], ModuleInstaller);
exports.ModuleInstaller = ModuleInstaller;


/***/ }),
/* 660 */
/***/ (function(module, exports, __webpack_require__) {

var Node = {
  child: __webpack_require__(145),
  crypto: __webpack_require__(57),
  fs: __webpack_require__(94),
  os: __webpack_require__(56),
  path: __webpack_require__(55),
  process: process,
  util: __webpack_require__(113)
};

function Attempt(instance, end) {
  var platform = Node.process.platform;
  if (platform === 'darwin') return Mac(instance, end);
  if (platform === 'linux') return Linux(instance, end);
  if (platform === 'win32') return Windows(instance, end);
  end(new Error('Platform not yet supported.'));
}

function EscapeDoubleQuotes(string) {
  if (typeof string !== 'string') throw new Error('Expected a string.');
  return string.replace(/"/g, '\\"');
}

function Exec() {
  if (arguments.length < 1 || arguments.length > 3) {
    throw new Error('Wrong number of arguments.');
  }
  var command = arguments[0];
  var options = {};
  var end = function() {};
  if (typeof command !== 'string') {
    throw new Error('Command should be a string.');
  }
  if (arguments.length === 2) {
    if (Node.util.isObject(arguments[1])) {
      options = arguments[1];
    } else if (Node.util.isFunction(arguments[1])) {
      end = arguments[1];
    } else {
      throw new Error('Expected options or callback.');
    }
  } else if (arguments.length === 3) {
    if (Node.util.isObject(arguments[1])) {
      options = arguments[1];
    } else {
      throw new Error('Expected options to be an object.');
    }
    if (Node.util.isFunction(arguments[2])) {
      end = arguments[2];
    } else {
      throw new Error('Expected callback to be a function.');
    }
  }
  if (/^sudo/i.test(command)) {
    return end(new Error('Command should not be prefixed with "sudo".'));
  }
  if (typeof options.name === 'undefined') {
    var title = Node.process.title;
    if (ValidName(title)) {
      options.name = title;
    } else {
      return end(new Error('process.title cannot be used as a valid name.'));
    }
  } else if (!ValidName(options.name)) {
    var error = '';
    error += 'options.name must be alphanumeric only ';
    error += '(spaces are allowed) and <= 70 characters.';
    return end(new Error(error));
  }
  if (typeof options.icns !== 'undefined') {
    if (typeof options.icns !== 'string') {
      return end(new Error('options.icns must be a string if provided.'));
    } else if (options.icns.trim().length === 0) {
      return end(new Error('options.icns must not be empty if provided.'));
    }
  }
  var platform = Node.process.platform;
  if (platform !== 'darwin' && platform !== 'linux' && platform !== 'win32') {
    return end(new Error('Platform not yet supported.'));
  }
  var instance = {
    command: command,
    options: options,
    uuid: undefined,
    path: undefined
  };
  Attempt(instance, end);
}

function Linux(instance, end) {
  LinuxBinary(instance,
    function(error, binary) {
      if (error) return end(error);
      var command = [];
      command.push('"' + EscapeDoubleQuotes(binary) + '"');
      if (/kdesudo/i.test(binary)) {
        var reason = 'needs administrative privileges. Please enter your password.';
        command.push('--comment', '"' + instance.options.name + ' ' + reason + '"');
        command.push('--');
      } else if (/pkexec/i.test(binary)) {
        command.push('--disable-internal-agent');
      }
      command.push(instance.command);
      command = command.join(' ');
      Node.child.exec(command, { maxBuffer: MAX_BUFFER },
        function(error, stdout, stderr) {
          if (error) {
            if (/No authentication agent found/.test(stderr)) {
              error = new Error(NO_POLKIT_AGENT);
            } else if (/Request dismissed|Command failed/i.test(error)) {
              error = new Error(PERMISSION_DENIED);
            }
          }
          end(error, stdout, stderr);
        }
      );
    }
  );
}

function LinuxBinary(instance, end) {
  var index = 0;
  // We used to prefer gksudo over pkexec since it enabled a better prompt.
  // However, gksudo cannot run multiple commands concurrently.
  var paths = ['/usr/bin/kdesudo', '/usr/bin/pkexec'];
  function test() {
    if (index === paths.length) {
      return end(new Error('Unable to find pkexec or kdesudo.'));
    }
    var path = paths[index++];
    Node.fs.stat(path,
      function(error) {
        if (error) {
          if (error.code === 'ENOTDIR') return test();
          if (error.code === 'ENOENT') return test();
          end(error);
        } else {
          end(undefined, path);
        }
      }
    );
  }
  test();
}

function Mac(instance, callback) {
  var temp = Node.os.tmpdir();
  if (!temp) return callback(new Error('os.tmpdir() not defined.'));
  var user = Node.process.env.USER; // Applet shell scripts require $USER.
  if (!user) return callback(new Error('env[\'USER\'] not defined.'));
  UUID(instance,
    function(error, uuid) {
      if (error) return callback(error);
      instance.uuid = uuid;
      instance.path = Node.path.join(
        temp,
        instance.uuid,
        instance.options.name + '.app'
      );
      function end(error, stdout, stderr) {
        Remove(Node.path.dirname(instance.path),
          function(errorRemove) {
            if (error) return callback(error);
            if (errorRemove) return callback(errorRemove);
            callback(undefined, stdout, stderr);
          }
        );
      }
      MacApplet(instance,
        function(error) {
          if (error) return end(error);
          MacIcon(instance,
            function(error) {
              if (error) return end(error);
              MacPropertyList(instance,
                function(error) {
                  if (error) return end(error);
                  MacCommand(instance,
                    function(error) {
                      if (error) return end(error);
                      MacOpen(instance,
                        function(error) {
                          if (error) return end(error);
                          MacResult(instance, end);
                        }
                      );
                    }
                  );
                }
              );
            }
          );
        }
      );
    }
  );
}

function MacApplet(instance, end) {
  var parent = Node.path.dirname(instance.path);
  Node.fs.mkdir(parent,
    function(error) {
      if (error) return end(error);
      var zip = Node.path.join(parent, 'sudo-prompt-applet.zip');
      Node.fs.writeFile(zip, APPLET, 'base64',
        function(error) {
          if (error) return end(error);
          var command = [];
          command.push('/usr/bin/unzip');
          command.push('-o'); // Overwrite any existing applet.
          command.push('"' + EscapeDoubleQuotes(zip) + '"');
          command.push('-d "' + EscapeDoubleQuotes(instance.path) + '"');
          command = command.join(' ');
          Node.child.exec(command, end);
        }
      );
    }
  );
}

function MacCommand(instance, end) {
  var path = Node.path.join(
    instance.path,
    'Contents',
    'MacOS',
    'sudo-prompt-command'
  );
  var script = [];
  // Preserve current working directory.
  // We do this for commands that rely on relative paths.
  // This runs in a subshell and will not change the cwd of sudo-prompt-script.
  var cwd = Node.process.cwd();
  script.push('cd "' + EscapeDoubleQuotes(cwd) + '"');
  script.push(instance.command);
  script = script.join('\n');
  Node.fs.writeFile(path, script, 'utf-8', end);
}

function MacIcon(instance, end) {
  if (!instance.options.icns) return end();
  Node.fs.readFile(instance.options.icns,
    function(error, buffer) {
      if (error) return end(error);
      var icns = Node.path.join(
        instance.path,
        'Contents',
        'Resources',
        'applet.icns'
      );
      Node.fs.writeFile(icns, buffer, end);
    }
  );
}

function MacOpen(instance, end) {
  // We must run the binary directly so that the cwd will apply.
  var binary = Node.path.join(instance.path, 'Contents', 'MacOS', 'applet');
  // We must set the cwd so that the AppleScript can find the shell scripts.
  var options = { cwd: Node.path.dirname(binary) };
  // We use the relative path rather than the absolute path. The instance.path
  // may contain spaces which the cwd can handle, but which exec() cannot.
  Node.child.exec('./' + Node.path.basename(binary), options, end);
}

function MacPropertyList(instance, end) {
  // Value must be in single quotes (not double quotes) according to man entry.
  // e.g. defaults write com.companyname.appname "Default Color" '(255, 0, 0)'
  // The defaults command will be changed in an upcoming major release to only
  // operate on preferences domains. General plist manipulation utilities will
  // be folded into a different command-line program.
  var plist = Node.path.join(instance.path, 'Contents', 'Info.plist');
  var path = EscapeDoubleQuotes(plist);
  var key = EscapeDoubleQuotes('CFBundleName');
  var value = instance.options.name + ' Password Prompt';
  if (/'/.test(value)) {
    return end(new Error('Value should not contain single quotes.'));
  }
  var command = [];
  command.push('/usr/bin/defaults');
  command.push('write');
  command.push('"' + path + '"');
  command.push('"' + key + '"');
  command.push("'" + value + "'"); // We must use single quotes for value.
  command = command.join(' ');
  Node.child.exec(command, end);
}

function MacResult(instance, end) {
  var cwd = Node.path.join(instance.path, 'Contents', 'MacOS');
  Node.fs.readFile(Node.path.join(cwd, 'code'), 'utf-8',
    function(error, code) {
      if (error) {
        if (error.code === 'ENOENT') return end(new Error(PERMISSION_DENIED));
        end(error);
      } else {
        Node.fs.readFile(Node.path.join(cwd, 'stdout'), 'utf-8',
          function(error, stdout) {
            if (error) return end(error);
            Node.fs.readFile(Node.path.join(cwd, 'stderr'), 'utf-8',
              function(error, stderr) {
                if (error) return end(error);
                code = parseInt(code.trim(), 10); // Includes trailing newline.
                if (code === 0) {
                  end(undefined, stdout, stderr);
                } else {
                  error = new Error(
                    'Command failed: ' + instance.command + '\n' + stderr
                  );
                  error.code = code;
                  end(error, stdout, stderr);
                }
              }
            );
          }
        );
      }
    }
  );
}

function Remove(path, end) {
  if (typeof path !== 'string' || !path.trim()) {
    return end(new Error('Argument path not defined.'));
  }
  var command = [];
  if (Node.process.platform === 'win32') {
    if (/"/.test(path)) {
      return end(new Error('Argument path cannot contain double-quotes.'));
    }
    command.push('rmdir /s /q "' + path + '"');
  } else {
    command.push('/bin/rm');
    command.push('-rf');
    command.push('"' + EscapeDoubleQuotes(Node.path.normalize(path)) + '"');
  }
  command = command.join(' ');
  Node.child.exec(command, end);
}

function UUID(instance, end) {
  Node.crypto.randomBytes(256,
    function(error, random) {
      if (error) random = Date.now() + '' + Math.random();
      var hash = Node.crypto.createHash('SHA256');
      hash.update('sudo-prompt-3');
      hash.update(instance.options.name);
      hash.update(instance.command);
      hash.update(random);
      var uuid = hash.digest('hex').slice(-32);
      if (!uuid || typeof uuid !== 'string' || uuid.length !== 32) {
        // This is critical to ensure we don't remove the wrong temp directory.
        return end(new Error('Expected a valid UUID.'));
      }
      end(undefined, uuid);
    }
  );
}

function ValidName(string) {
  // We use 70 characters as a limit to side-step any issues with Unicode
  // normalization form causing a 255 character string to exceed the fs limit.
  if (!/^[a-z0-9 ]+$/i.test(string)) return false;
  if (string.trim().length === 0) return false;
  if (string.length > 70) return false;
  return true;
}

function Windows(instance, callback) {
  var temp = Node.os.tmpdir();
  if (!temp) return callback(new Error('os.tmpdir() not defined.'));
  UUID(instance,
    function(error, uuid) {
      if (error) return callback(error);
      instance.uuid = uuid;
      instance.path = Node.path.join(temp, instance.uuid);
      if (/"/.test(instance.path)) {
        // We expect double quotes to be reserved on Windows.
        // Even so, we test for this and abort if they are present.
        return callback(
          new Error('instance.path cannot contain double-quotes.')
        );
      }
      instance.pathElevate = Node.path.join(instance.path, 'elevate.vbs');
      instance.pathExecute = Node.path.join(instance.path, 'execute.bat');
      instance.pathCommand = Node.path.join(instance.path, 'command.bat');
      instance.pathStdout = Node.path.join(instance.path, 'stdout');
      instance.pathStderr = Node.path.join(instance.path, 'stderr');
      instance.pathStatus = Node.path.join(instance.path, 'status');
      Node.fs.mkdir(instance.path,
        function(error) {
          if (error) return callback(error);
          function end(error, stdout, stderr) {
            Remove(instance.path,
              function(errorRemove) {
                if (error) return callback(error);
                if (errorRemove) return callback(errorRemove);
                callback(undefined, stdout, stderr);
              }
            );
          }
          WindowsWriteElevateScript(instance,
            function(error) {
              if (error) return end(error);
              WindowsWriteExecuteScript(instance,
                function(error) {
                  if (error) return end(error);
                  WindowsWriteCommandScript(instance,
                    function(error) {
                      if (error) return end(error);
                      WindowsElevate(instance,
                        function(error) {
                          if (error) return end(error);
                          WindowsWaitForStatus(instance,
                            function(error) {
                              if (error) return end(error);
                              WindowsResult(instance, end);
                            }
                          );
                        }
                      );
                    }
                  );
                }
              );
            }
          );
        }
      );
    }
  );
}

function WindowsElevate(instance, end) {
  // We used to use this for executing elevate.vbs:
  // var command = 'cscript.exe //NoLogo "' + instance.pathElevate + '"';
  var command = [];
  command.push('powershell.exe');
  command.push('Start-Process');
  command.push('-FilePath');
  // Escape characters for cmd using double quotes:
  // Escape characters for PowerShell using single quotes:
  // Escape single quotes for PowerShell using backtick:
  // See: https://ss64.com/ps/syntax-esc.html
  command.push('"\'' + instance.pathExecute.replace(/'/g, "`'") + '\'"');
  command.push('-WindowStyle hidden');
  command.push('-Verb runAs');
  command = command.join(' ');
  var child = Node.child.exec(command,
    function(error, stdout, stderr) {
      if (error) {
        if (/canceled by the user/i.test(error)) {
          end(PERMISSION_DENIED);
        } else {
          end(error);
        }
      } else {
        end();
      }
    }
  );
  child.stdin.end(); // Otherwise PowerShell waits indefinitely on Windows 7.
}

function WindowsResult(instance, end) {
  Node.fs.readFile(instance.pathStatus, 'utf-8',
    function(error, code) {
      if (error) return end(error);
      Node.fs.readFile(instance.pathStdout, 'utf-8',
        function(error, stdout) {
          if (error) return end(error);
          Node.fs.readFile(instance.pathStderr, 'utf-8',
            function(error, stderr) {
              if (error) return end(error);
              code = parseInt(code.trim(), 10);
              if (code === 0) {
                end(undefined, stdout, stderr);
              } else {
                error = new Error(
                  'Command failed: ' + instance.command + '\r\n' + stderr
                );
                error.code = code;
                end(error, stdout, stderr);
              }
            }
          );
        }
      );
    }
  );
}

function WindowsWaitForStatus(instance, end) {
  // VBScript cannot wait for the elevated process to finish so we have to poll.
  // VBScript cannot return error code if user does not grant permission.
  // PowerShell can be used to elevate and wait on Windows 10.
  // PowerShell can be used to elevate on Windows 7 but it cannot wait.
  // powershell.exe Start-Process cmd.exe -Verb runAs -Wait
  Node.fs.stat(instance.pathStatus,
    function(error, stats) {
      if ((error && error.code === 'ENOENT') || stats.size < 2) {
        // Retry if file does not exist or is not finished writing.
        // We expect a file size of 2. That should cover at least "0\r".
        // We use a 1 second timeout to keep a light footprint for long-lived
        // sudo-prompt processes.
        setTimeout(
          function() {
            // If administrator has no password and user clicks Yes, then
            // PowerShell returns no error and execute (and command) never runs.
            // We check that command output has been redirected to stdout file:
            Node.fs.stat(instance.pathStdout,
              function(error) {
                if (error) return end(PERMISSION_DENIED);
                WindowsWaitForStatus(instance, end);
              }
            );
          },
          1000
        );
      } else if (error) {
        end(error);
      } else {
        end();
      }
    }
  );
}

function WindowsWriteCommandScript(instance, end) {
  var cwd = Node.process.cwd();
  if (/"/.test(cwd)) {
    // We expect double quotes to be reserved on Windows.
    // Even so, we test for this and abort if they are present.
    return end(new Error('process.cwd() cannot contain double-quotes.'));
  }
  var script = [];
  script.push('@echo off');
  // Set code page to UTF-8:
  script.push('chcp 65001>nul');
  // We pass /d as an option in case the cwd is on another drive (issue 70):
  script.push('cd /d "' + cwd + '"');
  script.push(instance.command);
  script = script.join('\r\n');
  Node.fs.writeFile(instance.pathCommand, script, 'utf-8', end);
}

function WindowsWriteElevateScript(instance, end) {
  end();
  // We do not use VBScript to elevate since it does not return an error if
  // the user does not grant permission. This is here for reference.
  // var script = [];
  // script.push('Set objShell = CreateObject("Shell.Application")');
  // script.push(
  //   'objShell.ShellExecute "' + instance.pathExecute + '", "", "", "runas", 0'
  // );
  // script = script.join('\r\n');
  // Node.fs.writeFile(instance.pathElevate, script, 'utf-8', end);
}

function WindowsWriteExecuteScript(instance, end) {
  var script = [];
  script.push('@echo off');
  script.push(
    'call "' + instance.pathCommand + '"' +
    ' > "' + instance.pathStdout + '" 2> "' + instance.pathStderr + '"'
  );
  script.push('(echo %ERRORLEVEL%) > "' + instance.pathStatus + '"');
  script = script.join('\r\n');
  Node.fs.writeFile(instance.pathExecute, script, 'utf-8', end);
}

module.exports.exec = Exec;

// We used to expect that applet.app would be included with this module.
// This could not be copied when sudo-prompt was packaged within an asar file.
// We now store applet.app as a zip file in base64 within index.js instead.
// To recreate: "zip -r ../applet.zip Contents" (with applet.app as CWD).
// The zip file must not include applet.app as the root directory so that we
// can extract it directly to the target app directory.
var APPLET = '[encoded data, 9996 characters]';

var PERMISSION_DENIED = 'User did not grant permission.';
var NO_POLKIT_AGENT = 'No polkit authentication agent found.';

// See issue 66:
var MAX_BUFFER = 134217728;


/***/ }),
/* 661 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const contracts_1 = __webpack_require__(90);
const types_1 = __webpack_require__(95);
const moduleInstaller_1 = __webpack_require__(659);
exports.pipenvName = 'pipenv';
let PipEnvInstaller = class PipEnvInstaller extends moduleInstaller_1.ModuleInstaller {
    constructor(serviceContainer) {
        super(serviceContainer);
        this.pipenv = this.serviceContainer.get(contracts_1.IInterpreterLocatorService, contracts_1.PIPENV_SERVICE);
    }
    get displayName() {
        return exports.pipenvName;
    }
    get priority() {
        return 10;
    }
    async isSupported(resource) {
        const interpreters = await this.pipenv.getInterpreters(resource);
        return interpreters && interpreters.length > 0;
    }
    async getExecutionInfo(moduleName, _resource) {
        return {
            args: ['install', moduleName, '--dev'],
            execPath: exports.pipenvName
        };
    }
};
PipEnvInstaller = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], PipEnvInstaller);
exports.PipEnvInstaller = PipEnvInstaller;


/***/ }),
/* 662 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(78);
const types_3 = __webpack_require__(148);
const moduleInstaller_1 = __webpack_require__(659);
let PipInstaller = class PipInstaller extends moduleInstaller_1.ModuleInstaller {
    constructor(serviceContainer) {
        super(serviceContainer);
    }
    get displayName() {
        return 'Pip';
    }
    get priority() {
        return 0;
    }
    isSupported(resource) {
        return this.isPipAvailable(resource);
    }
    async getExecutionInfo(moduleName, _resource) {
        const proxyArgs = [];
        const workspaceService = this.serviceContainer.get(types_2.IWorkspaceService);
        const proxy = workspaceService.getConfiguration('http').get('proxy', '');
        if (proxy.length > 0) {
            proxyArgs.push('--proxy');
            proxyArgs.push(proxy);
        }
        return {
            args: [...proxyArgs, 'install', '-U', moduleName],
            moduleName: 'pip'
        };
    }
    isPipAvailable(resource) {
        const pythonExecutionFactory = this.serviceContainer.get(types_3.IPythonExecutionFactory);
        return pythonExecutionFactory.create({ resource })
            .then(proc => proc.isModuleInstalled('pip'))
            .catch(() => false);
    }
};
PipInstaller = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], PipInstaller);
exports.PipInstaller = PipInstaller;


/***/ }),
/* 663 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_3 = __webpack_require__(205);
const types_4 = __webpack_require__(148);
const types_5 = __webpack_require__(75);
const moduleInstaller_1 = __webpack_require__(659);
exports.poetryName = 'poetry';
const poetryFile = 'poetry.lock';
let PoetryInstaller = class PoetryInstaller extends moduleInstaller_1.ModuleInstaller {
    constructor(serviceContainer, workspaceService, configurationService, fs, processFactory) {
        super(serviceContainer);
        this.workspaceService = workspaceService;
        this.configurationService = configurationService;
        this.fs = fs;
        this.processFactory = processFactory;
    }
    get displayName() {
        return exports.poetryName;
    }
    get priority() {
        return 10;
    }
    async isSupported(resource) {
        if (!resource) {
            return false;
        }
        const workspaceFolder = coc_nvim_1.workspace.workspaceFolder;
        if (!workspaceFolder) {
            return false;
        }
        if (!(await this.fs.fileExists(path.join(coc_nvim_1.workspace.rootPath, poetryFile)))) {
            return false;
        }
        return this.isPoetryAvailable(coc_nvim_1.Uri.parse(workspaceFolder.uri));
    }
    async isPoetryAvailable(workfolder) {
        try {
            const processService = await this.processFactory.create(workfolder);
            const execPath = this.configurationService.getSettings(workfolder).poetryPath;
            const result = await processService.exec(execPath, ['list'], { cwd: workfolder.fsPath });
            return result && ((result.stderr || '').trim().length === 0);
        }
        catch (error) {
            logger_1.traceError(`${poetryFile} exists but Poetry not found`, error);
            return false;
        }
    }
    async getExecutionInfo(moduleName, resource) {
        const execPath = this.configurationService.getSettings(resource).poetryPath;
        return {
            args: ['add', moduleName],
            execPath
        };
    }
};
PoetryInstaller = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer)),
    __param(1, inversify_1.inject(types_2.IWorkspaceService)),
    __param(2, inversify_1.inject(types_5.IConfigurationService)),
    __param(3, inversify_1.inject(types_3.IFileSystem)),
    __param(4, inversify_1.inject(types_4.IProcessServiceFactory))
], PoetryInstaller);
exports.PoetryInstaller = PoetryInstaller;


/***/ }),
/* 664 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:max-classes-per-file
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(665);
const types_2 = __webpack_require__(95);
const types_3 = __webpack_require__(666);
const types_4 = __webpack_require__(75);
let BaseProductPathsService = class BaseProductPathsService {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.configService = serviceContainer.get(types_4.IConfigurationService);
        this.productInstaller = serviceContainer.get(types_4.IInstaller);
    }
    isExecutableAModule(product, resource) {
        let moduleName;
        try {
            moduleName = this.productInstaller.translateProductToModuleName(product, types_4.ModuleNamePurpose.run);
            // tslint:disable-next-line:no-empty
        }
        catch (_a) { }
        // User may have customized the module name or provided the fully qualifieid path.
        const executableName = this.getExecutableNameFromSettings(product, resource);
        return typeof moduleName === 'string' && moduleName.length > 0 && path.basename(executableName) === executableName;
    }
};
BaseProductPathsService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], BaseProductPathsService);
let CTagsProductPathService = class CTagsProductPathService extends BaseProductPathsService {
    constructor(serviceContainer) {
        super(serviceContainer);
    }
    getExecutableNameFromSettings(_, resource) {
        const settings = this.configService.getSettings(resource);
        return settings.workspaceSymbols.ctagsPath;
    }
};
CTagsProductPathService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], CTagsProductPathService);
exports.CTagsProductPathService = CTagsProductPathService;
let FormatterProductPathService = class FormatterProductPathService extends BaseProductPathsService {
    constructor(serviceContainer) {
        super(serviceContainer);
    }
    getExecutableNameFromSettings(product, resource) {
        const settings = this.configService.getSettings(resource);
        const formatHelper = this.serviceContainer.get(types_1.IFormatterHelper);
        const settingsPropNames = formatHelper.getSettingsPropertyNames(product);
        return settings.formatting[settingsPropNames.pathName];
    }
};
FormatterProductPathService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], FormatterProductPathService);
exports.FormatterProductPathService = FormatterProductPathService;
let LinterProductPathService = class LinterProductPathService extends BaseProductPathsService {
    constructor(serviceContainer) {
        super(serviceContainer);
    }
    getExecutableNameFromSettings(product, resource) {
        const linterManager = this.serviceContainer.get(types_3.ILinterManager);
        return linterManager.getLinterInfo(product).pathName(resource);
    }
};
LinterProductPathService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], LinterProductPathService);
exports.LinterProductPathService = LinterProductPathService;
let RefactoringLibraryProductPathService = class RefactoringLibraryProductPathService extends BaseProductPathsService {
    constructor(serviceContainer) {
        super(serviceContainer);
    }
    getExecutableNameFromSettings(product, _) {
        return this.productInstaller.translateProductToModuleName(product, types_4.ModuleNamePurpose.run);
    }
};
RefactoringLibraryProductPathService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], RefactoringLibraryProductPathService);
exports.RefactoringLibraryProductPathService = RefactoringLibraryProductPathService;


/***/ }),
/* 665 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.IFormatterHelper = Symbol('IFormatterHelper');


/***/ }),
/* 666 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.IAvailableLinterActivator = Symbol('IAvailableLinterActivator');
exports.ILinterManager = Symbol('ILinterManager');
var LintMessageSeverity;
(function (LintMessageSeverity) {
    LintMessageSeverity[LintMessageSeverity["Hint"] = 0] = "Hint";
    LintMessageSeverity[LintMessageSeverity["Error"] = 1] = "Error";
    LintMessageSeverity[LintMessageSeverity["Warning"] = 2] = "Warning";
    LintMessageSeverity[LintMessageSeverity["Information"] = 3] = "Information";
})(LintMessageSeverity = exports.LintMessageSeverity || (exports.LintMessageSeverity = {}));
exports.ILintingEngine = Symbol('ILintingEngine');


/***/ }),
/* 667 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(75);
let ProductService = class ProductService {
    constructor() {
        this.ProductTypes = new Map();
        this.ProductTypes.set(types_1.Product.bandit, types_1.ProductType.Linter);
        this.ProductTypes.set(types_1.Product.flake8, types_1.ProductType.Linter);
        this.ProductTypes.set(types_1.Product.mypy, types_1.ProductType.Linter);
        this.ProductTypes.set(types_1.Product.pep8, types_1.ProductType.Linter);
        this.ProductTypes.set(types_1.Product.prospector, types_1.ProductType.Linter);
        this.ProductTypes.set(types_1.Product.pydocstyle, types_1.ProductType.Linter);
        this.ProductTypes.set(types_1.Product.pylama, types_1.ProductType.Linter);
        this.ProductTypes.set(types_1.Product.pylint, types_1.ProductType.Linter);
        this.ProductTypes.set(types_1.Product.ctags, types_1.ProductType.WorkspaceSymbols);
        this.ProductTypes.set(types_1.Product.nosetest, types_1.ProductType.TestFramework);
        this.ProductTypes.set(types_1.Product.pytest, types_1.ProductType.TestFramework);
        this.ProductTypes.set(types_1.Product.unittest, types_1.ProductType.TestFramework);
        this.ProductTypes.set(types_1.Product.autopep8, types_1.ProductType.Formatter);
        this.ProductTypes.set(types_1.Product.black, types_1.ProductType.Formatter);
        this.ProductTypes.set(types_1.Product.yapf, types_1.ProductType.Formatter);
        this.ProductTypes.set(types_1.Product.rope, types_1.ProductType.RefactoringLibrary);
    }
    getProductType(product) {
        return this.ProductTypes.get(product);
    }
};
ProductService = __decorate([
    inversify_1.injectable()
], ProductService);
exports.ProductService = ProductService;


/***/ }),
/* 668 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const fileSystem_1 = __webpack_require__(669);
const platformService_1 = __webpack_require__(670);
const registry_1 = __webpack_require__(673);
const types_1 = __webpack_require__(205);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_1.IPlatformService, platformService_1.PlatformService);
    serviceManager.addSingleton(types_1.IFileSystem, fileSystem_1.FileSystem);
    serviceManager.addSingleton(types_1.IRegistry, registry_1.RegistryImplementation);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 669 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const crypto_1 = __webpack_require__(57);
const fileSystem = __importStar(__webpack_require__(94));
const fs_extra_1 = __importDefault(__webpack_require__(104));
const glob_1 = __importDefault(__webpack_require__(228));
const inversify_1 = __webpack_require__(3);
const path_1 = __importDefault(__webpack_require__(55));
const tmp_1 = __importDefault(__webpack_require__(226));
const async_1 = __webpack_require__(150);
const types_1 = __webpack_require__(205);
let FileSystem = class FileSystem {
    constructor(platformService) {
        this.platformService = platformService;
    }
    get directorySeparatorChar() {
        return path_1.default.sep;
    }
    objectExists(filePath, statCheck) {
        return new Promise(resolve => {
            fs_extra_1.default.stat(filePath, (error, stats) => {
                if (error) {
                    return resolve(false);
                }
                return resolve(statCheck(stats));
            });
        });
    }
    fileExists(filePath) {
        return this.objectExists(filePath, stats => stats.isFile());
    }
    fileExistsSync(filePath) {
        return fs_extra_1.default.existsSync(filePath);
    }
    /**
     * Reads the contents of the file using utf8 and returns the string contents.
     * @param {string} filePath
     * @returns {Promise<string>}
     * @memberof FileSystem
     */
    readFile(filePath) {
        return fs_extra_1.default.readFile(filePath).then(buffer => buffer.toString());
    }
    async writeFile(filePath, data, options = { encoding: 'utf8' }) {
        await fs_extra_1.default.writeFile(filePath, data, options);
    }
    directoryExists(filePath) {
        return this.objectExists(filePath, stats => stats.isDirectory());
    }
    createDirectory(directoryPath) {
        return fs_extra_1.default.mkdirp(directoryPath);
    }
    deleteDirectory(directoryPath) {
        const deferred = async_1.createDeferred();
        fs_extra_1.default.rmdir(directoryPath, err => err ? deferred.reject(err) : deferred.resolve());
        return deferred.promise;
    }
    getSubDirectories(rootDir) {
        return new Promise(resolve => {
            fs_extra_1.default.readdir(rootDir, (error, files) => {
                if (error) {
                    return resolve([]);
                }
                const subDirs = [];
                files.forEach(name => {
                    const fullPath = path_1.default.join(rootDir, name);
                    try {
                        if (fs_extra_1.default.statSync(fullPath).isDirectory()) {
                            subDirs.push(fullPath);
                        }
                        // tslint:disable-next-line:no-empty
                    }
                    catch (ex) { }
                });
                resolve(subDirs);
            });
        });
    }
    async getFiles(rootDir) {
        const files = await fs_extra_1.default.readdir(rootDir);
        return files.filter(async (f) => {
            const fullPath = path_1.default.join(rootDir, f);
            if ((await fs_extra_1.default.stat(fullPath)).isFile()) {
                return true;
            }
            return false;
        });
    }
    arePathsSame(path1, path2) {
        path1 = path_1.default.normalize(path1);
        path2 = path_1.default.normalize(path2);
        if (this.platformService.isWindows) {
            return path1.toUpperCase() === path2.toUpperCase();
        }
        else {
            return path1 === path2;
        }
    }
    appendFileSync(filename, data, optionsOrEncoding) {
        return fs_extra_1.default.appendFileSync(filename, data, optionsOrEncoding);
    }
    getRealPath(filePath) {
        return new Promise(resolve => {
            fs_extra_1.default.realpath(filePath, (err, realPath) => {
                resolve(err ? filePath : realPath);
            });
        });
    }
    copyFile(src, dest) {
        const deferred = async_1.createDeferred();
        const rs = fs_extra_1.default.createReadStream(src).on('error', err => {
            deferred.reject(err);
        });
        const ws = fs_extra_1.default.createWriteStream(dest).on('error', err => {
            deferred.reject(err);
        }).on('close', () => {
            deferred.resolve();
        });
        rs.pipe(ws);
        return deferred.promise;
    }
    deleteFile(filename) {
        const deferred = async_1.createDeferred();
        fs_extra_1.default.unlink(filename, err => err ? deferred.reject(err) : deferred.resolve());
        return deferred.promise;
    }
    getFileHash(filePath) {
        return new Promise(resolve => {
            fs_extra_1.default.lstat(filePath, (err, stats) => {
                if (err) {
                    resolve();
                }
                else {
                    const actual = crypto_1.createHash('sha512').update(`${stats.ctimeMs}-${stats.mtimeMs}`).digest('hex');
                    resolve(actual);
                }
            });
        });
    }
    search(globPattern) {
        return new Promise((resolve, reject) => {
            glob_1.default(globPattern, (ex, files) => {
                if (ex) {
                    return reject(ex);
                }
                resolve(Array.isArray(files) ? files : []);
            });
        });
    }
    createTemporaryFile(extension) {
        return new Promise((resolve, reject) => {
            tmp_1.default.file({ postfix: extension }, (err, tmpFile, _, cleanupCallback) => {
                if (err) {
                    return reject(err);
                }
                resolve({ filePath: tmpFile, dispose: cleanupCallback });
            });
        });
    }
    createWriteStream(filePath) {
        return fileSystem.createWriteStream(filePath);
    }
    chmod(filePath, mode) {
        return new Promise((resolve, reject) => {
            fileSystem.chmod(filePath, mode, (err) => {
                if (err) {
                    return reject(err);
                }
                resolve();
            });
        });
    }
};
FileSystem = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IPlatformService))
], FileSystem);
exports.FileSystem = FileSystem;


/***/ }),
/* 670 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const os = __importStar(__webpack_require__(56));
const semver_1 = __webpack_require__(265);
const platform_1 = __webpack_require__(627);
const version_1 = __webpack_require__(671);
const constants_1 = __webpack_require__(147);
let PlatformService = class PlatformService {
    constructor() {
        this.osType = getOSType();
    }
    get pathVariableName() {
        return this.isWindows ? constants_1.WINDOWS_PATH_VARIABLE_NAME : constants_1.NON_WINDOWS_PATH_VARIABLE_NAME;
    }
    get virtualEnvBinName() {
        return this.isWindows ? 'Scripts' : 'bin';
    }
    async getVersion() {
        if (this.version) {
            return this.version;
        }
        switch (this.osType) {
            case platform_1.OSType.Windows:
            case platform_1.OSType.OSX:
                // Release section of https://en.wikipedia.org/wiki/MacOS_Sierra.
                // Version 10.12 maps to Darwin 16.0.0.
                // Using os.relase() we get the darwin release #.
                try {
                    const ver = semver_1.coerce(os.release());
                    if (ver) {
                        return this.version = ver;
                    }
                    throw new Error('Unable to parse version');
                }
                catch (ex) {
                    return version_1.parseVersion(os.release());
                }
            default:
                throw new Error('Not Supported');
        }
    }
    get isWindows() {
        return this.osType === platform_1.OSType.Windows;
    }
    get isMac() {
        return this.osType === platform_1.OSType.OSX;
    }
    get isLinux() {
        return this.osType === platform_1.OSType.Linux;
    }
    get is64bit() {
        // tslint:disable-next-line:no-require-imports
        const arch = __webpack_require__(672);
        return arch() === 'x64';
    }
};
PlatformService = __decorate([
    inversify_1.injectable()
], PlatformService);
exports.PlatformService = PlatformService;
function getOSType(platform = process.platform) {
    if (/^win/.test(platform)) {
        return platform_1.OSType.Windows;
    }
    else if (/^darwin/.test(platform)) {
        return platform_1.OSType.OSX;
    }
    else if (/^linux/.test(platform)) {
        return platform_1.OSType.Linux;
    }
    else {
        return platform_1.OSType.Unknown;
    }
}


/***/ }),
/* 671 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const semver = __importStar(__webpack_require__(265));
function parseVersion(raw) {
    raw = raw.replace(/\.00*(?=[1-9]|0\.)/, '.');
    const ver = semver.coerce(raw);
    if (ver === null || !semver.valid(ver)) {
        // tslint:disable-next-line: no-suspicious-comment
        // TODO: Raise an exception instead?
        return new semver.SemVer('0.0.0');
    }
    return ver;
}
exports.parseVersion = parseVersion;
function parsePythonVersion(version) {
    if (!version || version.trim().length === 0) {
        return;
    }
    const versionParts = (version || '')
        .split('.')
        .map(item => item.trim())
        .filter(item => item.length > 0)
        .filter((_, index) => index < 4);
    if (versionParts.length > 0 && versionParts[versionParts.length - 1].indexOf('-') > 0) {
        const lastPart = versionParts[versionParts.length - 1];
        versionParts[versionParts.length - 1] = lastPart.split('-')[0].trim();
        versionParts.push(lastPart.split('-')[1].trim());
    }
    while (versionParts.length < 4) {
        versionParts.push('');
    }
    // Exclude PII from `version_info` to ensure we don't send this up via telemetry.
    for (let index = 0; index < 3; index += 1) {
        versionParts[index] = /^\d+$/.test(versionParts[index]) ? versionParts[index] : '0';
    }
    if (['alpha', 'beta', 'candidate', 'final'].indexOf(versionParts[3]) === -1) {
        versionParts.pop();
    }
    const numberParts = `${versionParts[0]}.${versionParts[1]}.${versionParts[2]}`;
    const rawVersion = versionParts.length === 4 ? `${numberParts}-${versionParts[3]}` : numberParts;
    return new semver.SemVer(rawVersion);
}
exports.parsePythonVersion = parsePythonVersion;


/***/ }),
/* 672 */
/***/ (function(module, exports, __webpack_require__) {

var cp = __webpack_require__(145)
var fs = __webpack_require__(94)
var path = __webpack_require__(55)

/**
 * Returns the operating system's CPU architecture. This is different than
 * `process.arch` or `os.arch()` which returns the architecture the Node.js (or
 * Electron) binary was compiled for.
 */
module.exports = function arch () {
  /**
   * The running binary is 64-bit, so the OS is clearly 64-bit.
   */
  if (process.arch === 'x64') {
    return 'x64'
  }

  /**
   * All recent versions of Mac OS are 64-bit.
   */
  if (process.platform === 'darwin') {
    return 'x64'
  }

  /**
   * On Windows, the most reliable way to detect a 64-bit OS from within a 32-bit
   * app is based on the presence of a WOW64 file: %SystemRoot%\SysNative.
   * See: https://twitter.com/feross/status/776949077208510464
   */
  if (process.platform === 'win32') {
    var useEnv = false
    try {
      useEnv = !!(process.env.SYSTEMROOT && fs.statSync(process.env.SYSTEMROOT))
    } catch (err) {}

    var sysRoot = useEnv ? process.env.SYSTEMROOT : 'C:\\Windows'

    // If %SystemRoot%\SysNative exists, we are in a WOW64 FS Redirected application.
    var isWOW64 = false
    try {
      isWOW64 = !!fs.statSync(path.join(sysRoot, 'sysnative'))
    } catch (err) {}

    return isWOW64 ? 'x64' : 'x86'
  }

  /**
   * On Linux, use the `getconf` command to get the architecture.
   */
  if (process.platform === 'linux') {
    var output = cp.execSync('getconf LONG_BIT', {encoding: 'utf8'})
    return output === '64\n' ? 'x64' : 'x86'
  }

  /**
   * If none of the above, assume the architecture is 32-bit.
   */
  return 'x86'
}


/***/ }),
/* 673 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const platform_1 = __webpack_require__(627);
const types_1 = __webpack_require__(205);
var RegistryArchitectures;
(function (RegistryArchitectures) {
    RegistryArchitectures["x86"] = "x86";
    RegistryArchitectures["x64"] = "x64";
})(RegistryArchitectures || (RegistryArchitectures = {}));
let RegistryImplementation = class RegistryImplementation {
    async getKeys(key, hive, arch) {
        return getRegistryKeys({ hive: translateHive(hive), arch: translateArchitecture(arch), key });
    }
    async getValue(key, hive, arch, name = '') {
        return getRegistryValue({ hive: translateHive(hive), arch: translateArchitecture(arch), key }, name);
    }
};
RegistryImplementation = __decorate([
    inversify_1.injectable()
], RegistryImplementation);
exports.RegistryImplementation = RegistryImplementation;
function getArchitectureDisplayName(arch) {
    switch (arch) {
        case platform_1.Architecture.x64:
            return '64-bit';
        case platform_1.Architecture.x86:
            return '32-bit';
        default:
            return '';
    }
}
exports.getArchitectureDisplayName = getArchitectureDisplayName;
async function getRegistryValue(options, name = '') {
    // tslint:disable-next-line:no-require-imports
    const Registry = __webpack_require__(674);
    return new Promise(resolve => {
        new Registry(options).get(name, (error, result) => {
            if (error || !result || typeof result.value !== 'string') {
                return resolve(undefined);
            }
            resolve(result.value);
        });
    });
}
async function getRegistryKeys(options) {
    // tslint:disable-next-line:no-require-imports
    const Registry = __webpack_require__(674);
    // https://github.com/python/peps/blob/master/pep-0514.txt#L85
    return new Promise(resolve => {
        new Registry(options).keys((error, result) => {
            if (error || !Array.isArray(result)) {
                return resolve([]);
            }
            resolve(result.filter(item => typeof item.key === 'string').map(item => item.key));
        });
    });
}
function translateArchitecture(arch) {
    switch (arch) {
        case platform_1.Architecture.x86:
            return RegistryArchitectures.x86;
        case platform_1.Architecture.x64:
            return RegistryArchitectures.x64;
        default:
            return;
    }
}
function translateHive(hive) {
    // tslint:disable-next-line:no-require-imports
    const Registry = __webpack_require__(674);
    switch (hive) {
        case types_1.RegistryHive.HKCU:
            return Registry.HKCU;
        case types_1.RegistryHive.HKLM:
            return Registry.HKLM;
        default:
            return;
    }
}


/***/ }),
/* 674 */
/***/ (function(module, exports, __webpack_require__) {

/************************************************************************************************************
 * registry.js - contains a wrapper for the REG command under Windows, which provides access to the registry
 *
 * @author Paul Bottin a/k/a FrEsC
 *
 */

/* imports */
var util          = __webpack_require__(113)
,   path          = __webpack_require__(55)
,   spawn         = __webpack_require__(145).spawn

/* set to console.log for debugging */
,   log           = function () {}

/* registry hive ids */
,   HKLM          = 'HKLM'
,   HKCU          = 'HKCU'
,   HKCR          = 'HKCR'
,   HKU           = 'HKU'
,   HKCC          = 'HKCC'
,   HIVES         = [ HKLM, HKCU, HKCR, HKU, HKCC ]

/* registry value type ids */
,   REG_SZ        = 'REG_SZ'
,   REG_MULTI_SZ  = 'REG_MULTI_SZ'
,   REG_EXPAND_SZ = 'REG_EXPAND_SZ'
,   REG_DWORD     = 'REG_DWORD'
,   REG_QWORD     = 'REG_QWORD'
,   REG_BINARY    = 'REG_BINARY'
,   REG_NONE      = 'REG_NONE'
,   REG_TYPES     = [ REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE ]

/* default registry value name */
,   DEFAULT_VALUE = ''

/* general key pattern */
,   KEY_PATTERN   = /(\\[a-zA-Z0-9_\s]+)*/

/* key path pattern (as returned by REG-cli) */
,   PATH_PATTERN  = /^(HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER|HKEY_CLASSES_ROOT|HKEY_USERS|HKEY_CURRENT_CONFIG)(.*)$/

/* registry item pattern */
,   ITEM_PATTERN  = /^(.*)\s(REG_SZ|REG_MULTI_SZ|REG_EXPAND_SZ|REG_DWORD|REG_QWORD|REG_BINARY|REG_NONE)\s+([^\s].*)$/

/**
 * Creates an Error object that contains the exit code of the REG.EXE process.
 * This contructor is private. Objects of this type are created internally and returned in the <code>err</code> parameters in case the REG.EXE process doesn't exit cleanly.
 *
 * @private
 * @class
 *
 * @param {string} message - the error message
 * @param {number} code - the process exit code
 *
 */
function ProcessUncleanExitError(message, code) {
  if (!(this instanceof ProcessUncleanExitError))
    return new ProcessUncleanExitError(message, code);

  Error.captureStackTrace(this, ProcessUncleanExitError);

  /**
   * The error name.
   * @readonly
   * @member {string} ProcessUncleanExitError#name
   */
  this.__defineGetter__('name', function () { return ProcessUncleanExitError.name; });

  /**
   * The error message.
   * @readonly
   * @member {string} ProcessUncleanExitError#message
   */
  this.__defineGetter__('message', function () { return message; });

  /**
   * The process exit code.
   * @readonly
   * @member {number} ProcessUncleanExitError#code
   */
  this.__defineGetter__('code', function () { return code; });

}

util.inherits(ProcessUncleanExitError, Error);

/*
 * Captures stdout/stderr for a child process
 */
function captureOutput(child) {
  // Use a mutable data structure so we can append as we get new data and have
  // the calling context see the new data
  var output = {'stdout': '', 'stderr': ''};

  child.stdout.on('data', function(data) { output["stdout"] += data.toString(); });
  child.stderr.on('data', function(data) { output["stderr"] += data.toString(); });

  return output;
}


/*
 * Returns an error message containing the stdout/stderr of the child process
 */
function mkErrorMsg(registryCommand, code, output) {
    var stdout = output['stdout'].trim();
    var stderr = output['stderr'].trim();

    var msg = util.format("%s command exited with code %d:\n%s\n%s", registryCommand, code, stdout, stderr);
    return new ProcessUncleanExitError(msg, code);
}


/*
 * Converts x86/x64 to 32/64
 */
function convertArchString(archString) {
  if (archString == 'x64') {
    return '64';
  } else if (archString == 'x86') {
    return '32';
  } else {
    throw new Error('illegal architecture: ' + archString + ' (use x86 or x64)');
  }
}


/*
 * Adds correct architecture to reg args
 */
function pushArch(args, arch) {
  if (arch) {
    args.push('/reg:' + convertArchString(arch));
  }
}

/*
 * Get the path to system's reg.exe. Useful when another reg.exe is added to the PATH
 * Implemented only for Windows
 */
function getRegExePath() {
    if (process.platform === 'win32') {
        return path.join(process.env.windir, 'system32', 'reg.exe');
    } else {
        return "REG";
    }
}


/**
 * Creates a single registry value record.
 * This contructor is private. Objects of this type are created internally and returned by methods of {@link Registry} objects.
 *
 * @private
 * @class
 *
 * @param {string} host - the hostname
 * @param {string} hive - the hive id
 * @param {string} key - the registry key
 * @param {string} name - the value name
 * @param {string} type - the value type
 * @param {string} value - the value
 * @param {string} arch - the hive architecture ('x86' or 'x64')
 *
 */
function RegistryItem (host, hive, key, name, type, value, arch) {

  if (!(this instanceof RegistryItem))
    return new RegistryItem(host, hive, key, name, type, value, arch);

  /* private members */
  var _host = host    // hostname
  ,   _hive = hive    // registry hive
  ,   _key = key      // registry key
  ,   _name = name    // property name
  ,   _type = type    // property type
  ,   _value = value  // property value
  ,   _arch = arch    // hive architecture

  /* getters/setters */

  /**
   * The hostname.
   * @readonly
   * @member {string} RegistryItem#host
   */
  this.__defineGetter__('host', function () { return _host; });

  /**
   * The hive id.
   * @readonly
   * @member {string} RegistryItem#hive
   */
  this.__defineGetter__('hive', function () { return _hive; });

  /**
   * The registry key.
   * @readonly
   * @member {string} RegistryItem#key
   */
  this.__defineGetter__('key', function () { return _key; });

  /**
   * The value name.
   * @readonly
   * @member {string} RegistryItem#name
   */
  this.__defineGetter__('name', function () { return _name; });

  /**
   * The value type.
   * @readonly
   * @member {string} RegistryItem#type
   */
  this.__defineGetter__('type', function () { return _type; });

  /**
   * The value.
   * @readonly
   * @member {string} RegistryItem#value
   */
  this.__defineGetter__('value', function () { return _value; });

  /**
   * The hive architecture.
   * @readonly
   * @member {string} RegistryItem#arch
   */
  this.__defineGetter__('arch', function () { return _arch; });

}

util.inherits(RegistryItem, Object);

/**
 * Creates a registry object, which provides access to a single registry key.
 * Note: This class is returned by a call to ```require('winreg')```.
 *
 * @public
 * @class
 *
 * @param {object} options - the options
 * @param {string=} options.host - the hostname
 * @param {string=} options.hive - the hive id
 * @param {string=} options.key - the registry key
 * @param {string=} options.arch - the optional registry hive architecture ('x86' or 'x64'; only valid on Windows 64 Bit Operating Systems)
 *
 * @example
 * var Registry = require('winreg')
 * ,   autoStartCurrentUser = new Registry({
 *       hive: Registry.HKCU,
 *       key:  '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run'
 *     });
 *
 */
function Registry (options) {

  if (!(this instanceof Registry))
    return new Registry(options);

  /* private members */
  var _options = options || {}
  ,   _host = '' + (_options.host || '')    // hostname
  ,   _hive = '' + (_options.hive || HKLM)  // registry hive
  ,   _key  = '' + (_options.key  || '')    // registry key
  ,   _arch = _options.arch || null         // hive architecture

  /* getters/setters */

  /**
   * The hostname.
   * @readonly
   * @member {string} Registry#host
   */
  this.__defineGetter__('host', function () { return _host; });

  /**
   * The hive id.
   * @readonly
   * @member {string} Registry#hive
   */
  this.__defineGetter__('hive', function () { return _hive; });

  /**
   * The registry key name.
   * @readonly
   * @member {string} Registry#key
   */
  this.__defineGetter__('key', function () { return _key; });

  /**
   * The full path to the registry key.
   * @readonly
   * @member {string} Registry#path
   */
  this.__defineGetter__('path', function () { return (_host.length == 0 ? '' : '\\\\' + _host + '\\') + _hive + _key; });

  /**
   * The registry hive architecture ('x86' or 'x64').
   * @readonly
   * @member {string} Registry#arch
   */
  this.__defineGetter__('arch', function () { return _arch; });

  /**
   * Creates a new {@link Registry} instance that points to the parent registry key.
   * @readonly
   * @member {Registry} Registry#parent
   */
  this.__defineGetter__('parent', function () {
    var i = _key.lastIndexOf('\\')
    return new Registry({
      host: this.host,
      hive: this.hive,
      key:  (i == -1)?'':_key.substring(0, i),
      arch: this.arch
    });
  });

  // validate options...
  if (HIVES.indexOf(_hive) == -1)
    throw new Error('illegal hive specified.');

  if (!KEY_PATTERN.test(_key))
    throw new Error('illegal key specified.');

  if (_arch && _arch != 'x64' && _arch != 'x86')
    throw new Error('illegal architecture specified (use x86 or x64)');

}

/**
 * Registry hive key HKEY_LOCAL_MACHINE.
 * Note: For writing to this hive your program has to run with admin privileges.
 * @type {string}
 */
Registry.HKLM = HKLM;

/**
 * Registry hive key HKEY_CURRENT_USER.
 * @type {string}
 */
Registry.HKCU = HKCU;

/**
 * Registry hive key HKEY_CLASSES_ROOT.
 * Note: For writing to this hive your program has to run with admin privileges.
 * @type {string}
 */
Registry.HKCR = HKCR;

/**
 * Registry hive key HKEY_USERS.
 * Note: For writing to this hive your program has to run with admin privileges.
 * @type {string}
 */
Registry.HKU = HKU;

/**
 * Registry hive key HKEY_CURRENT_CONFIG.
 * Note: For writing to this hive your program has to run with admin privileges.
 * @type {string}
 */
Registry.HKCC = HKCC;

/**
 * Collection of available registry hive keys.
 * @type {array}
 */
Registry.HIVES = HIVES;

/**
 * Registry value type STRING.
 * @type {string}
 */
Registry.REG_SZ = REG_SZ;

/**
 * Registry value type MULTILINE_STRING.
 * @type {string}
 */
Registry.REG_MULTI_SZ = REG_MULTI_SZ;

/**
 * Registry value type EXPANDABLE_STRING.
 * @type {string}
 */
Registry.REG_EXPAND_SZ = REG_EXPAND_SZ;

/**
 * Registry value type DOUBLE_WORD.
 * @type {string}
 */
Registry.REG_DWORD = REG_DWORD;

/**
 * Registry value type QUAD_WORD.
 * @type {string}
 */
Registry.REG_QWORD = REG_QWORD;

/**
 * Registry value type BINARY.
 * @type {string}
 */
Registry.REG_BINARY = REG_BINARY;

/**
 * Registry value type UNKNOWN.
 * @type {string}
 */
Registry.REG_NONE = REG_NONE;

/**
 * Collection of available registry value types.
 * @type {array}
 */
Registry.REG_TYPES = REG_TYPES;

/**
 * The name of the default value. May be used instead of the empty string literal for better readability.
 * @type {string}
 */
Registry.DEFAULT_VALUE = DEFAULT_VALUE;

/**
 * Retrieve all values from this registry key.
 * @param {valuesCallback} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @param {array=} cb.items - an array of {@link RegistryItem} objects
 * @returns {Registry} this registry key object
 */
Registry.prototype.values = function values (cb) {

  if (typeof cb !== 'function')
    throw new TypeError('must specify a callback');

  var args = [ 'QUERY', this.path ];

  pushArch(args, this.arch);

  var proc = spawn(getRegExePath(), args, {
        cwd: undefined,
        env: process.env,
        stdio: [ 'ignore', 'pipe', 'pipe' ]
      })
  ,   buffer = ''
  ,   self = this
  ,   error = null // null means no error previously reported.

  var output = captureOutput(proc);

  proc.on('close', function (code) {
    if (error) {
      return;
    } else if (code !== 0) {
      log('process exited with code ' + code);
      cb(mkErrorMsg('QUERY', code, output), null);
    } else {
      var items = []
      ,   result = []
      ,   lines = buffer.split('\n')
      ,   lineNumber = 0

      for (var i = 0, l = lines.length; i < l; i++) {
        var line = lines[i].trim();
        if (line.length > 0) {
          log(line);
          if (lineNumber != 0) {
            items.push(line);
          }
          ++lineNumber;
        }
      }

      for (var i = 0, l = items.length; i < l; i++) {

        var match = ITEM_PATTERN.exec(items[i])
        ,   name
        ,   type
        ,   value

        if (match) {
          name = match[1].trim();
          type = match[2].trim();
          value = match[3];
          result.push(new RegistryItem(self.host, self.hive, self.key, name, type, value, self.arch));
        }
      }

      cb(null, result);

    }
  });

  proc.stdout.on('data', function (data) {
    buffer += data.toString();
  });

  proc.on('error', function(err) {
    error = err;
    cb(err);
  });

  return this;
};

/**
 * Retrieve all subkeys from this registry key.
 * @param {function (err, items)} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @param {array=} cb.items - an array of {@link Registry} objects
 * @returns {Registry} this registry key object
 */
Registry.prototype.keys = function keys (cb) {

  if (typeof cb !== 'function')
    throw new TypeError('must specify a callback');

  var args = [ 'QUERY', this.path ];

  pushArch(args, this.arch);

  var proc = spawn(getRegExePath(), args, {
        cwd: undefined,
        env: process.env,
        stdio: [ 'ignore', 'pipe', 'pipe' ]
      })
  ,   buffer = ''
  ,   self = this
  ,   error = null // null means no error previously reported.

  var output = captureOutput(proc);

  proc.on('close', function (code) {
    if (error) {
      return;
    } else if (code !== 0) {
      log('process exited with code ' + code);
      cb(mkErrorMsg('QUERY', code, output), null);
    }
  });

  proc.stdout.on('data', function (data) {
    buffer += data.toString();
  });

  proc.stdout.on('end', function () {

    var items = []
    ,   result = []
    ,   lines = buffer.split('\n')

    for (var i = 0, l = lines.length; i < l; i++) {
      var line = lines[i].trim();
      if (line.length > 0) {
        log(line);
        items.push(line);
      }
    }

    for (var i = 0, l = items.length; i < l; i++) {

      var match = PATH_PATTERN.exec(items[i])
      ,   hive
      ,   key

      if (match) {
        hive = match[1];
        key  = match[2];
        if (key && (key !== self.key)) {
          result.push(new Registry({
            host: self.host,
            hive: self.hive,
            key:  key,
            arch: self.arch
          }));
        }
      }
    }

    cb(null, result);

  });

  proc.on('error', function(err) {
    error = err;
    cb(err);
  });

  return this;
};

/**
 * Gets a named value from this registry key.
 * @param {string} name - the value name, use {@link Registry.DEFAULT_VALUE} or an empty string for the default value
 * @param {function (err, item)} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @param {RegistryItem=} cb.item - the retrieved registry item
 * @returns {Registry} this registry key object
 */
Registry.prototype.get = function get (name, cb) {

  if (typeof cb !== 'function')
    throw new TypeError('must specify a callback');

  var args = ['QUERY', this.path];
  if (name == '')
    args.push('/ve');
  else
    args = args.concat(['/v', name]);

  pushArch(args, this.arch);

  var proc = spawn(getRegExePath(), args, {
        cwd: undefined,
        env: process.env,
        stdio: [ 'ignore', 'pipe', 'pipe' ]
      })
  ,   buffer = ''
  ,   self = this
  ,   error = null // null means no error previously reported.

  var output = captureOutput(proc);

  proc.on('close', function (code) {
    if (error) {
      return;
    } else if (code !== 0) {
      log('process exited with code ' + code);
      cb(mkErrorMsg('QUERY', code, output), null);
    } else {
      var items = []
      ,   result = null
      ,   lines = buffer.split('\n')
      ,   lineNumber = 0

      for (var i = 0, l = lines.length; i < l; i++) {
        var line = lines[i].trim();
        if (line.length > 0) {
          log(line);
          if (lineNumber != 0) {
             items.push(line);
          }
          ++lineNumber;
        }
      }

      //Get last item - so it works in XP where REG QUERY returns with a header
      var item = items[items.length-1] || ''
      ,   match = ITEM_PATTERN.exec(item)
      ,   name
      ,   type
      ,   value

      if (match) {
        name = match[1].trim();
        type = match[2].trim();
        value = match[3];
        result = new RegistryItem(self.host, self.hive, self.key, name, type, value, self.arch);
      }

      cb(null, result);
    }
  });

  proc.stdout.on('data', function (data) {
    buffer += data.toString();
  });

  proc.on('error', function(err) {
    error = err;
    cb(err);
  });

  return this;
};

/**
 * Sets a named value in this registry key, overwriting an already existing value.
 * @param {string} name - the value name, use {@link Registry.DEFAULT_VALUE} or an empty string for the default value
 * @param {string} type - the value type
 * @param {string} value - the value
 * @param {function (err)} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @returns {Registry} this registry key object
 */
Registry.prototype.set = function set (name, type, value, cb) {

  if (typeof cb !== 'function')
    throw new TypeError('must specify a callback');

  if (REG_TYPES.indexOf(type) == -1)
    throw Error('illegal type specified.');

  var args = ['ADD', this.path];
  if (name == '')
    args.push('/ve');
  else
    args = args.concat(['/v', name]);

  args = args.concat(['/t', type, '/d', value, '/f']);

  pushArch(args, this.arch);

  var proc = spawn(getRegExePath(), args, {
        cwd: undefined,
        env: process.env,
        stdio: [ 'ignore', 'pipe', 'pipe' ]
      })
  ,   error = null // null means no error previously reported.

  var output = captureOutput(proc);

  proc.on('close', function (code) {
    if(error) {
      return;
    } else if (code !== 0) {
      log('process exited with code ' + code);
      cb(mkErrorMsg('ADD', code, output, null));
    } else {
      cb(null);
    }
  });

  proc.stdout.on('data', function (data) {
    // simply discard output
    log(''+data);
  });

  proc.on('error', function(err) {
    error = err;
    cb(err);
  });

  return this;
};

/**
 * Remove a named value from this registry key. If name is empty, sets the default value of this key.
 * Note: This key must be already existing.
 * @param {string} name - the value name, use {@link Registry.DEFAULT_VALUE} or an empty string for the default value
 * @param {function (err)} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @returns {Registry} this registry key object
 */
Registry.prototype.remove = function remove (name, cb) {

  if (typeof cb !== 'function')
    throw new TypeError('must specify a callback');

  var args = name ? ['DELETE', this.path, '/f', '/v', name] : ['DELETE', this.path, '/f', '/ve'];

  pushArch(args, this.arch);

  var proc = spawn(getRegExePath(), args, {
        cwd: undefined,
        env: process.env,
        stdio: [ 'ignore', 'pipe', 'pipe' ]
      })
  ,   error = null // null means no error previously reported.

  var output = captureOutput(proc);

  proc.on('close', function (code) {
    if(error) {
      return;
    } else if (code !== 0) {
      log('process exited with code ' + code);
      cb(mkErrorMsg('DELETE', code, output), null);
    } else {
      cb(null);
    }
  });

  proc.stdout.on('data', function (data) {
    // simply discard output
    log(''+data);
  });

  proc.on('error', function(err) {
    error = err;
    cb(err);
  });

  return this;
};

/**
 * Remove all subkeys and values (including the default value) from this registry key.
 * @param {function (err)} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @returns {Registry} this registry key object
 */
Registry.prototype.clear = function clear (cb) {

  if (typeof cb !== 'function')
    throw new TypeError('must specify a callback');

  var args = ['DELETE', this.path, '/f', '/va'];

  pushArch(args, this.arch);

  var proc = spawn(getRegExePath(), args, {
        cwd: undefined,
        env: process.env,
        stdio: [ 'ignore', 'pipe', 'pipe' ]
      })
  ,   error = null // null means no error previously reported.

  var output = captureOutput(proc);

  proc.on('close', function (code) {
    if(error) {
      return;
    } else if (code !== 0) {
      log('process exited with code ' + code);
      cb(mkErrorMsg("DELETE", code, output), null);
    } else {
      cb(null);
    }
  });

  proc.stdout.on('data', function (data) {
    // simply discard output
    log(''+data);
  });

  proc.on('error', function(err) {
    error = err;
    cb(err);
  });

  return this;
};

/**
 * Alias for the clear method to keep it backward compatible.
 * @method
 * @deprecated Use {@link Registry#clear} or {@link Registry#destroy} in favour of this method.
 * @param {function (err)} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @returns {Registry} this registry key object
 */
Registry.prototype.erase = Registry.prototype.clear;

/**
 * Delete this key and all subkeys from the registry.
 * @param {function (err)} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @returns {Registry} this registry key object
 */
Registry.prototype.destroy = function destroy (cb) {

  if (typeof cb !== 'function')
    throw new TypeError('must specify a callback');

  var args = ['DELETE', this.path, '/f'];

  pushArch(args, this.arch);

  var proc = spawn(getRegExePath(), args, {
        cwd: undefined,
        env: process.env,
        stdio: [ 'ignore', 'pipe', 'pipe' ]
      })
  ,   error = null // null means no error previously reported.

  var output = captureOutput(proc);

  proc.on('close', function (code) {
    if (error) {
      return;
    } else if (code !== 0) {
      log('process exited with code ' + code);
      cb(mkErrorMsg('DELETE', code, output), null);
    } else {
      cb(null);
    }
  });

  proc.stdout.on('data', function (data) {
    // simply discard output
    log(''+data);
  });

  proc.on('error', function(err) {
    error = err;
    cb(err);
  });

  return this;
};

/**
 * Create this registry key. Note that this is a no-op if the key already exists.
 * @param {function (err)} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @returns {Registry} this registry key object
 */
Registry.prototype.create = function create (cb) {

  if (typeof cb !== 'function')
    throw new TypeError('must specify a callback');

  var args = ['ADD', this.path, '/f'];

  pushArch(args, this.arch);

  var proc = spawn(getRegExePath(), args, {
        cwd: undefined,
        env: process.env,
        stdio: [ 'ignore', 'pipe', 'pipe' ]
      })
  ,   error = null // null means no error previously reported.

  var output = captureOutput(proc);

  proc.on('close', function (code) {
    if (error) {
      return;
    } else if (code !== 0) {
      log('process exited with code ' + code);
      cb(mkErrorMsg('ADD', code, output), null);
    } else {
      cb(null);
    }
  });

  proc.stdout.on('data', function (data) {
    // simply discard output
    log(''+data);
  });

  proc.on('error', function(err) {
    error = err;
    cb(err);
  });

  return this;
};

/**
 * Checks if this key already exists.
 * @param {function (err, exists)} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @param {boolean=} cb.exists - true if a registry key with this name already exists
 * @returns {Registry} this registry key object
 */
Registry.prototype.keyExists = function keyExists (cb) {

  this.values(function (err, items) {
    if (err) {
      // process should return with code 1 if key not found
      if (err.code == 1) {
        return cb(null, false);
      }
      // other error
      return cb(err);
    }
    cb(null, true);
  });

  return this;
};

/**
 * Checks if a value with the given name already exists within this key.
 * @param {string} name - the value name, use {@link Registry.DEFAULT_VALUE} or an empty string for the default value
 * @param {function (err, exists)} cb - callback function
 * @param {ProcessUncleanExitError=} cb.err - error object or null if successful
 * @param {boolean=} cb.exists - true if a value with the given name was found in this key
 * @returns {Registry} this registry key object
 */
Registry.prototype.valueExists = function valueExists (name, cb) {

  this.get(name, function (err, item) {
    if (err) {
      // process should return with code 1 if value not found
      if (err.code == 1) {
        return cb(null, false);
      }
      // other error
      return cb(err);
    }
    cb(null, true);
  });

  return this;
};

module.exports = Registry;


/***/ }),
/* 675 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const decoder_1 = __webpack_require__(676);
const processFactory_1 = __webpack_require__(699);
const pythonExecutionFactory_1 = __webpack_require__(718);
const pythonToolService_1 = __webpack_require__(721);
const types_1 = __webpack_require__(148);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_1.IBufferDecoder, decoder_1.BufferDecoder);
    serviceManager.addSingleton(types_1.IProcessServiceFactory, processFactory_1.ProcessServiceFactory);
    serviceManager.addSingleton(types_1.IPythonExecutionFactory, pythonExecutionFactory_1.PythonExecutionFactory);
    serviceManager.addSingleton(types_1.IPythonToolExecutionService, pythonToolService_1.PythonToolExecutionService);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 676 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const iconv = __importStar(__webpack_require__(677));
const inversify_1 = __webpack_require__(3);
const constants_1 = __webpack_require__(698);
let BufferDecoder = class BufferDecoder {
    decode(buffers, encoding = constants_1.DEFAULT_ENCODING) {
        encoding = iconv.encodingExists(encoding) ? encoding : constants_1.DEFAULT_ENCODING;
        return iconv.decode(Buffer.concat(buffers), encoding);
    }
};
BufferDecoder = __decorate([
    inversify_1.injectable()
], BufferDecoder);
exports.BufferDecoder = BufferDecoder;


/***/ }),
/* 677 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


// Some environments don't have global Buffer (e.g. React Native).
// Solution would be installing npm modules "buffer" and "stream" explicitly.
var Buffer = __webpack_require__(339).Buffer;

var bomHandling = __webpack_require__(678),
    iconv = module.exports;

// All codecs and aliases are kept here, keyed by encoding name/alias.
// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.
iconv.encodings = null;

// Characters emitted in case of error.
iconv.defaultCharUnicode = '�';
iconv.defaultCharSingleByte = '?';

// Public API.
iconv.encode = function encode(str, encoding, options) {
    str = "" + (str || ""); // Ensure string.

    var encoder = iconv.getEncoder(encoding, options);

    var res = encoder.write(str);
    var trail = encoder.end();
    
    return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;
}

iconv.decode = function decode(buf, encoding, options) {
    if (typeof buf === 'string') {
        if (!iconv.skipDecodeWarning) {
            console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');
            iconv.skipDecodeWarning = true;
        }

        buf = Buffer.from("" + (buf || ""), "binary"); // Ensure buffer.
    }

    var decoder = iconv.getDecoder(encoding, options);

    var res = decoder.write(buf);
    var trail = decoder.end();

    return trail ? (res + trail) : res;
}

iconv.encodingExists = function encodingExists(enc) {
    try {
        iconv.getCodec(enc);
        return true;
    } catch (e) {
        return false;
    }
}

// Legacy aliases to convert functions
iconv.toEncoding = iconv.encode;
iconv.fromEncoding = iconv.decode;

// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.
iconv._codecDataCache = {};
iconv.getCodec = function getCodec(encoding) {
    if (!iconv.encodings)
        iconv.encodings = __webpack_require__(679); // Lazy load all encoding definitions.
    
    // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
    var enc = iconv._canonicalizeEncoding(encoding);

    // Traverse iconv.encodings to find actual codec.
    var codecOptions = {};
    while (true) {
        var codec = iconv._codecDataCache[enc];
        if (codec)
            return codec;

        var codecDef = iconv.encodings[enc];

        switch (typeof codecDef) {
            case "string": // Direct alias to other encoding.
                enc = codecDef;
                break;

            case "object": // Alias with options. Can be layered.
                for (var key in codecDef)
                    codecOptions[key] = codecDef[key];

                if (!codecOptions.encodingName)
                    codecOptions.encodingName = enc;
                
                enc = codecDef.type;
                break;

            case "function": // Codec itself.
                if (!codecOptions.encodingName)
                    codecOptions.encodingName = enc;

                // The codec function must load all tables and return object with .encoder and .decoder methods.
                // It'll be called only once (for each different options object).
                codec = new codecDef(codecOptions, iconv);

                iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.
                return codec;

            default:
                throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
        }
    }
}

iconv._canonicalizeEncoding = function(encoding) {
    // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
    return (''+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
}

iconv.getEncoder = function getEncoder(encoding, options) {
    var codec = iconv.getCodec(encoding),
        encoder = new codec.encoder(options, codec);

    if (codec.bomAware && options && options.addBOM)
        encoder = new bomHandling.PrependBOM(encoder, options);

    return encoder;
}

iconv.getDecoder = function getDecoder(encoding, options) {
    var codec = iconv.getCodec(encoding),
        decoder = new codec.decoder(options, codec);

    if (codec.bomAware && !(options && options.stripBOM === false))
        decoder = new bomHandling.StripBOM(decoder, options);

    return decoder;
}


// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json.
var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node;
if (nodeVer) {

    // Load streaming support in Node v0.10+
    var nodeVerArr = nodeVer.split(".").map(Number);
    if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {
        __webpack_require__(696)(iconv);
    }

    // Load Node primitive extensions.
    __webpack_require__(697)(iconv);
}

if (false) {}


/***/ }),
/* 678 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var BOMChar = '\uFEFF';

exports.PrependBOM = PrependBOMWrapper
function PrependBOMWrapper(encoder, options) {
    this.encoder = encoder;
    this.addBOM = true;
}

PrependBOMWrapper.prototype.write = function(str) {
    if (this.addBOM) {
        str = BOMChar + str;
        this.addBOM = false;
    }

    return this.encoder.write(str);
}

PrependBOMWrapper.prototype.end = function() {
    return this.encoder.end();
}


//------------------------------------------------------------------------------

exports.StripBOM = StripBOMWrapper;
function StripBOMWrapper(decoder, options) {
    this.decoder = decoder;
    this.pass = false;
    this.options = options || {};
}

StripBOMWrapper.prototype.write = function(buf) {
    var res = this.decoder.write(buf);
    if (this.pass || !res)
        return res;

    if (res[0] === BOMChar) {
        res = res.slice(1);
        if (typeof this.options.stripBOM === 'function')
            this.options.stripBOM();
    }

    this.pass = true;
    return res;
}

StripBOMWrapper.prototype.end = function() {
    return this.decoder.end();
}



/***/ }),
/* 679 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


// Update this array if you add/rename/remove files in this directory.
// We support Browserify by skipping automatic module discovery and requiring modules directly.
var modules = [
    __webpack_require__(680),
    __webpack_require__(681),
    __webpack_require__(682),
    __webpack_require__(683),
    __webpack_require__(684),
    __webpack_require__(685),
    __webpack_require__(686),
    __webpack_require__(687),
];

// Put all encoding/alias/codec definitions to single object and export it. 
for (var i = 0; i < modules.length; i++) {
    var module = modules[i];
    for (var enc in module)
        if (Object.prototype.hasOwnProperty.call(module, enc))
            exports[enc] = module[enc];
}


/***/ }),
/* 680 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var Buffer = __webpack_require__(339).Buffer;

// Export Node.js internal encodings.

module.exports = {
    // Encodings
    utf8:   { type: "_internal", bomAware: true},
    cesu8:  { type: "_internal", bomAware: true},
    unicode11utf8: "utf8",

    ucs2:   { type: "_internal", bomAware: true},
    utf16le: "ucs2",

    binary: { type: "_internal" },
    base64: { type: "_internal" },
    hex:    { type: "_internal" },

    // Codec.
    _internal: InternalCodec,
};

//------------------------------------------------------------------------------

function InternalCodec(codecOptions, iconv) {
    this.enc = codecOptions.encodingName;
    this.bomAware = codecOptions.bomAware;

    if (this.enc === "base64")
        this.encoder = InternalEncoderBase64;
    else if (this.enc === "cesu8") {
        this.enc = "utf8"; // Use utf8 for decoding.
        this.encoder = InternalEncoderCesu8;

        // Add decoder for versions of Node not supporting CESU-8
        if (Buffer.from('eda0bdedb2a9', 'hex').toString() !== '💩') {
            this.decoder = InternalDecoderCesu8;
            this.defaultCharUnicode = iconv.defaultCharUnicode;
        }
    }
}

InternalCodec.prototype.encoder = InternalEncoder;
InternalCodec.prototype.decoder = InternalDecoder;

//------------------------------------------------------------------------------

// We use node.js internal decoder. Its signature is the same as ours.
var StringDecoder = __webpack_require__(245).StringDecoder;

if (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method.
    StringDecoder.prototype.end = function() {};


function InternalDecoder(options, codec) {
    StringDecoder.call(this, codec.enc);
}

InternalDecoder.prototype = StringDecoder.prototype;


//------------------------------------------------------------------------------
// Encoder is mostly trivial

function InternalEncoder(options, codec) {
    this.enc = codec.enc;
}

InternalEncoder.prototype.write = function(str) {
    return Buffer.from(str, this.enc);
}

InternalEncoder.prototype.end = function() {
}


//------------------------------------------------------------------------------
// Except base64 encoder, which must keep its state.

function InternalEncoderBase64(options, codec) {
    this.prevStr = '';
}

InternalEncoderBase64.prototype.write = function(str) {
    str = this.prevStr + str;
    var completeQuads = str.length - (str.length % 4);
    this.prevStr = str.slice(completeQuads);
    str = str.slice(0, completeQuads);

    return Buffer.from(str, "base64");
}

InternalEncoderBase64.prototype.end = function() {
    return Buffer.from(this.prevStr, "base64");
}


//------------------------------------------------------------------------------
// CESU-8 encoder is also special.

function InternalEncoderCesu8(options, codec) {
}

InternalEncoderCesu8.prototype.write = function(str) {
    var buf = Buffer.alloc(str.length * 3), bufIdx = 0;
    for (var i = 0; i < str.length; i++) {
        var charCode = str.charCodeAt(i);
        // Naive implementation, but it works because CESU-8 is especially easy
        // to convert from UTF-16 (which all JS strings are encoded in).
        if (charCode < 0x80)
            buf[bufIdx++] = charCode;
        else if (charCode < 0x800) {
            buf[bufIdx++] = 0xC0 + (charCode >>> 6);
            buf[bufIdx++] = 0x80 + (charCode & 0x3f);
        }
        else { // charCode will always be < 0x10000 in javascript.
            buf[bufIdx++] = 0xE0 + (charCode >>> 12);
            buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f);
            buf[bufIdx++] = 0x80 + (charCode & 0x3f);
        }
    }
    return buf.slice(0, bufIdx);
}

InternalEncoderCesu8.prototype.end = function() {
}

//------------------------------------------------------------------------------
// CESU-8 decoder is not implemented in Node v4.0+

function InternalDecoderCesu8(options, codec) {
    this.acc = 0;
    this.contBytes = 0;
    this.accBytes = 0;
    this.defaultCharUnicode = codec.defaultCharUnicode;
}

InternalDecoderCesu8.prototype.write = function(buf) {
    var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, 
        res = '';
    for (var i = 0; i < buf.length; i++) {
        var curByte = buf[i];
        if ((curByte & 0xC0) !== 0x80) { // Leading byte
            if (contBytes > 0) { // Previous code is invalid
                res += this.defaultCharUnicode;
                contBytes = 0;
            }

            if (curByte < 0x80) { // Single-byte code
                res += String.fromCharCode(curByte);
            } else if (curByte < 0xE0) { // Two-byte code
                acc = curByte & 0x1F;
                contBytes = 1; accBytes = 1;
            } else if (curByte < 0xF0) { // Three-byte code
                acc = curByte & 0x0F;
                contBytes = 2; accBytes = 1;
            } else { // Four or more are not supported for CESU-8.
                res += this.defaultCharUnicode;
            }
        } else { // Continuation byte
            if (contBytes > 0) { // We're waiting for it.
                acc = (acc << 6) | (curByte & 0x3f);
                contBytes--; accBytes++;
                if (contBytes === 0) {
                    // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)
                    if (accBytes === 2 && acc < 0x80 && acc > 0)
                        res += this.defaultCharUnicode;
                    else if (accBytes === 3 && acc < 0x800)
                        res += this.defaultCharUnicode;
                    else
                        // Actually add character.
                        res += String.fromCharCode(acc);
                }
            } else { // Unexpected continuation byte
                res += this.defaultCharUnicode;
            }
        }
    }
    this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes;
    return res;
}

InternalDecoderCesu8.prototype.end = function() {
    var res = 0;
    if (this.contBytes > 0)
        res += this.defaultCharUnicode;
    return res;
}


/***/ }),
/* 681 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var Buffer = __webpack_require__(339).Buffer;

// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js

// == UTF16-BE codec. ==========================================================

exports.utf16be = Utf16BECodec;
function Utf16BECodec() {
}

Utf16BECodec.prototype.encoder = Utf16BEEncoder;
Utf16BECodec.prototype.decoder = Utf16BEDecoder;
Utf16BECodec.prototype.bomAware = true;


// -- Encoding

function Utf16BEEncoder() {
}

Utf16BEEncoder.prototype.write = function(str) {
    var buf = Buffer.from(str, 'ucs2');
    for (var i = 0; i < buf.length; i += 2) {
        var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;
    }
    return buf;
}

Utf16BEEncoder.prototype.end = function() {
}


// -- Decoding

function Utf16BEDecoder() {
    this.overflowByte = -1;
}

Utf16BEDecoder.prototype.write = function(buf) {
    if (buf.length == 0)
        return '';

    var buf2 = Buffer.alloc(buf.length + 1),
        i = 0, j = 0;

    if (this.overflowByte !== -1) {
        buf2[0] = buf[0];
        buf2[1] = this.overflowByte;
        i = 1; j = 2;
    }

    for (; i < buf.length-1; i += 2, j+= 2) {
        buf2[j] = buf[i+1];
        buf2[j+1] = buf[i];
    }

    this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;

    return buf2.slice(0, j).toString('ucs2');
}

Utf16BEDecoder.prototype.end = function() {
}


// == UTF-16 codec =============================================================
// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.
// Defaults to UTF-16LE, as it's prevalent and default in Node.
// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le
// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});

// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).

exports.utf16 = Utf16Codec;
function Utf16Codec(codecOptions, iconv) {
    this.iconv = iconv;
}

Utf16Codec.prototype.encoder = Utf16Encoder;
Utf16Codec.prototype.decoder = Utf16Decoder;


// -- Encoding (pass-through)

function Utf16Encoder(options, codec) {
    options = options || {};
    if (options.addBOM === undefined)
        options.addBOM = true;
    this.encoder = codec.iconv.getEncoder('utf-16le', options);
}

Utf16Encoder.prototype.write = function(str) {
    return this.encoder.write(str);
}

Utf16Encoder.prototype.end = function() {
    return this.encoder.end();
}


// -- Decoding

function Utf16Decoder(options, codec) {
    this.decoder = null;
    this.initialBytes = [];
    this.initialBytesLen = 0;

    this.options = options || {};
    this.iconv = codec.iconv;
}

Utf16Decoder.prototype.write = function(buf) {
    if (!this.decoder) {
        // Codec is not chosen yet. Accumulate initial bytes.
        this.initialBytes.push(buf);
        this.initialBytesLen += buf.length;
        
        if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below)
            return '';

        // We have enough bytes -> detect endianness.
        var buf = Buffer.concat(this.initialBytes),
            encoding = detectEncoding(buf, this.options.defaultEncoding);
        this.decoder = this.iconv.getDecoder(encoding, this.options);
        this.initialBytes.length = this.initialBytesLen = 0;
    }

    return this.decoder.write(buf);
}

Utf16Decoder.prototype.end = function() {
    if (!this.decoder) {
        var buf = Buffer.concat(this.initialBytes),
            encoding = detectEncoding(buf, this.options.defaultEncoding);
        this.decoder = this.iconv.getDecoder(encoding, this.options);

        var res = this.decoder.write(buf),
            trail = this.decoder.end();

        return trail ? (res + trail) : res;
    }
    return this.decoder.end();
}

function detectEncoding(buf, defaultEncoding) {
    var enc = defaultEncoding || 'utf-16le';

    if (buf.length >= 2) {
        // Check BOM.
        if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM
            enc = 'utf-16be';
        else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM
            enc = 'utf-16le';
        else {
            // No BOM found. Try to deduce encoding from initial content.
            // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.
            // So, we count ASCII as if it was LE or BE, and decide from that.
            var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions
                _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even.

            for (var i = 0; i < _len; i += 2) {
                if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++;
                if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++;
            }

            if (asciiCharsBE > asciiCharsLE)
                enc = 'utf-16be';
            else if (asciiCharsBE < asciiCharsLE)
                enc = 'utf-16le';
        }
    }

    return enc;
}




/***/ }),
/* 682 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var Buffer = __webpack_require__(339).Buffer;

// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152
// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3

exports.utf7 = Utf7Codec;
exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7
function Utf7Codec(codecOptions, iconv) {
    this.iconv = iconv;
};

Utf7Codec.prototype.encoder = Utf7Encoder;
Utf7Codec.prototype.decoder = Utf7Decoder;
Utf7Codec.prototype.bomAware = true;


// -- Encoding

var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;

function Utf7Encoder(options, codec) {
    this.iconv = codec.iconv;
}

Utf7Encoder.prototype.write = function(str) {
    // Naive implementation.
    // Non-direct chars are encoded as "+<base64>-"; single "+" char is encoded as "+-".
    return Buffer.from(str.replace(nonDirectChars, function(chunk) {
        return "+" + (chunk === '+' ? '' : 
            this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, '')) 
            + "-";
    }.bind(this)));
}

Utf7Encoder.prototype.end = function() {
}


// -- Decoding

function Utf7Decoder(options, codec) {
    this.iconv = codec.iconv;
    this.inBase64 = false;
    this.base64Accum = '';
}

var base64Regex = /[A-Za-z0-9\/+]/;
var base64Chars = [];
for (var i = 0; i < 256; i++)
    base64Chars[i] = base64Regex.test(String.fromCharCode(i));

var plusChar = '+'.charCodeAt(0), 
    minusChar = '-'.charCodeAt(0),
    andChar = '&'.charCodeAt(0);

Utf7Decoder.prototype.write = function(buf) {
    var res = "", lastI = 0,
        inBase64 = this.inBase64,
        base64Accum = this.base64Accum;

    // The decoder is more involved as we must handle chunks in stream.

    for (var i = 0; i < buf.length; i++) {
        if (!inBase64) { // We're in direct mode.
            // Write direct chars until '+'
            if (buf[i] == plusChar) {
                res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
                lastI = i+1;
                inBase64 = true;
            }
        } else { // We decode base64.
            if (!base64Chars[buf[i]]) { // Base64 ended.
                if (i == lastI && buf[i] == minusChar) {// "+-" -> "+"
                    res += "+";
                } else {
                    var b64str = base64Accum + buf.slice(lastI, i).toString();
                    res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
                }

                if (buf[i] != minusChar) // Minus is absorbed after base64.
                    i--;

                lastI = i+1;
                inBase64 = false;
                base64Accum = '';
            }
        }
    }

    if (!inBase64) {
        res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
    } else {
        var b64str = base64Accum + buf.slice(lastI).toString();

        var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
        base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
        b64str = b64str.slice(0, canBeDecoded);

        res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
    }

    this.inBase64 = inBase64;
    this.base64Accum = base64Accum;

    return res;
}

Utf7Decoder.prototype.end = function() {
    var res = "";
    if (this.inBase64 && this.base64Accum.length > 0)
        res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");

    this.inBase64 = false;
    this.base64Accum = '';
    return res;
}


// UTF-7-IMAP codec.
// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)
// Differences:
//  * Base64 part is started by "&" instead of "+"
//  * Direct characters are 0x20-0x7E, except "&" (0x26)
//  * In Base64, "," is used instead of "/"
//  * Base64 must not be used to represent direct characters.
//  * No implicit shift back from Base64 (should always end with '-')
//  * String must end in non-shifted position.
//  * "-&" while in base64 is not allowed.


exports.utf7imap = Utf7IMAPCodec;
function Utf7IMAPCodec(codecOptions, iconv) {
    this.iconv = iconv;
};

Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
Utf7IMAPCodec.prototype.bomAware = true;


// -- Encoding

function Utf7IMAPEncoder(options, codec) {
    this.iconv = codec.iconv;
    this.inBase64 = false;
    this.base64Accum = Buffer.alloc(6);
    this.base64AccumIdx = 0;
}

Utf7IMAPEncoder.prototype.write = function(str) {
    var inBase64 = this.inBase64,
        base64Accum = this.base64Accum,
        base64AccumIdx = this.base64AccumIdx,
        buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0;

    for (var i = 0; i < str.length; i++) {
        var uChar = str.charCodeAt(i);
        if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.
            if (inBase64) {
                if (base64AccumIdx > 0) {
                    bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
                    base64AccumIdx = 0;
                }

                buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
                inBase64 = false;
            }

            if (!inBase64) {
                buf[bufIdx++] = uChar; // Write direct character

                if (uChar === andChar)  // Ampersand -> '&-'
                    buf[bufIdx++] = minusChar;
            }

        } else { // Non-direct character
            if (!inBase64) {
                buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.
                inBase64 = true;
            }
            if (inBase64) {
                base64Accum[base64AccumIdx++] = uChar >> 8;
                base64Accum[base64AccumIdx++] = uChar & 0xFF;

                if (base64AccumIdx == base64Accum.length) {
                    bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx);
                    base64AccumIdx = 0;
                }
            }
        }
    }

    this.inBase64 = inBase64;
    this.base64AccumIdx = base64AccumIdx;

    return buf.slice(0, bufIdx);
}

Utf7IMAPEncoder.prototype.end = function() {
    var buf = Buffer.alloc(10), bufIdx = 0;
    if (this.inBase64) {
        if (this.base64AccumIdx > 0) {
            bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
            this.base64AccumIdx = 0;
        }

        buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
        this.inBase64 = false;
    }

    return buf.slice(0, bufIdx);
}


// -- Decoding

function Utf7IMAPDecoder(options, codec) {
    this.iconv = codec.iconv;
    this.inBase64 = false;
    this.base64Accum = '';
}

var base64IMAPChars = base64Chars.slice();
base64IMAPChars[','.charCodeAt(0)] = true;

Utf7IMAPDecoder.prototype.write = function(buf) {
    var res = "", lastI = 0,
        inBase64 = this.inBase64,
        base64Accum = this.base64Accum;

    // The decoder is more involved as we must handle chunks in stream.
    // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).

    for (var i = 0; i < buf.length; i++) {
        if (!inBase64) { // We're in direct mode.
            // Write direct chars until '&'
            if (buf[i] == andChar) {
                res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
                lastI = i+1;
                inBase64 = true;
            }
        } else { // We decode base64.
            if (!base64IMAPChars[buf[i]]) { // Base64 ended.
                if (i == lastI && buf[i] == minusChar) { // "&-" -> "&"
                    res += "&";
                } else {
                    var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/');
                    res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
                }

                if (buf[i] != minusChar) // Minus may be absorbed after base64.
                    i--;

                lastI = i+1;
                inBase64 = false;
                base64Accum = '';
            }
        }
    }

    if (!inBase64) {
        res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
    } else {
        var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/');

        var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
        base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
        b64str = b64str.slice(0, canBeDecoded);

        res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
    }

    this.inBase64 = inBase64;
    this.base64Accum = base64Accum;

    return res;
}

Utf7IMAPDecoder.prototype.end = function() {
    var res = "";
    if (this.inBase64 && this.base64Accum.length > 0)
        res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");

    this.inBase64 = false;
    this.base64Accum = '';
    return res;
}




/***/ }),
/* 683 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var Buffer = __webpack_require__(339).Buffer;

// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that
// correspond to encoded bytes (if 128 - then lower half is ASCII). 

exports._sbcs = SBCSCodec;
function SBCSCodec(codecOptions, iconv) {
    if (!codecOptions)
        throw new Error("SBCS codec is called without the data.")
    
    // Prepare char buffer for decoding.
    if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256))
        throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)");
    
    if (codecOptions.chars.length === 128) {
        var asciiString = "";
        for (var i = 0; i < 128; i++)
            asciiString += String.fromCharCode(i);
        codecOptions.chars = asciiString + codecOptions.chars;
    }

    this.decodeBuf = Buffer.from(codecOptions.chars, 'ucs2');
    
    // Encoding buffer.
    var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));

    for (var i = 0; i < codecOptions.chars.length; i++)
        encodeBuf[codecOptions.chars.charCodeAt(i)] = i;

    this.encodeBuf = encodeBuf;
}

SBCSCodec.prototype.encoder = SBCSEncoder;
SBCSCodec.prototype.decoder = SBCSDecoder;


function SBCSEncoder(options, codec) {
    this.encodeBuf = codec.encodeBuf;
}

SBCSEncoder.prototype.write = function(str) {
    var buf = Buffer.alloc(str.length);
    for (var i = 0; i < str.length; i++)
        buf[i] = this.encodeBuf[str.charCodeAt(i)];
    
    return buf;
}

SBCSEncoder.prototype.end = function() {
}


function SBCSDecoder(options, codec) {
    this.decodeBuf = codec.decodeBuf;
}

SBCSDecoder.prototype.write = function(buf) {
    // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.
    var decodeBuf = this.decodeBuf;
    var newBuf = Buffer.alloc(buf.length*2);
    var idx1 = 0, idx2 = 0;
    for (var i = 0; i < buf.length; i++) {
        idx1 = buf[i]*2; idx2 = i*2;
        newBuf[idx2] = decodeBuf[idx1];
        newBuf[idx2+1] = decodeBuf[idx1+1];
    }
    return newBuf.toString('ucs2');
}

SBCSDecoder.prototype.end = function() {
}


/***/ }),
/* 684 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


// Manually added data to be used by sbcs codec in addition to generated one.

module.exports = {
    // Not supported by iconv, not sure why.
    "10029": "maccenteuro",
    "maccenteuro": {
        "type": "_sbcs",
        "chars": "ÄĀāÉĄÖÜáąČäčĆćéŹźĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņŃ¬√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ"
    },

    "808": "cp808",
    "ibm808": "cp808",
    "cp808": {
        "type": "_sbcs",
        "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ "
    },

    "mik": {
        "type": "_sbcs",
        "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
    },

    // Aliases of generated encodings.
    "ascii8bit": "ascii",
    "usascii": "ascii",
    "ansix34": "ascii",
    "ansix341968": "ascii",
    "ansix341986": "ascii",
    "csascii": "ascii",
    "cp367": "ascii",
    "ibm367": "ascii",
    "isoir6": "ascii",
    "iso646us": "ascii",
    "iso646irv": "ascii",
    "us": "ascii",

    "latin1": "iso88591",
    "latin2": "iso88592",
    "latin3": "iso88593",
    "latin4": "iso88594",
    "latin5": "iso88599",
    "latin6": "iso885910",
    "latin7": "iso885913",
    "latin8": "iso885914",
    "latin9": "iso885915",
    "latin10": "iso885916",

    "csisolatin1": "iso88591",
    "csisolatin2": "iso88592",
    "csisolatin3": "iso88593",
    "csisolatin4": "iso88594",
    "csisolatincyrillic": "iso88595",
    "csisolatinarabic": "iso88596",
    "csisolatingreek" : "iso88597",
    "csisolatinhebrew": "iso88598",
    "csisolatin5": "iso88599",
    "csisolatin6": "iso885910",

    "l1": "iso88591",
    "l2": "iso88592",
    "l3": "iso88593",
    "l4": "iso88594",
    "l5": "iso88599",
    "l6": "iso885910",
    "l7": "iso885913",
    "l8": "iso885914",
    "l9": "iso885915",
    "l10": "iso885916",

    "isoir14": "iso646jp",
    "isoir57": "iso646cn",
    "isoir100": "iso88591",
    "isoir101": "iso88592",
    "isoir109": "iso88593",
    "isoir110": "iso88594",
    "isoir144": "iso88595",
    "isoir127": "iso88596",
    "isoir126": "iso88597",
    "isoir138": "iso88598",
    "isoir148": "iso88599",
    "isoir157": "iso885910",
    "isoir166": "tis620",
    "isoir179": "iso885913",
    "isoir199": "iso885914",
    "isoir203": "iso885915",
    "isoir226": "iso885916",

    "cp819": "iso88591",
    "ibm819": "iso88591",

    "cyrillic": "iso88595",

    "arabic": "iso88596",
    "arabic8": "iso88596",
    "ecma114": "iso88596",
    "asmo708": "iso88596",

    "greek" : "iso88597",
    "greek8" : "iso88597",
    "ecma118" : "iso88597",
    "elot928" : "iso88597",

    "hebrew": "iso88598",
    "hebrew8": "iso88598",

    "turkish": "iso88599",
    "turkish8": "iso88599",

    "thai": "iso885911",
    "thai8": "iso885911",

    "celtic": "iso885914",
    "celtic8": "iso885914",
    "isoceltic": "iso885914",

    "tis6200": "tis620",
    "tis62025291": "tis620",
    "tis62025330": "tis620",

    "10000": "macroman",
    "10006": "macgreek",
    "10007": "maccyrillic",
    "10079": "maciceland",
    "10081": "macturkish",

    "cspc8codepage437": "cp437",
    "cspc775baltic": "cp775",
    "cspc850multilingual": "cp850",
    "cspcp852": "cp852",
    "cspc862latinhebrew": "cp862",
    "cpgr": "cp869",

    "msee": "cp1250",
    "mscyrl": "cp1251",
    "msansi": "cp1252",
    "msgreek": "cp1253",
    "msturk": "cp1254",
    "mshebr": "cp1255",
    "msarab": "cp1256",
    "winbaltrim": "cp1257",

    "cp20866": "koi8r",
    "20866": "koi8r",
    "ibm878": "koi8r",
    "cskoi8r": "koi8r",

    "cp21866": "koi8u",
    "21866": "koi8u",
    "ibm1168": "koi8u",

    "strk10482002": "rk1048",

    "tcvn5712": "tcvn",
    "tcvn57121": "tcvn",

    "gb198880": "iso646cn",
    "cn": "iso646cn",

    "csiso14jisc6220ro": "iso646jp",
    "jisc62201969ro": "iso646jp",
    "jp": "iso646jp",

    "cshproman8": "hproman8",
    "r8": "hproman8",
    "roman8": "hproman8",
    "xroman8": "hproman8",
    "ibm1051": "hproman8",

    "mac": "macintosh",
    "csmacintosh": "macintosh",
};



/***/ }),
/* 685 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script.
module.exports = {
  "437": "cp437",
  "737": "cp737",
  "775": "cp775",
  "850": "cp850",
  "852": "cp852",
  "855": "cp855",
  "856": "cp856",
  "857": "cp857",
  "858": "cp858",
  "860": "cp860",
  "861": "cp861",
  "862": "cp862",
  "863": "cp863",
  "864": "cp864",
  "865": "cp865",
  "866": "cp866",
  "869": "cp869",
  "874": "windows874",
  "922": "cp922",
  "1046": "cp1046",
  "1124": "cp1124",
  "1125": "cp1125",
  "1129": "cp1129",
  "1133": "cp1133",
  "1161": "cp1161",
  "1162": "cp1162",
  "1163": "cp1163",
  "1250": "windows1250",
  "1251": "windows1251",
  "1252": "windows1252",
  "1253": "windows1253",
  "1254": "windows1254",
  "1255": "windows1255",
  "1256": "windows1256",
  "1257": "windows1257",
  "1258": "windows1258",
  "28591": "iso88591",
  "28592": "iso88592",
  "28593": "iso88593",
  "28594": "iso88594",
  "28595": "iso88595",
  "28596": "iso88596",
  "28597": "iso88597",
  "28598": "iso88598",
  "28599": "iso88599",
  "28600": "iso885910",
  "28601": "iso885911",
  "28603": "iso885913",
  "28604": "iso885914",
  "28605": "iso885915",
  "28606": "iso885916",
  "windows874": {
    "type": "_sbcs",
    "chars": "€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
  },
  "win874": "windows874",
  "cp874": "windows874",
  "windows1250": {
    "type": "_sbcs",
    "chars": "€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
  },
  "win1250": "windows1250",
  "cp1250": "windows1250",
  "windows1251": {
    "type": "_sbcs",
    "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
  },
  "win1251": "windows1251",
  "cp1251": "windows1251",
  "windows1252": {
    "type": "_sbcs",
    "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
  },
  "win1252": "windows1252",
  "cp1252": "windows1252",
  "windows1253": {
    "type": "_sbcs",
    "chars": "€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
  },
  "win1253": "windows1253",
  "cp1253": "windows1253",
  "windows1254": {
    "type": "_sbcs",
    "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
  },
  "win1254": "windows1254",
  "cp1254": "windows1254",
  "windows1255": {
    "type": "_sbcs",
    "chars": "€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"
  },
  "win1255": "windows1255",
  "cp1255": "windows1255",
  "windows1256": {
    "type": "_sbcs",
    "chars": "€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے"
  },
  "win1256": "windows1256",
  "cp1256": "windows1256",
  "windows1257": {
    "type": "_sbcs",
    "chars": "€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙"
  },
  "win1257": "windows1257",
  "cp1257": "windows1257",
  "windows1258": {
    "type": "_sbcs",
    "chars": "€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
  },
  "win1258": "windows1258",
  "cp1258": "windows1258",
  "iso88591": {
    "type": "_sbcs",
    "chars": " ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
  },
  "cp28591": "iso88591",
  "iso88592": {
    "type": "_sbcs",
    "chars": " Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
  },
  "cp28592": "iso88592",
  "iso88593": {
    "type": "_sbcs",
    "chars": " Ħ˘£¤�Ĥ§¨İŞĞĴ­�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙"
  },
  "cp28593": "iso88593",
  "iso88594": {
    "type": "_sbcs",
    "chars": " ĄĸŖ¤ĨĻ§¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙"
  },
  "cp28594": "iso88594",
  "iso88595": {
    "type": "_sbcs",
    "chars": " ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ"
  },
  "cp28595": "iso88595",
  "iso88596": {
    "type": "_sbcs",
    "chars": " ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������"
  },
  "cp28596": "iso88596",
  "iso88597": {
    "type": "_sbcs",
    "chars": " ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
  },
  "cp28597": "iso88597",
  "iso88598": {
    "type": "_sbcs",
    "chars": " �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"
  },
  "cp28598": "iso88598",
  "iso88599": {
    "type": "_sbcs",
    "chars": " ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
  },
  "cp28599": "iso88599",
  "iso885910": {
    "type": "_sbcs",
    "chars": " ĄĒĢĪĨĶ§ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ"
  },
  "cp28600": "iso885910",
  "iso885911": {
    "type": "_sbcs",
    "chars": " กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
  },
  "cp28601": "iso885911",
  "iso885913": {
    "type": "_sbcs",
    "chars": " ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’"
  },
  "cp28603": "iso885913",
  "iso885914": {
    "type": "_sbcs",
    "chars": " Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ"
  },
  "cp28604": "iso885914",
  "iso885915": {
    "type": "_sbcs",
    "chars": " ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
  },
  "cp28605": "iso885915",
  "iso885916": {
    "type": "_sbcs",
    "chars": " ĄąŁ€„Š§š©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ"
  },
  "cp28606": "iso885916",
  "cp437": {
    "type": "_sbcs",
    "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
  },
  "ibm437": "cp437",
  "csibm437": "cp437",
  "cp737": {
    "type": "_sbcs",
    "chars": "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ "
  },
  "ibm737": "cp737",
  "csibm737": "cp737",
  "cp775": {
    "type": "_sbcs",
    "chars": "ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ "
  },
  "ibm775": "cp775",
  "csibm775": "cp775",
  "cp850": {
    "type": "_sbcs",
    "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ "
  },
  "ibm850": "cp850",
  "csibm850": "cp850",
  "cp852": {
    "type": "_sbcs",
    "chars": "ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘę¬źČş«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ "
  },
  "ibm852": "cp852",
  "csibm852": "cp852",
  "cp855": {
    "type": "_sbcs",
    "chars": "ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ "
  },
  "ibm855": "cp855",
  "csibm855": "cp855",
  "cp856": {
    "type": "_sbcs",
    "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ "
  },
  "ibm856": "cp856",
  "csibm856": "cp856",
  "cp857": {
    "type": "_sbcs",
    "chars": "ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞğ¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ "
  },
  "ibm857": "cp857",
  "csibm857": "cp857",
  "cp858": {
    "type": "_sbcs",
    "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ "
  },
  "ibm858": "cp858",
  "csibm858": "cp858",
  "cp860": {
    "type": "_sbcs",
    "chars": "ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñÑªº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
  },
  "ibm860": "cp860",
  "csibm860": "cp860",
  "cp861": {
    "type": "_sbcs",
    "chars": "ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
  },
  "ibm861": "cp861",
  "csibm861": "cp861",
  "cp862": {
    "type": "_sbcs",
    "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
  },
  "ibm862": "cp862",
  "csibm862": "cp862",
  "cp863": {
    "type": "_sbcs",
    "chars": "ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
  },
  "ibm863": "cp863",
  "csibm863": "cp863",
  "cp864": {
    "type": "_sbcs",
    "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�"
  },
  "ibm864": "cp864",
  "csibm864": "cp864",
  "cp865": {
    "type": "_sbcs",
    "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñÑªº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
  },
  "ibm865": "cp865",
  "csibm865": "cp865",
  "cp866": {
    "type": "_sbcs",
    "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "
  },
  "ibm866": "cp866",
  "csibm866": "cp866",
  "cp869": {
    "type": "_sbcs",
    "chars": "������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ "
  },
  "ibm869": "cp869",
  "csibm869": "cp869",
  "cp922": {
    "type": "_sbcs",
    "chars": " ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ"
  },
  "ibm922": "cp922",
  "csibm922": "cp922",
  "cp1046": {
    "type": "_sbcs",
    "chars": "ﺈ×÷ﹱ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�"
  },
  "ibm1046": "cp1046",
  "csibm1046": "cp1046",
  "cp1124": {
    "type": "_sbcs",
    "chars": " ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ"
  },
  "ibm1124": "cp1124",
  "csibm1124": "cp1124",
  "cp1125": {
    "type": "_sbcs",
    "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ "
  },
  "ibm1125": "cp1125",
  "csibm1125": "cp1125",
  "cp1129": {
    "type": "_sbcs",
    "chars": " ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
  },
  "ibm1129": "cp1129",
  "csibm1129": "cp1129",
  "cp1133": {
    "type": "_sbcs",
    "chars": " ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�"
  },
  "ibm1133": "cp1133",
  "csibm1133": "cp1133",
  "cp1161": {
    "type": "_sbcs",
    "chars": "��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ "
  },
  "ibm1161": "cp1161",
  "csibm1161": "cp1161",
  "cp1162": {
    "type": "_sbcs",
    "chars": "€…‘’“”•–— กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
  },
  "ibm1162": "cp1162",
  "csibm1162": "cp1162",
  "cp1163": {
    "type": "_sbcs",
    "chars": " ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
  },
  "ibm1163": "cp1163",
  "csibm1163": "cp1163",
  "maccroatian": {
    "type": "_sbcs",
    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ"
  },
  "maccyrillic": {
    "type": "_sbcs",
    "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
  },
  "macgreek": {
    "type": "_sbcs",
    "chars": "Ä¹²É³ÖÜ΅àâä΄¨çéèêë£™îï•½‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"
  },
  "maciceland": {
    "type": "_sbcs",
    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
  },
  "macroman": {
    "type": "_sbcs",
    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
  },
  "macromania": {
    "type": "_sbcs",
    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
  },
  "macthai": {
    "type": "_sbcs",
    "chars": "«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู﻿​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����"
  },
  "macturkish": {
    "type": "_sbcs",
    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"
  },
  "macukraine": {
    "type": "_sbcs",
    "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
  },
  "koi8r": {
    "type": "_sbcs",
    "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
  },
  "koi8u": {
    "type": "_sbcs",
    "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
  },
  "koi8ru": {
    "type": "_sbcs",
    "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
  },
  "koi8t": {
    "type": "_sbcs",
    "chars": "қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
  },
  "armscii8": {
    "type": "_sbcs",
    "chars": " �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�"
  },
  "rk1048": {
    "type": "_sbcs",
    "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
  },
  "tcvn": {
    "type": "_sbcs",
    "chars": "\u0000ÚỤ\u0003ỪỬỮ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010ỨỰỲỶỸÝỴ\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ"
  },
  "georgianacademy": {
    "type": "_sbcs",
    "chars": "‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
  },
  "georgianps": {
    "type": "_sbcs",
    "chars": "‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
  },
  "pt154": {
    "type": "_sbcs",
    "chars": "ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
  },
  "viscii": {
    "type": "_sbcs",
    "chars": "\u0000\u0001Ẳ\u0003\u0004ẴẪ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013Ỷ\u0015\u0016\u0017\u0018Ỹ\u001a\u001b\u001c\u001dỴ\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ"
  },
  "iso646cn": {
    "type": "_sbcs",
    "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"
  },
  "iso646jp": {
    "type": "_sbcs",
    "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"
  },
  "hproman8": {
    "type": "_sbcs",
    "chars": " ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�"
  },
  "macintosh": {
    "type": "_sbcs",
    "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
  },
  "ascii": {
    "type": "_sbcs",
    "chars": "��������������������������������������������������������������������������������������������������������������������������������"
  },
  "tis620": {
    "type": "_sbcs",
    "chars": "���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
  }
}

/***/ }),
/* 686 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var Buffer = __webpack_require__(339).Buffer;

// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.
// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.
// To save memory and loading time, we read table files only when requested.

exports._dbcs = DBCSCodec;

var UNASSIGNED = -1,
    GB18030_CODE = -2,
    SEQ_START  = -10,
    NODE_START = -1000,
    UNASSIGNED_NODE = new Array(0x100),
    DEF_CHAR = -1;

for (var i = 0; i < 0x100; i++)
    UNASSIGNED_NODE[i] = UNASSIGNED;


// Class DBCSCodec reads and initializes mapping tables.
function DBCSCodec(codecOptions, iconv) {
    this.encodingName = codecOptions.encodingName;
    if (!codecOptions)
        throw new Error("DBCS codec is called without the data.")
    if (!codecOptions.table)
        throw new Error("Encoding '" + this.encodingName + "' has no data.");

    // Load tables.
    var mappingTable = codecOptions.table();


    // Decode tables: MBCS -> Unicode.

    // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.
    // Trie root is decodeTables[0].
    // Values: >=  0 -> unicode character code. can be > 0xFFFF
    //         == UNASSIGNED -> unknown/unassigned sequence.
    //         == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.
    //         <= NODE_START -> index of the next node in our trie to process next byte.
    //         <= SEQ_START  -> index of the start of a character code sequence, in decodeTableSeq.
    this.decodeTables = [];
    this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node.

    // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here. 
    this.decodeTableSeq = [];

    // Actual mapping tables consist of chunks. Use them to fill up decode tables.
    for (var i = 0; i < mappingTable.length; i++)
        this._addDecodeChunk(mappingTable[i]);

    this.defaultCharUnicode = iconv.defaultCharUnicode;

    
    // Encode tables: Unicode -> DBCS.

    // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.
    // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.
    // Values: >=  0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).
    //         == UNASSIGNED -> no conversion found. Output a default char.
    //         <= SEQ_START  -> it's an index in encodeTableSeq, see below. The character starts a sequence.
    this.encodeTable = [];
    
    // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of
    // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key
    // means end of sequence (needed when one sequence is a strict subsequence of another).
    // Objects are kept separately from encodeTable to increase performance.
    this.encodeTableSeq = [];

    // Some chars can be decoded, but need not be encoded.
    var skipEncodeChars = {};
    if (codecOptions.encodeSkipVals)
        for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {
            var val = codecOptions.encodeSkipVals[i];
            if (typeof val === 'number')
                skipEncodeChars[val] = true;
            else
                for (var j = val.from; j <= val.to; j++)
                    skipEncodeChars[j] = true;
        }
        
    // Use decode trie to recursively fill out encode tables.
    this._fillEncodeTable(0, 0, skipEncodeChars);

    // Add more encoding pairs when needed.
    if (codecOptions.encodeAdd) {
        for (var uChar in codecOptions.encodeAdd)
            if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
                this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
    }

    this.defCharSB  = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
    if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?'];
    if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);


    // Load & create GB18030 tables when needed.
    if (typeof codecOptions.gb18030 === 'function') {
        this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges.

        // Add GB18030 decode tables.
        var thirdByteNodeIdx = this.decodeTables.length;
        var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0);

        var fourthByteNodeIdx = this.decodeTables.length;
        var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0);

        for (var i = 0x81; i <= 0xFE; i++) {
            var secondByteNodeIdx = NODE_START - this.decodeTables[0][i];
            var secondByteNode = this.decodeTables[secondByteNodeIdx];
            for (var j = 0x30; j <= 0x39; j++)
                secondByteNode[j] = NODE_START - thirdByteNodeIdx;
        }
        for (var i = 0x81; i <= 0xFE; i++)
            thirdByteNode[i] = NODE_START - fourthByteNodeIdx;
        for (var i = 0x30; i <= 0x39; i++)
            fourthByteNode[i] = GB18030_CODE
    }        
}

DBCSCodec.prototype.encoder = DBCSEncoder;
DBCSCodec.prototype.decoder = DBCSDecoder;

// Decoder helpers
DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
    var bytes = [];
    for (; addr > 0; addr >>= 8)
        bytes.push(addr & 0xFF);
    if (bytes.length == 0)
        bytes.push(0);

    var node = this.decodeTables[0];
    for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie.
        var val = node[bytes[i]];

        if (val == UNASSIGNED) { // Create new node.
            node[bytes[i]] = NODE_START - this.decodeTables.length;
            this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
        }
        else if (val <= NODE_START) { // Existing node.
            node = this.decodeTables[NODE_START - val];
        }
        else
            throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
    }
    return node;
}


DBCSCodec.prototype._addDecodeChunk = function(chunk) {
    // First element of chunk is the hex mbcs code where we start.
    var curAddr = parseInt(chunk[0], 16);

    // Choose the decoding node where we'll write our chars.
    var writeTable = this._getDecodeTrieNode(curAddr);
    curAddr = curAddr & 0xFF;

    // Write all other elements of the chunk to the table.
    for (var k = 1; k < chunk.length; k++) {
        var part = chunk[k];
        if (typeof part === "string") { // String, write as-is.
            for (var l = 0; l < part.length;) {
                var code = part.charCodeAt(l++);
                if (0xD800 <= code && code < 0xDC00) { // Decode surrogate
                    var codeTrail = part.charCodeAt(l++);
                    if (0xDC00 <= codeTrail && codeTrail < 0xE000)
                        writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00);
                    else
                        throw new Error("Incorrect surrogate pair in "  + this.encodingName + " at chunk " + chunk[0]);
                }
                else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used)
                    var len = 0xFFF - code + 2;
                    var seq = [];
                    for (var m = 0; m < len; m++)
                        seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq.

                    writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
                    this.decodeTableSeq.push(seq);
                }
                else
                    writeTable[curAddr++] = code; // Basic char
            }
        } 
        else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character.
            var charCode = writeTable[curAddr - 1] + 1;
            for (var l = 0; l < part; l++)
                writeTable[curAddr++] = charCode++;
        }
        else
            throw new Error("Incorrect type '" + typeof part + "' given in "  + this.encodingName + " at chunk " + chunk[0]);
    }
    if (curAddr > 0xFF)
        throw new Error("Incorrect chunk in "  + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
}

// Encoder helpers
DBCSCodec.prototype._getEncodeBucket = function(uCode) {
    var high = uCode >> 8; // This could be > 0xFF because of astral characters.
    if (this.encodeTable[high] === undefined)
        this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand.
    return this.encodeTable[high];
}

DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
    var bucket = this._getEncodeBucket(uCode);
    var low = uCode & 0xFF;
    if (bucket[low] <= SEQ_START)
        this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it.
    else if (bucket[low] == UNASSIGNED)
        bucket[low] = dbcsCode;
}

DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
    
    // Get the root of character tree according to first character of the sequence.
    var uCode = seq[0];
    var bucket = this._getEncodeBucket(uCode);
    var low = uCode & 0xFF;

    var node;
    if (bucket[low] <= SEQ_START) {
        // There's already a sequence with  - use it.
        node = this.encodeTableSeq[SEQ_START-bucket[low]];
    }
    else {
        // There was no sequence object - allocate a new one.
        node = {};
        if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence.
        bucket[low] = SEQ_START - this.encodeTableSeq.length;
        this.encodeTableSeq.push(node);
    }

    // Traverse the character tree, allocating new nodes as needed.
    for (var j = 1; j < seq.length-1; j++) {
        var oldVal = node[uCode];
        if (typeof oldVal === 'object')
            node = oldVal;
        else {
            node = node[uCode] = {}
            if (oldVal !== undefined)
                node[DEF_CHAR] = oldVal
        }
    }

    // Set the leaf to given dbcsCode.
    uCode = seq[seq.length-1];
    node[uCode] = dbcsCode;
}

DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
    var node = this.decodeTables[nodeIdx];
    for (var i = 0; i < 0x100; i++) {
        var uCode = node[i];
        var mbCode = prefix + i;
        if (skipEncodeChars[mbCode])
            continue;

        if (uCode >= 0)
            this._setEncodeChar(uCode, mbCode);
        else if (uCode <= NODE_START)
            this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars);
        else if (uCode <= SEQ_START)
            this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
    }
}



// == Encoder ==================================================================

function DBCSEncoder(options, codec) {
    // Encoder state
    this.leadSurrogate = -1;
    this.seqObj = undefined;
    
    // Static data
    this.encodeTable = codec.encodeTable;
    this.encodeTableSeq = codec.encodeTableSeq;
    this.defaultCharSingleByte = codec.defCharSB;
    this.gb18030 = codec.gb18030;
}

DBCSEncoder.prototype.write = function(str) {
    var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3)),
        leadSurrogate = this.leadSurrogate,
        seqObj = this.seqObj, nextChar = -1,
        i = 0, j = 0;

    while (true) {
        // 0. Get next character.
        if (nextChar === -1) {
            if (i == str.length) break;
            var uCode = str.charCodeAt(i++);
        }
        else {
            var uCode = nextChar;
            nextChar = -1;    
        }

        // 1. Handle surrogates.
        if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates.
            if (uCode < 0xDC00) { // We've got lead surrogate.
                if (leadSurrogate === -1) {
                    leadSurrogate = uCode;
                    continue;
                } else {
                    leadSurrogate = uCode;
                    // Double lead surrogate found.
                    uCode = UNASSIGNED;
                }
            } else { // We've got trail surrogate.
                if (leadSurrogate !== -1) {
                    uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00);
                    leadSurrogate = -1;
                } else {
                    // Incomplete surrogate pair - only trail surrogate found.
                    uCode = UNASSIGNED;
                }
                
            }
        }
        else if (leadSurrogate !== -1) {
            // Incomplete surrogate pair - only lead surrogate found.
            nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char.
            leadSurrogate = -1;
        }

        // 2. Convert uCode character.
        var dbcsCode = UNASSIGNED;
        if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence
            var resCode = seqObj[uCode];
            if (typeof resCode === 'object') { // Sequence continues.
                seqObj = resCode;
                continue;

            } else if (typeof resCode == 'number') { // Sequence finished. Write it.
                dbcsCode = resCode;

            } else if (resCode == undefined) { // Current character is not part of the sequence.

                // Try default character for this sequence
                resCode = seqObj[DEF_CHAR];
                if (resCode !== undefined) {
                    dbcsCode = resCode; // Found. Write it.
                    nextChar = uCode; // Current character will be written too in the next iteration.

                } else {
                    // TODO: What if we have no default? (resCode == undefined)
                    // Then, we should write first char of the sequence as-is and try the rest recursively.
                    // Didn't do it for now because no encoding has this situation yet.
                    // Currently, just skip the sequence and write current char.
                }
            }
            seqObj = undefined;
        }
        else if (uCode >= 0) {  // Regular character
            var subtable = this.encodeTable[uCode >> 8];
            if (subtable !== undefined)
                dbcsCode = subtable[uCode & 0xFF];
            
            if (dbcsCode <= SEQ_START) { // Sequence start
                seqObj = this.encodeTableSeq[SEQ_START-dbcsCode];
                continue;
            }

            if (dbcsCode == UNASSIGNED && this.gb18030) {
                // Use GB18030 algorithm to find character(s) to write.
                var idx = findIdx(this.gb18030.uChars, uCode);
                if (idx != -1) {
                    var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
                    newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600;
                    newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260;
                    newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10;
                    newBuf[j++] = 0x30 + dbcsCode;
                    continue;
                }
            }
        }

        // 3. Write dbcsCode character.
        if (dbcsCode === UNASSIGNED)
            dbcsCode = this.defaultCharSingleByte;
        
        if (dbcsCode < 0x100) {
            newBuf[j++] = dbcsCode;
        }
        else if (dbcsCode < 0x10000) {
            newBuf[j++] = dbcsCode >> 8;   // high byte
            newBuf[j++] = dbcsCode & 0xFF; // low byte
        }
        else {
            newBuf[j++] = dbcsCode >> 16;
            newBuf[j++] = (dbcsCode >> 8) & 0xFF;
            newBuf[j++] = dbcsCode & 0xFF;
        }
    }

    this.seqObj = seqObj;
    this.leadSurrogate = leadSurrogate;
    return newBuf.slice(0, j);
}

DBCSEncoder.prototype.end = function() {
    if (this.leadSurrogate === -1 && this.seqObj === undefined)
        return; // All clean. Most often case.

    var newBuf = Buffer.alloc(10), j = 0;

    if (this.seqObj) { // We're in the sequence.
        var dbcsCode = this.seqObj[DEF_CHAR];
        if (dbcsCode !== undefined) { // Write beginning of the sequence.
            if (dbcsCode < 0x100) {
                newBuf[j++] = dbcsCode;
            }
            else {
                newBuf[j++] = dbcsCode >> 8;   // high byte
                newBuf[j++] = dbcsCode & 0xFF; // low byte
            }
        } else {
            // See todo above.
        }
        this.seqObj = undefined;
    }

    if (this.leadSurrogate !== -1) {
        // Incomplete surrogate pair - only lead surrogate found.
        newBuf[j++] = this.defaultCharSingleByte;
        this.leadSurrogate = -1;
    }
    
    return newBuf.slice(0, j);
}

// Export for testing
DBCSEncoder.prototype.findIdx = findIdx;


// == Decoder ==================================================================

function DBCSDecoder(options, codec) {
    // Decoder state
    this.nodeIdx = 0;
    this.prevBuf = Buffer.alloc(0);

    // Static data
    this.decodeTables = codec.decodeTables;
    this.decodeTableSeq = codec.decodeTableSeq;
    this.defaultCharUnicode = codec.defaultCharUnicode;
    this.gb18030 = codec.gb18030;
}

DBCSDecoder.prototype.write = function(buf) {
    var newBuf = Buffer.alloc(buf.length*2),
        nodeIdx = this.nodeIdx, 
        prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length,
        seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence.
        uCode;

    if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later.
        prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]);
    
    for (var i = 0, j = 0; i < buf.length; i++) {
        var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset];

        // Lookup in current trie node.
        var uCode = this.decodeTables[nodeIdx][curByte];

        if (uCode >= 0) { 
            // Normal character, just use it.
        }
        else if (uCode === UNASSIGNED) { // Unknown char.
            // TODO: Callback with seq.
            //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
            i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle).
            uCode = this.defaultCharUnicode.charCodeAt(0);
        }
        else if (uCode === GB18030_CODE) {
            var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
            var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30);
            var idx = findIdx(this.gb18030.gbChars, ptr);
            uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
        }
        else if (uCode <= NODE_START) { // Go to next trie node.
            nodeIdx = NODE_START - uCode;
            continue;
        }
        else if (uCode <= SEQ_START) { // Output a sequence of chars.
            var seq = this.decodeTableSeq[SEQ_START - uCode];
            for (var k = 0; k < seq.length - 1; k++) {
                uCode = seq[k];
                newBuf[j++] = uCode & 0xFF;
                newBuf[j++] = uCode >> 8;
            }
            uCode = seq[seq.length-1];
        }
        else
            throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);

        // Write the character to buffer, handling higher planes using surrogate pair.
        if (uCode > 0xFFFF) { 
            uCode -= 0x10000;
            var uCodeLead = 0xD800 + Math.floor(uCode / 0x400);
            newBuf[j++] = uCodeLead & 0xFF;
            newBuf[j++] = uCodeLead >> 8;

            uCode = 0xDC00 + uCode % 0x400;
        }
        newBuf[j++] = uCode & 0xFF;
        newBuf[j++] = uCode >> 8;

        // Reset trie node.
        nodeIdx = 0; seqStart = i+1;
    }

    this.nodeIdx = nodeIdx;
    this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset);
    return newBuf.slice(0, j).toString('ucs2');
}

DBCSDecoder.prototype.end = function() {
    var ret = '';

    // Try to parse all remaining chars.
    while (this.prevBuf.length > 0) {
        // Skip 1 character in the buffer.
        ret += this.defaultCharUnicode;
        var buf = this.prevBuf.slice(1);

        // Parse remaining as usual.
        this.prevBuf = Buffer.alloc(0);
        this.nodeIdx = 0;
        if (buf.length > 0)
            ret += this.write(buf);
    }

    this.nodeIdx = 0;
    return ret;
}

// Binary search for GB18030. Returns largest i such that table[i] <= val.
function findIdx(table, val) {
    if (table[0] > val)
        return -1;

    var l = 0, r = table.length;
    while (l < r-1) { // always table[l] <= val < table[r]
        var mid = l + Math.floor((r-l+1)/2);
        if (table[mid] <= val)
            l = mid;
        else
            r = mid;
    }
    return l;
}



/***/ }),
/* 687 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


// Description of supported double byte encodings and aliases.
// Tables are not require()-d until they are needed to speed up library load.
// require()-s are direct to support Browserify.

module.exports = {
    
    // == Japanese/ShiftJIS ====================================================
    // All japanese encodings are based on JIS X set of standards:
    // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
    // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. 
    //              Has several variations in 1978, 1983, 1990 and 1997.
    // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
    // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
    //              2 planes, first is superset of 0208, second - revised 0212.
    //              Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)

    // Byte encodings are:
    //  * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
    //               encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
    //               Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
    //  * EUC-JP:    Up to 3 bytes per character. Used mostly on *nixes.
    //               0x00-0x7F       - lower part of 0201
    //               0x8E, 0xA1-0xDF - upper part of 0201
    //               (0xA1-0xFE)x2   - 0208 plane (94x94).
    //               0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
    //  * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
    //               Used as-is in ISO2022 family.
    //  * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, 
    //                0201-1976 Roman, 0208-1978, 0208-1983.
    //  * ISO2022-JP-1: Adds esc seq for 0212-1990.
    //  * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
    //  * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
    //  * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
    //
    // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
    //
    // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html

    'shiftjis': {
        type: '_dbcs',
        table: function() { return __webpack_require__(688) },
        encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E},
        encodeSkipVals: [{from: 0xED40, to: 0xF940}],
    },
    'csshiftjis': 'shiftjis',
    'mskanji': 'shiftjis',
    'sjis': 'shiftjis',
    'windows31j': 'shiftjis',
    'ms31j': 'shiftjis',
    'xsjis': 'shiftjis',
    'windows932': 'shiftjis',
    'ms932': 'shiftjis',
    '932': 'shiftjis',
    'cp932': 'shiftjis',

    'eucjp': {
        type: '_dbcs',
        table: function() { return __webpack_require__(689) },
        encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E},
    },

    // TODO: KDDI extension to Shift_JIS
    // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
    // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.


    // == Chinese/GBK ==========================================================
    // http://en.wikipedia.org/wiki/GBK
    // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder

    // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
    'gb2312': 'cp936',
    'gb231280': 'cp936',
    'gb23121980': 'cp936',
    'csgb2312': 'cp936',
    'csiso58gb231280': 'cp936',
    'euccn': 'cp936',

    // Microsoft's CP936 is a subset and approximation of GBK.
    'windows936': 'cp936',
    'ms936': 'cp936',
    '936': 'cp936',
    'cp936': {
        type: '_dbcs',
        table: function() { return __webpack_require__(690) },
    },

    // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
    'gbk': {
        type: '_dbcs',
        table: function() { return __webpack_require__(690).concat(__webpack_require__(691)) },
    },
    'xgbk': 'gbk',
    'isoir58': 'gbk',

    // GB18030 is an algorithmic extension of GBK.
    // Main source: https://www.w3.org/TR/encoding/#gbk-encoder
    // http://icu-project.org/docs/papers/gb18030.html
    // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
    // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
    'gb18030': {
        type: '_dbcs',
        table: function() { return __webpack_require__(690).concat(__webpack_require__(691)) },
        gb18030: function() { return __webpack_require__(692) },
        encodeSkipVals: [0x80],
        encodeAdd: {'€': 0xA2E3},
    },

    'chinese': 'gb18030',


    // == Korean ===============================================================
    // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
    'windows949': 'cp949',
    'ms949': 'cp949',
    '949': 'cp949',
    'cp949': {
        type: '_dbcs',
        table: function() { return __webpack_require__(693) },
    },

    'cseuckr': 'cp949',
    'csksc56011987': 'cp949',
    'euckr': 'cp949',
    'isoir149': 'cp949',
    'korean': 'cp949',
    'ksc56011987': 'cp949',
    'ksc56011989': 'cp949',
    'ksc5601': 'cp949',


    // == Big5/Taiwan/Hong Kong ================================================
    // There are lots of tables for Big5 and cp950. Please see the following links for history:
    // http://moztw.org/docs/big5/  http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
    // Variations, in roughly number of defined chars:
    //  * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
    //  * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
    //  * Big5-2003 (Taiwan standard) almost superset of cp950.
    //  * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
    //  * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. 
    //    many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
    //    Plus, it has 4 combining sequences.
    //    Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
    //    because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
    //    Implementations are not consistent within browsers; sometimes labeled as just big5.
    //    MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
    //    Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
    //    In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
    //    Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
    //                   http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
    // 
    // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
    // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.

    'windows950': 'cp950',
    'ms950': 'cp950',
    '950': 'cp950',
    'cp950': {
        type: '_dbcs',
        table: function() { return __webpack_require__(694) },
    },

    // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
    'big5': 'big5hkscs',
    'big5hkscs': {
        type: '_dbcs',
        table: function() { return __webpack_require__(694).concat(__webpack_require__(695)) },
        encodeSkipVals: [0xa2cc],
    },

    'cnbig5': 'big5hkscs',
    'csbig5': 'big5hkscs',
    'xxbig5': 'big5hkscs',
};


/***/ }),
/* 688 */
/***/ (function(module) {

module.exports = JSON.parse("[[\"0\",\"\\u0000\",128],[\"a1\",\"｡\",62],[\"8140\",\"　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈\",9,\"＋－±×\"],[\"8180\",\"÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓\"],[\"81b8\",\"∈∋⊆⊇⊂⊃∪∩\"],[\"81c8\",\"∧∨￢⇒⇔∀∃\"],[\"81da\",\"∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬\"],[\"81f0\",\"Å‰♯♭♪†‡¶\"],[\"81fc\",\"◯\"],[\"824f\",\"０\",9],[\"8260\",\"Ａ\",25],[\"8281\",\"ａ\",25],[\"829f\",\"ぁ\",82],[\"8340\",\"ァ\",62],[\"8380\",\"ム\",22],[\"839f\",\"Α\",16,\"Σ\",6],[\"83bf\",\"α\",16,\"σ\",6],[\"8440\",\"А\",5,\"ЁЖ\",25],[\"8470\",\"а\",5,\"ёж\",7],[\"8480\",\"о\",17],[\"849f\",\"─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂\"],[\"8740\",\"①\",19,\"Ⅰ\",9],[\"875f\",\"㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡\"],[\"877e\",\"㍻\"],[\"8780\",\"〝〟№㏍℡㊤\",4,\"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪\"],[\"889f\",\"亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭\"],[\"8940\",\"院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円\"],[\"8980\",\"園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改\"],[\"8a40\",\"魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫\"],[\"8a80\",\"橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄\"],[\"8b40\",\"機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救\"],[\"8b80\",\"朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈\"],[\"8c40\",\"掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨\"],[\"8c80\",\"劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向\"],[\"8d40\",\"后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降\"],[\"8d80\",\"項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷\"],[\"8e40\",\"察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止\"],[\"8e80\",\"死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周\"],[\"8f40\",\"宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳\"],[\"8f80\",\"準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾\"],[\"9040\",\"拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨\"],[\"9080\",\"逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線\"],[\"9140\",\"繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻\"],[\"9180\",\"操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只\"],[\"9240\",\"叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄\"],[\"9280\",\"逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓\"],[\"9340\",\"邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬\"],[\"9380\",\"凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入\"],[\"9440\",\"如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅\"],[\"9480\",\"楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美\"],[\"9540\",\"鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷\"],[\"9580\",\"斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋\"],[\"9640\",\"法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆\"],[\"9680\",\"摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒\"],[\"9740\",\"諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲\"],[\"9780\",\"沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯\"],[\"9840\",\"蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕\"],[\"989f\",\"弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲\"],[\"9940\",\"僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭\"],[\"9980\",\"凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨\"],[\"9a40\",\"咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸\"],[\"9a80\",\"噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩\"],[\"9b40\",\"奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀\"],[\"9b80\",\"它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏\"],[\"9c40\",\"廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠\"],[\"9c80\",\"怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛\"],[\"9d40\",\"戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫\"],[\"9d80\",\"捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼\"],[\"9e40\",\"曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎\"],[\"9e80\",\"梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣\"],[\"9f40\",\"檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯\"],[\"9f80\",\"麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌\"],[\"e040\",\"漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝\"],[\"e080\",\"烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱\"],[\"e140\",\"瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿\"],[\"e180\",\"痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬\"],[\"e240\",\"磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰\"],[\"e280\",\"窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆\"],[\"e340\",\"紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷\"],[\"e380\",\"縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋\"],[\"e440\",\"隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤\"],[\"e480\",\"艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈\"],[\"e540\",\"蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬\"],[\"e580\",\"蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞\"],[\"e640\",\"襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧\"],[\"e680\",\"諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊\"],[\"e740\",\"蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜\"],[\"e780\",\"轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮\"],[\"e840\",\"錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙\"],[\"e880\",\"閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰\"],[\"e940\",\"顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃\"],[\"e980\",\"騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈\"],[\"ea40\",\"鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯\"],[\"ea80\",\"黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙\"],[\"ed40\",\"纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏\"],[\"ed80\",\"塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱\"],[\"ee40\",\"犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙\"],[\"ee80\",\"蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑\"],[\"eeef\",\"ⅰ\",9,\"￢￤＇＂\"],[\"f040\",\"\",62],[\"f080\",\"\",124],[\"f140\",\"\",62],[\"f180\",\"\",124],[\"f240\",\"\",62],[\"f280\",\"\",124],[\"f340\",\"\",62],[\"f380\",\"\",124],[\"f440\",\"\",62],[\"f480\",\"\",124],[\"f540\",\"\",62],[\"f580\",\"\",124],[\"f640\",\"\",62],[\"f680\",\"\",124],[\"f740\",\"\",62],[\"f780\",\"\",124],[\"f840\",\"\",62],[\"f880\",\"\",124],[\"f940\",\"\"],[\"fa40\",\"ⅰ\",9,\"Ⅰ\",9,\"￢￤＇＂㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊\"],[\"fa80\",\"兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯\"],[\"fb40\",\"涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神\"],[\"fb80\",\"祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙\"],[\"fc40\",\"髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑\"]]");

/***/ }),
/* 689 */
/***/ (function(module) {

module.exports = JSON.parse("[[\"0\",\"\\u0000\",127],[\"8ea1\",\"｡\",62],[\"a1a1\",\"　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈\",9,\"＋－±×÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇\"],[\"a2a1\",\"◆□■△▲▽▼※〒→←↑↓〓\"],[\"a2ba\",\"∈∋⊆⊇⊂⊃∪∩\"],[\"a2ca\",\"∧∨￢⇒⇔∀∃\"],[\"a2dc\",\"∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬\"],[\"a2f2\",\"Å‰♯♭♪†‡¶\"],[\"a2fe\",\"◯\"],[\"a3b0\",\"０\",9],[\"a3c1\",\"Ａ\",25],[\"a3e1\",\"ａ\",25],[\"a4a1\",\"ぁ\",82],[\"a5a1\",\"ァ\",85],[\"a6a1\",\"Α\",16,\"Σ\",6],[\"a6c1\",\"α\",16,\"σ\",6],[\"a7a1\",\"А\",5,\"ЁЖ\",25],[\"a7d1\",\"а\",5,\"ёж\",25],[\"a8a1\",\"─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂\"],[\"ada1\",\"①\",19,\"Ⅰ\",9],[\"adc0\",\"㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡\"],[\"addf\",\"㍻〝〟№㏍℡㊤\",4,\"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪\"],[\"b0a1\",\"亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭\"],[\"b1a1\",\"院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応\"],[\"b2a1\",\"押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改\"],[\"b3a1\",\"魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱\"],[\"b4a1\",\"粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄\"],[\"b5a1\",\"機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京\"],[\"b6a1\",\"供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈\"],[\"b7a1\",\"掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲\"],[\"b8a1\",\"検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向\"],[\"b9a1\",\"后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込\"],[\"baa1\",\"此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷\"],[\"bba1\",\"察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時\"],[\"bca1\",\"次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周\"],[\"bda1\",\"宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償\"],[\"bea1\",\"勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾\"],[\"bfa1\",\"拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾\"],[\"c0a1\",\"澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線\"],[\"c1a1\",\"繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎\"],[\"c2a1\",\"臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只\"],[\"c3a1\",\"叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵\"],[\"c4a1\",\"帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓\"],[\"c5a1\",\"邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到\"],[\"c6a1\",\"董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入\"],[\"c7a1\",\"如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦\"],[\"c8a1\",\"函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美\"],[\"c9a1\",\"鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服\"],[\"caa1\",\"福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋\"],[\"cba1\",\"法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満\"],[\"cca1\",\"漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒\"],[\"cda1\",\"諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃\"],[\"cea1\",\"痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯\"],[\"cfa1\",\"蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕\"],[\"d0a1\",\"弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲\"],[\"d1a1\",\"僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨\"],[\"d2a1\",\"辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨\"],[\"d3a1\",\"咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉\"],[\"d4a1\",\"圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩\"],[\"d5a1\",\"奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓\"],[\"d6a1\",\"屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏\"],[\"d7a1\",\"廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚\"],[\"d8a1\",\"悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛\"],[\"d9a1\",\"戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼\"],[\"daa1\",\"據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼\"],[\"dba1\",\"曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍\"],[\"dca1\",\"棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣\"],[\"dda1\",\"檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾\"],[\"dea1\",\"沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌\"],[\"dfa1\",\"漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼\"],[\"e0a1\",\"燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱\"],[\"e1a1\",\"瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰\"],[\"e2a1\",\"癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬\"],[\"e3a1\",\"磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐\"],[\"e4a1\",\"筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆\"],[\"e5a1\",\"紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺\"],[\"e6a1\",\"罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋\"],[\"e7a1\",\"隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙\"],[\"e8a1\",\"茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈\"],[\"e9a1\",\"蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙\"],[\"eaa1\",\"蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞\"],[\"eba1\",\"襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫\"],[\"eca1\",\"譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊\"],[\"eda1\",\"蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸\"],[\"eea1\",\"遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮\"],[\"efa1\",\"錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞\"],[\"f0a1\",\"陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰\"],[\"f1a1\",\"顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷\"],[\"f2a1\",\"髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈\"],[\"f3a1\",\"鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠\"],[\"f4a1\",\"堯槇遙瑤凜熙\"],[\"f9a1\",\"纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德\"],[\"faa1\",\"忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱\"],[\"fba1\",\"犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚\"],[\"fca1\",\"釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑\"],[\"fcf1\",\"ⅰ\",9,\"￢￤＇＂\"],[\"8fa2af\",\"˘ˇ¸˙˝¯˛˚～΄΅\"],[\"8fa2c2\",\"¡¦¿\"],[\"8fa2eb\",\"ºª©®™¤№\"],[\"8fa6e1\",\"ΆΈΉΊΪ\"],[\"8fa6e7\",\"Ό\"],[\"8fa6e9\",\"ΎΫ\"],[\"8fa6ec\",\"Ώ\"],[\"8fa6f1\",\"άέήίϊΐόςύϋΰώ\"],[\"8fa7c2\",\"Ђ\",10,\"ЎЏ\"],[\"8fa7f2\",\"ђ\",10,\"ўџ\"],[\"8fa9a1\",\"ÆĐ\"],[\"8fa9a4\",\"Ħ\"],[\"8fa9a6\",\"Ĳ\"],[\"8fa9a8\",\"ŁĿ\"],[\"8fa9ab\",\"ŊØŒ\"],[\"8fa9af\",\"ŦÞ\"],[\"8fa9c1\",\"æđðħıĳĸłŀŉŋøœßŧþ\"],[\"8faaa1\",\"ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ\"],[\"8faaba\",\"ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ\"],[\"8faba1\",\"áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ\"],[\"8fabbd\",\"ġĥíìïîǐ\"],[\"8fabc5\",\"īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż\"],[\"8fb0a1\",\"丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄\"],[\"8fb1a1\",\"侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐\"],[\"8fb2a1\",\"傒傓傔傖傛傜傞\",4,\"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂\"],[\"8fb3a1\",\"凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋\"],[\"8fb4a1\",\"匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿\"],[\"8fb5a1\",\"咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒\"],[\"8fb6a1\",\"嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍\",5,\"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤\",4,\"囱囫园\"],[\"8fb7a1\",\"囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭\",4,\"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡\"],[\"8fb8a1\",\"堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭\"],[\"8fb9a1\",\"奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿\"],[\"8fbaa1\",\"嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖\",4,\"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩\"],[\"8fbba1\",\"屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤\"],[\"8fbca1\",\"巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪\",4,\"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧\"],[\"8fbda1\",\"彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐\",4,\"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷\"],[\"8fbea1\",\"悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐\",4,\"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥\"],[\"8fbfa1\",\"懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵\"],[\"8fc0a1\",\"捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿\"],[\"8fc1a1\",\"擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝\"],[\"8fc2a1\",\"昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝\"],[\"8fc3a1\",\"杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮\",4,\"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏\"],[\"8fc4a1\",\"棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲\"],[\"8fc5a1\",\"樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽\"],[\"8fc6a1\",\"歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖\"],[\"8fc7a1\",\"泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞\"],[\"8fc8a1\",\"湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊\"],[\"8fc9a1\",\"濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔\",4,\"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃\",4,\"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠\"],[\"8fcaa1\",\"煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻\"],[\"8fcba1\",\"狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽\"],[\"8fcca1\",\"珿琀琁琄琇琊琑琚琛琤琦琨\",9,\"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆\"],[\"8fcda1\",\"甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹\",5,\"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹\"],[\"8fcea1\",\"瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢\",6,\"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢\"],[\"8fcfa1\",\"睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳\"],[\"8fd0a1\",\"碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞\"],[\"8fd1a1\",\"秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰\"],[\"8fd2a1\",\"笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙\",5],[\"8fd3a1\",\"籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝\"],[\"8fd4a1\",\"綞綦綧綪綳綶綷綹緂\",4,\"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭\"],[\"8fd5a1\",\"罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮\"],[\"8fd6a1\",\"胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆\"],[\"8fd7a1\",\"艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸\"],[\"8fd8a1\",\"荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓\"],[\"8fd9a1\",\"蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏\",4,\"蕖蕙蕜\",6,\"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼\"],[\"8fdaa1\",\"藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠\",4,\"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣\"],[\"8fdba1\",\"蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃\",6,\"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵\"],[\"8fdca1\",\"蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊\",4,\"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺\"],[\"8fdda1\",\"襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔\",4,\"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳\"],[\"8fdea1\",\"誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂\",4,\"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆\"],[\"8fdfa1\",\"貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢\"],[\"8fe0a1\",\"踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁\"],[\"8fe1a1\",\"轃轇轏轑\",4,\"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃\"],[\"8fe2a1\",\"郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿\"],[\"8fe3a1\",\"釂釃釅釓釔釗釙釚釞釤釥釩釪釬\",5,\"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵\",4,\"鉻鉼鉽鉿銈銉銊銍銎銒銗\"],[\"8fe4a1\",\"銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿\",4,\"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶\"],[\"8fe5a1\",\"鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉\",4,\"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹\"],[\"8fe6a1\",\"镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂\"],[\"8fe7a1\",\"霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦\"],[\"8fe8a1\",\"頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱\",4,\"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵\"],[\"8fe9a1\",\"馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿\",4],[\"8feaa1\",\"鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪\",4,\"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸\"],[\"8feba1\",\"鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦\",4,\"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻\"],[\"8feca1\",\"鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵\"],[\"8feda1\",\"黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃\",4,\"齓齕齖齗齘齚齝齞齨齩齭\",4,\"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥\"]]");

/***/ }),
/* 690 */
/***/ (function(module) {

module.exports = JSON.parse("[[\"0\",\"\\u0000\",127,\"€\"],[\"8140\",\"丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪\",5,\"乲乴\",9,\"乿\",6,\"亇亊\"],[\"8180\",\"亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂\",6,\"伋伌伒\",4,\"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾\",4,\"佄佅佇\",5,\"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢\"],[\"8240\",\"侤侫侭侰\",4,\"侶\",8,\"俀俁係俆俇俈俉俋俌俍俒\",4,\"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿\",11],[\"8280\",\"個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯\",10,\"倻倽倿偀偁偂偄偅偆偉偊偋偍偐\",4,\"偖偗偘偙偛偝\",7,\"偦\",5,\"偭\",8,\"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎\",20,\"傤傦傪傫傭\",4,\"傳\",6,\"傼\"],[\"8340\",\"傽\",17,\"僐\",5,\"僗僘僙僛\",10,\"僨僩僪僫僯僰僱僲僴僶\",4,\"僼\",9,\"儈\"],[\"8380\",\"儉儊儌\",5,\"儓\",13,\"儢\",28,\"兂兇兊兌兎兏児兒兓兗兘兙兛兝\",4,\"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦\",4,\"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒\",5],[\"8440\",\"凘凙凚凜凞凟凢凣凥\",5,\"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄\",5,\"剋剎剏剒剓剕剗剘\"],[\"8480\",\"剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳\",9,\"剾劀劃\",4,\"劉\",6,\"劑劒劔\",6,\"劜劤劥劦劧劮劯劰労\",9,\"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務\",5,\"勠勡勢勣勥\",10,\"勱\",7,\"勻勼勽匁匂匃匄匇匉匊匋匌匎\"],[\"8540\",\"匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯\",9,\"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏\"],[\"8580\",\"厐\",4,\"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯\",6,\"厷厸厹厺厼厽厾叀參\",4,\"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝\",4,\"呣呥呧呩\",7,\"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡\"],[\"8640\",\"咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠\",4,\"哫哬哯哰哱哴\",5,\"哻哾唀唂唃唄唅唈唊\",4,\"唒唓唕\",5,\"唜唝唞唟唡唥唦\"],[\"8680\",\"唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋\",4,\"啑啒啓啔啗\",4,\"啝啞啟啠啢啣啨啩啫啯\",5,\"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠\",6,\"喨\",8,\"喲喴営喸喺喼喿\",4,\"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗\",4,\"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸\",4,\"嗿嘂嘃嘄嘅\"],[\"8740\",\"嘆嘇嘊嘋嘍嘐\",7,\"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀\",11,\"噏\",4,\"噕噖噚噛噝\",4],[\"8780\",\"噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽\",7,\"嚇\",6,\"嚐嚑嚒嚔\",14,\"嚤\",10,\"嚰\",6,\"嚸嚹嚺嚻嚽\",12,\"囋\",8,\"囕囖囘囙囜団囥\",5,\"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國\",6],[\"8840\",\"園\",9,\"圝圞圠圡圢圤圥圦圧圫圱圲圴\",4,\"圼圽圿坁坃坄坅坆坈坉坋坒\",4,\"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀\"],[\"8880\",\"垁垇垈垉垊垍\",4,\"垔\",6,\"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹\",8,\"埄\",6,\"埌埍埐埑埓埖埗埛埜埞埡埢埣埥\",7,\"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥\",4,\"堫\",4,\"報堲堳場堶\",7],[\"8940\",\"堾\",5,\"塅\",6,\"塎塏塐塒塓塕塖塗塙\",4,\"塟\",5,\"塦\",4,\"塭\",16,\"塿墂墄墆墇墈墊墋墌\"],[\"8980\",\"墍\",4,\"墔\",4,\"墛墜墝墠\",7,\"墪\",17,\"墽墾墿壀壂壃壄壆\",10,\"壒壓壔壖\",13,\"壥\",5,\"壭壯壱売壴壵壷壸壺\",7,\"夃夅夆夈\",4,\"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻\"],[\"8a40\",\"夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛\",4,\"奡奣奤奦\",12,\"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦\"],[\"8a80\",\"妧妬妭妰妱妳\",5,\"妺妼妽妿\",6,\"姇姈姉姌姍姎姏姕姖姙姛姞\",4,\"姤姦姧姩姪姫姭\",11,\"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪\",6,\"娳娵娷\",4,\"娽娾娿婁\",4,\"婇婈婋\",9,\"婖婗婘婙婛\",5],[\"8b40\",\"婡婣婤婥婦婨婩婫\",8,\"婸婹婻婼婽婾媀\",17,\"媓\",6,\"媜\",13,\"媫媬\"],[\"8b80\",\"媭\",4,\"媴媶媷媹\",4,\"媿嫀嫃\",5,\"嫊嫋嫍\",4,\"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬\",4,\"嫲\",22,\"嬊\",11,\"嬘\",25,\"嬳嬵嬶嬸\",7,\"孁\",6],[\"8c40\",\"孈\",7,\"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏\"],[\"8c80\",\"寑寔\",8,\"寠寢寣實寧審\",4,\"寯寱\",6,\"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧\",6,\"屰屲\",6,\"屻屼屽屾岀岃\",4,\"岉岊岋岎岏岒岓岕岝\",4,\"岤\",4],[\"8d40\",\"岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅\",5,\"峌\",5,\"峓\",5,\"峚\",6,\"峢峣峧峩峫峬峮峯峱\",9,\"峼\",4],[\"8d80\",\"崁崄崅崈\",5,\"崏\",4,\"崕崗崘崙崚崜崝崟\",4,\"崥崨崪崫崬崯\",4,\"崵\",7,\"崿\",7,\"嵈嵉嵍\",10,\"嵙嵚嵜嵞\",10,\"嵪嵭嵮嵰嵱嵲嵳嵵\",12,\"嶃\",21,\"嶚嶛嶜嶞嶟嶠\"],[\"8e40\",\"嶡\",21,\"嶸\",12,\"巆\",6,\"巎\",12,\"巜巟巠巣巤巪巬巭\"],[\"8e80\",\"巰巵巶巸\",4,\"巿帀帄帇帉帊帋帍帎帒帓帗帞\",7,\"帨\",4,\"帯帰帲\",4,\"帹帺帾帿幀幁幃幆\",5,\"幍\",6,\"幖\",4,\"幜幝幟幠幣\",14,\"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨\",4,\"庮\",4,\"庴庺庻庼庽庿\",6],[\"8f40\",\"廆廇廈廋\",5,\"廔廕廗廘廙廚廜\",11,\"廩廫\",8,\"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤\"],[\"8f80\",\"弨弫弬弮弰弲\",6,\"弻弽弾弿彁\",14,\"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢\",5,\"復徫徬徯\",5,\"徶徸徹徺徻徾\",4,\"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇\"],[\"9040\",\"怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰\",4,\"怶\",4,\"怽怾恀恄\",6,\"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀\"],[\"9080\",\"悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽\",7,\"惇惈惉惌\",4,\"惒惓惔惖惗惙惛惞惡\",4,\"惪惱惲惵惷惸惻\",4,\"愂愃愄愅愇愊愋愌愐\",4,\"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬\",18,\"慀\",6],[\"9140\",\"慇慉態慍慏慐慒慓慔慖\",6,\"慞慟慠慡慣慤慥慦慩\",6,\"慱慲慳慴慶慸\",18,\"憌憍憏\",4,\"憕\"],[\"9180\",\"憖\",6,\"憞\",8,\"憪憫憭\",9,\"憸\",5,\"憿懀懁懃\",4,\"應懌\",4,\"懓懕\",16,\"懧\",13,\"懶\",8,\"戀\",5,\"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸\",4,\"扂扄扅扆扊\"],[\"9240\",\"扏扐払扖扗扙扚扜\",6,\"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋\",5,\"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁\"],[\"9280\",\"拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳\",5,\"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖\",7,\"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙\",6,\"採掤掦掫掯掱掲掵掶掹掻掽掿揀\"],[\"9340\",\"揁揂揃揅揇揈揊揋揌揑揓揔揕揗\",6,\"揟揢揤\",4,\"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆\",4,\"損搎搑搒搕\",5,\"搝搟搢搣搤\"],[\"9380\",\"搥搧搨搩搫搮\",5,\"搵\",4,\"搻搼搾摀摂摃摉摋\",6,\"摓摕摖摗摙\",4,\"摟\",7,\"摨摪摫摬摮\",9,\"摻\",6,\"撃撆撈\",8,\"撓撔撗撘撚撛撜撝撟\",4,\"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆\",6,\"擏擑擓擔擕擖擙據\"],[\"9440\",\"擛擜擝擟擠擡擣擥擧\",24,\"攁\",7,\"攊\",7,\"攓\",4,\"攙\",8],[\"9480\",\"攢攣攤攦\",4,\"攬攭攰攱攲攳攷攺攼攽敀\",4,\"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數\",14,\"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱\",7,\"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘\",7,\"旡旣旤旪旫\"],[\"9540\",\"旲旳旴旵旸旹旻\",4,\"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷\",4,\"昽昿晀時晄\",6,\"晍晎晐晑晘\"],[\"9580\",\"晙晛晜晝晞晠晢晣晥晧晩\",4,\"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘\",4,\"暞\",8,\"暩\",4,\"暯\",4,\"暵暶暷暸暺暻暼暽暿\",25,\"曚曞\",7,\"曧曨曪\",5,\"曱曵曶書曺曻曽朁朂會\"],[\"9640\",\"朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠\",5,\"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗\",4,\"杝杢杣杤杦杧杫杬杮東杴杶\"],[\"9680\",\"杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹\",7,\"柂柅\",9,\"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵\",7,\"柾栁栂栃栄栆栍栐栒栔栕栘\",4,\"栞栟栠栢\",6,\"栫\",6,\"栴栵栶栺栻栿桇桋桍桏桒桖\",5],[\"9740\",\"桜桝桞桟桪桬\",7,\"桵桸\",8,\"梂梄梇\",7,\"梐梑梒梔梕梖梘\",9,\"梣梤梥梩梪梫梬梮梱梲梴梶梷梸\"],[\"9780\",\"梹\",6,\"棁棃\",5,\"棊棌棎棏棐棑棓棔棖棗棙棛\",4,\"棡棢棤\",9,\"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆\",4,\"椌椏椑椓\",11,\"椡椢椣椥\",7,\"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃\",16,\"楕楖楘楙楛楜楟\"],[\"9840\",\"楡楢楤楥楧楨楩楪楬業楯楰楲\",4,\"楺楻楽楾楿榁榃榅榊榋榌榎\",5,\"榖榗榙榚榝\",9,\"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽\"],[\"9880\",\"榾榿槀槂\",7,\"構槍槏槑槒槓槕\",5,\"槜槝槞槡\",11,\"槮槯槰槱槳\",9,\"槾樀\",9,\"樋\",11,\"標\",5,\"樠樢\",5,\"権樫樬樭樮樰樲樳樴樶\",6,\"樿\",4,\"橅橆橈\",7,\"橑\",6,\"橚\"],[\"9940\",\"橜\",4,\"橢橣橤橦\",10,\"橲\",6,\"橺橻橽橾橿檁檂檃檅\",8,\"檏檒\",4,\"檘\",7,\"檡\",5],[\"9980\",\"檧檨檪檭\",114,\"欥欦欨\",6],[\"9a40\",\"欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍\",11,\"歚\",7,\"歨歩歫\",13,\"歺歽歾歿殀殅殈\"],[\"9a80\",\"殌殎殏殐殑殔殕殗殘殙殜\",4,\"殢\",7,\"殫\",7,\"殶殸\",6,\"毀毃毄毆\",4,\"毌毎毐毑毘毚毜\",4,\"毢\",7,\"毬毭毮毰毱毲毴毶毷毸毺毻毼毾\",6,\"氈\",4,\"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋\",4,\"汑汒汓汖汘\"],[\"9b40\",\"汙汚汢汣汥汦汧汫\",4,\"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘\"],[\"9b80\",\"泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟\",5,\"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽\",4,\"涃涄涆涇涊涋涍涏涐涒涖\",4,\"涜涢涥涬涭涰涱涳涴涶涷涹\",5,\"淁淂淃淈淉淊\"],[\"9c40\",\"淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽\",7,\"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵\"],[\"9c80\",\"渶渷渹渻\",7,\"湅\",7,\"湏湐湑湒湕湗湙湚湜湝湞湠\",10,\"湬湭湯\",14,\"満溁溂溄溇溈溊\",4,\"溑\",6,\"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪\",5],[\"9d40\",\"滰滱滲滳滵滶滷滸滺\",7,\"漃漄漅漇漈漊\",4,\"漐漑漒漖\",9,\"漡漢漣漥漦漧漨漬漮漰漲漴漵漷\",6,\"漿潀潁潂\"],[\"9d80\",\"潃潄潅潈潉潊潌潎\",9,\"潙潚潛潝潟潠潡潣潤潥潧\",5,\"潯潰潱潳潵潶潷潹潻潽\",6,\"澅澆澇澊澋澏\",12,\"澝澞澟澠澢\",4,\"澨\",10,\"澴澵澷澸澺\",5,\"濁濃\",5,\"濊\",6,\"濓\",10,\"濟濢濣濤濥\"],[\"9e40\",\"濦\",7,\"濰\",32,\"瀒\",7,\"瀜\",6,\"瀤\",6],[\"9e80\",\"瀫\",9,\"瀶瀷瀸瀺\",17,\"灍灎灐\",13,\"灟\",11,\"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞\",12,\"炰炲炴炵炶為炾炿烄烅烆烇烉烋\",12,\"烚\"],[\"9f40\",\"烜烝烞烠烡烢烣烥烪烮烰\",6,\"烸烺烻烼烾\",10,\"焋\",4,\"焑焒焔焗焛\",10,\"焧\",7,\"焲焳焴\"],[\"9f80\",\"焵焷\",13,\"煆煇煈煉煋煍煏\",12,\"煝煟\",4,\"煥煩\",4,\"煯煰煱煴煵煶煷煹煻煼煾\",5,\"熅\",4,\"熋熌熍熎熐熑熒熓熕熖熗熚\",4,\"熡\",6,\"熩熪熫熭\",5,\"熴熶熷熸熺\",8,\"燄\",9,\"燏\",4],[\"a040\",\"燖\",9,\"燡燢燣燤燦燨\",5,\"燯\",9,\"燺\",11,\"爇\",19],[\"a080\",\"爛爜爞\",9,\"爩爫爭爮爯爲爳爴爺爼爾牀\",6,\"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅\",4,\"犌犎犐犑犓\",11,\"犠\",11,\"犮犱犲犳犵犺\",6,\"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛\"],[\"a1a1\",\"　、。·ˉˇ¨〃々—～‖…‘’“”〔〕〈\",7,\"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃＄¤￠￡‰§№☆★○●◎◇◆□■△▲※→←↑↓〓\"],[\"a2a1\",\"ⅰ\",9],[\"a2b1\",\"⒈\",19,\"⑴\",19,\"①\",9],[\"a2e5\",\"㈠\",9],[\"a2f1\",\"Ⅰ\",11],[\"a3a1\",\"！＂＃￥％\",88,\"￣\"],[\"a4a1\",\"ぁ\",82],[\"a5a1\",\"ァ\",85],[\"a6a1\",\"Α\",16,\"Σ\",6],[\"a6c1\",\"α\",16,\"σ\",6],[\"a6e0\",\"︵︶︹︺︿﹀︽︾﹁﹂﹃﹄\"],[\"a6ee\",\"︻︼︷︸︱\"],[\"a6f4\",\"︳︴\"],[\"a7a1\",\"А\",5,\"ЁЖ\",25],[\"a7d1\",\"а\",5,\"ёж\",25],[\"a840\",\"ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═\",35,\"▁\",6],[\"a880\",\"█\",7,\"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞\"],[\"a8a1\",\"āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ\"],[\"a8bd\",\"ńň\"],[\"a8c0\",\"ɡ\"],[\"a8c5\",\"ㄅ\",36],[\"a940\",\"〡\",8,\"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰￢￤\"],[\"a959\",\"℡㈱\"],[\"a95c\",\"‐\"],[\"a960\",\"ー゛゜ヽヾ〆ゝゞ﹉\",9,\"﹔﹕﹖﹗﹙\",8],[\"a980\",\"﹢\",4,\"﹨﹩﹪﹫\"],[\"a996\",\"〇\"],[\"a9a4\",\"─\",75],[\"aa40\",\"狜狝狟狢\",5,\"狪狫狵狶狹狽狾狿猀猂猄\",5,\"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀\",8],[\"aa80\",\"獉獊獋獌獎獏獑獓獔獕獖獘\",7,\"獡\",10,\"獮獰獱\"],[\"ab40\",\"獲\",11,\"獿\",4,\"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣\",5,\"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃\",4],[\"ab80\",\"珋珌珎珒\",6,\"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳\",4],[\"ac40\",\"珸\",10,\"琄琇琈琋琌琍琎琑\",8,\"琜\",5,\"琣琤琧琩琫琭琯琱琲琷\",4,\"琽琾琿瑀瑂\",11],[\"ac80\",\"瑎\",6,\"瑖瑘瑝瑠\",12,\"瑮瑯瑱\",4,\"瑸瑹瑺\"],[\"ad40\",\"瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑\",10,\"璝璟\",7,\"璪\",15,\"璻\",12],[\"ad80\",\"瓈\",9,\"瓓\",8,\"瓝瓟瓡瓥瓧\",6,\"瓰瓱瓲\"],[\"ae40\",\"瓳瓵瓸\",6,\"甀甁甂甃甅\",7,\"甎甐甒甔甕甖甗甛甝甞甠\",4,\"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘\"],[\"ae80\",\"畝\",7,\"畧畨畩畫\",6,\"畳畵當畷畺\",4,\"疀疁疂疄疅疇\"],[\"af40\",\"疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦\",4,\"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇\"],[\"af80\",\"瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄\"],[\"b040\",\"癅\",6,\"癎\",5,\"癕癗\",4,\"癝癟癠癡癢癤\",6,\"癬癭癮癰\",7,\"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛\"],[\"b080\",\"皜\",7,\"皥\",8,\"皯皰皳皵\",9,\"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥\"],[\"b140\",\"盄盇盉盋盌盓盕盙盚盜盝盞盠\",4,\"盦\",7,\"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎\",10,\"眛眜眝眞眡眣眤眥眧眪眫\"],[\"b180\",\"眬眮眰\",4,\"眹眻眽眾眿睂睄睅睆睈\",7,\"睒\",7,\"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳\"],[\"b240\",\"睝睞睟睠睤睧睩睪睭\",11,\"睺睻睼瞁瞂瞃瞆\",5,\"瞏瞐瞓\",11,\"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶\",4],[\"b280\",\"瞼瞾矀\",12,\"矎\",8,\"矘矙矚矝\",4,\"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖\"],[\"b340\",\"矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃\",5,\"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚\"],[\"b380\",\"硛硜硞\",11,\"硯\",7,\"硸硹硺硻硽\",6,\"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚\"],[\"b440\",\"碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨\",7,\"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚\",9],[\"b480\",\"磤磥磦磧磩磪磫磭\",4,\"磳磵磶磸磹磻\",5,\"礂礃礄礆\",6,\"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮\"],[\"b540\",\"礍\",5,\"礔\",9,\"礟\",4,\"礥\",14,\"礵\",4,\"礽礿祂祃祄祅祇祊\",8,\"祔祕祘祙祡祣\"],[\"b580\",\"祤祦祩祪祫祬祮祰\",6,\"祹祻\",4,\"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠\"],[\"b640\",\"禓\",6,\"禛\",11,\"禨\",10,\"禴\",4,\"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙\",5,\"秠秡秢秥秨秪\"],[\"b680\",\"秬秮秱\",6,\"秹秺秼秾秿稁稄稅稇稈稉稊稌稏\",4,\"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二\"],[\"b740\",\"稝稟稡稢稤\",14,\"稴稵稶稸稺稾穀\",5,\"穇\",9,\"穒\",4,\"穘\",16],[\"b780\",\"穩\",6,\"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服\"],[\"b840\",\"窣窤窧窩窪窫窮\",4,\"窴\",10,\"竀\",10,\"竌\",9,\"竗竘竚竛竜竝竡竢竤竧\",5,\"竮竰竱竲竳\"],[\"b880\",\"竴\",4,\"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹\"],[\"b940\",\"笯笰笲笴笵笶笷笹笻笽笿\",5,\"筆筈筊筍筎筓筕筗筙筜筞筟筡筣\",10,\"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆\",6,\"箎箏\"],[\"b980\",\"箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹\",7,\"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈\"],[\"ba40\",\"篅篈築篊篋篍篎篏篐篒篔\",4,\"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲\",4,\"篸篹篺篻篽篿\",7,\"簈簉簊簍簎簐\",5,\"簗簘簙\"],[\"ba80\",\"簚\",4,\"簠\",5,\"簨簩簫\",12,\"簹\",5,\"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖\"],[\"bb40\",\"籃\",9,\"籎\",36,\"籵\",5,\"籾\",9],[\"bb80\",\"粈粊\",6,\"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴\",4,\"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕\"],[\"bc40\",\"粿糀糂糃糄糆糉糋糎\",6,\"糘糚糛糝糞糡\",6,\"糩\",5,\"糰\",7,\"糹糺糼\",13,\"紋\",5],[\"bc80\",\"紑\",14,\"紡紣紤紥紦紨紩紪紬紭紮細\",6,\"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件\"],[\"bd40\",\"紷\",54,\"絯\",7],[\"bd80\",\"絸\",32,\"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸\"],[\"be40\",\"継\",12,\"綧\",6,\"綯\",42],[\"be80\",\"線\",32,\"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻\"],[\"bf40\",\"緻\",62],[\"bf80\",\"縺縼\",4,\"繂\",4,\"繈\",21,\"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀\"],[\"c040\",\"繞\",35,\"纃\",23,\"纜纝纞\"],[\"c080\",\"纮纴纻纼绖绤绬绹缊缐缞缷缹缻\",6,\"罃罆\",9,\"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐\"],[\"c140\",\"罖罙罛罜罝罞罠罣\",4,\"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂\",7,\"羋羍羏\",4,\"羕\",4,\"羛羜羠羢羣羥羦羨\",6,\"羱\"],[\"c180\",\"羳\",4,\"羺羻羾翀翂翃翄翆翇翈翉翋翍翏\",4,\"翖翗翙\",5,\"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿\"],[\"c240\",\"翤翧翨翪翫翬翭翯翲翴\",6,\"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫\",5,\"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗\"],[\"c280\",\"聙聛\",13,\"聫\",5,\"聲\",11,\"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫\"],[\"c340\",\"聾肁肂肅肈肊肍\",5,\"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇\",4,\"胏\",6,\"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋\"],[\"c380\",\"脌脕脗脙脛脜脝脟\",12,\"脭脮脰脳脴脵脷脹\",4,\"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸\"],[\"c440\",\"腀\",5,\"腇腉腍腎腏腒腖腗腘腛\",4,\"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃\",4,\"膉膋膌膍膎膐膒\",5,\"膙膚膞\",4,\"膤膥\"],[\"c480\",\"膧膩膫\",7,\"膴\",5,\"膼膽膾膿臄臅臇臈臉臋臍\",6,\"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁\"],[\"c540\",\"臔\",14,\"臤臥臦臨臩臫臮\",4,\"臵\",5,\"臽臿舃與\",4,\"舎舏舑舓舕\",5,\"舝舠舤舥舦舧舩舮舲舺舼舽舿\"],[\"c580\",\"艀艁艂艃艅艆艈艊艌艍艎艐\",7,\"艙艛艜艝艞艠\",7,\"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗\"],[\"c640\",\"艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸\"],[\"c680\",\"苺苼\",4,\"茊茋茍茐茒茓茖茘茙茝\",9,\"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐\"],[\"c740\",\"茾茿荁荂荄荅荈荊\",4,\"荓荕\",4,\"荝荢荰\",6,\"荹荺荾\",6,\"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡\",6,\"莬莭莮\"],[\"c780\",\"莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠\"],[\"c840\",\"菮華菳\",4,\"菺菻菼菾菿萀萂萅萇萈萉萊萐萒\",5,\"萙萚萛萞\",5,\"萩\",7,\"萲\",5,\"萹萺萻萾\",7,\"葇葈葉\"],[\"c880\",\"葊\",6,\"葒\",4,\"葘葝葞葟葠葢葤\",4,\"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁\"],[\"c940\",\"葽\",4,\"蒃蒄蒅蒆蒊蒍蒏\",7,\"蒘蒚蒛蒝蒞蒟蒠蒢\",12,\"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗\"],[\"c980\",\"蓘\",4,\"蓞蓡蓢蓤蓧\",4,\"蓭蓮蓯蓱\",10,\"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳\"],[\"ca40\",\"蔃\",8,\"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢\",8,\"蔭\",9,\"蔾\",4,\"蕄蕅蕆蕇蕋\",10],[\"ca80\",\"蕗蕘蕚蕛蕜蕝蕟\",4,\"蕥蕦蕧蕩\",8,\"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱\"],[\"cb40\",\"薂薃薆薈\",6,\"薐\",10,\"薝\",6,\"薥薦薧薩薫薬薭薱\",5,\"薸薺\",6,\"藂\",6,\"藊\",4,\"藑藒\"],[\"cb80\",\"藔藖\",5,\"藝\",6,\"藥藦藧藨藪\",14,\"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔\"],[\"cc40\",\"藹藺藼藽藾蘀\",4,\"蘆\",10,\"蘒蘓蘔蘕蘗\",15,\"蘨蘪\",13,\"蘹蘺蘻蘽蘾蘿虀\"],[\"cc80\",\"虁\",11,\"虒虓處\",4,\"虛虜虝號虠虡虣\",7,\"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃\"],[\"cd40\",\"虭虯虰虲\",6,\"蚃\",6,\"蚎\",4,\"蚔蚖\",5,\"蚞\",4,\"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻\",4,\"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜\"],[\"cd80\",\"蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威\"],[\"ce40\",\"蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀\",6,\"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚\",5,\"蝡蝢蝦\",7,\"蝯蝱蝲蝳蝵\"],[\"ce80\",\"蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎\",4,\"螔螕螖螘\",6,\"螠\",4,\"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺\"],[\"cf40\",\"螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁\",4,\"蟇蟈蟉蟌\",4,\"蟔\",6,\"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯\",9],[\"cf80\",\"蟺蟻蟼蟽蟿蠀蠁蠂蠄\",5,\"蠋\",7,\"蠔蠗蠘蠙蠚蠜\",4,\"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓\"],[\"d040\",\"蠤\",13,\"蠳\",5,\"蠺蠻蠽蠾蠿衁衂衃衆\",5,\"衎\",5,\"衕衖衘衚\",6,\"衦衧衪衭衯衱衳衴衵衶衸衹衺\"],[\"d080\",\"衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗\",4,\"袝\",4,\"袣袥\",5,\"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄\"],[\"d140\",\"袬袮袯袰袲\",4,\"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚\",4,\"裠裡裦裧裩\",6,\"裲裵裶裷裺裻製裿褀褁褃\",5],[\"d180\",\"褉褋\",4,\"褑褔\",4,\"褜\",4,\"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶\"],[\"d240\",\"褸\",8,\"襂襃襅\",24,\"襠\",5,\"襧\",19,\"襼\"],[\"d280\",\"襽襾覀覂覄覅覇\",26,\"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐\"],[\"d340\",\"覢\",30,\"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴\",6],[\"d380\",\"觻\",4,\"訁\",5,\"計\",21,\"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉\"],[\"d440\",\"訞\",31,\"訿\",8,\"詉\",21],[\"d480\",\"詟\",25,\"詺\",6,\"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧\"],[\"d540\",\"誁\",7,\"誋\",7,\"誔\",46],[\"d580\",\"諃\",32,\"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政\"],[\"d640\",\"諤\",34,\"謈\",27],[\"d680\",\"謤謥謧\",30,\"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑\"],[\"d740\",\"譆\",31,\"譧\",4,\"譭\",25],[\"d780\",\"讇\",24,\"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座\"],[\"d840\",\"谸\",8,\"豂豃豄豅豈豊豋豍\",7,\"豖豗豘豙豛\",5,\"豣\",6,\"豬\",6,\"豴豵豶豷豻\",6,\"貃貄貆貇\"],[\"d880\",\"貈貋貍\",6,\"貕貖貗貙\",20,\"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝\"],[\"d940\",\"貮\",62],[\"d980\",\"賭\",32,\"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼\"],[\"da40\",\"贎\",14,\"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸\",8,\"趂趃趆趇趈趉趌\",4,\"趒趓趕\",9,\"趠趡\"],[\"da80\",\"趢趤\",12,\"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺\"],[\"db40\",\"跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾\",6,\"踆踇踈踋踍踎踐踑踒踓踕\",7,\"踠踡踤\",4,\"踫踭踰踲踳踴踶踷踸踻踼踾\"],[\"db80\",\"踿蹃蹅蹆蹌\",4,\"蹓\",5,\"蹚\",11,\"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝\"],[\"dc40\",\"蹳蹵蹷\",4,\"蹽蹾躀躂躃躄躆躈\",6,\"躑躒躓躕\",6,\"躝躟\",11,\"躭躮躰躱躳\",6,\"躻\",7],[\"dc80\",\"軃\",10,\"軏\",21,\"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥\"],[\"dd40\",\"軥\",62],[\"dd80\",\"輤\",32,\"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺\"],[\"de40\",\"轅\",32,\"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆\"],[\"de80\",\"迉\",4,\"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖\"],[\"df40\",\"這逜連逤逥逧\",5,\"逰\",4,\"逷逹逺逽逿遀遃遅遆遈\",4,\"過達違遖遙遚遜\",5,\"遤遦遧適遪遫遬遯\",4,\"遶\",6,\"遾邁\"],[\"df80\",\"還邅邆邇邉邊邌\",4,\"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼\"],[\"e040\",\"郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅\",19,\"鄚鄛鄜\"],[\"e080\",\"鄝鄟鄠鄡鄤\",10,\"鄰鄲\",6,\"鄺\",8,\"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼\"],[\"e140\",\"酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀\",4,\"醆醈醊醎醏醓\",6,\"醜\",5,\"醤\",5,\"醫醬醰醱醲醳醶醷醸醹醻\"],[\"e180\",\"醼\",10,\"釈釋釐釒\",9,\"針\",8,\"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺\"],[\"e240\",\"釦\",62],[\"e280\",\"鈥\",32,\"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧\",5,\"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂\"],[\"e340\",\"鉆\",45,\"鉵\",16],[\"e380\",\"銆\",7,\"銏\",24,\"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾\"],[\"e440\",\"銨\",5,\"銯\",24,\"鋉\",31],[\"e480\",\"鋩\",32,\"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑\"],[\"e540\",\"錊\",51,\"錿\",10],[\"e580\",\"鍊\",31,\"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣\"],[\"e640\",\"鍬\",34,\"鎐\",27],[\"e680\",\"鎬\",29,\"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩\"],[\"e740\",\"鏎\",7,\"鏗\",54],[\"e780\",\"鐎\",32,\"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡\",6,\"缪缫缬缭缯\",4,\"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬\"],[\"e840\",\"鐯\",14,\"鐿\",43,\"鑬鑭鑮鑯\"],[\"e880\",\"鑰\",20,\"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹\"],[\"e940\",\"锧锳锽镃镈镋镕镚镠镮镴镵長\",7,\"門\",42],[\"e980\",\"閫\",32,\"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋\"],[\"ea40\",\"闌\",27,\"闬闿阇阓阘阛阞阠阣\",6,\"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗\"],[\"ea80\",\"陘陙陚陜陝陞陠陣陥陦陫陭\",4,\"陳陸\",12,\"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰\"],[\"eb40\",\"隌階隑隒隓隕隖隚際隝\",9,\"隨\",7,\"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖\",9,\"雡\",6,\"雫\"],[\"eb80\",\"雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗\",4,\"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻\"],[\"ec40\",\"霡\",8,\"霫霬霮霯霱霳\",4,\"霺霻霼霽霿\",18,\"靔靕靗靘靚靜靝靟靣靤靦靧靨靪\",7],[\"ec80\",\"靲靵靷\",4,\"靽\",7,\"鞆\",4,\"鞌鞎鞏鞐鞓鞕鞖鞗鞙\",4,\"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐\"],[\"ed40\",\"鞞鞟鞡鞢鞤\",6,\"鞬鞮鞰鞱鞳鞵\",46],[\"ed80\",\"韤韥韨韮\",4,\"韴韷\",23,\"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨\"],[\"ee40\",\"頏\",62],[\"ee80\",\"顎\",32,\"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶\",4,\"钼钽钿铄铈\",6,\"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪\"],[\"ef40\",\"顯\",5,\"颋颎颒颕颙颣風\",37,\"飏飐飔飖飗飛飜飝飠\",4],[\"ef80\",\"飥飦飩\",30,\"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒\",4,\"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤\",8,\"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔\"],[\"f040\",\"餈\",4,\"餎餏餑\",28,\"餯\",26],[\"f080\",\"饊\",9,\"饖\",12,\"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨\",4,\"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦\",6,\"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙\"],[\"f140\",\"馌馎馚\",10,\"馦馧馩\",47],[\"f180\",\"駙\",32,\"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃\"],[\"f240\",\"駺\",62],[\"f280\",\"騹\",32,\"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒\"],[\"f340\",\"驚\",17,\"驲骃骉骍骎骔骕骙骦骩\",6,\"骲骳骴骵骹骻骽骾骿髃髄髆\",4,\"髍髎髏髐髒體髕髖髗髙髚髛髜\"],[\"f380\",\"髝髞髠髢髣髤髥髧髨髩髪髬髮髰\",8,\"髺髼\",6,\"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋\"],[\"f440\",\"鬇鬉\",5,\"鬐鬑鬒鬔\",10,\"鬠鬡鬢鬤\",10,\"鬰鬱鬳\",7,\"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕\",5],[\"f480\",\"魛\",32,\"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤\"],[\"f540\",\"魼\",62],[\"f580\",\"鮻\",32,\"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜\"],[\"f640\",\"鯜\",62],[\"f680\",\"鰛\",32,\"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅\",5,\"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞\",5,\"鲥\",4,\"鲫鲭鲮鲰\",7,\"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋\"],[\"f740\",\"鰼\",62],[\"f780\",\"鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾\",4,\"鳈鳉鳑鳒鳚鳛鳠鳡鳌\",4,\"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄\"],[\"f840\",\"鳣\",62],[\"f880\",\"鴢\",32],[\"f940\",\"鵃\",62],[\"f980\",\"鶂\",32],[\"fa40\",\"鶣\",62],[\"fa80\",\"鷢\",32],[\"fb40\",\"鸃\",27,\"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴\",9,\"麀\"],[\"fb80\",\"麁麃麄麅麆麉麊麌\",5,\"麔\",8,\"麞麠\",5,\"麧麨麩麪\"],[\"fc40\",\"麫\",8,\"麵麶麷麹麺麼麿\",4,\"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰\",8,\"黺黽黿\",6],[\"fc80\",\"鼆\",4,\"鼌鼏鼑鼒鼔鼕鼖鼘鼚\",5,\"鼡鼣\",8,\"鼭鼮鼰鼱\"],[\"fd40\",\"鼲\",4,\"鼸鼺鼼鼿\",4,\"齅\",10,\"齒\",38],[\"fd80\",\"齹\",5,\"龁龂龍\",11,\"龜龝龞龡\",4,\"郎凉秊裏隣\"],[\"fe40\",\"兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩\"]]");

/***/ }),
/* 691 */
/***/ (function(module) {

module.exports = JSON.parse("[[\"a140\",\"\",62],[\"a180\",\"\",32],[\"a240\",\"\",62],[\"a280\",\"\",32],[\"a2ab\",\"\",5],[\"a2e3\",\"€\"],[\"a2ef\",\"\"],[\"a2fd\",\"\"],[\"a340\",\"\",62],[\"a380\",\"\",31,\"　\"],[\"a440\",\"\",62],[\"a480\",\"\",32],[\"a4f4\",\"\",10],[\"a540\",\"\",62],[\"a580\",\"\",32],[\"a5f7\",\"\",7],[\"a640\",\"\",62],[\"a680\",\"\",32],[\"a6b9\",\"\",7],[\"a6d9\",\"\",6],[\"a6ec\",\"\"],[\"a6f3\",\"\"],[\"a6f6\",\"\",8],[\"a740\",\"\",62],[\"a780\",\"\",32],[\"a7c2\",\"\",14],[\"a7f2\",\"\",12],[\"a896\",\"\",10],[\"a8bc\",\"\"],[\"a8bf\",\"ǹ\"],[\"a8c1\",\"\"],[\"a8ea\",\"\",20],[\"a958\",\"\"],[\"a95b\",\"\"],[\"a95d\",\"\"],[\"a989\",\"〾⿰\",11],[\"a997\",\"\",12],[\"a9f0\",\"\",14],[\"aaa1\",\"\",93],[\"aba1\",\"\",93],[\"aca1\",\"\",93],[\"ada1\",\"\",93],[\"aea1\",\"\",93],[\"afa1\",\"\",93],[\"d7fa\",\"\",4],[\"f8a1\",\"\",93],[\"f9a1\",\"\",93],[\"faa1\",\"\",93],[\"fba1\",\"\",93],[\"fca1\",\"\",93],[\"fda1\",\"\",93],[\"fe50\",\"⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌\"],[\"fe80\",\"䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓\",6,\"䶮\",93]]");

/***/ }),
/* 692 */
/***/ (function(module) {

module.exports = JSON.parse("{\"uChars\":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],\"gbChars\":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]}");

/***/ }),
/* 693 */
/***/ (function(module) {

module.exports = JSON.parse("[[\"0\",\"\\u0000\",127],[\"8141\",\"갂갃갅갆갋\",4,\"갘갞갟갡갢갣갥\",6,\"갮갲갳갴\"],[\"8161\",\"갵갶갷갺갻갽갾갿걁\",9,\"걌걎\",5,\"걕\"],[\"8181\",\"걖걗걙걚걛걝\",18,\"걲걳걵걶걹걻\",4,\"겂겇겈겍겎겏겑겒겓겕\",6,\"겞겢\",5,\"겫겭겮겱\",6,\"겺겾겿곀곂곃곅곆곇곉곊곋곍\",7,\"곖곘\",7,\"곢곣곥곦곩곫곭곮곲곴곷\",4,\"곾곿괁괂괃괅괇\",4,\"괎괐괒괓\"],[\"8241\",\"괔괕괖괗괙괚괛괝괞괟괡\",7,\"괪괫괮\",5],[\"8261\",\"괶괷괹괺괻괽\",6,\"굆굈굊\",5,\"굑굒굓굕굖굗\"],[\"8281\",\"굙\",7,\"굢굤\",7,\"굮굯굱굲굷굸굹굺굾궀궃\",4,\"궊궋궍궎궏궑\",10,\"궞\",5,\"궥\",17,\"궸\",7,\"귂귃귅귆귇귉\",6,\"귒귔\",7,\"귝귞귟귡귢귣귥\",18],[\"8341\",\"귺귻귽귾긂\",5,\"긊긌긎\",5,\"긕\",7],[\"8361\",\"긝\",18,\"긲긳긵긶긹긻긼\"],[\"8381\",\"긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗\",4,\"깞깢깣깤깦깧깪깫깭깮깯깱\",6,\"깺깾\",5,\"꺆\",5,\"꺍\",46,\"꺿껁껂껃껅\",6,\"껎껒\",5,\"껚껛껝\",8],[\"8441\",\"껦껧껩껪껬껮\",5,\"껵껶껷껹껺껻껽\",8],[\"8461\",\"꼆꼉꼊꼋꼌꼎꼏꼑\",18],[\"8481\",\"꼤\",7,\"꼮꼯꼱꼳꼵\",6,\"꼾꽀꽄꽅꽆꽇꽊\",5,\"꽑\",10,\"꽞\",5,\"꽦\",18,\"꽺\",5,\"꾁꾂꾃꾅꾆꾇꾉\",6,\"꾒꾓꾔꾖\",5,\"꾝\",26,\"꾺꾻꾽꾾\"],[\"8541\",\"꾿꿁\",5,\"꿊꿌꿏\",4,\"꿕\",6,\"꿝\",4],[\"8561\",\"꿢\",5,\"꿪\",5,\"꿲꿳꿵꿶꿷꿹\",6,\"뀂뀃\"],[\"8581\",\"뀅\",6,\"뀍뀎뀏뀑뀒뀓뀕\",6,\"뀞\",9,\"뀩\",26,\"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞\",29,\"끾끿낁낂낃낅\",6,\"낎낐낒\",5,\"낛낝낞낣낤\"],[\"8641\",\"낥낦낧낪낰낲낶낷낹낺낻낽\",6,\"냆냊\",5,\"냒\"],[\"8661\",\"냓냕냖냗냙\",6,\"냡냢냣냤냦\",10],[\"8681\",\"냱\",22,\"넊넍넎넏넑넔넕넖넗넚넞\",4,\"넦넧넩넪넫넭\",6,\"넶넺\",5,\"녂녃녅녆녇녉\",6,\"녒녓녖녗녙녚녛녝녞녟녡\",22,\"녺녻녽녾녿놁놃\",4,\"놊놌놎놏놐놑놕놖놗놙놚놛놝\"],[\"8741\",\"놞\",9,\"놩\",15],[\"8761\",\"놹\",18,\"뇍뇎뇏뇑뇒뇓뇕\"],[\"8781\",\"뇖\",5,\"뇞뇠\",7,\"뇪뇫뇭뇮뇯뇱\",7,\"뇺뇼뇾\",5,\"눆눇눉눊눍\",6,\"눖눘눚\",5,\"눡\",18,\"눵\",6,\"눽\",26,\"뉙뉚뉛뉝뉞뉟뉡\",6,\"뉪\",4],[\"8841\",\"뉯\",4,\"뉶\",5,\"뉽\",6,\"늆늇늈늊\",4],[\"8861\",\"늏늒늓늕늖늗늛\",4,\"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷\"],[\"8881\",\"늸\",15,\"닊닋닍닎닏닑닓\",4,\"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉\",6,\"댒댖\",5,\"댝\",54,\"덗덙덚덝덠덡덢덣\"],[\"8941\",\"덦덨덪덬덭덯덲덳덵덶덷덹\",6,\"뎂뎆\",5,\"뎍\"],[\"8961\",\"뎎뎏뎑뎒뎓뎕\",10,\"뎢\",5,\"뎩뎪뎫뎭\"],[\"8981\",\"뎮\",21,\"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩\",18,\"돽\",18,\"됑\",6,\"됙됚됛됝됞됟됡\",6,\"됪됬\",7,\"됵\",15],[\"8a41\",\"둅\",10,\"둒둓둕둖둗둙\",6,\"둢둤둦\"],[\"8a61\",\"둧\",4,\"둭\",18,\"뒁뒂\"],[\"8a81\",\"뒃\",4,\"뒉\",19,\"뒞\",5,\"뒥뒦뒧뒩뒪뒫뒭\",7,\"뒶뒸뒺\",5,\"듁듂듃듅듆듇듉\",6,\"듑듒듓듔듖\",5,\"듞듟듡듢듥듧\",4,\"듮듰듲\",5,\"듹\",26,\"딖딗딙딚딝\"],[\"8b41\",\"딞\",5,\"딦딫\",4,\"딲딳딵딶딷딹\",6,\"땂땆\"],[\"8b61\",\"땇땈땉땊땎땏땑땒땓땕\",6,\"땞땢\",8],[\"8b81\",\"땫\",52,\"떢떣떥떦떧떩떬떭떮떯떲떶\",4,\"떾떿뗁뗂뗃뗅\",6,\"뗎뗒\",5,\"뗙\",18,\"뗭\",18],[\"8c41\",\"똀\",15,\"똒똓똕똖똗똙\",4],[\"8c61\",\"똞\",6,\"똦\",5,\"똭\",6,\"똵\",5],[\"8c81\",\"똻\",12,\"뙉\",26,\"뙥뙦뙧뙩\",50,\"뚞뚟뚡뚢뚣뚥\",5,\"뚭뚮뚯뚰뚲\",16],[\"8d41\",\"뛃\",16,\"뛕\",8],[\"8d61\",\"뛞\",17,\"뛱뛲뛳뛵뛶뛷뛹뛺\"],[\"8d81\",\"뛻\",4,\"뜂뜃뜄뜆\",33,\"뜪뜫뜭뜮뜱\",6,\"뜺뜼\",7,\"띅띆띇띉띊띋띍\",6,\"띖\",9,\"띡띢띣띥띦띧띩\",6,\"띲띴띶\",5,\"띾띿랁랂랃랅\",6,\"랎랓랔랕랚랛랝랞\"],[\"8e41\",\"랟랡\",6,\"랪랮\",5,\"랶랷랹\",8],[\"8e61\",\"럂\",4,\"럈럊\",19],[\"8e81\",\"럞\",13,\"럮럯럱럲럳럵\",6,\"럾렂\",4,\"렊렋렍렎렏렑\",6,\"렚렜렞\",5,\"렦렧렩렪렫렭\",6,\"렶렺\",5,\"롁롂롃롅\",11,\"롒롔\",7,\"롞롟롡롢롣롥\",6,\"롮롰롲\",5,\"롹롺롻롽\",7],[\"8f41\",\"뢅\",7,\"뢎\",17],[\"8f61\",\"뢠\",7,\"뢩\",6,\"뢱뢲뢳뢵뢶뢷뢹\",4],[\"8f81\",\"뢾뢿룂룄룆\",5,\"룍룎룏룑룒룓룕\",7,\"룞룠룢\",5,\"룪룫룭룮룯룱\",6,\"룺룼룾\",5,\"뤅\",18,\"뤙\",6,\"뤡\",26,\"뤾뤿륁륂륃륅\",6,\"륍륎륐륒\",5],[\"9041\",\"륚륛륝륞륟륡\",6,\"륪륬륮\",5,\"륶륷륹륺륻륽\"],[\"9061\",\"륾\",5,\"릆릈릋릌릏\",15],[\"9081\",\"릟\",12,\"릮릯릱릲릳릵\",6,\"릾맀맂\",5,\"맊맋맍맓\",4,\"맚맜맟맠맢맦맧맩맪맫맭\",6,\"맶맻\",4,\"먂\",5,\"먉\",11,\"먖\",33,\"먺먻먽먾먿멁멃멄멅멆\"],[\"9141\",\"멇멊멌멏멐멑멒멖멗멙멚멛멝\",6,\"멦멪\",5],[\"9161\",\"멲멳멵멶멷멹\",9,\"몆몈몉몊몋몍\",5],[\"9181\",\"몓\",20,\"몪몭몮몯몱몳\",4,\"몺몼몾\",5,\"뫅뫆뫇뫉\",14,\"뫚\",33,\"뫽뫾뫿묁묂묃묅\",7,\"묎묐묒\",5,\"묙묚묛묝묞묟묡\",6],[\"9241\",\"묨묪묬\",7,\"묷묹묺묿\",4,\"뭆뭈뭊뭋뭌뭎뭑뭒\"],[\"9261\",\"뭓뭕뭖뭗뭙\",7,\"뭢뭤\",7,\"뭭\",4],[\"9281\",\"뭲\",21,\"뮉뮊뮋뮍뮎뮏뮑\",18,\"뮥뮦뮧뮩뮪뮫뮭\",6,\"뮵뮶뮸\",7,\"믁믂믃믅믆믇믉\",6,\"믑믒믔\",35,\"믺믻믽믾밁\"],[\"9341\",\"밃\",4,\"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵\"],[\"9361\",\"밶밷밹\",6,\"뱂뱆뱇뱈뱊뱋뱎뱏뱑\",8],[\"9381\",\"뱚뱛뱜뱞\",37,\"벆벇벉벊벍벏\",4,\"벖벘벛\",4,\"벢벣벥벦벩\",6,\"벲벶\",5,\"벾벿볁볂볃볅\",7,\"볎볒볓볔볖볗볙볚볛볝\",22,\"볷볹볺볻볽\"],[\"9441\",\"볾\",5,\"봆봈봊\",5,\"봑봒봓봕\",8],[\"9461\",\"봞\",5,\"봥\",6,\"봭\",12],[\"9481\",\"봺\",5,\"뵁\",6,\"뵊뵋뵍뵎뵏뵑\",6,\"뵚\",9,\"뵥뵦뵧뵩\",22,\"붂붃붅붆붋\",4,\"붒붔붖붗붘붛붝\",6,\"붥\",10,\"붱\",6,\"붹\",24],[\"9541\",\"뷒뷓뷖뷗뷙뷚뷛뷝\",11,\"뷪\",5,\"뷱\"],[\"9561\",\"뷲뷳뷵뷶뷷뷹\",6,\"븁븂븄븆\",5,\"븎븏븑븒븓\"],[\"9581\",\"븕\",6,\"븞븠\",35,\"빆빇빉빊빋빍빏\",4,\"빖빘빜빝빞빟빢빣빥빦빧빩빫\",4,\"빲빶\",4,\"빾빿뺁뺂뺃뺅\",6,\"뺎뺒\",5,\"뺚\",13,\"뺩\",14],[\"9641\",\"뺸\",23,\"뻒뻓\"],[\"9661\",\"뻕뻖뻙\",6,\"뻡뻢뻦\",5,\"뻭\",8],[\"9681\",\"뻶\",10,\"뼂\",5,\"뼊\",13,\"뼚뼞\",33,\"뽂뽃뽅뽆뽇뽉\",6,\"뽒뽓뽔뽖\",44],[\"9741\",\"뾃\",16,\"뾕\",8],[\"9761\",\"뾞\",17,\"뾱\",7],[\"9781\",\"뾹\",11,\"뿆\",5,\"뿎뿏뿑뿒뿓뿕\",6,\"뿝뿞뿠뿢\",89,\"쀽쀾쀿\"],[\"9841\",\"쁀\",16,\"쁒\",5,\"쁙쁚쁛\"],[\"9861\",\"쁝쁞쁟쁡\",6,\"쁪\",15],[\"9881\",\"쁺\",21,\"삒삓삕삖삗삙\",6,\"삢삤삦\",5,\"삮삱삲삷\",4,\"삾샂샃샄샆샇샊샋샍샎샏샑\",6,\"샚샞\",5,\"샦샧샩샪샫샭\",6,\"샶샸샺\",5,\"섁섂섃섅섆섇섉\",6,\"섑섒섓섔섖\",5,\"섡섢섥섨섩섪섫섮\"],[\"9941\",\"섲섳섴섵섷섺섻섽섾섿셁\",6,\"셊셎\",5,\"셖셗\"],[\"9961\",\"셙셚셛셝\",6,\"셦셪\",5,\"셱셲셳셵셶셷셹셺셻\"],[\"9981\",\"셼\",8,\"솆\",5,\"솏솑솒솓솕솗\",4,\"솞솠솢솣솤솦솧솪솫솭솮솯솱\",11,\"솾\",5,\"쇅쇆쇇쇉쇊쇋쇍\",6,\"쇕쇖쇙\",6,\"쇡쇢쇣쇥쇦쇧쇩\",6,\"쇲쇴\",7,\"쇾쇿숁숂숃숅\",6,\"숎숐숒\",5,\"숚숛숝숞숡숢숣\"],[\"9a41\",\"숤숥숦숧숪숬숮숰숳숵\",16],[\"9a61\",\"쉆쉇쉉\",6,\"쉒쉓쉕쉖쉗쉙\",6,\"쉡쉢쉣쉤쉦\"],[\"9a81\",\"쉧\",4,\"쉮쉯쉱쉲쉳쉵\",6,\"쉾슀슂\",5,\"슊\",5,\"슑\",6,\"슙슚슜슞\",5,\"슦슧슩슪슫슮\",5,\"슶슸슺\",33,\"싞싟싡싢싥\",5,\"싮싰싲싳싴싵싷싺싽싾싿쌁\",6,\"쌊쌋쌎쌏\"],[\"9b41\",\"쌐쌑쌒쌖쌗쌙쌚쌛쌝\",6,\"쌦쌧쌪\",8],[\"9b61\",\"쌳\",17,\"썆\",7],[\"9b81\",\"썎\",25,\"썪썫썭썮썯썱썳\",4,\"썺썻썾\",5,\"쎅쎆쎇쎉쎊쎋쎍\",50,\"쏁\",22,\"쏚\"],[\"9c41\",\"쏛쏝쏞쏡쏣\",4,\"쏪쏫쏬쏮\",5,\"쏶쏷쏹\",5],[\"9c61\",\"쏿\",8,\"쐉\",6,\"쐑\",9],[\"9c81\",\"쐛\",8,\"쐥\",6,\"쐭쐮쐯쐱쐲쐳쐵\",6,\"쐾\",9,\"쑉\",26,\"쑦쑧쑩쑪쑫쑭\",6,\"쑶쑷쑸쑺\",5,\"쒁\",18,\"쒕\",6,\"쒝\",12],[\"9d41\",\"쒪\",13,\"쒹쒺쒻쒽\",8],[\"9d61\",\"쓆\",25],[\"9d81\",\"쓠\",8,\"쓪\",5,\"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂\",9,\"씍씎씏씑씒씓씕\",6,\"씝\",10,\"씪씫씭씮씯씱\",6,\"씺씼씾\",5,\"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩\",6,\"앲앶\",5,\"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔\"],[\"9e41\",\"얖얙얚얛얝얞얟얡\",7,\"얪\",9,\"얶\"],[\"9e61\",\"얷얺얿\",4,\"엋엍엏엒엓엕엖엗엙\",6,\"엢엤엦엧\"],[\"9e81\",\"엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑\",6,\"옚옝\",6,\"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉\",6,\"왒왖\",5,\"왞왟왡\",10,\"왭왮왰왲\",5,\"왺왻왽왾왿욁\",6,\"욊욌욎\",5,\"욖욗욙욚욛욝\",6,\"욦\"],[\"9f41\",\"욨욪\",5,\"욲욳욵욶욷욻\",4,\"웂웄웆\",5,\"웎\"],[\"9f61\",\"웏웑웒웓웕\",6,\"웞웟웢\",5,\"웪웫웭웮웯웱웲\"],[\"9f81\",\"웳\",4,\"웺웻웼웾\",5,\"윆윇윉윊윋윍\",6,\"윖윘윚\",5,\"윢윣윥윦윧윩\",6,\"윲윴윶윸윹윺윻윾윿읁읂읃읅\",4,\"읋읎읐읙읚읛읝읞읟읡\",6,\"읩읪읬\",7,\"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛\",4,\"잢잧\",4,\"잮잯잱잲잳잵잶잷\"],[\"a041\",\"잸잹잺잻잾쟂\",5,\"쟊쟋쟍쟏쟑\",6,\"쟙쟚쟛쟜\"],[\"a061\",\"쟞\",5,\"쟥쟦쟧쟩쟪쟫쟭\",13],[\"a081\",\"쟻\",4,\"젂젃젅젆젇젉젋\",4,\"젒젔젗\",4,\"젞젟젡젢젣젥\",6,\"젮젰젲\",5,\"젹젺젻젽젾젿졁\",6,\"졊졋졎\",5,\"졕\",26,\"졲졳졵졶졷졹졻\",4,\"좂좄좈좉좊좎\",5,\"좕\",7,\"좞좠좢좣좤\"],[\"a141\",\"좥좦좧좩\",18,\"좾좿죀죁\"],[\"a161\",\"죂죃죅죆죇죉죊죋죍\",6,\"죖죘죚\",5,\"죢죣죥\"],[\"a181\",\"죦\",14,\"죶\",5,\"죾죿줁줂줃줇\",4,\"줎　、。·‥…¨〃­―∥＼∼‘’“”〔〕〈\",9,\"±×÷≠≤≥∞∴°′″℃Å￠￡￥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨￢\"],[\"a241\",\"줐줒\",5,\"줙\",18],[\"a261\",\"줭\",6,\"줵\",18],[\"a281\",\"쥈\",7,\"쥒쥓쥕쥖쥗쥙\",6,\"쥢쥤\",7,\"쥭쥮쥯⇒⇔∀∃´～ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®\"],[\"a341\",\"쥱쥲쥳쥵\",6,\"쥽\",10,\"즊즋즍즎즏\"],[\"a361\",\"즑\",6,\"즚즜즞\",16],[\"a381\",\"즯\",16,\"짂짃짅짆짉짋\",4,\"짒짔짗짘짛！\",58,\"￦］\",32,\"￣\"],[\"a441\",\"짞짟짡짣짥짦짨짩짪짫짮짲\",5,\"짺짻짽짾짿쨁쨂쨃쨄\"],[\"a461\",\"쨅쨆쨇쨊쨎\",5,\"쨕쨖쨗쨙\",12],[\"a481\",\"쨦쨧쨨쨪\",28,\"ㄱ\",93],[\"a541\",\"쩇\",4,\"쩎쩏쩑쩒쩓쩕\",6,\"쩞쩢\",5,\"쩩쩪\"],[\"a561\",\"쩫\",17,\"쩾\",5,\"쪅쪆\"],[\"a581\",\"쪇\",16,\"쪙\",14,\"ⅰ\",9],[\"a5b0\",\"Ⅰ\",9],[\"a5c1\",\"Α\",16,\"Σ\",6],[\"a5e1\",\"α\",16,\"σ\",6],[\"a641\",\"쪨\",19,\"쪾쪿쫁쫂쫃쫅\"],[\"a661\",\"쫆\",5,\"쫎쫐쫒쫔쫕쫖쫗쫚\",5,\"쫡\",6],[\"a681\",\"쫨쫩쫪쫫쫭\",6,\"쫵\",18,\"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃\",7],[\"a741\",\"쬋\",4,\"쬑쬒쬓쬕쬖쬗쬙\",6,\"쬢\",7],[\"a761\",\"쬪\",22,\"쭂쭃쭄\"],[\"a781\",\"쭅쭆쭇쭊쭋쭍쭎쭏쭑\",6,\"쭚쭛쭜쭞\",5,\"쭥\",7,\"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙\",9,\"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰\",9,\"㎀\",4,\"㎺\",5,\"㎐\",4,\"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆\"],[\"a841\",\"쭭\",10,\"쭺\",14],[\"a861\",\"쮉\",18,\"쮝\",6],[\"a881\",\"쮤\",19,\"쮹\",11,\"ÆÐªĦ\"],[\"a8a6\",\"Ĳ\"],[\"a8a8\",\"ĿŁØŒºÞŦŊ\"],[\"a8b1\",\"㉠\",27,\"ⓐ\",25,\"①\",14,\"½⅓⅔¼¾⅛⅜⅝⅞\"],[\"a941\",\"쯅\",14,\"쯕\",10],[\"a961\",\"쯠쯡쯢쯣쯥쯦쯨쯪\",18],[\"a981\",\"쯽\",14,\"찎찏찑찒찓찕\",6,\"찞찟찠찣찤æđðħıĳĸŀłøœßþŧŋŉ㈀\",27,\"⒜\",25,\"⑴\",14,\"¹²³⁴ⁿ₁₂₃₄\"],[\"aa41\",\"찥찦찪찫찭찯찱\",6,\"찺찿\",4,\"챆챇챉챊챋챍챎\"],[\"aa61\",\"챏\",4,\"챖챚\",5,\"챡챢챣챥챧챩\",6,\"챱챲\"],[\"aa81\",\"챳챴챶\",29,\"ぁ\",82],[\"ab41\",\"첔첕첖첗첚첛첝첞첟첡\",6,\"첪첮\",5,\"첶첷첹\"],[\"ab61\",\"첺첻첽\",6,\"쳆쳈쳊\",5,\"쳑쳒쳓쳕\",5],[\"ab81\",\"쳛\",8,\"쳥\",6,\"쳭쳮쳯쳱\",12,\"ァ\",85],[\"ac41\",\"쳾쳿촀촂\",5,\"촊촋촍촎촏촑\",6,\"촚촜촞촟촠\"],[\"ac61\",\"촡촢촣촥촦촧촩촪촫촭\",11,\"촺\",4],[\"ac81\",\"촿\",28,\"쵝쵞쵟А\",5,\"ЁЖ\",25],[\"acd1\",\"а\",5,\"ёж\",25],[\"ad41\",\"쵡쵢쵣쵥\",6,\"쵮쵰쵲\",5,\"쵹\",7],[\"ad61\",\"춁\",6,\"춉\",10,\"춖춗춙춚춛춝춞춟\"],[\"ad81\",\"춠춡춢춣춦춨춪\",5,\"춱\",18,\"췅\"],[\"ae41\",\"췆\",5,\"췍췎췏췑\",16],[\"ae61\",\"췢\",5,\"췩췪췫췭췮췯췱\",6,\"췺췼췾\",4],[\"ae81\",\"츃츅츆츇츉츊츋츍\",6,\"츕츖츗츘츚\",5,\"츢츣츥츦츧츩츪츫\"],[\"af41\",\"츬츭츮츯츲츴츶\",19],[\"af61\",\"칊\",13,\"칚칛칝칞칢\",5,\"칪칬\"],[\"af81\",\"칮\",5,\"칶칷칹칺칻칽\",6,\"캆캈캊\",5,\"캒캓캕캖캗캙\"],[\"b041\",\"캚\",5,\"캢캦\",5,\"캮\",12],[\"b061\",\"캻\",5,\"컂\",19],[\"b081\",\"컖\",13,\"컦컧컩컪컭\",6,\"컶컺\",5,\"가각간갇갈갉갊감\",7,\"같\",4,\"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆\"],[\"b141\",\"켂켃켅켆켇켉\",6,\"켒켔켖\",5,\"켝켞켟켡켢켣\"],[\"b161\",\"켥\",6,\"켮켲\",5,\"켹\",11],[\"b181\",\"콅\",14,\"콖콗콙콚콛콝\",6,\"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸\"],[\"b241\",\"콭콮콯콲콳콵콶콷콹\",6,\"쾁쾂쾃쾄쾆\",5,\"쾍\"],[\"b261\",\"쾎\",18,\"쾢\",5,\"쾩\"],[\"b281\",\"쾪\",5,\"쾱\",18,\"쿅\",6,\"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙\"],[\"b341\",\"쿌\",19,\"쿢쿣쿥쿦쿧쿩\"],[\"b361\",\"쿪\",5,\"쿲쿴쿶\",5,\"쿽쿾쿿퀁퀂퀃퀅\",5],[\"b381\",\"퀋\",5,\"퀒\",5,\"퀙\",19,\"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫\",4,\"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝\"],[\"b441\",\"퀮\",5,\"퀶퀷퀹퀺퀻퀽\",6,\"큆큈큊\",5],[\"b461\",\"큑큒큓큕큖큗큙\",6,\"큡\",10,\"큮큯\"],[\"b481\",\"큱큲큳큵\",6,\"큾큿킀킂\",18,\"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫\",4,\"닳담답닷\",4,\"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥\"],[\"b541\",\"킕\",14,\"킦킧킩킪킫킭\",5],[\"b561\",\"킳킶킸킺\",5,\"탂탃탅탆탇탊\",5,\"탒탖\",4],[\"b581\",\"탛탞탟탡탢탣탥\",6,\"탮탲\",5,\"탹\",11,\"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸\"],[\"b641\",\"턅\",7,\"턎\",17],[\"b661\",\"턠\",15,\"턲턳턵턶턷턹턻턼턽턾\"],[\"b681\",\"턿텂텆\",5,\"텎텏텑텒텓텕\",6,\"텞텠텢\",5,\"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗\"],[\"b741\",\"텮\",13,\"텽\",6,\"톅톆톇톉톊\"],[\"b761\",\"톋\",20,\"톢톣톥톦톧\"],[\"b781\",\"톩\",6,\"톲톴톶톷톸톹톻톽톾톿퇁\",14,\"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩\"],[\"b841\",\"퇐\",7,\"퇙\",17],[\"b861\",\"퇫\",8,\"퇵퇶퇷퇹\",13],[\"b881\",\"툈툊\",5,\"툑\",24,\"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많\",4,\"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼\"],[\"b941\",\"툪툫툮툯툱툲툳툵\",6,\"툾퉀퉂\",5,\"퉉퉊퉋퉌\"],[\"b961\",\"퉍\",14,\"퉝\",6,\"퉥퉦퉧퉨\"],[\"b981\",\"퉩\",22,\"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바\",4,\"받\",4,\"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗\"],[\"ba41\",\"튍튎튏튒튓튔튖\",5,\"튝튞튟튡튢튣튥\",6,\"튭\"],[\"ba61\",\"튮튯튰튲\",5,\"튺튻튽튾틁틃\",4,\"틊틌\",5],[\"ba81\",\"틒틓틕틖틗틙틚틛틝\",6,\"틦\",9,\"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤\"],[\"bb41\",\"틻\",4,\"팂팄팆\",5,\"팏팑팒팓팕팗\",4,\"팞팢팣\"],[\"bb61\",\"팤팦팧팪팫팭팮팯팱\",6,\"팺팾\",5,\"퍆퍇퍈퍉\"],[\"bb81\",\"퍊\",31,\"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤\"],[\"bc41\",\"퍪\",17,\"퍾퍿펁펂펃펅펆펇\"],[\"bc61\",\"펈펉펊펋펎펒\",5,\"펚펛펝펞펟펡\",6,\"펪펬펮\"],[\"bc81\",\"펯\",4,\"펵펶펷펹펺펻펽\",6,\"폆폇폊\",5,\"폑\",5,\"샥샨샬샴샵샷샹섀섄섈섐섕서\",4,\"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭\"],[\"bd41\",\"폗폙\",7,\"폢폤\",7,\"폮폯폱폲폳폵폶폷\"],[\"bd61\",\"폸폹폺폻폾퐀퐂\",5,\"퐉\",13],[\"bd81\",\"퐗\",5,\"퐞\",25,\"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰\"],[\"be41\",\"퐸\",7,\"푁푂푃푅\",14],[\"be61\",\"푔\",7,\"푝푞푟푡푢푣푥\",7,\"푮푰푱푲\"],[\"be81\",\"푳\",4,\"푺푻푽푾풁풃\",4,\"풊풌풎\",5,\"풕\",8,\"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄\",6,\"엌엎\"],[\"bf41\",\"풞\",10,\"풪\",14],[\"bf61\",\"풹\",18,\"퓍퓎퓏퓑퓒퓓퓕\"],[\"bf81\",\"퓖\",5,\"퓝퓞퓠\",7,\"퓩퓪퓫퓭퓮퓯퓱\",6,\"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염\",5,\"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨\"],[\"c041\",\"퓾\",5,\"픅픆픇픉픊픋픍\",6,\"픖픘\",5],[\"c061\",\"픞\",25],[\"c081\",\"픸픹픺픻픾픿핁핂핃핅\",6,\"핎핐핒\",5,\"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응\",7,\"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊\"],[\"c141\",\"핤핦핧핪핬핮\",5,\"핶핷핹핺핻핽\",6,\"햆햊햋\"],[\"c161\",\"햌햍햎햏햑\",19,\"햦햧\"],[\"c181\",\"햨\",31,\"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓\"],[\"c241\",\"헊헋헍헎헏헑헓\",4,\"헚헜헞\",5,\"헦헧헩헪헫헭헮\"],[\"c261\",\"헯\",4,\"헶헸헺\",5,\"혂혃혅혆혇혉\",6,\"혒\"],[\"c281\",\"혖\",5,\"혝혞혟혡혢혣혥\",7,\"혮\",9,\"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻\"],[\"c341\",\"혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝\",4],[\"c361\",\"홢\",4,\"홨홪\",5,\"홲홳홵\",11],[\"c381\",\"횁횂횄횆\",5,\"횎횏횑횒횓횕\",7,\"횞횠횢\",5,\"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층\"],[\"c441\",\"횫횭횮횯횱\",7,\"횺횼\",7,\"훆훇훉훊훋\"],[\"c461\",\"훍훎훏훐훒훓훕훖훘훚\",5,\"훡훢훣훥훦훧훩\",4],[\"c481\",\"훮훯훱훲훳훴훶\",5,\"훾훿휁휂휃휅\",11,\"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼\"],[\"c541\",\"휕휖휗휚휛휝휞휟휡\",6,\"휪휬휮\",5,\"휶휷휹\"],[\"c561\",\"휺휻휽\",6,\"흅흆흈흊\",5,\"흒흓흕흚\",4],[\"c581\",\"흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵\",6,\"흾흿힀힂\",5,\"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜\"],[\"c641\",\"힍힎힏힑\",6,\"힚힜힞\",5],[\"c6a1\",\"퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁\"],[\"c7a1\",\"퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠\"],[\"c8a1\",\"혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝\"],[\"caa1\",\"伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕\"],[\"cba1\",\"匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢\"],[\"cca1\",\"瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械\"],[\"cda1\",\"棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜\"],[\"cea1\",\"科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾\"],[\"cfa1\",\"區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴\"],[\"d0a1\",\"鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣\"],[\"d1a1\",\"朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩\",5,\"那樂\",4,\"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉\"],[\"d2a1\",\"納臘蠟衲囊娘廊\",4,\"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧\",5,\"駑魯\",10,\"濃籠聾膿農惱牢磊腦賂雷尿壘\",7,\"嫩訥杻紐勒\",5,\"能菱陵尼泥匿溺多茶\"],[\"d3a1\",\"丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃\"],[\"d4a1\",\"棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅\"],[\"d5a1\",\"蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣\"],[\"d6a1\",\"煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼\"],[\"d7a1\",\"遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬\"],[\"d8a1\",\"立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅\"],[\"d9a1\",\"蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文\"],[\"daa1\",\"汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑\"],[\"dba1\",\"發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖\"],[\"dca1\",\"碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦\"],[\"dda1\",\"孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥\"],[\"dea1\",\"脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索\"],[\"dfa1\",\"傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署\"],[\"e0a1\",\"胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬\"],[\"e1a1\",\"聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁\"],[\"e2a1\",\"戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧\"],[\"e3a1\",\"嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁\"],[\"e4a1\",\"沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額\"],[\"e5a1\",\"櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬\"],[\"e6a1\",\"旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒\"],[\"e7a1\",\"簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳\"],[\"e8a1\",\"烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療\"],[\"e9a1\",\"窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓\"],[\"eaa1\",\"運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜\"],[\"eba1\",\"濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼\"],[\"eca1\",\"議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄\"],[\"eda1\",\"立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長\"],[\"eea1\",\"障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱\"],[\"efa1\",\"煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖\"],[\"f0a1\",\"靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫\"],[\"f1a1\",\"踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只\"],[\"f2a1\",\"咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯\"],[\"f3a1\",\"鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策\"],[\"f4a1\",\"責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢\"],[\"f5a1\",\"椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃\"],[\"f6a1\",\"贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託\"],[\"f7a1\",\"鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑\"],[\"f8a1\",\"阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃\"],[\"f9a1\",\"品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航\"],[\"faa1\",\"行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型\"],[\"fba1\",\"形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵\"],[\"fca1\",\"禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆\"],[\"fda1\",\"爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰\"]]");

/***/ }),
/* 694 */
/***/ (function(module) {

module.exports = JSON.parse("[[\"0\",\"\\u0000\",127],[\"a140\",\"　，、。．‧；：？！︰…‥﹐﹑﹒·﹔﹕﹖﹗｜–︱—︳╴︴﹏（）︵︶｛｝︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚\"],[\"a1a1\",\"﹛﹜﹝﹞‘’“”〝〞‵′＃＆＊※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯￣＿ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡＋－×÷±√＜＞＝≦≧≠∞≒≡﹢\",4,\"～∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣／\"],[\"a240\",\"＼∕﹨＄￥〒￠￡％＠℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁\",7,\"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭\"],[\"a2a1\",\"╮╰╯═╞╪╡◢◣◥◤╱╲╳０\",9,\"Ⅰ\",9,\"〡\",8,\"十卄卅Ａ\",25,\"ａ\",21],[\"a340\",\"ｗｘｙｚΑ\",16,\"Σ\",6,\"α\",16,\"σ\",6,\"ㄅ\",10],[\"a3a1\",\"ㄐ\",25,\"˙ˉˊˇˋ\"],[\"a3e1\",\"€\"],[\"a440\",\"一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才\"],[\"a4a1\",\"丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙\"],[\"a540\",\"世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外\"],[\"a5a1\",\"央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全\"],[\"a640\",\"共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年\"],[\"a6a1\",\"式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣\"],[\"a740\",\"作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍\"],[\"a7a1\",\"均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠\"],[\"a840\",\"杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒\"],[\"a8a1\",\"芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵\"],[\"a940\",\"咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居\"],[\"a9a1\",\"屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊\"],[\"aa40\",\"昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠\"],[\"aaa1\",\"炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附\"],[\"ab40\",\"陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品\"],[\"aba1\",\"哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷\"],[\"ac40\",\"拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗\"],[\"aca1\",\"活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄\"],[\"ad40\",\"耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥\"],[\"ada1\",\"迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪\"],[\"ae40\",\"哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙\"],[\"aea1\",\"恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓\"],[\"af40\",\"浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷\"],[\"afa1\",\"砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃\"],[\"b040\",\"虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡\"],[\"b0a1\",\"陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀\"],[\"b140\",\"娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽\"],[\"b1a1\",\"情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺\"],[\"b240\",\"毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶\"],[\"b2a1\",\"瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼\"],[\"b340\",\"莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途\"],[\"b3a1\",\"部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠\"],[\"b440\",\"婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍\"],[\"b4a1\",\"插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋\"],[\"b540\",\"溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘\"],[\"b5a1\",\"窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁\"],[\"b640\",\"詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑\"],[\"b6a1\",\"間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼\"],[\"b740\",\"媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業\"],[\"b7a1\",\"楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督\"],[\"b840\",\"睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫\"],[\"b8a1\",\"腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊\"],[\"b940\",\"辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴\"],[\"b9a1\",\"飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇\"],[\"ba40\",\"愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢\"],[\"baa1\",\"滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬\"],[\"bb40\",\"罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤\"],[\"bba1\",\"說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜\"],[\"bc40\",\"劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂\"],[\"bca1\",\"慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃\"],[\"bd40\",\"瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯\"],[\"bda1\",\"翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞\"],[\"be40\",\"輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉\"],[\"bea1\",\"鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡\"],[\"bf40\",\"濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊\"],[\"bfa1\",\"縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚\"],[\"c040\",\"錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇\"],[\"c0a1\",\"嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬\"],[\"c140\",\"瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪\"],[\"c1a1\",\"薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁\"],[\"c240\",\"駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘\"],[\"c2a1\",\"癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦\"],[\"c340\",\"鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸\"],[\"c3a1\",\"獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類\"],[\"c440\",\"願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼\"],[\"c4a1\",\"纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴\"],[\"c540\",\"護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬\"],[\"c5a1\",\"禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒\"],[\"c640\",\"讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲\"],[\"c940\",\"乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕\"],[\"c9a1\",\"氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋\"],[\"ca40\",\"汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘\"],[\"caa1\",\"吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇\"],[\"cb40\",\"杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓\"],[\"cba1\",\"芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢\"],[\"cc40\",\"坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋\"],[\"cca1\",\"怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲\"],[\"cd40\",\"泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺\"],[\"cda1\",\"矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏\"],[\"ce40\",\"哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛\"],[\"cea1\",\"峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺\"],[\"cf40\",\"柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂\"],[\"cfa1\",\"洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀\"],[\"d040\",\"穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪\"],[\"d0a1\",\"苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱\"],[\"d140\",\"唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧\"],[\"d1a1\",\"恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤\"],[\"d240\",\"毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸\"],[\"d2a1\",\"牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐\"],[\"d340\",\"笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢\"],[\"d3a1\",\"荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐\"],[\"d440\",\"酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅\"],[\"d4a1\",\"唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏\"],[\"d540\",\"崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟\"],[\"d5a1\",\"捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉\"],[\"d640\",\"淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏\"],[\"d6a1\",\"痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟\"],[\"d740\",\"耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷\"],[\"d7a1\",\"蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪\"],[\"d840\",\"釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷\"],[\"d8a1\",\"堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔\"],[\"d940\",\"惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒\"],[\"d9a1\",\"晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞\"],[\"da40\",\"湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖\"],[\"daa1\",\"琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥\"],[\"db40\",\"罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳\"],[\"dba1\",\"菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺\"],[\"dc40\",\"軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈\"],[\"dca1\",\"隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆\"],[\"dd40\",\"媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤\"],[\"dda1\",\"搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼\"],[\"de40\",\"毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓\"],[\"dea1\",\"煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓\"],[\"df40\",\"稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯\"],[\"dfa1\",\"腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤\"],[\"e040\",\"觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿\"],[\"e0a1\",\"遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠\"],[\"e140\",\"凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠\"],[\"e1a1\",\"寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉\"],[\"e240\",\"榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊\"],[\"e2a1\",\"漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓\"],[\"e340\",\"禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞\"],[\"e3a1\",\"耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻\"],[\"e440\",\"裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍\"],[\"e4a1\",\"銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘\"],[\"e540\",\"噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉\"],[\"e5a1\",\"憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒\"],[\"e640\",\"澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙\"],[\"e6a1\",\"獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟\"],[\"e740\",\"膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢\"],[\"e7a1\",\"蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧\"],[\"e840\",\"踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓\"],[\"e8a1\",\"銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮\"],[\"e940\",\"噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺\"],[\"e9a1\",\"憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸\"],[\"ea40\",\"澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙\"],[\"eaa1\",\"瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘\"],[\"eb40\",\"蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠\"],[\"eba1\",\"諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌\"],[\"ec40\",\"錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕\"],[\"eca1\",\"魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎\"],[\"ed40\",\"檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶\"],[\"eda1\",\"瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞\"],[\"ee40\",\"蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞\"],[\"eea1\",\"謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜\"],[\"ef40\",\"鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰\"],[\"efa1\",\"鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶\"],[\"f040\",\"璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒\"],[\"f0a1\",\"臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧\"],[\"f140\",\"蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪\"],[\"f1a1\",\"鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰\"],[\"f240\",\"徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛\"],[\"f2a1\",\"礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕\"],[\"f340\",\"譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦\"],[\"f3a1\",\"鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲\"],[\"f440\",\"嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩\"],[\"f4a1\",\"禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿\"],[\"f540\",\"鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛\"],[\"f5a1\",\"鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥\"],[\"f640\",\"蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺\"],[\"f6a1\",\"騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚\"],[\"f740\",\"糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊\"],[\"f7a1\",\"驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾\"],[\"f840\",\"讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏\"],[\"f8a1\",\"齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚\"],[\"f940\",\"纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊\"],[\"f9a1\",\"龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓\"]]");

/***/ }),
/* 695 */
/***/ (function(module) {

module.exports = JSON.parse("[[\"8740\",\"䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻\"],[\"8767\",\"綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬\"],[\"87a1\",\"𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋\"],[\"8840\",\"㇀\",4,\"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ\"],[\"88a1\",\"ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛\"],[\"8940\",\"𪎩𡅅\"],[\"8943\",\"攊\"],[\"8946\",\"丽滝鵎釟\"],[\"894c\",\"𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮\"],[\"89a1\",\"琑糼緍楆竉刧\"],[\"89ab\",\"醌碸酞肼\"],[\"89b0\",\"贋胶𠧧\"],[\"89b5\",\"肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁\"],[\"89c1\",\"溚舾甙\"],[\"89c5\",\"䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅\"],[\"8a40\",\"𧶄唥\"],[\"8a43\",\"𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓\"],[\"8a64\",\"𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕\"],[\"8a76\",\"䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯\"],[\"8aa1\",\"𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱\"],[\"8aac\",\"䠋𠆩㿺塳𢶍\"],[\"8ab2\",\"𤗈𠓼𦂗𠽌𠶖啹䂻䎺\"],[\"8abb\",\"䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃\"],[\"8ac9\",\"𪘁𠸉𢫏𢳉\"],[\"8ace\",\"𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻\"],[\"8adf\",\"𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌\"],[\"8af6\",\"𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭\"],[\"8b40\",\"𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹\"],[\"8b55\",\"𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑\"],[\"8ba1\",\"𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁\"],[\"8bde\",\"𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢\"],[\"8c40\",\"倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋\"],[\"8ca1\",\"𣏹椙橃𣱣泿\"],[\"8ca7\",\"爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚\"],[\"8cc9\",\"顨杫䉶圽\"],[\"8cce\",\"藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶\"],[\"8ce6\",\"峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻\"],[\"8d40\",\"𠮟\"],[\"8d42\",\"𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱\"],[\"8da1\",\"㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘\"],[\"8e40\",\"𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎\"],[\"8ea1\",\"繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛\"],[\"8f40\",\"蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖\"],[\"8fa1\",\"𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起\"],[\"9040\",\"趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛\"],[\"90a1\",\"𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜\"],[\"9140\",\"𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈\"],[\"91a1\",\"鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨\"],[\"9240\",\"𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘\"],[\"92a1\",\"働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃\"],[\"9340\",\"媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍\"],[\"93a1\",\"摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋\"],[\"9440\",\"銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻\"],[\"94a1\",\"㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡\"],[\"9540\",\"𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂\"],[\"95a1\",\"衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰\"],[\"9640\",\"桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸\"],[\"96a1\",\"𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉\"],[\"9740\",\"愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫\"],[\"97a1\",\"𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎\"],[\"9840\",\"𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦\"],[\"98a1\",\"咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃\"],[\"9940\",\"䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚\"],[\"99a1\",\"䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿\"],[\"9a40\",\"鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺\"],[\"9aa1\",\"黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪\"],[\"9b40\",\"𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌\"],[\"9b62\",\"𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎\"],[\"9ba1\",\"椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊\"],[\"9c40\",\"嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶\"],[\"9ca1\",\"㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏\"],[\"9d40\",\"𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁\"],[\"9da1\",\"辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢\"],[\"9e40\",\"𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺\"],[\"9ea1\",\"鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭\"],[\"9ead\",\"𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹\"],[\"9ec5\",\"㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲\"],[\"9ef5\",\"噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼\"],[\"9f40\",\"籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱\"],[\"9f4f\",\"凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰\"],[\"9fa1\",\"椬叚鰊鴂䰻陁榀傦畆𡝭駚剳\"],[\"9fae\",\"酙隁酜\"],[\"9fb2\",\"酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽\"],[\"9fc1\",\"𤤙盖鮝个𠳔莾衂\"],[\"9fc9\",\"届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳\"],[\"9fdb\",\"歒酼龥鮗頮颴骺麨麄煺笔\"],[\"9fe7\",\"毺蠘罸\"],[\"9feb\",\"嘠𪙊蹷齓\"],[\"9ff0\",\"跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇\"],[\"a040\",\"𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷\"],[\"a055\",\"𡠻𦸅\"],[\"a058\",\"詾𢔛\"],[\"a05b\",\"惽癧髗鵄鍮鮏蟵\"],[\"a063\",\"蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽\"],[\"a073\",\"坟慯抦戹拎㩜懢厪𣏵捤栂㗒\"],[\"a0a1\",\"嵗𨯂迚𨸹\"],[\"a0a6\",\"僙𡵆礆匲阸𠼻䁥\"],[\"a0ae\",\"矾\"],[\"a0b0\",\"糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦\"],[\"a0d4\",\"覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷\"],[\"a0e2\",\"罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫\"],[\"a3c0\",\"␀\",31,\"␡\"],[\"c6a1\",\"①\",9,\"⑴\",9,\"ⅰ\",9,\"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー［］✽ぁ\",23],[\"c740\",\"す\",58,\"ァアィイ\"],[\"c7a1\",\"ゥ\",81,\"А\",5,\"ЁЖ\",4],[\"c840\",\"Л\",26,\"ёж\",25,\"⇧↸↹㇏𠃌乚𠂊刂䒑\"],[\"c8a1\",\"龰冈龱𧘇\"],[\"c8cd\",\"￢￤＇＂㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣\"],[\"c8f5\",\"ʃɐɛɔɵœøŋʊɪ\"],[\"f9fe\",\"￭\"],[\"fa40\",\"𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸\"],[\"faa1\",\"鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍\"],[\"fb40\",\"𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙\"],[\"fba1\",\"𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂\"],[\"fc40\",\"廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷\"],[\"fca1\",\"𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝\"],[\"fd40\",\"𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀\"],[\"fda1\",\"𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎\"],[\"fe40\",\"鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌\"],[\"fea1\",\"𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔\"]]");

/***/ }),
/* 696 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var Buffer = __webpack_require__(324).Buffer,
    Transform = __webpack_require__(111).Transform;


// == Exports ==================================================================
module.exports = function(iconv) {
    
    // Additional Public API.
    iconv.encodeStream = function encodeStream(encoding, options) {
        return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
    }

    iconv.decodeStream = function decodeStream(encoding, options) {
        return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
    }

    iconv.supportsStreams = true;


    // Not published yet.
    iconv.IconvLiteEncoderStream = IconvLiteEncoderStream;
    iconv.IconvLiteDecoderStream = IconvLiteDecoderStream;
    iconv._collect = IconvLiteDecoderStream.prototype.collect;
};


// == Encoder stream =======================================================
function IconvLiteEncoderStream(conv, options) {
    this.conv = conv;
    options = options || {};
    options.decodeStrings = false; // We accept only strings, so we don't need to decode them.
    Transform.call(this, options);
}

IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
    constructor: { value: IconvLiteEncoderStream }
});

IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
    if (typeof chunk != 'string')
        return done(new Error("Iconv encoding stream needs strings as its input."));
    try {
        var res = this.conv.write(chunk);
        if (res && res.length) this.push(res);
        done();
    }
    catch (e) {
        done(e);
    }
}

IconvLiteEncoderStream.prototype._flush = function(done) {
    try {
        var res = this.conv.end();
        if (res && res.length) this.push(res);
        done();
    }
    catch (e) {
        done(e);
    }
}

IconvLiteEncoderStream.prototype.collect = function(cb) {
    var chunks = [];
    this.on('error', cb);
    this.on('data', function(chunk) { chunks.push(chunk); });
    this.on('end', function() {
        cb(null, Buffer.concat(chunks));
    });
    return this;
}


// == Decoder stream =======================================================
function IconvLiteDecoderStream(conv, options) {
    this.conv = conv;
    options = options || {};
    options.encoding = this.encoding = 'utf8'; // We output strings.
    Transform.call(this, options);
}

IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
    constructor: { value: IconvLiteDecoderStream }
});

IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
    if (!Buffer.isBuffer(chunk))
        return done(new Error("Iconv decoding stream needs buffers as its input."));
    try {
        var res = this.conv.write(chunk);
        if (res && res.length) this.push(res, this.encoding);
        done();
    }
    catch (e) {
        done(e);
    }
}

IconvLiteDecoderStream.prototype._flush = function(done) {
    try {
        var res = this.conv.end();
        if (res && res.length) this.push(res, this.encoding);                
        done();
    }
    catch (e) {
        done(e);
    }
}

IconvLiteDecoderStream.prototype.collect = function(cb) {
    var res = '';
    this.on('error', cb);
    this.on('data', function(chunk) { res += chunk; });
    this.on('end', function() {
        cb(null, res);
    });
    return this;
}



/***/ }),
/* 697 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var Buffer = __webpack_require__(324).Buffer;
// Note: not polyfilled with safer-buffer on a purpose, as overrides Buffer

// == Extend Node primitives to use iconv-lite =================================

module.exports = function (iconv) {
    var original = undefined; // Place to keep original methods.

    // Node authors rewrote Buffer internals to make it compatible with
    // Uint8Array and we cannot patch key functions since then.
    // Note: this does use older Buffer API on a purpose
    iconv.supportsNodeEncodingsExtension = !(Buffer.from || new Buffer(0) instanceof Uint8Array);

    iconv.extendNodeEncodings = function extendNodeEncodings() {
        if (original) return;
        original = {};

        if (!iconv.supportsNodeEncodingsExtension) {
            console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node");
            console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");
            return;
        }

        var nodeNativeEncodings = {
            'hex': true, 'utf8': true, 'utf-8': true, 'ascii': true, 'binary': true, 
            'base64': true, 'ucs2': true, 'ucs-2': true, 'utf16le': true, 'utf-16le': true,
        };

        Buffer.isNativeEncoding = function(enc) {
            return enc && nodeNativeEncodings[enc.toLowerCase()];
        }

        // -- SlowBuffer -----------------------------------------------------------
        var SlowBuffer = __webpack_require__(324).SlowBuffer;

        original.SlowBufferToString = SlowBuffer.prototype.toString;
        SlowBuffer.prototype.toString = function(encoding, start, end) {
            encoding = String(encoding || 'utf8').toLowerCase();

            // Use native conversion when possible
            if (Buffer.isNativeEncoding(encoding))
                return original.SlowBufferToString.call(this, encoding, start, end);

            // Otherwise, use our decoding method.
            if (typeof start == 'undefined') start = 0;
            if (typeof end == 'undefined') end = this.length;
            return iconv.decode(this.slice(start, end), encoding);
        }

        original.SlowBufferWrite = SlowBuffer.prototype.write;
        SlowBuffer.prototype.write = function(string, offset, length, encoding) {
            // Support both (string, offset, length, encoding)
            // and the legacy (string, encoding, offset, length)
            if (isFinite(offset)) {
                if (!isFinite(length)) {
                    encoding = length;
                    length = undefined;
                }
            } else {  // legacy
                var swap = encoding;
                encoding = offset;
                offset = length;
                length = swap;
            }

            offset = +offset || 0;
            var remaining = this.length - offset;
            if (!length) {
                length = remaining;
            } else {
                length = +length;
                if (length > remaining) {
                    length = remaining;
                }
            }
            encoding = String(encoding || 'utf8').toLowerCase();

            // Use native conversion when possible
            if (Buffer.isNativeEncoding(encoding))
                return original.SlowBufferWrite.call(this, string, offset, length, encoding);

            if (string.length > 0 && (length < 0 || offset < 0))
                throw new RangeError('attempt to write beyond buffer bounds');

            // Otherwise, use our encoding method.
            var buf = iconv.encode(string, encoding);
            if (buf.length < length) length = buf.length;
            buf.copy(this, offset, 0, length);
            return length;
        }

        // -- Buffer ---------------------------------------------------------------

        original.BufferIsEncoding = Buffer.isEncoding;
        Buffer.isEncoding = function(encoding) {
            return Buffer.isNativeEncoding(encoding) || iconv.encodingExists(encoding);
        }

        original.BufferByteLength = Buffer.byteLength;
        Buffer.byteLength = SlowBuffer.byteLength = function(str, encoding) {
            encoding = String(encoding || 'utf8').toLowerCase();

            // Use native conversion when possible
            if (Buffer.isNativeEncoding(encoding))
                return original.BufferByteLength.call(this, str, encoding);

            // Slow, I know, but we don't have a better way yet.
            return iconv.encode(str, encoding).length;
        }

        original.BufferToString = Buffer.prototype.toString;
        Buffer.prototype.toString = function(encoding, start, end) {
            encoding = String(encoding || 'utf8').toLowerCase();

            // Use native conversion when possible
            if (Buffer.isNativeEncoding(encoding))
                return original.BufferToString.call(this, encoding, start, end);

            // Otherwise, use our decoding method.
            if (typeof start == 'undefined') start = 0;
            if (typeof end == 'undefined') end = this.length;
            return iconv.decode(this.slice(start, end), encoding);
        }

        original.BufferWrite = Buffer.prototype.write;
        Buffer.prototype.write = function(string, offset, length, encoding) {
            var _offset = offset, _length = length, _encoding = encoding;
            // Support both (string, offset, length, encoding)
            // and the legacy (string, encoding, offset, length)
            if (isFinite(offset)) {
                if (!isFinite(length)) {
                    encoding = length;
                    length = undefined;
                }
            } else {  // legacy
                var swap = encoding;
                encoding = offset;
                offset = length;
                length = swap;
            }

            encoding = String(encoding || 'utf8').toLowerCase();

            // Use native conversion when possible
            if (Buffer.isNativeEncoding(encoding))
                return original.BufferWrite.call(this, string, _offset, _length, _encoding);

            offset = +offset || 0;
            var remaining = this.length - offset;
            if (!length) {
                length = remaining;
            } else {
                length = +length;
                if (length > remaining) {
                    length = remaining;
                }
            }

            if (string.length > 0 && (length < 0 || offset < 0))
                throw new RangeError('attempt to write beyond buffer bounds');

            // Otherwise, use our encoding method.
            var buf = iconv.encode(string, encoding);
            if (buf.length < length) length = buf.length;
            buf.copy(this, offset, 0, length);
            return length;

            // TODO: Set _charsWritten.
        }


        // -- Readable -------------------------------------------------------------
        if (iconv.supportsStreams) {
            var Readable = __webpack_require__(111).Readable;

            original.ReadableSetEncoding = Readable.prototype.setEncoding;
            Readable.prototype.setEncoding = function setEncoding(enc, options) {
                // Use our own decoder, it has the same interface.
                // We cannot use original function as it doesn't handle BOM-s.
                this._readableState.decoder = iconv.getDecoder(enc, options);
                this._readableState.encoding = enc;
            }

            Readable.prototype.collect = iconv._collect;
        }
    }

    // Remove iconv-lite Node primitive extensions.
    iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() {
        if (!iconv.supportsNodeEncodingsExtension)
            return;
        if (!original)
            throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.")

        delete Buffer.isNativeEncoding;

        var SlowBuffer = __webpack_require__(324).SlowBuffer;

        SlowBuffer.prototype.toString = original.SlowBufferToString;
        SlowBuffer.prototype.write = original.SlowBufferWrite;

        Buffer.isEncoding = original.BufferIsEncoding;
        Buffer.byteLength = original.BufferByteLength;
        Buffer.prototype.toString = original.BufferToString;
        Buffer.prototype.write = original.BufferWrite;

        if (iconv.supportsStreams) {
            var Readable = __webpack_require__(111).Readable;

            Readable.prototype.setEncoding = original.ReadableSetEncoding;
            delete Readable.prototype.collect;
        }

        original = undefined;
    }
}


/***/ }),
/* 698 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_ENCODING = 'utf8';


/***/ }),
/* 699 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(166);
const proc_1 = __webpack_require__(700);
const types_3 = __webpack_require__(148);
let ProcessServiceFactory = class ProcessServiceFactory {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.envVarsService = serviceContainer.get(types_2.IEnvironmentVariablesProvider);
    }
    async create(resource) {
        const customEnvVars = await this.envVarsService.getEnvironmentVariables(resource);
        const decoder = this.serviceContainer.get(types_3.IBufferDecoder);
        return new proc_1.ProcessService(decoder, customEnvVars);
    }
};
ProcessServiceFactory = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], ProcessServiceFactory);
exports.ProcessServiceFactory = ProcessServiceFactory;


/***/ }),
/* 700 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
const child_process_1 = __webpack_require__(145);
const Observable_1 = __webpack_require__(701);
const tree_kill_1 = __importDefault(__webpack_require__(717));
const async_1 = __webpack_require__(150);
const constants_1 = __webpack_require__(698);
const types_1 = __webpack_require__(148);
// tslint:disable:no-any
class ProcessService {
    constructor(decoder, env) {
        this.decoder = decoder;
        this.env = env;
    }
    static isAlive(pid) {
        try {
            process.kill(pid, 0);
            return true;
        }
        catch (_a) {
            return false;
        }
    }
    static kill(pid) {
        // tslint:disable-next-line:no-require-imports
        const killProcessTree = __webpack_require__(717);
        try {
            killProcessTree(pid);
        }
        catch (_a) {
            // Ignore.
        }
    }
    execObservable(file, args, options = {}) {
        const spawnOptions = this.getDefaultOptions(options);
        const encoding = spawnOptions.encoding ? spawnOptions.encoding : 'utf8';
        const proc = child_process_1.spawn(file, args, spawnOptions);
        let procExited = false;
        const output = new Observable_1.Observable(subscriber => {
            if (options.token) {
                options.token.onCancellationRequested(() => {
                    if (!procExited && !proc.killed) {
                        proc.kill();
                        procExited = true;
                    }
                });
            }
            const sendOutput = (source, data) => {
                const out = this.decoder.decode([data], encoding);
                if (source === 'stderr' && options.throwOnStdErr) {
                    subscriber.error(new types_1.StdErrError(out));
                }
                else {
                    subscriber.next({ source, out });
                }
            };
            proc.stdout.on('data', (data) => sendOutput('stdout', data));
            proc.stderr.on('data', (data) => sendOutput('stderr', data));
            const onExit = (ex) => {
                if (procExited)
                    return;
                procExited = true;
                if (ex)
                    subscriber.error(ex);
                subscriber.complete();
            };
            proc.once('close', () => {
                onExit();
            });
            proc.once('error', onExit);
        });
        return {
            proc,
            out: output,
            dispose: () => {
                if (proc && !proc.killed) {
                    tree_kill_1.default(proc.pid);
                }
            }
        };
    }
    exec(file, args, options = {}) {
        const spawnOptions = this.getDefaultOptions(options);
        const encoding = spawnOptions.encoding ? spawnOptions.encoding : 'utf8';
        const proc = child_process_1.spawn(file, args, spawnOptions);
        const deferred = async_1.createDeferred();
        if (options.token) {
            options.token.onCancellationRequested(() => {
                if (!proc.killed && !deferred.completed) {
                    proc.kill();
                }
            });
        }
        const stdoutBuffers = [];
        proc.stdout.on('data', (data) => stdoutBuffers.push(data));
        const stderrBuffers = [];
        proc.stderr.on('data', (data) => {
            if (options.mergeStdOutErr) {
                stdoutBuffers.push(data);
                stderrBuffers.push(data);
            }
            else {
                stderrBuffers.push(data);
            }
        });
        proc.once('close', () => {
            if (deferred.completed) {
                return;
            }
            const stderr = stderrBuffers.length === 0 ? undefined : this.decoder.decode(stderrBuffers, encoding);
            if (stderr && stderr.length > 0 && options.throwOnStdErr) {
                deferred.reject(new types_1.StdErrError(stderr));
            }
            else {
                const stdout = this.decoder.decode(stdoutBuffers, encoding);
                deferred.resolve({ stdout, stderr });
            }
        });
        proc.once('error', ex => {
            deferred.reject(ex);
        });
        return deferred.promise;
    }
    shellExec(command, options = {}) {
        const shellOptions = this.getDefaultOptions(options);
        return new Promise((resolve, reject) => {
            child_process_1.exec(command, shellOptions, (e, stdout, stderr) => {
                if (e && e !== null) {
                    reject(e);
                }
                else if (shellOptions.throwOnStdErr && stderr && stderr.length) {
                    reject(new Error(stderr));
                }
                else {
                    // Make sure stderr is undefined if we actually had none. This is checked
                    // elsewhere because that's how exec behaves.
                    resolve({ stderr: stderr && stderr.length > 0 ? stderr : undefined, stdout });
                }
            });
        });
    }
    getDefaultOptions(options) {
        const defaultOptions = Object.assign({}, options);
        const execOptions = defaultOptions;
        if (execOptions) {
            const encoding = execOptions.encoding = typeof execOptions.encoding === 'string' && execOptions.encoding.length > 0 ? execOptions.encoding : constants_1.DEFAULT_ENCODING;
            delete execOptions.encoding;
            execOptions.encoding = encoding;
        }
        if (!defaultOptions.env || Object.keys(defaultOptions.env).length === 0) {
            const env = this.env ? this.env : process.env;
            defaultOptions.env = Object.assign({}, env);
        }
        else {
            defaultOptions.env = Object.assign({}, defaultOptions.env);
        }
        // Always ensure we have unbuffered output.
        defaultOptions.env.PYTHONUNBUFFERED = '1';
        if (!defaultOptions.env.PYTHONIOENCODING) {
            defaultOptions.env.PYTHONIOENCODING = 'utf-8';
        }
        return defaultOptions;
    }
}
exports.ProcessService = ProcessService;


/***/ }),
/* 701 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var root_1 = __webpack_require__(702);
var toSubscriber_1 = __webpack_require__(703);
var observable_1 = __webpack_require__(714);
var pipe_1 = __webpack_require__(715);
/**
 * A representation of any set of values over any amount of time. This is the most basic building block
 * of RxJS.
 *
 * @class Observable<T>
 */
var Observable = (function () {
    /**
     * @constructor
     * @param {Function} subscribe the function that is called when the Observable is
     * initially subscribed to. This function is given a Subscriber, to which new values
     * can be `next`ed, or an `error` method can be called to raise an error, or
     * `complete` can be called to notify of a successful completion.
     */
    function Observable(subscribe) {
        this._isScalar = false;
        if (subscribe) {
            this._subscribe = subscribe;
        }
    }
    /**
     * Creates a new Observable, with this Observable as the source, and the passed
     * operator defined as the new observable's operator.
     * @method lift
     * @param {Operator} operator the operator defining the operation to take on the observable
     * @return {Observable} a new observable with the Operator applied
     */
    Observable.prototype.lift = function (operator) {
        var observable = new Observable();
        observable.source = this;
        observable.operator = operator;
        return observable;
    };
    /**
     * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.
     *
     * <span class="informal">Use it when you have all these Observables, but still nothing is happening.</span>
     *
     * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It
     * might be for example a function that you passed to a {@link create} static factory, but most of the time it is
     * a library implementation, which defines what and when will be emitted by an Observable. This means that calling
     * `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often
     * thought.
     *
     * Apart from starting the execution of an Observable, this method allows you to listen for values
     * that an Observable emits, as well as for when it completes or errors. You can achieve this in two
     * following ways.
     *
     * The first way is creating an object that implements {@link Observer} interface. It should have methods
     * defined by that interface, but note that it should be just a regular JavaScript object, which you can create
     * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do
     * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also
     * that your object does not have to implement all methods. If you find yourself creating a method that doesn't
     * do anything, you can simply omit it. Note however, that if `error` method is not provided, all errors will
     * be left uncaught.
     *
     * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.
     * This means you can provide three functions as arguments to `subscribe`, where first function is equivalent
     * of a `next` method, second of an `error` method and third of a `complete` method. Just as in case of Observer,
     * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,
     * since `subscribe` recognizes these functions by where they were placed in function call. When it comes
     * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.
     *
     * Whatever style of calling `subscribe` you use, in both cases it returns a Subscription object.
     * This object allows you to call `unsubscribe` on it, which in turn will stop work that an Observable does and will clean
     * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback
     * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.
     *
     * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.
     * It is an Observable itself that decides when these functions will be called. For example {@link of}
     * by default emits all its values synchronously. Always check documentation for how given Observable
     * will behave when subscribed and if its default behavior can be modified with a {@link Scheduler}.
     *
     * @example <caption>Subscribe with an Observer</caption>
     * const sumObserver = {
     *   sum: 0,
     *   next(value) {
     *     console.log('Adding: ' + value);
     *     this.sum = this.sum + value;
     *   },
     *   error() { // We actually could just remove this method,
     *   },        // since we do not really care about errors right now.
     *   complete() {
     *     console.log('Sum equals: ' + this.sum);
     *   }
     * };
     *
     * Rx.Observable.of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.
     * .subscribe(sumObserver);
     *
     * // Logs:
     * // "Adding: 1"
     * // "Adding: 2"
     * // "Adding: 3"
     * // "Sum equals: 6"
     *
     *
     * @example <caption>Subscribe with functions</caption>
     * let sum = 0;
     *
     * Rx.Observable.of(1, 2, 3)
     * .subscribe(
     *   function(value) {
     *     console.log('Adding: ' + value);
     *     sum = sum + value;
     *   },
     *   undefined,
     *   function() {
     *     console.log('Sum equals: ' + sum);
     *   }
     * );
     *
     * // Logs:
     * // "Adding: 1"
     * // "Adding: 2"
     * // "Adding: 3"
     * // "Sum equals: 6"
     *
     *
     * @example <caption>Cancel a subscription</caption>
     * const subscription = Rx.Observable.interval(1000).subscribe(
     *   num => console.log(num),
     *   undefined,
     *   () => console.log('completed!') // Will not be called, even
     * );                                // when cancelling subscription
     *
     *
     * setTimeout(() => {
     *   subscription.unsubscribe();
     *   console.log('unsubscribed!');
     * }, 2500);
     *
     * // Logs:
     * // 0 after 1s
     * // 1 after 2s
     * // "unsubscribed!" after 2.5s
     *
     *
     * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,
     *  or the first of three possible handlers, which is the handler for each value emitted from the subscribed
     *  Observable.
     * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,
     *  the error will be thrown as unhandled.
     * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.
     * @return {ISubscription} a subscription reference to the registered handlers
     * @method subscribe
     */
    Observable.prototype.subscribe = function (observerOrNext, error, complete) {
        var operator = this.operator;
        var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);
        if (operator) {
            operator.call(sink, this.source);
        }
        else {
            sink.add(this.source || !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink));
        }
        if (sink.syncErrorThrowable) {
            sink.syncErrorThrowable = false;
            if (sink.syncErrorThrown) {
                throw sink.syncErrorValue;
            }
        }
        return sink;
    };
    Observable.prototype._trySubscribe = function (sink) {
        try {
            return this._subscribe(sink);
        }
        catch (err) {
            sink.syncErrorThrown = true;
            sink.syncErrorValue = err;
            sink.error(err);
        }
    };
    /**
     * @method forEach
     * @param {Function} next a handler for each value emitted by the observable
     * @param {PromiseConstructor} [PromiseCtor] a constructor function used to instantiate the Promise
     * @return {Promise} a promise that either resolves on observable completion or
     *  rejects with the handled error
     */
    Observable.prototype.forEach = function (next, PromiseCtor) {
        var _this = this;
        if (!PromiseCtor) {
            if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {
                PromiseCtor = root_1.root.Rx.config.Promise;
            }
            else if (root_1.root.Promise) {
                PromiseCtor = root_1.root.Promise;
            }
        }
        if (!PromiseCtor) {
            throw new Error('no Promise impl found');
        }
        return new PromiseCtor(function (resolve, reject) {
            // Must be declared in a separate statement to avoid a RefernceError when
            // accessing subscription below in the closure due to Temporal Dead Zone.
            var subscription;
            subscription = _this.subscribe(function (value) {
                if (subscription) {
                    // if there is a subscription, then we can surmise
                    // the next handling is asynchronous. Any errors thrown
                    // need to be rejected explicitly and unsubscribe must be
                    // called manually
                    try {
                        next(value);
                    }
                    catch (err) {
                        reject(err);
                        subscription.unsubscribe();
                    }
                }
                else {
                    // if there is NO subscription, then we're getting a nexted
                    // value synchronously during subscription. We can just call it.
                    // If it errors, Observable's `subscribe` will ensure the
                    // unsubscription logic is called, then synchronously rethrow the error.
                    // After that, Promise will trap the error and send it
                    // down the rejection path.
                    next(value);
                }
            }, reject, resolve);
        });
    };
    /** @deprecated internal use only */ Observable.prototype._subscribe = function (subscriber) {
        return this.source.subscribe(subscriber);
    };
    /**
     * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable
     * @method Symbol.observable
     * @return {Observable} this instance of the observable
     */
    Observable.prototype[observable_1.observable] = function () {
        return this;
    };
    /* tslint:enable:max-line-length */
    /**
     * Used to stitch together functional operators into a chain.
     * @method pipe
     * @return {Observable} the Observable result of all of the operators having
     * been called in the order they were passed in.
     *
     * @example
     *
     * import { map, filter, scan } from 'rxjs/operators';
     *
     * Rx.Observable.interval(1000)
     *   .pipe(
     *     filter(x => x % 2 === 0),
     *     map(x => x + x),
     *     scan((acc, x) => acc + x)
     *   )
     *   .subscribe(x => console.log(x))
     */
    Observable.prototype.pipe = function () {
        var operations = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            operations[_i - 0] = arguments[_i];
        }
        if (operations.length === 0) {
            return this;
        }
        return pipe_1.pipeFromArray(operations)(this);
    };
    /* tslint:enable:max-line-length */
    Observable.prototype.toPromise = function (PromiseCtor) {
        var _this = this;
        if (!PromiseCtor) {
            if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {
                PromiseCtor = root_1.root.Rx.config.Promise;
            }
            else if (root_1.root.Promise) {
                PromiseCtor = root_1.root.Promise;
            }
        }
        if (!PromiseCtor) {
            throw new Error('no Promise impl found');
        }
        return new PromiseCtor(function (resolve, reject) {
            var value;
            _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });
        });
    };
    // HACK: Since TypeScript inherits static properties too, we have to
    // fight against TypeScript here so Subject can have a different static create signature
    /**
     * Creates a new cold Observable by calling the Observable constructor
     * @static true
     * @owner Observable
     * @method create
     * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor
     * @return {Observable} a new cold observable
     */
    Observable.create = function (subscribe) {
        return new Observable(subscribe);
    };
    return Observable;
}());
exports.Observable = Observable;
//# sourceMappingURL=Observable.js.map

/***/ }),
/* 702 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// CommonJS / Node have global context exposed as "global" variable.
// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake
// the global "global" var for now.
var __window = typeof window !== 'undefined' && window;
var __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&
    self instanceof WorkerGlobalScope && self;
var __global = typeof global !== 'undefined' && global;
var _root = __window || __global || __self;
exports.root = _root;
// Workaround Closure Compiler restriction: The body of a goog.module cannot use throw.
// This is needed when used with angular/tsickle which inserts a goog.module statement.
// Wrap in IIFE
(function () {
    if (!_root) {
        throw new Error('RxJS could not find any global context (window, self, global)');
    }
})();
//# sourceMappingURL=root.js.map

/***/ }),
/* 703 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var Subscriber_1 = __webpack_require__(704);
var rxSubscriber_1 = __webpack_require__(713);
var Observer_1 = __webpack_require__(712);
function toSubscriber(nextOrObserver, error, complete) {
    if (nextOrObserver) {
        if (nextOrObserver instanceof Subscriber_1.Subscriber) {
            return nextOrObserver;
        }
        if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {
            return nextOrObserver[rxSubscriber_1.rxSubscriber]();
        }
    }
    if (!nextOrObserver && !error && !complete) {
        return new Subscriber_1.Subscriber(Observer_1.empty);
    }
    return new Subscriber_1.Subscriber(nextOrObserver, error, complete);
}
exports.toSubscriber = toSubscriber;
//# sourceMappingURL=toSubscriber.js.map

/***/ }),
/* 704 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var isFunction_1 = __webpack_require__(705);
var Subscription_1 = __webpack_require__(706);
var Observer_1 = __webpack_require__(712);
var rxSubscriber_1 = __webpack_require__(713);
/**
 * Implements the {@link Observer} interface and extends the
 * {@link Subscription} class. While the {@link Observer} is the public API for
 * consuming the values of an {@link Observable}, all Observers get converted to
 * a Subscriber, in order to provide Subscription-like capabilities such as
 * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for
 * implementing operators, but it is rarely used as a public API.
 *
 * @class Subscriber<T>
 */
var Subscriber = (function (_super) {
    __extends(Subscriber, _super);
    /**
     * @param {Observer|function(value: T): void} [destinationOrNext] A partially
     * defined Observer or a `next` callback function.
     * @param {function(e: ?any): void} [error] The `error` callback of an
     * Observer.
     * @param {function(): void} [complete] The `complete` callback of an
     * Observer.
     */
    function Subscriber(destinationOrNext, error, complete) {
        _super.call(this);
        this.syncErrorValue = null;
        this.syncErrorThrown = false;
        this.syncErrorThrowable = false;
        this.isStopped = false;
        switch (arguments.length) {
            case 0:
                this.destination = Observer_1.empty;
                break;
            case 1:
                if (!destinationOrNext) {
                    this.destination = Observer_1.empty;
                    break;
                }
                if (typeof destinationOrNext === 'object') {
                    // HACK(benlesh): To resolve an issue where Node users may have multiple
                    // copies of rxjs in their node_modules directory.
                    if (isTrustedSubscriber(destinationOrNext)) {
                        var trustedSubscriber = destinationOrNext[rxSubscriber_1.rxSubscriber]();
                        this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable;
                        this.destination = trustedSubscriber;
                        trustedSubscriber.add(this);
                    }
                    else {
                        this.syncErrorThrowable = true;
                        this.destination = new SafeSubscriber(this, destinationOrNext);
                    }
                    break;
                }
            default:
                this.syncErrorThrowable = true;
                this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);
                break;
        }
    }
    Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; };
    /**
     * A static factory for a Subscriber, given a (potentially partial) definition
     * of an Observer.
     * @param {function(x: ?T): void} [next] The `next` callback of an Observer.
     * @param {function(e: ?any): void} [error] The `error` callback of an
     * Observer.
     * @param {function(): void} [complete] The `complete` callback of an
     * Observer.
     * @return {Subscriber<T>} A Subscriber wrapping the (partially defined)
     * Observer represented by the given arguments.
     */
    Subscriber.create = function (next, error, complete) {
        var subscriber = new Subscriber(next, error, complete);
        subscriber.syncErrorThrowable = false;
        return subscriber;
    };
    /**
     * The {@link Observer} callback to receive notifications of type `next` from
     * the Observable, with a value. The Observable may call this method 0 or more
     * times.
     * @param {T} [value] The `next` value.
     * @return {void}
     */
    Subscriber.prototype.next = function (value) {
        if (!this.isStopped) {
            this._next(value);
        }
    };
    /**
     * The {@link Observer} callback to receive notifications of type `error` from
     * the Observable, with an attached {@link Error}. Notifies the Observer that
     * the Observable has experienced an error condition.
     * @param {any} [err] The `error` exception.
     * @return {void}
     */
    Subscriber.prototype.error = function (err) {
        if (!this.isStopped) {
            this.isStopped = true;
            this._error(err);
        }
    };
    /**
     * The {@link Observer} callback to receive a valueless notification of type
     * `complete` from the Observable. Notifies the Observer that the Observable
     * has finished sending push-based notifications.
     * @return {void}
     */
    Subscriber.prototype.complete = function () {
        if (!this.isStopped) {
            this.isStopped = true;
            this._complete();
        }
    };
    Subscriber.prototype.unsubscribe = function () {
        if (this.closed) {
            return;
        }
        this.isStopped = true;
        _super.prototype.unsubscribe.call(this);
    };
    Subscriber.prototype._next = function (value) {
        this.destination.next(value);
    };
    Subscriber.prototype._error = function (err) {
        this.destination.error(err);
        this.unsubscribe();
    };
    Subscriber.prototype._complete = function () {
        this.destination.complete();
        this.unsubscribe();
    };
    /** @deprecated internal use only */ Subscriber.prototype._unsubscribeAndRecycle = function () {
        var _a = this, _parent = _a._parent, _parents = _a._parents;
        this._parent = null;
        this._parents = null;
        this.unsubscribe();
        this.closed = false;
        this.isStopped = false;
        this._parent = _parent;
        this._parents = _parents;
        return this;
    };
    return Subscriber;
}(Subscription_1.Subscription));
exports.Subscriber = Subscriber;
/**
 * We need this JSDoc comment for affecting ESDoc.
 * @ignore
 * @extends {Ignored}
 */
var SafeSubscriber = (function (_super) {
    __extends(SafeSubscriber, _super);
    function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {
        _super.call(this);
        this._parentSubscriber = _parentSubscriber;
        var next;
        var context = this;
        if (isFunction_1.isFunction(observerOrNext)) {
            next = observerOrNext;
        }
        else if (observerOrNext) {
            next = observerOrNext.next;
            error = observerOrNext.error;
            complete = observerOrNext.complete;
            if (observerOrNext !== Observer_1.empty) {
                context = Object.create(observerOrNext);
                if (isFunction_1.isFunction(context.unsubscribe)) {
                    this.add(context.unsubscribe.bind(context));
                }
                context.unsubscribe = this.unsubscribe.bind(this);
            }
        }
        this._context = context;
        this._next = next;
        this._error = error;
        this._complete = complete;
    }
    SafeSubscriber.prototype.next = function (value) {
        if (!this.isStopped && this._next) {
            var _parentSubscriber = this._parentSubscriber;
            if (!_parentSubscriber.syncErrorThrowable) {
                this.__tryOrUnsub(this._next, value);
            }
            else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
                this.unsubscribe();
            }
        }
    };
    SafeSubscriber.prototype.error = function (err) {
        if (!this.isStopped) {
            var _parentSubscriber = this._parentSubscriber;
            if (this._error) {
                if (!_parentSubscriber.syncErrorThrowable) {
                    this.__tryOrUnsub(this._error, err);
                    this.unsubscribe();
                }
                else {
                    this.__tryOrSetError(_parentSubscriber, this._error, err);
                    this.unsubscribe();
                }
            }
            else if (!_parentSubscriber.syncErrorThrowable) {
                this.unsubscribe();
                throw err;
            }
            else {
                _parentSubscriber.syncErrorValue = err;
                _parentSubscriber.syncErrorThrown = true;
                this.unsubscribe();
            }
        }
    };
    SafeSubscriber.prototype.complete = function () {
        var _this = this;
        if (!this.isStopped) {
            var _parentSubscriber = this._parentSubscriber;
            if (this._complete) {
                var wrappedComplete = function () { return _this._complete.call(_this._context); };
                if (!_parentSubscriber.syncErrorThrowable) {
                    this.__tryOrUnsub(wrappedComplete);
                    this.unsubscribe();
                }
                else {
                    this.__tryOrSetError(_parentSubscriber, wrappedComplete);
                    this.unsubscribe();
                }
            }
            else {
                this.unsubscribe();
            }
        }
    };
    SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {
        try {
            fn.call(this._context, value);
        }
        catch (err) {
            this.unsubscribe();
            throw err;
        }
    };
    SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {
        try {
            fn.call(this._context, value);
        }
        catch (err) {
            parent.syncErrorValue = err;
            parent.syncErrorThrown = true;
            return true;
        }
        return false;
    };
    /** @deprecated internal use only */ SafeSubscriber.prototype._unsubscribe = function () {
        var _parentSubscriber = this._parentSubscriber;
        this._context = null;
        this._parentSubscriber = null;
        _parentSubscriber.unsubscribe();
    };
    return SafeSubscriber;
}(Subscriber));
function isTrustedSubscriber(obj) {
    return obj instanceof Subscriber || ('syncErrorThrowable' in obj && obj[rxSubscriber_1.rxSubscriber]);
}
//# sourceMappingURL=Subscriber.js.map

/***/ }),
/* 705 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

function isFunction(x) {
    return typeof x === 'function';
}
exports.isFunction = isFunction;
//# sourceMappingURL=isFunction.js.map

/***/ }),
/* 706 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var isArray_1 = __webpack_require__(707);
var isObject_1 = __webpack_require__(708);
var isFunction_1 = __webpack_require__(705);
var tryCatch_1 = __webpack_require__(709);
var errorObject_1 = __webpack_require__(710);
var UnsubscriptionError_1 = __webpack_require__(711);
/**
 * Represents a disposable resource, such as the execution of an Observable. A
 * Subscription has one important method, `unsubscribe`, that takes no argument
 * and just disposes the resource held by the subscription.
 *
 * Additionally, subscriptions may be grouped together through the `add()`
 * method, which will attach a child Subscription to the current Subscription.
 * When a Subscription is unsubscribed, all its children (and its grandchildren)
 * will be unsubscribed as well.
 *
 * @class Subscription
 */
var Subscription = (function () {
    /**
     * @param {function(): void} [unsubscribe] A function describing how to
     * perform the disposal of resources when the `unsubscribe` method is called.
     */
    function Subscription(unsubscribe) {
        /**
         * A flag to indicate whether this Subscription has already been unsubscribed.
         * @type {boolean}
         */
        this.closed = false;
        this._parent = null;
        this._parents = null;
        this._subscriptions = null;
        if (unsubscribe) {
            this._unsubscribe = unsubscribe;
        }
    }
    /**
     * Disposes the resources held by the subscription. May, for instance, cancel
     * an ongoing Observable execution or cancel any other type of work that
     * started when the Subscription was created.
     * @return {void}
     */
    Subscription.prototype.unsubscribe = function () {
        var hasErrors = false;
        var errors;
        if (this.closed) {
            return;
        }
        var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;
        this.closed = true;
        this._parent = null;
        this._parents = null;
        // null out _subscriptions first so any child subscriptions that attempt
        // to remove themselves from this subscription will noop
        this._subscriptions = null;
        var index = -1;
        var len = _parents ? _parents.length : 0;
        // if this._parent is null, then so is this._parents, and we
        // don't have to remove ourselves from any parent subscriptions.
        while (_parent) {
            _parent.remove(this);
            // if this._parents is null or index >= len,
            // then _parent is set to null, and the loop exits
            _parent = ++index < len && _parents[index] || null;
        }
        if (isFunction_1.isFunction(_unsubscribe)) {
            var trial = tryCatch_1.tryCatch(_unsubscribe).call(this);
            if (trial === errorObject_1.errorObject) {
                hasErrors = true;
                errors = errors || (errorObject_1.errorObject.e instanceof UnsubscriptionError_1.UnsubscriptionError ?
                    flattenUnsubscriptionErrors(errorObject_1.errorObject.e.errors) : [errorObject_1.errorObject.e]);
            }
        }
        if (isArray_1.isArray(_subscriptions)) {
            index = -1;
            len = _subscriptions.length;
            while (++index < len) {
                var sub = _subscriptions[index];
                if (isObject_1.isObject(sub)) {
                    var trial = tryCatch_1.tryCatch(sub.unsubscribe).call(sub);
                    if (trial === errorObject_1.errorObject) {
                        hasErrors = true;
                        errors = errors || [];
                        var err = errorObject_1.errorObject.e;
                        if (err instanceof UnsubscriptionError_1.UnsubscriptionError) {
                            errors = errors.concat(flattenUnsubscriptionErrors(err.errors));
                        }
                        else {
                            errors.push(err);
                        }
                    }
                }
            }
        }
        if (hasErrors) {
            throw new UnsubscriptionError_1.UnsubscriptionError(errors);
        }
    };
    /**
     * Adds a tear down to be called during the unsubscribe() of this
     * Subscription.
     *
     * If the tear down being added is a subscription that is already
     * unsubscribed, is the same reference `add` is being called on, or is
     * `Subscription.EMPTY`, it will not be added.
     *
     * If this subscription is already in an `closed` state, the passed
     * tear down logic will be executed immediately.
     *
     * @param {TeardownLogic} teardown The additional logic to execute on
     * teardown.
     * @return {Subscription} Returns the Subscription used or created to be
     * added to the inner subscriptions list. This Subscription can be used with
     * `remove()` to remove the passed teardown logic from the inner subscriptions
     * list.
     */
    Subscription.prototype.add = function (teardown) {
        if (!teardown || (teardown === Subscription.EMPTY)) {
            return Subscription.EMPTY;
        }
        if (teardown === this) {
            return this;
        }
        var subscription = teardown;
        switch (typeof teardown) {
            case 'function':
                subscription = new Subscription(teardown);
            case 'object':
                if (subscription.closed || typeof subscription.unsubscribe !== 'function') {
                    return subscription;
                }
                else if (this.closed) {
                    subscription.unsubscribe();
                    return subscription;
                }
                else if (typeof subscription._addParent !== 'function' /* quack quack */) {
                    var tmp = subscription;
                    subscription = new Subscription();
                    subscription._subscriptions = [tmp];
                }
                break;
            default:
                throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');
        }
        var subscriptions = this._subscriptions || (this._subscriptions = []);
        subscriptions.push(subscription);
        subscription._addParent(this);
        return subscription;
    };
    /**
     * Removes a Subscription from the internal list of subscriptions that will
     * unsubscribe during the unsubscribe process of this Subscription.
     * @param {Subscription} subscription The subscription to remove.
     * @return {void}
     */
    Subscription.prototype.remove = function (subscription) {
        var subscriptions = this._subscriptions;
        if (subscriptions) {
            var subscriptionIndex = subscriptions.indexOf(subscription);
            if (subscriptionIndex !== -1) {
                subscriptions.splice(subscriptionIndex, 1);
            }
        }
    };
    Subscription.prototype._addParent = function (parent) {
        var _a = this, _parent = _a._parent, _parents = _a._parents;
        if (!_parent || _parent === parent) {
            // If we don't have a parent, or the new parent is the same as the
            // current parent, then set this._parent to the new parent.
            this._parent = parent;
        }
        else if (!_parents) {
            // If there's already one parent, but not multiple, allocate an Array to
            // store the rest of the parent Subscriptions.
            this._parents = [parent];
        }
        else if (_parents.indexOf(parent) === -1) {
            // Only add the new parent to the _parents list if it's not already there.
            _parents.push(parent);
        }
    };
    Subscription.EMPTY = (function (empty) {
        empty.closed = true;
        return empty;
    }(new Subscription()));
    return Subscription;
}());
exports.Subscription = Subscription;
function flattenUnsubscriptionErrors(errors) {
    return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);
}
//# sourceMappingURL=Subscription.js.map

/***/ }),
/* 707 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

exports.isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });
//# sourceMappingURL=isArray.js.map

/***/ }),
/* 708 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

function isObject(x) {
    return x != null && typeof x === 'object';
}
exports.isObject = isObject;
//# sourceMappingURL=isObject.js.map

/***/ }),
/* 709 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var errorObject_1 = __webpack_require__(710);
var tryCatchTarget;
function tryCatcher() {
    try {
        return tryCatchTarget.apply(this, arguments);
    }
    catch (e) {
        errorObject_1.errorObject.e = e;
        return errorObject_1.errorObject;
    }
}
function tryCatch(fn) {
    tryCatchTarget = fn;
    return tryCatcher;
}
exports.tryCatch = tryCatch;
;
//# sourceMappingURL=tryCatch.js.map

/***/ }),
/* 710 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// typeof any so that it we don't have to cast when comparing a result to the error object
exports.errorObject = { e: {} };
//# sourceMappingURL=errorObject.js.map

/***/ }),
/* 711 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
/**
 * An error thrown when one or more errors have occurred during the
 * `unsubscribe` of a {@link Subscription}.
 */
var UnsubscriptionError = (function (_super) {
    __extends(UnsubscriptionError, _super);
    function UnsubscriptionError(errors) {
        _super.call(this);
        this.errors = errors;
        var err = Error.call(this, errors ?
            errors.length + " errors occurred during unsubscription:\n  " + errors.map(function (err, i) { return ((i + 1) + ") " + err.toString()); }).join('\n  ') : '');
        this.name = err.name = 'UnsubscriptionError';
        this.stack = err.stack;
        this.message = err.message;
    }
    return UnsubscriptionError;
}(Error));
exports.UnsubscriptionError = UnsubscriptionError;
//# sourceMappingURL=UnsubscriptionError.js.map

/***/ }),
/* 712 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

exports.empty = {
    closed: true,
    next: function (value) { },
    error: function (err) { throw err; },
    complete: function () { }
};
//# sourceMappingURL=Observer.js.map

/***/ }),
/* 713 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var root_1 = __webpack_require__(702);
var Symbol = root_1.root.Symbol;
exports.rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') ?
    Symbol.for('rxSubscriber') : '@@rxSubscriber';
/**
 * @deprecated use rxSubscriber instead
 */
exports.$$rxSubscriber = exports.rxSubscriber;
//# sourceMappingURL=rxSubscriber.js.map

/***/ }),
/* 714 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var root_1 = __webpack_require__(702);
function getSymbolObservable(context) {
    var $$observable;
    var Symbol = context.Symbol;
    if (typeof Symbol === 'function') {
        if (Symbol.observable) {
            $$observable = Symbol.observable;
        }
        else {
            $$observable = Symbol('observable');
            Symbol.observable = $$observable;
        }
    }
    else {
        $$observable = '@@observable';
    }
    return $$observable;
}
exports.getSymbolObservable = getSymbolObservable;
exports.observable = getSymbolObservable(root_1.root);
/**
 * @deprecated use observable instead
 */
exports.$$observable = exports.observable;
//# sourceMappingURL=observable.js.map

/***/ }),
/* 715 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var noop_1 = __webpack_require__(716);
/* tslint:enable:max-line-length */
function pipe() {
    var fns = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        fns[_i - 0] = arguments[_i];
    }
    return pipeFromArray(fns);
}
exports.pipe = pipe;
/* @internal */
function pipeFromArray(fns) {
    if (!fns) {
        return noop_1.noop;
    }
    if (fns.length === 1) {
        return fns[0];
    }
    return function piped(input) {
        return fns.reduce(function (prev, fn) { return fn(prev); }, input);
    };
}
exports.pipeFromArray = pipeFromArray;
//# sourceMappingURL=pipe.js.map

/***/ }),
/* 716 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/* tslint:disable:no-empty */
function noop() { }
exports.noop = noop;
//# sourceMappingURL=noop.js.map

/***/ }),
/* 717 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var childProcess = __webpack_require__(145);
var spawn = childProcess.spawn;
var exec = childProcess.exec;

module.exports = function (pid, signal, callback) {
    var tree = {};
    var pidsToProcess = {};
    tree[pid] = [];
    pidsToProcess[pid] = 1;
    
    if (typeof signal === 'function' && callback === undefined) {
      callback = signal;
      signal = undefined;
    }

    switch (process.platform) {
    case 'win32':
        exec('taskkill /pid ' + pid + ' /T /F', callback);
        break;
    case 'darwin':
        buildProcessTree(pid, tree, pidsToProcess, function (parentPid) {
          return spawn('pgrep', ['-P', parentPid]);
        }, function () {
            killAll(tree, signal, callback);
        });
        break;
    // case 'sunos':
    //     buildProcessTreeSunOS(pid, tree, pidsToProcess, function () {
    //         killAll(tree, signal, callback);
    //     });
    //     break;
    default: // Linux
        buildProcessTree(pid, tree, pidsToProcess, function (parentPid) {
          return spawn('ps', ['-o', 'pid', '--no-headers', '--ppid', parentPid]);
        }, function () {
            killAll(tree, signal, callback);
        });
        break;
    }
};

function killAll (tree, signal, callback) {
    var killed = {};
    try {
        Object.keys(tree).forEach(function (pid) {
            tree[pid].forEach(function (pidpid) {
                if (!killed[pidpid]) {
                    killPid(pidpid, signal);
                    killed[pidpid] = 1;
                }
            });
            if (!killed[pid]) {
                killPid(pid, signal);
                killed[pid] = 1;
            }
        });
    } catch (err) {
        if (callback) {
            return callback(err);
        } else {
            throw err;
        }
    }
    if (callback) {
        return callback();
    }
}

function killPid(pid, signal) {
    try {
        process.kill(parseInt(pid, 10), signal);
    }
    catch (err) {
        if (err.code !== 'ESRCH') throw err;
    }
}

function buildProcessTree (parentPid, tree, pidsToProcess, spawnChildProcessesList, cb) {
    var ps = spawnChildProcessesList(parentPid);
    var allData = '';
    ps.stdout.on('data', function (data) {
        var data = data.toString('ascii');
        allData += data;
    });

    var onClose = function (code) {
        delete pidsToProcess[parentPid];

        if (code != 0) {
            // no more parent processes
            if (Object.keys(pidsToProcess).length == 0) {
                cb();
            }
            return;
        }

        allData.match(/\d+/g).forEach(function (pid) {
          pid = parseInt(pid, 10);
          tree[parentPid].push(pid);
          tree[pid] = [];
          pidsToProcess[pid] = 1;
          buildProcessTree(pid, tree, pidsToProcess, spawnChildProcessesList, cb);
        });
    };

    ps.on('close', onClose);
}


/***/ }),
/* 718 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(257);
const types_2 = __webpack_require__(95);
const types_3 = __webpack_require__(75);
const proc_1 = __webpack_require__(700);
const pythonProcess_1 = __webpack_require__(719);
const types_4 = __webpack_require__(148);
let PythonExecutionFactory = class PythonExecutionFactory {
    constructor(serviceContainer, activationHelper, processServiceFactory, configService, decoder) {
        this.serviceContainer = serviceContainer;
        this.activationHelper = activationHelper;
        this.processServiceFactory = processServiceFactory;
        this.configService = configService;
        this.decoder = decoder;
    }
    async create(options) {
        const pythonPath = options.pythonPath ? options.pythonPath : this.configService.getSettings(options.resource).pythonPath;
        const processService = await this.processServiceFactory.create(options.resource);
        return new pythonProcess_1.PythonExecutionService(this.serviceContainer, processService, pythonPath);
    }
    async createActivatedEnvironment(options) {
        const envVars = await this.activationHelper.getActivatedEnvironmentVariables(options.resource, options.interpreter, options.allowEnvironmentFetchExceptions);
        const hasEnvVars = envVars && Object.keys(envVars).length > 0;
        if (!hasEnvVars) {
            return this.create({ resource: options.resource, pythonPath: options.interpreter ? options.interpreter.path : undefined });
        }
        const pythonPath = options.interpreter ? options.interpreter.path : this.configService.getSettings(options.resource).pythonPath;
        const processService = new proc_1.ProcessService(this.decoder, Object.assign({}, envVars));
        return new pythonProcess_1.PythonExecutionService(this.serviceContainer, processService, pythonPath);
    }
};
PythonExecutionFactory = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer)),
    __param(1, inversify_1.inject(types_1.IEnvironmentActivationService)),
    __param(2, inversify_1.inject(types_4.IProcessServiceFactory)),
    __param(3, inversify_1.inject(types_3.IConfigurationService)),
    __param(4, inversify_1.inject(types_4.IBufferDecoder))
], PythonExecutionFactory);
exports.PythonExecutionFactory = PythonExecutionFactory;


/***/ }),
/* 719 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const constants_1 = __webpack_require__(84);
const errorUtils_1 = __webpack_require__(720);
const moduleNotInstalledError_1 = __webpack_require__(88);
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
const platform_1 = __webpack_require__(627);
const version_1 = __webpack_require__(671);
let PythonExecutionService = class PythonExecutionService {
    constructor(serviceContainer, procService, pythonPath) {
        this.procService = procService;
        this.pythonPath = pythonPath;
        this.fileSystem = serviceContainer.get(types_1.IFileSystem);
    }
    async getInterpreterInformation() {
        const file = path.join(constants_1.EXTENSION_ROOT_DIR, 'pythonFiles', 'interpreterInfo.py');
        try {
            const jsonValue = await this.procService.exec(this.pythonPath, [file], { mergeStdOutErr: true })
                .then(output => output.stdout.trim());
            let json;
            try {
                json = JSON.parse(jsonValue);
            }
            catch (ex) {
                logger_1.traceError(`Failed to parse interpreter information for '${this.pythonPath}' with JSON ${jsonValue}`, ex);
                return;
            }
            const versionValue = json.versionInfo.length === 4 ? `${json.versionInfo.slice(0, 3).join('.')}-${json.versionInfo[3]}` : json.versionInfo.join('.');
            return {
                architecture: json.is64Bit ? platform_1.Architecture.x64 : platform_1.Architecture.x86,
                path: this.pythonPath,
                version: version_1.parsePythonVersion(versionValue),
                sysVersion: json.sysVersion,
                sysPrefix: json.sysPrefix
            };
        }
        catch (ex) {
            logger_1.traceError(`Failed to get interpreter information for '${this.pythonPath}'`, ex);
        }
    }
    async getExecutablePath() {
        // If we've passed the python file, then return the file.
        // This is because on mac if using the interpreter /usr/bin/python2.7 we can get a different value for the path
        if (await this.fileSystem.fileExists(this.pythonPath)) {
            return this.pythonPath;
        }
        return this.procService.exec(this.pythonPath, ['-c', 'import sys;print(sys.executable)'], { throwOnStdErr: true })
            .then(output => output.stdout.trim());
    }
    async isModuleInstalled(moduleName) {
        return this.procService.exec(this.pythonPath, ['-c', `import ${moduleName}`], { throwOnStdErr: true })
            .then(() => true).catch(() => false);
    }
    execObservable(args, options) {
        const opts = Object.assign({}, options);
        return this.procService.execObservable(this.pythonPath, args, opts);
    }
    execModuleObservable(moduleName, args, options) {
        const opts = Object.assign({}, options);
        return this.procService.execObservable(this.pythonPath, ['-m', moduleName, ...args], opts);
    }
    async exec(args, options) {
        const opts = Object.assign({}, options);
        return this.procService.exec(this.pythonPath, args, opts);
    }
    async execModule(moduleName, args, options) {
        const opts = Object.assign({}, options);
        const result = await this.procService.exec(this.pythonPath, ['-m', moduleName, ...args], opts);
        // If a module is not installed we'll have something in stderr.
        if (moduleName && errorUtils_1.ErrorUtils.outputHasModuleNotInstalledError(moduleName, result.stderr)) {
            const isInstalled = await this.isModuleInstalled(moduleName);
            if (!isInstalled) {
                throw new moduleNotInstalledError_1.ModuleNotInstalledError(moduleName);
            }
        }
        return result;
    }
};
PythonExecutionService = __decorate([
    inversify_1.injectable()
], PythonExecutionService);
exports.PythonExecutionService = PythonExecutionService;


/***/ }),
/* 720 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable-next-line:no-stateless-class no-unnecessary-class
class ErrorUtils {
    static outputHasModuleNotInstalledError(moduleName, content) {
        return content && (content.indexOf(`No module named ${moduleName}`) > 0 || content.indexOf(`No module named '${moduleName}'`) > 0) ? true : false;
    }
}
exports.ErrorUtils = ErrorUtils;


/***/ }),
/* 721 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(148);
let PythonToolExecutionService = class PythonToolExecutionService {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    async execObservable(executionInfo, options, resource) {
        if (options.env) {
            throw new Error('Environment variables are not supported');
        }
        if (executionInfo.moduleName && executionInfo.moduleName.length > 0) {
            const pythonExecutionService = await this.serviceContainer.get(types_2.IPythonExecutionFactory).create({ resource });
            return pythonExecutionService.execModuleObservable(executionInfo.moduleName, executionInfo.args, options);
        }
        else {
            const processService = await this.serviceContainer.get(types_2.IProcessServiceFactory).create(resource);
            return processService.execObservable(executionInfo.execPath, executionInfo.args, Object.assign({}, options));
        }
    }
    async exec(executionInfo, options, resource) {
        if (options.env) {
            throw new Error('Environment variables are not supported');
        }
        if (executionInfo.moduleName && executionInfo.moduleName.length > 0) {
            const pythonExecutionService = await this.serviceContainer.get(types_2.IPythonExecutionFactory).create({ resource });
            return pythonExecutionService.execModule(executionInfo.moduleName, executionInfo.args, options);
        }
        else {
            const processService = await this.serviceContainer.get(types_2.IProcessServiceFactory).create(resource);
            return processService.exec(executionInfo.execPath, executionInfo.args, Object.assign({}, options));
        }
    }
};
PythonToolExecutionService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], PythonToolExecutionService);
exports.PythonToolExecutionService = PythonToolExecutionService;


/***/ }),
/* 722 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
const types_1 = __webpack_require__(77);
const applicationEnvironment_1 = __webpack_require__(723);
const applicationShell_1 = __webpack_require__(725);
const commandManager_1 = __webpack_require__(726);
const documentManager_1 = __webpack_require__(727);
const extensions_1 = __webpack_require__(728);
const terminalManager_1 = __webpack_require__(729);
const types_2 = __webpack_require__(78);
const workspace_1 = __webpack_require__(730);
const asyncDisposableRegistry_1 = __webpack_require__(731);
const service_1 = __webpack_require__(732);
const editor_1 = __webpack_require__(194);
const featureDeprecationManager_1 = __webpack_require__(735);
const productInstaller_1 = __webpack_require__(736);
const logger_1 = __webpack_require__(86);
const browser_1 = __webpack_require__(737);
const httpClient_1 = __webpack_require__(738);
const nugetService_1 = __webpack_require__(739);
const types_3 = __webpack_require__(74);
const persistentState_1 = __webpack_require__(740);
const constants_1 = __webpack_require__(147);
const pathUtils_1 = __webpack_require__(741);
const currentProcess_1 = __webpack_require__(742);
const activator_1 = __webpack_require__(743);
const powershellFailedHandler_1 = __webpack_require__(746);
const bash_1 = __webpack_require__(747);
const commandPrompt_1 = __webpack_require__(749);
const condaActivationProvider_1 = __webpack_require__(750);
const pipEnvActivationProvider_1 = __webpack_require__(751);
const pyenvActivationProvider_1 = __webpack_require__(752);
const factory_1 = __webpack_require__(753);
const helper_1 = __webpack_require__(755);
const types_4 = __webpack_require__(744);
const types_5 = __webpack_require__(75);
const random_1 = __webpack_require__(79);
function registerTypes(serviceManager) {
    serviceManager.addSingletonInstance(types_5.IsWindows, constants_1.IS_WINDOWS);
    serviceManager.addSingleton(types_5.IExtensions, extensions_1.Extensions);
    serviceManager.addSingleton(types_5.IRandom, random_1.Random);
    serviceManager.addSingleton(types_5.IPersistentStateFactory, persistentState_1.PersistentStateFactory);
    serviceManager.addSingleton(types_5.ILogger, logger_1.Logger);
    serviceManager.addSingleton(types_4.ITerminalServiceFactory, factory_1.TerminalServiceFactory);
    serviceManager.addSingleton(types_5.IPathUtils, pathUtils_1.PathUtils);
    serviceManager.addSingleton(types_2.IApplicationShell, applicationShell_1.ApplicationShell);
    serviceManager.addSingleton(types_5.ICurrentProcess, currentProcess_1.CurrentProcess);
    serviceManager.addSingleton(types_5.IInstaller, productInstaller_1.ProductInstaller);
    serviceManager.addSingleton(types_2.ICommandManager, commandManager_1.CommandManager);
    serviceManager.addSingleton(types_5.IConfigurationService, service_1.ConfigurationService);
    serviceManager.addSingleton(types_2.IWorkspaceService, workspace_1.WorkspaceService);
    serviceManager.addSingleton(types_2.IDocumentManager, documentManager_1.DocumentManager);
    serviceManager.addSingleton(types_2.ITerminalManager, terminalManager_1.TerminalManager);
    serviceManager.addSingleton(types_2.IApplicationEnvironment, applicationEnvironment_1.ApplicationEnvironment);
    serviceManager.addSingleton(types_5.IBrowserService, browser_1.BrowserService);
    serviceManager.addSingleton(types_1.IHttpClient, httpClient_1.HttpClient);
    serviceManager.addSingleton(types_5.IEditorUtils, editor_1.EditorUtils);
    serviceManager.addSingleton(types_3.INugetService, nugetService_1.NugetService);
    serviceManager.addSingleton(types_4.ITerminalActivator, activator_1.TerminalActivator);
    serviceManager.addSingleton(types_4.ITerminalActivationHandler, powershellFailedHandler_1.PowershellTerminalActivationFailedHandler);
    serviceManager.addSingleton(types_4.ITerminalHelper, helper_1.TerminalHelper);
    serviceManager.addSingleton(types_4.ITerminalActivationCommandProvider, bash_1.Bash, types_4.TerminalActivationProviders.bashCShellFish);
    serviceManager.addSingleton(types_4.ITerminalActivationCommandProvider, commandPrompt_1.CommandPromptAndPowerShell, types_4.TerminalActivationProviders.commandPromptAndPowerShell);
    serviceManager.addSingleton(types_4.ITerminalActivationCommandProvider, pyenvActivationProvider_1.PyEnvActivationCommandProvider, types_4.TerminalActivationProviders.pyenv);
    serviceManager.addSingleton(types_4.ITerminalActivationCommandProvider, condaActivationProvider_1.CondaActivationCommandProvider, types_4.TerminalActivationProviders.conda);
    serviceManager.addSingleton(types_4.ITerminalActivationCommandProvider, pipEnvActivationProvider_1.PipEnvActivationCommandProvider, types_4.TerminalActivationProviders.pipenv);
    serviceManager.addSingleton(types_5.IFeatureDeprecationManager, featureDeprecationManager_1.FeatureDeprecationManager);
    serviceManager.addSingleton(types_5.IAsyncDisposableRegistry, asyncDisposableRegistry_1.AsyncDisposableRegistry);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 723 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
let ApplicationEnvironment = class ApplicationEnvironment {
    get appName() {
        return 'coc.nvim';
    }
    get appRoot() {
        return coc_nvim_1.workspace.pluginRoot;
    }
    get language() {
        return 'en';
    }
    get sessionId() {
        return process.pid.toString();
    }
    get machineId() {
        return '';
    }
    get extensionName() {
        // tslint:disable-next-line:non-literal-require
        return this.packageJson.name;
    }
    // tslint:disable-next-line:no-any
    get packageJson() {
        // tslint:disable-next-line:non-literal-require no-require-imports
        return __webpack_require__(724);
    }
};
ApplicationEnvironment = __decorate([
    inversify_1.injectable()
], ApplicationEnvironment);
exports.ApplicationEnvironment = ApplicationEnvironment;


/***/ }),
/* 724 */
/***/ (function(module) {

module.exports = JSON.parse("{\"name\":\"coc-python\",\"version\":\"1.2.12\",\"languageServerVersion\":\"0.2.92\",\"description\":\"Python extension for coc.nvim, forked from vscode-python.\",\"main\":\"lib/index.js\",\"publisher\":\"chemzqm\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/neoclide/coc-python\"},\"bugs\":{\"url\":\"https://github.com/neoclide/coc-python/issues\"},\"keywords\":[\"python\",\"coc.nvim\",\"mpls\"],\"engines\":{\"coc\":\">= 0.0.73\"},\"scripts\":{\"clean\":\"rimraf lib\",\"build\":\"webpack\",\"prepare\":\"npx npm-run-all clean build\"},\"activationEvents\":[\"onLanguage:python\",\"onLanguage:jupyter\",\"onCommand:python.sortImports\",\"onCommand:python.viewOutput\",\"onCommand:python.startREPL\",\"onCommand:python.goToPythonObject\",\"onCommand:python.setLinter\",\"onCommand:python.enableLinting\",\"onCommand:python.enableSourceMapSupport\"],\"contributes\":{\"snippets\":[{\"language\":\"python\",\"path\":\"./snippets/python.json\"}],\"jsonValidation\":[{\"fileMatch\":\".condarc\",\"url\":\"./schemas/condarc.json\"},{\"fileMatch\":\"environment.yml\",\"url\":\"./schemas/conda-environment.json\"},{\"fileMatch\":\"meta.yaml\",\"url\":\"./schemas/conda-meta.json\"}],\"yamlValidation\":[{\"fileMatch\":\".condarc\",\"url\":\"./schemas/condarc.json\"},{\"fileMatch\":\"environment.yml\",\"url\":\"./schemas/conda-environment.json\"},{\"fileMatch\":\"meta.yaml\",\"url\":\"./schemas/conda-meta.json\"}],\"commands\":[{\"command\":\"python.enableSourceMapSupport\",\"title\":\"Enable source map support for extension debugging\",\"category\":\"Python\"},{\"command\":\"python.sortImports\",\"title\":\"Sort Imports\",\"category\":\"Python Refactor\"},{\"command\":\"python.startREPL\",\"title\":\"Start REPL\",\"category\":\"Python\"},{\"command\":\"python.createTerminal\",\"title\":\"Create Terminal\",\"category\":\"Python\"},{\"command\":\"python.buildWorkspaceSymbols\",\"title\":\"Build Workspace Symbols\",\"category\":\"Python\"},{\"command\":\"python.execInTerminal\",\"title\":\"Run Python File in Terminal\",\"category\":\"Python\"},{\"command\":\"python.setInterpreter\",\"title\":\"Select Interpreter\",\"category\":\"Python\"},{\"command\":\"python.upgradePythonLanguageServer\",\"title\":\"Upgrade MPLS to latest stable version, restart coc.nvim required to take effect.\",\"category\":\"Python\"},{\"command\":\"python.viewOutput\",\"title\":\"Show output\",\"category\":\"Python\"},{\"command\":\"python.goToPythonObject\",\"title\":\"Go to Python Object\",\"category\":\"Python\"},{\"command\":\"python.setLinter\",\"title\":\"Select Linter\",\"category\":\"Python\"},{\"command\":\"python.enableLinting\",\"title\":\"Enable Linting\",\"category\":\"Python\"},{\"command\":\"python.runLinting\",\"title\":\"Run Linting\",\"category\":\"Python\"}],\"configuration\":{\"type\":\"object\",\"title\":\"Python\",\"properties\":{\"python.autoComplete.addBrackets\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Automatically add brackets for functions.\",\"scope\":\"resource\"},\"python.autoComplete.extraPaths\":{\"type\":\"array\",\"default\":[],\"description\":\"List of paths to libraries and the like that need to be imported by auto complete engine. E.g. when using Google App SDK, the paths are not in system path, hence need to be added into this list.\",\"scope\":\"resource\"},\"python.autoComplete.showAdvancedMembers\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Controls appearance of methods with double underscores in the completion list.\",\"scope\":\"resource\"},\"python.jediShortcut\":{\"type\":\"string\",\"description\":\"Shortcut used for jedi completion.\",\"default\":\"JD\",\"scope\":\"resource\"},\"python.autoComplete.typeshedPaths\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"default\":[],\"description\":\"Specifies paths to local typeshed repository clone(s) for the Python language server.\",\"scope\":\"resource\"},\"python.autoUpdateLanguageServer\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Automatically update the language server.\",\"scope\":\"application\"},\"python.disableInstallationCheck\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Whether to check if Python is installed (also warn when using the macOS-installed Python).\",\"scope\":\"resource\"},\"python.envFile\":{\"type\":\"string\",\"description\":\"Absolute path to a file containing environment variable definitions.\",\"default\":\"${workspaceFolder}/.env\",\"scope\":\"resource\"},\"python.trace.server\":{\"type\":\"string\",\"default\":\"off\",\"enum\":[\"off\",\"messages\",\"verbose\"],\"description\":\"Trace level of tsserver\"},\"python.formatting.autopep8Args\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.formatting.autopep8Path\":{\"type\":\"string\",\"default\":\"autopep8\",\"description\":\"Path to autopep8, you can use a custom version of autopep8 by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.formatting.provider\":{\"type\":\"string\",\"default\":\"autopep8\",\"description\":\"Provider for formatting. Possible options include 'autopep8', 'black', and 'yapf'.\",\"enum\":[\"autopep8\",\"black\",\"yapf\",\"none\"],\"scope\":\"resource\"},\"python.formatting.blackArgs\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.formatting.blackPath\":{\"type\":\"string\",\"default\":\"black\",\"description\":\"Path to Black, you can use a custom version of Black by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.formatting.yapfArgs\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.formatting.yapfPath\":{\"type\":\"string\",\"default\":\"yapf\",\"description\":\"Path to yapf, you can use a custom version of yapf by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.globalModuleInstallation\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Whether to install Python modules globally when not using an environment.\",\"scope\":\"resource\"},\"python.jediEnabled\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Enables Jedi as IntelliSense engine instead of Microsoft Python Analysis Engine.\",\"scope\":\"resource\"},\"python.jediMemoryLimit\":{\"type\":\"number\",\"default\":0,\"description\":\"Memory limit for the Jedi completion engine in megabytes. Zero (default) means 1024 MB. -1 means unlimited (disable memory limit check)\",\"scope\":\"resource\"},\"python.jediPath\":{\"type\":\"string\",\"default\":\"\",\"description\":\"Path to directory containing the Jedi library (this path will contain the 'Jedi' sub directory).\",\"scope\":\"resource\"},\"python.analysis.downloadChannel\":{\"type\":\"string\",\"enum\":[\"stable\",\"beta\",\"daily\"],\"default\":\"stable\",\"description\":\"Defines how to down MPLS, use beta for beta version, or daily for upgrade to stable when possible, stable means MPLS only upgraded when coc-python upgraded.\"},\"python.analysis.openFilesOnly\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Only show errors and warnings for open files rather than for the entire workspace.\",\"scope\":\"resource\"},\"python.analysis.diagnosticEnabled\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Enable diagnostic support of language server.\",\"scope\":\"resource\"},\"python.analysis.diagnosticPublishDelay\":{\"type\":\"integer\",\"default\":1000,\"description\":\"Delay before diagnostic messages are transferred to the problems list (in milliseconds).\",\"scope\":\"resource\"},\"python.analysis.typeshedPaths\":{\"type\":\"array\",\"default\":[],\"items\":{\"type\":\"string\"},\"description\":\"Paths to look for typeshed modules.\",\"scope\":\"resource\"},\"python.analysis.errors\":{\"type\":\"array\",\"default\":[],\"items\":{\"type\":\"string\"},\"description\":\"List of diagnostics messages to be shown as errors.\",\"scope\":\"resource\"},\"python.analysis.warnings\":{\"type\":\"array\",\"default\":[],\"items\":{\"type\":\"string\"},\"description\":\"List of diagnostics messages to be shown as warnings.\",\"scope\":\"resource\"},\"python.analysis.information\":{\"type\":\"array\",\"default\":[],\"items\":{\"type\":\"string\"},\"description\":\"List of diagnostics messages to be shown as information.\",\"scope\":\"resource\"},\"python.analysis.disabled\":{\"type\":\"array\",\"default\":[],\"items\":{\"type\":\"string\"},\"description\":\"List of suppressed diagnostic messages.\",\"scope\":\"resource\"},\"python.analysis.logLevel\":{\"type\":\"string\",\"enum\":[\"Error\",\"Warning\",\"Information\",\"Trace\"],\"default\":\"Error\",\"description\":\"Defines type of log messages language server writes into the output window.\",\"scope\":\"resource\"},\"python.analysis.symbolsHierarchyDepthLimit\":{\"type\":\"integer\",\"default\":10,\"description\":\"Limits depth of the symbol tree in the document outline.\",\"scope\":\"resource\"},\"python.linting.enabled\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Whether to lint Python files.\",\"scope\":\"resource\"},\"python.linting.flake8Args\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.linting.flake8CategorySeverity.E\":{\"type\":\"string\",\"default\":\"Error\",\"description\":\"Severity of Flake8 message type 'E'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.flake8CategorySeverity.F\":{\"type\":\"string\",\"default\":\"Error\",\"description\":\"Severity of Flake8 message type 'F'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.flake8CategorySeverity.W\":{\"type\":\"string\",\"default\":\"Warning\",\"description\":\"Severity of Flake8 message type 'W'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.flake8Enabled\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Whether to lint Python files using flake8\",\"scope\":\"resource\"},\"python.linting.flake8Path\":{\"type\":\"string\",\"default\":\"flake8\",\"description\":\"Path to flake8, you can use a custom version of flake8 by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.linting.ignorePatterns\":{\"type\":\"array\",\"description\":\"Patterns used to exclude files or folders from being linted.\",\"default\":[\".vscode/*.py\",\"**/site-packages/**/*.py\"],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.linting.lintOnSave\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Whether to lint Python files when saved.\",\"scope\":\"resource\"},\"python.linting.maxNumberOfProblems\":{\"type\":\"number\",\"default\":100,\"description\":\"Controls the maximum number of problems produced by the server.\",\"scope\":\"resource\"},\"python.linting.banditArgs\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.linting.banditEnabled\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Whether to lint Python files using bandit.\",\"scope\":\"resource\"},\"python.linting.banditPath\":{\"type\":\"string\",\"default\":\"bandit\",\"description\":\"Path to bandit, you can use a custom version of bandit by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.linting.mypyArgs\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[\"--ignore-missing-imports\",\"--follow-imports=silent\",\"--show-column-numbers\"],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.linting.mypyCategorySeverity.error\":{\"type\":\"string\",\"default\":\"Error\",\"description\":\"Severity of Mypy message type 'Error'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.mypyCategorySeverity.note\":{\"type\":\"string\",\"default\":\"Information\",\"description\":\"Severity of Mypy message type 'Note'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.mypyEnabled\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Whether to lint Python files using mypy.\",\"scope\":\"resource\"},\"python.linting.mypyPath\":{\"type\":\"string\",\"default\":\"mypy\",\"description\":\"Path to mypy, you can use a custom version of mypy by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.linting.pep8Args\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.linting.pep8CategorySeverity.E\":{\"type\":\"string\",\"default\":\"Error\",\"description\":\"Severity of Pep8 message type 'E'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.pep8CategorySeverity.W\":{\"type\":\"string\",\"default\":\"Warning\",\"description\":\"Severity of Pep8 message type 'W'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.pep8Enabled\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Whether to lint Python files using pep8\",\"scope\":\"resource\"},\"python.linting.pep8Path\":{\"type\":\"string\",\"default\":\"pep8\",\"description\":\"Path to pep8, you can use a custom version of pep8 by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.linting.prospectorArgs\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.linting.prospectorEnabled\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Whether to lint Python files using prospector.\",\"scope\":\"resource\"},\"python.linting.prospectorPath\":{\"type\":\"string\",\"default\":\"prospector\",\"description\":\"Path to Prospector, you can use a custom version of prospector by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.linting.pydocstyleArgs\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.linting.pydocstyleEnabled\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Whether to lint Python files using pydocstyle\",\"scope\":\"resource\"},\"python.linting.pydocstylePath\":{\"type\":\"string\",\"default\":\"pydocstyle\",\"description\":\"Path to pydocstyle, you can use a custom version of pydocstyle by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.linting.pylamaArgs\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.linting.pylamaEnabled\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Whether to lint Python files using pylama.\",\"scope\":\"resource\"},\"python.linting.pylamaPath\":{\"type\":\"string\",\"default\":\"pylama\",\"description\":\"Path to pylama, you can use a custom version of pylama by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.linting.pylintArgs\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.linting.pylintCategorySeverity.convention\":{\"type\":\"string\",\"default\":\"Information\",\"description\":\"Severity of Pylint message type 'Convention/C'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.pylintCategorySeverity.error\":{\"type\":\"string\",\"default\":\"Error\",\"description\":\"Severity of Pylint message type 'Error/E'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.pylintCategorySeverity.fatal\":{\"type\":\"string\",\"default\":\"Error\",\"description\":\"Severity of Pylint message type 'Fatal/F'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.pylintCategorySeverity.refactor\":{\"type\":\"string\",\"default\":\"Hint\",\"description\":\"Severity of Pylint message type 'Refactor/R'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.pylintCategorySeverity.warning\":{\"type\":\"string\",\"default\":\"Warning\",\"description\":\"Severity of Pylint message type 'Warning/W'.\",\"enum\":[\"Hint\",\"Error\",\"Information\",\"Warning\"],\"scope\":\"resource\"},\"python.linting.pylintEnabled\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Whether to lint Python files using pylint.\",\"scope\":\"resource\"},\"python.linting.pylintPath\":{\"type\":\"string\",\"default\":\"pylint\",\"description\":\"Path to Pylint, you can use a custom version of pylint by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.linting.pylintUseMinimalCheckers\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Whether to run Pylint with minimal set of rules.\",\"scope\":\"resource\"},\"python.pythonPath\":{\"type\":\"string\",\"default\":\"python\",\"description\":\"Path to Python, you can use a custom version of Python by modifying this setting to include the full path.\",\"scope\":\"resource\"},\"python.condaPath\":{\"type\":\"string\",\"default\":\"\",\"description\":\"Path to the conda executable to use for activation (version 4.4+).\",\"scope\":\"resource\"},\"python.pipenvPath\":{\"type\":\"string\",\"default\":\"pipenv\",\"description\":\"Path to the pipenv executable to use for activation.\",\"scope\":\"resource\"},\"python.poetryPath\":{\"type\":\"string\",\"default\":\"poetry\",\"description\":\"Path to the poetry executable.\",\"scope\":\"resource\"},\"python.sortImports.args\":{\"type\":\"array\",\"description\":\"Arguments passed in. Each argument is a separate item in the array.\",\"default\":[],\"items\":{\"type\":\"string\"},\"scope\":\"resource\"},\"python.sortImports.path\":{\"type\":\"string\",\"description\":\"Path to isort script, default using inner version\",\"default\":\"\",\"scope\":\"resource\"},\"python.terminal.activateEnvironment\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Activate Python Environment in Terminal created using the Extension.\",\"scope\":\"resource\"},\"python.terminal.executeInFileDir\":{\"type\":\"boolean\",\"default\":false,\"description\":\"When executing a file in the terminal, whether to use execute in the file's directory, instead of the current open folder.\",\"scope\":\"resource\"},\"python.terminal.launchArgs\":{\"type\":\"array\",\"default\":[],\"description\":\"Python launch arguments to use when executing a file in the terminal.\",\"scope\":\"resource\"},\"python.venvFolders\":{\"type\":\"array\",\"default\":[\"envs\",\".pyenv\",\".direnv\"],\"description\":\"Folders in your home directory to look into for virtual environments.\",\"scope\":\"resource\",\"items\":{\"type\":\"string\"}},\"python.venvPath\":{\"type\":\"string\",\"default\":\"\",\"description\":\"Path to folder with a list of Virtual Environments (e.g. ~/.pyenv, ~/Envs, ~/.virtualenvs).\",\"scope\":\"resource\"},\"python.workspaceSymbols.ctagsPath\":{\"type\":\"string\",\"default\":\"ctags\",\"description\":\"Fully qualified path to the ctags executable (else leave as ctags, assuming it is in current path).\",\"scope\":\"resource\"},\"python.workspaceSymbols.enabled\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Set to 'false' to disable Workspace Symbol provider using ctags.\",\"scope\":\"resource\"},\"python.workspaceSymbols.exclusionPatterns\":{\"type\":\"array\",\"default\":[\"**/site-packages/**\"],\"items\":{\"type\":\"string\"},\"description\":\"Pattern used to exclude files and folders from ctags See http://ctags.sourceforge.net/ctags.html.\",\"scope\":\"resource\"},\"python.workspaceSymbols.rebuildOnFileSave\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Whether to re-build the tags file on when changes made to python files are saved.\",\"scope\":\"resource\"},\"python.workspaceSymbols.rebuildOnStart\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Whether to re-build the tags file on start (defaults to true).\",\"scope\":\"resource\"},\"python.workspaceSymbols.tagFilePath\":{\"type\":\"string\",\"default\":\"${workspaceFolder}/.vscode/tags\",\"description\":\"Fully qualified path to tag file (exuberant ctag file), used to provide workspace symbols.\",\"scope\":\"resource\"}}}},\"author\":\"chemzqm@gmail.com\",\"license\":\"MIT\",\"devDependencies\":{\"@chemzqm/tsconfig\":\"^0.0.3\",\"@chemzqm/tslint-config\":\"^1.0.18\",\"@types/del\":\"^4.0.0\",\"@types/diff-match-patch\":\"^1.0.32\",\"@types/event-stream\":\"^3.3.34\",\"@types/fs-extra\":\"^5.0.5\",\"@types/glob\":\"^7.1.1\",\"@types/loader-utils\":\"^1.1.3\",\"@types/lodash\":\"^4.14.123\",\"@types/md5\":\"^2.1.33\",\"@types/mocha\":\"^5.2.6\",\"@types/node\":\"^11.13.9\",\"@types/promisify-node\":\"^0.4.0\",\"@types/request\":\"^2.48.1\",\"@types/sinon\":\"^7.0.11\",\"@types/temp\":\"^0.8.34\",\"@types/tmp\":\"0.1.0\",\"@types/untildify\":\"^3.0.0\",\"@types/uuid\":\"^3.4.4\",\"@types/which\":\"^1.3.1\",\"@types/winreg\":\"^1.2.30\",\"arch\":\"^2.1.1\",\"azure-storage\":\"^2.10.3\",\"coc.nvim\":\"^0.0.73\",\"diff-match-patch\":\"^1.0.4\",\"fs-extra\":\"^7.0.1\",\"fuzzy\":\"^0.1.3\",\"glob\":\"^7.1.3\",\"iconv-lite\":\"^0.4.24\",\"inversify\":\"^5.0.1\",\"line-by-line\":\"^0.1.6\",\"lodash\":\"^4.17.11\",\"md5\":\"^2.2.1\",\"minimatch\":\"^3.0.4\",\"named-js-regexp\":\"^1.3.5\",\"node-stream-zip\":\"^1.8.0\",\"pidusage\":\"^1.2.0\",\"reflect-metadata\":\"^0.1.13\",\"request\":\"^2.88.0\",\"request-progress\":\"^3.0.0\",\"rimraf\":\"^2.6.3\",\"rxjs\":\"^5.5.9\",\"semver\":\"^5.5.0\",\"sudo-prompt\":\"^8.2.5\",\"tmp\":\"^0.1.0\",\"tree-kill\":\"^1.2.1\",\"ts-loader\":\"^6.0.3\",\"tslint\":\"^5.16.0\",\"typescript\":\"^3.4.0\",\"typescript-char\":\"^0.0.0\",\"uint64be\":\"^2.0.2\",\"unicode\":\"^11.0.1\",\"untildify\":\"^4.0.0\",\"vscode-languageserver\":\"^5.3.0-next.5\",\"vscode-languageserver-protocol\":\"^3.15.0-next.4\",\"webpack\":\"^4.35.0\",\"webpack-cli\":\"^3.3.4\",\"which\":\"^1.3.1\",\"winreg\":\"^1.2.4\",\"xml2js\":\"^0.4.19\"},\"dependencies\":{}}");

/***/ }),
/* 725 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-var-requires no-any unified-signatures
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const coc_nvim_1 = __webpack_require__(2);
let ApplicationShell = class ApplicationShell {
    constructor() {
        this.statusItem = coc_nvim_1.workspace.createStatusBarItem(99);
    }
    openUrl(url) {
        coc_nvim_1.workspace.openResource(url);
    }
    setStatusBarMessage(text, arg) {
        this.statusItem.text = text;
        if (text) {
            this.statusItem.show();
            if (typeof arg == 'number') {
                setTimeout(() => {
                    this.statusItem.hide();
                }, arg);
            }
            if (arg && typeof arg.then == 'function') {
                arg.then(() => {
                    this.statusItem.hide();
                }, () => {
                    this.statusItem.hide();
                });
            }
        }
        return vscode_languageserver_protocol_1.Disposable.create(() => {
            this.statusItem.hide();
        });
    }
    createStatusBarItem(priority) {
        return coc_nvim_1.workspace.createStatusBarItem(priority);
    }
};
ApplicationShell = __decorate([
    inversify_1.injectable()
], ApplicationShell);
exports.ApplicationShell = ApplicationShell;


/***/ }),
/* 726 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-any
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
let CommandManager = class CommandManager {
    /**
     * Registers a command that can be invoked via a keyboard shortcut,
     * a menu item, an action, or directly.
     *
     * Registering a command with an existing command identifier twice
     * will cause an error.
     *
     * @param command A unique identifier for the command.
     * @param callback A command handler function.
     * @param thisArg The `this` context used when invoking the handler function.
     * @return Disposable which unregisters this command on disposal.
     */
    registerCommand(command, callback, thisArg) {
        return coc_nvim_1.commands.registerCommand(command, callback, thisArg);
    }
    /**
     * Executes the command denoted by the given command identifier.
     *
     * * *Note 1:* When executing an editor command not all types are allowed to
     * be passed as arguments. Allowed are the primitive types `string`, `boolean`,
     * `number`, `undefined`, and `null`, as well as [`Position`](#Position), [`Range`](#Range), [`Uri`](#Uri) and [`Location`](#Location).
     * * *Note 2:* There are no restrictions when executing commands that have been contributed
     * by extensions.
     *
     * @param command Identifier of the command to execute.
     * @param rest Parameters passed to the command function.
     * @return A thenable that resolves to the returned value of the given command. `undefined` when
     * the command handler function doesn't return anything.
     */
    executeCommand(command, ...rest) {
        return coc_nvim_1.commands.executeCommand(command, ...rest);
    }
    /**
     * Retrieve the list of all available commands. Commands starting an underscore are
     * treated as internal commands.
     *
     * @param filterInternal Set `true` to not see internal commands (starting with an underscore)
     * @return Thenable that resolves to a list of command ids.
     */
    async getCommands(filterInternal) {
        let items = coc_nvim_1.commands.commandList.filter(item => {
            if (filterInternal) {
                return item.internal != true;
            }
            return item;
        });
        return items.map(o => o.id);
    }
};
CommandManager = __decorate([
    inversify_1.injectable()
], CommandManager);
exports.CommandManager = CommandManager;


/***/ }),
/* 727 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-any unified-signatures
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
let DocumentManager = class DocumentManager {
    get textDocuments() {
        return coc_nvim_1.workspace.textDocuments;
    }
    get onDidOpenTextDocument() {
        return coc_nvim_1.workspace.onDidOpenTextDocument;
    }
    get onDidCloseTextDocument() {
        return coc_nvim_1.workspace.onDidCloseTextDocument;
    }
    get onDidSaveTextDocument() {
        return coc_nvim_1.workspace.onDidSaveTextDocument;
    }
    showTextDocument(uri, options, preserveFocus) {
        let u = vscode_languageserver_protocol_1.TextDocument.is(uri) ? uri.uri : uri.toString();
        let pos = null;
        if (vscode_languageserver_protocol_1.Position.is(options)) {
            pos = options;
        }
        let cmd = typeof options == 'string' ? options : null;
        return coc_nvim_1.workspace.jumpTo(uri, pos, cmd).then(() => {
            return coc_nvim_1.workspace.nvim.call('bufnr', '%');
        });
    }
    applyEdit(edit) {
        return coc_nvim_1.workspace.applyEdit(edit);
    }
    async openTextDocument(uri) {
        let doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        if (doc.uri == uri.toString())
            return doc.textDocument;
        await coc_nvim_1.workspace.jumpTo(uri.toString());
        doc = await coc_nvim_1.workspace.document;
        return doc.textDocument;
    }
};
DocumentManager = __decorate([
    inversify_1.injectable()
], DocumentManager);
exports.DocumentManager = DocumentManager;


/***/ }),
/* 728 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
let Extensions = class Extensions {
    // tslint:disable-next-line:no-any
    get all() {
        return coc_nvim_1.extensions.all;
    }
    // tslint:disable-next-line:no-any
    getExtension(extensionId) {
        for (let ext of coc_nvim_1.extensions.all) {
            if (ext.id == extensionId) {
                return ext;
            }
        }
        return null;
    }
};
Extensions = __decorate([
    inversify_1.injectable()
], Extensions);
exports.Extensions = Extensions;


/***/ }),
/* 729 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
let TerminalManager = class TerminalManager {
    get onDidCloseTerminal() {
        return coc_nvim_1.workspace.onDidCloseTerminal;
    }
    get onDidOpenTerminal() {
        return coc_nvim_1.workspace.onDidOpenTerminal;
    }
    createTerminal(options) {
        return coc_nvim_1.workspace.createTerminal(options);
    }
};
TerminalManager = __decorate([
    inversify_1.injectable()
], TerminalManager);
exports.TerminalManager = TerminalManager;


/***/ }),
/* 730 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const util_1 = __importDefault(__webpack_require__(113));
const glob_1 = __importDefault(__webpack_require__(228));
let WorkspaceService = class WorkspaceService {
    get onDidChangeConfiguration() {
        return coc_nvim_1.workspace.onDidChangeConfiguration;
    }
    get rootPath() {
        return coc_nvim_1.workspace.rootPath;
    }
    get workspaceFolders() {
        return coc_nvim_1.workspace.workspaceFolders;
    }
    getConfiguration(section, resource) {
        return coc_nvim_1.workspace.getConfiguration(section, resource ? resource.toString() : undefined);
    }
    createFileSystemWatcher(globPattern, _ignoreCreateEvents, ignoreChangeEvents, ignoreDeleteEvents) {
        return coc_nvim_1.workspace.createFileSystemWatcher(globPattern, ignoreChangeEvents, ignoreChangeEvents, ignoreDeleteEvents);
    }
    async findFiles(include, exclude, maxResults, _token) {
        let res = await util_1.default.promisify(glob_1.default)(include, {
            cwd: coc_nvim_1.workspace.root,
            ignore: exclude,
        });
        if (maxResults) {
            res = res.slice(0, maxResults);
        }
        return res.map(file => coc_nvim_1.Uri.file(file));
    }
    getWorkspaceFolder(uri) {
        if (uri)
            return coc_nvim_1.workspace.getWorkspaceFolder(uri.toString());
        return coc_nvim_1.workspace.workspaceFolder;
    }
    get hasWorkspaceFolders() {
        return coc_nvim_1.workspace.workspaceFolders.length > 0;
    }
    getWorkspaceFolderIdentifier(resource, defaultValue = '') {
        const workspaceFolder = resource ? this.getWorkspaceFolder(resource) : undefined;
        return workspaceFolder ? coc_nvim_1.Uri.parse(workspaceFolder.uri).fsPath : defaultValue;
    }
};
WorkspaceService = __decorate([
    inversify_1.injectable()
], WorkspaceService);
exports.WorkspaceService = WorkspaceService;


/***/ }),
/* 731 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
// List of disposables that need to run a promise.
let AsyncDisposableRegistry = class AsyncDisposableRegistry {
    // List of disposables that need to run a promise.
    constructor() {
        this.list = [];
    }
    async dispose() {
        const promises = this.list.map(l => l.dispose());
        await Promise.all(promises);
    }
    push(disposable) {
        if (disposable) {
            this.list.push(disposable);
        }
    }
};
AsyncDisposableRegistry = __decorate([
    inversify_1.injectable()
], AsyncDisposableRegistry);
exports.AsyncDisposableRegistry = AsyncDisposableRegistry;


/***/ }),
/* 732 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(89);
const types_2 = __webpack_require__(95);
const types_3 = __webpack_require__(78);
const configSettings_1 = __webpack_require__(733);
const types_4 = __webpack_require__(75);
let ConfigurationService = class ConfigurationService {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.workspaceService = this.serviceContainer.get(types_3.IWorkspaceService);
        this.stateFactory = this.serviceContainer.get(types_4.IPersistentStateFactory);
    }
    getSettings(resource) {
        const InterpreterAutoSelectionService = this.serviceContainer.get(types_1.IInterpreterAutoSeletionProxyService);
        return configSettings_1.PythonSettings.getInstance(resource, InterpreterAutoSelectionService, this.stateFactory, this.workspaceService);
    }
    async updateSectionSetting(section, setting, value, resource, configTarget) {
        const defaultSetting = {
            uri: resource,
            target: configTarget || coc_nvim_1.ConfigurationTarget.Workspace
        };
        let settingsInfo = defaultSetting;
        if (section === 'python' && configTarget !== coc_nvim_1.ConfigurationTarget.Global) {
            settingsInfo = configSettings_1.PythonSettings.getSettingsUriAndTarget(resource, this.workspaceService);
        }
        const configSection = coc_nvim_1.workspace.getConfiguration(section, settingsInfo.uri ? settingsInfo.uri.toString() : null);
        const currentValue = configSection.inspect(setting);
        if (currentValue !== undefined &&
            ((settingsInfo.target === coc_nvim_1.ConfigurationTarget.Global && currentValue.globalValue === value) ||
                (settingsInfo.target === coc_nvim_1.ConfigurationTarget.Workspace && currentValue.workspaceValue === value))) {
            return;
        }
        configSection.update(setting, value, settingsInfo.target == coc_nvim_1.ConfigurationTarget.User);
        await this.verifySetting(configSection, settingsInfo.target, setting, value);
    }
    async updateSetting(setting, value, resource, configTarget) {
        return this.updateSectionSetting('python', setting, value, resource, configTarget);
    }
    isTestExecution() {
        return process.env.VSC_PYTHON_CI_TEST === '1';
    }
    async verifySetting(configSection, target, settingName, value) {
        if (this.isTestExecution()) {
            let retries = 0;
            do {
                const setting = configSection.inspect(settingName);
                if (!setting && value === undefined) {
                    break; // Both are unset
                }
                if (setting && value !== undefined) {
                    // Both specified
                    const actual = target === coc_nvim_1.ConfigurationTarget.Global
                        ? setting.globalValue
                        : target === coc_nvim_1.ConfigurationTarget.Workspace ? setting.workspaceValue : setting.workspaceValue;
                    if (actual === value) {
                        break;
                    }
                }
                // Wait for settings to get refreshed.
                // tslint:disable-next-line: no-inferred-empty-object-type
                await new Promise(resolve => setTimeout(resolve, 250));
                retries += 1;
            } while (retries < 20);
        }
    }
};
ConfigurationService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], ConfigurationService);
exports.ConfigurationService = ConfigurationService;


/***/ }),
/* 733 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const child_process = __importStar(__webpack_require__(145));
const coc_nvim_1 = __webpack_require__(2);
const path_1 = __importDefault(__webpack_require__(55));
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const workspace_1 = __webpack_require__(730);
const constants_1 = __webpack_require__(84);
const function_1 = __webpack_require__(80);
const constants_2 = __webpack_require__(147);
const decorators_1 = __webpack_require__(151);
const systemVariables_1 = __webpack_require__(637);
// tslint:disable:no-require-imports no-var-requires
const untildify = __webpack_require__(734);
// tslint:disable-next-line:completed-docs
class PythonSettings {
    constructor(workspaceFolder, interpreterAutoSelectionService, stateFactory, workspace) {
        this.interpreterAutoSelectionService = interpreterAutoSelectionService;
        this.stateFactory = stateFactory;
        this.downloadLanguageServer = true;
        this.jediEnabled = true;
        this.jediPath = '';
        this.jediMemoryLimit = 1024;
        this.envFile = '';
        this.venvPath = '';
        this.venvFolders = [];
        this.condaPath = '';
        this.pipenvPath = '';
        this.poetryPath = '';
        this.devOptions = [];
        this.disableInstallationChecks = false;
        this.globalModuleInstallation = false;
        this.autoUpdateLanguageServer = true;
        this.changed = new vscode_languageserver_protocol_1.Emitter();
        this.disposables = [];
        // tslint:disable-next-line:variable-name
        this._pythonPath = '';
        this.workspace = workspace || new workspace_1.WorkspaceService();
        this.workspaceRoot = workspaceFolder ? workspaceFolder : coc_nvim_1.Uri.file(__dirname);
        this.initialize();
    }
    get onDidChange() {
        return this.changed.event;
    }
    // tslint:disable-next-line:function-name
    static getInstance(resource, interpreterAutoSelectionService, stateFactory, workspace) {
        workspace = workspace || new workspace_1.WorkspaceService();
        const workspaceFolderUri = PythonSettings.getSettingsUriAndTarget(resource, workspace).uri;
        const workspaceFolderKey = workspaceFolderUri ? workspaceFolderUri.fsPath : '';
        if (!PythonSettings.pythonSettings.has(workspaceFolderKey)) {
            const settings = new PythonSettings(workspaceFolderUri, interpreterAutoSelectionService, stateFactory, workspace);
            PythonSettings.pythonSettings.set(workspaceFolderKey, settings);
            // Pass null to avoid VSC from complaining about not passing in a value.
            // tslint:disable-next-line:no-any
            // const config = workspace.getConfiguration('editor', resource ? resource : null as any)
            // const formatOnType = config ? config.get('formatOnType', false) : false
            // sendTelemetryEvent(EventName.COMPLETION_ADD_BRACKETS, undefined, { enabled: settings.autoComplete ? settings.autoComplete.addBrackets : false })
            // sendTelemetryEvent(EventName.FORMAT_ON_TYPE, undefined, { enabled: formatOnType })
        }
        // tslint:disable-next-line:no-non-null-assertion
        return PythonSettings.pythonSettings.get(workspaceFolderKey);
    }
    // tslint:disable-next-line:type-literal-delimiter
    static getSettingsUriAndTarget(resource, workspace) {
        workspace = workspace || new workspace_1.WorkspaceService();
        const workspaceFolder = workspace.hasWorkspaceFolders ? workspace.workspaceFolders[0] : undefined;
        let workspaceFolderUri = workspaceFolder ? coc_nvim_1.Uri.parse(workspaceFolder.uri) : undefined;
        const target = workspaceFolderUri ? coc_nvim_1.ConfigurationTarget.Workspace : coc_nvim_1.ConfigurationTarget.Global;
        return { uri: workspaceFolderUri, target };
    }
    // tslint:disable-next-line:function-name
    static dispose() {
        if (!constants_1.isTestExecution()) {
            throw new Error('Dispose can only be called from unit tests');
        }
        // tslint:disable-next-line:no-void-expression
        PythonSettings.pythonSettings.forEach(item => item && item.dispose());
        PythonSettings.pythonSettings.clear();
    }
    dispose() {
        // tslint:disable-next-line:no-unsafe-any
        this.disposables.forEach(disposable => disposable && disposable.dispose());
        this.disposables = [];
    }
    // tslint:disable-next-line:cyclomatic-complexity max-func-body-length
    update(pythonSettings) {
        const workspaceRoot = this.workspaceRoot.fsPath;
        const systemVariables = new systemVariables_1.SystemVariables(this.workspaceRoot ? this.workspaceRoot.fsPath : undefined);
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        this.pythonPath = systemVariables.resolveAny(pythonSettings.get('pythonPath'));
        // If user has defined a custom value, use it else try to get the best interpreter ourselves.
        if (this.pythonPath.length === 0 || this.pythonPath === 'python') {
            const workspaceRoot = this.workspaceRoot.fsPath == __dirname ? undefined : this.workspaceRoot;
            // this.stateFactory
            let method = workspaceRoot == null ? 'createGlobalPersistentState' : 'createWorkspacePersistentState';
            let state = this.stateFactory[method]('SelectedPythonPath', undefined);
            if (state.value) {
                this.pythonPath = state.value;
            }
            else {
                const autoSelectedPythonInterpreter = this.interpreterAutoSelectionService.getAutoSelectedInterpreter(workspaceRoot);
                if (autoSelectedPythonInterpreter) {
                    this.interpreterAutoSelectionService.setWorkspaceInterpreter(this.workspaceRoot, autoSelectedPythonInterpreter).catch(function_1.emptyFn);
                }
                this.pythonPath = autoSelectedPythonInterpreter ? autoSelectedPythonInterpreter.path : this.pythonPath;
            }
        }
        this.pythonPath = getAbsolutePath(this.pythonPath, workspaceRoot);
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        this.venvPath = systemVariables.resolveAny(pythonSettings.get('venvPath'));
        this.venvFolders = systemVariables.resolveAny(pythonSettings.get('venvFolders'));
        const condaPath = systemVariables.resolveAny(pythonSettings.get('condaPath'));
        this.condaPath = condaPath && condaPath.length > 0 ? getAbsolutePath(condaPath, workspaceRoot) : condaPath;
        const pipenvPath = systemVariables.resolveAny(pythonSettings.get('pipenvPath'));
        this.pipenvPath = pipenvPath && pipenvPath.length > 0 ? getAbsolutePath(pipenvPath, workspaceRoot) : pipenvPath;
        const poetryPath = systemVariables.resolveAny(pythonSettings.get('poetryPath'));
        this.poetryPath = poetryPath && poetryPath.length > 0 ? getAbsolutePath(poetryPath, workspaceRoot) : poetryPath;
        this.downloadLanguageServer = systemVariables.resolveAny(pythonSettings.get('downloadLanguageServer', true));
        this.jediEnabled = systemVariables.resolveAny(pythonSettings.get('jediEnabled', true));
        this.autoUpdateLanguageServer = systemVariables.resolveAny(pythonSettings.get('autoUpdateLanguageServer', true));
        if (this.jediEnabled) {
            // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
            this.jediPath = systemVariables.resolveAny(pythonSettings.get('jediPath'));
            if (typeof this.jediPath === 'string' && this.jediPath.length > 0) {
                this.jediPath = getAbsolutePath(systemVariables.resolveAny(this.jediPath), workspaceRoot);
            }
            else {
                this.jediPath = '';
            }
            this.jediMemoryLimit = pythonSettings.get('jediMemoryLimit');
        }
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        this.envFile = systemVariables.resolveAny(pythonSettings.get('envFile'));
        // tslint:disable-next-line:no-any
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion no-any
        this.devOptions = systemVariables.resolveAny(pythonSettings.get('devOptions'));
        this.devOptions = Array.isArray(this.devOptions) ? this.devOptions : [];
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        const lintingSettings = systemVariables.resolveAny(pythonSettings.get('linting'));
        if (this.linting) {
            Object.assign(this.linting, lintingSettings);
        }
        else {
            this.linting = lintingSettings;
        }
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        const analysisSettings = systemVariables.resolveAny(pythonSettings.get('analysis'));
        if (this.analysis) {
            Object.assign(this.analysis, analysisSettings);
        }
        else {
            this.analysis = analysisSettings;
        }
        this.disableInstallationChecks = pythonSettings.get('disableInstallationCheck') === true;
        this.globalModuleInstallation = pythonSettings.get('globalModuleInstallation') === true;
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        const sortImportSettings = systemVariables.resolveAny(pythonSettings.get('sortImports'));
        if (this.sortImports) {
            Object.assign(this.sortImports, sortImportSettings);
        }
        else {
            this.sortImports = sortImportSettings;
        }
        // Support for travis.
        this.sortImports = this.sortImports ? this.sortImports : { path: '', args: [] };
        // Support for travis.
        this.linting = this.linting ? this.linting : {
            enabled: false,
            ignorePatterns: [],
            flake8Args: [], flake8Enabled: false, flake8Path: 'flake',
            lintOnSave: false, maxNumberOfProblems: 100,
            mypyArgs: [], mypyEnabled: false, mypyPath: 'mypy',
            banditArgs: [], banditEnabled: false, banditPath: 'bandit',
            pep8Args: [], pep8Enabled: false, pep8Path: 'pep8',
            pylamaArgs: [], pylamaEnabled: false, pylamaPath: 'pylama',
            prospectorArgs: [], prospectorEnabled: false, prospectorPath: 'prospector',
            pydocstyleArgs: [], pydocstyleEnabled: false, pydocstylePath: 'pydocstyle',
            pylintArgs: [], pylintEnabled: false, pylintPath: 'pylint',
            pylintCategorySeverity: {
                convention: vscode_languageserver_protocol_1.DiagnosticSeverity.Hint,
                error: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
                fatal: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
                refactor: vscode_languageserver_protocol_1.DiagnosticSeverity.Hint,
                warning: vscode_languageserver_protocol_1.DiagnosticSeverity.Warning
            },
            pep8CategorySeverity: {
                E: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
                W: vscode_languageserver_protocol_1.DiagnosticSeverity.Warning
            },
            flake8CategorySeverity: {
                E: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
                W: vscode_languageserver_protocol_1.DiagnosticSeverity.Warning,
                // Per http://flake8.pycqa.org/en/latest/glossary.html#term-error-code
                // 'F' does not mean 'fatal as in PyLint but rather 'pyflakes' such as
                // unused imports, variables, etc.
                F: vscode_languageserver_protocol_1.DiagnosticSeverity.Warning
            },
            mypyCategorySeverity: {
                error: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
                note: vscode_languageserver_protocol_1.DiagnosticSeverity.Hint
            },
            pylintUseMinimalCheckers: false
        };
        this.linting.pylintPath = getAbsolutePath(systemVariables.resolveAny(this.linting.pylintPath), workspaceRoot);
        this.linting.flake8Path = getAbsolutePath(systemVariables.resolveAny(this.linting.flake8Path), workspaceRoot);
        this.linting.pep8Path = getAbsolutePath(systemVariables.resolveAny(this.linting.pep8Path), workspaceRoot);
        this.linting.pylamaPath = getAbsolutePath(systemVariables.resolveAny(this.linting.pylamaPath), workspaceRoot);
        this.linting.prospectorPath = getAbsolutePath(systemVariables.resolveAny(this.linting.prospectorPath), workspaceRoot);
        this.linting.pydocstylePath = getAbsolutePath(systemVariables.resolveAny(this.linting.pydocstylePath), workspaceRoot);
        this.linting.mypyPath = getAbsolutePath(systemVariables.resolveAny(this.linting.mypyPath), workspaceRoot);
        this.linting.banditPath = getAbsolutePath(systemVariables.resolveAny(this.linting.banditPath), workspaceRoot);
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        const formattingSettings = systemVariables.resolveAny(pythonSettings.get('formatting'));
        if (this.formatting) {
            Object.assign(this.formatting, formattingSettings);
        }
        else {
            this.formatting = formattingSettings;
        }
        // Support for travis.
        this.formatting = this.formatting ? this.formatting : {
            autopep8Args: [], autopep8Path: 'autopep8',
            provider: 'autopep8',
            blackArgs: [], blackPath: 'black',
            yapfArgs: [], yapfPath: 'yapf'
        };
        this.formatting.autopep8Path = getAbsolutePath(systemVariables.resolveAny(this.formatting.autopep8Path), workspaceRoot);
        this.formatting.yapfPath = getAbsolutePath(systemVariables.resolveAny(this.formatting.yapfPath), workspaceRoot);
        this.formatting.blackPath = getAbsolutePath(systemVariables.resolveAny(this.formatting.blackPath), workspaceRoot);
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        const autoCompleteSettings = systemVariables.resolveAny(pythonSettings.get('autoComplete'));
        if (this.autoComplete) {
            Object.assign(this.autoComplete, autoCompleteSettings);
        }
        else {
            this.autoComplete = autoCompleteSettings;
        }
        // Support for travis.
        this.autoComplete = this.autoComplete ? this.autoComplete : {
            extraPaths: [],
            addBrackets: false,
            showAdvancedMembers: false,
            typeshedPaths: []
        };
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        const workspaceSymbolsSettings = systemVariables.resolveAny(pythonSettings.get('workspaceSymbols'));
        if (this.workspaceSymbols) {
            Object.assign(this.workspaceSymbols, workspaceSymbolsSettings);
        }
        else {
            this.workspaceSymbols = workspaceSymbolsSettings;
        }
        // Support for travis.
        this.workspaceSymbols = this.workspaceSymbols ? this.workspaceSymbols : {
            ctagsPath: 'ctags',
            enabled: true,
            exclusionPatterns: [],
            rebuildOnFileSave: true,
            rebuildOnStart: true,
            tagFilePath: path_1.default.join(workspaceRoot, 'tags')
        };
        this.workspaceSymbols.tagFilePath = getAbsolutePath(systemVariables.resolveAny(this.workspaceSymbols.tagFilePath), workspaceRoot);
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        const unitTestSettings = systemVariables.resolveAny(pythonSettings.get('unitTest'));
        if (this.unitTest) {
            Object.assign(this.unitTest, unitTestSettings);
        }
        else {
            this.unitTest = unitTestSettings;
            if (constants_1.isTestExecution() && !this.unitTest) {
                // tslint:disable-next-line:prefer-type-cast
                // tslint:disable-next-line:no-object-literal-type-assertion
                this.unitTest = {
                    nosetestArgs: [], pyTestArgs: [], unittestArgs: [],
                    promptToConfigure: true, debugPort: 3000,
                    nosetestsEnabled: false, pyTestEnabled: false, unittestEnabled: false,
                    nosetestPath: 'nosetests', pyTestPath: 'pytest', autoTestDiscoverOnSaveEnabled: true
                };
            }
        }
        // Support for travis.
        this.unitTest = this.unitTest ? this.unitTest : {
            promptToConfigure: true,
            debugPort: 3000,
            nosetestArgs: [], nosetestPath: 'nosetest', nosetestsEnabled: false,
            pyTestArgs: [], pyTestEnabled: false, pyTestPath: 'pytest',
            unittestArgs: [], unittestEnabled: false, autoTestDiscoverOnSaveEnabled: true
        };
        this.unitTest.pyTestPath = getAbsolutePath(systemVariables.resolveAny(this.unitTest.pyTestPath), workspaceRoot);
        this.unitTest.nosetestPath = getAbsolutePath(systemVariables.resolveAny(this.unitTest.nosetestPath), workspaceRoot);
        if (this.unitTest.cwd) {
            this.unitTest.cwd = getAbsolutePath(systemVariables.resolveAny(this.unitTest.cwd), workspaceRoot);
        }
        // Resolve any variables found in the test arguments.
        this.unitTest.nosetestArgs = this.unitTest.nosetestArgs.map(arg => systemVariables.resolveAny(arg));
        this.unitTest.pyTestArgs = this.unitTest.pyTestArgs.map(arg => systemVariables.resolveAny(arg));
        this.unitTest.unittestArgs = this.unitTest.unittestArgs.map(arg => systemVariables.resolveAny(arg));
        // tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
        const terminalSettings = systemVariables.resolveAny(pythonSettings.get('terminal'));
        if (this.terminal) {
            Object.assign(this.terminal, terminalSettings);
        }
        else {
            this.terminal = terminalSettings;
            if (constants_1.isTestExecution() && !this.terminal) {
                // tslint:disable-next-line:prefer-type-cast
                // tslint:disable-next-line:no-object-literal-type-assertion
                this.terminal = {};
            }
        }
        // Support for travis.
        this.terminal = this.terminal ? this.terminal : {
            executeInFileDir: true,
            launchArgs: [],
            activateEnvironment: true
        };
        const dataScienceSettings = systemVariables.resolveAny(pythonSettings.get('dataScience'));
        if (this.datascience) {
            Object.assign(this.datascience, dataScienceSettings);
        }
        else {
            this.datascience = dataScienceSettings;
        }
    }
    get pythonPath() {
        return this._pythonPath;
    }
    set pythonPath(value) {
        if (this._pythonPath === value) {
            return;
        }
        // Add support for specifying just the directory where the python executable will be located.
        // E.g. virtual directory name.
        try {
            this._pythonPath = this.getPythonExecutable(value);
        }
        catch (ex) {
            this._pythonPath = value;
        }
    }
    getPythonExecutable(pythonPath) {
        return getPythonExecutable(pythonPath);
    }
    onWorkspaceFoldersChanged() {
        // If an activated workspace folder was removed, delete its key
        const workspaceKeys = this.workspace.workspaceFolders.map(workspaceFolder => coc_nvim_1.Uri.parse(workspaceFolder.uri).fsPath);
        const activatedWkspcKeys = Array.from(PythonSettings.pythonSettings.keys());
        const activatedWkspcFoldersRemoved = activatedWkspcKeys.filter(item => workspaceKeys.indexOf(item) < 0);
        if (activatedWkspcFoldersRemoved.length > 0) {
            for (const folder of activatedWkspcFoldersRemoved) {
                PythonSettings.pythonSettings.delete(folder);
            }
        }
    }
    initialize() {
        const onDidChange = () => {
            const currentConfig = this.workspace.getConfiguration('python', this.workspaceRoot);
            this.update(currentConfig);
            // If workspace config changes, then we could have a cascading effect of on change events.
            // Let's defer the change notification.
            this.debounceChangeNotification();
        };
        this.disposables.push(this.interpreterAutoSelectionService.onDidChangeAutoSelectedInterpreter(onDidChange.bind(this)));
        this.disposables.push(this.workspace.onDidChangeConfiguration((event) => {
            if (event.affectsConfiguration('python')) {
                onDidChange();
            }
        }));
        const initialConfig = this.workspace.getConfiguration('python', this.workspaceRoot);
        if (initialConfig) {
            this.update(initialConfig);
        }
    }
    debounceChangeNotification() {
        this.changed.fire();
    }
}
PythonSettings.pythonSettings = new Map();
__decorate([
    decorators_1.debounce(1)
], PythonSettings.prototype, "debounceChangeNotification", null);
exports.PythonSettings = PythonSettings;
function getAbsolutePath(pathToCheck, rootDir) {
    // tslint:disable-next-line:prefer-type-cast no-unsafe-any
    pathToCheck = untildify(pathToCheck);
    if (constants_1.isTestExecution() && !pathToCheck) {
        return rootDir;
    }
    if (pathToCheck.indexOf(path_1.default.sep) === -1) {
        return pathToCheck;
    }
    return path_1.default.isAbsolute(pathToCheck) ? pathToCheck : path_1.default.resolve(rootDir, pathToCheck);
}
function getPythonExecutable(pythonPath) {
    // tslint:disable-next-line:prefer-type-cast no-unsafe-any
    pythonPath = untildify(pythonPath);
    // If only 'python'.
    if (pythonPath === 'python' ||
        pythonPath.indexOf(path_1.default.sep) === -1 ||
        path_1.default.basename(pythonPath) === path_1.default.dirname(pythonPath)) {
        return pythonPath;
    }
    if (isValidPythonPath(pythonPath)) {
        return pythonPath;
    }
    // Keep python right on top, for backwards compatibility.
    // tslint:disable-next-line:variable-name
    const KnownPythonExecutables = ['python', 'python4', 'python3.6', 'python3.5', 'python3', 'python2.7', 'python2'];
    for (let executableName of KnownPythonExecutables) {
        // Suffix with 'python' for linux and 'osx', and 'python.exe' for 'windows'.
        if (constants_2.IS_WINDOWS) {
            executableName = `${executableName}.exe`;
            if (isValidPythonPath(path_1.default.join(pythonPath, executableName))) {
                return path_1.default.join(pythonPath, executableName);
            }
            if (isValidPythonPath(path_1.default.join(pythonPath, 'scripts', executableName))) {
                return path_1.default.join(pythonPath, 'scripts', executableName);
            }
        }
        else {
            if (isValidPythonPath(path_1.default.join(pythonPath, executableName))) {
                return path_1.default.join(pythonPath, executableName);
            }
            if (isValidPythonPath(path_1.default.join(pythonPath, 'bin', executableName))) {
                return path_1.default.join(pythonPath, 'bin', executableName);
            }
        }
    }
    return pythonPath;
}
function isValidPythonPath(pythonPath) {
    try {
        const output = child_process.execFileSync(pythonPath, ['-c', 'print(1234)'], { encoding: 'utf8' });
        return output.startsWith('1234');
    }
    catch (ex) {
        return false;
    }
}


/***/ }),
/* 734 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

const os = __webpack_require__(56);

const homeDirectory = os.homedir();

module.exports = pathWithTilde => {
	if (typeof pathWithTilde !== 'string') {
		throw new TypeError(`Expected a string, got ${typeof pathWithTilde}`);
	}

	return homeDirectory ? pathWithTilde.replace(/^~(?=$|\/|\\)/, homeDirectory) : pathWithTilde;
};


/***/ }),
/* 735 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(75);
const deprecatedFeatures = [
    {
        doNotDisplayPromptStateKey: 'SHOW_DEPRECATED_FEATURE_PROMPT_FORMAT_ON_SAVE',
        message: 'The setting \'python.formatting.formatOnSave\' is deprecated, please use \'editor.formatOnSave\'.',
        moreInfoUrl: 'https://github.com/Microsoft/vscode-python/issues/309',
        setting: { setting: 'formatting.formatOnSave', values: ['true', true] }
    },
    {
        doNotDisplayPromptStateKey: 'SHOW_DEPRECATED_FEATURE_PROMPT_LINT_ON_TEXT_CHANGE',
        message: 'The setting \'python.linting.lintOnTextChange\' is deprecated, please enable \'python.linting.lintOnSave\' and \'files.autoSave\'.',
        moreInfoUrl: 'https://github.com/Microsoft/vscode-python/issues/313',
        setting: { setting: 'linting.lintOnTextChange', values: ['true', true] }
    },
    {
        doNotDisplayPromptStateKey: 'SHOW_DEPRECATED_FEATURE_PROMPT_FOR_AUTO_COMPLETE_PRELOAD_MODULES',
        message: 'The setting \'python.autoComplete.preloadModules\' is deprecated, please consider using the new Language Server (\'python.jediEnabled = false\').',
        moreInfoUrl: 'https://github.com/Microsoft/vscode-python/issues/1704',
        setting: { setting: 'autoComplete.preloadModules' }
    }
];
let FeatureDeprecationManager = class FeatureDeprecationManager {
    constructor(persistentStateFactory, cmdMgr, workspace, appShell) {
        this.persistentStateFactory = persistentStateFactory;
        this.cmdMgr = cmdMgr;
        this.workspace = workspace;
        this.appShell = appShell;
        this.disposables = [];
    }
    dispose() {
        this.disposables.forEach(disposable => disposable.dispose());
    }
    initialize() {
        deprecatedFeatures.forEach(this.registerDeprecation.bind(this));
    }
    registerDeprecation(deprecatedInfo) {
        if (Array.isArray(deprecatedInfo.commands)) {
            deprecatedInfo.commands.forEach(cmd => {
                this.disposables.push(this.cmdMgr.registerCommand(cmd, () => this.notifyDeprecation(deprecatedInfo), this));
            });
        }
        if (deprecatedInfo.setting) {
            this.checkAndNotifyDeprecatedSetting(deprecatedInfo);
        }
    }
    async notifyDeprecation(deprecatedInfo) {
        const notificationPromptEnabled = this.persistentStateFactory.createGlobalPersistentState(deprecatedInfo.doNotDisplayPromptStateKey, true);
        if (!notificationPromptEnabled.value) {
            return;
        }
        coc_nvim_1.workspace.showMessage(deprecatedInfo.message, 'warning');
        return;
    }
    checkAndNotifyDeprecatedSetting(deprecatedInfo) {
        let notify = false;
        if (Array.isArray(this.workspace.workspaceFolders) && this.workspace.workspaceFolders.length > 0) {
            this.workspace.workspaceFolders.forEach(_workspaceFolder => {
                if (notify) {
                    return;
                }
                notify = this.isDeprecatedSettingAndValueUsed(this.workspace.getConfiguration('python'), deprecatedInfo.setting);
            });
        }
        else {
            notify = this.isDeprecatedSettingAndValueUsed(this.workspace.getConfiguration('python'), deprecatedInfo.setting);
        }
        if (notify) {
            this.notifyDeprecation(deprecatedInfo)
                .catch(ex => console.error('Python Extension: notifyDeprecation', ex));
        }
    }
    isDeprecatedSettingAndValueUsed(pythonConfig, deprecatedSetting) {
        if (!pythonConfig.has(deprecatedSetting.setting)) {
            return false;
        }
        const configValue = pythonConfig.get(deprecatedSetting.setting);
        if (!Array.isArray(deprecatedSetting.values) || deprecatedSetting.values.length === 0) {
            if (Array.isArray(configValue)) {
                return configValue.length > 0;
            }
            return true;
        }
        if (!Array.isArray(deprecatedSetting.values) || deprecatedSetting.values.length === 0) {
            if (configValue === undefined) {
                return false;
            }
            if (Array.isArray(configValue)) {
                // tslint:disable-next-line:no-any
                return configValue.length > 0;
            }
            // If we have a value in the setting, then return.
            return true;
        }
        return deprecatedSetting.values.indexOf(pythonConfig.get(deprecatedSetting.setting)) >= 0;
    }
};
FeatureDeprecationManager = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IPersistentStateFactory)),
    __param(1, inversify_1.inject(types_1.ICommandManager)),
    __param(2, inversify_1.inject(types_1.IWorkspaceService)),
    __param(3, inversify_1.inject(types_1.IApplicationShell))
], FeatureDeprecationManager);
exports.FeatureDeprecationManager = FeatureDeprecationManager;


/***/ }),
/* 736 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// tslint:disable:max-classes-per-file max-classes-per-file
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const os = __importStar(__webpack_require__(56));
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_3 = __webpack_require__(205);
const types_4 = __webpack_require__(148);
const types_5 = __webpack_require__(75);
const productNames_1 = __webpack_require__(656);
const types_6 = __webpack_require__(657);
var types_7 = __webpack_require__(75);
exports.Product = types_7.Product;
const CTagsInsllationScript = os.platform() === 'darwin' ? 'brew install ctags' : 'sudo apt-get install exuberant-ctags';
class BaseInstaller {
    constructor(serviceContainer, outputChannel) {
        this.serviceContainer = serviceContainer;
        this.outputChannel = outputChannel;
        this.appShell = serviceContainer.get(types_2.IApplicationShell);
        this.configService = serviceContainer.get(types_5.IConfigurationService);
        this.productService = serviceContainer.get(types_6.IProductService);
    }
    promptToInstall(product, resource) {
        // If this method gets called twice, while previous promise has not been resolved, then return that same promise.
        // E.g. previous promise is not resolved as a message has been displayed to the user, so no point displaying
        // another message.
        const workspaceFolder = coc_nvim_1.workspace.workspaceFolder;
        const key = `${product}${workspaceFolder ? coc_nvim_1.Uri.parse(workspaceFolder.uri).fsPath : ''}`;
        if (BaseInstaller.PromptPromises.has(key)) {
            return BaseInstaller.PromptPromises.get(key);
        }
        const promise = this.promptToInstallImplementation(product, resource);
        BaseInstaller.PromptPromises.set(key, promise);
        // tslint:disable-next-line: no-empty
        promise.then(() => BaseInstaller.PromptPromises.delete(key)).catch(() => { });
        promise.catch(() => BaseInstaller.PromptPromises.delete(key));
        return promise;
    }
    async install(product, resource) {
        if (product === types_5.Product.unittest) {
            return types_5.InstallerResponse.Installed;
        }
        const channels = this.serviceContainer.get(types_6.IInstallationChannelManager);
        const installer = await channels.getInstallationChannel(product, resource);
        if (!installer) {
            return types_5.InstallerResponse.Ignore;
        }
        const moduleName = translateProductToModule(product, types_5.ModuleNamePurpose.install);
        const logger = this.serviceContainer.get(types_5.ILogger);
        await installer.installModule(moduleName, resource)
            .catch(logger.logError.bind(logger, `Error in installing the module '${moduleName}'`));
        return this.isInstalled(product, resource)
            .then(isInstalled => isInstalled ? types_5.InstallerResponse.Installed : types_5.InstallerResponse.Ignore);
    }
    async isInstalled(product, resource) {
        if (product === types_5.Product.unittest) {
            return true;
        }
        // User may have customized the module name or provided the fully qualified path.
        const executableName = this.getExecutableNameFromSettings(product, resource);
        const isModule = this.isExecutableAModule(product, resource);
        if (isModule) {
            const pythonProcess = await this.serviceContainer.get(types_4.IPythonExecutionFactory).create({ resource });
            return pythonProcess.isModuleInstalled(executableName);
        }
        else {
            const process = await this.serviceContainer.get(types_4.IProcessServiceFactory).create(resource);
            return process.exec(executableName, ['--version'], { mergeStdOutErr: true })
                .then(() => true)
                .catch(() => false);
        }
    }
    getExecutableNameFromSettings(product, resource) {
        const productType = this.productService.getProductType(product);
        const productPathService = this.serviceContainer.get(types_6.IProductPathService, productType);
        return productPathService.getExecutableNameFromSettings(product, resource);
    }
    isExecutableAModule(product, resource) {
        const productType = this.productService.getProductType(product);
        const productPathService = this.serviceContainer.get(types_6.IProductPathService, productType);
        return productPathService.isExecutableAModule(product, resource);
    }
}
BaseInstaller.PromptPromises = new Map();
exports.BaseInstaller = BaseInstaller;
class CTagsInstaller extends BaseInstaller {
    constructor(serviceContainer, outputChannel) {
        super(serviceContainer, outputChannel);
    }
    async install(_product, _resource) {
        if (this.serviceContainer.get(types_3.IPlatformService).isWindows) {
            this.outputChannel.appendLine('Install Universal Ctags Win32 to enable support for Workspace Symbols');
            this.outputChannel.appendLine('Download the CTags binary from the Universal CTags site.');
            this.outputChannel.appendLine('Option 1: Extract ctags.exe from the downloaded zip to any folder within your PATH so that Visual Studio Code can run it.');
            this.outputChannel.appendLine('Option 2: Extract to any folder and add the path to this folder to the command setting.');
            this.outputChannel.appendLine('Option 3: Extract to any folder and define that path in the python.workspaceSymbols.ctagsPath setting of your user settings file (settings.json).');
            this.outputChannel.show();
        }
        else {
            let res = await coc_nvim_1.workspace.runTerminalCommand(CTagsInsllationScript, process.cwd(), true);
            if (!res.success) {
                const logger = this.serviceContainer.get(types_5.ILogger);
                logger.logError.bind(logger, `Failed to install ctags. Script sent '${CTagsInsllationScript}'.`);
            }
        }
        return types_5.InstallerResponse.Ignore;
    }
    async promptToInstallImplementation(product, resource) {
        const res = await coc_nvim_1.workspace.showPrompt('Install CTags to enable Python workspace symbols?');
        return res ? this.install(product, resource) : types_5.InstallerResponse.Ignore;
    }
}
exports.CTagsInstaller = CTagsInstaller;
class FormatterInstaller extends BaseInstaller {
    async promptToInstallImplementation(product, resource) {
        // Hard-coded on purpose because the UI won't necessarily work having
        // another formatter.
        const formatters = [types_5.Product.autopep8, types_5.Product.black, types_5.Product.yapf];
        const formatterNames = formatters.map(formatter => productNames_1.ProductNames.get(formatter));
        const productName = productNames_1.ProductNames.get(product);
        formatterNames.splice(formatterNames.indexOf(productName), 1);
        const useOptions = formatterNames.map(name => `Use ${name}`);
        const yesChoice = 'Yes';
        const options = [...useOptions];
        let message = `Formatter ${productName} is not installed. Install?`;
        if (this.isExecutableAModule(product, resource)) {
            options.splice(0, 0, yesChoice);
        }
        else {
            const executable = this.getExecutableNameFromSettings(product, resource);
            message = `Path to the ${productName} formatter is invalid (${executable})`;
        }
        const idx = await coc_nvim_1.workspace.showQuickpick(options, message);
        if (idx !== -1) {
            let item = options[idx];
            if (item === yesChoice) {
                return this.install(product, resource);
            }
            else if (typeof item === 'string') {
                for (const formatter of formatters) {
                    const formatterName = productNames_1.ProductNames.get(formatter);
                    if (item.endsWith(formatterName)) {
                        await this.configService.updateSetting('formatting.provider', formatterName, resource);
                        return this.install(formatter, resource);
                    }
                }
            }
        }
        return types_5.InstallerResponse.Ignore;
    }
}
exports.FormatterInstaller = FormatterInstaller;
class LinterInstaller extends BaseInstaller {
    async promptToInstallImplementation(product, resource) {
        const isPylint = product === types_5.Product.pylint;
        const productName = productNames_1.ProductNames.get(product);
        const install = 'Install';
        const disableInstallPrompt = 'Do not show again';
        const disableLinterInstallPromptKey = `${productName}_DisableLinterInstallPrompt`;
        const selectLinter = 'Select Linter';
        if (isPylint && this.getStoredResponse(disableLinterInstallPromptKey) === true) {
            return types_5.InstallerResponse.Ignore;
        }
        const options = isPylint ? [selectLinter, disableInstallPrompt] : [selectLinter];
        let message = `Linter ${productName} is not installed.`;
        if (this.isExecutableAModule(product, resource)) {
            options.splice(0, 0, install);
        }
        else {
            const executable = this.getExecutableNameFromSettings(product, resource);
            message = `Path to the ${productName} linter is invalid (${executable})`;
        }
        const idx = await coc_nvim_1.workspace.showQuickpick(options, message);
        if (idx !== -1) {
            let response = options[idx];
            if (response === install) {
                return this.install(product, resource);
            }
            else if (response === disableInstallPrompt) {
                await this.setStoredResponse(disableLinterInstallPromptKey, true);
                return types_5.InstallerResponse.Ignore;
            }
            if (response === selectLinter) {
                const commandManager = this.serviceContainer.get(types_2.ICommandManager);
                commandManager.executeCommand(constants_1.Commands.Set_Linter);
            }
        }
        return types_5.InstallerResponse.Ignore;
    }
    /**
     * For installers that want to avoid prompting the user over and over, they can make use of a
     * persisted true/false value representing user responses to 'stop showing this prompt'. This method
     * gets the persisted value given the installer-defined key.
     *
     * @param key Key to use to get a persisted response value, each installer must define this for themselves.
     * @returns Boolean: The current state of the stored response key given.
     */
    getStoredResponse(key) {
        const factory = this.serviceContainer.get(types_5.IPersistentStateFactory);
        const state = factory.createGlobalPersistentState(key, undefined);
        return state.value === true;
    }
    /**
     * For installers that want to avoid prompting the user over and over, they can make use of a
     * persisted true/false value representing user responses to 'stop showing this prompt'. This
     * method will set that persisted value given the installer-defined key.
     *
     * @param key Key to use to get a persisted response value, each installer must define this for themselves.
     * @param value Boolean value to store for the user - if they choose to not be prompted again for instance.
     * @returns Boolean: The current state of the stored response key given.
     */
    async setStoredResponse(key, value) {
        const factory = this.serviceContainer.get(types_5.IPersistentStateFactory);
        const state = factory.createGlobalPersistentState(key, undefined);
        if (state && state.value !== value) {
            await state.updateValue(value);
        }
    }
}
exports.LinterInstaller = LinterInstaller;
class TestFrameworkInstaller extends BaseInstaller {
    async promptToInstallImplementation(product, resource) {
        const productName = productNames_1.ProductNames.get(product);
        const options = [];
        let message = `Test framework ${productName} is not installed. Install?`;
        if (this.isExecutableAModule(product, resource)) {
            options.push(...['Yes', 'No']);
        }
        else {
            const executable = this.getExecutableNameFromSettings(product, resource);
            message = `Path to the ${productName} test framework is invalid (${executable})`;
        }
        const idx = await coc_nvim_1.workspace.showQuickpick(options, message);
        return idx !== -1 && options[idx] == 'Yes' ? this.install(product, resource) : types_5.InstallerResponse.Ignore;
    }
}
exports.TestFrameworkInstaller = TestFrameworkInstaller;
class RefactoringLibraryInstaller extends BaseInstaller {
    async promptToInstallImplementation(product, resource) {
        const productName = productNames_1.ProductNames.get(product);
        const res = await coc_nvim_1.workspace.showPrompt(`Refactoring library ${productName} is not installed. Install?`);
        return res ? this.install(product, resource) : types_5.InstallerResponse.Ignore;
    }
}
exports.RefactoringLibraryInstaller = RefactoringLibraryInstaller;
let ProductInstaller = class ProductInstaller {
    constructor(serviceContainer, outputChannel) {
        this.serviceContainer = serviceContainer;
        this.outputChannel = outputChannel;
        this.productService = serviceContainer.get(types_6.IProductService);
    }
    // tslint:disable-next-line:no-empty
    dispose() { }
    async promptToInstall(product, resource) {
        return this.createInstaller(product).promptToInstall(product, resource);
    }
    async install(product, resource) {
        return this.createInstaller(product).install(product, resource);
    }
    async isInstalled(product, resource) {
        return this.createInstaller(product).isInstalled(product, resource);
    }
    translateProductToModuleName(product, purpose) {
        return translateProductToModule(product, purpose);
    }
    createInstaller(product) {
        const productType = this.productService.getProductType(product);
        switch (productType) {
            case types_5.ProductType.Formatter:
                return new FormatterInstaller(this.serviceContainer, this.outputChannel);
            case types_5.ProductType.Linter:
                return new LinterInstaller(this.serviceContainer, this.outputChannel);
            case types_5.ProductType.WorkspaceSymbols:
                return new CTagsInstaller(this.serviceContainer, this.outputChannel);
            case types_5.ProductType.TestFramework:
                return new TestFrameworkInstaller(this.serviceContainer, this.outputChannel);
            case types_5.ProductType.RefactoringLibrary:
                return new RefactoringLibraryInstaller(this.serviceContainer, this.outputChannel);
            default:
                break;
        }
        throw new Error(`Unknown product ${product}`);
    }
};
ProductInstaller = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer)),
    __param(1, inversify_1.inject(types_5.IOutputChannel)), __param(1, inversify_1.named(constants_1.STANDARD_OUTPUT_CHANNEL))
], ProductInstaller);
exports.ProductInstaller = ProductInstaller;
function translateProductToModule(product, purpose) {
    switch (product) {
        case types_5.Product.mypy: return 'mypy';
        case types_5.Product.nosetest: {
            return purpose === types_5.ModuleNamePurpose.install ? 'nose' : 'nosetests';
        }
        case types_5.Product.pylama: return 'pylama';
        case types_5.Product.prospector: return 'prospector';
        case types_5.Product.pylint: return 'pylint';
        case types_5.Product.pytest: return 'pytest';
        case types_5.Product.autopep8: return 'autopep8';
        case types_5.Product.black: return 'black';
        case types_5.Product.pep8: return 'pep8';
        case types_5.Product.pydocstyle: return 'pydocstyle';
        case types_5.Product.yapf: return 'yapf';
        case types_5.Product.flake8: return 'flake8';
        case types_5.Product.unittest: return 'unittest';
        case types_5.Product.rope: return 'rope';
        case types_5.Product.bandit: return 'bandit';
        default: {
            throw new Error(`Product ${product} cannot be installed as a Python Module.`);
        }
    }
}


/***/ }),
/* 737 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-var-requires
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
function launch(url) {
    // tslint:disable-next-line: no-floating-promises
    coc_nvim_1.workspace.openResource(url);
}
exports.launch = launch;
let BrowserService = class BrowserService {
    launch(url) {
        // tslint:disable-next-line: no-floating-promises
        coc_nvim_1.workspace.openResource(url);
    }
};
BrowserService = __decorate([
    inversify_1.injectable()
], BrowserService);
exports.BrowserService = BrowserService;


/***/ }),
/* 738 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
let HttpClient = class HttpClient {
    constructor() {
        this.requestOptions = { proxy: coc_nvim_1.workspace.getConfiguration('http').get('proxy', '') };
    }
    async downloadFile(uri) {
        // tslint:disable-next-line:no-any
        const request = await Promise.resolve().then(() => __importStar(__webpack_require__(309)));
        return request.default(uri, this.requestOptions);
    }
    async getJSON(uri) {
        // tslint:disable-next-line:no-require-imports
        const request = __webpack_require__(309);
        return new Promise((resolve, reject) => {
            request(uri, this.requestOptions, (ex, response, body) => {
                if (ex) {
                    return reject(ex);
                }
                if (response.statusCode !== 200) {
                    return reject(new Error(`Failed with status ${response.statusCode}, ${response.statusMessage}, Uri ${uri}`));
                }
                resolve(JSON.parse(body));
            });
        });
    }
};
HttpClient = __decorate([
    inversify_1.injectable()
], HttpClient);
exports.HttpClient = HttpClient;


/***/ }),
/* 739 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const semver_1 = __webpack_require__(265);
let NugetService = class NugetService {
    isReleaseVersion(version) {
        return version.prerelease.length === 0;
    }
    getVersionFromPackageFileName(packageName) {
        const ext = path.extname(packageName);
        const versionWithExt = packageName.substring(packageName.indexOf('.') + 1);
        const version = versionWithExt.substring(0, versionWithExt.length - ext.length);
        // Take only the first 3 parts.
        const parts = version.split('.');
        const semverParts = parts.filter((_, index) => index <= 2).join('.');
        const lastParts = parts.filter((_, index) => index === 3).join('.');
        const suffix = lastParts.length === 0 ? '' : `-${lastParts}`;
        const fixedVersion = `${semverParts}${suffix}`;
        return semver_1.parse(fixedVersion, true) || new semver_1.SemVer('0.0.0');
    }
};
NugetService = __decorate([
    inversify_1.injectable()
], NugetService);
exports.NugetService = NugetService;


/***/ }),
/* 740 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(75);
class PersistentState {
    constructor(storage, key, defaultValue, expiryDurationMs) {
        this.storage = storage;
        this.key = key;
        this.defaultValue = defaultValue;
        this.expiryDurationMs = expiryDurationMs;
    }
    get value() {
        if (this.expiryDurationMs) {
            const cachedData = this.storage.get(this.key, { data: this.defaultValue });
            if (!cachedData || !cachedData.expiry || cachedData.expiry < Date.now()) {
                return this.defaultValue;
            }
            else {
                return cachedData.data;
            }
        }
        else {
            return this.storage.get(this.key, this.defaultValue);
        }
    }
    async updateValue(newValue) {
        if (this.expiryDurationMs) {
            await Promise.resolve(this.storage.update(this.key, { data: newValue, expiry: Date.now() + this.expiryDurationMs }));
        }
        else {
            await Promise.resolve(this.storage.update(this.key, newValue));
        }
    }
}
exports.PersistentState = PersistentState;
let PersistentStateFactory = class PersistentStateFactory {
    constructor(globalState, workspaceState) {
        this.globalState = globalState;
        this.workspaceState = workspaceState;
    }
    createGlobalPersistentState(key, defaultValue, expiryDurationMs) {
        return new PersistentState(this.globalState, key, defaultValue, expiryDurationMs);
    }
    createWorkspacePersistentState(key, defaultValue, expiryDurationMs) {
        return new PersistentState(this.workspaceState, key, defaultValue, expiryDurationMs);
    }
};
PersistentStateFactory = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IMemento)), __param(0, inversify_1.named(types_1.GLOBAL_MEMENTO)),
    __param(1, inversify_1.inject(types_1.IMemento)), __param(1, inversify_1.named(types_1.WORKSPACE_MEMENTO))
], PersistentStateFactory);
exports.PersistentStateFactory = PersistentStateFactory;


/***/ }),
/* 741 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(75);
const constants_1 = __webpack_require__(147);
// tslint:disable-next-line:no-var-requires no-require-imports
const untildify = __webpack_require__(734);
let PathUtils = class PathUtils {
    constructor(isWindows) {
        this.isWindows = isWindows;
        this.home = '';
        this.home = untildify('~');
    }
    get delimiter() {
        return path.delimiter;
    }
    get separator() {
        return path.sep;
    }
    // TO DO: Deprecate in favor of IPlatformService
    getPathVariableName() {
        return this.isWindows ? constants_1.WINDOWS_PATH_VARIABLE_NAME : constants_1.NON_WINDOWS_PATH_VARIABLE_NAME;
    }
    basename(pathValue, ext) {
        return path.basename(pathValue, ext);
    }
    getDisplayName(pathValue, cwd) {
        if (cwd && pathValue.startsWith(cwd)) {
            return `.${path.sep}${path.relative(cwd, pathValue)}`;
        }
        else if (pathValue.startsWith(this.home)) {
            return `~${path.sep}${path.relative(this.home, pathValue)}`;
        }
        else {
            return pathValue;
        }
    }
};
PathUtils = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IsWindows))
], PathUtils);
exports.PathUtils = PathUtils;


/***/ }),
/* 742 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-any
const inversify_1 = __webpack_require__(3);
let CurrentProcess = class CurrentProcess {
    constructor() {
        this.on = (event, listener) => {
            process.on(event, listener);
            return process;
        };
    }
    get env() {
        return process.env;
    }
    get argv() {
        return process.argv;
    }
    get stdout() {
        return process.stdout;
    }
    get stdin() {
        return process.stdin;
    }
    get execPath() {
        return process.execPath;
    }
};
CurrentProcess = __decorate([
    inversify_1.injectable()
], CurrentProcess);
exports.CurrentProcess = CurrentProcess;


/***/ }),
/* 743 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(744);
const base_1 = __webpack_require__(745);
const function_1 = __webpack_require__(80);
let TerminalActivator = class TerminalActivator {
    constructor(helper, handlers) {
        this.helper = helper;
        this.handlers = handlers;
        this.initialize();
    }
    async activateEnvironmentInTerminal(terminal, resource, preserveFocus = true) {
        const activated = await this.baseActivator.activateEnvironmentInTerminal(terminal, resource, preserveFocus);
        this.handlers.forEach(handler => handler.handleActivation(terminal, resource, preserveFocus, activated).catch(function_1.emptyFn));
        return activated;
    }
    initialize() {
        this.baseActivator = new base_1.BaseTerminalActivator(this.helper);
    }
};
TerminalActivator = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.ITerminalHelper)),
    __param(1, inversify_1.multiInject(types_1.ITerminalActivationHandler))
], TerminalActivator);
exports.TerminalActivator = TerminalActivator;


/***/ }),
/* 744 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var TerminalActivationProviders;
(function (TerminalActivationProviders) {
    TerminalActivationProviders["bashCShellFish"] = "bashCShellFish";
    TerminalActivationProviders["commandPromptAndPowerShell"] = "commandPromptAndPowerShell";
    TerminalActivationProviders["pyenv"] = "pyenv";
    TerminalActivationProviders["conda"] = "conda";
    TerminalActivationProviders["pipenv"] = "pipenv";
})(TerminalActivationProviders = exports.TerminalActivationProviders || (exports.TerminalActivationProviders = {}));
var TerminalShellType;
(function (TerminalShellType) {
    TerminalShellType["powershell"] = "powershell";
    TerminalShellType["powershellCore"] = "powershellCore";
    TerminalShellType["commandPrompt"] = "commandPrompt";
    TerminalShellType["gitbash"] = "gitbash";
    TerminalShellType["bash"] = "bash";
    TerminalShellType["zsh"] = "zsh";
    TerminalShellType["ksh"] = "ksh";
    TerminalShellType["fish"] = "fish";
    TerminalShellType["cshell"] = "cshell";
    TerminalShellType["tcshell"] = "tshell";
    TerminalShellType["wsl"] = "wsl";
    TerminalShellType["xonsh"] = "xonsh";
    TerminalShellType["other"] = "other";
})(TerminalShellType = exports.TerminalShellType || (exports.TerminalShellType = {}));
exports.ITerminalServiceFactory = Symbol('ITerminalServiceFactory');
exports.ITerminalHelper = Symbol('ITerminalHelper');
exports.ITerminalActivator = Symbol('ITerminalActivator');
exports.ITerminalActivationCommandProvider = Symbol('ITerminalActivationCommandProvider');
exports.ITerminalActivationHandler = Symbol('ITerminalActivationHandler');


/***/ }),
/* 745 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const async_1 = __webpack_require__(150);
const types_1 = __webpack_require__(744);
class BaseTerminalActivator {
    constructor(helper) {
        this.helper = helper;
        this.activatedTerminals = new Map();
    }
    async activateEnvironmentInTerminal(terminal, resource, preserveFocus = true) {
        if (this.activatedTerminals.has(terminal)) {
            return this.activatedTerminals.get(terminal);
        }
        const deferred = async_1.createDeferred();
        this.activatedTerminals.set(terminal, deferred.promise);
        const shellPath = this.helper.getTerminalShellPath();
        const terminalShellType = !shellPath || shellPath.length === 0 ? types_1.TerminalShellType.other : this.helper.identifyTerminalShell(shellPath);
        const activationCommamnds = await this.helper.getEnvironmentActivationCommands(terminalShellType, resource);
        let activated = false;
        if (activationCommamnds) {
            for (const command of activationCommamnds) {
                terminal.show(preserveFocus);
                terminal.sendText(command);
                await this.waitForCommandToProcess(terminalShellType);
                activated = true;
            }
        }
        deferred.resolve(activated);
        return activated;
    }
    async waitForCommandToProcess(_shell) {
        // Give the command some time to complete.
        // Its been observed that sending commands too early will strip some text off in VS Code Terminal.
        await async_1.sleep(500);
    }
}
exports.BaseTerminalActivator = BaseTerminalActivator;


/***/ }),
/* 746 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const powerShellActivation_1 = __webpack_require__(639);
const types_1 = __webpack_require__(97);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(744);
const function_1 = __webpack_require__(80);
let PowershellTerminalActivationFailedHandler = class PowershellTerminalActivationFailedHandler {
    constructor(helper, platformService, diagnosticService) {
        this.helper = helper;
        this.platformService = platformService;
        this.diagnosticService = diagnosticService;
    }
    async handleActivation(_terminal, resource, _preserveFocus, activated) {
        if (activated || !this.platformService.isWindows) {
            return;
        }
        const shell = this.helper.identifyTerminalShell(this.helper.getTerminalShellPath());
        if (shell !== types_3.TerminalShellType.powershell && shell !== types_3.TerminalShellType.powershellCore) {
            return;
        }
        // Check if we can activate in Command Prompt.
        const activationCommands = await this.helper.getEnvironmentActivationCommands(types_3.TerminalShellType.commandPrompt, resource);
        if (!activationCommands || !Array.isArray(activationCommands) || activationCommands.length === 0) {
            return;
        }
        this.diagnosticService.handle([new powerShellActivation_1.PowershellActivationNotAvailableDiagnostic(resource)]).catch(function_1.emptyFn);
    }
};
PowershellTerminalActivationFailedHandler = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.ITerminalHelper)),
    __param(1, inversify_1.inject(types_2.IPlatformService)),
    __param(2, inversify_1.inject(types_1.IDiagnosticsService)), __param(2, inversify_1.named(powerShellActivation_1.PowerShellActivationHackDiagnosticsServiceId))
], PowershellTerminalActivationFailedHandler);
exports.PowershellTerminalActivationFailedHandler = PowershellTerminalActivationFailedHandler;


/***/ }),
/* 747 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(744);
const baseActivationProvider_1 = __webpack_require__(748);
const string_1 = __webpack_require__(149);
let Bash = class Bash extends baseActivationProvider_1.BaseActivationCommandProvider {
    constructor(serviceContainer) {
        super(serviceContainer);
    }
    isShellSupported(targetShell) {
        return targetShell === types_2.TerminalShellType.bash ||
            targetShell === types_2.TerminalShellType.gitbash ||
            targetShell === types_2.TerminalShellType.wsl ||
            targetShell === types_2.TerminalShellType.ksh ||
            targetShell === types_2.TerminalShellType.zsh ||
            targetShell === types_2.TerminalShellType.cshell ||
            targetShell === types_2.TerminalShellType.tcshell ||
            targetShell === types_2.TerminalShellType.fish;
    }
    async getActivationCommandsForInterpreter(pythonPath, targetShell) {
        const scriptFile = await this.findScriptFile(pythonPath, this.getScriptsInOrderOfPreference(targetShell));
        if (!scriptFile) {
            return;
        }
        return [`source ${string_1.fileToCommandArgument(scriptFile)}`];
    }
    getScriptsInOrderOfPreference(targetShell) {
        switch (targetShell) {
            case types_2.TerminalShellType.wsl:
            case types_2.TerminalShellType.ksh:
            case types_2.TerminalShellType.zsh:
            case types_2.TerminalShellType.gitbash:
            case types_2.TerminalShellType.bash: {
                return ['activate.sh', 'activate'];
            }
            case types_2.TerminalShellType.tcshell:
            case types_2.TerminalShellType.cshell: {
                return ['activate.csh'];
            }
            case types_2.TerminalShellType.fish: {
                return ['activate.fish'];
            }
            default: {
                return [];
            }
        }
    }
};
Bash = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], Bash);
exports.Bash = Bash;


/***/ }),
/* 748 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
let BaseActivationCommandProvider = class BaseActivationCommandProvider {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    getActivationCommands(resource, targetShell) {
        const pythonPath = this.serviceContainer.get(types_2.IConfigurationService).getSettings(resource).pythonPath;
        return this.getActivationCommandsForInterpreter(pythonPath, targetShell);
    }
    async findScriptFile(pythonPath, scriptFileNames) {
        const fs = this.serviceContainer.get(types_1.IFileSystem);
        for (const scriptFileName of scriptFileNames) {
            // Generate scripts are found in the same directory as the interpreter.
            const scriptFile = path.join(path.dirname(pythonPath), scriptFileName);
            const found = await fs.fileExists(scriptFile);
            if (found) {
                return scriptFile;
            }
        }
    }
};
BaseActivationCommandProvider = __decorate([
    inversify_1.injectable()
], BaseActivationCommandProvider);
exports.BaseActivationCommandProvider = BaseActivationCommandProvider;


/***/ }),
/* 749 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(744);
const baseActivationProvider_1 = __webpack_require__(748);
const string_1 = __webpack_require__(149);
let CommandPromptAndPowerShell = class CommandPromptAndPowerShell extends baseActivationProvider_1.BaseActivationCommandProvider {
    constructor(serviceContainer) {
        super(serviceContainer);
    }
    isShellSupported(targetShell) {
        return targetShell === types_2.TerminalShellType.commandPrompt ||
            targetShell === types_2.TerminalShellType.powershell ||
            targetShell === types_2.TerminalShellType.powershellCore;
    }
    async getActivationCommandsForInterpreter(pythonPath, targetShell) {
        // Dependending on the target shell, look for the preferred script file.
        const scriptFile = await this.findScriptFile(pythonPath, this.getScriptsInOrderOfPreference(targetShell));
        if (!scriptFile) {
            return;
        }
        if (targetShell === types_2.TerminalShellType.commandPrompt && scriptFile.endsWith('activate.bat')) {
            return [string_1.fileToCommandArgument(scriptFile)];
        }
        else if ((targetShell === types_2.TerminalShellType.powershell || targetShell === types_2.TerminalShellType.powershellCore) && scriptFile.endsWith('activate.ps1')) {
            return [`& ${string_1.fileToCommandArgument(scriptFile)}`];
        }
        else if (targetShell === types_2.TerminalShellType.commandPrompt && scriptFile.endsWith('activate.ps1')) {
            // lets not try to run the powershell file from command prompt (user may not have powershell)
            return [];
        }
        else {
            return;
        }
    }
    getScriptsInOrderOfPreference(targetShell) {
        const batchFiles = ['activate.bat', path.join('Scripts', 'activate.bat'), path.join('scripts', 'activate.bat')];
        const powerShellFiles = ['activate.ps1', path.join('Scripts', 'activate.ps1'), path.join('scripts', 'activate.ps1')];
        if (targetShell === types_2.TerminalShellType.commandPrompt) {
            return batchFiles.concat(powerShellFiles);
        }
        else {
            return powerShellFiles.concat(batchFiles);
        }
    }
};
CommandPromptAndPowerShell = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], CommandPromptAndPowerShell);
exports.CommandPromptAndPowerShell = CommandPromptAndPowerShell;


/***/ }),
/* 750 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const contracts_1 = __webpack_require__(90);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const types_3 = __webpack_require__(744);
const string_1 = __webpack_require__(149);
// Version number of conda that requires we call activate with 'conda activate' instead of just 'activate'
const CondaRequiredMajor = 4;
const CondaRequiredMinor = 4;
/**
 * Support conda env activation (in the terminal).
 */
let CondaActivationCommandProvider = class CondaActivationCommandProvider {
    constructor(condaService, platform, configService) {
        this.condaService = condaService;
        this.platform = platform;
        this.configService = configService;
    }
    /**
     * Is the given shell supported for activating a conda env?
     */
    isShellSupported(_targetShell) {
        return true;
    }
    /**
     * Return the command needed to activate the conda env.
     */
    getActivationCommands(resource, targetShell) {
        const pythonPath = this.configService.getSettings(resource).pythonPath;
        return this.getActivationCommandsForInterpreter(pythonPath, targetShell);
    }
    /**
     * Return the command needed to activate the conda env.
     *
     */
    async getActivationCommandsForInterpreter(pythonPath, targetShell) {
        const envInfo = await this.condaService.getCondaEnvironment(pythonPath);
        if (!envInfo) {
            return;
        }
        // Algorithm differs based on version
        // Old version, just call activate directly.
        // New version, call activate from the same path as our python path, then call it again to activate our environment.
        // -- note that the 'default' conda location won't allow activate to work for the environment sometimes.
        const versionInfo = await this.condaService.getCondaVersion();
        if (versionInfo && (versionInfo.major > CondaRequiredMajor || (versionInfo.major === CondaRequiredMajor && versionInfo.minor >= CondaRequiredMinor))) {
            // New version.
            const interpreterPath = await this.condaService.getCondaFileFromInterpreter(pythonPath, envInfo.name);
            if (interpreterPath) {
                const activatePath = string_1.fileToCommandArgument(path.join(path.dirname(interpreterPath), 'activate'));
                let activate_path = targetShell;
                const firstActivate = this.platform.isWindows ? activatePath : activate_path;
                return [firstActivate, `conda activate ${string_1.toCommandArgument(envInfo.name)}`];
            }
        }
        // Old version. Just call activate next to conda
        if (this.platform.isWindows) {
            // windows activate can be a bit tricky due to conda changes.
            switch (targetShell) {
                case types_3.TerminalShellType.powershell:
                case types_3.TerminalShellType.powershellCore:
                    return this.getPowershellCommands(envInfo.name, targetShell);
                // tslint:disable-next-line:no-suspicious-comment
                // TODO: Do we really special-case fish on Windows?
                case types_3.TerminalShellType.fish:
                    return this.getFishCommands(envInfo.name, await this.condaService.getCondaFile());
                default:
                    return this.getWindowsCommands(envInfo.name);
            }
        }
        else {
            switch (targetShell) {
                case types_3.TerminalShellType.powershell:
                case types_3.TerminalShellType.powershellCore:
                    return;
                // tslint:disable-next-line:no-suspicious-comment
                // TODO: What about pre-4.4.0?
                case types_3.TerminalShellType.fish:
                    return this.getFishCommands(envInfo.name, await this.condaService.getCondaFile());
                default:
                    return this.getUnixCommands(envInfo.name, await this.condaService.getCondaFile());
            }
        }
    }
    async getWindowsActivateCommand() {
        let activateCmd = 'activate';
        const condaExePath = await this.condaService.getCondaFile();
        if (condaExePath && path.basename(condaExePath) !== condaExePath) {
            const condaScriptsPath = path.dirname(condaExePath);
            // prefix the cmd with the found path, and ensure it's quoted properly
            activateCmd = path.join(condaScriptsPath, activateCmd);
            activateCmd = string_1.toCommandArgument(activateCmd);
        }
        return activateCmd;
    }
    async getWindowsCommands(envName) {
        const activate = await this.getWindowsActivateCommand();
        return [
            `${activate} ${string_1.toCommandArgument(envName)}`
        ];
    }
    async getPowershellCommands(_envName, _targetShell) {
        return;
    }
    async getFishCommands(envName, conda) {
        // https://github.com/conda/conda/blob/be8c08c083f4d5e05b06bd2689d2cd0d410c2ffe/shell/etc/fish/conf.d/conda.fish#L18-L28
        return [
            `${string_1.fileToCommandArgument(conda)} activate ${string_1.toCommandArgument(envName)}`
        ];
    }
    async getUnixCommands(envName, conda) {
        const condaDir = path.dirname(conda);
        const activateFile = path.join(condaDir, 'activate');
        return [
            `source ${string_1.fileToCommandArgument(activateFile)} ${string_1.toCommandArgument(envName)}`
        ];
    }
};
CondaActivationCommandProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(contracts_1.ICondaService)),
    __param(1, inversify_1.inject(types_1.IPlatformService)),
    __param(2, inversify_1.inject(types_2.IConfigurationService))
], CondaActivationCommandProvider);
exports.CondaActivationCommandProvider = CondaActivationCommandProvider;


/***/ }),
/* 751 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const contracts_1 = __webpack_require__(90);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const coc_nvim_1 = __webpack_require__(2);
const string_1 = __webpack_require__(149);
let PipEnvActivationCommandProvider = class PipEnvActivationCommandProvider {
    constructor(interpreterService, pipenvService, workspaceService, fs) {
        this.interpreterService = interpreterService;
        this.pipenvService = pipenvService;
        this.workspaceService = workspaceService;
        this.fs = fs;
    }
    isShellSupported(_targetShell) {
        return false;
    }
    async getActivationCommands(resource, _) {
        const interpreter = await this.interpreterService.getActiveInterpreter(resource);
        if (!interpreter || interpreter.type !== contracts_1.InterpreterType.Pipenv) {
            return;
        }
        // Activate using `pipenv shell` only if the current folder relates pipenv environment.
        if (!this.fs.arePathsSame(coc_nvim_1.workspace.rootPath, interpreter.pipEnvWorkspaceFolder)) {
            return;
        }
        const execName = this.pipenvService.executable;
        return [`${string_1.fileToCommandArgument(execName)} shell`];
    }
    async getActivationCommandsForInterpreter(pythonPath, _targetShell) {
        const interpreter = await this.interpreterService.getInterpreterDetails(pythonPath);
        if (!interpreter || interpreter.type !== contracts_1.InterpreterType.Pipenv) {
            return;
        }
        const execName = this.pipenvService.executable;
        return [`${string_1.fileToCommandArgument(execName)} shell`];
    }
};
PipEnvActivationCommandProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(contracts_1.IInterpreterService)),
    __param(1, inversify_1.inject(contracts_1.IPipEnvService)),
    __param(2, inversify_1.inject(types_1.IWorkspaceService)),
    __param(3, inversify_1.inject(types_2.IFileSystem))
], PipEnvActivationCommandProvider);
exports.PipEnvActivationCommandProvider = PipEnvActivationCommandProvider;


/***/ }),
/* 752 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const contracts_1 = __webpack_require__(90);
const types_1 = __webpack_require__(95);
const string_1 = __webpack_require__(149);
let PyEnvActivationCommandProvider = class PyEnvActivationCommandProvider {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    isShellSupported(_targetShell) {
        return true;
    }
    async getActivationCommands(resource, _) {
        const interpreter = await this.serviceContainer.get(contracts_1.IInterpreterService).getActiveInterpreter(resource);
        if (!interpreter || interpreter.type !== contracts_1.InterpreterType.Pyenv || !interpreter.envName) {
            return;
        }
        return [`pyenv shell ${string_1.toCommandArgument(interpreter.envName)}`];
    }
    async getActivationCommandsForInterpreter(pythonPath, _targetShell) {
        const interpreter = await this.serviceContainer.get(contracts_1.IInterpreterService).getInterpreterDetails(pythonPath);
        if (!interpreter || interpreter.type !== contracts_1.InterpreterType.Pyenv || !interpreter.envName) {
            return;
        }
        return [`pyenv shell ${string_1.toCommandArgument(interpreter.envName)}`];
    }
};
PyEnvActivationCommandProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], PyEnvActivationCommandProvider);
exports.PyEnvActivationCommandProvider = PyEnvActivationCommandProvider;


/***/ }),
/* 753 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(95);
const service_1 = __webpack_require__(754);
let TerminalServiceFactory = class TerminalServiceFactory {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.terminalServices = new Map();
    }
    getTerminalService(resource, title) {
        const terminalTitle = typeof title === 'string' && title.trim().length > 0 ? title.trim() : 'Python';
        const id = this.getTerminalId(terminalTitle, resource);
        if (!this.terminalServices.has(id)) {
            const terminalService = new service_1.TerminalService(this.serviceContainer, resource, terminalTitle);
            this.terminalServices.set(id, terminalService);
        }
        return this.terminalServices.get(id);
    }
    createTerminalService(resource, title) {
        const terminalTitle = typeof title === 'string' && title.trim().length > 0 ? title.trim() : 'Python';
        return new service_1.TerminalService(this.serviceContainer, resource, terminalTitle);
    }
    getTerminalId(title, resource) {
        if (!resource) {
            return title;
        }
        return `${title}:${process.cwd()}`;
    }
};
TerminalServiceFactory = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], TerminalServiceFactory);
exports.TerminalServiceFactory = TerminalServiceFactory;


/***/ }),
/* 754 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(78);
const types_3 = __webpack_require__(75);
const types_4 = __webpack_require__(744);
let TerminalService = class TerminalService {
    constructor(serviceContainer, resource, title = 'Python') {
        this.serviceContainer = serviceContainer;
        this.resource = resource;
        this.title = title;
        this.terminalClosed = new vscode_languageserver_protocol_1.Emitter();
        const disposableRegistry = this.serviceContainer.get(types_3.IDisposableRegistry);
        disposableRegistry.push(this);
        this.terminalHelper = this.serviceContainer.get(types_4.ITerminalHelper);
        this.terminalManager = this.serviceContainer.get(types_2.ITerminalManager);
        this.terminalManager.onDidCloseTerminal(this.terminalCloseHandler, this, disposableRegistry);
        this.terminalActivator = this.serviceContainer.get(types_4.ITerminalActivator);
    }
    get onDidCloseTerminal() {
        return this.terminalClosed.event.bind(this.terminalClosed);
    }
    dispose() {
        if (this.terminal) {
            this.terminal.dispose();
        }
    }
    async sendCommand(command, args) {
        await this.ensureTerminal();
        const text = this.terminalHelper.buildCommandForTerminal(this.terminalShellType, command, args);
        this.terminal.show(true);
        this.terminal.sendText(text, true);
    }
    async sendText(text) {
        await this.ensureTerminal();
        this.terminal.show(true);
        this.terminal.sendText(text);
    }
    async show(preserveFocus = true) {
        await this.ensureTerminal(preserveFocus);
        this.terminal.show(preserveFocus);
    }
    async ensureTerminal(preserveFocus = true) {
        if (this.terminal) {
            return;
        }
        const shellPath = this.terminalHelper.getTerminalShellPath();
        this.terminalShellType = !shellPath || shellPath.length === 0 ? types_4.TerminalShellType.other : this.terminalHelper.identifyTerminalShell(shellPath);
        this.terminal = await this.terminalManager.createTerminal({ name: this.title, shellPath, shellArgs: [] });
        await this.terminalActivator.activateEnvironmentInTerminal(this.terminal, this.resource, preserveFocus);
        this.terminal.show(preserveFocus);
        // this.sendTelemetry().catch(emptyFn)
    }
    terminalCloseHandler(terminal) {
        if (terminal === this.terminal) {
            this.terminalClosed.fire();
            this.terminal = undefined;
        }
    }
};
TerminalService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], TerminalService);
exports.TerminalService = TerminalService;


/***/ }),
/* 755 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const contracts_1 = __webpack_require__(90);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const platform_1 = __webpack_require__(627);
const types_4 = __webpack_require__(744);
const string_1 = __webpack_require__(149);
// Types of shells can be found here:
// 1. https://wiki.ubuntu.com/ChangingShells
const IS_GITBASH = /(gitbash.exe$)/i;
const IS_BASH = /(bash.exe$|bash$)/i;
const IS_WSL = /(wsl.exe$)/i;
const IS_ZSH = /(zsh$)/i;
const IS_KSH = /(ksh$)/i;
const IS_COMMAND = /cmd.exe$/i;
const IS_POWERSHELL = /(powershell.exe$|powershell$)/i;
const IS_POWERSHELL_CORE = /(pwsh.exe$|pwsh$)/i;
const IS_FISH = /(fish$)/i;
const IS_CSHELL = /(csh$)/i;
const IS_TCSHELL = /(tcsh$)/i;
const IS_XONSH = /(xonsh$)/i;
const defaultOSShells = {
    [platform_1.OSType.Linux]: types_4.TerminalShellType.bash,
    [platform_1.OSType.OSX]: types_4.TerminalShellType.bash,
    [platform_1.OSType.Windows]: types_4.TerminalShellType.commandPrompt,
    [platform_1.OSType.Unknown]: undefined
};
let TerminalHelper = class TerminalHelper {
    constructor(platform, terminalManager, workspace, condaService, interpreterService, configurationService, conda, bashCShellFish, commandPromptAndPowerShell, pyenv, pipenv) {
        this.platform = platform;
        this.terminalManager = terminalManager;
        this.workspace = workspace;
        this.condaService = condaService;
        this.interpreterService = interpreterService;
        this.configurationService = configurationService;
        this.conda = conda;
        this.bashCShellFish = bashCShellFish;
        this.commandPromptAndPowerShell = commandPromptAndPowerShell;
        this.pyenv = pyenv;
        this.pipenv = pipenv;
        this.detectableShells = new Map();
        this.detectableShells.set(types_4.TerminalShellType.powershell, IS_POWERSHELL);
        this.detectableShells.set(types_4.TerminalShellType.gitbash, IS_GITBASH);
        this.detectableShells.set(types_4.TerminalShellType.bash, IS_BASH);
        this.detectableShells.set(types_4.TerminalShellType.wsl, IS_WSL);
        this.detectableShells.set(types_4.TerminalShellType.zsh, IS_ZSH);
        this.detectableShells.set(types_4.TerminalShellType.ksh, IS_KSH);
        this.detectableShells.set(types_4.TerminalShellType.commandPrompt, IS_COMMAND);
        this.detectableShells.set(types_4.TerminalShellType.fish, IS_FISH);
        this.detectableShells.set(types_4.TerminalShellType.tcshell, IS_TCSHELL);
        this.detectableShells.set(types_4.TerminalShellType.cshell, IS_CSHELL);
        this.detectableShells.set(types_4.TerminalShellType.powershellCore, IS_POWERSHELL_CORE);
        this.detectableShells.set(types_4.TerminalShellType.xonsh, IS_XONSH);
    }
    createTerminal(title) {
        return this.terminalManager.createTerminal({ name: title });
    }
    identifyTerminalShell(shellPath) {
        return Array.from(this.detectableShells.keys())
            .reduce((matchedShell, shellToDetect) => {
            if (matchedShell === types_4.TerminalShellType.other && this.detectableShells.get(shellToDetect).test(shellPath)) {
                return shellToDetect;
            }
            return matchedShell;
        }, types_4.TerminalShellType.other);
    }
    getTerminalShellPath() {
        const shellConfig = this.workspace.getConfiguration('terminal.integrated.shell');
        let osSection = '';
        switch (this.platform.osType) {
            case platform_1.OSType.Windows: {
                osSection = 'windows';
                break;
            }
            case platform_1.OSType.OSX: {
                osSection = 'osx';
                break;
            }
            case platform_1.OSType.Linux: {
                osSection = 'linux';
                break;
            }
            default: {
                return '';
            }
        }
        return shellConfig.get(osSection);
    }
    buildCommandForTerminal(terminalShellType, command, args) {
        const isPowershell = terminalShellType === types_4.TerminalShellType.powershell || terminalShellType === types_4.TerminalShellType.powershellCore;
        const commandPrefix = isPowershell ? '& ' : '';
        return `${commandPrefix}${string_1.fileToCommandArgument(command)} ${args.join(' ')}`.trim();
    }
    async getEnvironmentActivationCommands(terminalShellType, resource) {
        const providers = [this.pipenv, this.pyenv, this.bashCShellFish, this.commandPromptAndPowerShell];
        const promise = this.getActivationCommands(resource || undefined, undefined, terminalShellType, providers);
        return promise;
    }
    async getEnvironmentActivationShellCommands(resource, interpreter) {
        const shell = defaultOSShells[this.platform.osType];
        if (!shell) {
            return;
        }
        const providers = [this.bashCShellFish, this.commandPromptAndPowerShell];
        const promise = this.getActivationCommands(resource, interpreter, shell, providers);
        return promise;
    }
    async getActivationCommands(resource, interpreter, terminalShellType, providers) {
        const settings = this.configurationService.getSettings(resource);
        const activateEnvironment = settings.terminal.activateEnvironment;
        if (!activateEnvironment) {
            return;
        }
        // If we have a conda environment, then use that.
        const isCondaEnvironment = await this.condaService.isCondaEnvironment(settings.pythonPath);
        if (isCondaEnvironment) {
            const activationCommands = interpreter ?
                await this.conda.getActivationCommandsForInterpreter(interpreter.path, terminalShellType) :
                await this.conda.getActivationCommands(resource, terminalShellType);
            if (Array.isArray(activationCommands)) {
                return activationCommands;
            }
        }
        // Search from the list of providers.
        const supportedProviders = providers.filter(provider => provider.isShellSupported(terminalShellType));
        for (const provider of supportedProviders) {
            const activationCommands = interpreter ?
                await provider.getActivationCommandsForInterpreter(interpreter.path, terminalShellType) :
                await provider.getActivationCommands(resource, terminalShellType);
            if (Array.isArray(activationCommands) && activationCommands.length > 0) {
                return activationCommands;
            }
        }
    }
};
TerminalHelper = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IPlatformService)),
    __param(1, inversify_1.inject(types_1.ITerminalManager)),
    __param(2, inversify_1.inject(types_1.IWorkspaceService)),
    __param(3, inversify_1.inject(contracts_1.ICondaService)),
    __param(4, inversify_1.inject(contracts_1.IInterpreterService)),
    __param(5, inversify_1.inject(types_3.IConfigurationService)),
    __param(6, inversify_1.inject(types_4.ITerminalActivationCommandProvider)), __param(6, inversify_1.named(types_4.TerminalActivationProviders.conda)),
    __param(7, inversify_1.inject(types_4.ITerminalActivationCommandProvider)), __param(7, inversify_1.named(types_4.TerminalActivationProviders.bashCShellFish)),
    __param(8, inversify_1.inject(types_4.ITerminalActivationCommandProvider)), __param(8, inversify_1.named(types_4.TerminalActivationProviders.commandPromptAndPowerShell)),
    __param(9, inversify_1.inject(types_4.ITerminalActivationCommandProvider)), __param(9, inversify_1.named(types_4.TerminalActivationProviders.pyenv)),
    __param(10, inversify_1.inject(types_4.ITerminalActivationCommandProvider)), __param(10, inversify_1.named(types_4.TerminalActivationProviders.pipenv))
], TerminalHelper);
exports.TerminalHelper = TerminalHelper;


/***/ }),
/* 756 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const environment_1 = __webpack_require__(757);
const environmentVariablesProvider_1 = __webpack_require__(758);
const types_1 = __webpack_require__(166);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_1.IEnvironmentVariablesService, environment_1.EnvironmentVariablesService);
    serviceManager.addSingleton(types_1.IEnvironmentVariablesProvider, environmentVariablesProvider_1.EnvironmentVariablesProvider);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 757 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs = __importStar(__webpack_require__(104));
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(75);
let EnvironmentVariablesService = class EnvironmentVariablesService {
    constructor(pathUtils) {
        this.pathVariable = pathUtils.getPathVariableName();
    }
    async parseFile(filePath, baseVars) {
        if (!filePath || !await fs.pathExists(filePath)) {
            return;
        }
        if (!fs.lstatSync(filePath).isFile()) {
            return;
        }
        return parseEnvFile(await fs.readFile(filePath), baseVars);
    }
    mergeVariables(source, target) {
        if (!target) {
            return;
        }
        const settingsNotToMerge = ['PYTHONPATH', this.pathVariable];
        Object.keys(source).forEach(setting => {
            if (settingsNotToMerge.indexOf(setting) >= 0) {
                return;
            }
            if (target[setting] === undefined) {
                target[setting] = source[setting];
            }
        });
    }
    appendPythonPath(vars, ...pythonPaths) {
        return this.appendPaths(vars, 'PYTHONPATH', ...pythonPaths);
    }
    appendPath(vars, ...paths) {
        return this.appendPaths(vars, this.pathVariable, ...paths);
    }
    appendPaths(vars, variableName, ...pathsToAppend) {
        const valueToAppend = pathsToAppend
            .filter(item => typeof item === 'string' && item.trim().length > 0)
            .map(item => item.trim())
            .join(path.delimiter);
        if (valueToAppend.length === 0) {
            return vars;
        }
        const variable = vars ? vars[variableName] : undefined;
        if (variable && typeof variable === 'string' && variable.length > 0) {
            vars[variableName] = variable + path.delimiter + valueToAppend;
        }
        else {
            vars[variableName] = valueToAppend;
        }
        return vars;
    }
};
EnvironmentVariablesService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IPathUtils))
], EnvironmentVariablesService);
exports.EnvironmentVariablesService = EnvironmentVariablesService;
function parseEnvFile(lines, baseVars) {
    const globalVars = baseVars ? baseVars : {};
    const vars = {};
    lines.toString().split('\n').forEach((line, _idx) => {
        const [name, value] = parseEnvLine(line);
        if (name === '') {
            return;
        }
        vars[name] = substituteEnvVars(value, vars, globalVars);
    });
    return vars;
}
exports.parseEnvFile = parseEnvFile;
function parseEnvLine(line) {
    // Most of the following is an adaptation of the dotenv code:
    //   https://github.com/motdotla/dotenv/blob/master/lib/main.js#L32
    // We don't use dotenv here because it loses ordering, which is
    // significant for substitution.
    const match = line.match(/^\s*([a-zA-Z]\w*)\s*=\s*(.*?)?\s*$/);
    if (!match) {
        return ['', ''];
    }
    const name = match[1];
    let value = match[2];
    if (value && value !== '') {
        if (value[0] === '\'' && value[value.length - 1] === '\'') {
            value = value.substring(1, value.length - 1);
            value = value.replace(/\\n/gm, '\n');
        }
        else if (value[0] === '"' && value[value.length - 1] === '"') {
            value = value.substring(1, value.length - 1);
            value = value.replace(/\\n/gm, '\n');
        }
    }
    else {
        value = '';
    }
    return [name, value];
}
const SUBST_REGEX = /\${([a-zA-Z]\w*)?([^}\w].*)?}/g;
function substituteEnvVars(value, localVars, globalVars, missing = '') {
    // Substitution here is inspired a little by dotenv-expand:
    //   https://github.com/motdotla/dotenv-expand/blob/master/lib/main.js
    let invalid = false;
    let replacement = value;
    replacement = replacement.replace(SUBST_REGEX, (match, substName, bogus, offset, orig) => {
        if (offset > 0 && orig[offset - 1] === '\\') {
            return match;
        }
        if ((bogus && bogus !== '') || !substName || substName === '') {
            invalid = true;
            return match;
        }
        return localVars[substName] || globalVars[substName] || missing;
    });
    if (!invalid && replacement !== value) {
        value = replacement;
    }
    return value.replace(/\\\$/g, '$');
}


/***/ }),
/* 758 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const decorators_1 = __webpack_require__(151);
const types_4 = __webpack_require__(166);
const cacheDuration = 60 * 60 * 1000;
let EnvironmentVariablesProvider = class EnvironmentVariablesProvider {
    constructor(envVarsService, disposableRegistry, platformService, workspaceService, configurationService, process) {
        this.envVarsService = envVarsService;
        this.platformService = platformService;
        this.workspaceService = workspaceService;
        this.configurationService = configurationService;
        this.process = process;
        this.fileWatchers = new Map();
        this.disposables = [];
        this.trackedWorkspaceFolders = new Set();
        disposableRegistry.push(this);
        this.changeEventEmitter = new vscode_languageserver_protocol_1.Emitter();
        const disposable = this.workspaceService.onDidChangeConfiguration(this.configurationChanged, this);
        this.disposables.push(disposable);
    }
    get onDidEnvironmentVariablesChange() {
        return this.changeEventEmitter.event;
    }
    dispose() {
        this.changeEventEmitter.dispose();
        this.fileWatchers.forEach(watcher => {
            watcher.dispose();
        });
    }
    async getEnvironmentVariables(resource) {
        const settings = this.configurationService.getSettings(resource);
        const workspaceFolderUri = this.getWorkspaceFolderUri(resource);
        this.trackedWorkspaceFolders.add(workspaceFolderUri ? workspaceFolderUri.fsPath : '');
        this.createFileWatcher(settings.envFile, workspaceFolderUri);
        let mergedVars = await this.envVarsService.parseFile(settings.envFile, this.process.env);
        if (!mergedVars) {
            mergedVars = {};
        }
        this.envVarsService.mergeVariables(this.process.env, mergedVars);
        const pathVariable = this.platformService.pathVariableName;
        const pathValue = this.process.env[pathVariable];
        if (pathValue) {
            this.envVarsService.appendPath(mergedVars, pathValue);
        }
        if (this.process.env.PYTHONPATH) {
            this.envVarsService.appendPythonPath(mergedVars, this.process.env.PYTHONPATH);
        }
        return mergedVars;
    }
    configurationChanged(e) {
        if (e.affectsConfiguration('python.envFile')) {
            this.onEnvironmentFileChanged(coc_nvim_1.Uri.parse(coc_nvim_1.workspace.workspaceFolder.uri));
        }
    }
    getWorkspaceFolderUri(resource) {
        if (!resource) {
            return;
        }
        return coc_nvim_1.Uri.parse(coc_nvim_1.workspace.workspaceFolder.uri);
    }
    createFileWatcher(envFile, workspaceFolderUri) {
        if (this.fileWatchers.has(envFile)) {
            return;
        }
        const envFileWatcher = coc_nvim_1.workspace.createFileSystemWatcher(envFile);
        this.fileWatchers.set(envFile, envFileWatcher);
        if (envFileWatcher) {
            this.disposables.push(envFileWatcher.onDidChange(() => this.onEnvironmentFileChanged(workspaceFolderUri)));
            this.disposables.push(envFileWatcher.onDidCreate(() => this.onEnvironmentFileChanged(workspaceFolderUri)));
            this.disposables.push(envFileWatcher.onDidDelete(() => this.onEnvironmentFileChanged(workspaceFolderUri)));
        }
    }
    onEnvironmentFileChanged(workspaceFolderUri) {
        decorators_1.clearCachedResourceSpecificIngterpreterData('getEnvironmentVariables', workspaceFolderUri);
        decorators_1.clearCachedResourceSpecificIngterpreterData('CustomEnvironmentVariables', workspaceFolderUri);
        this.changeEventEmitter.fire(workspaceFolderUri);
    }
};
__decorate([
    decorators_1.cacheResourceSpecificInterpreterData('getEnvironmentVariables', cacheDuration)
], EnvironmentVariablesProvider.prototype, "getEnvironmentVariables", null);
EnvironmentVariablesProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.IEnvironmentVariablesService)),
    __param(1, inversify_1.inject(types_3.IDisposableRegistry)),
    __param(2, inversify_1.inject(types_2.IPlatformService)),
    __param(3, inversify_1.inject(types_1.IWorkspaceService)),
    __param(4, inversify_1.inject(types_3.IConfigurationService)),
    __param(5, inversify_1.inject(types_3.ICurrentProcess))
], EnvironmentVariablesProvider);
exports.EnvironmentVariablesProvider = EnvironmentVariablesProvider;


/***/ }),
/* 759 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const helper_1 = __webpack_require__(760);
const types_1 = __webpack_require__(665);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_1.IFormatterHelper, helper_1.FormatterHelper);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 760 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(75);
const types_2 = __webpack_require__(95);
let FormatterHelper = class FormatterHelper {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    translateToId(formatter) {
        switch (formatter) {
            case types_1.Product.autopep8: return 'autopep8';
            case types_1.Product.black: return 'black';
            case types_1.Product.yapf: return 'yapf';
            default: {
                throw new Error(`Unrecognized Formatter '${formatter}'`);
            }
        }
    }
    getSettingsPropertyNames(formatter) {
        const id = this.translateToId(formatter);
        return {
            argsName: `${id}Args`,
            pathName: `${id}Path`
        };
    }
    getExecutionInfo(formatter, customArgs, resource) {
        const settings = this.serviceContainer.get(types_1.IConfigurationService).getSettings(resource);
        const names = this.getSettingsPropertyNames(formatter);
        const execPath = settings.formatting[names.pathName];
        let args = Array.isArray(settings.formatting[names.argsName]) ? settings.formatting[names.argsName] : [];
        args = args.concat(customArgs);
        let moduleName;
        // If path information is not available, then treat it as a module,
        if (path.basename(execPath) === execPath) {
            moduleName = execPath;
        }
        return { execPath, moduleName, args, product: formatter };
    }
};
FormatterHelper = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], FormatterHelper);
exports.FormatterHelper = FormatterHelper;


/***/ }),
/* 761 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.IPythonPathUpdaterServiceFactory = Symbol('IPythonPathUpdaterServiceFactory');
exports.IPythonPathUpdaterServiceManager = Symbol('IPythonPathUpdaterServiceManager');
exports.IInterpreterSelector = Symbol('IInterpreterSelector');
exports.IInterpreterComparer = Symbol('IInterpreterComparer');


/***/ }),
/* 762 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const service_1 = __webpack_require__(763);
const types_1 = __webpack_require__(257);
const index_1 = __webpack_require__(764);
const proxy_1 = __webpack_require__(765);
const cached_1 = __webpack_require__(766);
const currentPath_1 = __webpack_require__(768);
const environment_1 = __webpack_require__(769);
const settings_1 = __webpack_require__(774);
const system_1 = __webpack_require__(775);
const winRegistry_1 = __webpack_require__(776);
const workspaceEnv_1 = __webpack_require__(777);
const types_2 = __webpack_require__(89);
const interpreterComparer_1 = __webpack_require__(778);
const interpreterSelector_1 = __webpack_require__(779);
const pythonPathUpdaterService_1 = __webpack_require__(780);
const pythonPathUpdaterServiceFactory_1 = __webpack_require__(781);
const types_3 = __webpack_require__(761);
const contracts_1 = __webpack_require__(90);
const display_1 = __webpack_require__(785);
const progressDisplay_1 = __webpack_require__(786);
const shebangCodeLensProvider_1 = __webpack_require__(787);
const helpers_1 = __webpack_require__(788);
const interpreterService_1 = __webpack_require__(789);
const interpreterVersion_1 = __webpack_require__(791);
const helpers_2 = __webpack_require__(792);
const index_2 = __webpack_require__(794);
const progressService_1 = __webpack_require__(795);
const condaEnvFileService_1 = __webpack_require__(796);
const condaEnvService_1 = __webpack_require__(799);
const condaService_1 = __webpack_require__(800);
const currentPathService_1 = __webpack_require__(802);
const globalVirtualEnvService_1 = __webpack_require__(803);
const interpreterWatcherBuilder_1 = __webpack_require__(805);
const KnownPathsService_1 = __webpack_require__(806);
const pipEnvService_1 = __webpack_require__(807);
const pipEnvServiceHelper_1 = __webpack_require__(808);
const windowsRegistryService_1 = __webpack_require__(809);
const workspaceVirtualEnvService_1 = __webpack_require__(810);
const workspaceVirtualEnvWatcherService_1 = __webpack_require__(811);
const types_4 = __webpack_require__(793);
const index_3 = __webpack_require__(812);
const types_5 = __webpack_require__(790);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(contracts_1.IKnownSearchPathsForInterpreters, KnownPathsService_1.KnownSearchPathsForInterpreters);
    serviceManager.addSingleton(contracts_1.IVirtualEnvironmentsSearchPathProvider, globalVirtualEnvService_1.GlobalVirtualEnvironmentsSearchPathProvider, 'global');
    serviceManager.addSingleton(contracts_1.IVirtualEnvironmentsSearchPathProvider, workspaceVirtualEnvService_1.WorkspaceVirtualEnvironmentsSearchPathProvider, 'workspace');
    serviceManager.addSingleton(contracts_1.ICondaService, condaService_1.CondaService);
    serviceManager.addSingleton(types_4.IPipEnvServiceHelper, pipEnvServiceHelper_1.PipEnvServiceHelper);
    serviceManager.addSingleton(types_5.IVirtualEnvironmentManager, index_3.VirtualEnvironmentManager);
    serviceManager.addSingleton(types_4.IPythonInPathCommandProvider, currentPathService_1.PythonInPathCommandProvider);
    serviceManager.add(contracts_1.IInterpreterWatcher, workspaceVirtualEnvWatcherService_1.WorkspaceVirtualEnvWatcherService, contracts_1.WORKSPACE_VIRTUAL_ENV_SERVICE);
    serviceManager.addSingleton(contracts_1.IInterpreterWatcherBuilder, interpreterWatcherBuilder_1.InterpreterWatcherBuilder);
    serviceManager.addSingleton(contracts_1.IInterpreterVersionService, interpreterVersion_1.InterpreterVersionService);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorService, index_2.PythonInterpreterLocatorService, contracts_1.INTERPRETER_LOCATOR_SERVICE);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorService, condaEnvFileService_1.CondaEnvFileService, contracts_1.CONDA_ENV_FILE_SERVICE);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorService, condaEnvService_1.CondaEnvService, contracts_1.CONDA_ENV_SERVICE);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorService, currentPathService_1.CurrentPathService, contracts_1.CURRENT_PATH_SERVICE);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorService, globalVirtualEnvService_1.GlobalVirtualEnvService, contracts_1.GLOBAL_VIRTUAL_ENV_SERVICE);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorService, workspaceVirtualEnvService_1.WorkspaceVirtualEnvService, contracts_1.WORKSPACE_VIRTUAL_ENV_SERVICE);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorService, pipEnvService_1.PipEnvService, contracts_1.PIPENV_SERVICE);
    serviceManager.addSingleton(contracts_1.IPipEnvService, pipEnvService_1.PipEnvService);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorService, windowsRegistryService_1.WindowsRegistryService, contracts_1.WINDOWS_REGISTRY_SERVICE);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorService, KnownPathsService_1.KnownPathsService, contracts_1.KNOWN_PATH_SERVICE);
    serviceManager.addSingleton(contracts_1.IInterpreterService, interpreterService_1.InterpreterService);
    serviceManager.addSingleton(contracts_1.IInterpreterDisplay, display_1.InterpreterDisplay);
    serviceManager.addSingleton(types_3.IPythonPathUpdaterServiceFactory, pythonPathUpdaterServiceFactory_1.PythonPathUpdaterServiceFactory);
    serviceManager.addSingleton(types_3.IPythonPathUpdaterServiceManager, pythonPathUpdaterService_1.PythonPathUpdaterService);
    serviceManager.addSingleton(types_3.IInterpreterSelector, interpreterSelector_1.InterpreterSelector);
    serviceManager.addSingleton(contracts_1.IShebangCodeLensProvider, shebangCodeLensProvider_1.ShebangCodeLensProvider);
    serviceManager.addSingleton(contracts_1.IInterpreterHelper, helpers_1.InterpreterHelper);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorHelper, helpers_2.InterpreterLocatorHelper);
    serviceManager.addSingleton(types_3.IInterpreterComparer, interpreterComparer_1.InterpreterComparer);
    serviceManager.addSingleton(contracts_1.InterpreterLocatorProgressHandler, progressDisplay_1.InterpreterLocatorProgressStatubarHandler);
    serviceManager.addSingleton(contracts_1.IInterpreterLocatorProgressService, progressService_1.InterpreterLocatorProgressService);
    serviceManager.addSingleton(types_2.IInterpreterAutoSelectionRule, environment_1.EnvironmentAutoSelectionRule, types_2.AutoSelectionRule.environment);
    serviceManager.addSingleton(types_2.IInterpreterAutoSelectionRule, currentPath_1.CurrentPathInterpretersAutoSelectionRule, types_2.AutoSelectionRule.currentPath);
    serviceManager.addSingleton(types_2.IInterpreterAutoSelectionRule, system_1.SystemWideInterpretersAutoSelectionRule, types_2.AutoSelectionRule.systemWide);
    serviceManager.addSingleton(types_2.IInterpreterAutoSelectionRule, winRegistry_1.WindowsRegistryInterpretersAutoSelectionRule, types_2.AutoSelectionRule.windowsRegistry);
    serviceManager.addSingleton(types_2.IInterpreterAutoSelectionRule, workspaceEnv_1.WorkspaceVirtualEnvInterpretersAutoSelectionRule, types_2.AutoSelectionRule.workspaceVirtualEnvs);
    serviceManager.addSingleton(types_2.IInterpreterAutoSelectionRule, cached_1.CachedInterpretersAutoSelectionRule, types_2.AutoSelectionRule.cachedInterpreters);
    serviceManager.addSingleton(types_2.IInterpreterAutoSelectionRule, settings_1.SettingsInterpretersAutoSelectionRule, types_2.AutoSelectionRule.settings);
    serviceManager.addSingleton(types_2.IInterpreterAutoSeletionProxyService, proxy_1.InterpreterAutoSeletionProxyService);
    serviceManager.addSingleton(types_2.IInterpreterAutoSelectionService, index_1.InterpreterAutoSelectionService);
    serviceManager.addSingleton(types_1.IEnvironmentActivationService, service_1.EnvironmentActivationService);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 763 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path_1 = __importDefault(__webpack_require__(55));
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(148);
const types_3 = __webpack_require__(744);
const types_4 = __webpack_require__(75);
const decorators_1 = __webpack_require__(151);
const platform_1 = __webpack_require__(627);
const types_5 = __webpack_require__(166);
const constants_1 = __webpack_require__(85);
const string_1 = __webpack_require__(149);
const getEnvironmentPrefix = 'e8b39361-0157-4923-80e1-22d70d46dee6';
const cacheDuration = 10 * 60 * 1000;
const getEnvironmentTimeout = 30000;
// The shell under which we'll execute activation scripts.
const defaultShells = {
    [platform_1.OSType.Windows]: 'cmd',
    [platform_1.OSType.OSX]: 'bash',
    [platform_1.OSType.Linux]: 'bash',
    [platform_1.OSType.Unknown]: undefined
};
let EnvironmentActivationService = class EnvironmentActivationService {
    constructor(helper, platform, processServiceFactory, currentProcess, envVarsService) {
        this.helper = helper;
        this.platform = platform;
        this.processServiceFactory = processServiceFactory;
        this.currentProcess = currentProcess;
        this.envVarsService = envVarsService;
        this.disposables = [];
        this.envVarsService.onDidEnvironmentVariablesChange(this.onDidEnvironmentVariablesChange, this, this.disposables);
    }
    dispose() {
        this.disposables.forEach(d => d.dispose());
    }
    async getActivatedEnvironmentVariables(resource, interpreter, allowExceptions) {
        const shell = defaultShells[this.platform.osType];
        if (!shell) {
            return;
        }
        try {
            const activationCommands = await this.helper.getEnvironmentActivationShellCommands(resource, interpreter);
            logger_1.traceVerbose(`Activation Commands received ${activationCommands}`);
            if (!activationCommands || !Array.isArray(activationCommands) || activationCommands.length === 0) {
                return;
            }
            // Run the activate command collect the environment from it.
            const activationCommand = this.fixActivationCommands(activationCommands).join(' && ');
            const processService = await this.processServiceFactory.create(resource);
            const customEnvVars = await this.envVarsService.getEnvironmentVariables(resource);
            const hasCustomEnvVars = Object.keys(customEnvVars).length;
            const env = hasCustomEnvVars ? customEnvVars : this.currentProcess.env;
            logger_1.traceVerbose(`${hasCustomEnvVars ? 'Has' : 'No'} Custom Env Vars`);
            // In order to make sure we know where the environment output is,
            // put in a dummy echo we can look for
            const printEnvPyFile = path_1.default.join(constants_1.EXTENSION_ROOT_DIR, 'pythonFiles', 'printEnvVariables.py');
            const command = `${activationCommand} && echo '${getEnvironmentPrefix}' && python ${string_1.fileToCommandArgument(printEnvPyFile)}`;
            logger_1.traceVerbose(`Activating Environment to capture Environment variables, ${command}`);
            // Conda activate can hang on certain systems. Fail after 30 seconds.
            // See the discussion from hidesoon in this issue: https://github.com/Microsoft/vscode-python/issues/4424
            // His issue is conda never finishing during activate. This is a conda issue, but we
            // should at least tell the user.
            const result = await processService.shellExec(command, { env, shell, timeout: getEnvironmentTimeout, maxBuffer: 1000 * 1000 });
            if (result.stderr && result.stderr.length > 0) {
                throw new Error(`StdErr from ShellExec, ${result.stderr}`);
            }
            return this.parseEnvironmentOutput(result.stdout);
        }
        catch (e) {
            logger_1.traceError('getActivatedEnvironmentVariables', e);
            // Some callers want this to bubble out, others don't
            if (allowExceptions) {
                throw e;
            }
        }
    }
    onDidEnvironmentVariablesChange(affectedResource) {
        decorators_1.clearCachedResourceSpecificIngterpreterData('ActivatedEnvironmentVariables', affectedResource);
    }
    fixActivationCommands(commands) {
        // Replace 'source ' with '. ' as that works in shell exec
        return commands.map(cmd => cmd.replace(/^source\s+/, '. '));
    }
    parseEnvironmentOutput(output) {
        output = output.substring(output.indexOf(getEnvironmentPrefix) + getEnvironmentPrefix.length);
        const js = output.substring(output.indexOf('{')).trim();
        return JSON.parse(js);
    }
};
__decorate([
    logger_1.traceDecorators.verbose('getActivatedEnvironmentVariables', logger_1.LogOptions.Arguments),
    decorators_1.cacheResourceSpecificInterpreterData('ActivatedEnvironmentVariables', cacheDuration)
], EnvironmentActivationService.prototype, "getActivatedEnvironmentVariables", null);
__decorate([
    logger_1.traceDecorators.error('Failed to parse Environment variables'),
    logger_1.traceDecorators.verbose('parseEnvironmentOutput', logger_1.LogOptions.None)
], EnvironmentActivationService.prototype, "parseEnvironmentOutput", null);
EnvironmentActivationService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.ITerminalHelper)),
    __param(1, inversify_1.inject(types_1.IPlatformService)),
    __param(2, inversify_1.inject(types_2.IProcessServiceFactory)),
    __param(3, inversify_1.inject(types_4.ICurrentProcess)),
    __param(4, inversify_1.inject(types_5.IEnvironmentVariablesProvider))
], EnvironmentActivationService);
exports.EnvironmentActivationService = EnvironmentActivationService;


/***/ }),
/* 764 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const semver_1 = __webpack_require__(265);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const async_1 = __webpack_require__(150);
const contracts_1 = __webpack_require__(90);
const types_4 = __webpack_require__(89);
const function_1 = __webpack_require__(80);
const preferredGlobalInterpreter = 'preferredGlobalPyInterpreter';
const workspacePathNameForGlobalWorkspaces = '';
let InterpreterAutoSelectionService = class InterpreterAutoSelectionService {
    constructor(workspaceService, stateFactory, fs, systemInterpreter, currentPathInterpreter, winRegInterpreter, cachedPaths, userDefinedInterpreter, environmentInterpreter, workspaceInterpreter, proxy, interpreterHelper) {
        this.workspaceService = workspaceService;
        this.stateFactory = stateFactory;
        this.fs = fs;
        this.userDefinedInterpreter = userDefinedInterpreter;
        this.environmentInterpreter = environmentInterpreter;
        this.interpreterHelper = interpreterHelper;
        this.autoSelectedWorkspacePromises = new Map();
        this.didAutoSelectedInterpreterEmitter = new coc_nvim_1.Emitter();
        this.autoSelectedInterpreterByWorkspace = new Map();
        this.rules = [];
        // It is possible we area always opening the same workspace folder, but we still need to determine and cache
        // the best available interpreters based on other rules (cache for furture use).
        this.rules.push(...[winRegInterpreter, currentPathInterpreter, systemInterpreter, cachedPaths, userDefinedInterpreter, workspaceInterpreter, environmentInterpreter]);
        proxy.registerInstance(this);
        // Rules are as follows in order
        // 1. First check user settings.json
        //      If we have user settings, then always use that, do not proceed.
        // 2. Check workspace virtual environments (pipenv, etc).
        //      If we have some, then use those as preferred workspace environments.
        // 3. Check list of cached interpreters (previously cachced from all the rules).
        //      If we find a good one, use that as preferred global env.
        //      Provided its better than what we have already cached as globally preffered interpreter (globallyPreferredInterpreter).
        // 4. Check current path.
        //      If we find a good one, use that as preferred global env.
        //      Provided its better than what we have already cached as globally preffered interpreter (globallyPreferredInterpreter).
        // 5. Check windows registry.
        //      If we find a good one, use that as preferred global env.
        //      Provided its better than what we have already cached as globally preffered interpreter (globallyPreferredInterpreter).
        // 6. Check the entire system.
        //      If we find a good one, use that as preferred global env.
        //      Provided its better than what we have already cached as globally preffered interpreter (globallyPreferredInterpreter).
        userDefinedInterpreter.setNextRule(environmentInterpreter);
        environmentInterpreter.setNextRule(workspaceInterpreter);
        workspaceInterpreter.setNextRule(cachedPaths);
        cachedPaths.setNextRule(currentPathInterpreter);
        currentPathInterpreter.setNextRule(winRegInterpreter);
        winRegInterpreter.setNextRule(systemInterpreter);
    }
    async autoSelectInterpreter(resource) {
        const key = this.getWorkspacePathKey(resource);
        if (!this.autoSelectedWorkspacePromises.has(key)) {
            const deferred = async_1.createDeferred();
            this.autoSelectedWorkspacePromises.set(key, deferred);
            await this.initializeStore(resource);
            await this.clearWorkspaceStoreIfInvalid(resource);
            await this.environmentInterpreter.autoSelectInterpreter(resource, this);
            this.didAutoSelectedInterpreterEmitter.fire();
            Promise.all(this.rules.map(item => item.autoSelectInterpreter(resource))).catch(function_1.emptyFn);
            deferred.resolve();
        }
        return this.autoSelectedWorkspacePromises.get(key).promise;
    }
    get onDidChangeAutoSelectedInterpreter() {
        return this.didAutoSelectedInterpreterEmitter.event;
    }
    getAutoSelectedInterpreter(resource) {
        // Do not execute anycode other than fetching fromm a property.
        // This method gets invoked from settings class, and this class in turn uses classes that relies on settings.
        // I.e. we can end up in a recursive loop.
        const workspaceState = this.getWorkspaceState(resource);
        if (workspaceState && workspaceState.value) {
            return workspaceState.value;
        }
        const workspaceFolderPath = this.getWorkspacePathKey(resource);
        if (this.autoSelectedInterpreterByWorkspace.has(workspaceFolderPath)) {
            return this.autoSelectedInterpreterByWorkspace.get(workspaceFolderPath);
        }
        return this.globallyPreferredInterpreter.value;
    }
    async setWorkspaceInterpreter(resource, interpreter) {
        // We can only update the stored interpreter once we have done the necessary
        // work of auto selecting the interpreters.
        if (!this.autoSelectedWorkspacePromises.has(this.getWorkspacePathKey(resource)) ||
            !this.autoSelectedWorkspacePromises.get(this.getWorkspacePathKey(resource)).completed) {
            return;
        }
        await this.storeAutoSelectedInterpreter(resource, interpreter);
    }
    async setGlobalInterpreter(interpreter) {
        await this.storeAutoSelectedInterpreter(undefined, interpreter);
    }
    async clearWorkspaceStoreIfInvalid(resource) {
        const stateStore = this.getWorkspaceState(resource);
        if (stateStore && stateStore.value && !await this.fs.fileExists(stateStore.value.path)) {
            // sendTelemetryEvent(EventName.PYTHON_INTERPRETER_AUTO_SELECTION, {}, { interpreterMissing: true })
            await stateStore.updateValue(undefined);
        }
    }
    async storeAutoSelectedInterpreter(resource, interpreter) {
        const workspaceFolderPath = this.getWorkspacePathKey(resource);
        if (workspaceFolderPath === workspacePathNameForGlobalWorkspaces) {
            // Update store only if this version is better.
            if (this.globallyPreferredInterpreter.value &&
                this.globallyPreferredInterpreter.value.version &&
                interpreter && interpreter.version &&
                semver_1.compare(this.globallyPreferredInterpreter.value.version.raw, interpreter.version.raw) > 0) {
                return;
            }
            // Don't pass in manager instance, as we don't want any updates to take place.
            await this.globallyPreferredInterpreter.updateValue(interpreter);
            this.autoSelectedInterpreterByWorkspace.set(workspaceFolderPath, interpreter);
        }
        else {
            const workspaceState = this.getWorkspaceState(resource);
            if (workspaceState && interpreter) {
                await workspaceState.updateValue(interpreter);
            }
            this.autoSelectedInterpreterByWorkspace.set(workspaceFolderPath, interpreter);
        }
    }
    async initializeStore(resource) {
        const workspaceFolderPath = this.getWorkspacePathKey(resource);
        // Since we're initializing for this resource,
        // Ensure any cached information for this workspace have been removed.
        this.autoSelectedInterpreterByWorkspace.delete(workspaceFolderPath);
        if (this.globallyPreferredInterpreter) {
            return;
        }
        await this.clearStoreIfFileIsInvalid();
    }
    async clearStoreIfFileIsInvalid() {
        this.globallyPreferredInterpreter = this.stateFactory.createGlobalPersistentState(preferredGlobalInterpreter, undefined);
        if (this.globallyPreferredInterpreter.value && !await this.fs.fileExists(this.globallyPreferredInterpreter.value.path)) {
            await this.globallyPreferredInterpreter.updateValue(undefined);
        }
    }
    getWorkspacePathKey(resource) {
        return this.workspaceService.getWorkspaceFolderIdentifier(resource, workspacePathNameForGlobalWorkspaces);
    }
    getWorkspaceState(resource) {
        const workspaceUri = this.interpreterHelper.getActiveWorkspaceUri(resource);
        if (!workspaceUri) {
            return;
        }
        const key = `autoSelectedWorkspacePythonInterpreter-${workspaceUri.folderUri.fsPath}`;
        return this.stateFactory.createWorkspacePersistentState(key, undefined);
    }
};
InterpreterAutoSelectionService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IWorkspaceService)),
    __param(1, inversify_1.inject(types_3.IPersistentStateFactory)),
    __param(2, inversify_1.inject(types_2.IFileSystem)),
    __param(3, inversify_1.inject(types_4.IInterpreterAutoSelectionRule)), __param(3, inversify_1.named(types_4.AutoSelectionRule.systemWide)),
    __param(4, inversify_1.inject(types_4.IInterpreterAutoSelectionRule)), __param(4, inversify_1.named(types_4.AutoSelectionRule.currentPath)),
    __param(5, inversify_1.inject(types_4.IInterpreterAutoSelectionRule)), __param(5, inversify_1.named(types_4.AutoSelectionRule.windowsRegistry)),
    __param(6, inversify_1.inject(types_4.IInterpreterAutoSelectionRule)), __param(6, inversify_1.named(types_4.AutoSelectionRule.cachedInterpreters)),
    __param(7, inversify_1.inject(types_4.IInterpreterAutoSelectionRule)), __param(7, inversify_1.named(types_4.AutoSelectionRule.settings)),
    __param(8, inversify_1.inject(types_4.IInterpreterAutoSelectionRule)), __param(8, inversify_1.named(types_4.AutoSelectionRule.environment)),
    __param(9, inversify_1.inject(types_4.IInterpreterAutoSelectionRule)), __param(9, inversify_1.named(types_4.AutoSelectionRule.workspaceVirtualEnvs)),
    __param(10, inversify_1.inject(types_4.IInterpreterAutoSeletionProxyService)),
    __param(11, inversify_1.inject(contracts_1.IInterpreterHelper))
], InterpreterAutoSelectionService);
exports.InterpreterAutoSelectionService = InterpreterAutoSelectionService;


/***/ }),
/* 765 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(75);
let InterpreterAutoSeletionProxyService = class InterpreterAutoSeletionProxyService {
    constructor(disposables) {
        this.disposables = disposables;
        this.didAutoSelectedInterpreterEmitter = new coc_nvim_1.Emitter();
    }
    registerInstance(instance) {
        this.instance = instance;
        this.disposables.push(this.instance.onDidChangeAutoSelectedInterpreter(() => this.didAutoSelectedInterpreterEmitter.fire()));
    }
    get onDidChangeAutoSelectedInterpreter() {
        return this.didAutoSelectedInterpreterEmitter.event;
    }
    getAutoSelectedInterpreter(resource) {
        return this.instance ? this.instance.getAutoSelectedInterpreter(resource) : undefined;
    }
    async setWorkspaceInterpreter(resource, interpreter) {
        return this.instance ? this.instance.setWorkspaceInterpreter(resource, interpreter) : undefined;
    }
};
InterpreterAutoSeletionProxyService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IDisposableRegistry))
], InterpreterAutoSeletionProxyService);
exports.InterpreterAutoSeletionProxyService = InterpreterAutoSeletionProxyService;


/***/ }),
/* 766 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const contracts_1 = __webpack_require__(90);
const types_3 = __webpack_require__(89);
const baseRule_1 = __webpack_require__(767);
let CachedInterpretersAutoSelectionRule = class CachedInterpretersAutoSelectionRule extends baseRule_1.BaseRuleService {
    constructor(fs, helper, stateFactory, systemInterpreter, winRegInterpreter) {
        super(types_3.AutoSelectionRule.cachedInterpreters, fs, stateFactory);
        this.helper = helper;
        this.rules = [systemInterpreter, winRegInterpreter];
    }
    async onAutoSelectInterpreter(resource, manager) {
        const cachedInterpreters = this.rules
            .map(item => item.getPreviouslyAutoSelectedInterpreter(resource))
            .filter(item => !!item)
            .map(item => item);
        const bestInterpreter = this.helper.getBestInterpreter(cachedInterpreters);
        logger_1.traceVerbose(`Selected Interpreter from ${this.ruleName}, ${bestInterpreter ? JSON.stringify(bestInterpreter) : 'Nothing Selected'}`);
        return await this.setGlobalInterpreter(bestInterpreter, manager) ? baseRule_1.NextAction.exit : baseRule_1.NextAction.runNextRule;
    }
};
CachedInterpretersAutoSelectionRule = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IFileSystem)),
    __param(1, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(2, inversify_1.inject(types_2.IPersistentStateFactory)),
    __param(3, inversify_1.inject(types_3.IInterpreterAutoSelectionRule)), __param(3, inversify_1.named(types_3.AutoSelectionRule.systemWide)),
    __param(4, inversify_1.inject(types_3.IInterpreterAutoSelectionRule)), __param(4, inversify_1.named(types_3.AutoSelectionRule.windowsRegistry))
], CachedInterpretersAutoSelectionRule);
exports.CachedInterpretersAutoSelectionRule = CachedInterpretersAutoSelectionRule;


/***/ }),
/* 767 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const semver_1 = __webpack_require__(265);
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
// import { StopWatch } from '../../../common/utils/stopWatch'
const coc_nvim_1 = __webpack_require__(2);
var NextAction;
(function (NextAction) {
    NextAction["runNextRule"] = "runNextRule";
    NextAction["exit"] = "exit";
})(NextAction = exports.NextAction || (exports.NextAction = {}));
let BaseRuleService = class BaseRuleService {
    constructor(ruleName, fs, stateFactory) {
        this.ruleName = ruleName;
        this.fs = fs;
        this.stateStore = stateFactory.createGlobalPersistentState(`InterpreterAutoSeletionRule-${this.ruleName}`, undefined);
    }
    setNextRule(rule) {
        this.nextRule = rule;
    }
    async autoSelectInterpreter(resource, manager) {
        await this.clearCachedInterpreterIfInvalid(resource);
        // const stopWatch = new StopWatch()
        const action = await this.onAutoSelectInterpreter(resource, manager);
        // traceVerbose(`Rule = ${this.ruleName}, result = ${action}`)
        // const identified = action === NextAction.runNextRule
        // sendTelemetryEvent(EventName.PYTHON_INTERPRETER_AUTO_SELECTION, { elapsedTime: stopWatch.elapsedTime }, { rule: this.ruleName, identified })
        if (action === NextAction.runNextRule) {
            await this.next(resource, manager);
        }
    }
    getPreviouslyAutoSelectedInterpreter(_resource) {
        const value = this.stateStore.value;
        logger_1.traceVerbose(`Current value for rule ${this.ruleName} is ${value ? JSON.stringify(value) : 'nothing'}`);
        return value;
    }
    async setGlobalInterpreter(interpreter, manager) {
        await this.cacheSelectedInterpreter(undefined, interpreter);
        if (!interpreter || !manager || !interpreter.version) {
            return false;
        }
        const preferredInterpreter = manager.getAutoSelectedInterpreter(undefined);
        const comparison = preferredInterpreter && preferredInterpreter.version ? semver_1.compare(interpreter.version.raw, preferredInterpreter.version.raw) : 1;
        if (comparison > 0) {
            await manager.setGlobalInterpreter(interpreter);
            return true;
        }
        if (comparison === 0) {
            return true;
        }
        return false;
    }
    async clearCachedInterpreterIfInvalid(resource) {
        if (!this.stateStore.value || await this.fs.fileExists(this.stateStore.value.path)) {
            return;
        }
        // sendTelemetryEvent(EventName.PYTHON_INTERPRETER_AUTO_SELECTION, {}, { rule: this.ruleName, interpreterMissing: true })
        await this.cacheSelectedInterpreter(resource, undefined);
    }
    async cacheSelectedInterpreter(resource, interpreter) {
        let { rootPath } = coc_nvim_1.workspace;
        if (rootPath && interpreter && interpreter.path.toLowerCase().startsWith(rootPath)) {
            return;
        }
        await this.stateStore.updateValue(interpreter);
    }
    async next(resource, manager) {
        logger_1.traceVerbose(`Executing next rule from ${this.ruleName}`);
        return this.nextRule && manager ? this.nextRule.autoSelectInterpreter(resource, manager) : undefined;
    }
};
__decorate([
    logger_1.traceDecorators.verbose('autoSelectInterpreter')
], BaseRuleService.prototype, "autoSelectInterpreter", null);
__decorate([
    logger_1.traceDecorators.verbose('setGlobalInterpreter')
], BaseRuleService.prototype, "setGlobalInterpreter", null);
BaseRuleService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.unmanaged()),
    __param(1, inversify_1.inject(types_1.IFileSystem)),
    __param(2, inversify_1.inject(types_2.IPersistentStateFactory))
], BaseRuleService);
exports.BaseRuleService = BaseRuleService;


/***/ }),
/* 768 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const contracts_1 = __webpack_require__(90);
const types_3 = __webpack_require__(89);
const baseRule_1 = __webpack_require__(767);
let CurrentPathInterpretersAutoSelectionRule = class CurrentPathInterpretersAutoSelectionRule extends baseRule_1.BaseRuleService {
    constructor(fs, helper, stateFactory, currentPathInterpreterLocator) {
        super(types_3.AutoSelectionRule.currentPath, fs, stateFactory);
        this.helper = helper;
        this.currentPathInterpreterLocator = currentPathInterpreterLocator;
    }
    async onAutoSelectInterpreter(resource, manager) {
        const interpreters = await this.currentPathInterpreterLocator.getInterpreters(resource);
        const bestInterpreter = this.helper.getBestInterpreter(interpreters);
        logger_1.traceVerbose(`Selected Interpreter from ${this.ruleName}, ${bestInterpreter ? JSON.stringify(bestInterpreter) : 'Nothing Selected'}`);
        return await this.setGlobalInterpreter(bestInterpreter, manager) ? baseRule_1.NextAction.exit : baseRule_1.NextAction.runNextRule;
    }
};
CurrentPathInterpretersAutoSelectionRule = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IFileSystem)),
    __param(1, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(2, inversify_1.inject(types_2.IPersistentStateFactory)),
    __param(3, inversify_1.inject(contracts_1.IInterpreterLocatorService)), __param(3, inversify_1.named(contracts_1.CURRENT_PATH_SERVICE))
], CurrentPathInterpretersAutoSelectionRule);
exports.CurrentPathInterpretersAutoSelectionRule = CurrentPathInterpretersAutoSelectionRule;


/***/ }),
/* 769 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const path_1 = __importDefault(__webpack_require__(55));
const inversify_1 = __webpack_require__(3);
const which_1 = __importDefault(__webpack_require__(770));
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const types_4 = __webpack_require__(761);
const contracts_1 = __webpack_require__(90);
const types_5 = __webpack_require__(89);
const baseRule_1 = __webpack_require__(767);
/**
 * EnvironmentAutoSelectionRule check current python path, if inside workspaceFolder, then use it.
 * @public
 *
 * @extends {BaseRuleService}
 */
let EnvironmentAutoSelectionRule = class EnvironmentAutoSelectionRule extends baseRule_1.BaseRuleService {
    constructor(fs, helper, stateFactory, pythonPathUpdaterService, workspaceService) {
        super(types_5.AutoSelectionRule.environment, fs, stateFactory);
        this.helper = helper;
        this.pythonPathUpdaterService = pythonPathUpdaterService;
        this.workspaceService = workspaceService;
    }
    async onAutoSelectInterpreter(resource, manager) {
        const workspacePath = this.helper.getActiveWorkspaceUri(resource);
        if (!workspacePath) {
            return baseRule_1.NextAction.runNextRule;
        }
        const interpreters = await this.getWorkspaceEnvironmentInterpreters(resource);
        let bestInterpreter;
        if (Array.isArray(interpreters) && interpreters.length > 0) {
            bestInterpreter = this.helper.getBestInterpreter(interpreters);
        }
        if (bestInterpreter && manager) {
            await this.cacheSelectedInterpreter(workspacePath.folderUri, bestInterpreter);
            await manager.setWorkspaceInterpreter(workspacePath.folderUri, bestInterpreter);
        }
        logger_1.traceVerbose(`Selected Interpreter from ${this.ruleName}, ${bestInterpreter ? JSON.stringify(bestInterpreter) : 'Nothing Selected'}`);
        return bestInterpreter ? baseRule_1.NextAction.exit : baseRule_1.NextAction.runNextRule;
    }
    async getWorkspaceEnvironmentInterpreters(resource) {
        const workspaceFolder = this.workspaceService.getWorkspaceFolder(resource);
        if (!workspaceFolder) {
            return;
        }
        let folder = coc_nvim_1.Uri.parse(workspaceFolder.uri).fsPath;
        let paths = await Promise.all(['python', 'python3'].map(cmd => {
            return this.executablePath(cmd);
        }));
        paths = paths.filter(p => p != null && p.toLowerCase().startsWith(folder.toLowerCase()));
        if (paths.length == 0) {
            let cmds = ['python', 'python3'].map(p => {
                return path_1.default.join(folder, 'bin', p);
            });
            paths = await Promise.all(cmds.map(cmd => {
                return coc_nvim_1.workspace.nvim.call('executable', cmd).then(res => {
                    return res == 1 ? cmd : null;
                });
            }));
            paths = paths.filter(p => !!p);
        }
        let interpreters = await Promise.all(paths.map(pythonPath => {
            return this.getInterpreterDetails(pythonPath);
        }));
        return interpreters.filter(s => s != null);
    }
    async getInterpreterDetails(pythonPath) {
        return this.helper.getInterpreterInformation(pythonPath)
            .then(details => {
            if (!details) {
                return;
            }
            return Object.assign({}, details, { path: pythonPath, type: details.type ? details.type : contracts_1.InterpreterType.VirtualEnv });
        });
    }
    async cacheSelectedInterpreter(resource, interpreter) {
        // We should never clear settings in user settings.json.
        if (!interpreter) {
            await super.cacheSelectedInterpreter(resource, interpreter);
            return;
        }
        const activeWorkspace = this.helper.getActiveWorkspaceUri(resource);
        if (!activeWorkspace) {
            return;
        }
        await this.pythonPathUpdaterService.updatePythonPath(interpreter.path, activeWorkspace.configTarget, 'load', activeWorkspace.folderUri);
        await super.cacheSelectedInterpreter(resource, interpreter);
    }
    async executablePath(cmd) {
        return new Promise(resolve => {
            which_1.default(cmd, (err, path) => {
                if (err)
                    return resolve(null);
                resolve(path);
            });
        });
    }
};
EnvironmentAutoSelectionRule = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IFileSystem)),
    __param(1, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(2, inversify_1.inject(types_3.IPersistentStateFactory)),
    __param(3, inversify_1.inject(types_4.IPythonPathUpdaterServiceManager)),
    __param(4, inversify_1.inject(types_1.IWorkspaceService))
], EnvironmentAutoSelectionRule);
exports.EnvironmentAutoSelectionRule = EnvironmentAutoSelectionRule;


/***/ }),
/* 770 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = which
which.sync = whichSync

var isWindows = process.platform === 'win32' ||
    process.env.OSTYPE === 'cygwin' ||
    process.env.OSTYPE === 'msys'

var path = __webpack_require__(55)
var COLON = isWindows ? ';' : ':'
var isexe = __webpack_require__(771)

function getNotFoundError (cmd) {
  var er = new Error('not found: ' + cmd)
  er.code = 'ENOENT'

  return er
}

function getPathInfo (cmd, opt) {
  var colon = opt.colon || COLON
  var pathEnv = opt.path || process.env.PATH || ''
  var pathExt = ['']

  pathEnv = pathEnv.split(colon)

  var pathExtExe = ''
  if (isWindows) {
    pathEnv.unshift(process.cwd())
    pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM')
    pathExt = pathExtExe.split(colon)


    // Always test the cmd itself first.  isexe will check to make sure
    // it's found in the pathExt set.
    if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
      pathExt.unshift('')
  }

  // If it has a slash, then we don't bother searching the pathenv.
  // just check the file itself, and that's it.
  if (cmd.match(/\//) || isWindows && cmd.match(/\\/))
    pathEnv = ['']

  return {
    env: pathEnv,
    ext: pathExt,
    extExe: pathExtExe
  }
}

function which (cmd, opt, cb) {
  if (typeof opt === 'function') {
    cb = opt
    opt = {}
  }

  var info = getPathInfo(cmd, opt)
  var pathEnv = info.env
  var pathExt = info.ext
  var pathExtExe = info.extExe
  var found = []

  ;(function F (i, l) {
    if (i === l) {
      if (opt.all && found.length)
        return cb(null, found)
      else
        return cb(getNotFoundError(cmd))
    }

    var pathPart = pathEnv[i]
    if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
      pathPart = pathPart.slice(1, -1)

    var p = path.join(pathPart, cmd)
    if (!pathPart && (/^\.[\\\/]/).test(cmd)) {
      p = cmd.slice(0, 2) + p
    }
    ;(function E (ii, ll) {
      if (ii === ll) return F(i + 1, l)
      var ext = pathExt[ii]
      isexe(p + ext, { pathExt: pathExtExe }, function (er, is) {
        if (!er && is) {
          if (opt.all)
            found.push(p + ext)
          else
            return cb(null, p + ext)
        }
        return E(ii + 1, ll)
      })
    })(0, pathExt.length)
  })(0, pathEnv.length)
}

function whichSync (cmd, opt) {
  opt = opt || {}

  var info = getPathInfo(cmd, opt)
  var pathEnv = info.env
  var pathExt = info.ext
  var pathExtExe = info.extExe
  var found = []

  for (var i = 0, l = pathEnv.length; i < l; i ++) {
    var pathPart = pathEnv[i]
    if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
      pathPart = pathPart.slice(1, -1)

    var p = path.join(pathPart, cmd)
    if (!pathPart && /^\.[\\\/]/.test(cmd)) {
      p = cmd.slice(0, 2) + p
    }
    for (var j = 0, ll = pathExt.length; j < ll; j ++) {
      var cur = p + pathExt[j]
      var is
      try {
        is = isexe.sync(cur, { pathExt: pathExtExe })
        if (is) {
          if (opt.all)
            found.push(cur)
          else
            return cur
        }
      } catch (ex) {}
    }
  }

  if (opt.all && found.length)
    return found

  if (opt.nothrow)
    return null

  throw getNotFoundError(cmd)
}


/***/ }),
/* 771 */
/***/ (function(module, exports, __webpack_require__) {

var fs = __webpack_require__(94)
var core
if (process.platform === 'win32' || global.TESTING_WINDOWS) {
  core = __webpack_require__(772)
} else {
  core = __webpack_require__(773)
}

module.exports = isexe
isexe.sync = sync

function isexe (path, options, cb) {
  if (typeof options === 'function') {
    cb = options
    options = {}
  }

  if (!cb) {
    if (typeof Promise !== 'function') {
      throw new TypeError('callback not provided')
    }

    return new Promise(function (resolve, reject) {
      isexe(path, options || {}, function (er, is) {
        if (er) {
          reject(er)
        } else {
          resolve(is)
        }
      })
    })
  }

  core(path, options || {}, function (er, is) {
    // ignore EACCES because that just means we aren't allowed to run it
    if (er) {
      if (er.code === 'EACCES' || options && options.ignoreErrors) {
        er = null
        is = false
      }
    }
    cb(er, is)
  })
}

function sync (path, options) {
  // my kingdom for a filtered catch
  try {
    return core.sync(path, options || {})
  } catch (er) {
    if (options && options.ignoreErrors || er.code === 'EACCES') {
      return false
    } else {
      throw er
    }
  }
}


/***/ }),
/* 772 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = isexe
isexe.sync = sync

var fs = __webpack_require__(94)

function checkPathExt (path, options) {
  var pathext = options.pathExt !== undefined ?
    options.pathExt : process.env.PATHEXT

  if (!pathext) {
    return true
  }

  pathext = pathext.split(';')
  if (pathext.indexOf('') !== -1) {
    return true
  }
  for (var i = 0; i < pathext.length; i++) {
    var p = pathext[i].toLowerCase()
    if (p && path.substr(-p.length).toLowerCase() === p) {
      return true
    }
  }
  return false
}

function checkStat (stat, path, options) {
  if (!stat.isSymbolicLink() && !stat.isFile()) {
    return false
  }
  return checkPathExt(path, options)
}

function isexe (path, options, cb) {
  fs.stat(path, function (er, stat) {
    cb(er, er ? false : checkStat(stat, path, options))
  })
}

function sync (path, options) {
  return checkStat(fs.statSync(path), path, options)
}


/***/ }),
/* 773 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = isexe
isexe.sync = sync

var fs = __webpack_require__(94)

function isexe (path, options, cb) {
  fs.stat(path, function (er, stat) {
    cb(er, er ? false : checkStat(stat, options))
  })
}

function sync (path, options) {
  return checkStat(fs.statSync(path), options)
}

function checkStat (stat, options) {
  return stat.isFile() && checkMode(stat, options)
}

function checkMode (stat, options) {
  var mod = stat.mode
  var uid = stat.uid
  var gid = stat.gid

  var myUid = options.uid !== undefined ?
    options.uid : process.getuid && process.getuid()
  var myGid = options.gid !== undefined ?
    options.gid : process.getgid && process.getgid()

  var u = parseInt('100', 8)
  var g = parseInt('010', 8)
  var o = parseInt('001', 8)
  var ug = u | g

  var ret = (mod & o) ||
    (mod & g) && gid === myGid ||
    (mod & u) && uid === myUid ||
    (mod & ug) && myUid === 0

  return ret
}


/***/ }),
/* 774 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const types_4 = __webpack_require__(89);
const baseRule_1 = __webpack_require__(767);
let SettingsInterpretersAutoSelectionRule = class SettingsInterpretersAutoSelectionRule extends baseRule_1.BaseRuleService {
    constructor(fs, stateFactory, workspaceService) {
        super(types_4.AutoSelectionRule.settings, fs, stateFactory);
        this.workspaceService = workspaceService;
    }
    async onAutoSelectInterpreter(_resource, _manager) {
        // tslint:disable-next-line:no-any
        const pythonConfig = this.workspaceService.getConfiguration('python', null);
        const pythonPathInConfig = pythonConfig.inspect('pythonPath');
        // No need to store python paths defined in settings in our caches, they can be retrieved from the settings directly.
        return (pythonPathInConfig.globalValue && pythonPathInConfig.globalValue !== 'python') ? baseRule_1.NextAction.exit : baseRule_1.NextAction.runNextRule;
    }
};
SettingsInterpretersAutoSelectionRule = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IFileSystem)),
    __param(1, inversify_1.inject(types_3.IPersistentStateFactory)),
    __param(2, inversify_1.inject(types_1.IWorkspaceService))
], SettingsInterpretersAutoSelectionRule);
exports.SettingsInterpretersAutoSelectionRule = SettingsInterpretersAutoSelectionRule;


/***/ }),
/* 775 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const contracts_1 = __webpack_require__(90);
const types_3 = __webpack_require__(89);
const baseRule_1 = __webpack_require__(767);
let SystemWideInterpretersAutoSelectionRule = class SystemWideInterpretersAutoSelectionRule extends baseRule_1.BaseRuleService {
    constructor(fs, helper, stateFactory, interpreterService) {
        super(types_3.AutoSelectionRule.systemWide, fs, stateFactory);
        this.helper = helper;
        this.interpreterService = interpreterService;
    }
    async onAutoSelectInterpreter(resource, manager) {
        const interpreters = await this.interpreterService.getInterpreters(resource);
        // Exclude non-local interpreters.
        const filteredInterpreters = interpreters.filter(int => int.type !== contracts_1.InterpreterType.VirtualEnv &&
            int.type !== contracts_1.InterpreterType.Venv &&
            int.type !== contracts_1.InterpreterType.Pipenv);
        const bestInterpreter = this.helper.getBestInterpreter(filteredInterpreters);
        logger_1.traceVerbose(`Selected Interpreter from ${this.ruleName}, ${bestInterpreter ? JSON.stringify(bestInterpreter) : 'Nothing Selected'}`);
        return await this.setGlobalInterpreter(bestInterpreter, manager) ? baseRule_1.NextAction.exit : baseRule_1.NextAction.runNextRule;
    }
};
SystemWideInterpretersAutoSelectionRule = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IFileSystem)),
    __param(1, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(2, inversify_1.inject(types_2.IPersistentStateFactory)),
    __param(3, inversify_1.inject(contracts_1.IInterpreterService))
], SystemWideInterpretersAutoSelectionRule);
exports.SystemWideInterpretersAutoSelectionRule = SystemWideInterpretersAutoSelectionRule;


/***/ }),
/* 776 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const platform_1 = __webpack_require__(627);
const contracts_1 = __webpack_require__(90);
const types_3 = __webpack_require__(89);
const baseRule_1 = __webpack_require__(767);
let WindowsRegistryInterpretersAutoSelectionRule = class WindowsRegistryInterpretersAutoSelectionRule extends baseRule_1.BaseRuleService {
    constructor(fs, helper, stateFactory, platform, winRegInterpreterLocator) {
        super(types_3.AutoSelectionRule.windowsRegistry, fs, stateFactory);
        this.helper = helper;
        this.platform = platform;
        this.winRegInterpreterLocator = winRegInterpreterLocator;
    }
    async onAutoSelectInterpreter(resource, manager) {
        if (this.platform.osType !== platform_1.OSType.Windows) {
            return baseRule_1.NextAction.runNextRule;
        }
        const interpreters = await this.winRegInterpreterLocator.getInterpreters(resource);
        const bestInterpreter = this.helper.getBestInterpreter(interpreters);
        logger_1.traceVerbose(`Selected Interpreter from ${this.ruleName}, ${bestInterpreter ? JSON.stringify(bestInterpreter) : 'Nothing Selected'}`);
        return await this.setGlobalInterpreter(bestInterpreter, manager) ? baseRule_1.NextAction.exit : baseRule_1.NextAction.runNextRule;
    }
};
WindowsRegistryInterpretersAutoSelectionRule = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IFileSystem)),
    __param(1, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(2, inversify_1.inject(types_2.IPersistentStateFactory)),
    __param(3, inversify_1.inject(types_1.IPlatformService)),
    __param(4, inversify_1.inject(contracts_1.IInterpreterLocatorService)), __param(4, inversify_1.named(contracts_1.WINDOWS_REGISTRY_SERVICE))
], WindowsRegistryInterpretersAutoSelectionRule);
exports.WindowsRegistryInterpretersAutoSelectionRule = WindowsRegistryInterpretersAutoSelectionRule;


/***/ }),
/* 777 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const async_1 = __webpack_require__(150);
const platform_1 = __webpack_require__(627);
const types_4 = __webpack_require__(761);
const contracts_1 = __webpack_require__(90);
const types_5 = __webpack_require__(89);
const baseRule_1 = __webpack_require__(767);
let WorkspaceVirtualEnvInterpretersAutoSelectionRule = class WorkspaceVirtualEnvInterpretersAutoSelectionRule extends baseRule_1.BaseRuleService {
    constructor(fs, helper, stateFactory, platform, workspaceService, pythonPathUpdaterService, pipEnvInterpreterLocator, workspaceVirtualEnvInterpreterLocator) {
        super(types_5.AutoSelectionRule.workspaceVirtualEnvs, fs, stateFactory);
        this.helper = helper;
        this.platform = platform;
        this.workspaceService = workspaceService;
        this.pythonPathUpdaterService = pythonPathUpdaterService;
        this.pipEnvInterpreterLocator = pipEnvInterpreterLocator;
        this.workspaceVirtualEnvInterpreterLocator = workspaceVirtualEnvInterpreterLocator;
    }
    async onAutoSelectInterpreter(resource, manager) {
        const workspacePath = this.helper.getActiveWorkspaceUri(resource);
        if (!workspacePath) {
            return baseRule_1.NextAction.runNextRule;
        }
        const pipEnvPromise = async_1.createDeferredFromPromise(this.pipEnvInterpreterLocator.getInterpreters(workspacePath.folderUri, true));
        const virtualEnvPromise = async_1.createDeferredFromPromise(this.getWorkspaceVirtualEnvInterpreters(workspacePath.folderUri));
        // Use only one, we currently do not have support for both pipenv and virtual env in same workspace.
        // If users have this, then theu can specify which one is to be used.
        const interpreters = await Promise.race([pipEnvPromise.promise, virtualEnvPromise.promise]);
        let bestInterpreter;
        if (Array.isArray(interpreters) && interpreters.length > 0) {
            bestInterpreter = this.helper.getBestInterpreter(interpreters);
        }
        else {
            const [pipEnv, virtualEnv] = await Promise.all([pipEnvPromise.promise, virtualEnvPromise.promise]);
            const pipEnvList = Array.isArray(pipEnv) ? pipEnv : [];
            const virtualEnvList = Array.isArray(virtualEnv) ? virtualEnv : [];
            bestInterpreter = this.helper.getBestInterpreter(pipEnvList.concat(virtualEnvList));
        }
        if (bestInterpreter && manager) {
            await this.cacheSelectedInterpreter(workspacePath.folderUri, bestInterpreter);
            await manager.setWorkspaceInterpreter(workspacePath.folderUri, bestInterpreter);
        }
        logger_1.traceVerbose(`Selected Interpreter from ${this.ruleName}, ${bestInterpreter ? JSON.stringify(bestInterpreter) : 'Nothing Selected'}`);
        return baseRule_1.NextAction.runNextRule;
    }
    async getWorkspaceVirtualEnvInterpreters(resource) {
        if (!resource) {
            return;
        }
        const workspaceFolder = this.workspaceService.getWorkspaceFolder(resource);
        if (!workspaceFolder) {
            return;
        }
        // Now check virtual environments under the workspace root
        const interpreters = await this.workspaceVirtualEnvInterpreterLocator.getInterpreters(resource, true);
        const workspacePath = this.platform.osType === platform_1.OSType.Windows ? coc_nvim_1.Uri.parse(workspaceFolder.uri).fsPath.toUpperCase() : coc_nvim_1.Uri.parse(workspaceFolder.uri).fsPath;
        return interpreters.filter(interpreter => {
            const fsPath = coc_nvim_1.Uri.file(interpreter.path).fsPath;
            const fsPathToCompare = this.platform.osType === platform_1.OSType.Windows ? fsPath.toUpperCase() : fsPath;
            return fsPathToCompare.startsWith(workspacePath);
        });
    }
    async cacheSelectedInterpreter(resource, interpreter) {
        // We should never clear settings in user settings.json.
        if (!interpreter) {
            await super.cacheSelectedInterpreter(resource, interpreter);
            return;
        }
        const activeWorkspace = this.helper.getActiveWorkspaceUri(resource);
        if (!activeWorkspace) {
            return;
        }
        await this.pythonPathUpdaterService.updatePythonPath(interpreter.path, activeWorkspace.configTarget, 'load', activeWorkspace.folderUri);
        await super.cacheSelectedInterpreter(resource, interpreter);
    }
};
WorkspaceVirtualEnvInterpretersAutoSelectionRule = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IFileSystem)),
    __param(1, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(2, inversify_1.inject(types_3.IPersistentStateFactory)),
    __param(3, inversify_1.inject(types_2.IPlatformService)),
    __param(4, inversify_1.inject(types_1.IWorkspaceService)),
    __param(5, inversify_1.inject(types_4.IPythonPathUpdaterServiceManager)),
    __param(6, inversify_1.inject(contracts_1.IInterpreterLocatorService)), __param(6, inversify_1.named(contracts_1.PIPENV_SERVICE)),
    __param(7, inversify_1.inject(contracts_1.IInterpreterLocatorService)), __param(7, inversify_1.named(contracts_1.WORKSPACE_VIRTUAL_ENV_SERVICE))
], WorkspaceVirtualEnvInterpretersAutoSelectionRule);
exports.WorkspaceVirtualEnvInterpretersAutoSelectionRule = WorkspaceVirtualEnvInterpretersAutoSelectionRule;


/***/ }),
/* 778 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const registry_1 = __webpack_require__(673);
const contracts_1 = __webpack_require__(90);
let InterpreterComparer = class InterpreterComparer {
    constructor(interpreterHelper) {
        this.interpreterHelper = interpreterHelper;
    }
    compare(a, b) {
        const nameA = this.getSortName(a);
        const nameB = this.getSortName(b);
        if (nameA === nameB) {
            return 0;
        }
        return nameA > nameB ? 1 : -1;
    }
    getSortName(info) {
        const sortNameParts = [];
        const envSuffixParts = [];
        // Sort order for interpreters is:
        // * Version
        // * Architecture
        // * Interpreter Type
        // * Environment name
        if (info.version) {
            sortNameParts.push(info.version.raw);
        }
        if (info.architecture) {
            sortNameParts.push(registry_1.getArchitectureDisplayName(info.architecture));
        }
        if (info.companyDisplayName && info.companyDisplayName.length > 0) {
            sortNameParts.push(info.companyDisplayName.trim());
        }
        else {
            sortNameParts.push('Python');
        }
        if (info.type) {
            const name = this.interpreterHelper.getInterpreterTypeDisplayName(info.type);
            if (name) {
                envSuffixParts.push(name);
            }
        }
        if (info.envName && info.envName.length > 0) {
            envSuffixParts.push(info.envName);
        }
        const envSuffix = envSuffixParts.length === 0 ? '' :
            `(${envSuffixParts.join(': ')})`;
        return `${sortNameParts.join(' ')} ${envSuffix}`.trim();
    }
};
InterpreterComparer = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(contracts_1.IInterpreterHelper))
], InterpreterComparer);
exports.InterpreterComparer = InterpreterComparer;


/***/ }),
/* 779 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_2 = __webpack_require__(75);
const contracts_1 = __webpack_require__(90);
const types_3 = __webpack_require__(761);
let InterpreterSelector = class InterpreterSelector {
    constructor(interpreterManager, workspaceService, applicationShell, documentManager, pathUtils, interpreterComparer, pythonPathUpdaterService, shebangCodeLensProvider, configurationService, commandManager) {
        this.interpreterManager = interpreterManager;
        this.workspaceService = workspaceService;
        this.applicationShell = applicationShell;
        this.documentManager = documentManager;
        this.pathUtils = pathUtils;
        this.interpreterComparer = interpreterComparer;
        this.pythonPathUpdaterService = pythonPathUpdaterService;
        this.shebangCodeLensProvider = shebangCodeLensProvider;
        this.configurationService = configurationService;
        this.commandManager = commandManager;
        this.disposables = [];
    }
    dispose() {
        this.disposables.forEach(disposable => disposable.dispose());
    }
    initialize() {
        this.disposables.push(this.commandManager.registerCommand(constants_1.Commands.Set_Interpreter, this.setInterpreter.bind(this)));
        this.disposables.push(this.commandManager.registerCommand(constants_1.Commands.Set_ShebangInterpreter, this.setShebangInterpreter.bind(this)));
    }
    async getSuggestions(resourceUri) {
        const interpreters = await this.interpreterManager.getInterpreters(resourceUri);
        interpreters.sort(this.interpreterComparer.compare.bind(this.interpreterComparer));
        return Promise.all(interpreters.map(item => this.suggestionToQuickPickItem(item, resourceUri)));
    }
    async suggestionToQuickPickItem(suggestion, workspaceUri) {
        // const detail = this.pathUtils.getDisplayName(suggestion.path, workspaceUri ? workspaceUri.fsPath : undefined)
        // const cachedPrefix = suggestion.cachedEntry ? '(cached) ' : ''
        return {
            // tslint:disable-next-line:no-non-null-assertion
            path: suggestion.path
        };
    }
    async setInterpreter() {
        const { workspaceFolders } = this.workspaceService;
        const setInterpreterGlobally = !Array.isArray(workspaceFolders) || workspaceFolders.length == 0;
        let configTarget = coc_nvim_1.ConfigurationTarget.Global;
        let wkspace;
        if (!setInterpreterGlobally) {
            wkspace = coc_nvim_1.Uri.parse(coc_nvim_1.workspace.workspaceFolder.uri);
            configTarget = coc_nvim_1.ConfigurationTarget.Workspace;
        }
        const suggestions = await this.getSuggestions(wkspace);
        const settings = this.configurationService.getSettings(wkspace);
        const currentPythonPath = settings.pythonPath;
        const idx = await coc_nvim_1.workspace.showQuickpick(suggestions.map(s => s.path), `Select pythonPath, current: ${currentPythonPath}`);
        if (idx !== -1) {
            let selection = suggestions[idx];
            await this.pythonPathUpdaterService.updatePythonPath(selection.path, configTarget, 'ui', wkspace);
            coc_nvim_1.workspace.nvim.command('CocRestart', true);
        }
        // settings.
    }
    async setShebangInterpreter() {
        const shebang = await this.shebangCodeLensProvider.detectShebang(coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr).textDocument);
        if (!shebang) {
            return;
        }
        const doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        const isGlobalChange = !Array.isArray(this.workspaceService.workspaceFolders) || this.workspaceService.workspaceFolders.length === 0;
        const workspaceFolder = this.workspaceService.getWorkspaceFolder(coc_nvim_1.Uri.parse(doc.uri));
        const isWorkspaceChange = Array.isArray(this.workspaceService.workspaceFolders) && this.workspaceService.workspaceFolders.length === 1;
        if (isGlobalChange) {
            await this.pythonPathUpdaterService.updatePythonPath(shebang, coc_nvim_1.ConfigurationTarget.Global, 'shebang');
            return;
        }
        if (isWorkspaceChange || !workspaceFolder) {
            await this.pythonPathUpdaterService.updatePythonPath(shebang, coc_nvim_1.ConfigurationTarget.Workspace, 'shebang');
            return;
        }
        await this.pythonPathUpdaterService.updatePythonPath(shebang, coc_nvim_1.ConfigurationTarget.Workspace, 'shebang', coc_nvim_1.Uri.parse(workspaceFolder.uri));
    }
    async getWorkspaceToSetPythonPath() {
        if (!Array.isArray(this.workspaceService.workspaceFolders) || this.workspaceService.workspaceFolders.length === 0) {
            return undefined;
        }
        // Ok we have multiple workspaces, get the user to pick a folder.
        // const workspaceFolder = await this.applicationShell.showWorkspaceFolderPick({ placeHolder: 'Select a workspace' })
        // return workspaceFolder ? { folderUri: workspaceFolder.uri, configTarget: ConfigurationTarget.WorkspaceFolder } : undefined
        return { folderUri: coc_nvim_1.Uri.parse(this.workspaceService.workspaceFolders[0].uri), configTarget: coc_nvim_1.ConfigurationTarget.Workspace };
    }
};
InterpreterSelector = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(contracts_1.IInterpreterService)),
    __param(1, inversify_1.inject(types_1.IWorkspaceService)),
    __param(2, inversify_1.inject(types_1.IApplicationShell)),
    __param(3, inversify_1.inject(types_1.IDocumentManager)),
    __param(4, inversify_1.inject(types_2.IPathUtils)),
    __param(5, inversify_1.inject(types_3.IInterpreterComparer)),
    __param(6, inversify_1.inject(types_3.IPythonPathUpdaterServiceManager)),
    __param(7, inversify_1.inject(contracts_1.IShebangCodeLensProvider)),
    __param(8, inversify_1.inject(types_2.IConfigurationService)),
    __param(9, inversify_1.inject(types_1.ICommandManager))
], InterpreterSelector);
exports.InterpreterSelector = InterpreterSelector;


/***/ }),
/* 780 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(95);
const types_2 = __webpack_require__(761);
let PythonPathUpdaterService = class PythonPathUpdaterService {
    constructor(serviceContainer) {
        this.pythonPathSettingsUpdaterFactory = serviceContainer.get(types_2.IPythonPathUpdaterServiceFactory);
    }
    async updatePythonPath(pythonPath, configTarget, trigger, wkspace) {
        // const stopWatch = new StopWatch()
        const pythonPathUpdater = this.getPythonUpdaterService(configTarget, wkspace);
        let failed = false;
        try {
            await pythonPathUpdater.updatePythonPath(path.normalize(pythonPath), trigger);
        }
        catch (reason) {
            failed = true;
            // tslint:disable-next-line:no-unsafe-any prefer-type-cast
            const message = reason && typeof reason.message === 'string' ? reason.message : '';
            coc_nvim_1.workspace.showMessage(`Failed to set 'pythonPath'. Error: ${message}`, 'error');
            // tslint:disable-next-line: no-console
            console.error(reason);
        }
    }
    getPythonUpdaterService(configTarget, wkspace) {
        switch (configTarget) {
            case coc_nvim_1.ConfigurationTarget.Global: {
                return this.pythonPathSettingsUpdaterFactory.getGlobalPythonPathConfigurationService();
            }
            case coc_nvim_1.ConfigurationTarget.Workspace: {
                if (!wkspace) {
                    throw new Error('Workspace Uri not defined');
                }
                // tslint:disable-next-line:no-non-null-assertion
                return this.pythonPathSettingsUpdaterFactory.getWorkspacePythonPathConfigurationService(wkspace);
            }
            default: {
                if (!wkspace) {
                    throw new Error('Workspace Uri not defined');
                }
                // tslint:disable-next-line:no-non-null-assertion
                return this.pythonPathSettingsUpdaterFactory.getWorkspaceFolderPythonPathConfigurationService(wkspace);
            }
        }
    }
};
PythonPathUpdaterService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IServiceContainer))
], PythonPathUpdaterService);
exports.PythonPathUpdaterService = PythonPathUpdaterService;


/***/ }),
/* 781 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(75);
const globalUpdaterService_1 = __webpack_require__(782);
const workspaceFolderUpdaterService_1 = __webpack_require__(783);
const workspaceUpdaterService_1 = __webpack_require__(784);
let PythonPathUpdaterServiceFactory = class PythonPathUpdaterServiceFactory {
    constructor(stateFactory) {
        // this.workspaceService = serviceContainer.get<IWorkspaceService>(IWorkspaceService)
        this.globalStore = stateFactory.createGlobalPersistentState('SelectedPythonPath', undefined);
        this.workspaceStore = stateFactory.createWorkspacePersistentState('SelectedPythonPath', undefined);
    }
    getGlobalPythonPathConfigurationService() {
        return new globalUpdaterService_1.GlobalPythonPathUpdaterService(this.globalStore);
    }
    getWorkspacePythonPathConfigurationService(wkspace) {
        return new workspaceUpdaterService_1.WorkspacePythonPathUpdaterService(wkspace, this.workspaceStore);
    }
    getWorkspaceFolderPythonPathConfigurationService(workspaceFolder) {
        return new workspaceFolderUpdaterService_1.WorkspaceFolderPythonPathUpdaterService(workspaceFolder, this.workspaceStore);
    }
};
PythonPathUpdaterServiceFactory = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IPersistentStateFactory))
], PythonPathUpdaterServiceFactory);
exports.PythonPathUpdaterServiceFactory = PythonPathUpdaterServiceFactory;


/***/ }),
/* 782 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
class GlobalPythonPathUpdaterService {
    constructor(store) {
        this.store = store;
    }
    async updatePythonPath(pythonPath, trigger) {
        let val = this.store.value;
        if (val && trigger != 'ui') {
            return;
        }
        if (val && val == pythonPath) {
            return;
        }
        await this.store.updateValue(pythonPath);
    }
}
exports.GlobalPythonPathUpdaterService = GlobalPythonPathUpdaterService;


/***/ }),
/* 783 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
class WorkspaceFolderPythonPathUpdaterService {
    constructor(workspaceFolder, workspaceStore) {
        this.workspaceFolder = workspaceFolder;
        this.workspaceStore = workspaceStore;
    }
    async updatePythonPath(pythonPath, trigger) {
        const pythonPathValue = this.workspaceStore.value;
        if (pythonPathValue && trigger != 'ui') {
            return;
        }
        if (pythonPathValue && pythonPathValue === pythonPath) {
            return;
        }
        await this.workspaceStore.updateValue(pythonPath);
    }
}
exports.WorkspaceFolderPythonPathUpdaterService = WorkspaceFolderPythonPathUpdaterService;


/***/ }),
/* 784 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
class WorkspacePythonPathUpdaterService {
    constructor(workspace, workspaceStore) {
        this.workspace = workspace;
        this.workspaceStore = workspaceStore;
    }
    async updatePythonPath(pythonPath, trigger) {
        const pythonPathValue = this.workspaceStore.value;
        if (pythonPathValue && trigger != 'ui') {
            return;
        }
        if (pythonPathValue && pythonPathValue == pythonPath) {
            return;
        }
        await this.workspaceStore.updateValue(pythonPath);
    }
}
exports.WorkspacePythonPathUpdaterService = WorkspacePythonPathUpdaterService;


/***/ }),
/* 785 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(75);
const types_3 = __webpack_require__(95);
const types_4 = __webpack_require__(89);
const contracts_1 = __webpack_require__(90);
const function_1 = __webpack_require__(80);
// tslint:disable-next-line:completed-docs
let InterpreterDisplay = class InterpreterDisplay {
    constructor(serviceContainer) {
        this.helper = serviceContainer.get(contracts_1.IInterpreterHelper);
        this.workspaceService = serviceContainer.get(types_1.IWorkspaceService);
        this.interpreterService = serviceContainer.get(contracts_1.IInterpreterService);
        this.autoSelection = serviceContainer.get(types_4.IInterpreterAutoSelectionService);
        const application = serviceContainer.get(types_1.IApplicationShell);
        const disposableRegistry = serviceContainer.get(types_2.IDisposableRegistry);
        this.statusBar = application.createStatusBarItem(100);
        this.statusBar.text = 'python';
        // this.statusBar.command = 'python.setInterpreter'
        disposableRegistry.push(this.statusBar);
        this.interpreterService.onDidChangeInterpreterInformation(this.onDidChangeInterpreterInformation, this, disposableRegistry);
        coc_nvim_1.events.on('BufEnter', this.onBufEnter, this, disposableRegistry);
    }
    async onBufEnter(bufnr) {
        let filetype = await coc_nvim_1.workspace.nvim.call('getbufvar', [bufnr, '&filetype', '']);
        if (filetype == 'python') {
            this.statusBar.show();
        }
        else {
            this.statusBar.hide();
        }
    }
    async refresh(resource) {
        // Use the workspace Uri if available
        if (resource && this.workspaceService.getWorkspaceFolder(resource)) {
            resource = coc_nvim_1.Uri.parse(this.workspaceService.getWorkspaceFolder(resource).uri);
        }
        if (!resource) {
            const wkspc = this.helper.getActiveWorkspaceUri(resource);
            resource = wkspc ? wkspc.folderUri : undefined;
        }
        await this.updateDisplay(resource);
    }
    onDidChangeInterpreterInformation(info) {
        if (!this.currentlySelectedInterpreterPath || this.currentlySelectedInterpreterPath === info.path) {
            this.updateDisplay(this.currentlySelectedWorkspaceFolder).catch(function_1.emptyFn);
        }
    }
    async updateDisplay(workspaceFolder) {
        await this.autoSelection.autoSelectInterpreter(workspaceFolder);
        const interpreter = await this.interpreterService.getActiveInterpreter(workspaceFolder);
        this.currentlySelectedWorkspaceFolder = workspaceFolder;
        if (interpreter) {
            this.statusBar.text = interpreter.displayName;
            this.currentlySelectedInterpreterPath = interpreter.path;
        }
        else {
            this.statusBar.text = 'No Python Interpreter';
            this.currentlySelectedInterpreterPath = undefined;
        }
        this.statusBar.show();
    }
};
InterpreterDisplay = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.IServiceContainer))
], InterpreterDisplay);
exports.InterpreterDisplay = InterpreterDisplay;


/***/ }),
/* 786 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(75);
const contracts_1 = __webpack_require__(90);
let InterpreterLocatorProgressStatubarHandler = class InterpreterLocatorProgressStatubarHandler {
    constructor(shell, progressService, disposables) {
        this.shell = shell;
        this.progressService = progressService;
        this.disposables = disposables;
    }
    register() {
        this.progressService.onRefreshing(() => this.showProgress(), this, this.disposables);
        this.progressService.onRefreshed(() => this.hideProgress(), this, this.disposables);
        this.item = coc_nvim_1.workspace.createStatusBarItem(99, { progress: true });
        this.item.text = 'Searching interpreter...';
    }
    showProgress() {
        this.item.show();
    }
    hideProgress() {
        this.item.hide();
    }
};
__decorate([
    logger_1.traceDecorators.verbose('Display locator refreshing progress')
], InterpreterLocatorProgressStatubarHandler.prototype, "showProgress", null);
__decorate([
    logger_1.traceDecorators.verbose('Hide locator refreshing progress')
], InterpreterLocatorProgressStatubarHandler.prototype, "hideProgress", null);
InterpreterLocatorProgressStatubarHandler = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IApplicationShell)),
    __param(1, inversify_1.inject(contracts_1.IInterpreterLocatorProgressService)),
    __param(2, inversify_1.inject(types_2.IDisposableRegistry))
], InterpreterLocatorProgressStatubarHandler);
exports.InterpreterLocatorProgressStatubarHandler = InterpreterLocatorProgressStatubarHandler;


/***/ }),
/* 787 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(148);
const types_4 = __webpack_require__(75);
let ShebangCodeLensProvider = class ShebangCodeLensProvider {
    constructor(processServiceFactory, configurationService, platformService, workspaceService) {
        this.processServiceFactory = processServiceFactory;
        this.configurationService = configurationService;
        this.platformService = platformService;
        // tslint:disable-next-line:no-any
        this.onDidChangeCodeLenses = workspaceService.onDidChangeConfiguration;
    }
    async detectShebang(document) {
        const lines = document.getText().split(/\r?\n/);
        const firstLine = lines[0];
        if (firstLine.trim().length == 0) {
            return;
        }
        if (!firstLine.startsWith('#!')) {
            return;
        }
        const shebang = firstLine.substr(2).trim();
        const pythonPath = await this.getFullyQualifiedPathToInterpreter(shebang, coc_nvim_1.Uri.parse(document.uri));
        return typeof pythonPath === 'string' && pythonPath.length > 0 ? pythonPath : undefined;
    }
    async provideCodeLenses(document, _token) {
        return this.createShebangCodeLens(document);
    }
    async getFullyQualifiedPathToInterpreter(pythonPath, resource) {
        let cmdFile = pythonPath;
        let args = ['-c', 'import sys;print(sys.executable)'];
        if (pythonPath.indexOf('bin/env ') >= 0 && !this.platformService.isWindows) {
            // In case we have pythonPath as '/usr/bin/env python'.
            const parts = pythonPath.split(' ').map(part => part.trim()).filter(part => part.length > 0);
            cmdFile = parts.shift();
            args = parts.concat(args);
        }
        const processService = await this.processServiceFactory.create(resource);
        return processService.exec(cmdFile, args)
            .then(output => output.stdout.trim())
            .catch(() => '');
    }
    async createShebangCodeLens(document) {
        const shebang = await this.detectShebang(document);
        if (!shebang) {
            return [];
        }
        const pythonPath = this.configurationService.getSettings(coc_nvim_1.Uri.parse(document.uri)).pythonPath;
        const resolvedPythonPath = await this.getFullyQualifiedPathToInterpreter(pythonPath, coc_nvim_1.Uri.parse(document.uri));
        if (shebang === resolvedPythonPath) {
            return [];
        }
        const lines = document.getText().split(/\r?\n/);
        const firstLine = lines[0];
        const startOfShebang = vscode_languageserver_protocol_1.Position.create(0, 0);
        const endOfShebang = vscode_languageserver_protocol_1.Position.create(0, firstLine.length - 1);
        const shebangRange = vscode_languageserver_protocol_1.Range.create(startOfShebang, endOfShebang);
        const cmd = {
            command: 'python.setShebangInterpreter',
            title: 'Set as interpreter'
        };
        return [(vscode_languageserver_protocol_1.CodeLens.create(shebangRange, cmd))];
    }
};
ShebangCodeLensProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.IProcessServiceFactory)),
    __param(1, inversify_1.inject(types_4.IConfigurationService)),
    __param(2, inversify_1.inject(types_2.IPlatformService)),
    __param(3, inversify_1.inject(types_1.IWorkspaceService))
], ShebangCodeLensProvider);
exports.ShebangCodeLensProvider = ShebangCodeLensProvider;


/***/ }),
/* 788 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const semver_1 = __webpack_require__(265);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(148);
const types_4 = __webpack_require__(75);
const types_5 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const EXPITY_DURATION = 24 * 60 * 60 * 1000;
function getFirstNonEmptyLineFromMultilineString(stdout) {
    if (!stdout) {
        return '';
    }
    const lines = stdout.split(/\r?\n/g).map(line => line.trim()).filter(line => line.length > 0);
    return lines.length > 0 ? lines[0] : '';
}
exports.getFirstNonEmptyLineFromMultilineString = getFirstNonEmptyLineFromMultilineString;
let InterpreterHelper = class InterpreterHelper {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.persistentFactory = this.serviceContainer.get(types_4.IPersistentStateFactory);
        this.fs = this.serviceContainer.get(types_2.IFileSystem);
    }
    getActiveWorkspaceUri(resource) {
        const workspaceService = this.serviceContainer.get(types_1.IWorkspaceService);
        if (!workspaceService.hasWorkspaceFolders) {
            return;
        }
        if (Array.isArray(workspaceService.workspaceFolders) && workspaceService.workspaceFolders.length === 1) {
            return { folderUri: coc_nvim_1.Uri.parse(workspaceService.workspaceFolders[0].uri), configTarget: coc_nvim_1.ConfigurationTarget.Workspace };
        }
        if (resource) {
            const workspaceFolder = workspaceService.getWorkspaceFolder(resource);
            if (workspaceFolder) {
                return { configTarget: coc_nvim_1.ConfigurationTarget.Workspace, folderUri: coc_nvim_1.Uri.parse(workspaceFolder.uri) };
            }
        }
        const documentManager = this.serviceContainer.get(types_1.IDocumentManager);
        const doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        if (doc != null) {
            const workspaceFolder = workspaceService.getWorkspaceFolder(coc_nvim_1.Uri.parse(doc.uri));
            if (workspaceFolder) {
                return { configTarget: coc_nvim_1.ConfigurationTarget.Workspace, folderUri: coc_nvim_1.Uri.parse(workspaceFolder.uri) };
            }
        }
    }
    async getInterpreterInformation(pythonPath) {
        let fileHash = await this.fs.getFileHash(pythonPath).catch(() => '');
        fileHash = fileHash ? fileHash : '';
        const store = this.persistentFactory.createGlobalPersistentState(`${pythonPath}.v3`, undefined, EXPITY_DURATION);
        if (store.value && fileHash && store.value.fileHash === fileHash) {
            return store.value;
        }
        const processService = await this.serviceContainer.get(types_3.IPythonExecutionFactory).create({ pythonPath });
        try {
            const info = await processService.getInterpreterInformation().catch(() => undefined);
            if (!info) {
                return;
            }
            const details = Object.assign({}, (info), { fileHash });
            await store.updateValue(details);
            return details;
        }
        catch (ex) {
            // tslint:disable-next-line: no-console
            console.error(`Failed to get interpreter information for '${pythonPath}'`, ex);
            return;
        }
    }
    isMacDefaultPythonPath(pythonPath) {
        return pythonPath === 'python' || pythonPath === '/usr/bin/python';
    }
    getInterpreterTypeDisplayName(interpreterType) {
        switch (interpreterType) {
            case contracts_1.InterpreterType.Conda: {
                return 'conda';
            }
            case contracts_1.InterpreterType.Pipenv: {
                return 'pipenv';
            }
            case contracts_1.InterpreterType.Pyenv: {
                return 'pyenv';
            }
            case contracts_1.InterpreterType.Venv: {
                return 'venv';
            }
            case contracts_1.InterpreterType.VirtualEnv: {
                return 'virtualenv';
            }
            default: {
                return '';
            }
        }
    }
    getBestInterpreter(interpreters) {
        if (!Array.isArray(interpreters) || interpreters.length === 0) {
            return;
        }
        if (interpreters.length === 1) {
            return interpreters[0];
        }
        const sorted = interpreters.slice();
        sorted.sort((a, b) => (a.version && b.version) ? semver_1.compare(a.version.raw, b.version.raw) : 0);
        return sorted[sorted.length - 1];
    }
};
InterpreterHelper = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_5.IServiceContainer))
], InterpreterHelper);
exports.InterpreterHelper = InterpreterHelper;


/***/ }),
/* 789 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const md5_1 = __importDefault(__webpack_require__(196));
const path_1 = __importDefault(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const registry_1 = __webpack_require__(673);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(148);
const types_4 = __webpack_require__(75);
const async_1 = __webpack_require__(150);
const types_5 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const types_6 = __webpack_require__(790);
const function_1 = __webpack_require__(80);
const EXPITY_DURATION = 24 * 60 * 60 * 1000;
let InterpreterService = class InterpreterService {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.didChangeInterpreterEmitter = new coc_nvim_1.Emitter();
        this.didChangeInterpreterInformation = new coc_nvim_1.Emitter();
        this.inMemoryCacheOfDisplayNames = new Map();
        this.updatedInterpreters = new Set();
        this.pythonPathSetting = '';
        this.onConfigChanged = () => {
            // Check if we actually changed our python path
            const pySettings = this.configService.getSettings();
            if (this.pythonPathSetting !== pySettings.pythonPath) {
                this.pythonPathSetting = pySettings.pythonPath;
                this.didChangeInterpreterEmitter.fire();
                const interpreterDisplay = this.serviceContainer.get(contracts_1.IInterpreterDisplay);
                // tslint:disable-next-line: no-console
                interpreterDisplay.refresh().catch(ex => console.error('Python Extension: display.refresh', ex));
            }
        };
        this.locator = serviceContainer.get(contracts_1.IInterpreterLocatorService, contracts_1.INTERPRETER_LOCATOR_SERVICE);
        this.fs = this.serviceContainer.get(types_2.IFileSystem);
        this.persistentStateFactory = this.serviceContainer.get(types_4.IPersistentStateFactory);
        this.configService = this.serviceContainer.get(types_4.IConfigurationService);
    }
    get hasInterpreters() {
        return this.locator.hasInterpreters;
    }
    async refresh(resource) {
        const interpreterDisplay = this.serviceContainer.get(contracts_1.IInterpreterDisplay);
        return interpreterDisplay.refresh(resource);
    }
    initialize() {
        const disposables = this.serviceContainer.get(types_4.IDisposableRegistry);
        // const documentManager = this.serviceContainer.get<IDocumentManager>(IDocumentManager)
        coc_nvim_1.events.on('BufEnter', async (bufnr) => {
            let doc = coc_nvim_1.workspace.getDocument(bufnr);
            if (doc && doc.filetype == 'python') {
                await this.refresh(coc_nvim_1.Uri.parse(doc.uri));
            }
        }, null, disposables);
        // disposables.push(documentManager.onDidChangeActiveTextEditor(e => e ? this.refresh(e.document.uri) : undefined))
        const workspaceService = this.serviceContainer.get(types_1.IWorkspaceService);
        const pySettings = this.configService.getSettings();
        this.pythonPathSetting = pySettings.pythonPath;
        const disposable = workspaceService.onDidChangeConfiguration(e => {
            if (e.affectsConfiguration('python.pythonPath', undefined)) {
                this.onConfigChanged();
            }
        });
        disposables.push(disposable);
    }
    async getInterpreters(resource) {
        const interpreters = await this.locator.getInterpreters(resource);
        await Promise.all(interpreters
            .filter(item => !item.displayName)
            .map(async (item) => {
            item.displayName = await this.getDisplayName(item, resource);
            // Keep information up to date with latest details.
            if (!item.cachedEntry) {
                this.updateCachedInterpreterInformation(item, resource).catch(function_1.emptyFn);
            }
        }));
        return interpreters;
    }
    dispose() {
        this.locator.dispose();
        this.didChangeInterpreterEmitter.dispose();
        this.didChangeInterpreterInformation.dispose();
    }
    get onDidChangeInterpreter() {
        return this.didChangeInterpreterEmitter.event;
    }
    get onDidChangeInterpreterInformation() {
        return this.didChangeInterpreterInformation.event;
    }
    async getActiveInterpreter(resource) {
        const pythonExecutionFactory = this.serviceContainer.get(types_3.IPythonExecutionFactory);
        const pythonExecutionService = await pythonExecutionFactory.create({ resource });
        const fullyQualifiedPath = await pythonExecutionService.getExecutablePath().catch(() => undefined);
        // Python path is invalid or python isn't installed.
        if (!fullyQualifiedPath) {
            return;
        }
        return this.getInterpreterDetails(fullyQualifiedPath, resource);
    }
    async getInterpreterDetails(pythonPath, resource) {
        // If we don't have the fully qualified path, then get it.
        if (path_1.default.basename(pythonPath) === pythonPath) {
            const pythonExecutionFactory = this.serviceContainer.get(types_3.IPythonExecutionFactory);
            const pythonExecutionService = await pythonExecutionFactory.create({ resource });
            pythonPath = await pythonExecutionService.getExecutablePath().catch(() => '');
            // Python path is invalid or python isn't installed.
            if (!pythonPath) {
                return;
            }
        }
        const store = await this.getInterpreterCache(pythonPath);
        if (store.value && store.value.info) {
            return store.value.info;
        }
        const fs = this.serviceContainer.get(types_2.IFileSystem);
        // Don't want for all interpreters are collected.
        // Try to collect the infromation manually, that's faster.
        // Get from which ever comes first.
        const option1 = (async () => {
            const result = this.collectInterpreterDetails(pythonPath, resource);
            await async_1.sleep(1000); // let the other option complete within 1s if possible.
            return result;
        })();
        // This is the preferred approach, hence the delay in option 1.
        const option2 = (async () => {
            const interpreters = await this.getInterpreters(resource);
            const found = interpreters.find(i => fs.arePathsSame(i.path, pythonPath));
            if (found) {
                // Cache the interpreter info, only if we get the data from interpretr list.
                // tslint:disable-next-line:no-any
                found.__store = true;
                return found;
            }
            // Use option1 as a fallback.
            // tslint:disable-next-line:no-any
            return option1;
        })();
        const interpreterInfo = await Promise.race([option2, option1]);
        // tslint:disable-next-line:no-any
        if (interpreterInfo && interpreterInfo.__store) {
            await this.updateCachedInterpreterInformation(interpreterInfo, resource);
        }
        else {
            // If we got information from option1, then when option2 finishes cache it for later use (ignoring erors)
            option2.then(async (info) => {
                // tslint:disable-next-line:no-any
                if (info && info.__store) {
                    await this.updateCachedInterpreterInformation(info, resource);
                }
            }).catch(function_1.emptyFn);
        }
        return interpreterInfo;
    }
    /**
     * Gets the display name of an interpreter.
     * The format is `Python <Version> <bitness> (<env name>: <env type>)`
     * E.g. `Python 3.5.1 32-bit (myenv2: virtualenv)`
     * @param {Partial<PythonInterpreter>} info
     * @returns {string}
     * @memberof InterpreterService
     */
    async getDisplayName(info, resource) {
        // faster than calculating file has agian and again, only when deailing with cached items.
        if (!info.cachedEntry && info.path && this.inMemoryCacheOfDisplayNames.has(info.path)) {
            return this.inMemoryCacheOfDisplayNames.get(info.path);
        }
        const fileHash = (info.path ? await this.fs.getFileHash(info.path).catch(() => '') : '') || '';
        // Do not include dipslay name into hash as that changes.
        const interpreterHash = `${fileHash}-${md5_1.default(JSON.stringify(Object.assign({}, info, { displayName: '' })))}`;
        const store = this.persistentStateFactory.createGlobalPersistentState(`${info.path}.interpreter.displayName.v7`, undefined, EXPITY_DURATION);
        if (store.value && store.value.hash === interpreterHash && store.value.displayName) {
            this.inMemoryCacheOfDisplayNames.set(info.path, store.value.displayName);
            return store.value.displayName;
        }
        const displayName = await this.buildInterpreterDisplayName(info, resource);
        // If dealing with cached entry, then do not store the display name in cache.
        if (!info.cachedEntry) {
            await store.updateValue({ displayName, hash: interpreterHash });
            this.inMemoryCacheOfDisplayNames.set(info.path, displayName);
        }
        return displayName;
    }
    async getInterpreterCache(pythonPath) {
        const fileHash = (pythonPath ? await this.fs.getFileHash(pythonPath).catch(() => '') : '') || '';
        const store = this.persistentStateFactory.createGlobalPersistentState(`${pythonPath}.interpreter.Details.v7`, undefined, EXPITY_DURATION);
        if (!store.value || store.value.fileHash !== fileHash) {
            await store.updateValue({ fileHash });
        }
        return store;
    }
    async updateCachedInterpreterInformation(info, resource) {
        const key = JSON.stringify(info);
        if (this.updatedInterpreters.has(key)) {
            return;
        }
        this.updatedInterpreters.add(key);
        const state = await this.getInterpreterCache(info.path);
        info.displayName = await this.getDisplayName(info, resource);
        // Check if info has indeed changed.
        if (state.value && state.value.info &&
            JSON.stringify(info) === JSON.stringify(state.value.info)) {
            return;
        }
        this.inMemoryCacheOfDisplayNames.delete(info.path);
        await state.updateValue({ fileHash: state.value.fileHash, info });
        this.didChangeInterpreterInformation.fire(info);
    }
    async buildInterpreterDisplayName(info, resource) {
        const displayNameParts = ['Python'];
        const envSuffixParts = [];
        if (info.version) {
            displayNameParts.push(`${info.version.major}.${info.version.minor}.${info.version.patch}`);
        }
        if (info.architecture) {
            displayNameParts.push(registry_1.getArchitectureDisplayName(info.architecture));
        }
        if (!info.envName && info.path && info.type && info.type === contracts_1.InterpreterType.Pipenv) {
            // If we do not have the name of the environment, then try to get it again.
            // This can happen based on the context (i.e. resource).
            // I.e. we can determine if an environment is PipEnv only when giving it the right workspacec path (i.e. resource).
            const virtualEnvMgr = this.serviceContainer.get(types_6.IVirtualEnvironmentManager);
            info.envName = await virtualEnvMgr.getEnvironmentName(info.path, resource);
        }
        if (info.envName && info.envName.length > 0) {
            envSuffixParts.push(`'${info.envName}'`);
        }
        if (info.type) {
            const interpreterHelper = this.serviceContainer.get(contracts_1.IInterpreterHelper);
            const name = interpreterHelper.getInterpreterTypeDisplayName(info.type);
            if (name) {
                envSuffixParts.push(name);
            }
        }
        const envSuffix = envSuffixParts.length === 0 ? '' :
            `(${envSuffixParts.join(': ')})`;
        return `${displayNameParts.join(' ')} ${envSuffix}`.trim();
    }
    async collectInterpreterDetails(pythonPath, resource) {
        const interpreterHelper = this.serviceContainer.get(contracts_1.IInterpreterHelper);
        const virtualEnvManager = this.serviceContainer.get(types_6.IVirtualEnvironmentManager);
        const [info, type] = await Promise.all([
            interpreterHelper.getInterpreterInformation(pythonPath),
            virtualEnvManager.getEnvironmentType(pythonPath)
        ]);
        if (!info) {
            return;
        }
        const details = Object.assign({}, info, { path: pythonPath, type });
        const envName = type === contracts_1.InterpreterType.Unknown ? undefined : await virtualEnvManager.getEnvironmentName(pythonPath, resource);
        const pthonInfo = Object.assign({}, details, { envName });
        pthonInfo.displayName = await this.getDisplayName(pthonInfo, resource);
        return pthonInfo;
    }
};
InterpreterService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_5.IServiceContainer))
], InterpreterService);
exports.InterpreterService = InterpreterService;


/***/ }),
/* 790 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.IVirtualEnvironmentManager = Symbol('VirtualEnvironmentManager');


/***/ }),
/* 791 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(148);
const string_1 = __webpack_require__(149);
exports.PIP_VERSION_REGEX = '\\d+\\.\\d+(\\.\\d+)?';
let InterpreterVersionService = class InterpreterVersionService {
    constructor(processServiceFactory) {
        this.processServiceFactory = processServiceFactory;
    }
    async getVersion(pythonPath, defaultValue) {
        const processService = await this.processServiceFactory.create();
        return processService.exec(pythonPath, ['--version'], { mergeStdOutErr: true })
            .then(output => string_1.splitLines(output.stdout)[0])
            .then(version => version.length === 0 ? defaultValue : version)
            .catch(() => defaultValue);
    }
    async getPipVersion(pythonPath) {
        const processService = await this.processServiceFactory.create();
        const output = await processService.exec(pythonPath, ['-m', 'pip', '--version'], { mergeStdOutErr: true });
        if (output.stdout.length > 0) {
            // Here's a sample output:
            // pip 9.0.1 from /Users/donjayamanne/anaconda3/lib/python3.6/site-packages (python 3.6).
            const re = new RegExp(exports.PIP_VERSION_REGEX, 'g');
            const matches = re.exec(output.stdout);
            if (matches && matches.length > 0) {
                return matches[0].trim();
            }
        }
        throw new Error(`Unable to determine pip version from output '${output.stdout}'`);
    }
};
InterpreterVersionService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IProcessServiceFactory))
], InterpreterVersionService);
exports.InterpreterVersionService = InterpreterVersionService;


/***/ }),
/* 792 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const constants_1 = __webpack_require__(147);
const types_1 = __webpack_require__(205);
const fs_1 = __webpack_require__(225);
const contracts_1 = __webpack_require__(90);
const types_2 = __webpack_require__(793);
const CheckPythonInterpreterRegEx = constants_1.IS_WINDOWS ? /^python(\d+(.\d+)?)?\.exe$/ : /^python(\d+(.\d+)?)?$/;
function lookForInterpretersInDirectory(pathToCheck) {
    return fs_1.fsReaddirAsync(pathToCheck)
        .then(subDirs => subDirs.filter(fileName => CheckPythonInterpreterRegEx.test(path.basename(fileName))))
        .catch(err => {
        // tslint:disable-next-line: no-console
        console.error('Python Extension (lookForInterpretersInDirectory.fsReaddirAsync):', err);
        return [];
    });
}
exports.lookForInterpretersInDirectory = lookForInterpretersInDirectory;
let InterpreterLocatorHelper = class InterpreterLocatorHelper {
    constructor(fs, pipEnvServiceHelper) {
        this.fs = fs;
        this.pipEnvServiceHelper = pipEnvServiceHelper;
    }
    async mergeInterpreters(interpreters) {
        const items = interpreters
            .map(item => (Object.assign({}, item)))
            .map(item => { item.path = path.normalize(item.path); return item; })
            .reduce((accumulator, current) => {
            const currentVersion = current && current.version ? current.version.raw : undefined;
            const existingItem = accumulator.find(item => {
                // If same version and same base path, then ignore.
                // Could be Python 3.6 with path = python.exe, and Python 3.6 and path = python3.exe.
                if (item.version && item.version.raw === currentVersion &&
                    item.path && current.path &&
                    this.fs.arePathsSame(path.dirname(item.path), path.dirname(current.path))) {
                    return true;
                }
                return false;
            });
            if (!existingItem) {
                accumulator.push(current);
            }
            else {
                // Preserve type information.
                // Possible we identified environment as unknown, but a later provider has identified env type.
                if (existingItem.type === contracts_1.InterpreterType.Unknown && current.type !== contracts_1.InterpreterType.Unknown) {
                    existingItem.type = current.type;
                }
                const props = ['envName', 'envPath', 'path', 'sysPrefix',
                    'architecture', 'sysVersion', 'version'];
                for (const prop of props) {
                    if (!existingItem[prop] && current[prop]) {
                        existingItem[prop] = current[prop];
                    }
                }
            }
            return accumulator;
        }, []);
        // This stuff needs to be fast.
        await Promise.all(items.map(async (item) => {
            const info = await this.pipEnvServiceHelper.getPipEnvInfo(item.path);
            if (info) {
                item.type = contracts_1.InterpreterType.Pipenv;
                item.pipEnvWorkspaceFolder = info.workspaceFolder.fsPath;
                item.envName = info.envName || item.envName;
            }
        }));
        return items;
    }
};
InterpreterLocatorHelper = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IFileSystem)),
    __param(1, inversify_1.inject(types_2.IPipEnvServiceHelper))
], InterpreterLocatorHelper);
exports.InterpreterLocatorHelper = InterpreterLocatorHelper;


/***/ }),
/* 793 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.IPythonInPathCommandProvider = Symbol('IPythonInPathCommandProvider');
exports.IPipEnvServiceHelper = Symbol('IPipEnvServiceHelper');


/***/ }),
/* 794 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const async_1 = __webpack_require__(150);
const platform_1 = __webpack_require__(627);
const types_3 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const function_1 = __webpack_require__(80);
// tslint:disable-next-line:no-require-imports no-var-requires
const flatten = __webpack_require__(217);
/**
 * Facilitates locating Python interpreters.
 */
let PythonInterpreterLocatorService = class PythonInterpreterLocatorService {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.disposables = [];
        this._hasInterpreters = async_1.createDeferred();
        serviceContainer.get(types_2.IDisposableRegistry).push(this);
        this.platform = serviceContainer.get(types_1.IPlatformService);
        this.interpreterLocatorHelper = serviceContainer.get(contracts_1.IInterpreterLocatorHelper);
    }
    /**
     * This class should never emit events when we're locating.
     * The events will be fired by the indivitual locators retrieved in `getLocators`.
     *
     * @readonly
     * @type {Event<Promise<PythonInterpreter[]>>}
     * @memberof PythonInterpreterLocatorService
     */
    get onLocating() {
        return new coc_nvim_1.Emitter().event;
    }
    get hasInterpreters() {
        return this._hasInterpreters.promise;
    }
    /**
     * Release any held resources.
     *
     * Called by VS Code to indicate it is done with the resource.
     */
    dispose() {
        this.disposables.forEach(disposable => disposable.dispose());
    }
    /**
     * Return the list of known Python interpreters.
     *
     * The optional resource arg may control where locators look for
     * interpreters.
     */
    async getInterpreters(resource) {
        const locators = this.getLocators();
        const promises = locators.map(async (provider) => provider.getInterpreters(resource));
        locators.forEach(locator => {
            locator.hasInterpreters.then(found => {
                if (found) {
                    this._hasInterpreters.resolve(true);
                }
            }).catch(function_1.emptyFn);
        });
        const listOfInterpreters = await Promise.all(promises);
        const items = flatten(listOfInterpreters)
            .filter(item => !!item)
            .map(item => item);
        this._hasInterpreters.resolve(items.length > 0);
        return this.interpreterLocatorHelper.mergeInterpreters(items);
    }
    /**
     * Return the list of applicable interpreter locators.
     *
     * The locators are pulled from the registry.
     */
    getLocators() {
        // The order of the services is important.
        // The order is important because the data sources at the bottom of the list do not contain all,
        //  the information about the interpreters (e.g. type, environment name, etc).
        // This way, the items returned from the top of the list will win, when we combine the items returned.
        const keys = [
            [contracts_1.WINDOWS_REGISTRY_SERVICE, platform_1.OSType.Windows],
            [contracts_1.CONDA_ENV_SERVICE, undefined],
            [contracts_1.CONDA_ENV_FILE_SERVICE, undefined],
            [contracts_1.PIPENV_SERVICE, undefined],
            [contracts_1.GLOBAL_VIRTUAL_ENV_SERVICE, undefined],
            [contracts_1.WORKSPACE_VIRTUAL_ENV_SERVICE, undefined],
            [contracts_1.KNOWN_PATH_SERVICE, undefined],
            [contracts_1.CURRENT_PATH_SERVICE, undefined]
        ];
        return keys
            .filter(item => item[1] === undefined || item[1] === this.platform.osType)
            .map(item => this.serviceContainer.get(contracts_1.IInterpreterLocatorService, item[0]));
    }
};
PythonInterpreterLocatorService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.IServiceContainer))
], PythonInterpreterLocatorService);
exports.PythonInterpreterLocatorService = PythonInterpreterLocatorService;


/***/ }),
/* 795 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(75);
const async_1 = __webpack_require__(150);
const misc_1 = __webpack_require__(259);
const types_2 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const function_1 = __webpack_require__(80);
let InterpreterLocatorProgressService = class InterpreterLocatorProgressService {
    constructor(serviceContainer, disposables) {
        this.disposables = disposables;
        this.deferreds = [];
        this.refreshing = new coc_nvim_1.Emitter();
        this.refreshed = new coc_nvim_1.Emitter();
        this.locators = [];
        this.locators = serviceContainer.getAll(contracts_1.IInterpreterLocatorService);
    }
    get onRefreshing() {
        return this.refreshing.event;
    }
    get onRefreshed() {
        return this.refreshed.event;
    }
    register() {
        this.locators.forEach(locator => {
            locator.onLocating(this.handleProgress, this, this.disposables);
        });
    }
    handleProgress(promise) {
        this.deferreds.push(async_1.createDeferredFrom(promise));
        this.notifyRefreshing();
        this.checkProgress();
    }
    notifyCompleted() {
        this.refreshed.fire();
    }
    notifyRefreshing() {
        this.refreshing.fire();
    }
    checkProgress() {
        if (this.deferreds.length === 0) {
            return;
        }
        if (this.areAllItemsComplete()) {
            return this.notifyCompleted();
        }
        Promise.all(this.deferreds.map(item => item.promise))
            .catch(misc_1.noop)
            .then(() => this.checkProgress())
            .catch(function_1.emptyFn);
    }
    areAllItemsComplete() {
        this.deferreds = this.deferreds.filter(item => !item.completed);
        return this.deferreds.length === 0;
    }
};
__decorate([
    logger_1.traceDecorators.verbose('Detected refreshing of Interpreters')
], InterpreterLocatorProgressService.prototype, "handleProgress", null);
__decorate([
    logger_1.traceDecorators.verbose('All locators have completed locating')
], InterpreterLocatorProgressService.prototype, "notifyCompleted", null);
__decorate([
    logger_1.traceDecorators.verbose('Notify locators are locating')
], InterpreterLocatorProgressService.prototype, "notifyRefreshing", null);
__decorate([
    logger_1.traceDecorators.verbose('Checking whether locactors have completed locating')
], InterpreterLocatorProgressService.prototype, "areAllItemsComplete", null);
InterpreterLocatorProgressService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer)),
    __param(1, inversify_1.inject(types_1.IDisposableRegistry))
], InterpreterLocatorProgressService);
exports.InterpreterLocatorProgressService = InterpreterLocatorProgressService;


/***/ }),
/* 796 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const types_3 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const cacheableLocatorService_1 = __webpack_require__(797);
const conda_1 = __webpack_require__(798);
/**
 * Locate conda env interpreters based on the "conda environments file".
 */
let CondaEnvFileService = class CondaEnvFileService extends cacheableLocatorService_1.CacheableLocatorService {
    constructor(helperService, condaService, fileSystem, serviceContainer, logger) {
        super('CondaEnvFileService', serviceContainer);
        this.helperService = helperService;
        this.condaService = condaService;
        this.fileSystem = fileSystem;
        this.logger = logger;
    }
    /**
     * Release any held resources.
     *
     * Called by VS Code to indicate it is done with the resource.
     */
    // tslint:disable-next-line:no-empty
    dispose() { }
    /**
     * Return the located interpreters.
     *
     * This is used by CacheableLocatorService.getInterpreters().
     */
    getInterpretersImplementation(_resource) {
        return this.getSuggestionsFromConda();
    }
    /**
     * Return the list of interpreters identified by the "conda environments file".
     */
    async getSuggestionsFromConda() {
        if (!this.condaService.condaEnvironmentsFile) {
            return [];
        }
        return this.fileSystem.fileExists(this.condaService.condaEnvironmentsFile)
            .then(exists => exists ? this.getEnvironmentsFromFile(this.condaService.condaEnvironmentsFile) : Promise.resolve([]));
    }
    /**
     * Return the list of environments identified in the given file.
     */
    async getEnvironmentsFromFile(envFile) {
        try {
            const fileContents = await this.fileSystem.readFile(envFile);
            const environmentPaths = fileContents.split(/\r?\n/g)
                .map(environmentPath => environmentPath.trim())
                .filter(environmentPath => environmentPath.length > 0);
            const interpreters = (await Promise.all(environmentPaths
                .map(environmentPath => this.getInterpreterDetails(environmentPath))))
                .filter(item => !!item)
                .map(item => item);
            const environments = await this.condaService.getCondaEnvironments(true);
            if (Array.isArray(environments) && environments.length > 0) {
                interpreters
                    .forEach(interpreter => {
                    const environment = environments.find(item => this.fileSystem.arePathsSame(item.path, interpreter.envPath));
                    if (environment) {
                        interpreter.envName = environment.name;
                    }
                });
            }
            return interpreters;
        }
        catch (err) {
            this.logger.logError('Python Extension (getEnvironmentsFromFile.readFile):', err);
            // Ignore errors in reading the file.
            return [];
        }
    }
    /**
     * Return the interpreter info for the given anaconda environment.
     */
    async getInterpreterDetails(environmentPath) {
        const interpreter = this.condaService.getInterpreterPath(environmentPath);
        if (!interpreter || !await this.fileSystem.fileExists(interpreter)) {
            return;
        }
        const details = await this.helperService.getInterpreterInformation(interpreter);
        if (!details) {
            return;
        }
        const envName = details.envName ? details.envName : path.basename(environmentPath);
        this._hasInterpreters.resolve(true);
        return Object.assign({}, details, { path: interpreter, companyDisplayName: conda_1.AnacondaCompanyName, type: contracts_1.InterpreterType.Conda, envPath: environmentPath, envName });
    }
};
CondaEnvFileService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(1, inversify_1.inject(contracts_1.ICondaService)),
    __param(2, inversify_1.inject(types_1.IFileSystem)),
    __param(3, inversify_1.inject(types_3.IServiceContainer)),
    __param(4, inversify_1.inject(types_2.ILogger))
], CondaEnvFileService);
exports.CondaEnvFileService = CondaEnvFileService;


/***/ }),
/* 797 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-any
const inversify_1 = __webpack_require__(3);
const md5_1 = __importDefault(__webpack_require__(196));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(75);
const async_1 = __webpack_require__(150);
const function_1 = __webpack_require__(80);
let CacheableLocatorService = class CacheableLocatorService {
    constructor(name, serviceContainer, cachePerWorkspace = false) {
        this.name = name;
        this.serviceContainer = serviceContainer;
        this.cachePerWorkspace = cachePerWorkspace;
        this.promisesPerResource = new Map();
        this.handlersAddedToResource = new Set();
        this.locating = new coc_nvim_1.Emitter();
        this._hasInterpreters = async_1.createDeferred();
        this.cacheKeyPrefix = `INTERPRETERS_CACHE_v3_${name}`;
    }
    get onLocating() {
        return this.locating.event;
    }
    get hasInterpreters() {
        return this._hasInterpreters.promise;
    }
    async getInterpreters(resource, ignoreCache) {
        const cacheKey = this.getCacheKey(resource);
        let deferred = this.promisesPerResource.get(cacheKey);
        if (!deferred || ignoreCache) {
            deferred = async_1.createDeferred();
            this.promisesPerResource.set(cacheKey, deferred);
            this.addHandlersForInterpreterWatchers(cacheKey, resource)
                .catch(function_1.emptyFn);
            const promise = this.getInterpretersImplementation(resource)
                .then(async (items) => {
                await this.cacheInterpreters(items, resource);
                logger_1.traceVerbose(`Interpreters returned by ${this.name} are of count ${Array.isArray(items) ? items.length : 0}`);
                deferred.resolve(items);
            })
                .catch(ex => deferred.reject(ex));
            this.locating.fire(deferred.promise);
        }
        deferred.promise
            .then(items => this._hasInterpreters.resolve(items.length > 0))
            .catch(_ => this._hasInterpreters.resolve(false));
        if (deferred.completed) {
            return deferred.promise;
        }
        const cachedInterpreters = ignoreCache ? undefined : this.getCachedInterpreters(resource);
        return Array.isArray(cachedInterpreters) ? cachedInterpreters : deferred.promise;
    }
    async addHandlersForInterpreterWatchers(cacheKey, resource) {
        if (this.handlersAddedToResource.has(cacheKey)) {
            return;
        }
        this.handlersAddedToResource.add(cacheKey);
        const watchers = await this.getInterpreterWatchers(resource);
        const disposableRegisry = this.serviceContainer.get(types_2.IDisposableRegistry);
        watchers.forEach(watcher => {
            watcher.onDidCreate(() => {
                logger_1.Logger.verbose(`Interpreter Watcher change handler for ${this.cacheKeyPrefix}`);
                this.promisesPerResource.delete(cacheKey);
                this.getInterpreters(resource).catch(function_1.emptyFn);
            }, this, disposableRegisry);
        });
    }
    async getInterpreterWatchers(_resource) {
        return [];
    }
    createPersistenceStore(resource) {
        const cacheKey = this.getCacheKey(resource);
        const persistentFactory = this.serviceContainer.get(types_2.IPersistentStateFactory);
        if (this.cachePerWorkspace) {
            return persistentFactory.createWorkspacePersistentState(cacheKey, undefined);
        }
        else {
            return persistentFactory.createGlobalPersistentState(cacheKey, undefined);
        }
    }
    getCachedInterpreters(resource) {
        const persistence = this.createPersistenceStore(resource);
        if (!Array.isArray(persistence.value)) {
            return;
        }
        return persistence.value.map(item => {
            return Object.assign({}, item, { cachedEntry: true });
        });
    }
    async cacheInterpreters(interpreters, resource) {
        const persistence = this.createPersistenceStore(resource);
        await persistence.updateValue(interpreters);
    }
    getCacheKey(resource) {
        if (!resource || !this.cachePerWorkspace) {
            return this.cacheKeyPrefix;
        }
        // Ensure we have separate caches per workspace where necessary.Î
        const workspaceService = this.serviceContainer.get(types_1.IWorkspaceService);
        if (!Array.isArray(workspaceService.workspaceFolders)) {
            return this.cacheKeyPrefix;
        }
        const workspace = workspaceService.getWorkspaceFolder(resource);
        return workspace ? `${this.cacheKeyPrefix}:${md5_1.default(coc_nvim_1.Uri.parse(workspace.uri).fsPath)}` : this.cacheKeyPrefix;
    }
};
CacheableLocatorService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.unmanaged()),
    __param(1, inversify_1.unmanaged()),
    __param(2, inversify_1.unmanaged())
], CacheableLocatorService);
exports.CacheableLocatorService = CacheableLocatorService;


/***/ }),
/* 798 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable-next-line:variable-name
exports.AnacondaCompanyNames = ['Anaconda, Inc.', 'Continuum Analytics, Inc.'];
// tslint:disable-next-line:variable-name
exports.AnacondaCompanyName = 'Anaconda, Inc.';
// tslint:disable-next-line:variable-name
exports.AnacondaDisplayName = 'Anaconda';
// tslint:disable-next-line:variable-name
exports.AnacondaIdentfiers = ['Anaconda', 'Conda', 'Continuum'];


/***/ }),
/* 799 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const types_3 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const cacheableLocatorService_1 = __webpack_require__(797);
const conda_1 = __webpack_require__(798);
/**
 * Locates conda env interpreters based on the conda service's info.
 */
let CondaEnvService = class CondaEnvService extends cacheableLocatorService_1.CacheableLocatorService {
    constructor(condaService, helper, logger, serviceContainer, fileSystem) {
        super('CondaEnvService', serviceContainer);
        this.condaService = condaService;
        this.helper = helper;
        this.logger = logger;
        this.fileSystem = fileSystem;
    }
    /**
     * Release any held resources.
     *
     * Called by VS Code to indicate it is done with the resource.
     */
    // tslint:disable-next-line:no-empty
    dispose() { }
    /**
     * Return the located interpreters.
     *
     * This is used by CacheableLocatorService.getInterpreters().
     */
    getInterpretersImplementation(_resource) {
        return this.getSuggestionsFromConda();
    }
    /**
     * Return the list of interpreters for all the conda envs.
     */
    async getSuggestionsFromConda() {
        try {
            const info = await this.condaService.getCondaInfo();
            if (!info) {
                return [];
            }
            const interpreters = await parseCondaInfo(info, this.condaService, this.fileSystem, this.helper);
            this._hasInterpreters.resolve(interpreters.length > 0);
            const environments = await this.condaService.getCondaEnvironments(true);
            if (Array.isArray(environments) && environments.length > 0) {
                interpreters
                    .forEach(interpreter => {
                    const environment = environments.find(item => this.fileSystem.arePathsSame(item.path, interpreter.envPath));
                    if (environment) {
                        interpreter.envName = environment.name;
                    }
                });
            }
            return interpreters;
        }
        catch (ex) {
            // Failed because either:
            //   1. conda is not installed.
            //   2. `conda info --json` has changed signature.
            //   3. output of `conda info --json` has changed in structure.
            // In all cases, we can't offer conda pythonPath suggestions.
            this.logger.logError('Failed to get Suggestions from conda', ex);
            return [];
        }
    }
};
CondaEnvService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(contracts_1.ICondaService)),
    __param(1, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(2, inversify_1.inject(types_2.ILogger)),
    __param(3, inversify_1.inject(types_3.IServiceContainer)),
    __param(4, inversify_1.inject(types_1.IFileSystem))
], CondaEnvService);
exports.CondaEnvService = CondaEnvService;
/**
 * Return the list of conda env interpreters.
 */
async function parseCondaInfo(info, condaService, fileSystem, helper) {
    // The root of the conda environment is itself a Python interpreter
    // envs reported as e.g.: /Users/bob/miniconda3/envs/someEnv.
    const envs = Array.isArray(info.envs) ? info.envs : [];
    if (info.default_prefix && info.default_prefix.length > 0) {
        envs.push(info.default_prefix);
    }
    const promises = envs
        .map(async (envPath) => {
        const pythonPath = condaService.getInterpreterPath(envPath);
        if (!(await fileSystem.fileExists(pythonPath))) {
            return;
        }
        const details = await helper.getInterpreterInformation(pythonPath);
        if (!details) {
            return;
        }
        return Object.assign({}, details, { path: pythonPath, companyDisplayName: conda_1.AnacondaCompanyName, type: contracts_1.InterpreterType.Conda, envPath });
    });
    return Promise.all(promises)
        .then(interpreters => interpreters.filter(interpreter => interpreter !== null && interpreter !== undefined))
        // tslint:disable-next-line:no-non-null-assertion
        .then(interpreters => interpreters.map(interpreter => interpreter));
}
exports.parseCondaInfo = parseCondaInfo;


/***/ }),
/* 800 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const semver_1 = __webpack_require__(265);
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(148);
const types_4 = __webpack_require__(75);
const contracts_1 = __webpack_require__(90);
const condaHelper_1 = __webpack_require__(801);
// tslint:disable-next-line:no-require-imports no-var-requires
const untildify = __webpack_require__(734);
// This glob pattern will match all of the following:
// ~/anaconda/bin/conda, ~/anaconda3/bin/conda, ~/miniconda/bin/conda, ~/miniconda3/bin/conda
// /usr/share/anaconda/bin/conda, /usr/share/anaconda3/bin/conda, /usr/share/miniconda/bin/conda, /usr/share/miniconda3/bin/conda
const condaGlobPathsForLinuxMac = [
    '/opt/*conda*/bin/conda',
    '/usr/share/*conda*/bin/conda',
    untildify('~/*conda*/bin/conda')
];
exports.CondaLocationsGlob = `{${condaGlobPathsForLinuxMac.join(',')}}`;
// ...and for windows, the known default install locations:
const condaGlobPathsForWindows = [
    '/ProgramData/[Mm]iniconda*/Scripts/conda.exe',
    '/ProgramData/[Aa]naconda*/Scripts/conda.exe',
    untildify('~/[Mm]iniconda*/Scripts/conda.exe'),
    untildify('~/[Aa]naconda*/Scripts/conda.exe'),
    untildify('~/AppData/Local/Continuum/[Mm]iniconda*/Scripts/conda.exe'),
    untildify('~/AppData/Local/Continuum/[Aa]naconda*/Scripts/conda.exe')
];
// format for glob processing:
exports.CondaLocationsGlobWin = `{${condaGlobPathsForWindows.join(',')}}`;
exports.CondaGetEnvironmentPrefix = 'Outputting Environment Now...';
/**
 * A wrapper around a conda installation.
 */
let CondaService = class CondaService {
    constructor(processServiceFactory, platform, fileSystem, persistentStateFactory, configService, logger, disposableRegistry, workspaceService, registryLookupForConda) {
        this.processServiceFactory = processServiceFactory;
        this.platform = platform;
        this.fileSystem = fileSystem;
        this.persistentStateFactory = persistentStateFactory;
        this.configService = configService;
        this.logger = logger;
        this.disposableRegistry = disposableRegistry;
        this.workspaceService = workspaceService;
        this.registryLookupForConda = registryLookupForConda;
        this.condaHelper = new condaHelper_1.CondaHelper();
        this.addCondaPathChangedHandler();
    }
    get condaEnvironmentsFile() {
        const homeDir = this.platform.isWindows ? process.env.USERPROFILE : (process.env.HOME || process.env.HOMEPATH);
        return homeDir ? path.join(homeDir, '.conda', 'environments.txt') : undefined;
    }
    /**
     * Release any held resources.
     *
     * Called by VS Code to indicate it is done with the resource.
     */
    // tslint:disable-next-line:no-empty
    dispose() { }
    /**
     * Return the path to the "conda file".
     */
    async getCondaFile() {
        if (!this.condaFile) {
            this.condaFile = this.getCondaFileImpl();
        }
        // tslint:disable-next-line:no-unnecessary-local-variable
        const condaFile = await this.condaFile;
        return condaFile;
    }
    /**
     * Is there a conda install to use?
     */
    async isCondaAvailable() {
        if (typeof this.isAvailable === 'boolean') {
            return this.isAvailable;
        }
        return this.getCondaVersion()
            .then(version => this.isAvailable = version !== undefined)
            .catch(() => this.isAvailable = false);
    }
    /**
     * Return the conda version.
     */
    async getCondaVersion() {
        const processService = await this.processServiceFactory.create();
        const info = await this.getCondaInfo().catch(() => undefined);
        let versionString;
        if (info && info.conda_version) {
            versionString = info.conda_version;
        }
        else {
            const stdOut = await this.getCondaFile()
                .then(condaFile => processService.exec(condaFile, ['--version'], {}))
                .then(result => result.stdout.trim())
                .catch(() => undefined);
            versionString = (stdOut && stdOut.startsWith('conda ')) ? stdOut.substring('conda '.length).trim() : stdOut;
        }
        if (!versionString) {
            return;
        }
        const version = semver_1.parse(versionString, true);
        if (version) {
            return version;
        }
        // Use a bogus version, at least to indicate the fact that a version was returned.
        logger_1.Logger.warn(`Unable to parse Version of Conda, ${versionString}`);
        return new semver_1.SemVer('0.0.1');
    }
    /**
     * Can the shell find conda (to run it)?
     */
    async isCondaInCurrentPath() {
        const processService = await this.processServiceFactory.create();
        return processService.exec('conda', ['--version'])
            .then(output => output.stdout.length > 0)
            .catch(() => false);
    }
    /**
     * Return the info reported by the conda install.
     */
    async getCondaInfo() {
        try {
            const condaFile = await this.getCondaFile();
            const processService = await this.processServiceFactory.create();
            const condaInfo = await processService.exec(condaFile, ['info', '--json']).then(output => output.stdout);
            return JSON.parse(condaInfo);
        }
        catch (ex) {
            // Failed because either:
            //   1. conda is not installed.
            //   2. `conda info --json` has changed signature.
        }
    }
    /**
     * Determines whether a python interpreter is a conda environment or not.
     * The check is done by simply looking for the 'conda-meta' directory.
     * @param {string} interpreterPath
     * @returns {Promise<boolean>}
     * @memberof CondaService
     */
    async isCondaEnvironment(interpreterPath) {
        const dir = path.dirname(interpreterPath);
        const isWindows = this.platform.isWindows;
        const condaMetaDirectory = isWindows ? path.join(dir, 'conda-meta') : path.join(dir, '..', 'conda-meta');
        return this.fileSystem.directoryExists(condaMetaDirectory);
    }
    /**
     * Return (env name, interpreter filename) for the interpreter.
     */
    async getCondaEnvironment(interpreterPath) {
        const isCondaEnv = await this.isCondaEnvironment(interpreterPath);
        if (!isCondaEnv) {
            return;
        }
        let environments = await this.getCondaEnvironments(false);
        const dir = path.dirname(interpreterPath);
        // If interpreter is in bin or Scripts, then go up one level
        const subDirName = path.basename(dir);
        const goUpOnLevel = ['BIN', 'SCRIPTS'].indexOf(subDirName.toUpperCase()) !== -1;
        const interpreterPathToMatch = goUpOnLevel ? path.join(dir, '..') : dir;
        // From the list of conda environments find this dir.
        let matchingEnvs = Array.isArray(environments) ? environments.filter(item => this.fileSystem.arePathsSame(item.path, interpreterPathToMatch)) : [];
        if (matchingEnvs.length === 0) {
            environments = await this.getCondaEnvironments(true);
            matchingEnvs = Array.isArray(environments) ? environments.filter(item => this.fileSystem.arePathsSame(item.path, interpreterPathToMatch)) : [];
        }
        if (matchingEnvs.length > 0) {
            return { name: matchingEnvs[0].name, path: interpreterPathToMatch };
        }
        // If still not available, then the user created the env after starting vs code.
        // The only solution is to get the user to re-start vscode.
    }
    /**
     * Return the list of conda envs (by name, interpreter filename).
     */
    async getCondaEnvironments(ignoreCache) {
        // Global cache.
        // tslint:disable-next-line:no-any
        const globalPersistence = this.persistentStateFactory.createGlobalPersistentState('CONDA_ENVIRONMENTS', undefined);
        if (!ignoreCache && globalPersistence.value) {
            return globalPersistence.value.data;
        }
        try {
            const condaFile = await this.getCondaFile();
            const processService = await this.processServiceFactory.create();
            const envInfo = await processService.exec(condaFile, ['env', 'list']).then(output => output.stdout);
            const environments = this.condaHelper.parseCondaEnvironmentNames(envInfo);
            await globalPersistence.updateValue({ data: environments });
            return environments;
        }
        catch (ex) {
            await globalPersistence.updateValue({ data: undefined });
            // Failed because either:
            //   1. conda is not installed.
            //   2. `conda env list has changed signature.
            this.logger.logInformation('Failed to get conda environment list from conda', ex);
        }
    }
    /**
     * Return the interpreter's filename for the given environment.
     */
    getInterpreterPath(condaEnvironmentPath) {
        // where to find the Python binary within a conda env.
        const relativePath = this.platform.isWindows ? 'python.exe' : path.join('bin', 'python');
        return path.join(condaEnvironmentPath, relativePath);
    }
    /**
     * Get the conda exe from the path to an interpreter's python. This might be different than the globally registered conda.exe
     */
    async getCondaFileFromInterpreter(interpreterPath, envName) {
        const condaExe = this.platform.isWindows ? 'conda.exe' : 'conda';
        const scriptsDir = this.platform.isWindows ? 'Scripts' : 'bin';
        const interpreterDir = interpreterPath ? path.dirname(interpreterPath) : '';
        let condaPath = path.join(interpreterDir, condaExe);
        if (await this.fileSystem.fileExists(condaPath)) {
            return condaPath;
        }
        // Conda path has changed locations, check the new location in the scripts directory after checking
        // the old location
        condaPath = path.join(interpreterDir, scriptsDir, condaExe);
        if (await this.fileSystem.fileExists(condaPath)) {
            return condaPath;
        }
        // Might be in a situation where this is not the default python env, but rather one running
        // from a virtualenv
        const envsPos = envName ? interpreterDir.indexOf(path.join('envs', envName)) : -1;
        if (envsPos > 0) {
            // This should be where the original python was run from when the environment was created.
            const originalPath = interpreterDir.slice(0, envsPos);
            condaPath = path.join(originalPath, condaExe);
            if (await this.fileSystem.fileExists(condaPath)) {
                return condaPath;
            }
            // Also look in the scripts directory here too.
            condaPath = path.join(originalPath, scriptsDir, condaExe);
            if (await this.fileSystem.fileExists(condaPath)) {
                return condaPath;
            }
        }
    }
    /**
     * Is the given interpreter from conda?
     */
    detectCondaEnvironment(interpreter) {
        return interpreter.type === contracts_1.InterpreterType.Conda ||
            (interpreter.displayName ? interpreter.displayName : '').toUpperCase().indexOf('ANACONDA') >= 0 ||
            (interpreter.companyDisplayName ? interpreter.companyDisplayName : '').toUpperCase().indexOf('ANACONDA') >= 0 ||
            (interpreter.companyDisplayName ? interpreter.companyDisplayName : '').toUpperCase().indexOf('CONTINUUM') >= 0;
    }
    /**
     * Return the highest Python version from the given list.
     */
    getLatestVersion(interpreters) {
        const sortedInterpreters = interpreters.slice();
        // tslint:disable-next-line:no-non-null-assertion
        sortedInterpreters.sort((a, b) => (a.version && b.version) ? semver_1.compare(a.version.raw, b.version.raw) : 0);
        if (sortedInterpreters.length > 0) {
            return sortedInterpreters[sortedInterpreters.length - 1];
        }
    }
    addCondaPathChangedHandler() {
        const disposable = this.workspaceService.onDidChangeConfiguration(this.onDidChangeConfiguration.bind(this));
        this.disposableRegistry.push(disposable);
    }
    async onDidChangeConfiguration(event) {
        const workspacesUris = this.workspaceService.hasWorkspaceFolders ? this.workspaceService.workspaceFolders.map(workspace => workspace.uri) : [undefined];
        if (workspacesUris.findIndex(uri => event.affectsConfiguration('python.condaPath', uri)) === -1) {
            return;
        }
        this.condaFile = undefined;
    }
    /**
     * Return the path to the "conda file", if there is one (in known locations).
     */
    async getCondaFileImpl() {
        const settings = this.configService.getSettings();
        const setting = settings.condaPath;
        if (setting && setting !== '') {
            return setting;
        }
        const isAvailable = await this.isCondaInCurrentPath();
        if (isAvailable) {
            return 'conda';
        }
        if (this.platform.isWindows && this.registryLookupForConda) {
            const interpreters = await this.registryLookupForConda.getInterpreters();
            const condaInterpreters = interpreters.filter(this.detectCondaEnvironment);
            const condaInterpreter = this.getLatestVersion(condaInterpreters);
            if (condaInterpreter) {
                const interpreterPath = await this.getCondaFileFromInterpreter(condaInterpreter.path, condaInterpreter.envName);
                if (interpreterPath) {
                    return interpreterPath;
                }
            }
        }
        return this.getCondaFileFromKnownLocations();
    }
    /**
     * Return the path to the "conda file", if there is one (in known locations).
     * Note: For now we simply return the first one found.
     */
    async getCondaFileFromKnownLocations() {
        const globPattern = this.platform.isWindows ? exports.CondaLocationsGlobWin : exports.CondaLocationsGlob;
        const condaFiles = await this.fileSystem.search(globPattern)
            .catch(failReason => {
            logger_1.Logger.warn('Default conda location search failed.', `Searching for default install locations for conda results in error: ${failReason}`);
            return [];
        });
        const validCondaFiles = condaFiles.filter(condaPath => condaPath.length > 0);
        return validCondaFiles.length === 0 ? 'conda' : validCondaFiles[0];
    }
};
CondaService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.IProcessServiceFactory)),
    __param(1, inversify_1.inject(types_2.IPlatformService)),
    __param(2, inversify_1.inject(types_2.IFileSystem)),
    __param(3, inversify_1.inject(types_4.IPersistentStateFactory)),
    __param(4, inversify_1.inject(types_4.IConfigurationService)),
    __param(5, inversify_1.inject(types_4.ILogger)),
    __param(6, inversify_1.inject(types_4.IDisposableRegistry)),
    __param(7, inversify_1.inject(types_1.IWorkspaceService)),
    __param(8, inversify_1.inject(contracts_1.IInterpreterLocatorService)), __param(8, inversify_1.named(contracts_1.WINDOWS_REGISTRY_SERVICE)), __param(8, inversify_1.optional())
], CondaService);
exports.CondaService = CondaService;


/***/ }),
/* 801 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(__webpack_require__(55));
const conda_1 = __webpack_require__(798);
const string_1 = __webpack_require__(149);
/**
 * Helpers for conda.
 */
class CondaHelper {
    /**
     * Return the string to display for the conda interpreter.
     */
    getDisplayName(condaInfo = {}) {
        // Samples.
        // "3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]".
        // "3.6.2 |Anaconda, Inc.| (default, Sep 21 2017, 18:29:43) \n[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]".
        const sysVersion = condaInfo['sys.version'];
        if (!sysVersion) {
            return conda_1.AnacondaDisplayName;
        }
        // Take the second part of the sys.version.
        const sysVersionParts = sysVersion.split('|', 2);
        if (sysVersionParts.length === 2) {
            const displayName = sysVersionParts[1].trim();
            if (this.isIdentifiableAsAnaconda(displayName)) {
                return displayName;
            }
            else {
                return `${displayName} : ${conda_1.AnacondaDisplayName}`;
            }
        }
        else {
            return conda_1.AnacondaDisplayName;
        }
    }
    /**
     * Parses output returned by the command `conda env list`.
     * Sample output is as follows:
     * # conda environments:
     * #
     * base                  *  /Users/donjayamanne/anaconda3
     * one                      /Users/donjayamanne/anaconda3/envs/one
     * one two                  /Users/donjayamanne/anaconda3/envs/one two
     * py27                     /Users/donjayamanne/anaconda3/envs/py27
     * py36                     /Users/donjayamanne/anaconda3/envs/py36
     * three                    /Users/donjayamanne/anaconda3/envs/three
     * @param {string} condaEnvironmentList
     * @param {CondaInfo} condaInfo
     * @returns {{ name: string, path: string }[] | undefined}
     * @memberof CondaHelper
     */
    parseCondaEnvironmentNames(condaEnvironmentList) {
        const environments = string_1.splitLines(condaEnvironmentList, { trim: false, removeEmptyEntries: false });
        const baseEnvironmentLine = environments.filter(line => line.indexOf('*') > 0);
        if (baseEnvironmentLine.length === 0) {
            return;
        }
        const pathStartIndex = baseEnvironmentLine[0].indexOf(baseEnvironmentLine[0].split('*')[1].trim());
        const envs = [];
        environments.forEach(line => {
            if (line.length <= pathStartIndex) {
                return;
            }
            let name = line.substring(0, pathStartIndex).trim();
            if (name.endsWith('*')) {
                name = name.substring(0, name.length - 1).trim();
            }
            const envPath = line.substring(pathStartIndex).trim();
            name = name.length === 0 ? path_1.default.basename(envPath) : name;
            if (name.length > 0 && envPath.length > 0) {
                envs.push({ name, path: envPath });
            }
        });
        return envs;
    }
    /**
     * Does the given string match a known Anaconda identifier.
     */
    isIdentifiableAsAnaconda(value) {
        const valueToSearch = value.toLowerCase();
        return conda_1.AnacondaIdentfiers.some(item => valueToSearch.indexOf(item.toLowerCase()) !== -1);
    }
}
exports.CondaHelper = CondaHelper;


/***/ }),
/* 802 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-require-imports no-var-requires underscore-consistent-invocation no-unnecessary-callback-wrapper
const inversify_1 = __webpack_require__(3);
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(148);
const types_3 = __webpack_require__(75);
const platform_1 = __webpack_require__(627);
const types_4 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const types_5 = __webpack_require__(793);
const cacheableLocatorService_1 = __webpack_require__(797);
/**
 * Locates the currently configured Python interpreter.
 *
 * If no interpreter is configured then it falls back to the system
 * Python (3 then 2).
 */
let CurrentPathService = class CurrentPathService extends cacheableLocatorService_1.CacheableLocatorService {
    constructor(helper, processServiceFactory, pythonCommandProvider, serviceContainer) {
        super('CurrentPathService', serviceContainer);
        this.helper = helper;
        this.processServiceFactory = processServiceFactory;
        this.pythonCommandProvider = pythonCommandProvider;
        this.fs = serviceContainer.get(types_1.IFileSystem);
    }
    /**
     * Release any held resources.
     *
     * Called by VS Code to indicate it is done with the resource.
     */
    // tslint:disable-next-line:no-empty
    dispose() { }
    /**
     * Return the located interpreters.
     *
     * This is used by CacheableLocatorService.getInterpreters().
     */
    getInterpretersImplementation(resource) {
        return this.suggestionsFromKnownPaths(resource);
    }
    /**
     * Return the located interpreters.
     */
    async suggestionsFromKnownPaths(resource) {
        const configSettings = this.serviceContainer.get(types_3.IConfigurationService).getSettings(resource);
        const pathsToCheck = [...this.pythonCommandProvider.getCommands(), { command: configSettings.pythonPath }];
        const pythonPaths = Promise.all(pathsToCheck.map(item => this.getInterpreter(item)));
        return pythonPaths
            .then(interpreters => interpreters.filter(item => item.length > 0))
            // tslint:disable-next-line:promise-function-async
            .then(interpreters => Promise.all(interpreters.map(interpreter => this.getInterpreterDetails(interpreter))))
            .then(interpreters => interpreters.filter(item => !!item).map(item => item));
    }
    /**
     * Return the information about the identified interpreter binary.
     */
    async getInterpreterDetails(pythonPath) {
        return this.helper.getInterpreterInformation(pythonPath)
            .then(details => {
            if (!details) {
                return;
            }
            this._hasInterpreters.resolve(true);
            return Object.assign({}, details, { path: pythonPath, type: details.type ? details.type : contracts_1.InterpreterType.Unknown });
        });
    }
    /**
     * Return the path to the interpreter (or the default if not found).
     */
    async getInterpreter(options) {
        try {
            const processService = await this.processServiceFactory.create();
            const args = Array.isArray(options.args) ? options.args : [];
            return processService.exec(options.command, args.concat(['-c', 'import sys;print(sys.executable)']), {})
                .then(output => output.stdout.trim())
                .then(async (value) => {
                if (value.length > 0 && await this.fs.fileExists(value)) {
                    return value;
                }
                logger_1.traceError(`Detection of Python Interpreter for Command ${options.command} and args ${args.join(' ')} failed as file ${value} does not exist`);
                return '';
            })
                .catch(_ex => {
                logger_1.traceInfo(`Detection of Python Interpreter for Command ${options.command} and args ${args.join(' ')} failed`);
                return '';
            }); // Ignore exceptions in getting the executable.
        }
        catch (ex) {
            logger_1.traceError(`Detection of Python Interpreter for Command ${options.command} failed`, ex);
            return ''; // Ignore exceptions in getting the executable.
        }
    }
};
CurrentPathService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(1, inversify_1.inject(types_2.IProcessServiceFactory)),
    __param(2, inversify_1.inject(types_5.IPythonInPathCommandProvider)),
    __param(3, inversify_1.inject(types_4.IServiceContainer))
], CurrentPathService);
exports.CurrentPathService = CurrentPathService;
let PythonInPathCommandProvider = class PythonInPathCommandProvider {
    constructor(platform) {
        this.platform = platform;
    }
    getCommands() {
        const paths = ['python3.7', 'python3.6', 'python3', 'python2', 'python']
            .map(item => ({ command: item }));
        if (this.platform.osType !== platform_1.OSType.Windows) {
            return paths;
        }
        const versions = ['3.7', '3.6', '3', '2'];
        return paths.concat(versions.map(version => {
            return { command: 'py', args: [`-${version}`] };
        }));
    }
};
PythonInPathCommandProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IPlatformService))
], PythonInPathCommandProvider);
exports.PythonInPathCommandProvider = PythonInPathCommandProvider;


/***/ }),
/* 803 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const os = __importStar(__webpack_require__(56));
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(75);
const types_2 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const types_3 = __webpack_require__(790);
const baseVirtualEnvService_1 = __webpack_require__(804);
let GlobalVirtualEnvService = class GlobalVirtualEnvService extends baseVirtualEnvService_1.BaseVirtualEnvService {
    constructor(globalVirtualEnvPathProvider, serviceContainer) {
        super(globalVirtualEnvPathProvider, serviceContainer, 'VirtualEnvService');
    }
};
GlobalVirtualEnvService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(contracts_1.IVirtualEnvironmentsSearchPathProvider)), __param(0, inversify_1.named('global')),
    __param(1, inversify_1.inject(types_2.IServiceContainer))
], GlobalVirtualEnvService);
exports.GlobalVirtualEnvService = GlobalVirtualEnvService;
let GlobalVirtualEnvironmentsSearchPathProvider = class GlobalVirtualEnvironmentsSearchPathProvider {
    constructor(serviceContainer) {
        this.config = serviceContainer.get(types_1.IConfigurationService);
        this.virtualEnvMgr = serviceContainer.get(types_3.IVirtualEnvironmentManager);
    }
    async getSearchPaths(resource) {
        const homedir = os.homedir();
        const venvFolders = this.config.getSettings(resource).venvFolders;
        const folders = venvFolders.map(item => path.join(homedir, item));
        // tslint:disable-next-line:no-string-literal
        const pyenvRoot = await this.virtualEnvMgr.getPyEnvRoot(resource);
        if (pyenvRoot) {
            folders.push(pyenvRoot);
            folders.push(path.join(pyenvRoot, 'versions'));
        }
        return folders;
    }
};
GlobalVirtualEnvironmentsSearchPathProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IServiceContainer))
], GlobalVirtualEnvironmentsSearchPathProvider);
exports.GlobalVirtualEnvironmentsSearchPathProvider = GlobalVirtualEnvironmentsSearchPathProvider;


/***/ }),
/* 804 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// tslint:disable:no-unnecessary-callback-wrapper no-require-imports no-var-requires
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const logger_1 = __webpack_require__(86);
const types_1 = __webpack_require__(205);
const contracts_1 = __webpack_require__(90);
const types_2 = __webpack_require__(790);
const helpers_1 = __webpack_require__(792);
const cacheableLocatorService_1 = __webpack_require__(797);
const flatten = __webpack_require__(217);
let BaseVirtualEnvService = class BaseVirtualEnvService extends cacheableLocatorService_1.CacheableLocatorService {
    constructor(searchPathsProvider, serviceContainer, name, cachePerWorkspace = false) {
        super(name, serviceContainer, cachePerWorkspace);
        this.searchPathsProvider = searchPathsProvider;
        this.virtualEnvMgr = serviceContainer.get(types_2.IVirtualEnvironmentManager);
        this.helper = serviceContainer.get(contracts_1.IInterpreterHelper);
        this.fileSystem = serviceContainer.get(types_1.IFileSystem);
    }
    // tslint:disable-next-line:no-empty
    dispose() { }
    getInterpretersImplementation(resource) {
        return this.suggestionsFromKnownVenvs(resource);
    }
    async suggestionsFromKnownVenvs(resource) {
        const searchPaths = await this.searchPathsProvider.getSearchPaths(resource);
        return Promise.all(searchPaths.map(dir => this.lookForInterpretersInVenvs(dir, resource)))
            .then(listOfInterpreters => flatten(listOfInterpreters));
    }
    async lookForInterpretersInVenvs(pathToCheck, resource) {
        return this.fileSystem.getSubDirectories(pathToCheck)
            .then(subDirs => Promise.all(this.getProspectiveDirectoriesForLookup(subDirs)))
            .then(dirs => dirs.filter(dir => dir.length > 0))
            .then(dirs => Promise.all(dirs.map(helpers_1.lookForInterpretersInDirectory)))
            .then(pathsWithInterpreters => flatten(pathsWithInterpreters))
            .then(interpreters => Promise.all(interpreters.map(interpreter => this.getVirtualEnvDetails(interpreter, resource))))
            .then(interpreters => interpreters.filter(interpreter => !!interpreter).map(interpreter => interpreter))
            .catch(err => {
            logger_1.traceError('Python Extension (lookForInterpretersInVenvs):', err);
            // Ignore exceptions.
            return [];
        });
    }
    getProspectiveDirectoriesForLookup(subDirs) {
        const platform = this.serviceContainer.get(types_1.IPlatformService);
        const dirToLookFor = platform.virtualEnvBinName;
        return subDirs.map(subDir => this.fileSystem.getSubDirectories(subDir)
            .then(dirs => {
            const scriptOrBinDirs = dirs.filter(dir => {
                const folderName = path.basename(dir);
                return this.fileSystem.arePathsSame(folderName, dirToLookFor);
            });
            return scriptOrBinDirs.length === 1 ? scriptOrBinDirs[0] : '';
        })
            .catch(err => {
            // tslint:disable-next-line: no-console
            console.error('Python Extension (getProspectiveDirectoriesForLookup):', err);
            // Ignore exceptions.
            return '';
        }));
    }
    async getVirtualEnvDetails(interpreter, resource) {
        return Promise.all([
            this.helper.getInterpreterInformation(interpreter),
            this.virtualEnvMgr.getEnvironmentName(interpreter, resource),
            this.virtualEnvMgr.getEnvironmentType(interpreter, resource)
        ])
            .then(([details, virtualEnvName, type]) => {
            if (!details) {
                return;
            }
            this._hasInterpreters.resolve(true);
            return Object.assign({}, details, { envName: virtualEnvName, type });
        });
    }
};
BaseVirtualEnvService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.unmanaged()),
    __param(1, inversify_1.unmanaged()),
    __param(2, inversify_1.unmanaged()),
    __param(3, inversify_1.unmanaged())
], BaseVirtualEnvService);
exports.BaseVirtualEnvService = BaseVirtualEnvService;


/***/ }),
/* 805 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const async_1 = __webpack_require__(150);
const types_2 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
let InterpreterWatcherBuilder = class InterpreterWatcherBuilder {
    /**
     * Creates an instance of InterpreterWatcherBuilder.
     * Inject the DI container, as we need to get a new instance of IInterpreterWatcher to build it.
     * @param {IWorkspaceService} workspaceService
     * @param {IServiceContainer} serviceContainer
     * @memberof InterpreterWatcherBuilder
     */
    constructor(workspaceService, serviceContainer) {
        this.workspaceService = workspaceService;
        this.serviceContainer = serviceContainer;
        this.watchersByResource = new Map();
    }
    async getWorkspaceVirtualEnvInterpreterWatcher(resource) {
        const key = this.getResourceKey(resource);
        if (!this.watchersByResource.has(key)) {
            const deferred = async_1.createDeferred();
            this.watchersByResource.set(key, deferred.promise);
            const watcher = this.serviceContainer.get(contracts_1.IInterpreterWatcher, contracts_1.WORKSPACE_VIRTUAL_ENV_SERVICE);
            await watcher.register(resource);
            deferred.resolve(watcher);
        }
        return this.watchersByResource.get(key);
    }
    getResourceKey(resource) {
        const workspaceFolder = resource ? this.workspaceService.getWorkspaceFolder(resource) : undefined;
        return workspaceFolder ? coc_nvim_1.Uri.parse(workspaceFolder.uri).fsPath : '';
    }
};
__decorate([
    logger_1.traceDecorators.verbose('Build the workspace interpreter watcher')
], InterpreterWatcherBuilder.prototype, "getWorkspaceVirtualEnvInterpreterWatcher", null);
InterpreterWatcherBuilder = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IWorkspaceService)),
    __param(1, inversify_1.inject(types_2.IServiceContainer))
], InterpreterWatcherBuilder);
exports.InterpreterWatcherBuilder = InterpreterWatcherBuilder;


/***/ }),
/* 806 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-require-imports no-var-requires no-unnecessary-callback-wrapper
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const fs_1 = __webpack_require__(225);
const types_3 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const helpers_1 = __webpack_require__(792);
const cacheableLocatorService_1 = __webpack_require__(797);
const flatten = __webpack_require__(217);
/**
 * Locates "known" paths.
 */
let KnownPathsService = class KnownPathsService extends cacheableLocatorService_1.CacheableLocatorService {
    constructor(knownSearchPaths, helper, serviceContainer) {
        super('KnownPathsService', serviceContainer);
        this.knownSearchPaths = knownSearchPaths;
        this.helper = helper;
    }
    /**
     * Release any held resources.
     *
     * Called by VS Code to indicate it is done with the resource.
     */
    // tslint:disable-next-line:no-empty
    dispose() { }
    /**
     * Return the located interpreters.
     *
     * This is used by CacheableLocatorService.getInterpreters().
     */
    getInterpretersImplementation(_resource) {
        return this.suggestionsFromKnownPaths();
    }
    /**
     * Return the located interpreters.
     */
    suggestionsFromKnownPaths() {
        const promises = this.knownSearchPaths.getSearchPaths().map(dir => this.getInterpretersInDirectory(dir));
        return Promise.all(promises)
            .then(listOfInterpreters => flatten(listOfInterpreters))
            .then(interpreters => interpreters.filter(item => item.length > 0))
            .then(interpreters => Promise.all(interpreters.map(interpreter => this.getInterpreterDetails(interpreter))))
            .then(interpreters => interpreters.filter(interpreter => !!interpreter).map(interpreter => interpreter));
    }
    /**
     * Return the information about the identified interpreter binary.
     */
    async getInterpreterDetails(interpreter) {
        const details = await this.helper.getInterpreterInformation(interpreter);
        if (!details) {
            return;
        }
        this._hasInterpreters.resolve(true);
        return Object.assign({}, details, { path: interpreter, type: contracts_1.InterpreterType.Unknown });
    }
    /**
     * Return the interpreters in the given directory.
     */
    getInterpretersInDirectory(dir) {
        return fs_1.fsExistsAsync(dir)
            .then(exists => exists ? helpers_1.lookForInterpretersInDirectory(dir) : Promise.resolve([]));
    }
};
KnownPathsService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(contracts_1.IKnownSearchPathsForInterpreters)),
    __param(1, inversify_1.inject(contracts_1.IInterpreterHelper)),
    __param(2, inversify_1.inject(types_3.IServiceContainer))
], KnownPathsService);
exports.KnownPathsService = KnownPathsService;
let KnownSearchPathsForInterpreters = class KnownSearchPathsForInterpreters {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    /**
     * Return the paths where Python interpreters might be found.
     */
    getSearchPaths() {
        const currentProcess = this.serviceContainer.get(types_2.ICurrentProcess);
        const platformService = this.serviceContainer.get(types_1.IPlatformService);
        const pathUtils = this.serviceContainer.get(types_2.IPathUtils);
        const searchPaths = currentProcess.env[platformService.pathVariableName]
            .split(pathUtils.delimiter)
            .map(p => p.trim())
            .filter(p => p.length > 0);
        if (!platformService.isWindows) {
            ['/usr/local/bin', '/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/sbin']
                .forEach(p => {
                searchPaths.push(p);
                searchPaths.push(path.join(pathUtils.home, p));
            });
            // Add support for paths such as /Users/xxx/anaconda/bin.
            if (process.env.HOME) {
                searchPaths.push(path.join(pathUtils.home, 'anaconda', 'bin'));
                searchPaths.push(path.join(pathUtils.home, 'python', 'bin'));
            }
        }
        return searchPaths;
    }
};
KnownSearchPathsForInterpreters = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.IServiceContainer))
], KnownSearchPathsForInterpreters);
exports.KnownSearchPathsForInterpreters = KnownSearchPathsForInterpreters;


/***/ }),
/* 807 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(148);
const types_4 = __webpack_require__(75);
const types_5 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const types_6 = __webpack_require__(793);
const cacheableLocatorService_1 = __webpack_require__(797);
const pipEnvFileNameVariable = 'PIPENV_PIPFILE';
let PipEnvService = class PipEnvService extends cacheableLocatorService_1.CacheableLocatorService {
    constructor(serviceContainer) {
        super('PipEnvService', serviceContainer, true);
        this.helper = this.serviceContainer.get(contracts_1.IInterpreterHelper);
        this.processServiceFactory = this.serviceContainer.get(types_3.IProcessServiceFactory);
        this.workspace = this.serviceContainer.get(types_1.IWorkspaceService);
        this.fs = this.serviceContainer.get(types_2.IFileSystem);
        this.logger = this.serviceContainer.get(types_4.ILogger);
        this.configService = this.serviceContainer.get(types_4.IConfigurationService);
        this.pipEnvServiceHelper = this.serviceContainer.get(types_6.IPipEnvServiceHelper);
    }
    // tslint:disable-next-line:no-empty
    dispose() { }
    async isRelatedPipEnvironment(dir, pythonPath) {
        // In PipEnv, the name of the cwd is used as a prefix in the virtual env.
        if (pythonPath.indexOf(`${path.sep}${path.basename(dir)}-`) === -1) {
            return false;
        }
        const envName = await this.getInterpreterPathFromPipenv(dir, true);
        return !!envName;
    }
    get executable() {
        return this.configService.getSettings().pipenvPath;
    }
    getInterpretersImplementation(resource) {
        const pipenvCwd = this.getPipenvWorkingDirectory(resource);
        if (!pipenvCwd) {
            return Promise.resolve([]);
        }
        return this.getInterpreterFromPipenv(pipenvCwd)
            .then(item => (item ? [item] : []))
            .catch(() => []);
    }
    async getInterpreterFromPipenv(pipenvCwd) {
        const interpreterPath = await this.getInterpreterPathFromPipenv(pipenvCwd);
        if (!interpreterPath) {
            return;
        }
        const details = await this.helper.getInterpreterInformation(interpreterPath);
        if (!details) {
            return;
        }
        this._hasInterpreters.resolve(true);
        await this.pipEnvServiceHelper.trackWorkspaceFolder(interpreterPath, coc_nvim_1.Uri.file(pipenvCwd));
        return Object.assign({}, details, { path: interpreterPath, type: contracts_1.InterpreterType.Pipenv, pipEnvWorkspaceFolder: pipenvCwd });
    }
    getPipenvWorkingDirectory(resource) {
        // The file is not in a workspace. However, workspace may be opened
        // and file is just a random file opened from elsewhere. In this case
        // we still want to provide interpreter associated with the workspace.
        // Otherwise if user tries and formats the file, we may end up using
        // plain pip module installer to bring in the formatter and it is wrong.
        const wsFolder = resource ? this.workspace.getWorkspaceFolder(resource) : undefined;
        return wsFolder ? coc_nvim_1.Uri.parse(wsFolder.uri).fsPath : this.workspace.rootPath;
    }
    async getInterpreterPathFromPipenv(cwd, ignoreErrors = false) {
        // Quick check before actually running pipenv
        if (!(await this.checkIfPipFileExists(cwd))) {
            return;
        }
        try {
            const pythonPath = await this.invokePipenv('--py', cwd);
            return pythonPath && (await this.fs.fileExists(pythonPath)) ? pythonPath : undefined;
            // tslint:disable-next-line:no-empty
        }
        catch (error) {
            logger_1.traceError('PipEnv identification failed', error);
            if (ignoreErrors) {
                return;
            }
            const errorMessage = error.message || error;
            // const appShell = this.serviceContainer.get<IApplicationShell>(IApplicationShell)
            coc_nvim_1.workspace.showMessage(`Workspace contains pipfile but attempt to run 'pipenv --py' failed with ${errorMessage}. Make sure pipenv is on the PATH.`, 'warning');
        }
    }
    async checkIfPipFileExists(cwd) {
        const currentProcess = this.serviceContainer.get(types_4.ICurrentProcess);
        const pipFileName = currentProcess.env[pipEnvFileNameVariable];
        if (typeof pipFileName === 'string' && (await this.fs.fileExists(path.join(cwd, pipFileName)))) {
            return true;
        }
        if (await this.fs.fileExists(path.join(cwd, 'Pipfile'))) {
            return true;
        }
        return false;
    }
    async invokePipenv(arg, rootPath) {
        try {
            const processService = await this.processServiceFactory.create(coc_nvim_1.Uri.file(rootPath));
            const execName = this.executable;
            const result = await processService.exec(execName, [arg], { cwd: rootPath });
            if (result) {
                const stdout = result.stdout ? result.stdout.trim() : '';
                const stderr = result.stderr ? result.stderr.trim() : '';
                if (stderr.length > 0 && stdout.length === 0) {
                    throw new Error(stderr);
                }
                return stdout;
            }
            // tslint:disable-next-line:no-empty
        }
        catch (error) {
            const platformService = this.serviceContainer.get(types_2.IPlatformService);
            const currentProc = this.serviceContainer.get(types_4.ICurrentProcess);
            const enviromentVariableValues = {
                LC_ALL: currentProc.env.LC_ALL,
                LANG: currentProc.env.LANG
            };
            enviromentVariableValues[platformService.pathVariableName] =
                currentProc.env[platformService.pathVariableName];
            this.logger.logWarning('Error in invoking PipEnv', error);
            this.logger.logWarning(`Relevant Environment Variables ${JSON.stringify(enviromentVariableValues, undefined, 4)}`);
            const errorMessage = error.message || error;
            // const appShell = this.serviceContainer.get<IApplicationShell>(IApplicationShell)
            coc_nvim_1.workspace.showMessage(`Workspace contains pipfile but attempt to run 'pipenv --venv' failed with '${errorMessage}'. Make sure pipenv is on the PATH.`, 'warning');
        }
    }
};
PipEnvService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_5.IServiceContainer))
], PipEnvService);
exports.PipEnvService = PipEnvService;


/***/ }),
/* 808 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
let PipEnvServiceHelper = class PipEnvServiceHelper {
    constructor(statefactory, fs) {
        this.statefactory = statefactory;
        this.fs = fs;
        this.initialized = false;
        this.state = this.statefactory.createGlobalPersistentState('PipEnvInformation', []);
    }
    async getPipEnvInfo(pythonPath) {
        await this.initializeStateStore();
        const info = this.state.value.find(item => this.fs.arePathsSame(item.pythonPath, pythonPath));
        return info ? { workspaceFolder: coc_nvim_1.Uri.file(info.workspaceFolder), envName: info.envName } : undefined;
    }
    async trackWorkspaceFolder(pythonPath, workspaceFolder) {
        await this.initializeStateStore();
        const values = [...this.state.value].filter(item => !this.fs.arePathsSame(item.pythonPath, pythonPath));
        const envName = path.basename(workspaceFolder.fsPath);
        values.push({ pythonPath, workspaceFolder: workspaceFolder.fsPath, envName });
        await this.state.updateValue(values);
    }
    async initializeStateStore() {
        if (this.initialized) {
            return;
        }
        const list = await Promise.all(this.state.value.map(async (item) => ((await this.fs.fileExists(item.pythonPath)) ? item : undefined)));
        const filteredList = list.filter(item => !!item);
        await this.state.updateValue(filteredList);
        this.initialized = true;
    }
};
PipEnvServiceHelper = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_2.IPersistentStateFactory)),
    __param(1, inversify_1.inject(types_1.IFileSystem))
], PipEnvServiceHelper);
exports.PipEnvServiceHelper = PipEnvServiceHelper;


/***/ }),
/* 809 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-require-imports no-var-requires underscore-consistent-invocation
const fs = __importStar(__webpack_require__(104));
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const platform_1 = __webpack_require__(627);
const version_1 = __webpack_require__(671);
const types_3 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const cacheableLocatorService_1 = __webpack_require__(797);
const conda_1 = __webpack_require__(798);
const flatten = __webpack_require__(217);
// tslint:disable-next-line:variable-name
const DefaultPythonExecutable = 'python.exe';
// tslint:disable-next-line:variable-name
const CompaniesToIgnore = ['PYLAUNCHER'];
// tslint:disable-next-line:variable-name
const PythonCoreCompanyDisplayName = 'Python Software Foundation';
// tslint:disable-next-line:variable-name
const PythonCoreComany = 'PYTHONCORE';
let WindowsRegistryService = class WindowsRegistryService extends cacheableLocatorService_1.CacheableLocatorService {
    constructor(registry, platform, serviceContainer) {
        super('WindowsRegistryService', serviceContainer);
        this.registry = registry;
        this.platform = platform;
        this.pathUtils = serviceContainer.get(types_2.IPathUtils);
    }
    // tslint:disable-next-line:no-empty
    dispose() { }
    async getInterpretersImplementation(_resource) {
        return this.platform.isWindows ? this.getInterpretersFromRegistry() : [];
    }
    async getInterpretersFromRegistry() {
        // https://github.com/python/peps/blob/master/pep-0514.txt#L357
        const hkcuArch = this.platform.is64bit ? undefined : platform_1.Architecture.x86;
        const promises = [
            this.getCompanies(types_1.RegistryHive.HKCU, hkcuArch),
            this.getCompanies(types_1.RegistryHive.HKLM, platform_1.Architecture.x86)
        ];
        // https://github.com/Microsoft/PTVS/blob/ebfc4ca8bab234d453f15ee426af3b208f3c143c/Python/Product/Cookiecutter/Shared/Interpreters/PythonRegistrySearch.cs#L44
        if (this.platform.is64bit) {
            promises.push(this.getCompanies(types_1.RegistryHive.HKLM, platform_1.Architecture.x64));
        }
        const companies = await Promise.all(promises);
        const companyInterpreters = await Promise.all(flatten(companies)
            .filter(item => item !== undefined && item !== null)
            .map(company => {
            return this.getInterpretersForCompany(company.companyKey, company.hive, company.arch);
        }));
        return flatten(companyInterpreters)
            .filter(item => item !== undefined && item !== null)
            // tslint:disable-next-line:no-non-null-assertion
            .map(item => item)
            .reduce((prev, current) => {
            if (prev.findIndex(item => item.path.toUpperCase() === current.path.toUpperCase()) === -1) {
                prev.push(current);
            }
            return prev;
        }, []);
    }
    async getCompanies(hive, arch) {
        return this.registry.getKeys('\\Software\\Python', hive, arch)
            .then(companyKeys => companyKeys
            .filter(companyKey => CompaniesToIgnore.indexOf(this.pathUtils.basename(companyKey).toUpperCase()) === -1)
            .map(companyKey => {
            return { companyKey, hive, arch };
        }));
    }
    async getInterpretersForCompany(companyKey, hive, arch) {
        const tagKeys = await this.registry.getKeys(companyKey, hive, arch);
        return Promise.all(tagKeys.map(tagKey => this.getInreterpreterDetailsForCompany(tagKey, companyKey, hive, arch)));
    }
    getInreterpreterDetailsForCompany(tagKey, companyKey, hive, arch) {
        const key = `${tagKey}\\InstallPath`;
        return this.registry.getValue(key, hive, arch)
            .then(installPath => {
            // Install path is mandatory.
            if (!installPath) {
                return Promise.resolve(null);
            }
            // Check if 'ExecutablePath' exists.
            // Remember Python 2.7 doesn't have 'ExecutablePath' (there could be others).
            // Treat all other values as optional.
            return Promise.all([
                Promise.resolve(installPath),
                this.registry.getValue(key, hive, arch, 'ExecutablePath'),
                this.registry.getValue(tagKey, hive, arch, 'SysVersion'),
                this.getCompanyDisplayName(companyKey, hive, arch)
            ])
                .then(([installedPath, executablePath, version, companyDisplayName]) => {
                companyDisplayName = conda_1.AnacondaCompanyNames.indexOf(companyDisplayName) === -1 ? companyDisplayName : conda_1.AnacondaCompanyName;
                // tslint:disable-next-line:prefer-type-cast no-object-literal-type-assertion
                return { installPath: installedPath, executablePath, version, companyDisplayName };
            });
        })
            .then(async (interpreterInfo) => {
            if (!interpreterInfo) {
                return;
            }
            const executablePath = interpreterInfo.executablePath && interpreterInfo.executablePath.length > 0 ? interpreterInfo.executablePath : path.join(interpreterInfo.installPath, DefaultPythonExecutable);
            const helper = this.serviceContainer.get(contracts_1.IInterpreterHelper);
            const details = await helper.getInterpreterInformation(executablePath);
            if (!details) {
                return;
            }
            const version = interpreterInfo.version ? this.pathUtils.basename(interpreterInfo.version) : this.pathUtils.basename(tagKey);
            this._hasInterpreters.resolve(true);
            // tslint:disable-next-line:prefer-type-cast no-object-literal-type-assertion
            return Object.assign({}, details, { path: executablePath, 
                // Do not use version info from registry, this doesn't contain the release level.
                // Give preference to what we have retrieved from getInterpreterInformation.
                version: details.version || version_1.parsePythonVersion(version), companyDisplayName: interpreterInfo.companyDisplayName, type: contracts_1.InterpreterType.Unknown });
        })
            .then(interpreter => interpreter ? fs.pathExists(interpreter.path).catch(() => false).then(exists => exists ? interpreter : null) : null)
            .catch(error => {
            console.error(`Failed to retrieve interpreter details for company ${companyKey},tag: ${tagKey}, hive: ${hive}, arch: ${arch}`);
            console.error(error);
            return null;
        });
    }
    async getCompanyDisplayName(companyKey, hive, arch) {
        const displayName = await this.registry.getValue(companyKey, hive, arch, 'DisplayName');
        if (displayName && displayName.length > 0) {
            return displayName;
        }
        const company = this.pathUtils.basename(companyKey);
        return company.toUpperCase() === PythonCoreComany ? PythonCoreCompanyDisplayName : company;
    }
};
WindowsRegistryService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IRegistry)),
    __param(1, inversify_1.inject(types_1.IPlatformService)),
    __param(2, inversify_1.inject(types_3.IServiceContainer))
], WindowsRegistryService);
exports.WindowsRegistryService = WindowsRegistryService;


/***/ }),
/* 810 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-require-imports
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const untildify = __webpack_require__(734);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(75);
const types_3 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const baseVirtualEnvService_1 = __webpack_require__(804);
let WorkspaceVirtualEnvService = class WorkspaceVirtualEnvService extends baseVirtualEnvService_1.BaseVirtualEnvService {
    constructor(workspaceVirtualEnvPathProvider, serviceContainer, builder) {
        super(workspaceVirtualEnvPathProvider, serviceContainer, 'WorkspaceVirtualEnvService', true);
        this.builder = builder;
    }
    async getInterpreterWatchers(resource) {
        return [await this.builder.getWorkspaceVirtualEnvInterpreterWatcher(resource)];
    }
};
WorkspaceVirtualEnvService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(contracts_1.IVirtualEnvironmentsSearchPathProvider)), __param(0, inversify_1.named('workspace')),
    __param(1, inversify_1.inject(types_3.IServiceContainer)),
    __param(2, inversify_1.inject(contracts_1.IInterpreterWatcherBuilder))
], WorkspaceVirtualEnvService);
exports.WorkspaceVirtualEnvService = WorkspaceVirtualEnvService;
let WorkspaceVirtualEnvironmentsSearchPathProvider = class WorkspaceVirtualEnvironmentsSearchPathProvider {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
    }
    async getSearchPaths(resource) {
        const configService = this.serviceContainer.get(types_2.IConfigurationService);
        const paths = [];
        const venvPath = configService.getSettings(resource).venvPath;
        if (venvPath) {
            paths.push(untildify(venvPath));
        }
        const workspaceService = this.serviceContainer.get(types_1.IWorkspaceService);
        if (Array.isArray(workspaceService.workspaceFolders) && workspaceService.workspaceFolders.length > 0) {
            let wsPath;
            if (resource && workspaceService.workspaceFolders.length > 1) {
                const wkspaceFolder = workspaceService.getWorkspaceFolder(resource);
                if (wkspaceFolder) {
                    wsPath = coc_nvim_1.Uri.parse(wkspaceFolder.uri).fsPath;
                }
            }
            else {
                wsPath = coc_nvim_1.Uri.parse(workspaceService.workspaceFolders[0].uri).fsPath;
            }
            if (wsPath) {
                paths.push(wsPath);
                paths.push(path.join(wsPath, '.direnv'));
            }
        }
        return paths;
    }
};
WorkspaceVirtualEnvironmentsSearchPathProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.IServiceContainer))
], WorkspaceVirtualEnvironmentsSearchPathProvider);
exports.WorkspaceVirtualEnvironmentsSearchPathProvider = WorkspaceVirtualEnvironmentsSearchPathProvider;


/***/ }),
/* 811 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(148);
const types_4 = __webpack_require__(75);
const function_1 = __webpack_require__(80);
const maxTimeToWaitForEnvCreation = 60000;
const timeToPollForEnvCreation = 2000;
let WorkspaceVirtualEnvWatcherService = class WorkspaceVirtualEnvWatcherService {
    constructor(disposableRegistry, workspaceService, platformService, pythonExecFactory) {
        this.disposableRegistry = disposableRegistry;
        this.workspaceService = workspaceService;
        this.platformService = platformService;
        this.pythonExecFactory = pythonExecFactory;
        this.timers = new Map();
        this.fsWatchers = [];
        this.didCreate = new coc_nvim_1.Emitter();
        disposableRegistry.push(this);
    }
    get onDidCreate() {
        return this.didCreate.event;
    }
    dispose() {
        this.clearTimers();
    }
    async register(_resource) {
        if (this.fsWatchers.length > 0) {
            return;
        }
        const executable = this.platformService.isWindows ? 'python.exe' : 'python';
        const patterns = [path.join('*', executable), path.join('*', '*', executable)];
        for (const pattern of patterns) {
            // const globPatern = workspaceFolder ? new RelativePattern(workspaceFolder.uri.fsPath, pattern) : pattern
            logger_1.Logger.verbose(`Create file systemwatcher with pattern ${pattern}`);
            const fsWatcher = this.workspaceService.createFileSystemWatcher(pattern);
            fsWatcher.onDidCreate(e => this.createHandler(e), this, this.disposableRegistry);
            this.disposableRegistry.push(fsWatcher);
            this.fsWatchers.push(fsWatcher);
        }
    }
    async createHandler(e) {
        this.didCreate.fire();
        // On Windows, creation of environments are very slow, hence lets notify again after
        // the python executable is accessible (i.e. when we can launch the process).
        this.notifyCreationWhenReady(e.fsPath).catch(function_1.emptyFn);
    }
    async notifyCreationWhenReady(pythonPath) {
        const counter = this.timers.has(pythonPath) ? this.timers.get(pythonPath).counter + 1 : 0;
        const isValid = await this.isValidExecutable(pythonPath);
        if (isValid) {
            if (counter > 0) {
                this.didCreate.fire();
            }
            return this.timers.delete(pythonPath);
        }
        if (counter > (maxTimeToWaitForEnvCreation / timeToPollForEnvCreation)) {
            // Send notification before we give up trying.
            this.didCreate.fire();
            this.timers.delete(pythonPath);
            return;
        }
        const timer = setTimeout(() => this.notifyCreationWhenReady(pythonPath).catch(function_1.emptyFn), timeToPollForEnvCreation);
        this.timers.set(pythonPath, { timer, counter });
    }
    clearTimers() {
        this.timers.forEach(item => clearTimeout(item.timer));
        this.timers.clear();
    }
    async isValidExecutable(pythonPath) {
        const execService = await this.pythonExecFactory.create({ pythonPath });
        const info = await execService.getInterpreterInformation().catch(() => undefined);
        return info !== undefined;
    }
};
__decorate([
    logger_1.traceDecorators.verbose('Register Intepreter Watcher')
], WorkspaceVirtualEnvWatcherService.prototype, "register", null);
__decorate([
    logger_1.traceDecorators.verbose('Intepreter Watcher change handler')
], WorkspaceVirtualEnvWatcherService.prototype, "createHandler", null);
WorkspaceVirtualEnvWatcherService = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.IDisposableRegistry)),
    __param(1, inversify_1.inject(types_1.IWorkspaceService)),
    __param(2, inversify_1.inject(types_2.IPlatformService)),
    __param(3, inversify_1.inject(types_3.IPythonExecutionFactory))
], WorkspaceVirtualEnvWatcherService);
exports.WorkspaceVirtualEnvWatcherService = WorkspaceVirtualEnvWatcherService;


/***/ }),
/* 812 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(148);
const types_4 = __webpack_require__(744);
const types_5 = __webpack_require__(75);
const enum_1 = __webpack_require__(813);
const misc_1 = __webpack_require__(259);
const types_6 = __webpack_require__(95);
const contracts_1 = __webpack_require__(90);
const PYENVFILES = ['pyvenv.cfg', path.join('..', 'pyvenv.cfg')];
let VirtualEnvironmentManager = class VirtualEnvironmentManager {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.processServiceFactory = serviceContainer.get(types_3.IProcessServiceFactory);
        this.fs = serviceContainer.get(types_2.IFileSystem);
        this.pipEnvService = serviceContainer.get(contracts_1.IPipEnvService);
        this.workspaceService = serviceContainer.get(types_1.IWorkspaceService);
    }
    async getEnvironmentName(pythonPath, resource) {
        const defaultWorkspaceUri = this.workspaceService.hasWorkspaceFolders ? this.workspaceService.workspaceFolders[0].uri : undefined;
        const workspaceFolder = resource ? this.workspaceService.getWorkspaceFolder(resource) : undefined;
        const workspaceUri = workspaceFolder ? workspaceFolder.uri : defaultWorkspaceUri;
        const grandParentDirName = path.basename(path.dirname(path.dirname(pythonPath)));
        if (workspaceUri && await this.pipEnvService.isRelatedPipEnvironment(coc_nvim_1.Uri.parse(workspaceUri).fsPath, pythonPath)) {
            // In pipenv, return the folder name of the workspace.
            return path.basename(coc_nvim_1.Uri.parse(workspaceUri).fsPath);
        }
        return grandParentDirName;
    }
    async getEnvironmentType(pythonPath, resource) {
        if (await this.isVenvEnvironment(pythonPath)) {
            return contracts_1.InterpreterType.Venv;
        }
        if (await this.isPyEnvEnvironment(pythonPath, resource)) {
            return contracts_1.InterpreterType.Pyenv;
        }
        if (await this.isPipEnvironment(pythonPath, resource)) {
            return contracts_1.InterpreterType.Pipenv;
        }
        if (await this.isVirtualEnvironment(pythonPath)) {
            return contracts_1.InterpreterType.VirtualEnv;
        }
        // Lets not try to determine whether this is a conda environment or not.
        return contracts_1.InterpreterType.Unknown;
    }
    async isVenvEnvironment(pythonPath) {
        const dir = path.dirname(pythonPath);
        const pyEnvCfgFiles = PYENVFILES.map(file => path.join(dir, file));
        for (const file of pyEnvCfgFiles) {
            if (await this.fs.fileExists(file)) {
                return true;
            }
        }
        return false;
    }
    async isPyEnvEnvironment(pythonPath, resource) {
        const pyEnvRoot = await this.getPyEnvRoot(resource);
        return pyEnvRoot && pythonPath.startsWith(pyEnvRoot);
    }
    async isPipEnvironment(pythonPath, resource) {
        const defaultWorkspaceUri = this.workspaceService.hasWorkspaceFolders ? this.workspaceService.workspaceFolders[0].uri : undefined;
        const workspaceFolder = resource ? this.workspaceService.getWorkspaceFolder(resource) : undefined;
        const workspaceUri = workspaceFolder ? workspaceFolder.uri : defaultWorkspaceUri;
        if (workspaceUri && await this.pipEnvService.isRelatedPipEnvironment(coc_nvim_1.Uri.parse(workspaceUri).fsPath, pythonPath)) {
            return true;
        }
        return false;
    }
    async getPyEnvRoot(resource) {
        if (this.pyEnvRoot) {
            return this.pyEnvRoot;
        }
        const currentProccess = this.serviceContainer.get(types_5.ICurrentProcess);
        const pyenvRoot = currentProccess.env.PYENV_ROOT;
        if (pyenvRoot) {
            return this.pyEnvRoot = pyenvRoot;
        }
        try {
            const processService = await this.processServiceFactory.create(resource);
            const output = await processService.exec('pyenv', ['root']);
            if (output.stdout.trim().length > 0) {
                return this.pyEnvRoot = output.stdout.trim();
            }
        }
        catch (_a) {
            misc_1.noop();
        }
        const pathUtils = this.serviceContainer.get(types_5.IPathUtils);
        return this.pyEnvRoot = path.join(pathUtils.home, '.pyenv');
    }
    async isVirtualEnvironment(pythonPath) {
        const provider = this.getTerminalActivationProviderForVirtualEnvs();
        const shells = enum_1.getNamesAndValues(types_4.TerminalShellType)
            .filter(shell => provider.isShellSupported(shell.value))
            .map(shell => shell.value);
        for (const shell of shells) {
            const cmds = await provider.getActivationCommandsForInterpreter(pythonPath, shell);
            if (cmds && cmds.length > 0) {
                return true;
            }
        }
        return false;
    }
    getTerminalActivationProviderForVirtualEnvs() {
        const isWindows = this.serviceContainer.get(types_2.IPlatformService).isWindows;
        const serviceName = isWindows ? 'commandPromptAndPowerShell' : 'bashCShellFish';
        return this.serviceContainer.get(types_4.ITerminalActivationCommandProvider, serviceName);
    }
};
VirtualEnvironmentManager = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_6.IServiceContainer))
], VirtualEnvironmentManager);
exports.VirtualEnvironmentManager = VirtualEnvironmentManager;


/***/ }),
/* 813 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable:no-any
function getNamesAndValues(e) {
    return getNames(e).map(n => ({ name: n, value: e[n] }));
}
exports.getNamesAndValues = getNamesAndValues;
function getNames(e) {
    return getObjValues(e).filter(v => typeof v === 'string');
}
exports.getNames = getNames;
function getValues(e) {
    return getObjValues(e).filter(v => typeof v === 'number');
}
exports.getValues = getValues;
function getObjValues(e) {
    return Object.keys(e).map(k => e[k]);
}


/***/ }),
/* 814 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
const events_1 = __webpack_require__(237);
const inversify_1 = __webpack_require__(3);
// This needs to be done once, hence placed in a common location.
// Used by UnitTestSockerServer and also the extension unit tests.
// Place within try..catch, as this can only be done once (it's
// possible another extesion would perform this before our extension).
try {
    inversify_1.decorate(inversify_1.injectable(), events_1.EventEmitter);
}
catch (ex) {
    // tslint:disable-next-line: no-console
    console.error('Failed to decorate Emitter for DI (possibly already decorated by another Extension)', ex);
}
let ServiceContainer = class ServiceContainer {
    constructor(container) {
        this.container = container;
    }
    get(serviceIdentifier, name) {
        return name ? this.container.getNamed(serviceIdentifier, name) : this.container.get(serviceIdentifier);
    }
    getAll(serviceIdentifier, name) {
        return name ? this.container.getAllNamed(serviceIdentifier, name) : this.container.getAll(serviceIdentifier);
    }
};
ServiceContainer = __decorate([
    inversify_1.injectable()
], ServiceContainer);
exports.ServiceContainer = ServiceContainer;


/***/ }),
/* 815 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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;
};
Object.defineProperty(exports, "__esModule", { value: true });
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
const inversify_1 = __webpack_require__(3);
let ServiceManager = class ServiceManager {
    constructor(container) {
        this.container = container;
    }
    // tslint:disable-next-line:no-any
    add(serviceIdentifier, constructor, name) {
        if (name) {
            this.container.bind(serviceIdentifier).to(constructor).whenTargetNamed(name);
        }
        else {
            this.container.bind(serviceIdentifier).to(constructor);
        }
    }
    // tslint:disable-next-line:no-any
    addFactory(factoryIdentifier, factoryMethod) {
        this.container.bind(factoryIdentifier).toFactory(factoryMethod);
    }
    // tslint:disable-next-line:no-any
    addSingleton(serviceIdentifier, constructor, name) {
        if (name) {
            this.container.bind(serviceIdentifier).to(constructor).inSingletonScope().whenTargetNamed(name);
        }
        else {
            this.container.bind(serviceIdentifier).to(constructor).inSingletonScope();
        }
    }
    // tslint:disable-next-line:no-any
    addSingletonInstance(serviceIdentifier, instance, name) {
        if (name) {
            this.container.bind(serviceIdentifier).toConstantValue(instance).whenTargetNamed(name);
        }
        else {
            this.container.bind(serviceIdentifier).toConstantValue(instance);
        }
    }
    get(serviceIdentifier, name) {
        return name ? this.container.getNamed(serviceIdentifier, name) : this.container.get(serviceIdentifier);
    }
    getAll(serviceIdentifier, name) {
        return name ? this.container.getAllNamed(serviceIdentifier, name) : this.container.getAll(serviceIdentifier);
    }
    rebind(serviceIdentifier, constructor, name) {
        if (name) {
            this.container.rebind(serviceIdentifier).to(constructor).whenTargetNamed(name);
        }
        else {
            this.container.rebind(serviceIdentifier).to(constructor);
        }
    }
    rebindInstance(serviceIdentifier, instance, name) {
        if (name) {
            this.container.rebind(serviceIdentifier).toConstantValue(instance).whenTargetNamed(name);
        }
        else {
            this.container.rebind(serviceIdentifier).toConstantValue(instance);
        }
    }
};
ServiceManager = __decorate([
    inversify_1.injectable()
], ServiceManager);
exports.ServiceManager = ServiceManager;


/***/ }),
/* 816 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const localize_1 = __webpack_require__(93);
const types_2 = __webpack_require__(666);
const string_1 = __webpack_require__(149);
class LinterCommands {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.disposables = [];
        this.linterManager = this.serviceContainer.get(types_2.ILinterManager);
        const commandManager = this.serviceContainer.get(types_1.ICommandManager);
        commandManager.registerCommand(constants_1.Commands.Set_Linter, this.setLinterAsync.bind(this));
        commandManager.registerCommand(constants_1.Commands.Enable_Linter, this.enableLintingAsync.bind(this));
        commandManager.registerCommand(constants_1.Commands.Run_Linter, this.runLinting.bind(this));
    }
    dispose() {
        this.disposables.forEach(disposable => disposable.dispose());
    }
    async setLinterAsync() {
        const linters = this.linterManager.getAllLinterInfos();
        const suggestions = linters.map(x => x.id).sort();
        const linterList = ['Disable Linting', ...suggestions];
        const activeLinters = await this.linterManager.getActiveLinters(true, this.settingsUri);
        let current;
        switch (activeLinters.length) {
            case 0:
                current = 'none';
                break;
            case 1:
                current = activeLinters[0].id;
                break;
            default:
                current = 'multiple selected';
                break;
        }
        const placeHolder = `current: ${current}`;
        const idx = await coc_nvim_1.workspace.showQuickpick(linterList, placeHolder);
        if (idx !== -1) {
            const selection = linterList[idx];
            if (selection === 'Disable Linting') {
                await this.linterManager.enableLintingAsync(false);
                // sendTelemetryEvent(EventName.SELECT_LINTER, undefined, { enabled: false })
            }
            else {
                const index = linters.findIndex(x => x.id === selection);
                if (activeLinters.length > 1) {
                    const response = await coc_nvim_1.workspace.showPrompt(string_1.format(localize_1.Linters.replaceWithSelectedLinter(), selection));
                    if (!response)
                        return;
                }
                await this.linterManager.setActiveLintersAsync([linters[index].product], this.settingsUri);
            }
        }
    }
    async enableLintingAsync() {
        const options = ['on', 'off'];
        const current = await this.linterManager.isLintingEnabled(true, this.settingsUri) ? options[0] : options[1];
        const idx = await coc_nvim_1.workspace.showQuickpick(options, `current: ${current}`);
        if (idx != -1) {
            const enable = idx == 0;
            await this.linterManager.enableLintingAsync(enable, this.settingsUri);
        }
    }
    runLinting() {
        const engine = this.serviceContainer.get(types_2.ILintingEngine);
        return engine.lintOpenPythonFiles();
    }
    get settingsUri() {
        let doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        return doc ? coc_nvim_1.Uri.parse(doc.uri) : undefined;
    }
}
exports.LinterCommands = LinterCommands;


/***/ }),
/* 817 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const linterAvailability_1 = __webpack_require__(818);
const linterManager_1 = __webpack_require__(819);
const lintingEngine_1 = __webpack_require__(834);
const types_1 = __webpack_require__(666);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_1.ILintingEngine, lintingEngine_1.LintingEngine);
    serviceManager.addSingleton(types_1.ILinterManager, linterManager_1.LinterManager);
    serviceManager.add(types_1.IAvailableLinterActivator, linterAvailability_1.AvailableLinterActivator);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 818 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(78);
const logger_1 = __webpack_require__(86);
const types_2 = __webpack_require__(75);
let AvailableLinterActivator = class AvailableLinterActivator {
    constructor(appShell, installer, workspaceConfig, configService) {
        this.appShell = appShell;
        this.installer = installer;
        this.workspaceConfig = workspaceConfig;
        this.configService = configService;
    }
    /**
     * Check if it is possible to enable an otherwise-unconfigured linter in
     * the current workspace, and if so ask the user if they want that linter
     * configured explicitly.
     *
     * @param linterInfo The linter to check installation status.
     * @param resource Context for the operation (required when in multi-root workspaces).
     *
     * @returns true if configuration was updated in any way, false otherwise.
     */
    async promptIfLinterAvailable(linterInfo, resource) {
        // Has the feature been enabled yet?
        if (!this.isFeatureEnabled) {
            return false;
        }
        // Has the linter in question has been configured explicitly? If so, no need to continue.
        if (!this.isLinterUsingDefaultConfiguration(linterInfo, resource)) {
            return false;
        }
        // Is the linter available in the current workspace?
        if (await this.isLinterAvailable(linterInfo.product, resource)) {
            // great, it is - ask the user if they'd like to enable it.
            return this.promptToConfigureAvailableLinter(linterInfo);
        }
        return false;
    }
    /**
     * Raise a dialog asking the user if they would like to explicitly configure a
     * linter or not in their current workspace.
     *
     * @param linterInfo The linter to ask the user to enable or not.
     *
     * @returns true if the user requested a configuration change, false otherwise.
     */
    async promptToConfigureAvailableLinter(linterInfo) {
        const optButtons = [
            {
                title: `Enable ${linterInfo.id}`,
                enabled: true
            },
            {
                title: `Disable ${linterInfo.id}`,
                enabled: false
            }
        ];
        // tslint:disable-next-line:messages-must-be-localized
        // const pick = await this.appShell.showInformationMessage(Linters.installedButNotEnabled().format(linterInfo.id), ...optButtons)
        // if (pick) {
        //   await linterInfo.enableAsync(pick.enabled)
        //   return true
        // }
        return false;
    }
    /**
     * Check if the linter itself is available in the workspace's Python environment or
     * not.
     *
     * @param linterProduct Linter to check in the current workspace environment.
     * @param resource Context information for workspace.
     */
    async isLinterAvailable(linterProduct, resource) {
        return this.installer.isInstalled(linterProduct, resource)
            .catch(reason => {
            // report and continue, assume the linter is unavailable.
            logger_1.traceError(`[WARNING]: Failed to discover if linter ${linterProduct} is installed.`, reason);
            return false;
        });
    }
    /**
     * Check if the given linter has been configured by the user in this workspace or not.
     *
     * @param linterInfo Linter to check for configuration status.
     * @param resource Context information.
     *
     * @returns true if the linter has not been configured at the user, workspace, or workspace-folder scope. false otherwise.
     */
    isLinterUsingDefaultConfiguration(linterInfo, resource) {
        const ws = this.workspaceConfig.getConfiguration('python.linting', resource);
        const pe = ws.inspect(linterInfo.enabledSettingName);
        return (pe.globalValue === undefined && pe.workspaceValue === undefined && pe.workspaceValue === undefined);
    }
    /**
     * Check if this feature is enabled yet.
     *
     * This is a feature of the vscode-python extension that will become enabled once the
     * Python Language Server becomes the default, replacing Jedi as the default. Testing
     * the global default setting for `"python.jediEnabled": false` enables it.
     *
     * @returns true if the global default for python.jediEnabled is false.
     */
    get isFeatureEnabled() {
        return !this.configService.getSettings().jediEnabled;
    }
};
AvailableLinterActivator = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.IApplicationShell)),
    __param(1, inversify_1.inject(types_2.IInstaller)),
    __param(2, inversify_1.inject(types_1.IWorkspaceService)),
    __param(3, inversify_1.inject(types_2.IConfigurationService))
], AvailableLinterActivator);
exports.AvailableLinterActivator = AvailableLinterActivator;


/***/ }),
/* 819 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(75);
const types_3 = __webpack_require__(95);
const bandit_1 = __webpack_require__(820);
const flake8_1 = __webpack_require__(826);
const linterInfo_1 = __webpack_require__(827);
const mypy_1 = __webpack_require__(828);
const pep8_1 = __webpack_require__(829);
const prospector_1 = __webpack_require__(830);
const pydocstyle_1 = __webpack_require__(831);
const pylama_1 = __webpack_require__(832);
const pylint_1 = __webpack_require__(833);
const types_4 = __webpack_require__(666);
class DisabledLinter {
    constructor(configService) {
        this.configService = configService;
    }
    get info() {
        return new linterInfo_1.LinterInfo(types_2.Product.pylint, 'pylint', this.configService);
    }
    async lint(_document, _cancellation) {
        return [];
    }
}
let LinterManager = class LinterManager {
    constructor(serviceContainer, workspaceService) {
        this.serviceContainer = serviceContainer;
        this.workspaceService = workspaceService;
        this.checkedForInstalledLinters = new Set();
        this.configService = serviceContainer.get(types_2.IConfigurationService);
        // Note that we use unit tests to ensure all the linters are here.
        this.linters = [
            new linterInfo_1.LinterInfo(types_2.Product.bandit, 'bandit', this.configService),
            new linterInfo_1.LinterInfo(types_2.Product.flake8, 'flake8', this.configService),
            new linterInfo_1.PylintLinterInfo(this.configService, this.workspaceService, ['.pylintrc', 'pylintrc']),
            new linterInfo_1.LinterInfo(types_2.Product.mypy, 'mypy', this.configService),
            new linterInfo_1.LinterInfo(types_2.Product.pep8, 'pep8', this.configService),
            new linterInfo_1.LinterInfo(types_2.Product.prospector, 'prospector', this.configService),
            new linterInfo_1.LinterInfo(types_2.Product.pydocstyle, 'pydocstyle', this.configService),
            new linterInfo_1.LinterInfo(types_2.Product.pylama, 'pylama', this.configService)
        ];
    }
    getAllLinterInfos() {
        return this.linters;
    }
    getLinterInfo(product) {
        const x = this.linters.findIndex((value, _index, _obj) => value.product === product);
        if (x >= 0) {
            return this.linters[x];
        }
        throw new Error(`Invalid linter '${types_2.Product[product]}'`);
    }
    async isLintingEnabled(silent, resource) {
        const settings = this.configService.getSettings(resource);
        const activeLintersPresent = await this.getActiveLinters(silent, resource);
        return settings.linting.enabled && activeLintersPresent.length > 0;
    }
    async enableLintingAsync(enable, resource) {
        await this.configService.updateSetting('linting.enabled', enable, resource);
    }
    async getActiveLinters(silent, resource) {
        if (!silent) {
            await this.enableUnconfiguredLinters(resource);
        }
        return this.linters.filter(x => x.isEnabled(resource));
    }
    async setActiveLintersAsync(products, resource) {
        // ensure we only allow valid linters to be set, otherwise leave things alone.
        // filter out any invalid products:
        const validProducts = products.filter(product => {
            const foundIndex = this.linters.findIndex(validLinter => validLinter.product === product);
            return foundIndex !== -1;
        });
        // if we have valid linter product(s), enable only those
        if (validProducts.length > 0) {
            const active = await this.getActiveLinters(true, resource);
            for (const x of active) {
                await x.enableAsync(false, resource);
            }
            if (products.length > 0) {
                const toActivate = this.linters.filter(x => products.findIndex(p => x.product === p) >= 0);
                for (const x of toActivate) {
                    await x.enableAsync(true, resource);
                }
                await this.enableLintingAsync(true, resource);
            }
        }
    }
    async createLinter(product, outputChannel, serviceContainer, resource) {
        if (!await this.isLintingEnabled(true, resource)) {
            return new DisabledLinter(this.configService);
        }
        const error = 'Linter manager: Unknown linter';
        switch (product) {
            case types_2.Product.bandit:
                return new bandit_1.Bandit(outputChannel, serviceContainer);
            case types_2.Product.flake8:
                return new flake8_1.Flake8(outputChannel, serviceContainer);
            case types_2.Product.pylint:
                return new pylint_1.Pylint(outputChannel, serviceContainer);
            case types_2.Product.mypy:
                return new mypy_1.MyPy(outputChannel, serviceContainer);
            case types_2.Product.prospector:
                return new prospector_1.Prospector(outputChannel, serviceContainer);
            case types_2.Product.pylama:
                return new pylama_1.PyLama(outputChannel, serviceContainer);
            case types_2.Product.pydocstyle:
                return new pydocstyle_1.PyDocStyle(outputChannel, serviceContainer);
            case types_2.Product.pep8:
                return new pep8_1.Pep8(outputChannel, serviceContainer);
            default:
                serviceContainer.get(types_2.ILogger).logError(error);
                break;
        }
        throw new Error(error);
    }
    async enableUnconfiguredLinters(resource) {
        const settings = this.configService.getSettings(resource);
        if (!settings.linting.pylintEnabled || !settings.linting.enabled) {
            return;
        }
        // If we've already checked during this session for the same workspace and Python path, then don't bother again.
        const workspaceKey = `${coc_nvim_1.workspace.rootPath}${settings.pythonPath}`;
        if (this.checkedForInstalledLinters.has(workspaceKey)) {
            return;
        }
        this.checkedForInstalledLinters.add(workspaceKey);
        // only check & ask the user if they'd like to enable pylint
        const pylintInfo = this.linters.find(linter => linter.id === 'pylint');
        const activator = this.serviceContainer.get(types_4.IAvailableLinterActivator);
        await activator.promptIfLinterAvailable(pylintInfo, resource);
    }
};
LinterManager = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.IServiceContainer)),
    __param(1, inversify_1.inject(types_1.IWorkspaceService))
], LinterManager);
exports.LinterManager = LinterManager;


/***/ }),
/* 820 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(75);
const baseLinter_1 = __webpack_require__(821);
const types_2 = __webpack_require__(666);
const severityMapping = {
    LOW: types_2.LintMessageSeverity.Information,
    MEDIUM: types_2.LintMessageSeverity.Warning,
    HIGH: types_2.LintMessageSeverity.Error
};
class Bandit extends baseLinter_1.BaseLinter {
    constructor(outputChannel, serviceContainer) {
        super(types_1.Product.bandit, outputChannel, serviceContainer);
    }
    async runLinter(document, cancellation) {
        // View all errors in bandit <= 1.5.1 (https://github.com/PyCQA/bandit/issues/371)
        const messages = await this.run([
            '-f', 'custom', '--msg-template', '{line},0,{severity},{test_id}:{msg}', '-n', '-1', coc_nvim_1.Uri.parse(document.uri).fsPath
        ], document, cancellation);
        messages.forEach(msg => {
            msg.severity = severityMapping[msg.type];
        });
        return messages;
    }
}
exports.Bandit = Bandit;


/***/ }),
/* 821 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_2 = __webpack_require__(148);
const types_3 = __webpack_require__(75);
const errorHandler_1 = __webpack_require__(822);
const types_4 = __webpack_require__(666);
const string_1 = __webpack_require__(149);
const function_1 = __webpack_require__(80);
// tslint:disable-next-line:no-require-imports no-var-requires no-any
const namedRegexp = __webpack_require__(246);
// Allow negative column numbers (https://github.com/PyCQA/pylint/issues/1822)
const REGEX = '(?<line>\\d+),(?<column>-?\\d+),(?<type>\\w+),(?<code>\\w+\\d+):(?<message>.*)\\r?(\\n|$)';
function matchNamedRegEx(data, regex) {
    const compiledRegexp = namedRegexp(regex, 'g');
    const rawMatch = compiledRegexp.exec(data);
    if (rawMatch !== null) {
        return rawMatch.groups();
    }
    return undefined;
}
exports.matchNamedRegEx = matchNamedRegEx;
function parseLine(line, regex, linterID, colOffset = 0) {
    const match = matchNamedRegEx(line, regex);
    if (!match) {
        return;
    }
    // tslint:disable-next-line:no-any
    match.line = Number(match.line);
    // tslint:disable-next-line:no-any
    match.column = Number(match.column);
    return {
        code: match.code,
        message: match.message,
        column: isNaN(match.column) || match.column <= 0 ? 0 : match.column - colOffset,
        line: match.line,
        type: match.type,
        provider: linterID
    };
}
exports.parseLine = parseLine;
class BaseLinter {
    constructor(product, outputChannel, serviceContainer, columnOffset = 0) {
        this.outputChannel = outputChannel;
        this.serviceContainer = serviceContainer;
        this.columnOffset = columnOffset;
        this._info = serviceContainer.get(types_4.ILinterManager).getLinterInfo(product);
        this.errorHandler = new errorHandler_1.ErrorHandler(this.info.product, outputChannel, serviceContainer);
        this.configService = serviceContainer.get(types_3.IConfigurationService);
        this.workspace = serviceContainer.get(types_1.IWorkspaceService);
    }
    get pythonSettings() {
        return this._pythonSettings;
    }
    get info() {
        return this._info;
    }
    async lint(document, cancellation) {
        this._pythonSettings = this.configService.getSettings(coc_nvim_1.Uri.parse(document.uri));
        return this.runLinter(document, cancellation);
    }
    getWorkspaceRootPath(document) {
        return coc_nvim_1.workspace.rootPath;
    }
    get logger() {
        return this.serviceContainer.get(types_3.ILogger);
    }
    // tslint:disable-next-line:no-any
    parseMessagesSeverity(error, categorySeverity) {
        if (categorySeverity[error]) {
            const severityName = categorySeverity[error];
            switch (severityName) {
                case 'Error':
                    return types_4.LintMessageSeverity.Error;
                case 'Hint':
                    return types_4.LintMessageSeverity.Hint;
                case 'Information':
                    return types_4.LintMessageSeverity.Information;
                case 'Warning':
                    return types_4.LintMessageSeverity.Warning;
                default: {
                    if (types_4.LintMessageSeverity[severityName]) {
                        // tslint:disable-next-line:no-any
                        return types_4.LintMessageSeverity[severityName];
                    }
                }
            }
        }
        return types_4.LintMessageSeverity.Information;
    }
    async run(args, document, cancellation, regEx = REGEX) {
        if (!this.info.isEnabled(coc_nvim_1.Uri.parse(document.uri))) {
            return [];
        }
        const executionInfo = this.info.getExecutionInfo(args, coc_nvim_1.Uri.parse(document.uri));
        const cwd = this.getWorkspaceRootPath(document);
        const pythonToolsExecutionService = this.serviceContainer.get(types_2.IPythonToolExecutionService);
        try {
            const result = await pythonToolsExecutionService.exec(executionInfo, { cwd, token: cancellation, mergeStdOutErr: false }, coc_nvim_1.Uri.parse(document.uri));
            this.displayLinterResultHeader(result.stdout);
            return await this.parseMessages(result.stdout, document, cancellation, regEx);
        }
        catch (error) {
            await this.handleError(error, coc_nvim_1.Uri.parse(document.uri), executionInfo);
            return [];
        }
    }
    async parseMessages(output, _document, _token, regEx) {
        const outputLines = string_1.splitLines(output, { removeEmptyEntries: false, trim: false });
        return this.parseLines(outputLines, regEx);
    }
    async handleError(error, resource, execInfo) {
        if (constants_1.isTestExecution()) {
            this.errorHandler.handleError(error, resource, execInfo)
                .catch(function_1.emptyFn);
        }
        else {
            this.errorHandler.handleError(error, resource, execInfo)
                .catch(this.logger.logError.bind(this, 'Error in errorHandler.handleError'))
                .catch(function_1.emptyFn);
        }
    }
    parseLine(line, regEx) {
        return parseLine(line, regEx, this.info.id, this.columnOffset);
    }
    parseLines(outputLines, regEx) {
        const messages = [];
        for (const line of outputLines) {
            try {
                const msg = this.parseLine(line, regEx);
                if (msg) {
                    messages.push(msg);
                    if (messages.length >= this.pythonSettings.linting.maxNumberOfProblems) {
                        break;
                    }
                }
            }
            catch (ex) {
                this.logger.logError(`Linter '${this.info.id}' failed to parse the line '${line}.`, ex);
            }
        }
        return messages;
    }
    displayLinterResultHeader(data) {
        this.outputChannel.append(`${'#'.repeat(10)}Linting Output - ${this.info.id}${'#'.repeat(10)}\n`);
        this.outputChannel.append(data);
    }
}
exports.BaseLinter = BaseLinter;


/***/ }),
/* 822 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const notInstalled_1 = __webpack_require__(823);
const standard_1 = __webpack_require__(825);
class ErrorHandler {
    constructor(product, outputChannel, serviceContainer) {
        // Create chain of handlers.
        const standardErrorHandler = new standard_1.StandardErrorHandler(product, outputChannel, serviceContainer);
        this.handler = new notInstalled_1.NotInstalledErrorHandler(product, outputChannel, serviceContainer);
        this.handler.setNextHandler(standardErrorHandler);
    }
    handleError(error, resource, execInfo) {
        return this.handler.handleError(error, resource, execInfo);
    }
}
exports.ErrorHandler = ErrorHandler;


/***/ }),
/* 823 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(148);
const types_2 = __webpack_require__(666);
const baseErrorHandler_1 = __webpack_require__(824);
class NotInstalledErrorHandler extends baseErrorHandler_1.BaseErrorHandler {
    constructor(product, outputChannel, serviceContainer) {
        super(product, outputChannel, serviceContainer);
    }
    async handleError(error, resource, execInfo) {
        const pythonExecutionService = await this.serviceContainer.get(types_1.IPythonExecutionFactory).create({ resource });
        const isModuleInstalled = await pythonExecutionService.isModuleInstalled(execInfo.moduleName);
        if (isModuleInstalled) {
            return this.nextHandler ? this.nextHandler.handleError(error, resource, execInfo) : false;
        }
        this.installer.promptToInstall(this.product, resource)
            .catch(this.logger.logError.bind(this, 'NotInstalledErrorHandler.promptToInstall'));
        const linterManager = this.serviceContainer.get(types_2.ILinterManager);
        const info = linterManager.getLinterInfo(execInfo.product);
        const customError = `Linter '${info.id}' is not installed. Please install it or select another linter".`;
        this.outputChannel.appendLine(`\n${customError}\n${error}`);
        this.logger.logWarning(customError, error);
        return true;
    }
}
exports.NotInstalledErrorHandler = NotInstalledErrorHandler;


/***/ }),
/* 824 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(75);
class BaseErrorHandler {
    constructor(product, outputChannel, serviceContainer) {
        this.product = product;
        this.outputChannel = outputChannel;
        this.serviceContainer = serviceContainer;
        this.logger = this.serviceContainer.get(types_1.ILogger);
        this.installer = this.serviceContainer.get(types_1.IInstaller);
    }
    get nextHandler() {
        return this.handler;
    }
    setNextHandler(handler) {
        this.handler = handler;
    }
}
exports.BaseErrorHandler = BaseErrorHandler;


/***/ }),
/* 825 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(666);
const baseErrorHandler_1 = __webpack_require__(824);
const function_1 = __webpack_require__(80);
class StandardErrorHandler extends baseErrorHandler_1.BaseErrorHandler {
    constructor(product, outputChannel, serviceContainer) {
        super(product, outputChannel, serviceContainer);
    }
    async handleError(error, resource, execInfo) {
        if (typeof error === 'string' && error.indexOf('OSError: [Errno 2] No such file or directory: \'/') > 0) {
            return this.nextHandler ? this.nextHandler.handleError(error, resource, execInfo) : Promise.resolve(false);
        }
        const linterManager = this.serviceContainer.get(types_1.ILinterManager);
        const info = linterManager.getLinterInfo(execInfo.product);
        this.logger.logError(`There was an error in running the linter ${info.id}`, error);
        this.outputChannel.appendLine(`Linting with ${info.id} failed.`);
        this.outputChannel.appendLine(error.toString());
        this.displayLinterError(info.id)
            .catch(function_1.emptyFn);
        return true;
    }
    async displayLinterError(linterId) {
        const message = `There was an error in running the linter '${linterId}'`;
        coc_nvim_1.workspace.showMessage(message, 'error');
        this.outputChannel.show();
    }
}
exports.StandardErrorHandler = StandardErrorHandler;


/***/ }),
/* 826 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(75);
const baseLinter_1 = __webpack_require__(821);
const COLUMN_OFF_SET = 1;
class Flake8 extends baseLinter_1.BaseLinter {
    constructor(outputChannel, serviceContainer) {
        super(types_1.Product.flake8, outputChannel, serviceContainer, COLUMN_OFF_SET);
    }
    async runLinter(document, cancellation) {
        const messages = await this.run(['--format=%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s', coc_nvim_1.Uri.parse(document.uri).fsPath], document, cancellation);
        messages.forEach(msg => {
            msg.severity = this.parseMessagesSeverity(msg.type, this.pythonSettings.linting.flake8CategorySeverity);
        });
        return messages;
    }
}
exports.Flake8 = Flake8;


/***/ }),
/* 827 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(75);
// tslint:disable:no-any
class LinterInfo {
    constructor(product, id, configService, configFileNames = []) {
        this.configService = configService;
        this._product = product;
        this._id = id;
        this._configFileNames = configFileNames;
    }
    get id() {
        return this._id;
    }
    get product() {
        return this._product;
    }
    get pathSettingName() {
        return `${this.id}Path`;
    }
    get argsSettingName() {
        return `${this.id}Args`;
    }
    get enabledSettingName() {
        return `${this.id}Enabled`;
    }
    get configFileNames() {
        return this._configFileNames;
    }
    async enableAsync(enabled, resource) {
        return this.configService.updateSetting(`linting.${this.enabledSettingName}`, enabled, resource);
    }
    isEnabled(resource) {
        const settings = this.configService.getSettings(resource);
        return settings.linting[this.enabledSettingName];
    }
    pathName(resource) {
        const settings = this.configService.getSettings(resource);
        return settings.linting[this.pathSettingName];
    }
    linterArgs(resource) {
        const settings = this.configService.getSettings(resource);
        const args = settings.linting[this.argsSettingName];
        return Array.isArray(args) ? args : [];
    }
    getExecutionInfo(customArgs, resource) {
        const execPath = this.pathName(resource);
        const args = this.linterArgs(resource).concat(customArgs);
        let moduleName;
        // If path information is not available, then treat it as a module,
        if (path.basename(execPath) === execPath) {
            moduleName = execPath;
        }
        return { execPath, moduleName, args, product: this.product };
    }
}
exports.LinterInfo = LinterInfo;
class PylintLinterInfo extends LinterInfo {
    constructor(configService, workspaceService, configFileNames = []) {
        super(types_1.Product.pylint, 'pylint', configService, configFileNames);
        this.workspaceService = workspaceService;
    }
    isEnabled(resource) {
        const enabled = super.isEnabled(resource);
        if (!enabled || this.configService.getSettings(resource).jediEnabled) {
            return enabled;
        }
        // If we're using new LS, then by default Pylint is disabled (unless the user provides a value).
        const inspection = this.workspaceService.getConfiguration('python', resource).inspect('linting.pylintEnabled');
        if (!inspection || (inspection.globalValue === undefined && (inspection.workspaceValue === undefined || inspection.workspaceValue === undefined))) {
            return false;
        }
        return enabled;
    }
}
exports.PylintLinterInfo = PylintLinterInfo;


/***/ }),
/* 828 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(75);
const baseLinter_1 = __webpack_require__(821);
const COLUMN_OFF_SET = 1;
exports.REGEX = '(?<file>[^:]+):(?<line>\\d+)(:(?<column>\\d+))?: (?<type>\\w+): (?<message>.*)\\r?(\\n|$)';
class MyPy extends baseLinter_1.BaseLinter {
    constructor(outputChannel, serviceContainer) {
        super(types_1.Product.mypy, outputChannel, serviceContainer, COLUMN_OFF_SET);
    }
    async runLinter(document, cancellation) {
        const messages = await this.run([coc_nvim_1.Uri.parse(document.uri).fsPath], document, cancellation, exports.REGEX);
        messages.forEach(msg => {
            msg.severity = this.parseMessagesSeverity(msg.type, this.pythonSettings.linting.mypyCategorySeverity);
            msg.code = msg.type;
        });
        return messages;
    }
}
exports.MyPy = MyPy;


/***/ }),
/* 829 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(75);
const baseLinter_1 = __webpack_require__(821);
const COLUMN_OFF_SET = 1;
class Pep8 extends baseLinter_1.BaseLinter {
    constructor(outputChannel, serviceContainer) {
        super(types_1.Product.pep8, outputChannel, serviceContainer, COLUMN_OFF_SET);
    }
    async runLinter(document, cancellation) {
        const messages = await this.run(['--format=%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s', coc_nvim_1.Uri.parse(document.uri).fsPath], document, cancellation);
        messages.forEach(msg => {
            msg.severity = this.parseMessagesSeverity(msg.type, this.pythonSettings.linting.pep8CategorySeverity);
        });
        return messages;
    }
}
exports.Pep8 = Pep8;


/***/ }),
/* 830 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(75);
const baseLinter_1 = __webpack_require__(821);
class Prospector extends baseLinter_1.BaseLinter {
    constructor(outputChannel, serviceContainer) {
        super(types_1.Product.prospector, outputChannel, serviceContainer);
    }
    async runLinter(document, cancellation) {
        const cwd = this.getWorkspaceRootPath(document);
        const relativePath = path_1.default.relative(cwd, coc_nvim_1.Uri.parse(document.uri).fsPath);
        return this.run(['--absolute-paths', '--output-format=json', relativePath], document, cancellation);
    }
    async parseMessages(output, _document, _token, _regEx) {
        let parsedData;
        try {
            parsedData = JSON.parse(output);
        }
        catch (ex) {
            this.outputChannel.appendLine(`${'#'.repeat(10)}Linting Output - ${this.info.id}${'#'.repeat(10)}`);
            this.outputChannel.append(output);
            this.logger.logError('Failed to parse Prospector output', ex);
            return [];
        }
        return parsedData.messages
            .filter((_value, index) => index <= this.pythonSettings.linting.maxNumberOfProblems)
            .map(msg => {
            const lineNumber = msg.location.line === null || isNaN(msg.location.line) ? 1 : msg.location.line;
            return {
                code: msg.code,
                message: msg.message,
                column: msg.location.character,
                line: lineNumber,
                type: msg.code,
                provider: `${this.info.id} - ${msg.source}`
            };
        });
    }
}
exports.Prospector = Prospector;


/***/ }),
/* 831 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(75);
const constants_1 = __webpack_require__(147);
const baseLinter_1 = __webpack_require__(821);
const types_2 = __webpack_require__(666);
class PyDocStyle extends baseLinter_1.BaseLinter {
    constructor(outputChannel, serviceContainer) {
        super(types_1.Product.pydocstyle, outputChannel, serviceContainer);
    }
    async runLinter(document, cancellation) {
        const messages = await this.run([coc_nvim_1.Uri.parse(document.uri).fsPath], document, cancellation);
        // All messages in pep8 are treated as warnings for now.
        messages.forEach(msg => {
            msg.severity = types_2.LintMessageSeverity.Warning;
        });
        return messages;
    }
    async parseMessages(output, document, _token, _regEx) {
        let outputLines = output.split(/\r?\n/g);
        const baseFileName = path.basename(coc_nvim_1.Uri.parse(document.uri).fsPath);
        // Remember, the first line of the response contains the file name and line number, the next line contains the error message.
        // So we have two lines per message, hence we need to take lines in pairs.
        const maxLines = this.pythonSettings.linting.maxNumberOfProblems * 2;
        // First line is almost always empty.
        const oldOutputLines = outputLines.filter(line => line.length > 0);
        outputLines = [];
        for (let counter = 0; counter < oldOutputLines.length / 2; counter += 1) {
            outputLines.push(oldOutputLines[2 * counter] + oldOutputLines[(2 * counter) + 1]);
        }
        const doc = coc_nvim_1.workspace.getDocument(document.uri);
        return outputLines
            .filter((value, index) => index < maxLines && value.indexOf(':') >= 0)
            .map(line => {
            // Windows will have a : after the drive letter (e.g. c:\).
            if (constants_1.IS_WINDOWS) {
                return line.substring(line.indexOf(`${baseFileName}:`) + baseFileName.length + 1).trim();
            }
            return line.substring(line.indexOf(':') + 1).trim();
        })
            // Iterate through the lines (skipping the messages).
            // So, just iterate the response in pairs.
            .map(line => {
            try {
                if (line.trim().length === 0) {
                    return;
                }
                const lineNumber = parseInt(line.substring(0, line.indexOf(' ')), 10);
                const part = line.substring(line.indexOf(':') + 1).trim();
                const code = part.substring(0, part.indexOf(':')).trim();
                const message = part.substring(part.indexOf(':') + 1).trim();
                const sourceLine = doc.getline(lineNumber - 1);
                const trmmedSourceLine = sourceLine.trim();
                const sourceStart = sourceLine.indexOf(trmmedSourceLine);
                // tslint:disable-next-line:no-object-literal-type-assertion
                return {
                    code,
                    message,
                    column: sourceStart,
                    line: lineNumber,
                    type: '',
                    provider: this.info.id
                };
            }
            catch (ex) {
                this.logger.logError(`Failed to parse pydocstyle line '${line}'`, ex);
                return;
            }
        })
            .filter(item => item !== undefined)
            .map(item => item);
    }
}
exports.PyDocStyle = PyDocStyle;


/***/ }),
/* 832 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(75);
const baseLinter_1 = __webpack_require__(821);
const types_2 = __webpack_require__(666);
const REGEX = '(?<file>.py):(?<line>\\d+):(?<column>\\d+): \\[(?<type>\\w+)\\] (?<code>\\w\\d+):? (?<message>.*)\\r?(\\n|$)';
const COLUMN_OFF_SET = 1;
class PyLama extends baseLinter_1.BaseLinter {
    constructor(outputChannel, serviceContainer) {
        super(types_1.Product.pylama, outputChannel, serviceContainer, COLUMN_OFF_SET);
    }
    async runLinter(document, cancellation) {
        const messages = await this.run(['--format=parsable', coc_nvim_1.Uri.parse(document.uri).fsPath], document, cancellation, REGEX);
        // All messages in pylama are treated as warnings for now.
        messages.forEach(msg => {
            msg.severity = types_2.LintMessageSeverity.Warning;
        });
        return messages;
    }
}
exports.PyLama = PyLama;


/***/ }),
/* 833 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const os = __importStar(__webpack_require__(56));
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(205);
const types_2 = __webpack_require__(75);
const baseLinter_1 = __webpack_require__(821);
const pylintrc = 'pylintrc';
const dotPylintrc = '.pylintrc';
const REGEX = '(?<line>\\d+),(?<column>-?\\d+),(?<type>\\w+),(?<code>[^:]+):(?<message>.*)\\r?(\\n|$)';
class Pylint extends baseLinter_1.BaseLinter {
    constructor(outputChannel, serviceContainer) {
        super(types_2.Product.pylint, outputChannel, serviceContainer);
        this.fileSystem = serviceContainer.get(types_1.IFileSystem);
        this.platformService = serviceContainer.get(types_1.IPlatformService);
    }
    async runLinter(document, cancellation) {
        let minArgs = [];
        // Only use minimal checkers if
        //  a) there are no custom arguments and
        //  b) there is no pylintrc file next to the file or at the workspace root
        const uri = coc_nvim_1.Uri.parse(document.uri);
        const workspaceRoot = this.getWorkspaceRootPath(document);
        const settings = this.configService.getSettings(uri);
        if (settings.linting.pylintUseMinimalCheckers
            && this.info.linterArgs(uri).length === 0
            // Check pylintrc next to the file or above up to and including the workspace root
            && !await Pylint.hasConfigrationFileInWorkspace(this.fileSystem, path.dirname(uri.fsPath), workspaceRoot)
            // Check for pylintrc at the root and above
            && !await Pylint.hasConfigurationFile(this.fileSystem, this.getWorkspaceRootPath(document), this.platformService)) {
            // Disable all checkers up front and then selectively add back in:
            // - All F checkers
            // - Select W checkers
            // - All E checkers _manually_
            //   (see https://github.com/Microsoft/vscode-python/issues/722 for
            //    why; see
            //    https://gist.github.com/brettcannon/eff7f38a60af48d39814cbb2f33b3d1d
            //    for a script to regenerate the list of E checkers)
            minArgs = [
                '--disable=all',
                '--enable=F'
                    + ',unreachable,duplicate-key,unnecessary-semicolon'
                    + ',global-variable-not-assigned,unused-variable'
                    + ',unused-wildcard-import,binary-op-exception'
                    + ',bad-format-string,anomalous-backslash-in-string'
                    + ',bad-open-mode'
                    + ',E0001,E0011,E0012,E0100,E0101,E0102,E0103,E0104,E0105,E0107'
                    + ',E0108,E0110,E0111,E0112,E0113,E0114,E0115,E0116,E0117,E0118'
                    + ',E0202,E0203,E0211,E0213,E0236,E0237,E0238,E0239,E0240,E0241'
                    + ',E0301,E0302,E0303,E0401,E0402,E0601,E0602,E0603,E0604,E0611'
                    + ',E0632,E0633,E0701,E0702,E0703,E0704,E0710,E0711,E0712,E1003'
                    + ',E1101,E1102,E1111,E1120,E1121,E1123,E1124,E1125,E1126,E1127'
                    + ',E1128,E1129,E1130,E1131,E1132,E1133,E1134,E1135,E1136,E1137'
                    + ',E1138,E1139,E1200,E1201,E1205,E1206,E1300,E1301,E1302,E1303'
                    + ',E1304,E1305,E1306,E1310,E1700,E1701'
            ];
        }
        const args = [
            '--msg-template=\'{line},{column},{category},{msg_id}:{msg} ({symbol})\'',
            '--reports=n',
            '--output-format=text',
            uri.fsPath
        ];
        const messages = await this.run(minArgs.concat(args), document, cancellation, REGEX);
        messages.forEach(msg => {
            msg.severity = this.parseMessagesSeverity(msg.type, this.pythonSettings.linting.pylintCategorySeverity);
        });
        return messages;
    }
    // tslint:disable-next-line:member-ordering
    static async hasConfigurationFile(fs, folder, platformService) {
        // https://pylint.readthedocs.io/en/latest/user_guide/run.html
        // https://github.com/PyCQA/pylint/blob/975e08148c0faa79958b459303c47be1a2e1500a/pylint/config.py
        // 1. pylintrc in the current working directory
        // 2. .pylintrc in the current working directory
        // 3. If the current working directory is in a Python module, Pylint searches
        //    up the hierarchy of Python modules until it finds a pylintrc file.
        //    This allows you to specify coding standards on a module by module basis.
        //    A directory is judged to be a Python module if it contains an __init__.py file.
        // 4. The file named by environment variable PYLINTRC
        // 5. if you have a home directory which isn’t /root:
        //      a) .pylintrc in your home directory
        //      b) .config/pylintrc in your home directory
        // 6. /etc/pylintrc
        if (process.env.PYLINTRC) {
            return true;
        }
        if (await fs.fileExists(path.join(folder, pylintrc)) || await fs.fileExists(path.join(folder, dotPylintrc))) {
            return true;
        }
        let current = folder;
        let above = path.dirname(folder);
        do {
            if (!await fs.fileExists(path.join(current, '__init__.py'))) {
                break;
            }
            if (await fs.fileExists(path.join(current, pylintrc)) || await fs.fileExists(path.join(current, dotPylintrc))) {
                return true;
            }
            current = above;
            above = path.dirname(above);
        } while (!fs.arePathsSame(current, above));
        const home = os.homedir();
        if (await fs.fileExists(path.join(home, dotPylintrc))) {
            return true;
        }
        if (await fs.fileExists(path.join(home, '.config', pylintrc))) {
            return true;
        }
        if (!platformService.isWindows) {
            if (await fs.fileExists(path.join('/etc', pylintrc))) {
                return true;
            }
        }
        return false;
    }
    // tslint:disable-next-line:member-ordering
    static async hasConfigrationFileInWorkspace(fs, folder, root) {
        // Search up from file location to the workspace root
        let current = folder;
        let above = path.dirname(current);
        do {
            if (await fs.fileExists(path.join(current, pylintrc)) || await fs.fileExists(path.join(current, dotPylintrc))) {
                return true;
            }
            current = above;
            above = path.dirname(above);
        } while (!fs.arePathsSame(current, root) && !fs.arePathsSame(current, above));
        return false;
    }
}
exports.Pylint = Pylint;


/***/ }),
/* 834 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const minimatch_1 = __webpack_require__(231);
const path_1 = __importDefault(__webpack_require__(55));
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const types_4 = __webpack_require__(95);
const provider_1 = __webpack_require__(835);
const types_5 = __webpack_require__(666);
const PYTHON = { language: 'python' };
const lintSeverityToVSSeverity = new Map();
lintSeverityToVSSeverity.set(types_5.LintMessageSeverity.Error, vscode_languageserver_protocol_1.DiagnosticSeverity.Error);
lintSeverityToVSSeverity.set(types_5.LintMessageSeverity.Hint, vscode_languageserver_protocol_1.DiagnosticSeverity.Hint);
lintSeverityToVSSeverity.set(types_5.LintMessageSeverity.Information, vscode_languageserver_protocol_1.DiagnosticSeverity.Information);
lintSeverityToVSSeverity.set(types_5.LintMessageSeverity.Warning, vscode_languageserver_protocol_1.DiagnosticSeverity.Warning);
let LintingEngine = class LintingEngine {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.pendingLintings = new Map();
        this.documentHasJupyterCodeCells = (_a, _b) => Promise.resolve(false);
        this.documents = serviceContainer.get(types_1.IDocumentManager);
        this.configurationService = serviceContainer.get(types_3.IConfigurationService);
        this.outputChannel = serviceContainer.get(types_3.IOutputChannel, constants_1.STANDARD_OUTPUT_CHANNEL);
        this.linterManager = serviceContainer.get(types_5.ILinterManager);
        this.fileSystem = serviceContainer.get(types_2.IFileSystem);
        this.diagnosticCollection = coc_nvim_1.languages.createDiagnosticCollection('python');
    }
    get diagnostics() {
        return this.diagnosticCollection;
    }
    clearDiagnostics(document) {
        if (this.diagnosticCollection.has(document.uri)) {
            this.diagnosticCollection.delete(document.uri);
        }
    }
    async lintOpenPythonFiles() {
        this.diagnosticCollection.clear();
        const promises = this.documents.textDocuments.map(async (document) => this.lintDocument(document));
        await Promise.all(promises);
        return this.diagnosticCollection;
    }
    async lintDocument(document) {
        this.diagnosticCollection.set(document.uri, []);
        // Check if we need to lint this document
        if (!await this.shouldLintDocument(document)) {
            return;
        }
        const fsPath = coc_nvim_1.Uri.parse(document.uri).fsPath;
        if (this.pendingLintings.has(fsPath)) {
            this.pendingLintings.get(fsPath).cancel();
            this.pendingLintings.delete(fsPath);
        }
        const cancelToken = new vscode_languageserver_protocol_1.CancellationTokenSource();
        cancelToken.token.onCancellationRequested(() => {
            if (this.pendingLintings.has(fsPath)) {
                this.pendingLintings.delete(fsPath);
            }
        });
        this.pendingLintings.set(fsPath, cancelToken);
        const activeLinters = await this.linterManager.getActiveLinters(false, coc_nvim_1.Uri.parse(document.uri));
        const promises = activeLinters
            .map(async (info) => {
            const linter = await this.linterManager.createLinter(info.product, this.outputChannel, this.serviceContainer, coc_nvim_1.Uri.parse(document.uri));
            const promise = linter.lint(document, cancelToken.token);
            return promise;
        });
        const hasJupyterCodeCells = await this.documentHasJupyterCodeCells(document, cancelToken.token);
        // linters will resolve asynchronously - keep a track of all
        // diagnostics reported as them come in.
        let diagnostics = [];
        const settings = this.configurationService.getSettings(coc_nvim_1.Uri.parse(document.uri));
        for (const p of promises) {
            const msgs = await p;
            if (cancelToken.token.isCancellationRequested) {
                break;
            }
            if (this.isDocumentOpen(document.uri)) {
                let doc = coc_nvim_1.workspace.getDocument(document.uri);
                // Build the message and suffix the message with the name of the linter used.
                for (const m of msgs) {
                    // Ignore magic commands from jupyter.
                    if (hasJupyterCodeCells && doc.getline(m.line - 1).trim().startsWith('%') &&
                        (m.code === constants_1.LinterErrors.pylint.InvalidSyntax ||
                            m.code === constants_1.LinterErrors.prospector.InvalidSyntax ||
                            m.code === constants_1.LinterErrors.flake8.InvalidSyntax)) {
                        continue;
                    }
                    diagnostics.push(this.createDiagnostics(m, document));
                }
                // Limit the number of messages to the max value.
                diagnostics = diagnostics.filter((_value, index) => index <= settings.linting.maxNumberOfProblems);
            }
        }
        // Set all diagnostics found in this pass, as this method always clears existing diagnostics.
        this.diagnosticCollection.set(document.uri, diagnostics);
    }
    // tslint:disable-next-line:no-any
    async linkJupyterExtension(jupyter) {
        if (!jupyter) {
            return;
        }
        if (!jupyter.isActive) {
            await jupyter.activate();
        }
        // tslint:disable-next-line:no-unsafe-any
        jupyter.exports.registerLanguageProvider(PYTHON.language, new provider_1.JupyterProvider());
        // tslint:disable-next-line:no-unsafe-any
        this.documentHasJupyterCodeCells = jupyter.exports.hasCodeCells;
    }
    isDocumentOpen(uri) {
        return coc_nvim_1.workspace.getDocument(uri) != null;
    }
    createDiagnostics(message, _document) {
        const position = vscode_languageserver_protocol_1.Position.create(message.line - 1, message.column);
        const range = vscode_languageserver_protocol_1.Range.create(position, position);
        const severity = lintSeverityToVSSeverity.get(message.severity);
        const diagnostic = vscode_languageserver_protocol_1.Diagnostic.create(range, message.message, severity);
        diagnostic.code = message.code;
        diagnostic.source = message.provider;
        return diagnostic;
    }
    async shouldLintDocument(document) {
        if (!await this.linterManager.isLintingEnabled(false, coc_nvim_1.Uri.parse(document.uri))) {
            this.diagnosticCollection.set(document.uri, []);
            return false;
        }
        if (document.languageId !== PYTHON.language) {
            return false;
        }
        // const workspaceFolder = this.workspace.getWorkspaceFolder(document.uri)
        // const workspaceRootPath = (workspaceFolder && typeof workspaceFolder.uri.fsPath === 'string') ? workspaceFolder.uri.fsPath : undefined
        const relativeFileName = path_1.default.relative(coc_nvim_1.workspace.rootPath, coc_nvim_1.Uri.parse(document.uri).fsPath);
        const settings = this.configurationService.getSettings(coc_nvim_1.Uri.parse(document.uri));
        // { dot: true } is important so dirs like `.venv` will be matched by globs
        const ignoreMinmatches = settings.linting.ignorePatterns.map(pattern => new minimatch_1.Minimatch(pattern, { dot: true }));
        if (ignoreMinmatches.some(matcher => matcher.match(coc_nvim_1.Uri.parse(document.uri).fsPath) || matcher.match(relativeFileName))) {
            return false;
        }
        let u = coc_nvim_1.Uri.parse(document.uri);
        if (u.scheme !== 'file' || !u.fsPath) {
            return false;
        }
        return this.fileSystem.fileExists(u.fsPath);
    }
};
LintingEngine = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_4.IServiceContainer))
], LintingEngine);
exports.LintingEngine = LintingEngine;


/***/ }),
/* 835 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_languageserver_protocol_1 = __webpack_require__(45);
class JupyterProvider {
    static isCodeBlock(code) {
        return code.trim().endsWith(':') && code.indexOf('#') === -1;
    }
    /**
     * Returns a Regular Expression used to determine whether a line is a Cell delimiter or not
     *
     * @type {RegExp}
     * @memberOf LanguageProvider
     */
    get cellIdentifier() {
        return /^(# %%|#%%|# \<codecell\>|# In\[\d*?\]|# In\[ \])(.*)/i;
    }
    /**
     * Returns the selected code
     * If not implemented, then the currently active line or selected code is taken.
     * Can be implemented to ensure valid blocks of code are selected.
     * E.g if user selects only the If statement, code can be impelemented to ensure all code within the if statement (block) is returned
     * @param {string} selectedCode The selected code as identified by this extension.
     * @param {Range} [currentCell] Range of the currently active cell
     * @returns {Promise<string>} The code selected. If nothing is to be done, return the parameter value.
     *
     * @memberOf LanguageProvider
     */
    // @ts-ignore
    getSelectedCode(selectedCode, currentCell) {
        if (!JupyterProvider.isCodeBlock(selectedCode)) {
            return Promise.resolve(selectedCode);
        }
        // ok we're in a block, look for the end of the block untill the last line in the cell (if there are any cells)
        return new Promise((resolve, _reject) => {
            return resolve('');
            //       const activeEditor = window.activeTextEditor
            //       if (!activeEditor) {
            //         return resolve('')
            //       }
            //       const endLineNumber = currentCell ? currentCell.end.line : activeEditor.document.lineCount - 1
            //       const startIndent = selectedCode.indexOf(selectedCode.trim())
            //       const nextStartLine = activeEditor.selection.start.line + 1
            //
            //       for (let lineNumber = nextStartLine; lineNumber <= endLineNumber; lineNumber += 1) {
            //         const line = activeEditor.document.lineAt(lineNumber)
            //         const nextLine = line.text
            //         const nextLineIndent = nextLine.indexOf(nextLine.trim())
            //         if (nextLine.trim().indexOf('#') === 0) {
            //           continue
            //         }
            //         if (nextLineIndent === startIndent) {
            //           // Return code untill previous line
            //           const endRange = activeEditor.document.lineAt(lineNumber - 1).range.end
            //           resolve(activeEditor.document.getText(new Range(activeEditor.selection.start, endRange)))
            //         }
            //       }
            //
            //       resolve(activeEditor.document.getText(currentCell))
        });
    }
    /**
     * Gets the first line (position) of executable code within a range
     *
     * @param {TextDocument} document
     * @param {number} startLine
     * @param {number} endLine
     * @returns {Promise<Position>}
     *
     * @memberOf LanguageProvider
     */
    getFirstLineOfExecutableCode(document, range) {
        for (let lineNumber = range.start.line; lineNumber < range.end.line; lineNumber += 1) {
            let lines = document.getText().split('\n');
            const line = lines[lineNumber];
            if (line.trim().length == 0) {
                continue;
            }
            const trimmedLine = line.trim();
            if (trimmedLine.startsWith('#')) {
                continue;
            }
            // Yay we have a line
            // Remember, we need to set the cursor to a character other than white space
            // Highlighting doesn't kick in for comments or white space
            return Promise.resolve(vscode_languageserver_protocol_1.Position.create(lineNumber, line.indexOf(trimmedLine)));
        }
        // give up
        return Promise.resolve(vscode_languageserver_protocol_1.Position.create(range.start.line, 0));
    }
}
exports.JupyterProvider = JupyterProvider;


/***/ }),
/* 836 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const vscode_languageserver_protocol_1 = __webpack_require__(45);
class PythonCodeActionProvider {
    provideCodeActions(_document, _range, _context, _token) {
        const sortImports = vscode_languageserver_protocol_1.CodeAction.create('Sort imports', {
            title: 'Sort imports',
            command: 'python.sortImports'
        }, vscode_languageserver_protocol_1.CodeActionKind.SourceOrganizeImports);
        return [sortImports];
    }
}
exports.PythonCodeActionProvider = PythonCodeActionProvider;


/***/ }),
/* 837 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const timers_1 = __webpack_require__(838);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(75);
const autoPep8Formatter_1 = __webpack_require__(839);
const blackFormatter_1 = __webpack_require__(841);
const dummyFormatter_1 = __webpack_require__(842);
const yapfFormatter_1 = __webpack_require__(843);
class PythonFormattingEditProvider {
    constructor(_context, serviceContainer) {
        this.formatters = new Map();
        this.disposables = [];
        // Workaround for https://github.com/Microsoft/vscode/issues/41194
        this.documentVersionBeforeFormatting = -1;
        this.formatterMadeChanges = false;
        this.saving = false;
        const yapfFormatter = new yapfFormatter_1.YapfFormatter(serviceContainer);
        const autoPep8 = new autoPep8Formatter_1.AutoPep8Formatter(serviceContainer);
        const black = new blackFormatter_1.BlackFormatter(serviceContainer);
        const dummy = new dummyFormatter_1.DummyFormatter(serviceContainer);
        this.formatters.set(yapfFormatter.Id, yapfFormatter);
        this.formatters.set(black.Id, black);
        this.formatters.set(autoPep8.Id, autoPep8);
        this.formatters.set(dummy.Id, dummy);
        this.commands = serviceContainer.get(types_1.ICommandManager);
        this.documentManager = serviceContainer.get(types_1.IDocumentManager);
        this.config = serviceContainer.get(types_2.IConfigurationService);
        this.disposables.push(this.documentManager.onDidSaveTextDocument(async (document) => this.onSaveDocument(document)));
    }
    dispose() {
        this.disposables.forEach(d => d.dispose());
    }
    provideDocumentFormattingEdits(document, options, token) {
        return this.provideDocumentRangeFormattingEdits(document, undefined, options, token);
    }
    async provideDocumentRangeFormattingEdits(document, range, options, token) {
        // Workaround for https://github.com/Microsoft/vscode/issues/41194
        // VSC rejects 'format on save' promise in 750 ms. Python formatting may take quite a bit longer.
        // Workaround is to resolve promise to nothing here, then execute format document and force new save.
        // However, we need to know if this is 'format document' or formatting on save.
        if (this.saving) {
            // We are saving after formatting (see onSaveDocument below)
            // so we do not want to format again.
            return [];
        }
        // Remember content before formatting so we can detect if
        // formatting edits have been really applied
        const editorConfig = coc_nvim_1.workspace.getConfiguration('coc.preferences', document.uri);
        if (editorConfig.get('formatOnSaveFiletypes', []).indexOf('python') !== -1) {
            this.documentVersionBeforeFormatting = document.version;
        }
        const settings = this.config.getSettings(coc_nvim_1.Uri.parse(document.uri));
        const formatter = this.formatters.get(settings.formatting.provider);
        const edits = await Promise.resolve(formatter.formatDocument(document, options, token, range));
        this.formatterMadeChanges = edits.length > 0;
        return edits;
    }
    async onSaveDocument(document) {
        let doc = coc_nvim_1.workspace.getDocument(document.uri);
        if (!doc)
            return;
        // Promise was rejected = formatting took too long.
        // Don't format inside the event handler, do it on timeout
        timers_1.setTimeout(() => {
            try {
                if (this.formatterMadeChanges
                    && !doc.dirty
                    && document.version === this.documentVersionBeforeFormatting) {
                    // Formatter changes were not actually applied due to the timeout on save.
                    // Force formatting now and then save the document.
                    this.commands.executeCommand('editor.action.format');
                }
            }
            finally {
                this.documentVersionBeforeFormatting = -1;
                this.saving = false;
                this.formatterMadeChanges = false;
            }
        }, 50);
    }
}
exports.PythonFormattingEditProvider = PythonFormattingEditProvider;


/***/ }),
/* 838 */
/***/ (function(module, exports) {

module.exports = require("timers");

/***/ }),
/* 839 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const productInstaller_1 = __webpack_require__(736);
const types_1 = __webpack_require__(75);
const baseFormatter_1 = __webpack_require__(840);
const coc_nvim_1 = __webpack_require__(2);
class AutoPep8Formatter extends baseFormatter_1.BaseFormatter {
    constructor(serviceContainer) {
        super('autopep8', productInstaller_1.Product.autopep8, serviceContainer);
    }
    formatDocument(document, options, token, range) {
        // const stopWatch = new StopWatch()
        const settings = this.serviceContainer.get(types_1.IConfigurationService).getSettings(coc_nvim_1.Uri.parse(document.uri));
        const hasCustomArgs = Array.isArray(settings.formatting.autopep8Args) && settings.formatting.autopep8Args.length > 0;
        const formatSelection = range ? range : false;
        const autoPep8Args = ['--diff'];
        if (hasCustomArgs) {
            autoPep8Args.push(...settings.formatting.autopep8Args);
        }
        if (formatSelection) {
            // tslint:disable-next-line:no-non-null-assertion
            autoPep8Args.push(...['--line-range', (range.start.line + 1).toString(), (range.end.line + 1).toString()]);
        }
        const promise = super.provideDocumentFormattingEdits(document, options, token, autoPep8Args);
        return promise;
    }
}
exports.AutoPep8Formatter = AutoPep8Formatter;


/***/ }),
/* 840 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_extra_1 = __importDefault(__webpack_require__(104));
const path_1 = __importDefault(__webpack_require__(55));
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const helpers_1 = __webpack_require__(87);
const types_2 = __webpack_require__(148);
const types_3 = __webpack_require__(75);
const editor_1 = __webpack_require__(194);
const types_4 = __webpack_require__(665);
const coc_nvim_1 = __webpack_require__(2);
const function_1 = __webpack_require__(80);
const util_1 = __webpack_require__(113);
class BaseFormatter {
    constructor(Id, product, serviceContainer) {
        this.Id = Id;
        this.product = product;
        this.serviceContainer = serviceContainer;
        this.outputChannel = serviceContainer.get(types_3.IOutputChannel, constants_1.STANDARD_OUTPUT_CHANNEL);
        this.helper = serviceContainer.get(types_4.IFormatterHelper);
        this.workspace = serviceContainer.get(types_1.IWorkspaceService);
    }
    getDocumentPath(document, fallbackPath) {
        let filepath = coc_nvim_1.Uri.parse(document.uri).fsPath;
        if (path_1.default.basename(filepath) === filepath) {
            return fallbackPath;
        }
        return path_1.default.dirname(filepath);
    }
    getWorkspaceUri(document) {
        let { rootPath } = coc_nvim_1.workspace;
        let filepath = coc_nvim_1.Uri.parse(document.uri).fsPath;
        if (!filepath.startsWith(rootPath))
            return null;
        return coc_nvim_1.Uri.file(rootPath);
    }
    async provideDocumentFormattingEdits(document, _options, token, args, cwd) {
        if (typeof cwd !== 'string' || cwd.length === 0) {
            cwd = this.getWorkspaceUri(document).fsPath;
        }
        // autopep8 and yapf have the ability to read from the process input stream and return the formatted code out of the output stream.
        // However they don't support returning the diff of the formatted text when reading data from the input stream.
        // Yet getting text formatted that way avoids having to create a temporary file, however the diffing will have
        // to be done here in node (extension), i.e. extension CPU, i.e. less responsive solution.
        let filepath = coc_nvim_1.Uri.parse(document.uri).fsPath;
        const tempFile = await this.createTempFile(document);
        if (this.checkCancellation(filepath, tempFile, token)) {
            return [];
        }
        const executionInfo = this.helper.getExecutionInfo(this.product, args, coc_nvim_1.Uri.parse(document.uri));
        executionInfo.args.push(tempFile);
        const pythonToolsExecutionService = this.serviceContainer.get(types_2.IPythonToolExecutionService);
        const promise = pythonToolsExecutionService.exec(executionInfo, { cwd, throwOnStdErr: false, token }, coc_nvim_1.Uri.parse(document.uri))
            .then(output => output.stdout)
            .then(data => {
            if (this.checkCancellation(filepath, tempFile, token)) {
                return [];
            }
            return editor_1.getTextEditsFromPatch(document.getText(), data);
        })
            .catch(error => {
            if (this.checkCancellation(filepath, tempFile, token)) {
                return [];
            }
            // tslint:disable-next-line:no-empty
            this.handleError(this.Id, error, coc_nvim_1.Uri.parse(document.uri)).catch(() => { });
            return [];
        });
        // tslint:disable-next-line: no-floating-promises
        promise.then(() => {
            this.deleteTempFile(filepath, tempFile).catch(function_1.emptyFn);
            coc_nvim_1.workspace.showMessage(`Formatted with ${this.Id}`);
            let { nvim } = coc_nvim_1.workspace;
            setTimeout(async () => {
                let line = await nvim.call('coc#util#echo_line');
                if (line && /Formatted/.test(line))
                    nvim.command('echo ""', true);
            }, 2000);
        }, () => {
            this.deleteTempFile(filepath, tempFile).catch(function_1.emptyFn);
        });
        return promise;
    }
    async handleError(_expectedFileName, error, resource) {
        let customError = `Formatting with ${this.Id} failed.`;
        if (helpers_1.isNotInstalledError(error)) {
            const installer = this.serviceContainer.get(types_3.IInstaller);
            const isInstalled = await installer.isInstalled(this.product, resource);
            if (!isInstalled) {
                customError += `\nYou could either install the '${this.Id}' formatter, turn it off or use another formatter.`;
                installer.promptToInstall(this.product, resource).catch(ex => console.error('Python Extension: promptToInstall', ex));
            }
        }
        this.outputChannel.appendLine(`\n${customError}\n${error}`);
    }
    createTempFile(document) {
        return editor_1.getTempFileWithDocumentContents(document);
    }
    deleteTempFile(originalFile, tempFile) {
        if (originalFile !== tempFile) {
            return util_1.promisify(fs_extra_1.default.unlink)(tempFile);
        }
        return Promise.resolve();
    }
    checkCancellation(originalFile, tempFile, token) {
        if (token && token.isCancellationRequested) {
            this.deleteTempFile(originalFile, tempFile).catch(function_1.emptyFn);
            return true;
        }
        return false;
    }
}
exports.BaseFormatter = BaseFormatter;


/***/ }),
/* 841 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const productInstaller_1 = __webpack_require__(736);
const baseFormatter_1 = __webpack_require__(840);
class BlackFormatter extends baseFormatter_1.BaseFormatter {
    constructor(serviceContainer) {
        super('black', productInstaller_1.Product.black, serviceContainer);
    }
    formatDocument(document, options, token, range) {
        const settings = coc_nvim_1.workspace.getConfiguration('python', document.uri);
        const hasCustomArgs = Array.isArray(settings.formatting.blackArgs) && settings.formatting.blackArgs.length > 0;
        const formatSelection = range ? range : false;
        if (formatSelection) {
            const errorMessage = async () => {
                // Black does not support partial formatting on purpose.
                coc_nvim_1.workspace.showMessage('Black does not support the "Format Selection" command', 'error');
                return [];
            };
            return errorMessage();
        }
        const blackArgs = ['--diff', '--quiet'];
        if (hasCustomArgs) {
            blackArgs.push(...settings.formatting.blackArgs);
        }
        const promise = super.provideDocumentFormattingEdits(document, options, token, blackArgs);
        return promise;
    }
}
exports.BlackFormatter = BlackFormatter;


/***/ }),
/* 842 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = __webpack_require__(75);
const baseFormatter_1 = __webpack_require__(840);
class DummyFormatter extends baseFormatter_1.BaseFormatter {
    constructor(serviceContainer) {
        super('none', types_1.Product.yapf, serviceContainer);
    }
    formatDocument(_document, _options, _token, _range) {
        return Promise.resolve([]);
    }
}
exports.DummyFormatter = DummyFormatter;


/***/ }),
/* 843 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(75);
const stopWatch_1 = __webpack_require__(165);
const baseFormatter_1 = __webpack_require__(840);
class YapfFormatter extends baseFormatter_1.BaseFormatter {
    constructor(serviceContainer) {
        super('yapf', types_1.Product.yapf, serviceContainer);
    }
    formatDocument(document, options, token, range) {
        const stopWatch = new stopWatch_1.StopWatch();
        const settings = coc_nvim_1.workspace.getConfiguration('python', document.uri);
        const hasCustomArgs = Array.isArray(settings.formatting.yapfArgs) && settings.formatting.yapfArgs.length > 0;
        const formatSelection = range ? range : false;
        const yapfArgs = ['--diff'];
        if (hasCustomArgs) {
            yapfArgs.push(...settings.formatting.yapfArgs);
        }
        if (formatSelection) {
            // tslint:disable-next-line:no-non-null-assertion
            yapfArgs.push(...['--lines', `${range.start.line + 1}-${range.end.line + 1}`]);
        }
        // Yapf starts looking for config file starting from the file path.
        const fallbarFolder = this.getWorkspaceUri(document).fsPath;
        const cwd = this.getDocumentPath(document, fallbarFolder);
        const promise = super.provideDocumentFormattingEdits(document, options, token, yapfArgs, cwd);
        return promise;
    }
}
exports.YapfFormatter = YapfFormatter;


/***/ }),
/* 844 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const path_1 = __importDefault(__webpack_require__(55));
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const contracts_1 = __webpack_require__(90);
const types_4 = __webpack_require__(666);
const function_1 = __webpack_require__(80);
class LinterProvider {
    constructor(context, serviceContainer) {
        this.context = context;
        this.disposables = [];
        this.fs = serviceContainer.get(types_2.IFileSystem);
        this.engine = serviceContainer.get(types_4.ILintingEngine);
        this.linterManager = serviceContainer.get(types_4.ILinterManager);
        this.interpreterService = serviceContainer.get(contracts_1.IInterpreterService);
        this.documents = serviceContainer.get(types_1.IDocumentManager);
        this.configuration = serviceContainer.get(types_3.IConfigurationService);
        this.workspaceService = serviceContainer.get(types_1.IWorkspaceService);
        this.disposables.push(this.interpreterService.onDidChangeInterpreter(() => this.engine.lintOpenPythonFiles()));
        this.documents.onDidOpenTextDocument(e => this.onDocumentOpened(e), this.context.subscriptions);
        this.documents.onDidCloseTextDocument(e => this.onDocumentClosed(e), this.context.subscriptions);
        this.documents.onDidSaveTextDocument(e => this.onDocumentSaved(e), this.context.subscriptions);
        const disposable = this.workspaceService.onDidChangeConfiguration(this.lintSettingsChangedHandler.bind(this));
        this.disposables.push(disposable);
        // On workspace reopen we don't get `onDocumentOpened` since it is first opened
        // and then the extension is activated. So schedule linting pass now.
        if (!constants_1.isTestExecution()) {
            setTimeout(() => this.engine.lintOpenPythonFiles().catch(function_1.emptyFn), 1200);
        }
    }
    dispose() {
        this.disposables.forEach(d => d.dispose());
    }
    isDocumentOpen(uri) {
        return coc_nvim_1.workspace.getDocument(uri) != null;
    }
    lintSettingsChangedHandler(e) {
        // Look for python files that belong to the specified workspace folder.
        coc_nvim_1.workspace.textDocuments.forEach(document => {
            if (e.affectsConfiguration('python.linting', document.uri)) {
                this.engine.lintDocument(document).catch(function_1.emptyFn);
            }
        });
    }
    onDocumentOpened(document) {
        this.engine.lintDocument(document).catch(function_1.emptyFn);
    }
    onDocumentSaved(document) {
        const settings = this.configuration.getSettings(coc_nvim_1.Uri.parse(document.uri));
        if (document.languageId === 'python' && settings.linting.enabled && settings.linting.lintOnSave) {
            this.engine.lintDocument(document).catch(function_1.emptyFn);
            return;
        }
        this.linterManager.getActiveLinters(false, coc_nvim_1.Uri.parse(document.uri))
            .then(linters => {
            const fileName = path_1.default.basename(coc_nvim_1.Uri.parse(document.uri).fsPath).toLowerCase();
            const watchers = linters.filter(info => info.configFileNames.indexOf(fileName) >= 0);
            if (watchers.length > 0) {
                setTimeout(() => this.engine.lintOpenPythonFiles(), 1000);
            }
        }).catch(function_1.emptyFn);
    }
    onDocumentClosed(document) {
        if (!document || !coc_nvim_1.Uri.parse(document.uri).fsPath || !document.uri) {
            return;
        }
        // Check if this document is still open as a duplicate editor.
        if (!this.isDocumentOpen(document.uri)) {
            this.engine.clearDiagnostics(document);
        }
    }
}
exports.LinterProvider = LinterProvider;


/***/ }),
/* 845 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_2 = __webpack_require__(846);
class ReplProvider {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.disposables = [];
        this.registerCommand();
    }
    dispose() {
        this.disposables.forEach(disposable => disposable.dispose());
    }
    registerCommand() {
        const commandManager = this.serviceContainer.get(types_1.ICommandManager);
        const disposable = commandManager.registerCommand(constants_1.Commands.Start_REPL, this.commandHandler, this);
        this.disposables.push(disposable);
    }
    async commandHandler() {
        const resource = this.getActiveResourceUri();
        const replProvider = this.serviceContainer.get(types_2.ICodeExecutionService, 'repl');
        await replProvider.initializeRepl(resource);
    }
    getActiveResourceUri() {
        let doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        if (!doc)
            return undefined;
        return coc_nvim_1.Uri.parse(doc.uri);
    }
}
exports.ReplProvider = ReplProvider;


/***/ }),
/* 846 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.ICodeExecutionService = Symbol('ICodeExecutionService');
exports.ICodeExecutionHelper = Symbol('ICodeExecutionHelper');
exports.ICodeExecutionManager = Symbol('ICodeExecutionManager');
exports.ITerminalAutoActivation = Symbol('ITerminalAutoActivation');


/***/ }),
/* 847 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
const importSortProvider_1 = __webpack_require__(848);
const types_1 = __webpack_require__(849);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_1.ISortImportsEditingProvider, importSortProvider_1.SortImportsEditingProvider);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 848 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const os_1 = __webpack_require__(56);
const path = __importStar(__webpack_require__(55));
const vscode_languageserver_protocol_1 = __webpack_require__(45);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(148);
const types_4 = __webpack_require__(75);
const types_5 = __webpack_require__(95);
let SortImportsEditingProvider = class SortImportsEditingProvider {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.documentManager = serviceContainer.get(types_1.IDocumentManager);
        this.configurationService = serviceContainer.get(types_4.IConfigurationService);
        this.pythonExecutionFactory = serviceContainer.get(types_3.IPythonExecutionFactory);
        this.processServiceFactory = serviceContainer.get(types_3.IProcessServiceFactory);
        this.editorUtils = serviceContainer.get(types_4.IEditorUtils);
    }
    async provideDocumentSortImportsEdits(uri, token) {
        let doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        if (doc.uri != uri.toString()) {
            await coc_nvim_1.workspace.jumpTo(uri.toString());
        }
        doc = await coc_nvim_1.workspace.document;
        if (doc.lineCount <= 1) {
            return;
        }
        // isort does have the ability to read from the process input stream and return the formatted code out of the output stream.
        // However they don't support returning the diff of the formatted text when reading data from the input stream.
        // Yes getting text formatted that way avoids having to create a temporary file, however the diffing will have
        // to be done here in node (extension), i.e. extension cpu, i.e. less responsive solution.
        const importScript = path.join(constants_1.EXTENSION_ROOT_DIR, 'pythonFiles', 'sortImports.py');
        const fsService = this.serviceContainer.get(types_2.IFileSystem);
        const tmpFile = doc.dirty ? await fsService.createTemporaryFile(path.extname(coc_nvim_1.Uri.parse(doc.uri).fsPath)) : undefined;
        if (tmpFile) {
            await fsService.writeFile(tmpFile.filePath, doc.getDocumentContent());
        }
        const settings = this.configurationService.getSettings(uri);
        const isort = settings.sortImports.path;
        const filePath = tmpFile ? tmpFile.filePath : coc_nvim_1.Uri.parse(doc.uri).fsPath;
        const args = [filePath, '--diff'].concat(settings.sortImports.args);
        let diffPatch;
        if (token && token.isCancellationRequested) {
            return;
        }
        try {
            if (typeof isort === 'string' && isort.length > 0) {
                // Lets just treat this as a standard tool.
                const processService = await this.processServiceFactory.create(coc_nvim_1.Uri.parse(doc.uri));
                diffPatch = (await processService.exec(isort, args, { throwOnStdErr: true, token })).stdout;
            }
            else {
                const processExeService = await this.pythonExecutionFactory.create({ resource: coc_nvim_1.Uri.parse(doc.uri) });
                diffPatch = (await processExeService.exec([importScript].concat(args), { throwOnStdErr: true, token })).stdout;
            }
            return this.editorUtils.getWorkspaceEditsFromPatch(doc.getDocumentContent(), diffPatch, coc_nvim_1.Uri.parse(doc.uri));
        }
        finally {
            if (tmpFile) {
                tmpFile.dispose();
            }
        }
    }
    registerCommands() {
        const cmdManager = this.serviceContainer.get(types_1.ICommandManager);
        const disposable = cmdManager.registerCommand(constants_1.Commands.Sort_Imports, this.sortImports, this);
        this.serviceContainer.get(types_4.IDisposableRegistry).push(disposable);
    }
    async sortImports(uri) {
        if (!uri) {
            const doc = await coc_nvim_1.workspace.document;
            if (!doc || doc.filetype !== constants_1.PYTHON_LANGUAGE) {
                coc_nvim_1.workspace.showMessage('Please open a Python file to sort the imports.', 'error');
                return;
            }
            uri = coc_nvim_1.Uri.parse(doc.uri);
        }
        const document = await this.documentManager.openTextDocument(uri);
        if (document.lineCount <= 1) {
            return;
        }
        const doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        // Hack, if the document doesn't contain an empty line at the end, then add it
        // Else the library strips off the last line
        const lastLine = doc.getline(document.lineCount - 1);
        if (lastLine.trim().length > 0) {
            const edit = { changes: {} };
            const position = vscode_languageserver_protocol_1.Position.create(document.lineCount - 1, lastLine.length);
            edit.changes[uri.toString()] = [vscode_languageserver_protocol_1.TextEdit.insert(position, os_1.EOL)];
            await coc_nvim_1.workspace.applyEdit(edit);
        }
        try {
            const changes = await this.provideDocumentSortImportsEdits(uri);
            if (!changes || Object.keys(changes.changes).length === 0) {
                return;
            }
            await coc_nvim_1.workspace.applyEdit(changes);
        }
        catch (error) {
            const message = typeof error === 'string' ? error : (error.message ? error.message : error);
            const outputChannel = this.serviceContainer.get(types_4.IOutputChannel, constants_1.STANDARD_OUTPUT_CHANNEL);
            outputChannel.appendLine(error);
            const logger = this.serviceContainer.get(types_4.ILogger);
            logger.logError(`Failed to format imports for '${uri.fsPath}'.`, error);
            coc_nvim_1.workspace.showMessage(message, 'error');
        }
    }
};
SortImportsEditingProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_5.IServiceContainer))
], SortImportsEditingProvider);
exports.SortImportsEditingProvider = SortImportsEditingProvider;


/***/ }),
/* 849 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

Object.defineProperty(exports, "__esModule", { value: true });
exports.ISortImportsEditingProvider = Symbol('ISortImportsEditingProvider');


/***/ }),
/* 850 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const editor_1 = __webpack_require__(194);
const types_1 = __webpack_require__(75);
const constants_1 = __webpack_require__(84);
const proxy_1 = __webpack_require__(200);
const coc_nvim_1 = __webpack_require__(2);
const vscode_languageserver_types_1 = __webpack_require__(60);
let installer;
async function checkDocument(uri) {
    let doc = coc_nvim_1.workspace.getDocument(uri);
    if (!doc)
        return false;
    let modified = await doc.buffer.getOption('modified');
    if (modified != 0) {
        coc_nvim_1.workspace.showMessage('Buffer not saved, please save the buffer first!', 'warning');
        return false;
    }
    return true;
}
function activateSimplePythonRefactorProvider(context, outputChannel, serviceContainer) {
    installer = serviceContainer.get(types_1.IInstaller);
    let disposable = coc_nvim_1.commands.registerCommand(constants_1.Commands.Refactor_Extract_Variable, async (document, range) => {
        let valid = await checkDocument(document.uri);
        if (!valid)
            return;
        extractVariable(context.extensionPath, coc_nvim_1.workspace.getDocument(document.uri), range, 
        // tslint:disable-next-line:no-empty
        outputChannel, serviceContainer).catch(() => { });
    }, null, true);
    context.subscriptions.push(disposable);
    disposable = coc_nvim_1.commands.registerCommand(constants_1.Commands.Refactor_Extract_Method, async (document, range) => {
        let valid = await checkDocument(document.uri);
        if (!valid)
            return;
        extractMethod(context.extensionPath, coc_nvim_1.workspace.getDocument(document.uri), range, 
        // tslint:disable-next-line:no-empty
        outputChannel, serviceContainer).catch(() => { });
    }, null, true);
    context.subscriptions.push(disposable);
    let provider = {
        provideCodeActions: (document, range, actionContext, _token) => {
            let commands = [];
            if (actionContext.only && !actionContext.only.includes(vscode_languageserver_types_1.CodeActionKind.Refactor))
                return [];
            commands.push({
                command: constants_1.Commands.Refactor_Extract_Variable,
                title: 'Extract Variable',
                arguments: [document, range]
            });
            commands.push({
                command: constants_1.Commands.Refactor_Extract_Method,
                title: 'Extract Method',
                arguments: [document, range]
            });
            return commands;
        }
    };
    coc_nvim_1.languages.registerCodeActionProvider(['python'], provider, 'python.simpleRefactor', [vscode_languageserver_types_1.CodeActionKind.Refactor]);
}
exports.activateSimplePythonRefactorProvider = activateSimplePythonRefactorProvider;
// Exported for unit testing
function extractVariable(extensionDir, textEditor, range, 
// tslint:disable-next-line:no-any
outputChannel, serviceContainer) {
    let workspaceFolder = coc_nvim_1.workspace.getWorkspaceFolder(textEditor.uri);
    let workspaceRoot = workspaceFolder ? coc_nvim_1.Uri.parse(workspaceFolder.uri).fsPath : coc_nvim_1.workspace.cwd;
    const pythonSettings = serviceContainer.get(types_1.IConfigurationService).getSettings(coc_nvim_1.Uri.file(workspaceRoot));
    return validateDocumentForRefactor(textEditor).then(() => {
        const newName = `newvariable${new Date().getMilliseconds().toString()}`;
        const proxy = new proxy_1.RefactorProxy(extensionDir, pythonSettings, workspaceRoot, serviceContainer);
        const rename = proxy.extractVariable(textEditor.textDocument, newName, coc_nvim_1.Uri.parse(textEditor.uri).fsPath, range).then(response => {
            return response.results[0].diff;
        });
        return extractName(textEditor, newName, rename, outputChannel);
    });
}
exports.extractVariable = extractVariable;
// Exported for unit testing
function extractMethod(extensionDir, textEditor, range, 
// tslint:disable-next-line:no-any
outputChannel, serviceContainer) {
    let workspaceFolder = coc_nvim_1.workspace.getWorkspaceFolder(textEditor.uri);
    let workspaceRoot = workspaceFolder ? coc_nvim_1.Uri.parse(workspaceFolder.uri).fsPath : coc_nvim_1.workspace.cwd;
    const pythonSettings = serviceContainer.get(types_1.IConfigurationService).getSettings(coc_nvim_1.Uri.file(workspaceRoot));
    return validateDocumentForRefactor(textEditor).then(() => {
        const newName = `newmethod${new Date().getMilliseconds().toString()}`;
        const proxy = new proxy_1.RefactorProxy(extensionDir, pythonSettings, workspaceRoot, serviceContainer);
        const rename = proxy.extractMethod(textEditor.textDocument, newName, coc_nvim_1.Uri.parse(textEditor.uri).fsPath, range).then(response => {
            return response.results[0].diff;
        });
        return extractName(textEditor, newName, rename, outputChannel);
    });
}
exports.extractMethod = extractMethod;
// tslint:disable-next-line:no-any
function validateDocumentForRefactor(textEditor) {
    if (!textEditor.dirty) {
        return Promise.resolve();
    }
    // tslint:disable-next-line:no-any
    return new Promise((resolve, reject) => {
        // tslint:disable-next-line: no-floating-promises
        coc_nvim_1.workspace.nvim.command('write').then(() => {
            return resolve();
        }, reject);
    });
}
function extractName(textEditor, newName, 
// tslint:disable-next-line:no-any
renameResponse, outputChannel) {
    let changeStartsAtLine = -1;
    return renameResponse.then(diff => {
        if (diff.length === 0) {
            return [];
        }
        return editor_1.getTextEditsFromPatch(textEditor.getDocumentContent(), diff);
    }).then(edits => {
        edits.forEach(edit => {
            if (changeStartsAtLine === -1 || changeStartsAtLine > edit.range.start.line) {
                changeStartsAtLine = edit.range.start.line;
            }
        });
        return textEditor.applyEdits(coc_nvim_1.workspace.nvim, edits);
    }).then(() => {
        if (changeStartsAtLine >= 0) {
            let newWordPosition;
            for (let lineNumber = changeStartsAtLine; lineNumber < textEditor.lineCount; lineNumber += 1) {
                const line = textEditor.getline(lineNumber);
                const indexOfWord = line.indexOf(newName);
                if (indexOfWord >= 0) {
                    newWordPosition = vscode_languageserver_types_1.Position.create(lineNumber, indexOfWord);
                    break;
                }
            }
            return coc_nvim_1.workspace.jumpTo(textEditor.uri, newWordPosition).then(() => {
                return newWordPosition;
            });
        }
        return null;
    }).then(newWordPosition => {
        if (newWordPosition) {
            return coc_nvim_1.workspace.nvim.command('wa').then(() => {
                // Now that we have selected the new variable, lets invoke the rename command
                return coc_nvim_1.commands.executeCommand('editor.action.rename', textEditor.uri, newWordPosition);
            });
        }
    }).catch(error => {
        if (error === 'Not installed') {
            installer.promptToInstall(types_1.Product.rope, coc_nvim_1.Uri.parse(textEditor.uri))
                // tslint:disable-next-line: no-console
                .catch(ex => console.error('Python Extension: simpleRefactorProvider.promptToInstall', ex));
            return Promise.reject('');
        }
        let errorMessage = `${error}`;
        if (typeof error === 'string') {
            errorMessage = error;
        }
        if (typeof error === 'object' && error.message) {
            errorMessage = error.message;
        }
        outputChannel.appendLine(`${'#'.repeat(10)}Refactor Output${'#'.repeat(10)}`);
        outputChannel.appendLine(`Error in refactoring:\n${errorMessage}`);
        coc_nvim_1.workspace.showMessage(`Cannot perform refactoring using selected element(s). (${errorMessage})`, 'error');
        return Promise.reject(error);
    });
}


/***/ }),
/* 851 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_2 = __webpack_require__(744);
class TerminalProvider {
    constructor(serviceContainer) {
        this.serviceContainer = serviceContainer;
        this.disposables = [];
        this.registerCommands();
    }
    dispose() {
        this.disposables.forEach(disposable => disposable.dispose());
    }
    registerCommands() {
        const commandManager = this.serviceContainer.get(types_1.ICommandManager);
        const disposable = commandManager.registerCommand(constants_1.Commands.Create_Terminal, this.onCreateTerminal, this);
        this.disposables.push(disposable);
    }
    async onCreateTerminal() {
        const terminalService = this.serviceContainer.get(types_2.ITerminalServiceFactory);
        const activeResource = this.getActiveResource();
        await terminalService.createTerminalService(activeResource, 'Python').show(false);
    }
    getActiveResource() {
        let doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        if (doc && doc.filetype == 'python')
            return coc_nvim_1.Uri.parse(doc.uri);
        return coc_nvim_1.Uri.file(coc_nvim_1.workspace.rootPath);
    }
}
exports.TerminalProvider = TerminalProvider;


/***/ }),
/* 852 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(__webpack_require__(55));
const constants_1 = __webpack_require__(84);
const coc_nvim_1 = __webpack_require__(2);
function activateUpdateSparkLibraryProvider() {
    return coc_nvim_1.commands.registerCommand(constants_1.Commands.Update_SparkLibrary, updateSparkLibrary);
}
exports.activateUpdateSparkLibraryProvider = activateUpdateSparkLibraryProvider;
function updateSparkLibrary() {
    const pythonConfig = coc_nvim_1.workspace.getConfiguration('python', null);
    const extraLibPath = 'autoComplete.extraPaths';
    // tslint:disable-next-line:no-invalid-template-strings
    const sparkHomePath = '${env:SPARK_HOME}';
    pythonConfig.update(extraLibPath, [path_1.default.join(sparkHomePath, 'python'), path_1.default.join(sparkHomePath, 'python/pyspark')], true);
    coc_nvim_1.workspace.showMessage('Make sure you have SPARK_HOME environment variable set to the root path of the local spark installation!', 'more');
    // sendTelemetryEvent(EventName.UPDATE_PYSPARK_LIBRARY)
}


/***/ }),
/* 853 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const fs = __importStar(__webpack_require__(94));
const util_1 = __webpack_require__(113);
// tslint:disable:no-require-imports
const setting = 'sourceMapsEnabled';
class SourceMapSupport {
    constructor() {
        this.config = coc_nvim_1.workspace.getConfiguration('python.diagnostics', null);
    }
    async initialize() {
        if (!this.enabled) {
            return;
        }
        // await this.enableSourceMaps(true)
        // const localize = require('./common/utils/localize') as typeof import('./common/utils/localize')
        // // const disable = localize.Diagnostics.disableSourceMaps()
        // // tslint:disable-next-line: no-floating-promises
        // workspace.showPrompt(localize.Diagnostics.warnSourceMaps() + ', disable?').then(res => {
        //   if (res) {
        //     this.disable().catch(emptyFn)
        //   }
        // })
    }
    get enabled() {
        return this.config.get(setting, false);
    }
    async disable() {
        // if (this.enabled) {
        //   this.config.update(setting, false, true)
        // }
        // await this.enableSourceMaps(false)
    }
    async enableSourceMaps(enable) {
        // const extensionSourceFile = path.join(EXTENSION_ROOT_DIR, 'lib', 'index.js')
        // const debuggerSourceFile = path.join(EXTENSION_ROOT_DIR, 'out', 'client', 'debugger', 'debugAdapter', 'main.js')
        // await Promise.all([this.enableSourceMap(enable, extensionSourceFile), this.enableSourceMap(enable, debuggerSourceFile)])
    }
    async enableSourceMap(enable, sourceFile) {
        const sourceMapFile = `${sourceFile}.map`;
        const disabledSourceMapFile = `${sourceFile}.map.disabled`;
        if (enable) {
            await this.rename(disabledSourceMapFile, sourceMapFile);
        }
        else {
            await this.rename(sourceMapFile, disabledSourceMapFile);
        }
    }
    async rename(sourceFile, targetFile) {
        const fsExists = util_1.promisify(fs.exists);
        const fsRename = util_1.promisify(fs.rename);
        if (await fsExists(targetFile)) {
            return;
        }
        await fsRename(sourceFile, targetFile);
    }
}
exports.SourceMapSupport = SourceMapSupport;
function initialize() {
    // if (!workspace.getConfiguration('python.diagnostics', null).get('sourceMapsEnabled', false)) {
    //   new SourceMapSupport().disable().catch(emptyFn)
    //   return
    // }
    // new SourceMapSupport().initialize().catch(_ex => {
    //   console.error('Failed to initialize source map support in extension')
    // })
}
exports.initialize = initialize;


/***/ }),
/* 854 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
const activation_1 = __webpack_require__(855);
const codeExecutionManager_1 = __webpack_require__(856);
const djangoShellCodeExecution_1 = __webpack_require__(857);
const helper_1 = __webpack_require__(861);
const repl_1 = __webpack_require__(862);
const terminalCodeExecution_1 = __webpack_require__(860);
const types_1 = __webpack_require__(846);
function registerTypes(serviceManager) {
    serviceManager.addSingleton(types_1.ICodeExecutionHelper, helper_1.CodeExecutionHelper);
    serviceManager.addSingleton(types_1.ICodeExecutionManager, codeExecutionManager_1.CodeExecutionManager);
    serviceManager.addSingleton(types_1.ICodeExecutionService, djangoShellCodeExecution_1.DjangoShellCodeExecutionProvider, 'djangoShell');
    serviceManager.addSingleton(types_1.ICodeExecutionService, terminalCodeExecution_1.TerminalCodeExecutionProvider, 'standard');
    serviceManager.addSingleton(types_1.ICodeExecutionService, repl_1.ReplProvider, 'repl');
    serviceManager.addSingleton(types_1.ITerminalAutoActivation, activation_1.TerminalAutoActivation);
}
exports.registerTypes = registerTypes;


/***/ }),
/* 855 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(744);
const types_3 = __webpack_require__(75);
let TerminalAutoActivation = class TerminalAutoActivation {
    constructor(terminalManager, disposableRegistry, activator, workspaceService) {
        this.terminalManager = terminalManager;
        this.activator = activator;
        this.workspaceService = workspaceService;
        disposableRegistry.push(this);
    }
    dispose() {
        if (this.handler) {
            this.handler.dispose();
            this.handler = undefined;
        }
    }
    register() {
        if (this.handler) {
            return;
        }
        this.handler = this.terminalManager.onDidOpenTerminal(this.activateTerminal, this);
    }
    async activateTerminal(terminal) {
        // If we have just one workspace, then pass that as the resource.
        // Until upstream VSC issue is resolved https://github.com/Microsoft/vscode/issues/63052.
        // const workspaceFolder =
        //   this.workspaceService.hasWorkspaceFolders && this.workspaceService.workspaceFolders!.length > 0
        //     ? this.workspaceService.workspaceFolders![0].uri
        //     : undefined
        await this.activator.activateEnvironmentInTerminal(terminal, coc_nvim_1.Uri.file(coc_nvim_1.workspace.rootPath));
    }
};
TerminalAutoActivation = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.ITerminalManager)),
    __param(1, inversify_1.inject(types_3.IDisposableRegistry)),
    __param(2, inversify_1.inject(types_2.ITerminalActivator)),
    __param(3, inversify_1.inject(types_1.IWorkspaceService))
], TerminalAutoActivation);
exports.TerminalAutoActivation = TerminalAutoActivation;


/***/ }),
/* 856 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(78);
const constants_1 = __webpack_require__(84);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(75);
const misc_1 = __webpack_require__(259);
const types_4 = __webpack_require__(95);
const types_5 = __webpack_require__(846);
let CodeExecutionManager = class CodeExecutionManager {
    constructor(commandManager, documentManager, disposableRegistry, fileSystem, 
    // @inject(IPythonExtensionBanner) @named(BANNER_NAME_INTERACTIVE_SHIFTENTER) private readonly shiftEnterBanner: IPythonExtensionBanner,
    serviceContainer) {
        this.commandManager = commandManager;
        this.documentManager = documentManager;
        this.disposableRegistry = disposableRegistry;
        this.fileSystem = fileSystem;
        this.serviceContainer = serviceContainer;
        this.eventEmitter = new coc_nvim_1.Emitter();
    }
    get onExecutedCode() {
        return this.eventEmitter.event;
    }
    registerCommands() {
        this.disposableRegistry.push(this.commandManager.registerCommand(constants_1.Commands.Exec_In_Terminal, this.executeFileInTerminal.bind(this)));
        this.disposableRegistry.push(this.commandManager.registerCommand(constants_1.Commands.Exec_Selection_In_Terminal, this.executeSelectionInTerminal.bind(this)));
        this.disposableRegistry.push(this.commandManager.registerCommand(constants_1.Commands.Exec_Selection_In_Django_Shell, this.executeSelectionInDjangoShell.bind(this)));
    }
    async executeFileInTerminal(file) {
        const codeExecutionHelper = this.serviceContainer.get(types_5.ICodeExecutionHelper);
        file = file instanceof coc_nvim_1.Uri ? file : undefined;
        const fileToExecute = file ? file : await codeExecutionHelper.getFileToExecute();
        if (!fileToExecute) {
            return;
        }
        await coc_nvim_1.workspace.nvim.command('noa wa');
        // try {
        //   const contents = await this.fileSystem.readFile(fileToExecute.fsPath)
        //   this.eventEmitter.fire(contents)
        // } catch {
        //   // Ignore any errors that occur for firing this event. It's only used
        //   // for telemetry
        //   noop()
        // }
        const executionService = this.serviceContainer.get(types_5.ICodeExecutionService, 'standard');
        await executionService.executeFile(fileToExecute);
    }
    async executeSelectionInTerminal() {
        const executionService = this.serviceContainer.get(types_5.ICodeExecutionService, 'standard');
        await this.executeSelection(executionService);
        // Prompt one time to ask if they want to send shift-enter to the Interactive Window
        // this.shiftEnterBanner.showBanner().catch(emptyFn)
    }
    async executeSelectionInDjangoShell() {
        const executionService = this.serviceContainer.get(types_5.ICodeExecutionService, 'djangoShell');
        await this.executeSelection(executionService);
    }
    async executeSelection(executionService) {
        const { nvim } = coc_nvim_1.workspace;
        const mode = await nvim.call('visualmode');
        if (!mode)
            return;
        const codeExecutionHelper = this.serviceContainer.get(types_5.ICodeExecutionHelper);
        const codeToExecute = await codeExecutionHelper.getSelectedTextToExecute(mode);
        const normalizedCode = await codeExecutionHelper.normalizeLines(codeToExecute);
        if (!normalizedCode || normalizedCode.trim().length === 0) {
            return;
        }
        try {
            this.eventEmitter.fire(normalizedCode);
        }
        catch (_a) {
            // Ignore any errors that occur for firing this event. It's only used
            // for telemetry
            misc_1.noop();
        }
        const doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        await executionService.execute(normalizedCode, coc_nvim_1.Uri.parse(doc.uri));
    }
};
CodeExecutionManager = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_1.ICommandManager)),
    __param(1, inversify_1.inject(types_1.IDocumentManager)),
    __param(2, inversify_1.inject(types_3.IDisposableRegistry)),
    __param(3, inversify_1.inject(types_2.IFileSystem)),
    __param(4, inversify_1.inject(types_4.IServiceContainer))
], CodeExecutionManager);
exports.CodeExecutionManager = CodeExecutionManager;


/***/ }),
/* 857 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(744);
const types_4 = __webpack_require__(75);
const djangoContext_1 = __webpack_require__(858);
const terminalCodeExecution_1 = __webpack_require__(860);
const string_1 = __webpack_require__(149);
let DjangoShellCodeExecutionProvider = class DjangoShellCodeExecutionProvider extends terminalCodeExecution_1.TerminalCodeExecutionProvider {
    constructor(terminalServiceFactory, configurationService, workspace, documentManager, platformService, commandManager, fileSystem, disposableRegistry) {
        super(terminalServiceFactory, configurationService, workspace, disposableRegistry, platformService);
        this.terminalTitle = 'Django Shell';
        disposableRegistry.push(new djangoContext_1.DjangoContextInitializer(documentManager, workspace, fileSystem, commandManager));
    }
    getReplCommandArgs(resource) {
        const pythonSettings = this.configurationService.getSettings(resource);
        const command = this.platformService.isWindows ? pythonSettings.pythonPath.replace(/\\/g, '/') : pythonSettings.pythonPath;
        const args = pythonSettings.terminal.launchArgs.slice();
        const workspaceRoot = coc_nvim_1.workspace.rootPath;
        const managePyPath = workspaceRoot.length === 0 ? 'manage.py' : path.join(workspaceRoot, 'manage.py');
        args.push(string_1.fileToCommandArgument(managePyPath));
        args.push('shell');
        return { command, args };
    }
};
DjangoShellCodeExecutionProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.ITerminalServiceFactory)),
    __param(1, inversify_1.inject(types_4.IConfigurationService)),
    __param(2, inversify_1.inject(types_1.IWorkspaceService)),
    __param(3, inversify_1.inject(types_1.IDocumentManager)),
    __param(4, inversify_1.inject(types_2.IPlatformService)),
    __param(5, inversify_1.inject(types_1.ICommandManager)),
    __param(6, inversify_1.inject(types_2.IFileSystem)),
    __param(7, inversify_1.inject(types_4.IDisposableRegistry))
], DjangoShellCodeExecutionProvider);
exports.DjangoShellCodeExecutionProvider = DjangoShellCodeExecutionProvider;


/***/ }),
/* 858 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const coc_nvim_1 = __webpack_require__(2);
const contextKey_1 = __webpack_require__(859);
let DjangoContextInitializer = class DjangoContextInitializer {
    constructor(documentManager, workpaceService, fileSystem, commandManager) {
        this.documentManager = documentManager;
        this.workpaceService = workpaceService;
        this.fileSystem = fileSystem;
        this.workspaceContextKeyValues = new Map();
        this.lastCheckedWorkspace = '';
        this.disposables = [];
        this.isDjangoProject = new contextKey_1.ContextKey('python.isDjangoProject', commandManager);
        // tslint:disable-next-line: no-console
        this.ensureContextStateIsSet().catch(ex => console.error('Python Extension: ensureState', ex));
        // this.disposables.push(this.workpaceService.onDidChangeWorkspaceFolders(() => this.updateContextKeyBasedOnActiveWorkspace()))
    }
    dispose() {
        this.disposables.forEach(disposable => disposable.dispose());
    }
    // private updateContextKeyBasedOnActiveWorkspace() {
    //   if (this.monitoringActiveTextEditor) {
    //     return
    //   }
    //   this.monitoringActiveTextEditor = true
    //   this.disposables.push(this.documentManager.onDidChangeActiveTextEditor(() => this.ensureContextStateIsSet()))
    // }
    getActiveWorkspace() {
        return coc_nvim_1.workspace.rootPath;
    }
    async ensureContextStateIsSet() {
        const activeWorkspace = this.getActiveWorkspace();
        if (!activeWorkspace) {
            return this.isDjangoProject.set(false);
        }
        if (this.lastCheckedWorkspace === activeWorkspace) {
            return;
        }
        if (this.workspaceContextKeyValues.has(activeWorkspace)) {
            await this.isDjangoProject.set(this.workspaceContextKeyValues.get(activeWorkspace));
        }
        else {
            const exists = await this.fileSystem.fileExists(path.join(activeWorkspace, 'manage.py'));
            await this.isDjangoProject.set(exists);
            this.workspaceContextKeyValues.set(activeWorkspace, exists);
            this.lastCheckedWorkspace = activeWorkspace;
        }
    }
};
DjangoContextInitializer = __decorate([
    inversify_1.injectable()
], DjangoContextInitializer);
exports.DjangoContextInitializer = DjangoContextInitializer;


/***/ }),
/* 859 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
class ContextKey {
    constructor(name, commandManager) {
        this.name = name;
        this.commandManager = commandManager;
    }
    async set(value) {
        if (this.lastValue === value) {
            return;
        }
        this.lastValue = value;
        await this.commandManager.executeCommand('setContext', this.name, this.lastValue);
    }
}
exports.ContextKey = ContextKey;


/***/ }),
/* 860 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const path = __importStar(__webpack_require__(55));
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(744);
const types_4 = __webpack_require__(75);
const string_1 = __webpack_require__(149);
let TerminalCodeExecutionProvider = class TerminalCodeExecutionProvider {
    constructor(terminalServiceFactory, configurationService, workspace, disposables, platformService) {
        this.terminalServiceFactory = terminalServiceFactory;
        this.configurationService = configurationService;
        this.workspace = workspace;
        this.disposables = disposables;
        this.platformService = platformService;
    }
    async executeFile(file) {
        const pythonSettings = this.configurationService.getSettings(file);
        await this.setCwdForFileExecution(file);
        const command = this.platformService.isWindows ? pythonSettings.pythonPath.replace(/\\/g, '/') : pythonSettings.pythonPath;
        const launchArgs = pythonSettings.terminal.launchArgs;
        await this.getTerminalService(file).sendCommand(command, launchArgs.concat(string_1.fileToCommandArgument(file.fsPath)));
    }
    async execute(code, resource) {
        if (!code || code.trim().length === 0) {
            return;
        }
        await this.initializeRepl();
        await this.getTerminalService(resource).sendText(code);
    }
    async initializeRepl(resource) {
        if (this.replActive && await this.replActive) {
            await this._terminalService.show();
            return;
        }
        this.replActive = new Promise(async (resolve) => {
            const replCommandArgs = this.getReplCommandArgs(resource);
            await this.getTerminalService(resource).sendCommand(replCommandArgs.command, replCommandArgs.args);
            // Give python repl time to start before we start sending text.
            setTimeout(() => resolve(true), 1000);
        });
        await this.replActive;
    }
    getReplCommandArgs(resource) {
        const pythonSettings = this.configurationService.getSettings(resource);
        const command = this.platformService.isWindows ? pythonSettings.pythonPath.replace(/\\/g, '/') : pythonSettings.pythonPath;
        const args = pythonSettings.terminal.launchArgs.slice();
        return { command, args };
    }
    getTerminalService(resource) {
        if (!this._terminalService) {
            this._terminalService = this.terminalServiceFactory.getTerminalService(resource, this.terminalTitle);
            this.disposables.push(this._terminalService.onDidCloseTerminal(() => {
                this.replActive = undefined;
            }));
        }
        return this._terminalService;
    }
    async setCwdForFileExecution(file) {
        const pythonSettings = this.configurationService.getSettings(file);
        if (!pythonSettings.terminal.executeInFileDir) {
            return;
        }
        const fileDirPath = path.dirname(file.fsPath);
        await this.getTerminalService(file).sendText(`cd ${string_1.fileToCommandArgument(fileDirPath)}`);
    }
};
TerminalCodeExecutionProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.ITerminalServiceFactory)),
    __param(1, inversify_1.inject(types_4.IConfigurationService)),
    __param(2, inversify_1.inject(types_1.IWorkspaceService)),
    __param(3, inversify_1.inject(types_4.IDisposableRegistry)),
    __param(4, inversify_1.inject(types_2.IPlatformService))
], TerminalCodeExecutionProvider);
exports.TerminalCodeExecutionProvider = TerminalCodeExecutionProvider;


/***/ }),
/* 861 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const coc_nvim_1 = __webpack_require__(2);
const inversify_1 = __webpack_require__(3);
const path_1 = __importDefault(__webpack_require__(55));
const constants_1 = __webpack_require__(84);
const types_1 = __webpack_require__(148);
const types_2 = __webpack_require__(75);
const types_3 = __webpack_require__(95);
let CodeExecutionHelper = class CodeExecutionHelper {
    constructor(serviceContainer) {
        this.processServiceFactory = serviceContainer.get(types_1.IProcessServiceFactory);
        this.configurationService = serviceContainer.get(types_2.IConfigurationService);
    }
    async normalizeLines(code, resource) {
        try {
            if (code.trim().length === 0) {
                return '';
            }
            const pythonPath = this.configurationService.getSettings(resource).pythonPath;
            const args = [path_1.default.join(constants_1.EXTENSION_ROOT_DIR, 'pythonFiles', 'normalizeForInterpreter.py'), code];
            const processService = await this.processServiceFactory.create(resource);
            const proc = await processService.exec(pythonPath, args, { throwOnStdErr: true });
            return proc.stdout;
        }
        catch (ex) {
            // tslint:disable-next-line: no-console
            console.error(ex, 'Python: Failed to normalize code for execution in terminal');
            return code;
        }
    }
    async getFileToExecute() {
        const doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        if (!doc || doc.filetype != 'python' || doc.schema !== 'file') {
            coc_nvim_1.workspace.showMessage('Python file required to run in terminal', 'error');
            return;
        }
        await coc_nvim_1.workspace.nvim.command('write');
        return coc_nvim_1.Uri.parse(doc.uri);
    }
    async getSelectedTextToExecute(mode) {
        let doc = coc_nvim_1.workspace.getDocument(coc_nvim_1.workspace.bufnr);
        if (!doc)
            return;
        let range = await coc_nvim_1.workspace.getSelectedRange(mode, doc);
        if (range)
            return doc.textDocument.getText(range);
    }
};
CodeExecutionHelper = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.IServiceContainer))
], CodeExecutionHelper);
exports.CodeExecutionHelper = CodeExecutionHelper;


/***/ }),
/* 862 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

var __decorate = (this && this.__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 === "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 __param = (this && this.__param) || function (paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const inversify_1 = __webpack_require__(3);
const types_1 = __webpack_require__(78);
const types_2 = __webpack_require__(205);
const types_3 = __webpack_require__(744);
const types_4 = __webpack_require__(75);
const terminalCodeExecution_1 = __webpack_require__(860);
let ReplProvider = class ReplProvider extends terminalCodeExecution_1.TerminalCodeExecutionProvider {
    constructor(terminalServiceFactory, configurationService, workspace, disposableRegistry, platformService) {
        super(terminalServiceFactory, configurationService, workspace, disposableRegistry, platformService);
        this.terminalTitle = 'REPL';
    }
};
ReplProvider = __decorate([
    inversify_1.injectable(),
    __param(0, inversify_1.inject(types_3.ITerminalServiceFactory)),
    __param(1, inversify_1.inject(types_4.IConfigurationService)),
    __param(2, inversify_1.inject(types_1.IWorkspaceService)),
    __param(3, inversify_1.inject(types_4.IDisposableRegistry)),
    __param(4, inversify_1.inject(types_2.IPlatformService))
], ReplProvider);
exports.ReplProvider = ReplProvider;


/***/ })
/******/ ])));